From 2f9ca0dcf713772db9ba232540e594092c24c7bb Mon Sep 17 00:00:00 2001 From: Giovambattista Fazioli Date: Fri, 1 Dec 2023 15:36:27 +0100 Subject: [PATCH 01/22] feat: adds draggable and toggleable columns --- app/config.ts | 5 + .../dragging-toggling/DraggingExample.tsx | 35 ++++ .../DraggingTogglingComplexExample.tsx | 63 ++++++ .../DraggingTogglingResetExample.tsx | 47 +++++ .../dragging-toggling/TogglingExample.tsx | 35 ++++ app/examples/dragging-toggling/page.tsx | 80 ++++++++ package/DataTable.tsx | 46 +++-- package/DataTableDragToggleColumns.context.ts | 28 +++ package/DataTableDragToggleProvider.tsx | 70 +++++++ package/DataTableHeader.tsx | 4 + package/DataTableHeaderCell.css | 29 +++ package/DataTableHeaderCell.tsx | 183 ++++++++++++++++-- package/hooks/useDragToggleColumns.ts | 81 ++++++++ package/icons/IconGripVertical.tsx | 23 +++ package/icons/IconX.tsx | 19 ++ package/types/DataTableColumn.ts | 17 +- package/types/DataTableProps.ts | 6 + 17 files changed, 736 insertions(+), 35 deletions(-) create mode 100644 app/examples/dragging-toggling/DraggingExample.tsx create mode 100644 app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx create mode 100644 app/examples/dragging-toggling/DraggingTogglingResetExample.tsx create mode 100644 app/examples/dragging-toggling/TogglingExample.tsx create mode 100644 app/examples/dragging-toggling/page.tsx create mode 100644 package/DataTableDragToggleColumns.context.ts create mode 100644 package/DataTableDragToggleProvider.tsx create mode 100644 package/hooks/useDragToggleColumns.ts create mode 100644 package/icons/IconGripVertical.tsx create mode 100644 package/icons/IconX.tsx diff --git a/app/config.ts b/app/config.ts index 16abe07c8..771112503 100644 --- a/app/config.ts +++ b/app/config.ts @@ -137,6 +137,11 @@ export const ROUTES: RouteInfo[] = [ title: 'Sorting', description: `Example: sorting data with ${PRODUCT_NAME}`, }, + { + href: '/examples/dragging-toggling', + title: 'Dragging & Toggling', + description: `Example: dragging & toggling columns with ${PRODUCT_NAME}`, + }, { href: '/examples/infinite-scrolling', title: 'Infinite scrolling', diff --git a/app/examples/dragging-toggling/DraggingExample.tsx b/app/examples/dragging-toggling/DraggingExample.tsx new file mode 100644 index 000000000..2a06571bc --- /dev/null +++ b/app/examples/dragging-toggling/DraggingExample.tsx @@ -0,0 +1,35 @@ +'use client'; + +import { Button, Group, Stack } from '@mantine/core'; +import { DataTable } from '__PACKAGE__'; +import { companies, type Company } from '~/data'; +import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; + +export default function DraggingExample() { + const key = 'draggable-example'; + + const { effectiveColumns, resetColumnsOrder } = useDragToggleColumns({ + key, + columns: [ + { accessor: 'name', width: '40%', draggable: true }, + { accessor: 'streetAddress', width: '60%', draggable: true }, + { accessor: 'city', width: 160, draggable: true }, + { accessor: 'state', textAlign: 'right' }, + ], + }); + + return ( + + + + + + + ); +} diff --git a/app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx b/app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx new file mode 100644 index 000000000..9aa0c7d13 --- /dev/null +++ b/app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx @@ -0,0 +1,63 @@ +'use client'; + +import { IconColumnRemove, IconColumns1 } from '@tabler/icons-react'; +import { DataTable, type DataTableSortStatus } from '__PACKAGE__'; +import sortBy from 'lodash/sortBy'; +import { useContextMenu } from 'mantine-contextmenu'; +import { useEffect, useState } from 'react'; +import { companies, type Company } from '~/data'; +import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; + +export default function DraggingTogglingComplexExample() { + const { showContextMenu } = useContextMenu(); + + const [sortStatus, setSortStatus] = useState>({ + columnAccessor: 'name', + direction: 'asc', + }); + + const [records, setRecords] = useState(sortBy(companies, 'name')); + + useEffect(() => { + const data = sortBy(companies, sortStatus.columnAccessor) as Company[]; + setRecords(sortStatus.direction === 'desc' ? data.reverse() : data); + }, [sortStatus]); + + const key = 'toggleable-reset-example'; + + const { effectiveColumns, resetColumnsOrder, resetColumnsToggle } = useDragToggleColumns({ + key, + columns: [ + { accessor: 'name', width: '40%', toggleable: true, draggable: true, sortable: true }, + { accessor: 'streetAddress', width: '60%', toggleable: true, draggable: true }, + { accessor: 'city', width: 160, toggleable: true, draggable: true }, + { accessor: 'state', textAlign: 'right' }, + ], + }); + + return ( + + showContextMenu([ + { + key: 'reset-columns.toggled', + icon: , + onClick: resetColumnsToggle, + }, + { + key: 'reset-columns-order', + icon: , + onClick: resetColumnsOrder, + }, + ])(event) + } + /> + ); +} diff --git a/app/examples/dragging-toggling/DraggingTogglingResetExample.tsx b/app/examples/dragging-toggling/DraggingTogglingResetExample.tsx new file mode 100644 index 000000000..b8da0a47d --- /dev/null +++ b/app/examples/dragging-toggling/DraggingTogglingResetExample.tsx @@ -0,0 +1,47 @@ +'use client'; + +import { IconColumnRemove, IconColumns1 } from '@tabler/icons-react'; +import { DataTable } from '__PACKAGE__'; +import { useContextMenu } from 'mantine-contextmenu'; +import { companies } from '~/data'; +import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; + +export default function DraggingTogglingResetExample() { + const { showContextMenu } = useContextMenu(); + + const key = 'toggleable-reset-example'; + + const { effectiveColumns, resetColumnsOrder, resetColumnsToggle } = useDragToggleColumns({ + key, + columns: [ + { accessor: 'name', width: '40%', toggleable: true, draggable: true }, + { accessor: 'streetAddress', width: '60%', toggleable: true, draggable: true }, + { accessor: 'city', width: 160, toggleable: true, draggable: true }, + { accessor: 'state', textAlign: 'right' }, + ], + }); + + return ( + + showContextMenu([ + { + key: 'reset-columns.toggled', + icon: , + onClick: resetColumnsToggle, + }, + { + key: 'reset-columns-order', + icon: , + onClick: resetColumnsOrder, + }, + ])(event) + } + /> + ); +} diff --git a/app/examples/dragging-toggling/TogglingExample.tsx b/app/examples/dragging-toggling/TogglingExample.tsx new file mode 100644 index 000000000..1bdbf21df --- /dev/null +++ b/app/examples/dragging-toggling/TogglingExample.tsx @@ -0,0 +1,35 @@ +'use client'; + +import { Button, Group, Stack } from '@mantine/core'; +import { DataTable } from '__PACKAGE__'; +import { companies } from '~/data'; +import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; + +export default function TogglingExample() { + const key = 'toggleable-example'; + + const { effectiveColumns, resetColumnsToggle } = useDragToggleColumns({ + key, + columns: [ + { accessor: 'name', width: '40%', toggleable: true }, + { accessor: 'streetAddress', width: '60%', toggleable: true }, + { accessor: 'city', width: 160, toggleable: true }, + { accessor: 'state', textAlign: 'right' }, + ], + }); + + return ( + + + + + + + ); +} diff --git a/app/examples/dragging-toggling/page.tsx b/app/examples/dragging-toggling/page.tsx new file mode 100644 index 000000000..e5d61a844 --- /dev/null +++ b/app/examples/dragging-toggling/page.tsx @@ -0,0 +1,80 @@ +import { Code } from '@mantine/core'; +import type { Route } from 'next'; +import { CodeBlock } from '~/components/CodeBlock'; +import { PageNavigation } from '~/components/PageNavigation'; +import { PageSubtitle } from '~/components/PageSubtitle'; +import { PageTitle } from '~/components/PageTitle'; +import { Txt } from '~/components/Txt'; +import { UnorderedList } from '~/components/UnorderedList'; +import { readCodeFile } from '~/lib/code'; +import { allPromiseProps, getRouteMetadata } from '~/lib/utils'; +import DraggingExample from './DraggingExample'; +import DraggingTogglingComplexExample from './DraggingTogglingComplexExample'; +import DraggingTogglingResetExample from './DraggingTogglingResetExample'; +import TogglingExample from './TogglingExample'; + +const PATH: Route = '/examples/dragging-toggling'; + +export const metadata = getRouteMetadata(PATH); + +export default async function DraggingExamplePage() { + const code = await allPromiseProps({ + 'DraggingExample.tsx': readCodeFile(`${PATH}/DraggingExample.tsx`), + 'DraggingTogglingResetExample.tsx': readCodeFile(`${PATH}/DraggingTogglingResetExample.tsx`), + 'TogglingExample.tsx': readCodeFile(`${PATH}/TogglingExample.tsx`), + 'DraggingTogglingComplexExample.tsx': readCodeFile(`${PATH}/DraggingTogglingComplexExample.tsx`), + }); + + return ( + <> + + + In order to enable Dragging you’ll have to: + +
  • + add a storeColumnsKey: your_key property to the DataTable; +
  • +
  • + add a draggable: true property to each Dragging candidate column; +
  • +
  • + use useDragToggleColumns() hook to get the sorted columns. +
  • +
    + + + The default order of the columns is the order in which they are defined in the columns prop. + + + + + In order to enable Toggling you’ll have to: + +
  • + add a storeColumnsKey: your_key property to the DataTable; +
  • +
  • + add a toggleable: true property to each Toggling candidate column; +
  • +
  • + use useDragToggleColumns() hook to get the sorted columns. +
  • +
    + + + The default toggled columns are the ones with defaultToggle: true property. + + + + + + + + + + + + + + ); +} diff --git a/package/DataTable.tsx b/package/DataTable.tsx index fb1ac11f7..cb1f1c933 100644 --- a/package/DataTable.tsx +++ b/package/DataTable.tsx @@ -2,6 +2,7 @@ import { Box, Table, type MantineSize } from '@mantine/core'; import { useMergedRef } from '@mantine/hooks'; import clsx from 'clsx'; import { useCallback, useMemo, useState } from 'react'; +import { DataTableDragToggleColumnsProvider } from './DataTableDragToggleProvider'; import { DataTableEmptyRow } from './DataTableEmptyRow'; import { DataTableEmptyState } from './DataTableEmptyState'; import { DataTableFooter } from './DataTableFooter'; @@ -12,6 +13,7 @@ import { DataTableRow } from './DataTableRow'; import { DataTableScrollArea } from './DataTableScrollArea'; import { getTableCssVariables } from './cssVariables'; import { useElementOuterSize, useIsomorphicLayoutEffect, useLastSelectionChangeIndex, useRowExpansion } from './hooks'; +import { useDragToggleColumns } from './hooks/useDragToggleColumns'; import type { DataTableProps } from './types'; import { TEXT_SELECTION_DISABLED } from './utilityClasses'; import { differenceBy, getRecordId, uniqBy } from './utils'; @@ -26,6 +28,7 @@ export function DataTable({ verticalAlign = 'center', fetching, columns, + storeColumnsKey, groups, pinLastColumn, defaultColumnProps, @@ -122,6 +125,11 @@ export function DataTable({ return groups?.flatMap((group) => group.columns) ?? columns!; }, [columns, groups]); + const dragToggle = useDragToggleColumns({ + key: storeColumnsKey, + columns: effectiveColumns, + }); + const { ref: headerRef, height: headerHeight } = useElementOuterSize(); const { ref: tableRef, width: tableWidth, height: tableHeight } = useElementOuterSize(); const { ref: footerRef, height: footerHeight } = useElementOuterSize(); @@ -296,24 +304,26 @@ export function DataTable({ {...otherProps} > {noHeader ? null : ( - - ref={headerRef} - className={classNames?.header} - style={styles?.header} - columns={effectiveColumns} - defaultColumnProps={defaultColumnProps} - groups={groups} - sortStatus={sortStatus} - sortIcons={sortIcons} - onSortStatusChange={onSortStatusChange} - selectionTrigger={selectionTrigger} - selectionVisible={selectionColumnVisible} - selectionChecked={allSelectableRecordsSelected} - selectionIndeterminate={someRecordsSelected && !allSelectableRecordsSelected} - onSelectionChange={handleHeaderSelectionChange} - selectionCheckboxProps={allRecordsSelectionCheckboxProps} - selectorCellShadowVisible={selectionVisibleAndNotScrolledToLeft} - /> + + + ref={headerRef} + className={classNames?.header} + style={styles?.header} + columns={effectiveColumns} + defaultColumnProps={defaultColumnProps} + groups={groups} + sortStatus={sortStatus} + sortIcons={sortIcons} + onSortStatusChange={onSortStatusChange} + selectionTrigger={selectionTrigger} + selectionVisible={selectionColumnVisible} + selectionChecked={allSelectableRecordsSelected} + selectionIndeterminate={someRecordsSelected && !allSelectableRecordsSelected} + onSelectionChange={handleHeaderSelectionChange} + selectionCheckboxProps={allRecordsSelectionCheckboxProps} + selectorCellShadowVisible={selectionVisibleAndNotScrolledToLeft} + /> + )} {recordsLength ? ( diff --git a/package/DataTableDragToggleColumns.context.ts b/package/DataTableDragToggleColumns.context.ts new file mode 100644 index 000000000..202510bd1 --- /dev/null +++ b/package/DataTableDragToggleColumns.context.ts @@ -0,0 +1,28 @@ +import { createSafeContext } from '@mantine/core'; +import { Dispatch, SetStateAction } from 'react'; +import { DataTableColumnToggle } from './hooks/useDragToggleColumns'; + +interface DataTableDragToggleColumnsContext { + // accessor of the column which is currently dragged + sourceColumn: string; + setSourceColumn: Dispatch>; + + // accessor of the column which is currently hovered + targetColumn: string; + setTargetColumn: Dispatch>; + + // swap the source column with the target column + swapColumns: () => void; + + // reset to the default columns order + resetColumnsOrder: () => void; + + columnsToggle: DataTableColumnToggle[]; + setColumnsToggle: Dispatch>; + resetColumnsToggle: () => void; +} + +export const [DataTableDragToggleColumnsContextProvider, useDataTableDragToggleColumnsContext] = + createSafeContext( + 'useDataTableDragToggleColumnsContext must be used within DataTableDragToggleColumnOrdersProvider' + ); diff --git a/package/DataTableDragToggleProvider.tsx b/package/DataTableDragToggleProvider.tsx new file mode 100644 index 000000000..48a757535 --- /dev/null +++ b/package/DataTableDragToggleProvider.tsx @@ -0,0 +1,70 @@ +'use client'; + +import { Dispatch, SetStateAction, useState } from 'react'; +import { DataTableDragToggleColumnsContextProvider } from './DataTableDragToggleColumns.context'; +import { DataTableColumnToggle } from './hooks/useDragToggleColumns'; + +type DataTableDragToggleColumnsProviderProps = { + // React children + children: React.ReactNode; + + columnsOrder: string[]; + setColumnsOrder: Dispatch>; + resetColumnsOrder: () => void; + + columnsToggle: DataTableColumnToggle[]; + setColumnsToggle: Dispatch>; + resetColumnsToggle: () => void; +}; + +export const DataTableDragToggleColumnsProvider = (props: DataTableDragToggleColumnsProviderProps) => { + const { + children, + columnsOrder, + setColumnsOrder, + columnsToggle, + setColumnsToggle, + + resetColumnsOrder, + resetColumnsToggle, + } = props; + + const [sourceColumn, setSourceColumn] = useState(''); + + const [targetColumn, setTargetColumn] = useState(''); + + const swapColumns = () => { + if (!columnsOrder || !setColumnsOrder || !sourceColumn || !targetColumn) { + return; + } + const sourceIndex = columnsOrder.indexOf(sourceColumn); + const targetIndex = columnsOrder.indexOf(targetColumn); + + if (sourceIndex !== -1 && targetIndex !== -1) { + const removedColumn = columnsOrder.splice(sourceIndex, 1)[0]; + + columnsOrder.splice(targetIndex, 0, removedColumn); + + // update the columns order + setColumnsOrder([...columnsOrder]); + } + }; + + return ( + + {children} + + ); +}; diff --git a/package/DataTableHeader.tsx b/package/DataTableHeader.tsx index 0eaa9bd2c..516eb0eaf 100644 --- a/package/DataTableHeader.tsx +++ b/package/DataTableHeader.tsx @@ -78,6 +78,8 @@ export const DataTableHeader = forwardRef(function DataTableHeader( width, title, sortable, + draggable, + toggleable, titleClassName, titleStyle, filter, @@ -95,6 +97,8 @@ export const DataTableHeader = forwardRef(function DataTableHeader( width={width} title={title} sortable={sortable} + draggable={draggable} + toggleable={toggleable} sortStatus={sortStatus} sortIcons={sortIcons} onSortStatusChange={onSortStatusChange} diff --git a/package/DataTableHeaderCell.css b/package/DataTableHeaderCell.css index 07677cceb..5aa987c1b 100644 --- a/package/DataTableHeaderCell.css +++ b/package/DataTableHeaderCell.css @@ -6,6 +6,35 @@ } } +.mantine-datatable-header-cell-draggable { + cursor: grab; + border-radius: 6px; + transition: all 0.2s; + &:active { + cursor: grabbing; + } + &:hover:not(:has(button:hover)) { + background: light-dark(var(--mantine-color-gray-2), var(--mantine-color-dark-6)); + } +} + +.mantine-datatable-header-cell-drag-over { + background-color: light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-6)) !important +} + +.mantine-datatable-header-cell-toggleable-icon { + transition: opacity 0.2s; + opacity: 0.1; +} + +.mantine-datatable-header-cell-toggleable { + &:hover { + .mantine-datatable-header-cell-toggleable-icon { + opacity: 1; + } + } +} + .mantine-datatable-header-cell-sortable-group { gap: 0.25em; } diff --git a/package/DataTableHeaderCell.tsx b/package/DataTableHeaderCell.tsx index 88abb2aa5..e3c33e5fa 100644 --- a/package/DataTableHeaderCell.tsx +++ b/package/DataTableHeaderCell.tsx @@ -1,9 +1,26 @@ -import { Box, Center, Group, MantineStyleProp, TableTh, type MantineTheme } from '@mantine/core'; +import { + ActionIcon, + Box, + Center, + Checkbox, + Flex, + Group, + MantineStyleProp, + Popover, + Stack, + TableTh, + type MantineTheme, +} from '@mantine/core'; import clsx from 'clsx'; +import { useState } from 'react'; +import { useDataTableDragToggleColumnsContext } from './DataTableDragToggleColumns.context'; import { DataTableHeaderCellFilter } from './DataTableHeaderCellFilter'; import { useMediaQueryStringOrFunction } from './hooks'; +import { DataTableColumnToggle } from './hooks/useDragToggleColumns'; import { IconArrowUp } from './icons/IconArrowUp'; import { IconArrowsVertical } from './icons/IconArrowsVertical'; +import { IconGripVertical } from './icons/IconGripVertical'; +import { IconX } from './icons/IconX'; import type { DataTableColumn, DataTableSortProps } from './types'; import { ELLIPSIS, NOWRAP, TEXT_ALIGN_CENTER, TEXT_ALIGN_LEFT, TEXT_ALIGN_RIGHT } from './utilityClasses'; import { humanize } from './utils'; @@ -16,7 +33,10 @@ type DataTableHeaderCellProps = { sortStatus: DataTableSortProps['sortStatus']; sortIcons: DataTableSortProps['sortIcons']; onSortStatusChange: DataTableSortProps['onSortStatusChange']; -} & Pick, 'accessor' | 'sortable' | 'textAlign' | 'width' | 'filter' | 'filtering'>; +} & Pick< + DataTableColumn, + 'accessor' | 'sortable' | 'draggable' | 'toggleable' | 'textAlign' | 'width' | 'filter' | 'filtering' +>; export function DataTableHeaderCell({ className, @@ -25,6 +45,8 @@ export function DataTableHeaderCell({ visibleMediaQuery, title, sortable, + draggable, + toggleable, sortIcons, textAlign, width, @@ -33,9 +55,17 @@ export function DataTableHeaderCell({ filter, filtering, }: DataTableHeaderCellProps) { + const { setSourceColumn, setTargetColumn, swapColumns, columnsToggle, setColumnsToggle } = + useDataTableDragToggleColumnsContext(); + + const [dragOver, setDragOver] = useState(false); + + const [columnsPopoverOpened, setColumnsPopoverOpened] = useState(false); + if (!useMediaQueryStringOrFunction(visibleMediaQuery)) return null; const text = title ?? humanize(accessor as string); const tooltip = typeof text === 'string' ? text : undefined; + const sortAction = sortable && onSortStatusChange ? (e?: React.BaseSyntheticEvent) => { @@ -52,11 +82,52 @@ export function DataTableHeaderCell({ }); } : undefined; + + const handleColumnDragStart = (e: React.DragEvent) => { + e.stopPropagation(); + setSourceColumn(accessor as string); + setDragOver(false); + }; + + const handleColumnDragOver = (e: React.DragEvent) => { + e.preventDefault(); + setTargetColumn(accessor as string); + setDragOver(true); + }; + + const handleColumnDrop = () => { + setTargetColumn(accessor as string); + setDragOver(false); + swapColumns(); + }; + + const handleColumnDragEnter = () => { + setDragOver(true); + }; + + const handleColumnDragLeave = () => { + setDragOver(false); + }; + + const handleColumnToggle = (e: React.MouseEvent) => { + e.stopPropagation(); + + setColumnsToggle((columnsToggle) => + columnsToggle.map((c) => { + if (c.accessor === accessor) { + return { ...c, toggled: false }; + } + return c; + }) + ); + }; + return ( ({ role={sortable ? 'button' : undefined} tabIndex={sortable ? 0 : undefined} onClick={sortAction} + onContextMenu={(e) => { + if (toggleable) { + e.preventDefault(); + setColumnsPopoverOpened(true); + } + }} onKeyDown={(e) => e.key === 'Enter' && sortAction?.()} > - - {text} - + + + {draggable ? ( +
    + ) => { + e.stopPropagation(); + }} + > + + +
    + ) : null} + + {text} + +
    +
    + + + {columnsToggle + .filter((column) => column.toggleable) + .map((column: DataTableColumnToggle) => { + return ( + + { + setColumnsToggle( + columnsToggle.map((c: DataTableColumnToggle) => { + if (c.accessor === column.accessor) { + return { ...c, toggled: e.currentTarget.checked }; + } + return c; + }) + ); + }} + /> + + ); + })} + + + + {toggleable ? ( +
    + + + +
    + ) : null} {sortable || sortStatus?.columnAccessor === accessor ? ( <> {sortStatus?.columnAccessor === accessor ? ( diff --git a/package/hooks/useDragToggleColumns.ts b/package/hooks/useDragToggleColumns.ts new file mode 100644 index 000000000..1d5f26587 --- /dev/null +++ b/package/hooks/useDragToggleColumns.ts @@ -0,0 +1,81 @@ +import { useLocalStorage } from '@mantine/hooks'; +import { useMemo } from 'react'; +import { DataTableColumn } from '../types/DataTableColumn'; + +export type DataTableColumnToggle = { + accessor: string | undefined; + defaultToggle: boolean; + toggleable: boolean; + toggled: boolean; +}; + +export const useDragToggleColumns = ({ + key, + columns = [], +}: { + key: string | undefined; + columns: DataTableColumn[]; +}) => { + // Default columns id ordered is the order of the columns in the array + const defaultColumnsOrder = (columns && columns.map((column) => column.accessor)) || []; + + // Default columns id toggled is the array of columns which have the toggleable property set to true + const defaultColumnsToggle = + columns && + columns.map((column) => ({ + accessor: column.accessor, + defaultToggle: column.defaultToggle || true, + toggleable: column.toggleable, + toggled: column.defaultToggle || true, + })); + + // Store the columns order in localStorage + const [columnsOrder, setColumnsOrder] = useLocalStorage({ + key: `${key}-columns-order`, + defaultValue: defaultColumnsOrder as string[], + getInitialValueInEffect: true, + }); + + // Store the columns toggle in localStorage + const [columnsToggle, setColumnsToggle] = useLocalStorage({ + key: `${key}-columns-toggle`, + defaultValue: defaultColumnsToggle as DataTableColumnToggle[], + getInitialValueInEffect: true, + }); + + // we won't use the "remove" function from useLocalStorage() because + // we got issue with rendering + const resetColumnsOrder = () => setColumnsOrder(defaultColumnsOrder as string[]); + + const resetColumnsToggle = () => setColumnsToggle(defaultColumnsToggle as DataTableColumnToggle[]); + + const effectiveColumns = useMemo(() => { + if (!columnsOrder) { + return columns; + } + + const result = columnsOrder + .map((order) => columns.find((column) => column.accessor === order)) + .filter((column) => { + return columnsToggle.find((toggle) => { + return toggle.accessor === column?.accessor; + })?.toggled; + }); + + return result; + }, [columns, columnsOrder, columnsToggle]); + + return { + effectiveColumns: effectiveColumns as DataTableColumn[], + + // Order handling + setColumnsOrder, + columnsOrder: columnsOrder as string[], + resetColumnsOrder, + + // Toggle handling + columnsToggle: columnsToggle as DataTableColumnToggle[], + setColumnsToggle, + resetColumnsToggle, + } as const; +}; diff --git a/package/icons/IconGripVertical.tsx b/package/icons/IconGripVertical.tsx new file mode 100644 index 000000000..81dca3e94 --- /dev/null +++ b/package/icons/IconGripVertical.tsx @@ -0,0 +1,23 @@ +export function IconGripVertical() { + return ( + + + + + + + + + + ); +} diff --git a/package/icons/IconX.tsx b/package/icons/IconX.tsx new file mode 100644 index 000000000..d8a75f553 --- /dev/null +++ b/package/icons/IconX.tsx @@ -0,0 +1,19 @@ +export function IconX() { + return ( + + + + + + ); +} diff --git a/package/types/DataTableColumn.ts b/package/types/DataTableColumn.ts index 5deca4d59..079da554c 100644 --- a/package/types/DataTableColumn.ts +++ b/package/types/DataTableColumn.ts @@ -34,13 +34,28 @@ export type DataTableColumn> = { */ sortable?: boolean; + /** + * If set to true, the column can be dragged. + */ + draggable?: boolean; + + /** + * If set to true, the column can be toggled. + */ + toggleable?: boolean; + + /** + * If set to true, the column will be toggled by default. + */ + defaultToggle?: boolean; + /** * Optional node providing the user with filtering options. * If present, a filter button will be added to the column's header. Upon clicking that button, * a pop-over showing the provided node will be opened. * * Alternatively, a function returning a node can be provided. The function receives props with a `close` - * method which allows programatically closing the pop-over. + * method which allows programmatically closing the pop-over. * * ```tsx * // … diff --git a/package/types/DataTableProps.ts b/package/types/DataTableProps.ts index 9b565edee..975c3fa44 100644 --- a/package/types/DataTableProps.ts +++ b/package/types/DataTableProps.ts @@ -82,6 +82,12 @@ export type DataTableProps> = { */ defaultColumnProps?: DataTableDefaultColumnProps; + /** + * If you want to use drag and drop as well as toggle to reorder and toggle columns + * provide a unique key which will be used to store the column order in localStorage. + */ + storeColumnsKey?: string | undefined; + /** * A default render function for all columns. * Accepts the current record, its index in `records` and the column `accessor` as From cc11c8fbe2e829a5599c64ae4cad63820ae09a7f Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 15:43:24 +0200 Subject: [PATCH 02/22] Add credit to Giovambattista Fazioli for d&t feat --- app/config.ts | 6 +++--- .../DraggingExample.tsx | 0 .../DraggingTogglingComplexExample.tsx | 0 .../DraggingTogglingResetExample.tsx | 0 .../TogglingExample.tsx | 0 .../page.tsx | 9 ++++++++- 6 files changed, 11 insertions(+), 4 deletions(-) rename app/examples/{dragging-toggling => column-dragging-and-toggling}/DraggingExample.tsx (100%) rename app/examples/{dragging-toggling => column-dragging-and-toggling}/DraggingTogglingComplexExample.tsx (100%) rename app/examples/{dragging-toggling => column-dragging-and-toggling}/DraggingTogglingResetExample.tsx (100%) rename app/examples/{dragging-toggling => column-dragging-and-toggling}/TogglingExample.tsx (100%) rename app/examples/{dragging-toggling => column-dragging-and-toggling}/page.tsx (86%) diff --git a/app/config.ts b/app/config.ts index 771112503..a7f5c09fa 100644 --- a/app/config.ts +++ b/app/config.ts @@ -138,9 +138,9 @@ export const ROUTES: RouteInfo[] = [ description: `Example: sorting data with ${PRODUCT_NAME}`, }, { - href: '/examples/dragging-toggling', - title: 'Dragging & Toggling', - description: `Example: dragging & toggling columns with ${PRODUCT_NAME}`, + href: '/examples/column-dragging-and-toggling', + title: 'Column dragging and toggling', + description: `Example: dragging & toggling ${PRODUCT_NAME} columns`, }, { href: '/examples/infinite-scrolling', diff --git a/app/examples/dragging-toggling/DraggingExample.tsx b/app/examples/column-dragging-and-toggling/DraggingExample.tsx similarity index 100% rename from app/examples/dragging-toggling/DraggingExample.tsx rename to app/examples/column-dragging-and-toggling/DraggingExample.tsx diff --git a/app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx b/app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx similarity index 100% rename from app/examples/dragging-toggling/DraggingTogglingComplexExample.tsx rename to app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx diff --git a/app/examples/dragging-toggling/DraggingTogglingResetExample.tsx b/app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx similarity index 100% rename from app/examples/dragging-toggling/DraggingTogglingResetExample.tsx rename to app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx diff --git a/app/examples/dragging-toggling/TogglingExample.tsx b/app/examples/column-dragging-and-toggling/TogglingExample.tsx similarity index 100% rename from app/examples/dragging-toggling/TogglingExample.tsx rename to app/examples/column-dragging-and-toggling/TogglingExample.tsx diff --git a/app/examples/dragging-toggling/page.tsx b/app/examples/column-dragging-and-toggling/page.tsx similarity index 86% rename from app/examples/dragging-toggling/page.tsx rename to app/examples/column-dragging-and-toggling/page.tsx index e5d61a844..d89fb55b8 100644 --- a/app/examples/dragging-toggling/page.tsx +++ b/app/examples/column-dragging-and-toggling/page.tsx @@ -1,6 +1,8 @@ import { Code } from '@mantine/core'; import type { Route } from 'next'; +import { REPO_LINK } from '~/app/config'; import { CodeBlock } from '~/components/CodeBlock'; +import { ExternalLink } from '~/components/ExternalLink'; import { PageNavigation } from '~/components/PageNavigation'; import { PageSubtitle } from '~/components/PageSubtitle'; import { PageTitle } from '~/components/PageTitle'; @@ -13,7 +15,7 @@ import DraggingTogglingComplexExample from './DraggingTogglingComplexExample'; import DraggingTogglingResetExample from './DraggingTogglingResetExample'; import TogglingExample from './TogglingExample'; -const PATH: Route = '/examples/dragging-toggling'; +const PATH: Route = '/examples/column-dragging-and-toggling'; export const metadata = getRouteMetadata(PATH); @@ -28,6 +30,11 @@ export default async function DraggingExamplePage() { return ( <> + + Starting from v7.3, Mantine DataTable supports column dragging and toggling, thanks to the{' '} + outstanding work of{' '} + Giovambattista Fazioli. + In order to enable Dragging you’ll have to: From e3b8e114701d7f9e48499d61fb63fb65439efcfc Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 15:46:17 +0200 Subject: [PATCH 03/22] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 90aa27052..c63478ab5 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ The lightweight, dependency-free, **dark-theme aware** table component for your - **[Additive batch rows selection](https://icflorescu.github.io/mantine-datatable/examples/records-selection)** - select or deselect ranges of rows using the Shift key - **[Automatically-scrollable](https://icflorescu.github.io/mantine-datatable/examples/scrollable-vs-auto-height)** - automatically scrollable or auto-height - **[AutoAnimate support](https://icflorescu.github.io/mantine-datatable/examples/using-with-auto-animate)** - animate row sorting, addition and removal +- **[Column dragging and toggling](https://icflorescu.github.io/mantine-datatable/examples/column-dragging-and-toggling)** - drag and drop columns to reorder them, toggle column visibility (thanks to [Giovambattista Fazioli](https://github.com/gfazioli)) - **More** - check out the [full documentation](https://icflorescu.github.io/mantine-datatable/) ## Trusted by the community From 9a297e20e691efa034ed8db962f3289535242528 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 16:54:59 +0200 Subject: [PATCH 04/22] Update deps & CHANGELOG --- CHANGELOG.md | 5 + app/layout.css | 8 +- app/styling/examples/fine-grained/layout.css | 2 +- package.json | 50 +- yarn.lock | 1303 +++++++++--------- 5 files changed, 698 insertions(+), 670 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index da2806c9b..b521e71dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ The following is a list of notable changes to the Mantine DataTable component. Minor versions that are not listed in the changelog are bug fixes and small improvements. +## 7.3.0 (2023-12-07) + +- Implement column dragging and toggling (see [#483](https://github.com/icflorescu/mantine-datatable/pull/483)); +- Update deps to ensure compatibility with Mantine 7.3.0 + ## 7.1.7 (2023-11-13) - Make sure to omit `stickyHeader` and `stickyHeaderOffset` properties from inherited Table component props to avoid confusion, since Mantine DataTable header is sticky "as needed" diff --git a/app/layout.css b/app/layout.css index 44aedff4b..68d43a129 100644 --- a/app/layout.css +++ b/app/layout.css @@ -1,7 +1,7 @@ -@import '@mantine/core/esm/index.css' layer(mantine-core); -@import '@mantine/dates/esm/index.css' layer(mantine-dates); -@import '@mantine/notifications/esm/index.css' layer(mantine-notifications); -@import '@mantine/code-highlight/esm/index.css' layer(mantine-code-highlight); +@import '@mantine/core/styles.css' layer(mantine-core); +@import '@mantine/dates/styles.css' layer(mantine-dates); +@import '@mantine/notifications/styles.css' layer(mantine-notifications); +@import '@mantine/code-highlight/styles.css' layer(mantine-code-highlight); @import 'mantine-contextmenu/dist/styles.css' layer(mantine-contextmenu); @import '../package/styles.css' layer(mantine-datatable); @import '@docsearch/css'; diff --git a/app/styling/examples/fine-grained/layout.css b/app/styling/examples/fine-grained/layout.css index bb778d107..07c4eafe2 100644 --- a/app/styling/examples/fine-grained/layout.css +++ b/app/styling/examples/fine-grained/layout.css @@ -1,5 +1,5 @@ /* 👇 Expressly import the mantine core styles into mantine-core layer */ -@import '@mantine/core/esm/index.css' layer(mantine-core); +@import '@mantine/core/styles.css' layer(mantine-core); /* 👇 Expressly import the mantine-datatable styles into mantine-datatable layer */ @import '__PACKAGE__/dist/styles.css' layer(mantine-datatable); diff --git a/package.json b/package.json index 086df3109..be9f26f10 100644 --- a/package.json +++ b/package.json @@ -75,41 +75,41 @@ "@ducanh2912/next-pwa": "^9.7.2", "@faker-js/faker": "^8.3.1", "@formkit/auto-animate": "^0.8.1", - "@mantine/code-highlight": "^7.2.2", - "@mantine/core": "^7.2.2", - "@mantine/dates": "^7.2.2", - "@mantine/hooks": "^7.2.2", - "@mantine/modals": "^7.2.2", - "@mantine/notifications": "^7.2.2", - "@tabler/icons-react": "^2.40.0", - "@tanstack/react-query": "^5.8.4", - "@types/lodash": "^4.14.201", - "@types/node": "^20.9.0", - "@types/react": "^18.2.37", - "@types/react-dom": "^18.2.15", - "@typescript-eslint/eslint-plugin": "^6.11.0", - "@typescript-eslint/parser": "^6.11.0", + "@mantine/code-highlight": "^7.3.1", + "@mantine/core": "^7.3.1", + "@mantine/dates": "^7.3.1", + "@mantine/hooks": "^7.3.1", + "@mantine/modals": "^7.3.1", + "@mantine/notifications": "^7.3.1", + "@tabler/icons-react": "^2.42.0", + "@tanstack/react-query": "^5.12.2", + "@types/lodash": "^4.14.202", + "@types/node": "^20.10.4", + "@types/react": "^18.2.42", + "@types/react-dom": "^18.2.17", + "@typescript-eslint/eslint-plugin": "^6.13.2", + "@typescript-eslint/parser": "^6.13.2", "clsx": "^2.0.0", "cssnano": "^6.0.1", "dayjs": "^1.11.10", - "eslint": "^8.53.0", - "eslint-config-next": "^14.0.2", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.55.0", + "eslint-config-next": "^14.0.3", + "eslint-config-prettier": "^9.1.0", "lodash": "^4.17.21", - "mantine-contextmenu": "^7.1.12", - "next": "14.0.2", - "postcss": "^8.4.31", - "postcss-cli": "^10.1.0", + "mantine-contextmenu": "^7.3.0", + "next": "14.0.3", + "postcss": "^8.4.32", + "postcss-cli": "^11.0.0", "postcss-import": "^15.1.0", - "postcss-preset-mantine": "^1.11.0", + "postcss-preset-mantine": "^1.11.1", "postcss-simple-vars": "^7.0.1", "prettier": "^3.1.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "sharp": "^0.32.6", + "sharp": "^0.33.0", "swr": "^2.2.4", - "tsup": "^7.2.0", - "typescript": "^5.2.2", + "tsup": "^8.0.1", + "typescript": "^5.3.3", "webpack": "^5.89.0" }, "peerDependencies": { diff --git a/yarn.lock b/yarn.lock index 425876699..a1fd74933 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1115,115 +1115,122 @@ workbox-webpack-plugin "7.0.0" workbox-window "7.0.0" -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - -"@esbuild/darwin-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" - integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@emnapi/runtime@^0.44.0": + version "0.44.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-0.44.0.tgz#1ef702f846cfcd559d28eb7673919087ba5b63e3" + integrity sha512-ZX/etZEZw8DR7zAB1eVQT40lNo0jeqpb6dCgOvctB6FIQ5PoXfMuNY8+ayQfu8tNQbAB8gQWSSJupR8NxeiZXw== + dependencies: + tslib "^2.4.0" + +"@esbuild/android-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.8.tgz#fb7130103835b6d43ea499c3f30cfb2b2ed58456" + integrity sha512-B8JbS61bEunhfx8kasogFENgQfr/dIp+ggYXwTqdbMAgGDhRa3AaPpQMuQU0rNxDLECj6FhDzk1cF9WHMVwrtA== + +"@esbuild/android-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.8.tgz#b46e4d9e984e6d6db6c4224d72c86b7757e35bcb" + integrity sha512-31E2lxlGM1KEfivQl8Yf5aYU/mflz9g06H6S15ITUFQueMFtFjESRMoDSkvMo8thYvLBax+VKTPlpnx+sPicOA== + +"@esbuild/android-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.8.tgz#a13db9441b5a4f4e4fec4a6f8ffacfea07888db7" + integrity sha512-rdqqYfRIn4jWOp+lzQttYMa2Xar3OK9Yt2fhOhzFXqg0rVWEfSclJvZq5fZslnz6ypHvVf3CT7qyf0A5pM682A== + +"@esbuild/darwin-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.8.tgz#49f5718d36541f40dd62bfdf84da9c65168a0fc2" + integrity sha512-RQw9DemMbIq35Bprbboyf8SmOr4UXsRVxJ97LgB55VKKeJOOdvsIPy0nFyF2l8U+h4PtBx/1kRf0BelOYCiQcw== + +"@esbuild/darwin-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.8.tgz#75c5c88371eea4bfc1f9ecfd0e75104c74a481ac" + integrity sha512-3sur80OT9YdeZwIVgERAysAbwncom7b4bCI2XKLjMfPymTud7e/oY4y+ci1XVp5TfQp/bppn7xLw1n/oSQY3/Q== + +"@esbuild/freebsd-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.8.tgz#9d7259fea4fd2b5f7437b52b542816e89d7c8575" + integrity sha512-WAnPJSDattvS/XtPCTj1tPoTxERjcTpH6HsMr6ujTT+X6rylVe8ggxk8pVxzf5U1wh5sPODpawNicF5ta/9Tmw== + +"@esbuild/freebsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.8.tgz#abac03e1c4c7c75ee8add6d76ec592f46dbb39e3" + integrity sha512-ICvZyOplIjmmhjd6mxi+zxSdpPTKFfyPPQMQTK/w+8eNK6WV01AjIztJALDtwNNfFhfZLux0tZLC+U9nSyA5Zg== + +"@esbuild/linux-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.8.tgz#c577932cf4feeaa43cb9cec27b89cbe0df7d9098" + integrity sha512-z1zMZivxDLHWnyGOctT9JP70h0beY54xDDDJt4VpTX+iwA77IFsE1vCXWmprajJGa+ZYSqkSbRQ4eyLCpCmiCQ== + +"@esbuild/linux-arm@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.8.tgz#d6014d8b98b5cbc96b95dad3d14d75bb364fdc0f" + integrity sha512-H4vmI5PYqSvosPaTJuEppU9oz1dq2A7Mr2vyg5TF9Ga+3+MGgBdGzcyBP7qK9MrwFQZlvNyJrvz6GuCaj3OukQ== + +"@esbuild/linux-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.8.tgz#2379a0554307d19ac4a6cdc15b08f0ea28e7a40d" + integrity sha512-1a8suQiFJmZz1khm/rDglOc8lavtzEMRo0v6WhPgxkrjcU0LkHj+TwBrALwoz/OtMExvsqbbMI0ChyelKabSvQ== + +"@esbuild/linux-loong64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.8.tgz#e2a5bbffe15748b49356a6cd7b2d5bf60c5a7123" + integrity sha512-fHZWS2JJxnXt1uYJsDv9+b60WCc2RlvVAy1F76qOLtXRO+H4mjt3Tr6MJ5l7Q78X8KgCFudnTuiQRBhULUyBKQ== + +"@esbuild/linux-mips64el@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.8.tgz#1359331e6f6214f26f4b08db9b9df661c57cfa24" + integrity sha512-Wy/z0EL5qZYLX66dVnEg9riiwls5IYnziwuju2oUiuxVc+/edvqXa04qNtbrs0Ukatg5HEzqT94Zs7J207dN5Q== + +"@esbuild/linux-ppc64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.8.tgz#9ba436addc1646dc89dae48c62d3e951ffe70951" + integrity sha512-ETaW6245wK23YIEufhMQ3HSeHO7NgsLx8gygBVldRHKhOlD1oNeNy/P67mIh1zPn2Hr2HLieQrt6tWrVwuqrxg== + +"@esbuild/linux-riscv64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.8.tgz#fbcf0c3a0b20f40b5fc31c3b7695f0769f9de66b" + integrity sha512-T2DRQk55SgoleTP+DtPlMrxi/5r9AeFgkhkZ/B0ap99zmxtxdOixOMI570VjdRCs9pE4Wdkz7JYrsPvsl7eESg== + +"@esbuild/linux-s390x@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.8.tgz#989e8a05f7792d139d5564ffa7ff898ac6f20a4a" + integrity sha512-NPxbdmmo3Bk7mbNeHmcCd7R7fptJaczPYBaELk6NcXxy7HLNyWwCyDJ/Xx+/YcNH7Im5dHdx9gZ5xIwyliQCbg== + +"@esbuild/linux-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.8.tgz#b187295393a59323397fe5ff51e769ec4e72212b" + integrity sha512-lytMAVOM3b1gPypL2TRmZ5rnXl7+6IIk8uB3eLsV1JwcizuolblXRrc5ShPrO9ls/b+RTp+E6gbsuLWHWi2zGg== + +"@esbuild/netbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.8.tgz#c1ec0e24ea82313cb1c7bae176bd5acd5bde7137" + integrity sha512-hvWVo2VsXz/8NVt1UhLzxwAfo5sioj92uo0bCfLibB0xlOmimU/DeAEsQILlBQvkhrGjamP0/el5HU76HAitGw== + +"@esbuild/openbsd-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.8.tgz#0c5b696ac66c6d70cf9ee17073a581a28af9e18d" + integrity sha512-/7Y7u77rdvmGTxR83PgaSvSBJCC2L3Kb1M/+dmSIvRvQPXXCuC97QAwMugBNG0yGcbEGfFBH7ojPzAOxfGNkwQ== + +"@esbuild/sunos-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.8.tgz#2a697e1f77926ff09fcc457d8f29916d6cd48fb1" + integrity sha512-9Lc4s7Oi98GqFA4HzA/W2JHIYfnXbUYgekUP/Sm4BG9sfLjyv6GKKHKKVs83SMicBF2JwAX6A1PuOLMqpD001w== + +"@esbuild/win32-arm64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.8.tgz#ec029e62a2fca8c071842ecb1bc5c2dd20b066f1" + integrity sha512-rq6WzBGjSzihI9deW3fC2Gqiak68+b7qo5/3kmB6Gvbh/NYPA0sJhrnp7wgV4bNwjqM+R2AApXGxMO7ZoGhIJg== + +"@esbuild/win32-ia32@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.8.tgz#cbb9a3146bde64dc15543e48afe418c7a3214851" + integrity sha512-AIAbverbg5jMvJznYiGhrd3sumfwWs8572mIJL5NQjJa06P8KfCPWZQ0NwZbPQnbQi9OWSZhFVSUWjjIrn4hSw== + +"@esbuild/win32-x64@0.19.8": + version "0.19.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.8.tgz#c8285183dbdb17008578dbacb6e22748709b4822" + integrity sha512-bfZ0cQ1uZs2PqpulNL5j/3w+GDhP36k1K5c38QdQg+Swy51jFZWWeIkteNsufkQxp986wnqRRsb/bHbY1WQ7TA== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" @@ -1237,10 +1244,10 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.1.3": - version "2.1.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.3.tgz#797470a75fe0fbd5a53350ee715e85e87baff22d" - integrity sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA== +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -1252,10 +1259,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.53.0": - version "8.53.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.53.0.tgz#bea56f2ed2b5baea164348ff4d5a879f6f81f20d" - integrity sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w== +"@eslint/js@8.55.0": + version "8.55.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.55.0.tgz#b721d52060f369aa259cf97392403cb9ce892ec6" + integrity sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA== "@faker-js/faker@^8.3.1": version "8.3.1" @@ -1322,6 +1329,119 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@img/sharp-darwin-arm64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.0.tgz#b3e4ed1887f53faca5e95e3fd9f25181432353ed" + integrity sha512-070tEheekI1LJWTGPC9WlQEa5UoKTXzzlORBHMX4TbfUxMiL336YHR8vBEUNsjse0RJCX8dZ4ZXwT595aEF1ug== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.0" + +"@img/sharp-darwin-x64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.0.tgz#277714bff6e6d468162146019933a416467f3082" + integrity sha512-pu/nvn152F3qbPeUkr+4e9zVvEhD3jhwzF473veQfMPkOYo9aoWXSfdZH/E6F+nYC3qvFjbxbvdDbUtEbghLqw== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.0" + +"@img/sharp-libvips-darwin-arm64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.0.tgz#8baf27b01dabba524e885c30287e1916ab978de7" + integrity sha512-VzYd6OwnUR81sInf3alj1wiokY50DjsHz5bvfnsFpxs5tqQxESoHtJO6xyksDs3RIkyhMWq2FufXo6GNSU9BMw== + +"@img/sharp-libvips-darwin-x64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.0.tgz#509113f649d3ea0e99b76d41437fc0049d8ba2f9" + integrity sha512-dD9OznTlHD6aovRswaPNEy8dKtSAmNo4++tO7uuR4o5VxbVAOoEQ1uSmN4iFAdQneTHws1lkTZeiXPrcCkh6IA== + +"@img/sharp-libvips-linux-arm64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.0.tgz#9e131cc95f9f8aa36da9addee89efead21ad9993" + integrity sha512-xTYThiqEZEZc0PRU90yVtM3KE7lw1bKdnDQ9kCTHWbqWyHOe4NpPOtMGy27YnN51q0J5dqRrvicfPbALIOeAZA== + +"@img/sharp-libvips-linux-arm@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.0.tgz#a529f68a28ab1d219907071c41ace029121d1c4f" + integrity sha512-VwgD2eEikDJUk09Mn9Dzi1OW2OJFRQK+XlBTkUNmAWPrtj8Ly0yq05DFgu1VCMx2/DqCGQVi5A1dM9hTmxf3uw== + +"@img/sharp-libvips-linux-s390x@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.0.tgz#c26aaa9ee58b47ff901bb5f93f29c4ab3f03caf7" + integrity sha512-o9E46WWBC6JsBlwU4QyU9578G77HBDT1NInd+aERfxeOPbk0qBZHgoDsQmA2v9TbqJRWzoBPx1aLOhprBMgPjw== + +"@img/sharp-libvips-linux-x64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.0.tgz#7a04795fbf2668b9dd7c74bf8326cb779131d809" + integrity sha512-naldaJy4hSVhWBgEjfdBY85CAa4UO+W1nx6a1sWStHZ7EUfNiuBTTN2KUYT5dH1+p/xij1t2QSXfCiFJoC5S/Q== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.0.tgz#600e7322faa5ce124d3ae2cbf63808ea47678591" + integrity sha512-OdorplCyvmSAPsoJLldtLh3nLxRrkAAAOHsGWGDYfN0kh730gifK+UZb3dWORRa6EusNqCTjfXV4GxvgJ/nPDQ== + +"@img/sharp-libvips-linuxmusl-x64@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.0.tgz#af33a04e75f192c5396c6a41df8b7b7bf15a8006" + integrity sha512-FW8iK6rJrg+X2jKD0Ajhjv6y74lToIBEvkZhl42nZt563FfxkCYacrXZtd+q/sRQDypQLzY5WdLkVTbJoPyqNg== + +"@img/sharp-linux-arm64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.0.tgz#d9a361c1d5344754f6038cc9d74e1dd4d217f52f" + integrity sha512-dcomVSrtgF70SyOr8RCOCQ8XGVThXwe71A1d8MGA+mXEVRJ/J6/TrCbBEJh9ddcEIIsrnrkolaEvYSHqVhswQw== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.0" + +"@img/sharp-linux-arm@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.0.tgz#e0f804033d99ce2af73c78d47eeb118e28b4af41" + integrity sha512-4horD3wMFd5a0ddbDY8/dXU9CaOgHjEHALAddXgafoR5oWq5s8X61PDgsSeh4Qupsdo6ycfPPSSNBrfVQnwwrg== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.0" + +"@img/sharp-linux-s390x@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.0.tgz#4b6d49f87364c60ae015825746f365385f1c3b54" + integrity sha512-TiVJbx38J2rNVfA309ffSOB+3/7wOsZYQEOlKqOUdWD/nqkjNGrX+YQGz7nzcf5oy2lC+d37+w183iNXRZNngQ== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.0" + +"@img/sharp-linux-x64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.0.tgz#a4fb262f143f468aec974aad6e53d1859a75ec90" + integrity sha512-PaZM4Zi7/Ek71WgTdvR+KzTZpBqrQOFcPe7/8ZoPRlTYYRe43k6TWsf4GVH6XKRLMYeSp8J89RfAhBrSP4itNA== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.0" + +"@img/sharp-linuxmusl-arm64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.0.tgz#423a9e5e3ec1e6476dbdfd78dda91c6f062bfd67" + integrity sha512-1QLbbN0zt+32eVrg7bb1lwtvEaZwlhEsY1OrijroMkwAqlHqFj6R33Y47s2XUv7P6Ie1PwCxK/uFnNqMnkd5kg== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.0" + +"@img/sharp-linuxmusl-x64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.0.tgz#9d0beac9a71cd7d3bc41eef63521e60edc3820f5" + integrity sha512-CecqgB/CnkvCWFhmfN9ZhPGMLXaEBXl4o7WtA6U3Ztrlh/s7FUKX4vNxpMSYLIrWuuzjiaYdfU3+Tdqh1xaHfw== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.0" + +"@img/sharp-wasm32@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.0.tgz#5b085509f04256c43f201552fce5144fe0bd66b9" + integrity sha512-Hn4js32gUX9qkISlemZBUPuMs0k/xNJebUNl/L6djnU07B/HAA2KaxRVb3HvbU5fL242hLOcp0+tR+M8dvJUFw== + dependencies: + "@emnapi/runtime" "^0.44.0" + +"@img/sharp-win32-ia32@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.0.tgz#a89bc502a70e5547cbff9451d06f9962425e7b39" + integrity sha512-5HfcsCZi3l5nPRF2q3bllMVMDXBqEWI3Q8KQONfzl0TferFE5lnsIG0A1YrntMAGqvkzdW6y1Ci1A2uTvxhfzg== + +"@img/sharp-win32-x64@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.0.tgz#bfae1b82608a0d420e4b0b836ddb7dd58eaffa8e" + integrity sha512-i3DtP/2ce1yKFj4OzOnOYltOEL/+dp4dc4dJXJBv6god1AFTcmkaA99H/7SwOmkCOBQkbVvA3lCGm3/5nDtf9Q== + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -1362,112 +1482,112 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@mantine/code-highlight@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/code-highlight/-/code-highlight-7.2.2.tgz#9f7d7efba52318482e3529554838db38fa95c609" - integrity sha512-zR3J8TvHVZjXESTLNd49pZobhJIZcXUr0CGLs8F4TdnslIoN4SNWipQCPa0kDw7qO5CJhfMqgMeEYNh/slPpPg== +"@mantine/code-highlight@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/code-highlight/-/code-highlight-7.3.1.tgz#22b82be7de79ffb4a02dab8c55defcc1c24f2378" + integrity sha512-39hegsELSI2ZfQQDa3CjwU79Jo4kb4lru1AxUcU90p8c0Z09NDL/bDskzco4XWQyOpMQv+j4rm5FrsjNkFGg3A== dependencies: clsx "2.0.0" - highlight.js "^11.7.0" + highlight.js "^11.9.0" -"@mantine/core@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/core/-/core-7.2.2.tgz#fd7df20f4020fb4c96557f7ec06bb912dfb211ca" - integrity sha512-cVGmLjYyKIzjn0LRwamj71O4HT43qCxPGAzMZqkMYGOako7xwBLYQNe7HjL/J0FXJDyfX8OdMylVhgsePWYbng== +"@mantine/core@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/core/-/core-7.3.1.tgz#43a377dda49248777833698c193543dd9b3dd44f" + integrity sha512-WIesapVzK1ERFcALuosaEPuODN/k/FGkryf2d12R7vsDmxmWqX6yNzPUoJDy6j20ueAkyyg4beJZ4PuZfCRW9Q== dependencies: "@floating-ui/react" "^0.24.8" clsx "2.0.0" - react-number-format "^5.2.2" - react-remove-scroll "^2.5.6" + react-number-format "^5.3.1" + react-remove-scroll "^2.5.7" react-textarea-autosize "8.5.3" type-fest "^3.13.1" -"@mantine/dates@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/dates/-/dates-7.2.2.tgz#9e1fcc24d8cc229130d617cf306f6bdcf5b2c550" - integrity sha512-MgUy2qODhXEkdK5OQE3talThrbXKfBK6V0AJ8iwPcrxMoQ77u4aMzTv4+47bEjQeUFyjrT8u916VFd82mn59SA== +"@mantine/dates@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/dates/-/dates-7.3.1.tgz#2f1dedd78c8d7ef81263f601d92d4e9505789626" + integrity sha512-OI2qs5MgdYkwI7n+KuQ1tj9OhHloO0ozVOTSYyF/bgEfawCrd4TM76IcvIbfcTpmTLly1FflqFTM45+KVoQtbQ== dependencies: clsx "2.0.0" -"@mantine/hooks@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-7.2.2.tgz#d116d8659f77c5f05f9dc088887c8857fcb456da" - integrity sha512-7CFSVP2aQHrBwLLAVf0q5dgj+6QTZmhLTNcuc3pE1du+HLFUdyVS6vvQC6kieZXxOd6UzwFGBlN4G+aDx95XeA== +"@mantine/hooks@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/hooks/-/hooks-7.3.1.tgz#407008e6f2d5591d93f707d15b9266b831bada05" + integrity sha512-pbbqPpVou/13xbt/dYYNphPpbDE2XfPN9mUHBoGZgv9FM8IkziNMIOo4PtNlqqqYsyp1lfQIQVKKT+DLZt1C8Q== -"@mantine/modals@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/modals/-/modals-7.2.2.tgz#5ef974e0c086daa4dec714ea0ec7bb072f4c84c0" - integrity sha512-J65xJ5ZULUG8fvNU+UnHboqEs3ueNDTMITUiVucqw4lupt93JHfamuR/PIV2mrXMYqSaKd4NBnxvkmcpjs0uRg== +"@mantine/modals@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/modals/-/modals-7.3.1.tgz#a71e2344f585f4ec5ecd3b7fa532cea7012edb26" + integrity sha512-NJ377SqDLeB1UZ12TIC+FHVdkcVSts3TXwzyfp5/0IielP2s/m786M3ZbYIFpNOqltOB3/by+/+XT/idMQJuGg== -"@mantine/notifications@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/notifications/-/notifications-7.2.2.tgz#1f2370bdeaf70347d7996c113a93f941a1a40936" - integrity sha512-2MQ0jJi9HOspJOAq0sfE5QvacZytYoLB8k0GwnubnFilSACbpDYeoQXZWmKX0joYhHtKR15muTnF+P1s9kmr3Q== +"@mantine/notifications@^7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/notifications/-/notifications-7.3.1.tgz#0e69fa981bc0cd2ca32819a3564d8df9864a9016" + integrity sha512-9q/Kxzc18hx5PZW4uUSoYRKBlVZPojmbS6DFrua9T684MyDz2a4Hhj6d90i+MwDIu39p6C6i3pl8FLoPqeb0ww== dependencies: - "@mantine/store" "7.2.2" + "@mantine/store" "7.3.1" react-transition-group "4.4.5" -"@mantine/store@7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@mantine/store/-/store-7.2.2.tgz#d5948fcc1bb3a4c4ae706692f2a636a9367696b5" - integrity sha512-j8vR8whB332pGI8OXkM2/3rdh4LJxELJQTG+rTsCCd3VQuEJiRTQDKVaOvp9ONja3GU5b1Tk3zhKOrkpgxTJBA== +"@mantine/store@7.3.1": + version "7.3.1" + resolved "https://registry.yarnpkg.com/@mantine/store/-/store-7.3.1.tgz#924e16e9e1af90cc0b383b656d90a39462cdeec1" + integrity sha512-B4kFI0ZhZTftlMvD5d8P0y1ATKFAMIA5MT4j0gNUgYEKMl1KkM/dT3kBPC2/32jz4GM9t2UL+D3CvkTwSX/BsA== -"@next/env@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.2.tgz#c1fb535983bca768e7eccd7b9cf4636127fc6d25" - integrity sha512-HAW1sljizEaduEOes/m84oUqeIDAUYBR1CDwu2tobNlNDFP3cSm9d6QsOsGeNlIppU1p/p1+bWbYCbvwjFiceA== +"@next/env@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.3.tgz#9a58b296e7ae04ffebce8a4e5bd0f87f71de86bd" + integrity sha512-7xRqh9nMvP5xrW4/+L0jgRRX+HoNRGnfJpD+5Wq6/13j3dsdzxO3BCXn7D3hMqsDb+vjZnJq+vI7+EtgrYZTeA== -"@next/eslint-plugin-next@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.2.tgz#421799f46116d8032f1739ce5ce89822453c8f03" - integrity sha512-APrYFsXfAhnysycqxHcpg6Y4i7Ukp30GzVSZQRKT3OczbzkqGjt33vNhScmgoOXYBU1CfkwgtXmNxdiwv1jKmg== +"@next/eslint-plugin-next@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.3.tgz#f32413be4db69f698538c38fd6f4091a2feb54c6" + integrity sha512-j4K0n+DcmQYCVnSAM+UByTVfIHnYQy2ODozfQP+4RdwtRDfobrIvKq1K4Exb2koJ79HSSa7s6B2SA8T/1YR3RA== dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.2.tgz#eba35a1425fee5d305903c85ae0d6d2b0d512c7b" - integrity sha512-i+jQY0fOb8L5gvGvojWyZMfQoQtDVB2kYe7fufOEiST6sicvzI2W5/EXo4lX5bLUjapHKe+nFxuVv7BA+Pd7LQ== - -"@next/swc-darwin-x64@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.2.tgz#8adb4dfc3d596c0816da67df9b75603218cf2a42" - integrity sha512-zRCAO0d2hW6gBEa4wJaLn+gY8qtIqD3gYd9NjruuN98OCI6YyelmhWVVLlREjS7RYrm9OUQIp/iVJFeB6kP1hg== - -"@next/swc-linux-arm64-gnu@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.2.tgz#1f88d066d44c9229a861815e3d449b0037dae14e" - integrity sha512-tSJmiaon8YaKsVhi7GgRizZoV0N1Sx5+i+hFTrCKKQN7s3tuqW0Rov+RYdPhAv/pJl4qiG+XfSX4eJXqpNg3dA== - -"@next/swc-linux-arm64-musl@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.2.tgz#de9b2708abc35dd19429a662a11785d0c54d1ec7" - integrity sha512-dXJLMSEOwqJKcag1BeX1C+ekdPPJ9yXbWIt3nAadhbLx5CjACoB2NQj9Xcqu2tmdr5L6m34fR+fjGPs+ZVPLzA== - -"@next/swc-linux-x64-gnu@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.2.tgz#64bd555dcbc7fd6c38cb86028baf7d7fc80bd4ac" - integrity sha512-WC9KAPSowj6as76P3vf1J3mf2QTm3Wv3FBzQi7UJ+dxWjK3MhHVWsWUo24AnmHx9qDcEtHM58okgZkXVqeLB+Q== - -"@next/swc-linux-x64-musl@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.2.tgz#69e6abf0f516df69acbf663eeb8ed6fd8eebcc38" - integrity sha512-KSSAwvUcjtdZY4zJFa2f5VNJIwuEVnOSlqYqbQIawREJA+gUI6egeiRu290pXioQXnQHYYdXmnVNZ4M+VMB7KQ== - -"@next/swc-win32-arm64-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.2.tgz#82bc49af0986f4b2c113b5f223a559fc51b49b9d" - integrity sha512-2/O0F1SqJ0bD3zqNuYge0ok7OEWCQwk55RPheDYD0va5ij7kYwrFkq5ycCRN0TLjLfxSF6xI5NM6nC5ux7svEQ== - -"@next/swc-win32-ia32-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.2.tgz#2f1958ad82b7f7ec5da8ad8ac2f18ef7a8e7757f" - integrity sha512-vJI/x70Id0oN4Bq/R6byBqV1/NS5Dl31zC+lowO8SDu1fHmUxoAdILZR5X/sKbiJpuvKcCrwbYgJU8FF/Gh50Q== - -"@next/swc-win32-x64-msvc@14.0.2": - version "14.0.2" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.2.tgz#629174f587beb640a431a4a3fe4e26d5d4f8de52" - integrity sha512-Ut4LXIUvC5m8pHTe2j0vq/YDnTEyq6RSR9vHYPqnELrDapPhLNz9Od/L5Ow3J8RNDWpEnfCiQXuVdfjlNEJ7ug== +"@next/swc-darwin-arm64@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.3.tgz#b1a0440ffbf69056451947c4aea5b6d887e9fbbc" + integrity sha512-64JbSvi3nbbcEtyitNn2LEDS/hcleAFpHdykpcnrstITFlzFgB/bW0ER5/SJJwUPj+ZPY+z3e+1jAfcczRLVGw== + +"@next/swc-darwin-x64@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.3.tgz#48b527ef7eb5dbdcaf62fd107bc3a78371f36f09" + integrity sha512-RkTf+KbAD0SgYdVn1XzqE/+sIxYGB7NLMZRn9I4Z24afrhUpVJx6L8hsRnIwxz3ERE2NFURNliPjJ2QNfnWicQ== + +"@next/swc-linux-arm64-gnu@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.3.tgz#0a36475a38b2855ab8ea0fe8b56899bc90184c0f" + integrity sha512-3tBWGgz7M9RKLO6sPWC6c4pAw4geujSwQ7q7Si4d6bo0l6cLs4tmO+lnSwFp1Tm3lxwfMk0SgkJT7EdwYSJvcg== + +"@next/swc-linux-arm64-musl@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.3.tgz#25328a9f55baa09fde6364e7e47ade65c655034f" + integrity sha512-v0v8Kb8j8T23jvVUWZeA2D8+izWspeyeDGNaT2/mTHWp7+37fiNfL8bmBWiOmeumXkacM/AB0XOUQvEbncSnHA== + +"@next/swc-linux-x64-gnu@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.3.tgz#594b747e3c8896b2da67bba54fcf8a6b5a410e5e" + integrity sha512-VM1aE1tJKLBwMGtyBR21yy+STfl0MapMQnNrXkxeyLs0GFv/kZqXS5Jw/TQ3TSUnbv0QPDf/X8sDXuMtSgG6eg== + +"@next/swc-linux-x64-musl@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.3.tgz#a02da58fc6ecad8cf5c5a2a96a7f6030ec7f6215" + integrity sha512-64EnmKy18MYFL5CzLaSuUn561hbO1Gk16jM/KHznYP3iCIfF9e3yULtHaMy0D8zbHfxset9LTOv6cuYKJgcOxg== + +"@next/swc-win32-arm64-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.3.tgz#bf2be23d3ba2ebd0d4a9376a31f783efdb677b48" + integrity sha512-WRDp8QrmsL1bbGtsh5GqQ/KWulmrnMBgbnb+59qNTW1kVi1nG/2ndZLkcbs2GX7NpFLlToLRMWSQXmPzQm4tog== + +"@next/swc-win32-ia32-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.3.tgz#839f8de85a4bf2c3c69242483ab87cb916427551" + integrity sha512-EKffQeqCrj+t6qFFhIFTRoqb2QwX1mU7iTOvMyLbYw3QtqTw9sMwjykyiMlZlrfm2a4fA84+/aeW+PMg1MjuTg== + +"@next/swc-win32-x64-msvc@14.0.3": + version "14.0.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.3.tgz#27b623612b1d0cea6efe0a0d31aa1a335fc99647" + integrity sha512-ERhKPSJ1vQrPiwrs15Pjz/rvDHZmkmvbf/BjPN/UCOI++ODftT0GtasDPi0j+y6PPJi5HsXw+dpRaXUaw4vjuQ== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1527,11 +1647,76 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@rollup/rollup-android-arm-eabi@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.6.1.tgz#0ea289f68ff248b50fea5716ca9f65f7d4dba3ae" + integrity sha512-0WQ0ouLejaUCRsL93GD4uft3rOmB8qoQMU05Kb8CmMtMBe7XUDLAltxVZI1q6byNqEtU7N1ZX1Vw5lIpgulLQA== + +"@rollup/rollup-android-arm64@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.6.1.tgz#27c8c67fc5de574874085a1b480ac65b3e18378e" + integrity sha512-1TKm25Rn20vr5aTGGZqo6E4mzPicCUD79k17EgTLAsXc1zysyi4xXKACfUbwyANEPAEIxkzwue6JZ+stYzWUTA== + +"@rollup/rollup-darwin-arm64@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.6.1.tgz#c5735c042980c85495411af7183dd20294763bd8" + integrity sha512-cEXJQY/ZqMACb+nxzDeX9IPLAg7S94xouJJCNVE5BJM8JUEP4HeTF+ti3cmxWeSJo+5D+o8Tc0UAWUkfENdeyw== + +"@rollup/rollup-darwin-x64@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.6.1.tgz#af844bd54abb73ca3c9cf89a31eec17861d1375d" + integrity sha512-LoSU9Xu56isrkV2jLldcKspJ7sSXmZWkAxg7sW/RfF7GS4F5/v4EiqKSMCFbZtDu2Nc1gxxFdQdKwkKS4rwxNg== + +"@rollup/rollup-linux-arm-gnueabihf@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.6.1.tgz#5e972f63c441eaf859551039b3f18db9b035977d" + integrity sha512-EfI3hzYAy5vFNDqpXsNxXcgRDcFHUWSx5nnRSCKwXuQlI5J9dD84g2Usw81n3FLBNsGCegKGwwTVsSKK9cooSQ== + +"@rollup/rollup-linux-arm64-gnu@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.6.1.tgz#f4cfbc71e3b6fdb395b28b1472414e181515c72d" + integrity sha512-9lhc4UZstsegbNLhH0Zu6TqvDfmhGzuCWtcTFXY10VjLLUe4Mr0Ye2L3rrtHaDd/J5+tFMEuo5LTCSCMXWfUKw== + +"@rollup/rollup-linux-arm64-musl@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.6.1.tgz#6a94c691830dc29bf708de7c640f494996130893" + integrity sha512-FfoOK1yP5ksX3wwZ4Zk1NgyGHZyuRhf99j64I5oEmirV8EFT7+OhUZEnP+x17lcP/QHJNWGsoJwrz4PJ9fBEXw== + +"@rollup/rollup-linux-x64-gnu@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.6.1.tgz#f07bae3f7dc532d9ea5ab36c9071db329f9a1efb" + integrity sha512-DNGZvZDO5YF7jN5fX8ZqmGLjZEXIJRdJEdTFMhiyXqyXubBa0WVLDWSNlQ5JR2PNgDbEV1VQowhVRUh+74D+RA== + +"@rollup/rollup-linux-x64-musl@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.6.1.tgz#357a34fdbf410af88ce48bd802bea6462bb9a8bc" + integrity sha512-RkJVNVRM+piYy87HrKmhbexCHg3A6Z6MU0W9GHnJwBQNBeyhCJG9KDce4SAMdicQnpURggSvtbGo9xAWOfSvIQ== + +"@rollup/rollup-win32-arm64-msvc@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.6.1.tgz#b6e97fd38281667e35297033393cd1101f4a31be" + integrity sha512-v2FVT6xfnnmTe3W9bJXl6r5KwJglMK/iRlkKiIFfO6ysKs0rDgz7Cwwf3tjldxQUrHL9INT/1r4VA0n9L/F1vQ== + +"@rollup/rollup-win32-ia32-msvc@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.6.1.tgz#a95db026c640c8128bfd38546d85342f2329beaf" + integrity sha512-YEeOjxRyEjqcWphH9dyLbzgkF8wZSKAKUkldRY6dgNR5oKs2LZazqGB41cWJ4Iqqcy9/zqYgmzBkRoVz3Q9MLw== + +"@rollup/rollup-win32-x64-msvc@4.6.1": + version "4.6.1" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.6.1.tgz#45785b5caf83200a34a9867ba50d69560880c120" + integrity sha512-0zfTlFAIhgz8V2G8STq8toAjsYYA6eci1hnXuyOTUFnymrtJwnS6uGKiv3v5UrPZkBlamLvrLV2iiaeqCKzb0A== + "@rushstack/eslint-patch@^1.3.3": version "1.5.0" resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.5.0.tgz#5143b0da9c536bfe8beddfeb68bb8b5d647cc7a3" integrity sha512-EF3948ckf3f5uPgYbQ6GhyA56Dmv8yg0+ir+BroRjwdxyZJsekhZzawOecC2rOTPCz173t7ZcR1HHZu0dZgOCw== +"@sindresorhus/merge-streams@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz#9cd84cc15bc865a5ca35fcaae198eb899f7b5c90" + integrity sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw== + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -1549,30 +1734,30 @@ dependencies: tslib "^2.4.0" -"@tabler/icons-react@^2.40.0": - version "2.40.0" - resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.40.0.tgz#14efb60f0d841689c1ddf5691646dbfc3fa01901" - integrity sha512-C+dDOZowFbwI3LGQP0fdua+hOPkGkW7XeMcRXTSdEKc5fD75W6zRO5nXnWivIMRKsi/Y26EDmnQo15N8JX378w== +"@tabler/icons-react@^2.42.0": + version "2.42.0" + resolved "https://registry.yarnpkg.com/@tabler/icons-react/-/icons-react-2.42.0.tgz#139a57cddcd756892c47f4c2040a5d24b34848dd" + integrity sha512-2APr++u24P2mx9vJymJQJORRpu2Qej0rPrtAvgXu8YomHjLXVP+O1VtToSGyoSPH1ysA569XbxrwzOau9Ne12A== dependencies: - "@tabler/icons" "2.40.0" + "@tabler/icons" "2.42.0" prop-types "^15.7.2" -"@tabler/icons@2.40.0": - version "2.40.0" - resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-2.40.0.tgz#96cecc990a03412b88194ce3765280d2e63c1be6" - integrity sha512-VqKsBSX159cLFTnCzkCmGhZtSPJHNN0lM2sC4xe0HPOfPUnjiex7rDHDdut4oe4iKRecDDpwXwM9BcU6xCPlCg== +"@tabler/icons@2.42.0": + version "2.42.0" + resolved "https://registry.yarnpkg.com/@tabler/icons/-/icons-2.42.0.tgz#306a444d18c6cf2966ee9d30262d41da4746fb01" + integrity sha512-ynV4iaC1c1mUhuAr9HRaoq8KrWYmZ0bJEpOh7qTBE+OfdDsdvQUe+0S7FW+DHkJ4RuxQMdO8djrZK7HrUw9YMA== -"@tanstack/query-core@5.8.3": - version "5.8.3" - resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.8.3.tgz#7c6d62721518223e8b27f1a0b5e9bd4e3bb7ecd8" - integrity sha512-SWFMFtcHfttLYif6pevnnMYnBvxKf3C+MHMH7bevyYfpXpTMsLB9O6nNGBdWSoPwnZRXFNyNeVZOw25Wmdasow== +"@tanstack/query-core@5.12.1": + version "5.12.1" + resolved "https://registry.yarnpkg.com/@tanstack/query-core/-/query-core-5.12.1.tgz#2e04b8ab7a04b2f2cfe77c2b0c9b982477373e06" + integrity sha512-WbZztNmKq0t6QjdNmHzezbi/uifYo9j6e2GLJkodsYaYUlzMbAp91RDyeHkIZrm7EfO4wa6Sm5sxJZm5SPlh6w== -"@tanstack/react-query@^5.8.4": - version "5.8.4" - resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.8.4.tgz#7d5ef4dc4e2985fdc607d0f30ff79a8453abe652" - integrity sha512-CD+AkXzg8J72JrE6ocmuBEJfGzEzu/bzkD6sFXFDDB5yji9N20JofXZlN6n0+CaPJuIi+e4YLCbGsyPFKkfNQA== +"@tanstack/react-query@^5.12.2": + version "5.12.2" + resolved "https://registry.yarnpkg.com/@tanstack/react-query/-/react-query-5.12.2.tgz#42b39a1ccc2bdf44137921c2395902ed4239d7eb" + integrity sha512-BeWZu8zVFH20oRc+S/K9ADPgWjEzP/XQCGBNz5IbApUwPQAdwkQYbXODVL5AyAlWiSxhx+P2xlARPBApj2Yrog== dependencies: - "@tanstack/query-core" "5.8.3" + "@tanstack/query-core" "5.12.1" "@trysound/sax@0.2.0": version "0.2.0" @@ -1623,10 +1808,10 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.14.201": - version "4.14.201" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.201.tgz#76f47cb63124e806824b6c18463daf3e1d480239" - integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ== +"@types/lodash@^4.14.202": + version "4.14.202" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" + integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== "@types/minimatch@*": version "5.1.2" @@ -1638,10 +1823,10 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.9.tgz#c7164e0f8d3f12dfae336af0b1f7fdec8c6b204f" integrity sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ== -"@types/node@^20.9.0": - version "20.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" - integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== +"@types/node@^20.10.4": + version "20.10.4" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.4.tgz#b246fd84d55d5b1b71bf51f964bd514409347198" + integrity sha512-D08YG6rr8X90YB56tSIuBaddy/UXAA9RKJoFvrsnogAum/0pmjkgi4+2nx96A330FmioegBWmEYQ+syqCFaveg== dependencies: undici-types "~5.26.4" @@ -1650,10 +1835,10 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" integrity sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w== -"@types/react-dom@^18.2.15": - version "18.2.15" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.15.tgz#921af67f9ee023ac37ea84b1bc0cc40b898ea522" - integrity sha512-HWMdW+7r7MR5+PZqJF6YFNSCtjz1T0dsvo/f1BV6HkV+6erD/nA7wd9NM00KVG83zf2nJ7uATPO9ttdIPvi3gg== +"@types/react-dom@^18.2.17": + version "18.2.17" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.17.tgz#375c55fab4ae671bd98448dcfa153268d01d6f64" + integrity sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg== dependencies: "@types/react" "*" @@ -1666,10 +1851,10 @@ "@types/scheduler" "*" csstype "^3.0.2" -"@types/react@^18.2.37": - version "18.2.37" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.37.tgz#0f03af69e463c0f19a356c2660dbca5d19c44cae" - integrity sha512-RGAYMi2bhRgEXT3f4B92WTohopH6bIXw05FuGlmJEnv/omEn190+QYEIYxIAuIBdKgboYYdVved2p1AxZVQnaw== +"@types/react@^18.2.42": + version "18.2.42" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.42.tgz#6f6b11a904f6d96dda3c2920328a97011a00aba7" + integrity sha512-c1zEr96MjakLYus/wPnuWDo1/zErfdU9rNsIGmE+NV71nx88FG9Ttgo5dqorXTu/LImX2f63WBP986gJkMPNbA== dependencies: "@types/prop-types" "*" "@types/scheduler" "*" @@ -1697,16 +1882,16 @@ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@typescript-eslint/eslint-plugin@^6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz#52aae65174ff526576351f9ccd41cea01001463f" - integrity sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w== +"@typescript-eslint/eslint-plugin@^6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.13.2.tgz#2e03506c5362a65e43cb132c37c9ce2d3cb51470" + integrity sha512-3+9OGAWHhk4O1LlcwLBONbdXsAhLjyCFogJY/cWy2lxdVJ2JrcTF2pTGMaLl2AE7U1l31n8Py4a8bx5DLf/0dQ== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/type-utils" "6.11.0" - "@typescript-eslint/utils" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/type-utils" "6.13.2" + "@typescript-eslint/utils" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -1725,24 +1910,24 @@ "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" -"@typescript-eslint/parser@^6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.11.0.tgz#9640d9595d905f3be4f278bf515130e6129b202e" - integrity sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ== +"@typescript-eslint/parser@^6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.13.2.tgz#390b79cc9a57a5f904d197a201cc4b6bc4f9afb9" + integrity sha512-MUkcC+7Wt/QOGeVlM8aGGJZy1XV5YKjTpq9jK6r6/iLsGXhBVaGP5N0UYvFsu9BFlSpwY9kMretzdBH01rkRXg== dependencies: - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/typescript-estree" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" - integrity sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A== +"@typescript-eslint/scope-manager@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.2.tgz#5fa4e4adace028dafac212c770640b94e7b61052" + integrity sha512-CXQA0xo7z6x13FeDYCgBkjWzNqzBn8RXaE3QVQVIUm74fWJLkJkaHmHdKStrxQllGh6Q4eUGyNpMe0b1hMkXFA== dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" "@typescript-eslint/scope-manager@6.3.0": version "6.3.0" @@ -1752,33 +1937,33 @@ "@typescript-eslint/types" "6.3.0" "@typescript-eslint/visitor-keys" "6.3.0" -"@typescript-eslint/type-utils@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz#d0b8b1ab6c26b974dbf91de1ebc5b11fea24e0d1" - integrity sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA== +"@typescript-eslint/type-utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.2.tgz#ebec2da14a6bb7122e0fd31eea72a382c39c6102" + integrity sha512-Qr6ssS1GFongzH2qfnWKkAQmMUyZSyOr0W54nZNU1MDfo+U4Mv3XveeLZzadc/yq8iYhQZHYT+eoXJqnACM1tw== dependencies: - "@typescript-eslint/typescript-estree" "6.11.0" - "@typescript-eslint/utils" "6.11.0" + "@typescript-eslint/typescript-estree" "6.13.2" + "@typescript-eslint/utils" "6.13.2" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" - integrity sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA== +"@typescript-eslint/types@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.2.tgz#c044aac24c2f6cefb8e921e397acad5417dd0ae6" + integrity sha512-7sxbQ+EMRubQc3wTfTsycgYpSujyVbI1xw+3UMRUcrhSy+pN09y/lWzeKDbvhoqcRbHdc+APLs/PWYi/cisLPg== "@typescript-eslint/types@6.3.0": version "6.3.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== -"@typescript-eslint/typescript-estree@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" - integrity sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ== +"@typescript-eslint/typescript-estree@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.2.tgz#ae556ee154c1acf025b48d37c3ef95a1d55da258" + integrity sha512-SuD8YLQv6WHnOEtKv8D6HZUzOub855cfPnPMKvdM/Bh1plv1f7Q/0iFUDLKKlxHcEstQnaUU4QZskgQq74t+3w== dependencies: - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/visitor-keys" "6.11.0" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/visitor-keys" "6.13.2" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -1798,25 +1983,25 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.11.0.tgz#11374f59ef4cea50857b1303477c08aafa2ca604" - integrity sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g== +"@typescript-eslint/utils@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.2.tgz#8eb89e53adc6d703a879b131e528807245486f89" + integrity sha512-b9Ptq4eAZUym4idijCRzl61oPCwwREcfDI8xGk751Vhzig5fFZR9CyzDz4Sp/nxSLBYxUPyh4QdIDqWykFhNmQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.11.0" - "@typescript-eslint/types" "6.11.0" - "@typescript-eslint/typescript-estree" "6.11.0" + "@typescript-eslint/scope-manager" "6.13.2" + "@typescript-eslint/types" "6.13.2" + "@typescript-eslint/typescript-estree" "6.13.2" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.11.0": - version "6.11.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" - integrity sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ== +"@typescript-eslint/visitor-keys@6.13.2": + version "6.13.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.2.tgz#e0a4a80cf842bb08e6127b903284166ac4a5594c" + integrity sha512-OGznFs0eAQXJsp+xSd6k/O1UbFi/K/L7WjqeRoFE7vadjAF9y0uppXhYNQNEqygjou782maGClOoZwPqF0Drlw== dependencies: - "@typescript-eslint/types" "6.11.0" + "@typescript-eslint/types" "6.13.2" eslint-visitor-keys "^3.4.1" "@typescript-eslint/visitor-keys@6.3.0": @@ -2216,11 +2401,6 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -b4a@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.4.tgz#ef1c1422cae5ce6535ec191baeed7567443f36c9" - integrity sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw== - babel-plugin-polyfill-corejs2@^0.4.5: version "0.4.5" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" @@ -2250,25 +2430,11 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@^4.0.3: - version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" - integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== - dependencies: - buffer "^5.5.0" - inherits "^2.0.4" - readable-stream "^3.4.0" - boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -2321,14 +2487,6 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" - integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.1.13" - builtin-modules@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" @@ -2423,11 +2581,6 @@ chokidar@^3.3.0, chokidar@^3.5.1: optionalDependencies: fsevents "~2.3.2" -chownr@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" @@ -2681,18 +2834,6 @@ debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2752,7 +2893,7 @@ dequal@^2.0.3: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== -detect-libc@^2.0.0, detect-libc@^2.0.2: +detect-libc@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== @@ -2848,13 +2989,6 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== -end-of-stream@^1.1.0, end-of-stream@^1.4.1: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - enhanced-resolve@^5.12.0, enhanced-resolve@^5.15.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -3008,33 +3142,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.18.2: - version "0.18.20" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" - integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== +esbuild@^0.19.2: + version "0.19.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.8.tgz#ad05b72281d84483fa6b5345bd246c27a207b8f1" + integrity sha512-l7iffQpT2OrZfH2rXIp7/FkmaeZM0vxbxN9KfiCwGYuZqzMg/JdvX26R31Zxn/Pxvsrg3Y9N6XTcnknqDyyv4w== optionalDependencies: - "@esbuild/android-arm" "0.18.20" - "@esbuild/android-arm64" "0.18.20" - "@esbuild/android-x64" "0.18.20" - "@esbuild/darwin-arm64" "0.18.20" - "@esbuild/darwin-x64" "0.18.20" - "@esbuild/freebsd-arm64" "0.18.20" - "@esbuild/freebsd-x64" "0.18.20" - "@esbuild/linux-arm" "0.18.20" - "@esbuild/linux-arm64" "0.18.20" - "@esbuild/linux-ia32" "0.18.20" - "@esbuild/linux-loong64" "0.18.20" - "@esbuild/linux-mips64el" "0.18.20" - "@esbuild/linux-ppc64" "0.18.20" - "@esbuild/linux-riscv64" "0.18.20" - "@esbuild/linux-s390x" "0.18.20" - "@esbuild/linux-x64" "0.18.20" - "@esbuild/netbsd-x64" "0.18.20" - "@esbuild/openbsd-x64" "0.18.20" - "@esbuild/sunos-x64" "0.18.20" - "@esbuild/win32-arm64" "0.18.20" - "@esbuild/win32-ia32" "0.18.20" - "@esbuild/win32-x64" "0.18.20" + "@esbuild/android-arm" "0.19.8" + "@esbuild/android-arm64" "0.19.8" + "@esbuild/android-x64" "0.19.8" + "@esbuild/darwin-arm64" "0.19.8" + "@esbuild/darwin-x64" "0.19.8" + "@esbuild/freebsd-arm64" "0.19.8" + "@esbuild/freebsd-x64" "0.19.8" + "@esbuild/linux-arm" "0.19.8" + "@esbuild/linux-arm64" "0.19.8" + "@esbuild/linux-ia32" "0.19.8" + "@esbuild/linux-loong64" "0.19.8" + "@esbuild/linux-mips64el" "0.19.8" + "@esbuild/linux-ppc64" "0.19.8" + "@esbuild/linux-riscv64" "0.19.8" + "@esbuild/linux-s390x" "0.19.8" + "@esbuild/linux-x64" "0.19.8" + "@esbuild/netbsd-x64" "0.19.8" + "@esbuild/openbsd-x64" "0.19.8" + "@esbuild/sunos-x64" "0.19.8" + "@esbuild/win32-arm64" "0.19.8" + "@esbuild/win32-ia32" "0.19.8" + "@esbuild/win32-x64" "0.19.8" escalade@^3.1.1: version "3.1.1" @@ -3051,12 +3185,12 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-next@^14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.0.2.tgz#bbcd7af62ed9700d9dd74c1b8538fdb9495d46ce" - integrity sha512-CasWThlsyIcg/a+clU6KVOMTieuDhTztsrqvniP6AsRki9v7FnojTa7vKQOYM8QSOsQdZ/aElLD1Y2Oc8/PsIg== +eslint-config-next@^14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.0.3.tgz#7a01d23e4ff143ef87b520fab9efc440fa5879f3" + integrity sha512-IKPhpLdpSUyKofmsXUfrvBC49JMUTdeaD8ZIH4v9Vk0sC1X6URTuTJCLtA0Vwuj7V/CQh0oISuSTvNn5//Buew== dependencies: - "@next/eslint-plugin-next" "14.0.2" + "@next/eslint-plugin-next" "14.0.3" "@rushstack/eslint-patch" "^1.3.3" "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" eslint-import-resolver-node "^0.3.6" @@ -3066,10 +3200,10 @@ eslint-config-next@^14.0.2: eslint-plugin-react "^7.33.2" eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" -eslint-config-prettier@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== +eslint-config-prettier@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.7: version "0.3.9" @@ -3198,15 +3332,15 @@ eslint-visitor-keys@^3.4.3: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.53.0: - version "8.53.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.53.0.tgz#14f2c8244298fcae1f46945459577413ba2697ce" - integrity sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag== +eslint@^8.55.0: + version "8.55.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.55.0.tgz#078cb7b847d66f2c254ea1794fa395bf8e7e03f8" + integrity sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.3" - "@eslint/js" "8.53.0" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.55.0" "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -3305,22 +3439,12 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.1.0, fast-fifo@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" - integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== - -fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: +fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== @@ -3331,6 +3455,17 @@ fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glo merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + 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" + fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -3397,11 +3532,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -fs-constants@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" - integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== - fs-extra@^11.0.0: version "11.1.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" @@ -3516,11 +3646,6 @@ get-tsconfig@^4.5.0: dependencies: resolve-pkg-maps "^1.0.0" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3607,16 +3732,17 @@ globby@^11.0.3, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.0.0: - version "13.2.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.2.2.tgz#63b90b1bf68619c2135475cbd4e71e66aa090592" - integrity sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w== +globby@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-14.0.0.tgz#ea9c062a3614e33f516804e778590fcf055256b9" + integrity sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ== 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" globby@^6.1.0: version "6.1.0" @@ -3692,7 +3818,7 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -highlight.js@^11.7.0: +highlight.js@^11.9.0: version "11.9.0" resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-11.9.0.tgz#04ab9ee43b52a41a047432c8103e2158a1b8b5b0" integrity sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw== @@ -3707,11 +3833,6 @@ idb@^7.0.1: resolved "https://registry.yarnpkg.com/idb/-/idb-7.1.1.tgz#d910ded866d32c7ced9befc5bfdf36f572ced72b" integrity sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ== -ieee754@^1.1.13: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -3738,16 +3859,11 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@2: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - internal-slot@^1.0.3, internal-slot@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" @@ -4151,6 +4267,11 @@ lilconfig@^2.0.5, lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== +lilconfig@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -4231,10 +4352,10 @@ magic-string@^0.25.0, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -mantine-contextmenu@^7.1.12: - version "7.1.12" - resolved "https://registry.yarnpkg.com/mantine-contextmenu/-/mantine-contextmenu-7.1.12.tgz#da7f17372bd8c92b949ce53a1a73c5ee047f5a4c" - integrity sha512-6Q0ozFGVqCTP0Jum5tBkTvLqrinznerscUrNHh8R8XHSvgJPDmjMKC/FaFZTD/U/XsFBdgJmLdL4cR2ga0aRag== +mantine-contextmenu@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/mantine-contextmenu/-/mantine-contextmenu-7.3.0.tgz#bbb7424ac276a5f46433d5b32414283b4a9cb9ed" + integrity sha512-qtzvgMNpv8rbnZPlLuaujqZbxlahFYfROn3oeady1+aWkMtag9foFVWprZfS9uata+0CaQKDdtHnrKLrHvoAJw== mdn-data@2.0.28: version "2.0.28" @@ -4281,11 +4402,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4300,16 +4416,11 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" - integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== - ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" @@ -4334,10 +4445,10 @@ nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" @@ -4349,12 +4460,12 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next@14.0.2: - version "14.0.2" - resolved "https://registry.yarnpkg.com/next/-/next-14.0.2.tgz#02ba6a1656edf14d3913c7a3553026e9d6e083c7" - integrity sha512-jsAU2CkYS40GaQYOiLl9m93RTv2DA/tTJ0NRlmZIBIL87YwQ/xR8k796z7IqgM3jydI8G25dXvyYMC9VDIevIg== +next@14.0.3: + version "14.0.3" + resolved "https://registry.yarnpkg.com/next/-/next-14.0.3.tgz#8d801a08eaefe5974203d71092fccc463103a03f" + integrity sha512-AbYdRNfImBr3XGtvnwOxq8ekVCwbFTv/UJoLwmaX89nk9i051AEY4/HAWzU0YpaTDw8IofUpmuIlvzWF13jxIw== dependencies: - "@next/env" "14.0.2" + "@next/env" "14.0.3" "@swc/helpers" "0.5.2" busboy "1.6.0" caniuse-lite "^1.0.30001406" @@ -4362,27 +4473,15 @@ next@14.0.2: styled-jsx "5.1.1" watchpack "2.4.0" optionalDependencies: - "@next/swc-darwin-arm64" "14.0.2" - "@next/swc-darwin-x64" "14.0.2" - "@next/swc-linux-arm64-gnu" "14.0.2" - "@next/swc-linux-arm64-musl" "14.0.2" - "@next/swc-linux-x64-gnu" "14.0.2" - "@next/swc-linux-x64-musl" "14.0.2" - "@next/swc-win32-arm64-msvc" "14.0.2" - "@next/swc-win32-ia32-msvc" "14.0.2" - "@next/swc-win32-x64-msvc" "14.0.2" - -node-abi@^3.3.0: - version "3.51.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.51.0.tgz#970bf595ef5a26a271307f8a4befa02823d4e87d" - integrity sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA== - dependencies: - semver "^7.3.5" - -node-addon-api@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" - integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + "@next/swc-darwin-arm64" "14.0.3" + "@next/swc-darwin-x64" "14.0.3" + "@next/swc-linux-arm64-gnu" "14.0.3" + "@next/swc-linux-arm64-musl" "14.0.3" + "@next/swc-linux-x64-gnu" "14.0.3" + "@next/swc-linux-x64-musl" "14.0.3" + "@next/swc-win32-arm64-msvc" "14.0.3" + "@next/swc-win32-ia32-msvc" "14.0.3" + "@next/swc-win32-x64-msvc" "14.0.3" node-releases@^2.0.13: version "2.0.13" @@ -4478,7 +4577,7 @@ object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -4560,6 +4659,11 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path-type@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-5.0.0.tgz#14b01ed7aea7ddf9c7c3f46181d4d04f9c785bb8" + integrity sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4605,18 +4709,18 @@ postcss-calc@^9.0.0: postcss-selector-parser "^6.0.11" postcss-value-parser "^4.2.0" -postcss-cli@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-10.1.0.tgz#f6658c4998a1c35bd66cd71009132b2d12e04f80" - integrity sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA== +postcss-cli@^11.0.0: + version "11.0.0" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-11.0.0.tgz#649f4b9af447501feb6cbca7f7505a132f90442b" + integrity sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA== dependencies: chokidar "^3.3.0" dependency-graph "^0.11.0" fs-extra "^11.0.0" get-stdin "^9.0.0" - globby "^13.0.0" + globby "^14.0.0" picocolors "^1.0.0" - postcss-load-config "^4.0.0" + postcss-load-config "^5.0.0" postcss-reporter "^7.0.0" pretty-hrtime "^1.0.3" read-cache "^1.0.0" @@ -4677,7 +4781,7 @@ postcss-js@^4.0.0: dependencies: camelcase-css "^2.0.1" -postcss-load-config@^4.0.0, postcss-load-config@^4.0.1: +postcss-load-config@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== @@ -4685,6 +4789,14 @@ postcss-load-config@^4.0.0, postcss-load-config@^4.0.1: lilconfig "^2.0.5" yaml "^2.1.1" +postcss-load-config@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-5.0.2.tgz#3d4261d616428e3d6e41c8236c3e456c0f49266f" + integrity sha512-Q8QR3FYbqOKa0bnC1UQ2bFq9/ulHX5Bi34muzitMr8aDtUelO5xKeJEYC/5smE0jNE9zdB/NBnOwXKexELbRlw== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + postcss-merge-longhand@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-6.0.0.tgz#6f627b27db939bce316eaa97e22400267e798d69" @@ -4822,10 +4934,10 @@ postcss-ordered-values@^6.0.0: cssnano-utils "^4.0.0" postcss-value-parser "^4.2.0" -postcss-preset-mantine@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/postcss-preset-mantine/-/postcss-preset-mantine-1.11.0.tgz#57271f220069739504635b7e2c0af1156cf10ec0" - integrity sha512-drhCJAd8Rrn5ulRX5cP6DM6nMLrACAsBU73MfXNI3c77p4dodO36KcfEMY0WqaQkd/E2oODkTm7gVYOzjs45Gw== +postcss-preset-mantine@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/postcss-preset-mantine/-/postcss-preset-mantine-1.11.1.tgz#73b956cc7dc9b5a105591ffdbf7d8f6160cd2154" + integrity sha512-BMO+VzLP1X6Tm5sfmnFINpYsgVyN4LJheKz+25kT4JcPqccByIo4N0HCHI9B2zzduvdYadg6O/e+yQV7xLOs4g== dependencies: postcss-mixins "^9.0.4" postcss-nested "^6.0.1" @@ -4886,7 +4998,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.31, postcss@^8.4.31: +postcss@8.4.31: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -4895,23 +5007,14 @@ postcss@8.4.31, postcss@^8.4.31: picocolors "^1.0.0" source-map-js "^1.0.2" -prebuild-install@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" - integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" +postcss@^8.4.32: + version "8.4.32" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.32.tgz#1dac6ac51ab19adb21b8b34fd2d93a86440ef6c9" + integrity sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" prelude-ls@^1.2.1: version "1.2.1" @@ -4942,14 +5045,6 @@ prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -4960,11 +5055,6 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4972,16 +5062,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -4995,7 +5075,7 @@ react-is@^16.13.1: resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-number-format@^5.2.2: +react-number-format@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-5.3.1.tgz#840c257da9cb4b248990d8db46e4d23e8bac67ff" integrity sha512-qpYcQLauIeEhCZUZY9jXZnnroOtdy3jYaS1zQ3M1Sr6r/KMOBEIGNIb7eKT19g2N1wbYgFgvDzs19hw5TrB8XQ== @@ -5010,7 +5090,7 @@ react-remove-scroll-bar@^2.3.4: react-style-singleton "^2.2.1" tslib "^2.0.0" -react-remove-scroll@^2.5.6: +react-remove-scroll@^2.5.7: version "2.5.7" resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb" integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA== @@ -5063,15 +5143,6 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -readable-stream@^3.1.1, readable-stream@^3.4.0: - version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -5240,11 +5311,23 @@ rollup@^2.43.1: optionalDependencies: fsevents "~2.3.2" -rollup@^3.2.5: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== +rollup@^4.0.2: + version "4.6.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.6.1.tgz#351501c86b5b4f976dde8c5837516452b59921f8" + integrity sha512-jZHaZotEHQaHLgKr8JnQiDT1rmatjgKlMekyksz+yk9jt/8z9quNjnKNRoaM0wd9DC2QKXjmWWuDYtM3jfF8pQ== optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.6.1" + "@rollup/rollup-android-arm64" "4.6.1" + "@rollup/rollup-darwin-arm64" "4.6.1" + "@rollup/rollup-darwin-x64" "4.6.1" + "@rollup/rollup-linux-arm-gnueabihf" "4.6.1" + "@rollup/rollup-linux-arm64-gnu" "4.6.1" + "@rollup/rollup-linux-arm64-musl" "4.6.1" + "@rollup/rollup-linux-x64-gnu" "4.6.1" + "@rollup/rollup-linux-x64-musl" "4.6.1" + "@rollup/rollup-win32-arm64-msvc" "4.6.1" + "@rollup/rollup-win32-ia32-msvc" "4.6.1" + "@rollup/rollup-win32-x64-msvc" "4.6.1" fsevents "~2.3.2" run-parallel@^1.1.9: @@ -5274,7 +5357,7 @@ safe-array-concat@^1.0.1: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -5304,7 +5387,7 @@ schema-utils@^3.1.1, schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@7.5.4, semver@^7.3.5, semver@^7.5.4: +semver@7.5.4, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -5339,19 +5422,34 @@ set-function-name@^2.0.0, set-function-name@^2.0.1: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" -sharp@^0.32.6: - version "0.32.6" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" - integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== +sharp@^0.33.0: + version "0.33.0" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.0.tgz#95f77cda3684522e210ab55a167dad6cb5fbfe4f" + integrity sha512-99DZKudjm/Rmz+M0/26t4DKpXyywAOJaayGS9boEn7FvgtG0RYBi46uPE2c+obcJRtA3AZa0QwJot63gJQ1F0Q== dependencies: color "^4.2.3" detect-libc "^2.0.2" - node-addon-api "^6.1.0" - prebuild-install "^7.1.1" semver "^7.5.4" - simple-get "^4.0.1" - tar-fs "^3.0.4" - tunnel-agent "^0.6.0" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.0" + "@img/sharp-darwin-x64" "0.33.0" + "@img/sharp-libvips-darwin-arm64" "1.0.0" + "@img/sharp-libvips-darwin-x64" "1.0.0" + "@img/sharp-libvips-linux-arm" "1.0.0" + "@img/sharp-libvips-linux-arm64" "1.0.0" + "@img/sharp-libvips-linux-s390x" "1.0.0" + "@img/sharp-libvips-linux-x64" "1.0.0" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.0" + "@img/sharp-libvips-linuxmusl-x64" "1.0.0" + "@img/sharp-linux-arm" "0.33.0" + "@img/sharp-linux-arm64" "0.33.0" + "@img/sharp-linux-s390x" "0.33.0" + "@img/sharp-linux-x64" "0.33.0" + "@img/sharp-linuxmusl-arm64" "0.33.0" + "@img/sharp-linuxmusl-x64" "0.33.0" + "@img/sharp-wasm32" "0.33.0" + "@img/sharp-win32-ia32" "0.33.0" + "@img/sharp-win32-x64" "0.33.0" shebang-command@^2.0.0: version "2.0.0" @@ -5379,20 +5477,6 @@ signal-exit@^3.0.3: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.0, simple-get@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -5405,12 +5489,7 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - -slash@^5.0.0: +slash@^5.0.0, slash@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/slash/-/slash-5.1.0.tgz#be3adddcdf09ac38eebe8dcdc7b1a57a75b095ce" integrity sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg== @@ -5455,14 +5534,6 @@ streamsearch@^1.1.0: resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -streamx@^2.15.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.15.1.tgz#396ad286d8bc3eeef8f5cea3f029e81237c024c6" - integrity sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA== - dependencies: - fast-fifo "^1.1.0" - queue-tick "^1.0.1" - string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5540,13 +5611,6 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -5583,11 +5647,6 @@ strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - styled-jsx@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" @@ -5677,45 +5736,6 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -tar-fs@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" - integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== - dependencies: - chownr "^1.1.1" - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^2.1.4" - -tar-fs@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.4.tgz#a21dc60a2d5d9f55e0089ccd78124f1d3771dbbf" - integrity sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w== - dependencies: - mkdirp-classic "^0.5.2" - pump "^3.0.0" - tar-stream "^3.1.5" - -tar-stream@^2.1.4: - version "2.2.0" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" - integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== - dependencies: - bl "^4.0.3" - end-of-stream "^1.4.1" - fs-constants "^1.0.0" - inherits "^2.0.3" - readable-stream "^3.1.1" - -tar-stream@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.6.tgz#6520607b55a06f4a2e2e04db360ba7d338cc5bab" - integrity sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg== - dependencies: - b4a "^1.6.4" - fast-fifo "^1.2.0" - streamx "^2.15.0" - temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -5825,33 +5845,26 @@ tslib@^2.0.0, tslib@^2.1.0, tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== -tsup@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/tsup/-/tsup-7.2.0.tgz#bb24c0d5e436477900c712e42adc67200607303c" - integrity sha512-vDHlczXbgUvY3rWvqFEbSqmC1L7woozbzngMqTtL2PGBODTtWlRwGDDawhvWzr5c1QjKe4OAKqJGfE1xeXUvtQ== +tsup@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/tsup/-/tsup-8.0.1.tgz#04a0170f7bbe77e81da3b53006b0a40282291833" + integrity sha512-hvW7gUSG96j53ZTSlT4j/KL0q1Q2l6TqGBFc6/mu/L46IoNWqLLUzLRLP1R8Q7xrJTmkDxxDoojV5uCVs1sVOg== dependencies: bundle-require "^4.0.0" cac "^6.7.12" chokidar "^3.5.1" debug "^4.3.1" - esbuild "^0.18.2" + esbuild "^0.19.2" execa "^5.0.0" globby "^11.0.3" joycon "^3.0.1" postcss-load-config "^4.0.1" resolve-from "^5.0.0" - rollup "^3.2.5" + rollup "^4.0.2" source-map "0.8.0-beta.0" sucrase "^3.20.3" tree-kill "^1.2.2" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -5913,10 +5926,10 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@^5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== unbox-primitive@^1.0.2: version "1.0.2" @@ -5956,6 +5969,11 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unicorn-magic@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" + integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== + unique-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" @@ -6033,7 +6051,7 @@ use-sync-external-store@^1.2.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== -util-deprecate@^1.0.1, util-deprecate@^1.0.2: +util-deprecate@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -6363,6 +6381,11 @@ yaml@^2.1.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== +yaml@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" From 74f1913bfb41285e158d988587c25def447c4505 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:39:49 +0200 Subject: [PATCH 05/22] Reorganize draggable-cols-related imports --- package/DataTable.tsx | 9 +++++++-- package/DataTableDragToggleColumns.context.ts | 2 +- package/DataTableDragToggleProvider.tsx | 2 +- package/hooks/index.ts | 1 + package/icons/IconGripVertical.tsx | 1 - package/icons/IconX.tsx | 1 - package/index.ts | 1 + 7 files changed, 11 insertions(+), 6 deletions(-) diff --git a/package/DataTable.tsx b/package/DataTable.tsx index cb1f1c933..7219bb9fd 100644 --- a/package/DataTable.tsx +++ b/package/DataTable.tsx @@ -12,8 +12,13 @@ import { DataTablePagination } from './DataTablePagination'; import { DataTableRow } from './DataTableRow'; import { DataTableScrollArea } from './DataTableScrollArea'; import { getTableCssVariables } from './cssVariables'; -import { useElementOuterSize, useIsomorphicLayoutEffect, useLastSelectionChangeIndex, useRowExpansion } from './hooks'; -import { useDragToggleColumns } from './hooks/useDragToggleColumns'; +import { + useDragToggleColumns, + useElementOuterSize, + useIsomorphicLayoutEffect, + useLastSelectionChangeIndex, + useRowExpansion, +} from './hooks'; import type { DataTableProps } from './types'; import { TEXT_SELECTION_DISABLED } from './utilityClasses'; import { differenceBy, getRecordId, uniqBy } from './utils'; diff --git a/package/DataTableDragToggleColumns.context.ts b/package/DataTableDragToggleColumns.context.ts index 202510bd1..5b4c9fe35 100644 --- a/package/DataTableDragToggleColumns.context.ts +++ b/package/DataTableDragToggleColumns.context.ts @@ -1,6 +1,6 @@ import { createSafeContext } from '@mantine/core'; import { Dispatch, SetStateAction } from 'react'; -import { DataTableColumnToggle } from './hooks/useDragToggleColumns'; +import { DataTableColumnToggle } from './hooks'; interface DataTableDragToggleColumnsContext { // accessor of the column which is currently dragged diff --git a/package/DataTableDragToggleProvider.tsx b/package/DataTableDragToggleProvider.tsx index 48a757535..e72db22a2 100644 --- a/package/DataTableDragToggleProvider.tsx +++ b/package/DataTableDragToggleProvider.tsx @@ -2,7 +2,7 @@ import { Dispatch, SetStateAction, useState } from 'react'; import { DataTableDragToggleColumnsContextProvider } from './DataTableDragToggleColumns.context'; -import { DataTableColumnToggle } from './hooks/useDragToggleColumns'; +import { DataTableColumnToggle } from './hooks'; type DataTableDragToggleColumnsProviderProps = { // React children diff --git a/package/hooks/index.ts b/package/hooks/index.ts index 388d26ad5..2cfb553f0 100644 --- a/package/hooks/index.ts +++ b/package/hooks/index.ts @@ -1,3 +1,4 @@ +export * from './useDragToggleColumns'; export * from './useElementOuterSize'; export * from './useIsomorphicLayoutEffect'; export * from './useLastSelectionChangeIndex'; diff --git a/package/icons/IconGripVertical.tsx b/package/icons/IconGripVertical.tsx index 81dca3e94..e69c09217 100644 --- a/package/icons/IconGripVertical.tsx +++ b/package/icons/IconGripVertical.tsx @@ -1,7 +1,6 @@ export function IconGripVertical() { return ( Date: Thu, 7 Dec 2023 17:43:15 +0200 Subject: [PATCH 06/22] Adjust column dragging-related imports in examples --- app/examples/column-dragging-and-toggling/DraggingExample.tsx | 3 +-- .../DraggingTogglingComplexExample.tsx | 3 +-- .../DraggingTogglingResetExample.tsx | 3 +-- app/examples/column-dragging-and-toggling/TogglingExample.tsx | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/app/examples/column-dragging-and-toggling/DraggingExample.tsx b/app/examples/column-dragging-and-toggling/DraggingExample.tsx index 2a06571bc..c1acfe997 100644 --- a/app/examples/column-dragging-and-toggling/DraggingExample.tsx +++ b/app/examples/column-dragging-and-toggling/DraggingExample.tsx @@ -1,9 +1,8 @@ 'use client'; import { Button, Group, Stack } from '@mantine/core'; -import { DataTable } from '__PACKAGE__'; +import { DataTable, useDragToggleColumns } from '__PACKAGE__'; import { companies, type Company } from '~/data'; -import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; export default function DraggingExample() { const key = 'draggable-example'; diff --git a/app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx b/app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx index 9aa0c7d13..188cf79d7 100644 --- a/app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx +++ b/app/examples/column-dragging-and-toggling/DraggingTogglingComplexExample.tsx @@ -1,12 +1,11 @@ 'use client'; import { IconColumnRemove, IconColumns1 } from '@tabler/icons-react'; -import { DataTable, type DataTableSortStatus } from '__PACKAGE__'; +import { DataTable, useDragToggleColumns, type DataTableSortStatus } from '__PACKAGE__'; import sortBy from 'lodash/sortBy'; import { useContextMenu } from 'mantine-contextmenu'; import { useEffect, useState } from 'react'; import { companies, type Company } from '~/data'; -import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; export default function DraggingTogglingComplexExample() { const { showContextMenu } = useContextMenu(); diff --git a/app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx b/app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx index b8da0a47d..96f7d1911 100644 --- a/app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx +++ b/app/examples/column-dragging-and-toggling/DraggingTogglingResetExample.tsx @@ -1,10 +1,9 @@ 'use client'; import { IconColumnRemove, IconColumns1 } from '@tabler/icons-react'; -import { DataTable } from '__PACKAGE__'; +import { DataTable, useDragToggleColumns } from '__PACKAGE__'; import { useContextMenu } from 'mantine-contextmenu'; import { companies } from '~/data'; -import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; export default function DraggingTogglingResetExample() { const { showContextMenu } = useContextMenu(); diff --git a/app/examples/column-dragging-and-toggling/TogglingExample.tsx b/app/examples/column-dragging-and-toggling/TogglingExample.tsx index 1bdbf21df..837d3b66e 100644 --- a/app/examples/column-dragging-and-toggling/TogglingExample.tsx +++ b/app/examples/column-dragging-and-toggling/TogglingExample.tsx @@ -1,9 +1,8 @@ 'use client'; import { Button, Group, Stack } from '@mantine/core'; -import { DataTable } from '__PACKAGE__'; +import { DataTable, useDragToggleColumns } from '__PACKAGE__'; import { companies } from '~/data'; -import { useDragToggleColumns } from '~/package/hooks/useDragToggleColumns'; export default function TogglingExample() { const key = 'toggleable-example'; From 1a646535e9f0cd86d0c4f679a7df58f52a81b06b Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:50:59 +0200 Subject: [PATCH 07/22] Minor docs page adjustments --- .../column-dragging-and-toggling/page.tsx | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/app/examples/column-dragging-and-toggling/page.tsx b/app/examples/column-dragging-and-toggling/page.tsx index d89fb55b8..9a2ce08e7 100644 --- a/app/examples/column-dragging-and-toggling/page.tsx +++ b/app/examples/column-dragging-and-toggling/page.tsx @@ -31,18 +31,21 @@ export default async function DraggingExamplePage() { <> - Starting from v7.3, Mantine DataTable supports column dragging and toggling, thanks to the{' '} - outstanding work of{' '} + Starting with v7.3, Mantine DataTable supports column toggling and drag-and-drop reordering, thanks + to the outstanding work of{' '} Giovambattista Fazioli. - In order to enable Dragging you’ll have to: + + In order to enable column dragging you’ll have to: +
  • - add a storeColumnsKey: your_key property to the DataTable; + add a storeColumnsKey: your_key property to the DataTable (since the order of the columns is + persisted in the local storage);
  • - add a draggable: true property to each Dragging candidate column; + add a draggable: true property to each dragging candidate column;
  • use useDragToggleColumns() hook to get the sorted columns. @@ -55,13 +58,16 @@ export default async function DraggingExamplePage() { - In order to enable Toggling you’ll have to: + + In order to enable column toggling you’ll have to: +
  • - add a storeColumnsKey: your_key property to the DataTable; + add a storeColumnsKey: your_key property to the DataTable (since the order of the columns is + persisted in the local storage);
  • - add a toggleable: true property to each Toggling candidate column; + add a toggleable: true property to each toggling candidate column;
  • use useDragToggleColumns() hook to get the sorted columns. @@ -71,16 +77,12 @@ export default async function DraggingExamplePage() { The default toggled columns are the ones with defaultToggle: true property. - - + - - - ); From be8b1f6e6793e9999df749949ea7e30c7b047450 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:51:36 +0200 Subject: [PATCH 08/22] Update README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c63478ab5..e25c3ef52 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ The lightweight, dependency-free, **dark-theme aware** table component for your [![Mantine DataTable](https://user-images.githubusercontent.com/581999/279479387-525bb797-cb15-4739-85c6-94ceded94bc1.png)](https://icflorescu.github.io/mantine-datatable/) -**⚠️ Mantine DataTable V7.1 is compatible with Mantine V7.1.** +**⚠️ Mantine DataTable V7 is compatible with Mantine V7.** **💡 If you're looking for the old version that works with [Mantine V6](https://v6.mantine.dev), head over to [Mantine DataTable V6](https://icflorescu.github.io/mantine-datatable-v6).** ## Features From 2798e62a358b37c800a19eaa5fc3ac0c4776d43c Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:54:52 +0200 Subject: [PATCH 09/22] Use PropsWithChildren type ...in DataTableDragToggleColumnsProviderProps --- package/DataTableDragToggleProvider.tsx | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/package/DataTableDragToggleProvider.tsx b/package/DataTableDragToggleProvider.tsx index e72db22a2..0c093204b 100644 --- a/package/DataTableDragToggleProvider.tsx +++ b/package/DataTableDragToggleProvider.tsx @@ -4,10 +4,7 @@ import { Dispatch, SetStateAction, useState } from 'react'; import { DataTableDragToggleColumnsContextProvider } from './DataTableDragToggleColumns.context'; import { DataTableColumnToggle } from './hooks'; -type DataTableDragToggleColumnsProviderProps = { - // React children - children: React.ReactNode; - +type DataTableDragToggleColumnsProviderProps = React.PropsWithChildren<{ columnsOrder: string[]; setColumnsOrder: Dispatch>; resetColumnsOrder: () => void; @@ -15,7 +12,7 @@ type DataTableDragToggleColumnsProviderProps = { columnsToggle: DataTableColumnToggle[]; setColumnsToggle: Dispatch>; resetColumnsToggle: () => void; -}; +}>; export const DataTableDragToggleColumnsProvider = (props: DataTableDragToggleColumnsProviderProps) => { const { From 83de3f7901f65e81e795b579ce27684da4a90135 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:57:01 +0200 Subject: [PATCH 10/22] Use PopoverTarget instead of Popover.Target --- package/DataTableHeaderCell.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/DataTableHeaderCell.tsx b/package/DataTableHeaderCell.tsx index e3c33e5fa..edabfbf3a 100644 --- a/package/DataTableHeaderCell.tsx +++ b/package/DataTableHeaderCell.tsx @@ -7,6 +7,7 @@ import { Group, MantineStyleProp, Popover, + PopoverTarget, Stack, TableTh, type MantineTheme, @@ -152,7 +153,7 @@ export function DataTableHeaderCell({ opened={columnsPopoverOpened} onChange={setColumnsPopoverOpened} > - + ({ {text} - + {columnsToggle From 4b53d5676a298b07a4990e514675409847e81fb1 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:57:45 +0200 Subject: [PATCH 11/22] Use PopoverDropdown instead of Popover.Dropdown --- package/DataTableHeaderCell.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/DataTableHeaderCell.tsx b/package/DataTableHeaderCell.tsx index edabfbf3a..400f17f76 100644 --- a/package/DataTableHeaderCell.tsx +++ b/package/DataTableHeaderCell.tsx @@ -7,6 +7,7 @@ import { Group, MantineStyleProp, Popover, + PopoverDropdown, PopoverTarget, Stack, TableTh, @@ -199,7 +200,7 @@ export function DataTableHeaderCell({ - + {columnsToggle .filter((column) => column.toggleable) @@ -225,7 +226,7 @@ export function DataTableHeaderCell({ ); })} - + {toggleable ? (
    From a2d1943f6afadc058159b5457ed7d06cf7827443 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 17:59:59 +0200 Subject: [PATCH 12/22] Make icon sizes consistent --- package/icons/IconGripVertical.tsx | 4 ++-- package/icons/IconX.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/icons/IconGripVertical.tsx b/package/icons/IconGripVertical.tsx index e69c09217..95d609ce7 100644 --- a/package/icons/IconGripVertical.tsx +++ b/package/icons/IconGripVertical.tsx @@ -1,8 +1,8 @@ export function IconGripVertical() { return ( Date: Thu, 7 Dec 2023 18:05:32 +0200 Subject: [PATCH 13/22] No need to use !important here --- package/DataTableHeaderCell.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/DataTableHeaderCell.css b/package/DataTableHeaderCell.css index 5aa987c1b..704619c67 100644 --- a/package/DataTableHeaderCell.css +++ b/package/DataTableHeaderCell.css @@ -19,7 +19,7 @@ } .mantine-datatable-header-cell-drag-over { - background-color: light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-6)) !important + background: light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-6)); } .mantine-datatable-header-cell-toggleable-icon { From 493b5732c5dd40c4cda7b9baee50810e77024493 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 18:12:15 +0200 Subject: [PATCH 14/22] Remove unused class --- package/DataTableHeaderCell.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/DataTableHeaderCell.tsx b/package/DataTableHeaderCell.tsx index 400f17f76..d6fa59a77 100644 --- a/package/DataTableHeaderCell.tsx +++ b/package/DataTableHeaderCell.tsx @@ -170,9 +170,9 @@ export function DataTableHeaderCell({ onDragLeave={draggable ? handleColumnDragLeave : undefined} > {draggable ? ( -
    +
    ) => { From f6c0806fa08df559bd2f3962c1ad68ccf28fde7d Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 18:15:21 +0200 Subject: [PATCH 15/22] Improve draggable icon css --- package/DataTableHeaderCell.css | 5 +++++ package/DataTableHeaderCell.tsx | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package/DataTableHeaderCell.css b/package/DataTableHeaderCell.css index 704619c67..eddd86e15 100644 --- a/package/DataTableHeaderCell.css +++ b/package/DataTableHeaderCell.css @@ -18,6 +18,11 @@ } } +.mantine-datatable-header-cell-draggable-action-icon { + cursor: inherit; + margin: rem(-2px) rem(2px) 0; +} + .mantine-datatable-header-cell-drag-over { background: light-dark(var(--mantine-color-gray-3), var(--mantine-color-dark-6)); } diff --git a/package/DataTableHeaderCell.tsx b/package/DataTableHeaderCell.tsx index d6fa59a77..def71471a 100644 --- a/package/DataTableHeaderCell.tsx +++ b/package/DataTableHeaderCell.tsx @@ -172,7 +172,7 @@ export function DataTableHeaderCell({ {draggable ? (
    ) => { From f2a1f71629cdbef806aadebdff173155d23bec16 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 18:19:20 +0200 Subject: [PATCH 16/22] Minor docs page adjustments --- app/examples/column-dragging-and-toggling/page.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/examples/column-dragging-and-toggling/page.tsx b/app/examples/column-dragging-and-toggling/page.tsx index 9a2ce08e7..2d3f165bb 100644 --- a/app/examples/column-dragging-and-toggling/page.tsx +++ b/app/examples/column-dragging-and-toggling/page.tsx @@ -35,6 +35,7 @@ export default async function DraggingExamplePage() { to the outstanding work of{' '} Giovambattista Fazioli. + In order to enable column dragging you’ll have to: @@ -56,7 +57,7 @@ export default async function DraggingExamplePage() { The default order of the columns is the order in which they are defined in the columns prop. - + In order to enable column toggling you’ll have to: From 0dc5e548f750069ae6dd87c33cdbf8e8200b644b Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 18:26:04 +0200 Subject: [PATCH 17/22] Add useDragToggleColumns hook code docs --- package/hooks/useDragToggleColumns.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/package/hooks/useDragToggleColumns.ts b/package/hooks/useDragToggleColumns.ts index 1d5f26587..606c46e9f 100644 --- a/package/hooks/useDragToggleColumns.ts +++ b/package/hooks/useDragToggleColumns.ts @@ -9,11 +9,21 @@ export type DataTableColumnToggle = { toggled: boolean; }; +/** + * Hook to handle the drag-and-drop column reordering and column toggling. + * @see https://icflorescu.github.io/mantine-datatable/examples/column-dragging-and-toggling/ + */ export const useDragToggleColumns = ({ key, columns = [], }: { + /** + * The key to use in localStorage to store the columns order and toggle state. + */ key: string | undefined; + /** + * Columns definitions. + */ columns: DataTableColumn[]; }) => { // Default columns id ordered is the order of the columns in the array From 9a17de102b23e8001d31289ee45239627e2d4690 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 18:27:14 +0200 Subject: [PATCH 18/22] Use rem fn instead of px value in CSS --- package/DataTableHeaderCell.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/DataTableHeaderCell.css b/package/DataTableHeaderCell.css index eddd86e15..73066db0d 100644 --- a/package/DataTableHeaderCell.css +++ b/package/DataTableHeaderCell.css @@ -8,7 +8,7 @@ .mantine-datatable-header-cell-draggable { cursor: grab; - border-radius: 6px; + border-radius: rem(6px); transition: all 0.2s; &:active { cursor: grabbing; From ea012c9866201e0c66e3322f8ec1479a9023bf6b Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 19:08:55 +0200 Subject: [PATCH 19/22] Use absolute 0 width for selector cells --- package/DataTableHeaderSelectorCell.css | 2 +- package/DataTableRowSelectorCell.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package/DataTableHeaderSelectorCell.css b/package/DataTableHeaderSelectorCell.css index bebe3d58e..d19e0b48a 100644 --- a/package/DataTableHeaderSelectorCell.css +++ b/package/DataTableHeaderSelectorCell.css @@ -1,6 +1,6 @@ .mantine-datatable-header-selector-cell { position: sticky; - width: 0%; + width: 0; left: 0; &::after { content: ''; diff --git a/package/DataTableRowSelectorCell.css b/package/DataTableRowSelectorCell.css index ccb35f627..6c5d7510d 100644 --- a/package/DataTableRowSelectorCell.css +++ b/package/DataTableRowSelectorCell.css @@ -1,7 +1,7 @@ .mantine-datatable-row-selector-cell { position: sticky; z-index: 1; - width: 0%; + width: 0; left: 0; tr[data-selected] & { background: inherit; From dbce5fdeaf393eeda118beedc635763f36e3f365 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 19:09:42 +0200 Subject: [PATCH 20/22] Use PopoverDropdown instead of Popover.Dropdown --- package/DataTableHeaderCellFilter.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/DataTableHeaderCellFilter.tsx b/package/DataTableHeaderCellFilter.tsx index ece43c609..1592bda90 100644 --- a/package/DataTableHeaderCellFilter.tsx +++ b/package/DataTableHeaderCellFilter.tsx @@ -1,4 +1,4 @@ -import { ActionIcon, Popover, PopoverTarget } from '@mantine/core'; +import { ActionIcon, Popover, PopoverDropdown, PopoverTarget } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { IconFilter } from './icons/IconFilter'; import { IconFilterFilled } from './icons/IconFilterFilled'; @@ -29,9 +29,9 @@ export function DataTableHeaderCellFilter({ children, isActive }: DataTableHe - e.preventDefault()}> + e.preventDefault()}> {typeof children === 'function' ? children({ close }) : children} - + ); } From e532f47ffe4bba09fc62abcc8846e451b7cabadc Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 19:53:02 +0200 Subject: [PATCH 21/22] Implement selectionColumnClassName ...and selectionColumnStyle properties --- CHANGELOG.md | 1 + .../RecordsSelectionExamples.tsx | 20 +++++++++++++++++++ app/examples/records-selection/page.tsx | 11 ++++++++++ package/DataTable.tsx | 6 ++++++ package/DataTableHeader.tsx | 6 ++++++ package/DataTableHeaderSelectorCell.tsx | 13 ++++++++++-- package/DataTableRow.tsx | 6 ++++++ package/DataTableRowSelectorCell.tsx | 13 ++++++++++-- package/types/DataTableSelectionProps.ts | 14 ++++++++++++- 9 files changed, 85 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b521e71dd..5189f9822 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Minor versions that are not listed in the changelog are bug fixes and small impr ## 7.3.0 (2023-12-07) - Implement column dragging and toggling (see [#483](https://github.com/icflorescu/mantine-datatable/pull/483)); +- Implement `selectionColumnClassName` and `selectionColumnStyle` properties; - Update deps to ensure compatibility with Mantine 7.3.0 ## 7.1.7 (2023-11-13) diff --git a/app/examples/records-selection/RecordsSelectionExamples.tsx b/app/examples/records-selection/RecordsSelectionExamples.tsx index 28b07209d..ea10f66db 100644 --- a/app/examples/records-selection/RecordsSelectionExamples.tsx +++ b/app/examples/records-selection/RecordsSelectionExamples.tsx @@ -73,6 +73,26 @@ export function DisabledRecordsExample() { // example-end } +export function CustomColumnStyleExample() { + // example-start CustomColumnStyleExample.tsx + const [selectedRecords, setSelectedRecords] = useState([]); + + return ( + + ); + // example-end +} + export function CheckboxPropsExample() { // example-start CheckboxPropsExample.tsx const [selectedRecords, setSelectedRecords] = useState([]); diff --git a/app/examples/records-selection/page.tsx b/app/examples/records-selection/page.tsx index 7afa970b1..8aff6cb82 100644 --- a/app/examples/records-selection/page.tsx +++ b/app/examples/records-selection/page.tsx @@ -13,6 +13,7 @@ import { getRouteMetadata } from '~/lib/utils'; import { CellTriggerRecordsSelectionExample, CheckboxPropsExample, + CustomColumnStyleExample, DisabledRecordsExample, RecordsSelectionExample, RecordsSelectionHorizontalScrollingBehaviorExample, @@ -30,6 +31,7 @@ export default async function RecordsSelectionExamplePage() { | 'RecordsSelectionExample.tsx' | 'CellTriggerRecordsSelectionExample.tsx' | 'DisabledRecordsExample.tsx' + | 'CustomColumnStyleExample.tsx' | 'CheckboxPropsExample.tsx' | 'SelectAllRecordsOnAllPagesExample.tsx' | 'RecordsSelectionHorizontalScrollingBehaviorExample.tsx', @@ -90,6 +92,15 @@ export default async function RecordsSelectionExamplePage() { The above code will result in the following behavior: + + + By default, the selection column has an absolute width of 0, to that it only takes up the space + required by the selection checkboxes. If you’re not happy with this behavior, or you have other reasons to + customize the column’s properties, you can do so by providing the selectionColumnClassName and/or{' '} + selectionColumnStyle properties: + + + You can pass additional props to the selection checkboxes by providing the{' '} diff --git a/package/DataTable.tsx b/package/DataTable.tsx index 7219bb9fd..ba25bd4da 100644 --- a/package/DataTable.tsx +++ b/package/DataTable.tsx @@ -43,6 +43,8 @@ export function DataTable({ selectionTrigger = 'checkbox', selectedRecords, onSelectedRecordsChange, + selectionColumnClassName, + selectionColumnStyle, isRecordSelectable, allRecordsSelectionCheckboxProps = { 'aria-label': 'Select all records' }, getRecordSelectionCheckboxProps = (_, index) => ({ 'aria-label': `Select record ${index + 1}` }), @@ -327,6 +329,8 @@ export function DataTable({ onSelectionChange={handleHeaderSelectionChange} selectionCheckboxProps={allRecordsSelectionCheckboxProps} selectorCellShadowVisible={selectionVisibleAndNotScrolledToLeft} + selectionColumnClassName={selectionColumnClassName} + selectionColumnStyle={selectionColumnStyle} /> )} @@ -392,6 +396,8 @@ export function DataTable({ style={rowStyle} customAttributes={customRowAttributes} selectorCellShadowVisible={selectionVisibleAndNotScrolledToLeft} + selectionColumnClassName={selectionColumnClassName} + selectionColumnStyle={selectionColumnStyle} /> ); }) diff --git a/package/DataTableHeader.tsx b/package/DataTableHeader.tsx index 516eb0eaf..b539f1edd 100644 --- a/package/DataTableHeader.tsx +++ b/package/DataTableHeader.tsx @@ -22,6 +22,8 @@ type DataTableHeaderProps = { onSelectionChange: (() => void) | undefined; selectionCheckboxProps: CheckboxProps; selectorCellShadowVisible: boolean; + selectionColumnClassName: string | undefined; + selectionColumnStyle: MantineStyleProp; }; export const DataTableHeader = forwardRef(function DataTableHeader( @@ -41,11 +43,15 @@ export const DataTableHeader = forwardRef(function DataTableHeader( onSelectionChange, selectionCheckboxProps, selectorCellShadowVisible, + selectionColumnClassName, + selectionColumnStyle, }: DataTableHeaderProps, ref: React.ForwardedRef ) { const allRecordsSelectorCell = selectionVisible ? ( = { className?: string | ((record: T, index: number) => string | undefined); style?: (record: T, index: number) => MantineStyleProp | undefined; selectorCellShadowVisible: boolean; + selectionColumnClassName: string | undefined; + selectionColumnStyle: MantineStyleProp | undefined; }; export function DataTableRow({ @@ -68,6 +70,8 @@ export function DataTableRow({ className, style, selectorCellShadowVisible, + selectionColumnClassName, + selectionColumnStyle, }: DataTableRowProps) { return ( <> @@ -106,6 +110,8 @@ export function DataTableRow({ > {selectionVisible && ( + className={selectionColumnClassName} + style={selectionColumnStyle} record={record} index={index} trigger={selectionTrigger} diff --git a/package/DataTableRowSelectorCell.tsx b/package/DataTableRowSelectorCell.tsx index a46298e09..41c4ec94d 100644 --- a/package/DataTableRowSelectorCell.tsx +++ b/package/DataTableRowSelectorCell.tsx @@ -1,9 +1,11 @@ -import { Checkbox, TableTd, type CheckboxProps } from '@mantine/core'; +import { Checkbox, MantineStyleProp, TableTd, type CheckboxProps } from '@mantine/core'; import clsx from 'clsx'; import type { DataTableSelectionTrigger } from './types'; import { POINTER_CURSOR } from './utilityClasses'; type DataTableRowSelectorCellProps = { + className: string | undefined; + style: MantineStyleProp | undefined; record: T; index: number; trigger: DataTableSelectionTrigger; @@ -15,6 +17,8 @@ type DataTableRowSelectorCellProps = { }; export function DataTableRowSelectorCell({ + className, + style, record, index, trigger, @@ -35,7 +39,12 @@ export function DataTableRowSelectorCell({ return ( diff --git a/package/types/DataTableSelectionProps.ts b/package/types/DataTableSelectionProps.ts index 98a671b01..e1ac68572 100644 --- a/package/types/DataTableSelectionProps.ts +++ b/package/types/DataTableSelectionProps.ts @@ -1,4 +1,4 @@ -import type { CheckboxProps } from '@mantine/core'; +import type { CheckboxProps, MantineStyleProp } from '@mantine/core'; import type { DataTableSelectionTrigger } from './DataTableSelectionTrigger'; export type DataTableSelectionProps> = @@ -9,6 +9,8 @@ export type DataTableSelectionProps> = isRecordSelectable?: never; getRecordSelectionCheckboxProps?: never; allRecordsSelectionCheckboxProps?: never; + selectionColumnClassName?: never; + selectionColumnStyle?: never; } | { /** @@ -28,6 +30,16 @@ export type DataTableSelectionProps> = */ onSelectedRecordsChange?: (selectedRecords: T[]) => void; + /** + * Optional class name applied to selection column. + */ + selectionColumnClassName?: string; + + /** + * Optional style applied to selection column. + */ + selectionColumnStyle?: MantineStyleProp; + /** * A function used to determine whether a certain record is selectable. * if the function returns false, the row selection checkbox is disabled. From a7b1b37d6c313fcc14c238001ad2531a72bc5ba5 Mon Sep 17 00:00:00 2001 From: Ionut-Cristian Florescu Date: Thu, 7 Dec 2023 19:55:18 +0200 Subject: [PATCH 22/22] Bump package version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index be9f26f10..769fcae47 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mantine-datatable", - "version": "7.1.7", + "version": "7.3.0", "description": "The lightweight, dependency-free, dark-theme aware table component for your Mantine UI data-rich applications, featuring asynchronous data loading support, pagination, intuitive Gmail-style additive batch rows selection, column sorting, custom cell data rendering, row expansion, nesting, context menus, and much more", "keywords": [ "mantine",