diff --git a/apps/mantine-react-table-docs/package.json b/apps/mantine-react-table-docs/package.json index e346c3269..e0cf6aa74 100644 --- a/apps/mantine-react-table-docs/package.json +++ b/apps/mantine-react-table-docs/package.json @@ -18,16 +18,16 @@ "@fortawesome/fontawesome-svg-core": "^6.5.1", "@fortawesome/free-solid-svg-icons": "^6.5.1", "@fortawesome/react-fontawesome": "^0.2.0", - "@mantine/code-highlight": "7.4.1", - "@mantine/core": "7.4.1", - "@mantine/dates": "7.4.1", - "@mantine/hooks": "7.4.1", - "@mantine/modals": "7.4.1", + "@mantine/code-highlight": "7.4.2", + "@mantine/core": "7.4.2", + "@mantine/dates": "7.4.2", + "@mantine/hooks": "7.4.2", + "@mantine/modals": "7.4.2", "@mdx-js/loader": "^3.0.0", "@mdx-js/react": "^3.0.0", - "@next/mdx": "^14.0.4", - "@tabler/icons-react": "2.45.0", - "@tanstack/react-query": "^5.17.9", + "@next/mdx": "^14.1.0", + "@tabler/icons-react": "2.46.0", + "@tanstack/react-query": "^5.17.19", "@types/mdx": "^2.0.10", "clsx": "^2.1.0", "dayjs": "^1.11.10", @@ -35,19 +35,19 @@ "jspdf": "^2.5.1", "jspdf-autotable": "^3.8.1", "mantine-react-table": "workspace:*", - "next": "14.0.4", + "next": "14.1.0", "next-sitemap": "^4.2.3", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { - "@types/node": "^20.11.0", - "@types/react": "^18.2.47", + "@types/node": "^20.11.5", + "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^6.18.1", - "@typescript-eslint/parser": "^6.18.1", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "eslint": "8.56.0", - "eslint-config-next": "14.0.4", + "eslint-config-next": "14.1.0", "next-plausible": "^3.12.0", "postcss": "^8.4.33", "postcss-preset-mantine": "^1.12.3", diff --git a/package.json b/package.json index 990002492..4ab206969 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "storybook:dev": "turbo run storybook" }, "devDependencies": { - "prettier": "^3.1.1", + "prettier": "^3.2.4", "turbo": "^1.11.3" }, "engines": { diff --git a/packages/mantine-react-table/package.json b/packages/mantine-react-table/package.json index 28806a7db..82c992342 100644 --- a/packages/mantine-react-table/package.json +++ b/packages/mantine-react-table/package.json @@ -74,28 +74,28 @@ "@babel/core": "^7.23.7", "@babel/preset-react": "^7.23.3", "@faker-js/faker": "^8.3.1", - "@mantine/core": "7.4.1", - "@mantine/dates": "7.4.1", - "@mantine/hooks": "7.4.1", + "@mantine/core": "7.4.2", + "@mantine/dates": "7.4.2", + "@mantine/hooks": "7.4.2", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-node-resolve": "^15.2.3", "@rollup/plugin-typescript": "^11.1.6", - "@size-limit/preset-small-lib": "^11.0.1", - "@storybook/addon-a11y": "^7.6.7", - "@storybook/addon-essentials": "^7.6.7", - "@storybook/addon-interactions": "^7.6.7", - "@storybook/addon-links": "^7.6.7", - "@storybook/addon-storysource": "^7.6.7", - "@storybook/blocks": "^7.6.7", - "@storybook/react": "^7.6.7", - "@storybook/react-vite": "^7.6.7", + "@size-limit/preset-small-lib": "^11.0.2", + "@storybook/addon-a11y": "^7.6.10", + "@storybook/addon-essentials": "^7.6.10", + "@storybook/addon-interactions": "^7.6.10", + "@storybook/addon-links": "^7.6.10", + "@storybook/addon-storysource": "^7.6.10", + "@storybook/blocks": "^7.6.10", + "@storybook/react": "^7.6.10", + "@storybook/react-vite": "^7.6.10", "@storybook/testing-library": "^0.2.2", - "@tabler/icons-react": "2.45.0", - "@types/node": "^20.11.0", - "@types/react": "^18.2.47", + "@tabler/icons-react": "2.46.0", + "@types/node": "^20.11.5", + "@types/react": "^18.2.48", "@types/react-dom": "^18.2.18", - "@typescript-eslint/eslint-plugin": "^6.18.1", - "@typescript-eslint/parser": "^6.18.1", + "@typescript-eslint/eslint-plugin": "^6.19.0", + "@typescript-eslint/parser": "^6.19.0", "@vitejs/plugin-react": "^4.2.1", "dayjs": "^1.11.10", "eslint": "^8.56.0", @@ -113,18 +113,18 @@ "rollup-plugin-dts": "^6.1.0", "rollup-plugin-peer-deps-external": "^2.2.4", "rollup-plugin-postcss": "^4.0.2", - "size-limit": "^11.0.1", - "storybook": "^7.6.7", + "size-limit": "^11.0.2", + "storybook": "^7.6.10", "storybook-dark-mode": "^3.0.3", "tslib": "^2.6.2", "typescript": "^5.3.3", "typescript-plugin-css-modules": "^5.0.2", - "vite": "^5.0.11" + "vite": "^5.0.12" }, "dependencies": { "@tanstack/match-sorter-utils": "8.11.3", "@tanstack/react-table": "8.11.6", - "@tanstack/react-virtual": "3.0.1", + "@tanstack/react-virtual": "3.0.2", "clsx": "^2.1.0" }, "peerDependencies": { diff --git a/packages/mantine-react-table/src/body/index.ts b/packages/mantine-react-table/src/body/index.ts deleted file mode 100644 index b37c68558..000000000 --- a/packages/mantine-react-table/src/body/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from './MRT_TableBody'; -export * from './MRT_TableBodyCell'; -export * from './MRT_TableBodyCellValue'; -export * from './MRT_TableBodyRow'; -export * from './MRT_TableBodyRowGrabHandle'; -export * from './MRT_TableDetailPanel'; diff --git a/packages/mantine-react-table/src/buttons/index.ts b/packages/mantine-react-table/src/buttons/index.ts deleted file mode 100644 index 4091c2c78..000000000 --- a/packages/mantine-react-table/src/buttons/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -export * from './MRT_ColumnPinningButtons'; -export * from './MRT_CopyButton'; -export * from './MRT_EditActionButtons'; -export * from './MRT_ExpandAllButton'; -export * from './MRT_ExpandButton'; -export * from './MRT_GrabHandleButton'; -export * from './MRT_ShowHideColumnsButton'; -export * from './MRT_ToggleDensePaddingButton'; -export * from './MRT_ToggleFiltersButton'; -export * from './MRT_ToggleFullScreenButton'; -export * from './MRT_ToggleGlobalFilterButton'; -export * from './MRT_ToggleRowActionMenuButton'; diff --git a/packages/mantine-react-table/src/column.utils.ts b/packages/mantine-react-table/src/column.utils.ts deleted file mode 100644 index 5e5cd4b91..000000000 --- a/packages/mantine-react-table/src/column.utils.ts +++ /dev/null @@ -1,394 +0,0 @@ -import { type ReactNode } from 'react'; -import { - createRow as _createRow, - flexRender as _flexRender, - type Renderable, - type Row, -} from '@tanstack/react-table'; -import { type Range, defaultRangeExtractor } from '@tanstack/react-virtual'; -import { type MantineTheme } from '@mantine/core'; -import { - type MRT_Column, - type MRT_ColumnDef, - type MRT_ColumnHelper, - type MRT_ColumnOrderState, - type MRT_DefinedColumnDef, - type MRT_DefinedTableOptions, - type MRT_DisplayColumnDef, - type MRT_DisplayColumnIds, - type MRT_FilterOption, - type MRT_GroupColumnDef, - type MRT_GroupingState, - type MRT_Row, - type MRT_RowData, - type MRT_TableInstance, - type MRT_TableOptions, - type MantineShade, -} from './types'; - -export const getColumnId = ( - columnDef: MRT_ColumnDef, -): string => - columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header; - -export const getAllLeafColumnDefs = ( - columns: MRT_ColumnDef[], -) => { - const allLeafColumnDefs: MRT_ColumnDef[] = []; - const getLeafColumns = (cols: MRT_ColumnDef[]) => { - cols.forEach((col) => { - if (col.columns) { - getLeafColumns(col.columns); - } else { - allLeafColumnDefs.push(col); - } - }); - }; - getLeafColumns(columns); - return allLeafColumnDefs; -}; - -export const prepareColumns = ({ - columnDefs, - tableOptions, -}: { - columnDefs: MRT_ColumnDef[]; - tableOptions: MRT_DefinedTableOptions; -}): MRT_DefinedColumnDef[] => { - const { - aggregationFns = {}, - defaultDisplayColumn, - filterFns = {}, - sortingFns = {}, - state: { columnFilterFns = {} } = {}, - } = tableOptions; - return columnDefs.map((columnDef) => { - //assign columnId - if (!columnDef.id) columnDef.id = getColumnId(columnDef); - //assign columnDefType - if (!columnDef.columnDefType) columnDef.columnDefType = 'data'; - if (columnDef.columns?.length) { - columnDef.columnDefType = 'group'; - //recursively prepare columns if this is a group column - columnDef.columns = prepareColumns({ - columnDefs: columnDef.columns, - tableOptions, - }); - } else if (columnDef.columnDefType === 'data') { - //assign aggregationFns if multiple aggregationFns are provided - if (Array.isArray(columnDef.aggregationFn)) { - const aggFns = columnDef.aggregationFn as string[]; - columnDef.aggregationFn = ( - columnId: string, - leafRows: Row[], - childRows: Row[], - ) => - aggFns.map( - (fn) => aggregationFns[fn]?.(columnId, leafRows, childRows), - ); - } - - //assign filterFns - if (Object.keys(filterFns).includes(columnFilterFns[columnDef.id])) { - columnDef.filterFn = - filterFns[columnFilterFns[columnDef.id]] ?? filterFns.fuzzy; - (columnDef as MRT_DefinedColumnDef)._filterFn = - columnFilterFns[columnDef.id]; - } - - //assign sortingFns - if (Object.keys(sortingFns).includes(columnDef.sortingFn as string)) { - // @ts-ignore - columnDef.sortingFn = sortingFns[columnDef.sortingFn]; - } - } else if (columnDef.columnDefType === 'display') { - columnDef = { - ...(defaultDisplayColumn as MRT_ColumnDef), - ...columnDef, - }; - } - return columnDef; - }) as MRT_DefinedColumnDef[]; -}; - -export const reorderColumn = ( - draggedColumn: MRT_Column, - targetColumn: MRT_Column, - columnOrder: MRT_ColumnOrderState, -): MRT_ColumnOrderState => { - if (draggedColumn.getCanPin()) { - draggedColumn.pin(targetColumn.getIsPinned()); - } - const newColumnOrder = [...columnOrder]; - newColumnOrder.splice( - newColumnOrder.indexOf(targetColumn.id), - 0, - newColumnOrder.splice(newColumnOrder.indexOf(draggedColumn.id), 1)[0], - ); - return newColumnOrder; -}; - -export const showExpandColumn = ( - props: MRT_TableOptions, - grouping?: MRT_GroupingState, -) => - !!( - props.enableExpanding || - (props.enableGrouping && (grouping === undefined || grouping?.length)) || - props.renderDetailPanel - ); - -export const getLeadingDisplayColumnIds = ( - props: MRT_TableOptions, -) => - [ - props.enableRowPinning && - !props.rowPinningDisplayMode?.startsWith('select') && - 'mrt-row-pin', - (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag', - props.positionActionsColumn === 'first' && - (props.enableRowActions || - (props.enableEditing && - ['custom', 'modal', 'row'].includes(props.editDisplayMode ?? ''))) && - 'mrt-row-actions', - props.positionExpandColumn === 'first' && - showExpandColumn(props) && - 'mrt-row-expand', - props.enableRowSelection && 'mrt-row-select', - props.enableRowNumbers && 'mrt-row-numbers', - ].filter(Boolean) as MRT_DisplayColumnIds[]; - -export const getTrailingDisplayColumnIds = ( - props: MRT_TableOptions, -) => - [ - props.positionActionsColumn === 'last' && - (props.enableRowActions || - (props.enableEditing && - ['modal', 'row'].includes(props.editDisplayMode ?? ''))) && - 'mrt-row-actions', - props.positionExpandColumn === 'last' && - showExpandColumn(props) && - 'mrt-row-expand', - props.layoutMode === 'grid-no-grow' && 'mrt-row-spacer', - ].filter(Boolean) as MRT_DisplayColumnIds[]; - -export const getDefaultColumnOrderIds = ( - props: MRT_TableOptions, -) => { - const leadingDisplayCols: string[] = getLeadingDisplayColumnIds(props); - const trailingDisplayCols: string[] = getTrailingDisplayColumnIds(props); - const allLeafColumnDefs = getAllLeafColumnDefs(props.columns) - .map((columnDef) => getColumnId(columnDef)) - .filter( - (columnId) => - !leadingDisplayCols.includes(columnId) && - !trailingDisplayCols.includes(columnId), - ); - return [...leadingDisplayCols, ...allLeafColumnDefs, ...trailingDisplayCols]; -}; - -export const getDefaultColumnFilterFn = ( - columnDef: MRT_ColumnDef, -): MRT_FilterOption => { - const { filterVariant } = columnDef; - if (filterVariant === 'multi-select') return 'arrIncludesSome'; - if (['date-range', 'range', 'range-slider'].includes(filterVariant || '')) - return 'betweenInclusive'; - if (['checkbox', 'date', 'select'].includes(filterVariant || '')) - return 'equals'; - return 'fuzzy'; -}; - -export const getIsFirstColumn = ( - column: MRT_Column, - table: MRT_TableInstance, -) => { - const leftColumns = table.getLeftVisibleLeafColumns(); - return leftColumns.length - ? leftColumns[0].id === column.id - : table.getVisibleLeafColumns()[0].id === column.id; -}; - -export const getIsLastColumn = ( - column: MRT_Column, - table: MRT_TableInstance, -) => { - const rightColumns = table.getRightVisibleLeafColumns(); - const columns = table.getVisibleLeafColumns(); - return rightColumns.length - ? rightColumns[rightColumns.length - 1].id === column.id - : columns[columns.length - 1].id === column.id; -}; - -export const getIsLastLeftPinnedColumn = ( - table: MRT_TableInstance, - column: MRT_Column, -) => { - return ( - column.getIsPinned() === 'left' && - table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex() - ); -}; - -export const getIsFirstRightPinnedColumn = ( - column: MRT_Column, -) => { - return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0; -}; - -export const getTotalRight = ( - table: MRT_TableInstance, - column: MRT_Column, -) => { - return table - .getRightLeafHeaders() - .slice(column.getPinnedIndex() + 1) - .reduce((acc, col) => acc + col.getSize(), 0); -}; - -export const getCanRankRows = ( - table: MRT_TableInstance, -) => { - const { getState, options } = table; - const { - enableGlobalFilterRankedResults, - manualExpanding, - manualFiltering, - manualGrouping, - manualSorting, - } = options; - const { expanded, globalFilterFn } = getState(); - - return ( - !manualExpanding && - !manualFiltering && - !manualGrouping && - !manualSorting && - enableGlobalFilterRankedResults && - globalFilterFn === 'fuzzy' && - expanded !== true && - !Object.values(expanded).some(Boolean) - ); -}; - -export const MRT_DefaultColumn = { - filterVariant: 'text', - maxSize: 1000, - minSize: 40, - size: 180, -} as const; - -export const MRT_DefaultDisplayColumn = { - columnDefType: 'display', - enableClickToCopy: false, - enableColumnActions: false, - enableColumnDragging: false, - enableColumnFilter: false, - enableColumnOrdering: false, - enableEditing: false, - enableGlobalFilter: false, - enableGrouping: false, - enableHiding: false, - enableResizing: false, - enableSorting: false, -} as const; - -export function parseFromValuesOrFunc( - fn: ((arg: U) => T) | T | undefined, - arg: U, -): T | undefined { - return fn instanceof Function ? fn(arg) : fn; -} - -export const parseCSSVarId = (id: string) => id.replace(/[^a-zA-Z0-9]/g, '_'); - -export const getPrimaryShade = (theme: MantineTheme): number => - typeof theme.primaryShade === 'number' - ? theme.primaryShade - : theme.primaryShade?.dark ?? 7; - -export const getPrimaryColor = ( - theme: MantineTheme, - shade?: MantineShade, -): string => theme.colors[theme.primaryColor][shade ?? getPrimaryShade(theme)]; - -export const flexRender = _flexRender as ( - Comp: Renderable, - props: any, -) => JSX.Element | ReactNode; - -export const createRow = ( - table: MRT_TableInstance, - originalRow?: TData, -): MRT_Row => - _createRow( - table as any, - 'mrt-row-create', - originalRow ?? - Object.assign( - {}, - ...getAllLeafColumnDefs(table.options.columns) - .filter((c) => c.columnDefType === 'data') - .map((col) => ({ - [getColumnId(col)]: '', - })), - ), - -1, - 0, - ) as MRT_Row; - -export const extraIndexRangeExtractor = ( - range: Range, - draggingIndex?: number, -) => { - const newIndexes = defaultRangeExtractor(range); - if (draggingIndex === undefined) return newIndexes; - if ( - draggingIndex >= 0 && - draggingIndex < Math.max(range.startIndex - range.overscan, 0) - ) { - newIndexes.unshift(draggingIndex); - } - if (draggingIndex >= 0 && draggingIndex > range.endIndex + range.overscan) { - newIndexes.push(draggingIndex); - } - return newIndexes; -}; - -export function createMRTColumnHelper< - TData extends MRT_RowData, ->(): MRT_ColumnHelper { - return { - accessor: (accessor, column) => { - return typeof accessor === 'function' - ? ({ - ...column, - accessorFn: accessor, - } as any) - : { - ...column, - accessorKey: accessor, - }; - }, - display: (column) => column as MRT_DisplayColumnDef, - group: (column) => column as MRT_GroupColumnDef, - }; -} - -export const getValueAndLabel = ( - option: { label?: string; text?: string; value: string } | string, -): { label: string; value: string } => { - let label: string = ''; - let value: string = ''; - if (option) { - if (typeof option !== 'object') { - label = option; - value = option; - } else { - label = option.label ?? option.text ?? option.value; - value = option.value ?? label; - } - } - return { label, value }; -}; diff --git a/packages/mantine-react-table/src/MantineReactTable.tsx b/packages/mantine-react-table/src/components/MantineReactTable.tsx similarity index 90% rename from packages/mantine-react-table/src/MantineReactTable.tsx rename to packages/mantine-react-table/src/components/MantineReactTable.tsx index c7aa165cf..e6c861993 100644 --- a/packages/mantine-react-table/src/MantineReactTable.tsx +++ b/packages/mantine-react-table/src/components/MantineReactTable.tsx @@ -1,11 +1,11 @@ -import { MRT_TablePaper } from './table/MRT_TablePaper'; +import { useMantineReactTable } from '../hooks/useMantineReactTable'; import { type MRT_RowData, type MRT_TableInstance, type MRT_TableOptions, type Xor, -} from './types'; -import { useMantineReactTable } from './useMantineReactTable'; +} from '../types'; +import { MRT_TablePaper } from './table/MRT_TablePaper'; type TableInstanceProp = { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/body/MRT_TableBody.module.css b/packages/mantine-react-table/src/components/body/MRT_TableBody.module.css similarity index 100% rename from packages/mantine-react-table/src/body/MRT_TableBody.module.css rename to packages/mantine-react-table/src/components/body/MRT_TableBody.module.css diff --git a/packages/mantine-react-table/src/body/MRT_TableBody.tsx b/packages/mantine-react-table/src/components/body/MRT_TableBody.tsx similarity index 88% rename from packages/mantine-react-table/src/body/MRT_TableBody.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableBody.tsx index de4813f54..f6ae12091 100644 --- a/packages/mantine-react-table/src/body/MRT_TableBody.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableBody.tsx @@ -3,16 +3,16 @@ import classes from './MRT_TableBody.module.css'; import { memo, useMemo } from 'react'; import { TableTbody, Text } from '@mantine/core'; import { MRT_TableBodyRow, Memo_MRT_TableBodyRow } from './MRT_TableBodyRow'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { useMRT_RowVirtualizer } from '../hooks/useMRT_RowVirtualizer'; -import { useMRT_Rows } from '../hooks/useMRT_Rows'; +import { useMRT_RowVirtualizer } from '../../hooks/useMRT_RowVirtualizer'; +import { useMRT_Rows } from '../../hooks/useMRT_Rows'; import { type MRT_ColumnVirtualizer, type MRT_Row, type MRT_RowData, type MRT_TableInstance, type MRT_VirtualItem, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; @@ -34,7 +34,6 @@ export const MRT_TableBody = ({ getState, getTopRows, options: { - createDisplayMode, enableStickyFooter, enableStickyHeader, layoutMode, @@ -47,7 +46,7 @@ export const MRT_TableBody = ({ }, refs: { tableFooterRef, tableHeadRef, tablePaperRef }, } = table; - const { columnFilters, creatingRow, globalFilter, isFullScreen, rowPinning } = + const { columnFilters, globalFilter, isFullScreen, rowPinning } = getState(); const tableBodyProps = parseFromValuesOrFunc(mantineTableBodyProps, { @@ -80,14 +79,6 @@ export const MRT_TableBody = ({ table, }; - const CreatingRow = creatingRow && createDisplayMode === 'row' && ( - - ); - return ( <> {!rowPinningDisplayMode?.includes('sticky') && @@ -116,17 +107,6 @@ export const MRT_TableBody = ({ })} )} - {rowVirtualizer && CreatingRow && ( - ({ - display: layoutMode?.startsWith('grid') ? 'grid' : undefined, - ...(parseFromValuesOrFunc(tableBodyProps?.style, theme) as any), - })} - > - {CreatingRow} - - )} ({ tableBodyProps?.className, )} > - {!rowVirtualizer && CreatingRow} {tableBodyProps?.children ?? - (!rows.length && !CreatingRow ? ( + (!rows.length ? ( { cell: MRT_Cell; diff --git a/packages/mantine-react-table/src/body/MRT_TableBodyCellValue.tsx b/packages/mantine-react-table/src/components/body/MRT_TableBodyCellValue.tsx similarity index 97% rename from packages/mantine-react-table/src/body/MRT_TableBodyCellValue.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableBodyCellValue.tsx index bada5bf4b..c16173e30 100644 --- a/packages/mantine-react-table/src/body/MRT_TableBodyCellValue.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableBodyCellValue.tsx @@ -1,11 +1,11 @@ import { Highlight, type HighlightProps } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Cell, type MRT_CellValue, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; const allowedTypes = ['string', 'number']; const allowedFilterVariants = ['text', 'autocomplete']; diff --git a/packages/mantine-react-table/src/body/MRT_TableBodyRow.module.css b/packages/mantine-react-table/src/components/body/MRT_TableBodyRow.module.css similarity index 100% rename from packages/mantine-react-table/src/body/MRT_TableBodyRow.module.css rename to packages/mantine-react-table/src/components/body/MRT_TableBodyRow.module.css diff --git a/packages/mantine-react-table/src/body/MRT_TableBodyRow.tsx b/packages/mantine-react-table/src/components/body/MRT_TableBodyRow.tsx similarity index 98% rename from packages/mantine-react-table/src/body/MRT_TableBodyRow.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableBodyRow.tsx index 1a4f60104..cf4220c80 100644 --- a/packages/mantine-react-table/src/body/MRT_TableBodyRow.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableBodyRow.tsx @@ -4,7 +4,6 @@ import { type DragEvent, memo, useMemo, useRef } from 'react'; import { Box, TableTr } from '@mantine/core'; import { MRT_TableBodyCell, Memo_MRT_TableBodyCell } from './MRT_TableBodyCell'; import { MRT_TableDetailPanel } from './MRT_TableDetailPanel'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Cell, type MRT_ColumnVirtualizer, @@ -13,7 +12,8 @@ import { type MRT_RowVirtualizer, type MRT_TableInstance, type MRT_VirtualItem, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; diff --git a/packages/mantine-react-table/src/body/MRT_TableBodyRowGrabHandle.tsx b/packages/mantine-react-table/src/components/body/MRT_TableBodyRowGrabHandle.tsx similarity index 93% rename from packages/mantine-react-table/src/body/MRT_TableBodyRowGrabHandle.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableBodyRowGrabHandle.tsx index a87d37ad8..2e603ad04 100644 --- a/packages/mantine-react-table/src/body/MRT_TableBodyRowGrabHandle.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableBodyRowGrabHandle.tsx @@ -1,11 +1,11 @@ import { type DragEvent, type RefObject } from 'react'; -import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; interface Props { row: MRT_Row; diff --git a/packages/mantine-react-table/src/body/MRT_TableBodyRowPinButton.tsx b/packages/mantine-react-table/src/components/body/MRT_TableBodyRowPinButton.tsx similarity index 93% rename from packages/mantine-react-table/src/body/MRT_TableBodyRowPinButton.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableBodyRowPinButton.tsx index 865c91cf6..0218f12ee 100644 --- a/packages/mantine-react-table/src/body/MRT_TableBodyRowPinButton.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableBodyRowPinButton.tsx @@ -1,11 +1,11 @@ import { Box } from '@mantine/core'; -import { MRT_RowPinButton } from '../buttons/MRT_RowPinButton'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_RowPinButton } from '../buttons/MRT_RowPinButton'; interface Props { row: MRT_Row; diff --git a/packages/mantine-react-table/src/body/MRT_TableDetailPanel.module.css b/packages/mantine-react-table/src/components/body/MRT_TableDetailPanel.module.css similarity index 100% rename from packages/mantine-react-table/src/body/MRT_TableDetailPanel.module.css rename to packages/mantine-react-table/src/components/body/MRT_TableDetailPanel.module.css diff --git a/packages/mantine-react-table/src/body/MRT_TableDetailPanel.tsx b/packages/mantine-react-table/src/components/body/MRT_TableDetailPanel.tsx similarity index 97% rename from packages/mantine-react-table/src/body/MRT_TableDetailPanel.tsx rename to packages/mantine-react-table/src/components/body/MRT_TableDetailPanel.tsx index 7fec15689..cd1a3db5c 100644 --- a/packages/mantine-react-table/src/body/MRT_TableDetailPanel.tsx +++ b/packages/mantine-react-table/src/components/body/MRT_TableDetailPanel.tsx @@ -2,14 +2,14 @@ import clsx from 'clsx'; import classes from './MRT_TableDetailPanel.module.css'; import { type RefObject } from 'react'; import { Collapse, TableTd, type TableTdProps, TableTr } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_RowVirtualizer, type MRT_TableInstance, type MRT_VirtualItem, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props extends TableTdProps { parentRowRef: RefObject; diff --git a/packages/mantine-react-table/src/buttons/MRT_ColumnPinningButtons.module.css b/packages/mantine-react-table/src/components/buttons/MRT_ColumnPinningButtons.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_ColumnPinningButtons.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_ColumnPinningButtons.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_ColumnPinningButtons.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ColumnPinningButtons.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_ColumnPinningButtons.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ColumnPinningButtons.tsx index 13c3b50eb..cf8c24482 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ColumnPinningButtons.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ColumnPinningButtons.tsx @@ -6,7 +6,7 @@ import { type MRT_Column, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { column: MRT_Column; diff --git a/packages/mantine-react-table/src/buttons/MRT_CopyButton.module.css b/packages/mantine-react-table/src/components/buttons/MRT_CopyButton.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_CopyButton.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_CopyButton.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_CopyButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_CopyButton.tsx similarity index 95% rename from packages/mantine-react-table/src/buttons/MRT_CopyButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_CopyButton.tsx index 261df7280..e83629d63 100644 --- a/packages/mantine-react-table/src/buttons/MRT_CopyButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_CopyButton.tsx @@ -2,13 +2,13 @@ import clsx from 'clsx'; import classes from './MRT_CopyButton.module.css'; import { type ReactNode } from 'react'; import { CopyButton, Tooltip, UnstyledButton } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Cell, type MRT_CellValue, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { cell: MRT_Cell; diff --git a/packages/mantine-react-table/src/buttons/MRT_EditActionButtons.module.css b/packages/mantine-react-table/src/components/buttons/MRT_EditActionButtons.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_EditActionButtons.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_EditActionButtons.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_EditActionButtons.tsx b/packages/mantine-react-table/src/components/buttons/MRT_EditActionButtons.tsx similarity index 99% rename from packages/mantine-react-table/src/buttons/MRT_EditActionButtons.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_EditActionButtons.tsx index 7ebeee881..9e2394968 100644 --- a/packages/mantine-react-table/src/buttons/MRT_EditActionButtons.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_EditActionButtons.tsx @@ -5,7 +5,7 @@ import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { row: MRT_Row; diff --git a/packages/mantine-react-table/src/buttons/MRT_ExpandAllButton.module.css b/packages/mantine-react-table/src/components/buttons/MRT_ExpandAllButton.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_ExpandAllButton.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_ExpandAllButton.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_ExpandAllButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ExpandAllButton.tsx similarity index 93% rename from packages/mantine-react-table/src/buttons/MRT_ExpandAllButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ExpandAllButton.tsx index 22bb8e2cb..350f622b3 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ExpandAllButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ExpandAllButton.tsx @@ -1,8 +1,8 @@ import clsx from 'clsx'; import classes from './MRT_ExpandAllButton.module.css'; import { ActionIcon, Tooltip } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/buttons/MRT_ExpandButton.module.css b/packages/mantine-react-table/src/components/buttons/MRT_ExpandButton.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_ExpandButton.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_ExpandButton.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_ExpandButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ExpandButton.tsx similarity index 96% rename from packages/mantine-react-table/src/buttons/MRT_ExpandButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ExpandButton.tsx index 00cb6add6..f5228ad59 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ExpandButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ExpandButton.tsx @@ -2,12 +2,12 @@ import clsx from 'clsx'; import classes from './MRT_ExpandButton.module.css'; import { type MouseEvent } from 'react'; import { ActionIcon, Tooltip } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { row: MRT_Row; diff --git a/packages/mantine-react-table/src/buttons/MRT_GrabHandleButton.module.css b/packages/mantine-react-table/src/components/buttons/MRT_GrabHandleButton.module.css similarity index 100% rename from packages/mantine-react-table/src/buttons/MRT_GrabHandleButton.module.css rename to packages/mantine-react-table/src/components/buttons/MRT_GrabHandleButton.module.css diff --git a/packages/mantine-react-table/src/buttons/MRT_GrabHandleButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_GrabHandleButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_GrabHandleButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_GrabHandleButton.tsx index d15da202a..c7c05ea7b 100644 --- a/packages/mantine-react-table/src/buttons/MRT_GrabHandleButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_GrabHandleButton.tsx @@ -6,7 +6,7 @@ import { type HTMLPropsRef, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { actionIconProps?: ActionIconProps & HTMLPropsRef; diff --git a/packages/mantine-react-table/src/buttons/MRT_RowPinButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_RowPinButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_RowPinButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_RowPinButton.tsx index f598edad6..f90dd0831 100644 --- a/packages/mantine-react-table/src/buttons/MRT_RowPinButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_RowPinButton.tsx @@ -5,7 +5,7 @@ import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { pinningPosition: RowPinningPosition; diff --git a/packages/mantine-react-table/src/buttons/MRT_ShowHideColumnsButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ShowHideColumnsButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_ShowHideColumnsButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ShowHideColumnsButton.tsx index d0414dab6..5dd9f95bc 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ShowHideColumnsButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ShowHideColumnsButton.tsx @@ -1,10 +1,10 @@ import { ActionIcon, type ActionIconProps, Menu, Tooltip } from '@mantine/core'; -import { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu'; import { type HTMLPropsRef, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu'; interface Props extends ActionIconProps, diff --git a/packages/mantine-react-table/src/buttons/MRT_ToggleDensePaddingButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ToggleDensePaddingButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_ToggleDensePaddingButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ToggleDensePaddingButton.tsx index 3ccae1251..2797b56f4 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ToggleDensePaddingButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ToggleDensePaddingButton.tsx @@ -4,7 +4,7 @@ import { type MRT_DensityState, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props extends ActionIconProps, diff --git a/packages/mantine-react-table/src/buttons/MRT_ToggleFiltersButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ToggleFiltersButton.tsx similarity index 97% rename from packages/mantine-react-table/src/buttons/MRT_ToggleFiltersButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ToggleFiltersButton.tsx index 9f9742b92..0fc952467 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ToggleFiltersButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ToggleFiltersButton.tsx @@ -3,7 +3,7 @@ import { type HTMLPropsRef, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props extends ActionIconProps, diff --git a/packages/mantine-react-table/src/buttons/MRT_ToggleFullScreenButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ToggleFullScreenButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_ToggleFullScreenButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ToggleFullScreenButton.tsx index f8399f26b..5322c247a 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ToggleFullScreenButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ToggleFullScreenButton.tsx @@ -4,7 +4,7 @@ import { type HTMLPropsRef, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props extends ActionIconProps, diff --git a/packages/mantine-react-table/src/buttons/MRT_ToggleGlobalFilterButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx similarity index 98% rename from packages/mantine-react-table/src/buttons/MRT_ToggleGlobalFilterButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx index 1772cc929..7320c0a41 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ToggleGlobalFilterButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ToggleGlobalFilterButton.tsx @@ -3,7 +3,7 @@ import { type HTMLPropsRef, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props extends ActionIconProps, diff --git a/packages/mantine-react-table/src/buttons/MRT_ToggleRowActionMenuButton.tsx b/packages/mantine-react-table/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx similarity index 90% rename from packages/mantine-react-table/src/buttons/MRT_ToggleRowActionMenuButton.tsx rename to packages/mantine-react-table/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx index c67df2d2f..e1f822333 100644 --- a/packages/mantine-react-table/src/buttons/MRT_ToggleRowActionMenuButton.tsx +++ b/packages/mantine-react-table/src/components/buttons/MRT_ToggleRowActionMenuButton.tsx @@ -1,25 +1,27 @@ import { type MouseEvent } from 'react'; import { ActionIcon, Tooltip } from '@mantine/core'; import { MRT_EditActionButtons } from './MRT_EditActionButtons'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu'; import { type MRT_Cell, type MRT_CellValue, type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu'; interface Props { cell: MRT_Cell; row: MRT_Row; + staticRowIndex?: number; table: MRT_TableInstance; } export const MRT_ToggleRowActionMenuButton = ({ cell, row, + staticRowIndex, table, }: Props) => { const { @@ -53,7 +55,7 @@ export const MRT_ToggleRowActionMenuButton = ({ return ( <> {renderRowActions && !showEditActionButtons ? ( - renderRowActions({ cell, row, table }) + renderRowActions({ cell, row, staticRowIndex, table }) ) : showEditActionButtons ? ( ) : !renderRowActionMenuItems && @@ -73,6 +75,7 @@ export const MRT_ToggleRowActionMenuButton = ({ ) : null} diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooter.module.css b/packages/mantine-react-table/src/components/footer/MRT_TableFooter.module.css similarity index 100% rename from packages/mantine-react-table/src/footer/MRT_TableFooter.module.css rename to packages/mantine-react-table/src/components/footer/MRT_TableFooter.module.css diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooter.tsx b/packages/mantine-react-table/src/components/footer/MRT_TableFooter.tsx similarity index 95% rename from packages/mantine-react-table/src/footer/MRT_TableFooter.tsx rename to packages/mantine-react-table/src/components/footer/MRT_TableFooter.tsx index a7146a1c2..94ebc6f50 100644 --- a/packages/mantine-react-table/src/footer/MRT_TableFooter.tsx +++ b/packages/mantine-react-table/src/components/footer/MRT_TableFooter.tsx @@ -2,12 +2,12 @@ import clsx from 'clsx'; import classes from './MRT_TableFooter.module.css'; import { TableTfoot } from '@mantine/core'; import { MRT_TableFooterRow } from './MRT_TableFooterRow'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_ColumnVirtualizer, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooterCell.module.css b/packages/mantine-react-table/src/components/footer/MRT_TableFooterCell.module.css similarity index 100% rename from packages/mantine-react-table/src/footer/MRT_TableFooterCell.module.css rename to packages/mantine-react-table/src/components/footer/MRT_TableFooterCell.module.css diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooterCell.tsx b/packages/mantine-react-table/src/components/footer/MRT_TableFooterCell.tsx similarity index 94% rename from packages/mantine-react-table/src/footer/MRT_TableFooterCell.tsx rename to packages/mantine-react-table/src/components/footer/MRT_TableFooterCell.tsx index db5c688a1..4776b92df 100644 --- a/packages/mantine-react-table/src/footer/MRT_TableFooterCell.tsx +++ b/packages/mantine-react-table/src/components/footer/MRT_TableFooterCell.tsx @@ -1,12 +1,12 @@ import clsx from 'clsx'; import classes from './MRT_TableFooterCell.module.css'; import { TableTh } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { footer: MRT_Header; diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooterRow.module.css b/packages/mantine-react-table/src/components/footer/MRT_TableFooterRow.module.css similarity index 100% rename from packages/mantine-react-table/src/footer/MRT_TableFooterRow.module.css rename to packages/mantine-react-table/src/components/footer/MRT_TableFooterRow.module.css diff --git a/packages/mantine-react-table/src/footer/MRT_TableFooterRow.tsx b/packages/mantine-react-table/src/components/footer/MRT_TableFooterRow.tsx similarity index 96% rename from packages/mantine-react-table/src/footer/MRT_TableFooterRow.tsx rename to packages/mantine-react-table/src/components/footer/MRT_TableFooterRow.tsx index f9f0f201a..c3860e97c 100644 --- a/packages/mantine-react-table/src/footer/MRT_TableFooterRow.tsx +++ b/packages/mantine-react-table/src/components/footer/MRT_TableFooterRow.tsx @@ -2,14 +2,14 @@ import clsx from 'clsx'; import classes from './MRT_TableFooterRow.module.css'; import { Box, TableTr } from '@mantine/core'; import { MRT_TableFooterCell } from './MRT_TableFooterCell'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_ColumnVirtualizer, type MRT_Header, type MRT_HeaderGroup, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; diff --git a/packages/mantine-react-table/src/head/MRT_TableHead.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHead.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHead.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHead.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHead.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHead.tsx similarity index 94% rename from packages/mantine-react-table/src/head/MRT_TableHead.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHead.tsx index 165c20b48..67429e131 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHead.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHead.tsx @@ -2,13 +2,13 @@ import clsx from 'clsx'; import classes from './MRT_TableHead.module.css'; import { TableTh, TableThead, TableTr } from '@mantine/core'; import { MRT_TableHeadRow } from './MRT_TableHeadRow'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { MRT_ToolbarAlertBanner } from '../toolbar'; import { type MRT_ColumnVirtualizer, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_ToolbarAlertBanner } from '../toolbar/MRT_ToolbarAlertBanner'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCell.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadCell.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadCell.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCell.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCell.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCell.tsx similarity index 97% rename from packages/mantine-react-table/src/head/MRT_TableHeadCell.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCell.tsx index 1124e0710..2cf04804f 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCell.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCell.tsx @@ -12,19 +12,19 @@ import { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel'; import { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle'; import { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle'; import { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel'; +import { + type MRT_Header, + type MRT_RowData, + type MRT_TableInstance, +} from '../../types'; import { getIsFirstRightPinnedColumn, getIsLastLeftPinnedColumn, getTotalRight, - parseCSSVarId, - parseFromValuesOrFunc, -} from '../column.utils'; +} from '../../utils/column.utils'; +import { parseCSSVarId } from '../../utils/style.utils'; +import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu'; -import { - type MRT_Header, - type MRT_RowData, - type MRT_TableInstance, -} from '../types'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterContainer.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterContainer.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellFilterContainer.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterContainer.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterContainer.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterContainer.tsx similarity index 97% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellFilterContainer.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterContainer.tsx index f3bd8d91e..5bbff15dc 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterContainer.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterContainer.tsx @@ -1,16 +1,16 @@ import classes from './MRT_TableHeadCellFilterContainer.module.css'; import { ActionIcon, Collapse, Flex, Menu, Text, Tooltip } from '@mantine/core'; -import { localizedFilterOption } from '../filterFns'; +import { localizedFilterOption } from '../../fns/filterFns'; +import { + type MRT_Header, + type MRT_RowData, + type MRT_TableInstance, +} from '../../types'; import { MRT_FilterCheckbox } from '../inputs/MRT_FilterCheckbox'; import { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields'; import { MRT_FilterRangeSlider } from '../inputs/MRT_FilterRangeSlider'; import { MRT_FilterTextInput } from '../inputs/MRT_FilterTextInput'; import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu'; -import { - type MRT_Header, - type MRT_RowData, - type MRT_TableInstance, -} from '../types'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterLabel.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterLabel.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellFilterLabel.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterLabel.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterLabel.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterLabel.tsx similarity index 97% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellFilterLabel.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterLabel.tsx index f608ba4c1..38e8d8bd2 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCellFilterLabel.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellFilterLabel.tsx @@ -3,13 +3,13 @@ import classes from './MRT_TableHeadCellFilterLabel.module.css'; import { type MouseEvent, useState } from 'react'; import { ActionIcon, Popover, Tooltip, Transition } from '@mantine/core'; import { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer'; -import { dataVariable } from '../dataVariable'; -import { localizedFilterOption } from '../filterFns'; +import { localizedFilterOption } from '../../fns/filterFns'; import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { dataVariable } from '../../utils/style.utils'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellGrabHandle.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellGrabHandle.tsx similarity index 93% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellGrabHandle.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellGrabHandle.tsx index 5293d724d..68c3fc4d4 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCellGrabHandle.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellGrabHandle.tsx @@ -1,12 +1,13 @@ import { type DragEvent, type RefObject } from 'react'; -import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; -import { parseFromValuesOrFunc, reorderColumn } from '../column.utils'; import { type MRT_CellValue, type MRT_Column, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { reorderColumn } from '../../utils/column.utils'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; interface Props { column: MRT_Column; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellResizeHandle.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellResizeHandle.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellResizeHandle.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellResizeHandle.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellResizeHandle.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellResizeHandle.tsx similarity index 98% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellResizeHandle.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellResizeHandle.tsx index 56153e596..fc8adee0a 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCellResizeHandle.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellResizeHandle.tsx @@ -5,7 +5,7 @@ import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellSortLabel.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellSortLabel.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellSortLabel.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellSortLabel.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadCellSortLabel.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellSortLabel.tsx similarity index 97% rename from packages/mantine-react-table/src/head/MRT_TableHeadCellSortLabel.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadCellSortLabel.tsx index 09feb7681..b29ed4f2e 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadCellSortLabel.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadCellSortLabel.tsx @@ -1,8 +1,8 @@ import clsx from 'clsx'; import classes from './MRT_TableHeadCellSortLabel.module.css'; import { ActionIcon, Indicator, Tooltip } from '@mantine/core'; -import { dataVariable } from '../dataVariable'; -import type { MRT_Header, MRT_RowData, MRT_TableInstance } from '../types'; +import { dataVariable } from '../../utils/style.utils'; +import type { MRT_Header, MRT_RowData, MRT_TableInstance } from '../../types'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadRow.module.css b/packages/mantine-react-table/src/components/head/MRT_TableHeadRow.module.css similarity index 100% rename from packages/mantine-react-table/src/head/MRT_TableHeadRow.module.css rename to packages/mantine-react-table/src/components/head/MRT_TableHeadRow.module.css diff --git a/packages/mantine-react-table/src/head/MRT_TableHeadRow.tsx b/packages/mantine-react-table/src/components/head/MRT_TableHeadRow.tsx similarity index 95% rename from packages/mantine-react-table/src/head/MRT_TableHeadRow.tsx rename to packages/mantine-react-table/src/components/head/MRT_TableHeadRow.tsx index 8943fa78d..e50444c03 100644 --- a/packages/mantine-react-table/src/head/MRT_TableHeadRow.tsx +++ b/packages/mantine-react-table/src/components/head/MRT_TableHeadRow.tsx @@ -2,14 +2,14 @@ import clsx from 'clsx'; import classes from './MRT_TableHeadRow.module.css'; import { Box, TableTr } from '@mantine/core'; import { MRT_TableHeadCell } from './MRT_TableHeadCell'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_ColumnVirtualizer, type MRT_Header, type MRT_HeaderGroup, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { columnVirtualizer?: MRT_ColumnVirtualizer; diff --git a/packages/mantine-react-table/src/inputs/MRT_EditCellTextInput.tsx b/packages/mantine-react-table/src/components/inputs/MRT_EditCellTextInput.tsx similarity index 98% rename from packages/mantine-react-table/src/inputs/MRT_EditCellTextInput.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_EditCellTextInput.tsx index 9498ac284..554fcaeed 100644 --- a/packages/mantine-react-table/src/inputs/MRT_EditCellTextInput.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_EditCellTextInput.tsx @@ -1,12 +1,12 @@ import { type FocusEvent, type KeyboardEvent, useState } from 'react'; import { Select, TextInput } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Cell, type MRT_CellValue, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { cell: MRT_Cell; diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterCheckBox.module.css b/packages/mantine-react-table/src/components/inputs/MRT_FilterCheckBox.module.css similarity index 100% rename from packages/mantine-react-table/src/inputs/MRT_FilterCheckBox.module.css rename to packages/mantine-react-table/src/components/inputs/MRT_FilterCheckBox.module.css diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterCheckbox.tsx b/packages/mantine-react-table/src/components/inputs/MRT_FilterCheckbox.tsx similarity index 95% rename from packages/mantine-react-table/src/inputs/MRT_FilterCheckbox.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_FilterCheckbox.tsx index 7d07daa9a..9047abbf2 100644 --- a/packages/mantine-react-table/src/inputs/MRT_FilterCheckbox.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_FilterCheckbox.tsx @@ -1,13 +1,13 @@ import clsx from 'clsx'; import classes from './MRT_FilterCheckBox.module.css'; import { Checkbox, type CheckboxProps, Tooltip } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_CellValue, type MRT_Column, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { column: MRT_Column; diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterRangeFields.module.css b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeFields.module.css similarity index 100% rename from packages/mantine-react-table/src/inputs/MRT_FilterRangeFields.module.css rename to packages/mantine-react-table/src/components/inputs/MRT_FilterRangeFields.module.css diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterRangeFields.tsx b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeFields.tsx similarity index 97% rename from packages/mantine-react-table/src/inputs/MRT_FilterRangeFields.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_FilterRangeFields.tsx index 3af2e55de..ab802904c 100644 --- a/packages/mantine-react-table/src/inputs/MRT_FilterRangeFields.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeFields.tsx @@ -6,7 +6,7 @@ import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterRangeSlider.module.css b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeSlider.module.css similarity index 100% rename from packages/mantine-react-table/src/inputs/MRT_FilterRangeSlider.module.css rename to packages/mantine-react-table/src/components/inputs/MRT_FilterRangeSlider.module.css diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterRangeSlider.tsx b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeSlider.tsx similarity index 97% rename from packages/mantine-react-table/src/inputs/MRT_FilterRangeSlider.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_FilterRangeSlider.tsx index d8995d4bb..3e72c88f7 100644 --- a/packages/mantine-react-table/src/inputs/MRT_FilterRangeSlider.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_FilterRangeSlider.tsx @@ -2,12 +2,12 @@ import clsx from 'clsx'; import classes from './MRT_FilterRangeSlider.module.css'; import { useEffect, useRef, useState } from 'react'; import { RangeSlider, type RangeSliderProps } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterTextInput.module.css b/packages/mantine-react-table/src/components/inputs/MRT_FilterTextInput.module.css similarity index 100% rename from packages/mantine-react-table/src/inputs/MRT_FilterTextInput.module.css rename to packages/mantine-react-table/src/components/inputs/MRT_FilterTextInput.module.css diff --git a/packages/mantine-react-table/src/inputs/MRT_FilterTextInput.tsx b/packages/mantine-react-table/src/components/inputs/MRT_FilterTextInput.tsx similarity index 98% rename from packages/mantine-react-table/src/inputs/MRT_FilterTextInput.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_FilterTextInput.tsx index 998e95c16..baf227127 100644 --- a/packages/mantine-react-table/src/inputs/MRT_FilterTextInput.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_FilterTextInput.tsx @@ -12,13 +12,13 @@ import { } from '@mantine/core'; import { DateInput } from '@mantine/dates'; import { useDebouncedValue } from '@mantine/hooks'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { localizedFilterOption } from '../filterFns'; +import { localizedFilterOption } from '../../fns/filterFns'; import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/inputs/MRT_GlobalFilterTextInput.module.css b/packages/mantine-react-table/src/components/inputs/MRT_GlobalFilterTextInput.module.css similarity index 100% rename from packages/mantine-react-table/src/inputs/MRT_GlobalFilterTextInput.module.css rename to packages/mantine-react-table/src/components/inputs/MRT_GlobalFilterTextInput.module.css diff --git a/packages/mantine-react-table/src/inputs/MRT_GlobalFilterTextInput.tsx b/packages/mantine-react-table/src/components/inputs/MRT_GlobalFilterTextInput.tsx similarity index 96% rename from packages/mantine-react-table/src/inputs/MRT_GlobalFilterTextInput.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_GlobalFilterTextInput.tsx index dbed1d9b7..ee55c604d 100644 --- a/packages/mantine-react-table/src/inputs/MRT_GlobalFilterTextInput.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_GlobalFilterTextInput.tsx @@ -10,9 +10,9 @@ import { Tooltip, } from '@mantine/core'; import { useDebouncedValue } from '@mantine/hooks'; -import { parseFromValuesOrFunc } from '../column.utils'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; interface Props extends TextInputProps { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/inputs/MRT_SelectCheckbox.tsx b/packages/mantine-react-table/src/components/inputs/MRT_SelectCheckbox.tsx similarity index 97% rename from packages/mantine-react-table/src/inputs/MRT_SelectCheckbox.tsx rename to packages/mantine-react-table/src/components/inputs/MRT_SelectCheckbox.tsx index 6d551a9ed..d2e8455de 100644 --- a/packages/mantine-react-table/src/inputs/MRT_SelectCheckbox.tsx +++ b/packages/mantine-react-table/src/components/inputs/MRT_SelectCheckbox.tsx @@ -8,12 +8,12 @@ import { type SwitchProps, Tooltip, } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { row?: MRT_Row; diff --git a/packages/mantine-react-table/src/menus/MRT_ColumnActionMenu.module.css b/packages/mantine-react-table/src/components/menus/MRT_ColumnActionMenu.module.css similarity index 100% rename from packages/mantine-react-table/src/menus/MRT_ColumnActionMenu.module.css rename to packages/mantine-react-table/src/components/menus/MRT_ColumnActionMenu.module.css diff --git a/packages/mantine-react-table/src/menus/MRT_ColumnActionMenu.tsx b/packages/mantine-react-table/src/components/menus/MRT_ColumnActionMenu.tsx similarity index 98% rename from packages/mantine-react-table/src/menus/MRT_ColumnActionMenu.tsx rename to packages/mantine-react-table/src/components/menus/MRT_ColumnActionMenu.tsx index 85dbe7811..a8e50781d 100644 --- a/packages/mantine-react-table/src/menus/MRT_ColumnActionMenu.tsx +++ b/packages/mantine-react-table/src/components/menus/MRT_ColumnActionMenu.tsx @@ -1,11 +1,11 @@ import classes from './MRT_ColumnActionMenu.module.css'; import { ActionIcon, Menu, Tooltip } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; import { type MRT_Header, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { header: MRT_Header; diff --git a/packages/mantine-react-table/src/menus/MRT_FilterOptionMenu.module.css b/packages/mantine-react-table/src/components/menus/MRT_FilterOptionMenu.module.css similarity index 100% rename from packages/mantine-react-table/src/menus/MRT_FilterOptionMenu.module.css rename to packages/mantine-react-table/src/components/menus/MRT_FilterOptionMenu.module.css diff --git a/packages/mantine-react-table/src/menus/MRT_FilterOptionMenu.tsx b/packages/mantine-react-table/src/components/menus/MRT_FilterOptionMenu.tsx similarity index 99% rename from packages/mantine-react-table/src/menus/MRT_FilterOptionMenu.tsx rename to packages/mantine-react-table/src/components/menus/MRT_FilterOptionMenu.tsx index 130a76ddb..0a6d3a92f 100644 --- a/packages/mantine-react-table/src/menus/MRT_FilterOptionMenu.tsx +++ b/packages/mantine-react-table/src/components/menus/MRT_FilterOptionMenu.tsx @@ -8,7 +8,7 @@ import { type MRT_Localization, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; export const mrtFilterOptions = ( localization: MRT_Localization, diff --git a/packages/mantine-react-table/src/menus/MRT_RowActionMenu.tsx b/packages/mantine-react-table/src/components/menus/MRT_RowActionMenu.tsx similarity index 94% rename from packages/mantine-react-table/src/menus/MRT_RowActionMenu.tsx rename to packages/mantine-react-table/src/components/menus/MRT_RowActionMenu.tsx index 6a48ecb03..0fa30a145 100644 --- a/packages/mantine-react-table/src/menus/MRT_RowActionMenu.tsx +++ b/packages/mantine-react-table/src/components/menus/MRT_RowActionMenu.tsx @@ -4,17 +4,19 @@ import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; interface Props { handleEdit: (event: MouseEvent) => void; row: MRT_Row; + staticRowIndex?: number; table: MRT_TableInstance; } export const MRT_RowActionMenu = ({ handleEdit, row, + staticRowIndex, table, }: Props) => { const { @@ -61,6 +63,7 @@ export const MRT_RowActionMenu = ({ )} {renderRowActionMenuItems?.({ row, + staticRowIndex, table, })} diff --git a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenu.module.css b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenu.module.css similarity index 100% rename from packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenu.module.css rename to packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenu.module.css diff --git a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenu.tsx b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenu.tsx similarity index 97% rename from packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenu.tsx rename to packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenu.tsx index 0c0c1ba39..86b692d19 100644 --- a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenu.tsx +++ b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenu.tsx @@ -3,12 +3,12 @@ import classes from './MRT_ShowHideColumnsMenu.module.css'; import { useMemo, useState } from 'react'; import { Button, Divider, Flex, Menu } from '@mantine/core'; import { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems'; -import { getDefaultColumnOrderIds } from '../column.utils'; import { type MRT_Column, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { getDefaultColumnOrderIds } from '../../utils/displayColumn.utils'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenuItems.module.css b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.module.css similarity index 100% rename from packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenuItems.module.css rename to packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.module.css diff --git a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenuItems.tsx b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx similarity index 96% rename from packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenuItems.tsx rename to packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx index 5ae81dfa5..0ee3411ee 100644 --- a/packages/mantine-react-table/src/menus/MRT_ShowHideColumnsMenuItems.tsx +++ b/packages/mantine-react-table/src/components/menus/MRT_ShowHideColumnsMenuItems.tsx @@ -14,16 +14,16 @@ import { Tooltip, useMantineTheme, } from '@mantine/core'; -import { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons'; -import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; -import { getPrimaryColor, reorderColumn } from '../column.utils'; -import { dataVariable } from '../dataVariable'; import { type MRT_CellValue, type MRT_Column, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { reorderColumn } from '../../utils/column.utils'; +import { dataVariable, getPrimaryColor } from '../../utils/style.utils'; +import { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons'; +import { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton'; interface Props { allColumns: MRT_Column[]; diff --git a/packages/mantine-react-table/src/modals/MRT_EditRowModal.tsx b/packages/mantine-react-table/src/components/modals/MRT_EditRowModal.tsx similarity index 96% rename from packages/mantine-react-table/src/modals/MRT_EditRowModal.tsx rename to packages/mantine-react-table/src/components/modals/MRT_EditRowModal.tsx index 02d6a0869..cbe8d3c42 100644 --- a/packages/mantine-react-table/src/modals/MRT_EditRowModal.tsx +++ b/packages/mantine-react-table/src/components/modals/MRT_EditRowModal.tsx @@ -1,12 +1,12 @@ import { Flex, Modal, Stack } from '@mantine/core'; -import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { MRT_EditCellTextInput } from '../inputs/MRT_EditCellTextInput'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, -} from '../types'; +} from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_EditActionButtons } from '../buttons/MRT_EditActionButtons'; +import { MRT_EditCellTextInput } from '../inputs/MRT_EditCellTextInput'; interface Props { open: boolean; diff --git a/packages/mantine-react-table/src/table/MRT_Table.module.css b/packages/mantine-react-table/src/components/table/MRT_Table.module.css similarity index 100% rename from packages/mantine-react-table/src/table/MRT_Table.module.css rename to packages/mantine-react-table/src/components/table/MRT_Table.module.css diff --git a/packages/mantine-react-table/src/table/MRT_Table.tsx b/packages/mantine-react-table/src/components/table/MRT_Table.tsx similarity index 90% rename from packages/mantine-react-table/src/table/MRT_Table.tsx rename to packages/mantine-react-table/src/components/table/MRT_Table.tsx index 3734ef692..569513f79 100644 --- a/packages/mantine-react-table/src/table/MRT_Table.tsx +++ b/packages/mantine-react-table/src/components/table/MRT_Table.tsx @@ -2,12 +2,13 @@ import clsx from 'clsx'; import classes from './MRT_Table.module.css'; import { useMemo } from 'react'; import { Table } from '@mantine/core'; +import { useMRT_ColumnVirtualizer } from '../../hooks/useMRT_ColumnVirtualizer'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseCSSVarId } from '../../utils/style.utils'; +import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_TableBody, Memo_MRT_TableBody } from '../body/MRT_TableBody'; -import { parseCSSVarId, parseFromValuesOrFunc } from '../column.utils'; import { MRT_TableFooter } from '../footer/MRT_TableFooter'; import { MRT_TableHead } from '../head/MRT_TableHead'; -import { useMRT_ColumnVirtualizer } from '../hooks/useMRT_ColumnVirtualizer'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/table/MRT_TableContainer.module.css b/packages/mantine-react-table/src/components/table/MRT_TableContainer.module.css similarity index 100% rename from packages/mantine-react-table/src/table/MRT_TableContainer.module.css rename to packages/mantine-react-table/src/components/table/MRT_TableContainer.module.css diff --git a/packages/mantine-react-table/src/table/MRT_TableContainer.tsx b/packages/mantine-react-table/src/components/table/MRT_TableContainer.tsx similarity index 93% rename from packages/mantine-react-table/src/table/MRT_TableContainer.tsx rename to packages/mantine-react-table/src/components/table/MRT_TableContainer.tsx index 65a723729..3d1dccfde 100644 --- a/packages/mantine-react-table/src/table/MRT_TableContainer.tsx +++ b/packages/mantine-react-table/src/components/table/MRT_TableContainer.tsx @@ -3,9 +3,9 @@ import classes from './MRT_TableContainer.module.css'; import { useEffect, useLayoutEffect, useState } from 'react'; import { Box, LoadingOverlay } from '@mantine/core'; import { MRT_Table } from './MRT_Table'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { MRT_EditRowModal } from '../modals'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_EditRowModal } from '../modals/MRT_EditRowModal'; const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect; diff --git a/packages/mantine-react-table/src/table/MRT_TablePaper.module.css b/packages/mantine-react-table/src/components/table/MRT_TablePaper.module.css similarity index 100% rename from packages/mantine-react-table/src/table/MRT_TablePaper.module.css rename to packages/mantine-react-table/src/components/table/MRT_TablePaper.module.css diff --git a/packages/mantine-react-table/src/table/MRT_TablePaper.tsx b/packages/mantine-react-table/src/components/table/MRT_TablePaper.tsx similarity index 94% rename from packages/mantine-react-table/src/table/MRT_TablePaper.tsx rename to packages/mantine-react-table/src/components/table/MRT_TablePaper.tsx index 876debed6..771825f53 100644 --- a/packages/mantine-react-table/src/table/MRT_TablePaper.tsx +++ b/packages/mantine-react-table/src/components/table/MRT_TablePaper.tsx @@ -2,10 +2,10 @@ import clsx from 'clsx'; import classes from './MRT_TablePaper.module.css'; import { Paper } from '@mantine/core'; import { MRT_TableContainer } from './MRT_TableContainer'; -import { parseFromValuesOrFunc } from '../column.utils'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_BottomToolbar } from '../toolbar/MRT_BottomToolbar'; import { MRT_TopToolbar } from '../toolbar/MRT_TopToolbar'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/toolbar/MRT_BottomToolbar.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_BottomToolbar.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_BottomToolbar.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_BottomToolbar.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_BottomToolbar.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_BottomToolbar.tsx similarity index 95% rename from packages/mantine-react-table/src/toolbar/MRT_BottomToolbar.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_BottomToolbar.tsx index 50f5f48ae..05644803f 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_BottomToolbar.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_BottomToolbar.tsx @@ -7,8 +7,8 @@ import { MRT_ProgressBar } from './MRT_ProgressBar'; import { MRT_TablePagination } from './MRT_TablePagination'; import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner'; import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/toolbar/MRT_ProgressBar.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_ProgressBar.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_ProgressBar.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_ProgressBar.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_ProgressBar.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_ProgressBar.tsx similarity index 87% rename from packages/mantine-react-table/src/toolbar/MRT_ProgressBar.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_ProgressBar.tsx index ac26a88e6..c321910e3 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_ProgressBar.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_ProgressBar.tsx @@ -1,8 +1,8 @@ import clsx from 'clsx'; import classes from './MRT_ProgressBar.module.css'; import { Collapse, Progress } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; interface Props { isTopToolbar: boolean; diff --git a/packages/mantine-react-table/src/toolbar/MRT_TablePagination.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_TablePagination.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_TablePagination.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_TablePagination.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_TablePagination.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_TablePagination.tsx similarity index 97% rename from packages/mantine-react-table/src/toolbar/MRT_TablePagination.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_TablePagination.tsx index 4385bf3b8..033b14002 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_TablePagination.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_TablePagination.tsx @@ -8,8 +8,8 @@ import { Select, Text, } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; const defaultRowsPerPage = [5, 10, 15, 20, 25, 30, 50, 100].map((x) => x.toString(), diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarAlertBanner.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarAlertBanner.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarAlertBanner.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarAlertBanner.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarAlertBanner.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarAlertBanner.tsx similarity index 95% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarAlertBanner.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarAlertBanner.tsx index 46212390b..c00e264af 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_ToolbarAlertBanner.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarAlertBanner.tsx @@ -2,9 +2,9 @@ import clsx from 'clsx'; import classes from './MRT_ToolbarAlertBanner.module.css'; import { Fragment, useMemo } from 'react'; import { ActionIcon, Alert, Badge, Collapse, Flex, Stack } from '@mantine/core'; -import { parseFromValuesOrFunc } from '../column.utils'; -import { MRT_SelectCheckbox } from '../inputs'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; +import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox'; interface Props { stackAlertBanner?: boolean; diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarDropZone.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarDropZone.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarDropZone.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarDropZone.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarDropZone.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarDropZone.tsx similarity index 95% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarDropZone.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarDropZone.tsx index bb0f3d2b8..e2b97a464 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_ToolbarDropZone.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarDropZone.tsx @@ -2,7 +2,7 @@ import clsx from 'clsx'; import classes from './MRT_ToolbarDropZone.module.css'; import { type DragEvent, useEffect } from 'react'; import { Flex, Text, Transition } from '@mantine/core'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarInternalButtons.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarInternalButtons.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarInternalButtons.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarInternalButtons.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_ToolbarInternalButtons.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarInternalButtons.tsx similarity index 96% rename from packages/mantine-react-table/src/toolbar/MRT_ToolbarInternalButtons.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_ToolbarInternalButtons.tsx index 91164a539..d4770e0b4 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_ToolbarInternalButtons.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_ToolbarInternalButtons.tsx @@ -1,12 +1,12 @@ import clsx from 'clsx'; import classes from './MRT_ToolbarInternalButtons.module.css'; import { Flex } from '@mantine/core'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; import { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton'; import { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton'; import { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton'; import { MRT_ToggleFullScreenButton } from '../buttons/MRT_ToggleFullScreenButton'; import { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/toolbar/MRT_TopToolbar.module.css b/packages/mantine-react-table/src/components/toolbar/MRT_TopToolbar.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/MRT_TopToolbar.module.css rename to packages/mantine-react-table/src/components/toolbar/MRT_TopToolbar.module.css diff --git a/packages/mantine-react-table/src/toolbar/MRT_TopToolbar.tsx b/packages/mantine-react-table/src/components/toolbar/MRT_TopToolbar.tsx similarity index 96% rename from packages/mantine-react-table/src/toolbar/MRT_TopToolbar.tsx rename to packages/mantine-react-table/src/components/toolbar/MRT_TopToolbar.tsx index e15d77e60..069ffb013 100644 --- a/packages/mantine-react-table/src/toolbar/MRT_TopToolbar.tsx +++ b/packages/mantine-react-table/src/components/toolbar/MRT_TopToolbar.tsx @@ -8,9 +8,9 @@ import { MRT_TablePagination } from './MRT_TablePagination'; import { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner'; import { MRT_ToolbarDropZone } from './MRT_ToolbarDropZone'; import { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons'; -import { parseFromValuesOrFunc } from '../column.utils'; +import { type MRT_RowData, type MRT_TableInstance } from '../../types'; +import { parseFromValuesOrFunc } from '../../utils/utils'; import { MRT_GlobalFilterTextInput } from '../inputs/MRT_GlobalFilterTextInput'; -import { type MRT_RowData, type MRT_TableInstance } from '../types'; interface Props { table: MRT_TableInstance; diff --git a/packages/mantine-react-table/src/toolbar/common.styles.module.css b/packages/mantine-react-table/src/components/toolbar/common.styles.module.css similarity index 100% rename from packages/mantine-react-table/src/toolbar/common.styles.module.css rename to packages/mantine-react-table/src/components/toolbar/common.styles.module.css diff --git a/packages/mantine-react-table/src/dataVariable.ts b/packages/mantine-react-table/src/dataVariable.ts deleted file mode 100644 index 288e63cbf..000000000 --- a/packages/mantine-react-table/src/dataVariable.ts +++ /dev/null @@ -1,16 +0,0 @@ -export function dataVariable( - name: string, - value: boolean | number | string | undefined, -) { - const key = `data-${name}`; - switch (typeof value) { - case 'boolean': - return value ? { [key]: '' } : null; - case 'number': - return { [key]: `${value}` }; - case 'string': - return { [key]: value }; - default: - return null; - } -} diff --git a/packages/mantine-react-table/src/aggregationFns.ts b/packages/mantine-react-table/src/fns/aggregationFns.ts similarity index 100% rename from packages/mantine-react-table/src/aggregationFns.ts rename to packages/mantine-react-table/src/fns/aggregationFns.ts diff --git a/packages/mantine-react-table/src/filterFns.ts b/packages/mantine-react-table/src/fns/filterFns.ts similarity index 84% rename from packages/mantine-react-table/src/filterFns.ts rename to packages/mantine-react-table/src/fns/filterFns.ts index 6d7a2a227..a23e5da70 100644 --- a/packages/mantine-react-table/src/filterFns.ts +++ b/packages/mantine-react-table/src/fns/filterFns.ts @@ -4,7 +4,11 @@ import { rankings, } from '@tanstack/match-sorter-utils'; import { type Row, filterFns } from '@tanstack/react-table'; -import type { MRT_FilterOption, MRT_Localization, MRT_RowData } from './types'; +import { + type MRT_FilterOption, + type MRT_Localization, + type MRT_RowData, +} from '../types'; const fuzzy = ( row: Row, @@ -66,12 +70,10 @@ endsWith.autoRemove = (val: any) => !val; const equals = ( row: Row, id: string, - filterValue: null | number | string, + filterValue: number | string, ) => - filterValue === null - ? true - : row.getValue(id).toString().toLowerCase().trim() === - filterValue.toString().toLowerCase().trim(); + row.getValue(id).toString().toLowerCase().trim() === + filterValue?.toString().toLowerCase().trim(); equals.autoRemove = (val: any) => !val; @@ -88,14 +90,12 @@ notEquals.autoRemove = (val: any) => !val; const greaterThan = ( row: Row, id: string, - filterValue: null | number | string, + filterValue: number | string, ) => - filterValue === null - ? true - : !isNaN(+filterValue) && !isNaN(+row.getValue(id)) - ? +row.getValue(id) > +filterValue - : row.getValue(id).toString().toLowerCase().trim() > - filterValue.toString().toLowerCase().trim(); + !isNaN(+filterValue) && !isNaN(+row.getValue(id)) + ? +row.getValue(id) > +filterValue + : row.getValue(id).toString().toLowerCase().trim() > + filterValue?.toString().toLowerCase().trim(); greaterThan.autoRemove = (val: any) => !val; @@ -110,14 +110,12 @@ greaterThanOrEqualTo.autoRemove = (val: any) => !val; const lessThan = ( row: Row, id: string, - filterValue: null | number | string, + filterValue: number | string, ) => - filterValue === null - ? true - : !isNaN(+filterValue) && !isNaN(+row.getValue(id)) - ? +row.getValue(id) < +filterValue - : row.getValue(id).toString().toLowerCase().trim() < - filterValue.toString().toLowerCase().trim(); + !isNaN(+filterValue) && !isNaN(+row.getValue(id)) + ? +row.getValue(id) < +filterValue + : row.getValue(id).toString().toLowerCase().trim() < + filterValue?.toString().toLowerCase().trim(); lessThan.autoRemove = (val: any) => !val; diff --git a/packages/mantine-react-table/src/sortingFns.ts b/packages/mantine-react-table/src/fns/sortingFns.ts similarity index 94% rename from packages/mantine-react-table/src/sortingFns.ts rename to packages/mantine-react-table/src/fns/sortingFns.ts index 03c30bcd8..a86bbea70 100644 --- a/packages/mantine-react-table/src/sortingFns.ts +++ b/packages/mantine-react-table/src/fns/sortingFns.ts @@ -1,6 +1,6 @@ import { type RankingInfo, compareItems } from '@tanstack/match-sorter-utils'; import { type Row, sortingFns } from '@tanstack/react-table'; -import { type MRT_Row, type MRT_RowData } from './types'; +import { type MRT_Row, type MRT_RowData } from '../types'; const fuzzy = ( rowA: Row, diff --git a/packages/mantine-react-table/src/footer/index.ts b/packages/mantine-react-table/src/footer/index.ts deleted file mode 100644 index 44dff8160..000000000 --- a/packages/mantine-react-table/src/footer/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './MRT_TableFooter'; -export * from './MRT_TableFooterCell'; -export * from './MRT_TableFooterRow'; diff --git a/packages/mantine-react-table/src/head/index.ts b/packages/mantine-react-table/src/head/index.ts deleted file mode 100644 index 25f7c4a06..000000000 --- a/packages/mantine-react-table/src/head/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from './MRT_TableHead'; -export * from './MRT_TableHeadCell'; -export * from './MRT_TableHeadCellFilterContainer'; -export * from './MRT_TableHeadCellFilterLabel'; -export * from './MRT_TableHeadCellGrabHandle'; -export * from './MRT_TableHeadCellResizeHandle'; -export * from './MRT_TableHeadCellSortLabel'; -export * from './MRT_TableHeadRow'; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_DisplayColumns.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_DisplayColumns.tsx new file mode 100644 index 000000000..48d43fd40 --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_DisplayColumns.tsx @@ -0,0 +1,26 @@ +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { getMRT_RowActionsColumnDef } from './getMRT_RowActionsColumnDef'; +import { getMRT_RowDragColumnDef } from './getMRT_RowDragColumnDef'; +import { getMRT_RowExpandColumnDef } from './getMRT_RowExpandColumnDef'; +import { getMRT_RowNumbersColumnDef } from './getMRT_RowNumbersColumnDef'; +import { getMRT_RowPinningColumnDef } from './getMRT_RowPinningColumnDef'; +import { getMRT_RowSelectColumnDef } from './getMRT_RowSelectColumnDef'; +import { getMRT_RowSpacerColumnDef } from './getMRT_RowSpacerColumnDef'; + +export const getMRT_DisplayColumns = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef[] => { + return [ + getMRT_RowNumbersColumnDef(tableOptions), + getMRT_RowSelectColumnDef(tableOptions), + getMRT_RowExpandColumnDef(tableOptions), + getMRT_RowActionsColumnDef(tableOptions), + getMRT_RowDragColumnDef(tableOptions), + getMRT_RowPinningColumnDef(tableOptions), + getMRT_RowSpacerColumnDef(tableOptions), + ].filter(Boolean) as MRT_ColumnDef[]; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx new file mode 100644 index 000000000..0015fc3db --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowActionsColumnDef.tsx @@ -0,0 +1,34 @@ +import { MRT_ToggleRowActionMenuButton } from '../../components/buttons/MRT_ToggleRowActionMenuButton'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowActionsColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowActionsColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowActionsColumn(tableOptions)) { + return null; + } + + return { + Cell: ({ cell, row, staticRowIndex, table }) => ( + + ), + ...defaultDisplayColumnProps({ + header: 'actions', + id: 'mrt-row-actions', + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx new file mode 100644 index 000000000..1cfca880d --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowDragColumnDef.tsx @@ -0,0 +1,35 @@ +import { type RefObject } from 'react'; +import { MRT_TableBodyRowGrabHandle } from '../../components/body/MRT_TableBodyRowGrabHandle'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowDragColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowDragColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowDragColumn(tableOptions)) { + return null; + } + + return { + Cell: ({ row, rowRef, table }) => ( + } + table={table} + /> + ), + grow: false, + ...defaultDisplayColumnProps({ + header: 'move', + id: 'mrt-row-drag', + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx new file mode 100644 index 000000000..43b3fc08f --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowExpandColumnDef.tsx @@ -0,0 +1,95 @@ +import { type ReactNode } from 'react'; +import { Flex, Tooltip } from '@mantine/core'; +import { MRT_ExpandAllButton } from '../../components/buttons/MRT_ExpandAllButton'; +import { MRT_ExpandButton } from '../../components/buttons/MRT_ExpandButton'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowExpandColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowExpandColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowExpandColumn(tableOptions)) { + return null; + } + + const { + defaultColumn, + enableExpandAll, + groupedColumnMode, + positionExpandColumn, + renderDetailPanel, + state: { grouping }, + } = tableOptions; + + const alignProps = + positionExpandColumn === 'last' + ? ({ + align: 'right', + } as const) + : undefined; + + return { + Cell: ({ cell, column, row, table }) => { + const expandButtonProps = { row, table }; + const subRowsLength = row.subRows?.length; + if (tableOptions.groupedColumnMode === 'remove' && row.groupingColumnId) { + return ( + + + + {row.groupingValue as ReactNode} + + {!!subRowsLength && ({subRowsLength})} + + ); + } else { + return ( + <> + + {column.columnDef.GroupedCell?.({ cell, column, row, table })} + + ); + } + }, + Header: enableExpandAll + ? ({ table }) => { + return ( + <> + + {groupedColumnMode === 'remove' && + grouping + ?.map( + (groupedColumnId) => + table.getColumn(groupedColumnId).columnDef.header, + ) + ?.join(', ')} + + ); + } + : undefined, + mantineTableBodyCellProps: alignProps, + mantineTableHeadCellProps: alignProps, + ...defaultDisplayColumnProps({ + header: 'expand', + id: 'mrt-row-expand', + size: + groupedColumnMode === 'remove' + ? defaultColumn?.size + : renderDetailPanel + ? 60 + : 100, + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx new file mode 100644 index 000000000..0bcc94974 --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowNumbersColumnDef.tsx @@ -0,0 +1,36 @@ +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowNumbersColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowNumbersColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowNumbersColumn(tableOptions)) { + return null; + } + + const { localization, rowNumberDisplayMode } = tableOptions; + const { + pagination: { pageIndex, pageSize }, + } = tableOptions.state; + + return { + Cell: ({ row, staticRowIndex }) => + ((rowNumberDisplayMode === 'static' + ? (staticRowIndex || 0) + (pageSize || 0) * (pageIndex || 0) + : row.index) ?? 0) + 1, + Header: () => localization.rowNumber, + grow: false, + ...defaultDisplayColumnProps({ + header: 'rowNumbers', + id: 'mrt-row-numbers', + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx new file mode 100644 index 000000000..637ef46db --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowPinningColumnDef.tsx @@ -0,0 +1,30 @@ +import { MRT_TableBodyRowPinButton } from '../../components/body/MRT_TableBodyRowPinButton'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowPinningColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowPinningColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowPinningColumn(tableOptions)) { + return null; + } + + return { + Cell: ({ row, table }) => ( + + ), + grow: false, + ...defaultDisplayColumnProps({ + header: 'pin', + id: 'mrt-row-pin', + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx new file mode 100644 index 000000000..5e5291761 --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSelectColumnDef.tsx @@ -0,0 +1,40 @@ +import { MRT_SelectCheckbox } from '../../components/inputs/MRT_SelectCheckbox'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowSelectionColumn, +} from '../../utils/displayColumn.utils'; + +export const getMRT_RowSelectColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowSelectionColumn(tableOptions)) { + return null; + } + + const { enableMultiRowSelection, enableSelectAll } = tableOptions; + + return { + Cell: ({ row, staticRowIndex, table }) => ( + + ), + Header: + enableSelectAll && enableMultiRowSelection + ? ({ table }) => + : undefined, + grow: false, + ...defaultDisplayColumnProps({ + header: 'select', + id: 'mrt-row-select', + tableOptions, + }), + }; +}; diff --git a/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx new file mode 100644 index 000000000..1989547da --- /dev/null +++ b/packages/mantine-react-table/src/hooks/display-columns/getMRT_RowSpacerColumnDef.tsx @@ -0,0 +1,41 @@ +import { MRT_DefaultDisplayColumn } from '../useMRT_TableOptions'; +import { + type MRT_ColumnDef, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../../types'; +import { + defaultDisplayColumnProps, + showRowSpacerColumn, +} from '../../utils/displayColumn.utils'; + +const blankColProps = { + children: null, + style: { + flex: '1 0 auto', //TODO remove after grow is implemented + minWidth: 0, + padding: 0, + width: 0, + }, +}; + +export const getMRT_RowSpacerColumnDef = ( + tableOptions: MRT_StatefulTableOptions, +): MRT_ColumnDef | null => { + if (!showRowSpacerColumn(tableOptions)) { + return null; + } + + return { + ...defaultDisplayColumnProps({ + id: 'mrt-row-spacer', + size: 0, + tableOptions, + }), + grow: true, + ...MRT_DefaultDisplayColumn, + mantineTableBodyCellProps: blankColProps, + mantineTableFooterCellProps: blankColProps, + mantineTableHeadCellProps: blankColProps, + }; +}; diff --git a/packages/mantine-react-table/src/hooks/index.ts b/packages/mantine-react-table/src/hooks/index.ts deleted file mode 100644 index 376b4715f..000000000 --- a/packages/mantine-react-table/src/hooks/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './useMRT_ColumnVirtualizer'; -export * from './useMRT_DisplayColumns'; -export * from './useMRT_Effects'; -export * from './useMRT_RowVirtualizer'; -export * from './useMRT_Rows'; -export * from './useMRT_TableInstance'; -export * from './useMRT_TableOptions'; diff --git a/packages/mantine-react-table/src/hooks/useMRT_ColumnVirtualizer.ts b/packages/mantine-react-table/src/hooks/useMRT_ColumnVirtualizer.ts index 19d54976b..59c385098 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_ColumnVirtualizer.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_ColumnVirtualizer.ts @@ -1,14 +1,12 @@ import { useCallback, useMemo } from 'react'; import { type Range, useVirtualizer } from '@tanstack/react-virtual'; -import { - extraIndexRangeExtractor, - parseFromValuesOrFunc, -} from '../column.utils'; import { type MRT_ColumnVirtualizer, type MRT_RowData, type MRT_TableInstance, } from '../types'; +import { parseFromValuesOrFunc } from '../utils/utils'; +import { extraIndexRangeExtractor } from '../utils/virtualization.utils'; export const useMRT_ColumnVirtualizer = < TData extends MRT_RowData, diff --git a/packages/mantine-react-table/src/hooks/useMRT_DisplayColumns.tsx b/packages/mantine-react-table/src/hooks/useMRT_DisplayColumns.tsx deleted file mode 100644 index a5a2d1a1f..000000000 --- a/packages/mantine-react-table/src/hooks/useMRT_DisplayColumns.tsx +++ /dev/null @@ -1,283 +0,0 @@ -import { type ReactNode, type RefObject, useMemo } from 'react'; -import { Flex, Tooltip } from '@mantine/core'; -import { MRT_TableBodyRowGrabHandle } from '../body'; -import { MRT_TableBodyRowPinButton } from '../body/MRT_TableBodyRowPinButton'; -import { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton'; -import { MRT_ExpandButton } from '../buttons/MRT_ExpandButton'; -import { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton'; -import { MRT_DefaultDisplayColumn, showExpandColumn } from '../column.utils'; -import { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox'; -import type { - MRT_ColumnDef, - MRT_DefinedTableOptions, - MRT_DisplayColumnIds, - MRT_Localization, - MRT_RowData, -} from '../types'; - -export const useMRT_DisplayColumns = ( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef[] => { - const { columnOrder, creatingRow, grouping, pagination } = - tableOptions.state!; - - return useMemo( - () => - [ - makeRowPinColumn, - makeRowDragColumn, - makeRowActionsColumn, - makeRowExpandColumn, - makeRowSelectColumn, - makeRowNumbersColumn, - makeSpacerColumn, - ] - .map((makeCol) => makeCol(tableOptions)) - .filter(Boolean) as MRT_ColumnDef[], - [ - columnOrder, - creatingRow, - grouping, - pagination, - tableOptions.displayColumnDefOptions, - tableOptions.editDisplayMode, - tableOptions.enableColumnDragging, - tableOptions.enableColumnFilterModes, - tableOptions.enableColumnOrdering, - tableOptions.enableEditing, - tableOptions.enableExpandAll, - tableOptions.enableExpanding, - tableOptions.enableGrouping, - tableOptions.enableRowActions, - tableOptions.enableRowDragging, - tableOptions.enableRowNumbers, - tableOptions.enableRowOrdering, - tableOptions.enableRowSelection, - tableOptions.enableSelectAll, - tableOptions.groupedColumnMode, - tableOptions.localization, - tableOptions.positionActionsColumn, - tableOptions.positionExpandColumn, - tableOptions.renderDetailPanel, - tableOptions.renderRowActionMenuItems, - tableOptions.renderRowActions, - ], - ); -}; - -function defaultDisplayColumnProps( - { - defaultDisplayColumn, - displayColumnDefOptions, - localization, - }: MRT_DefinedTableOptions, - id: MRT_DisplayColumnIds, - header?: keyof MRT_Localization, - size = 60, -) { - return { - ...defaultDisplayColumn, - header: header ? localization[header]! : '', - size, - ...displayColumnDefOptions?.[id], - id, - } as const; -} - -function makeRowPinColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-pin'; - const { columnOrder } = tableOptions.state!; - if (columnOrder?.includes(id)) { - return { - Cell: ({ row, table }) => ( - - ), - ...defaultDisplayColumnProps(tableOptions, id, 'pin'), - }; - } - return null; -} - -function makeRowDragColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-drag'; - const { columnOrder } = tableOptions.state!; - if (columnOrder?.includes(id)) { - return { - Cell: ({ row, rowRef, table }) => ( - } - table={table} - /> - ), - ...defaultDisplayColumnProps(tableOptions, id, 'move'), - }; - } - return null; -} - -function makeRowActionsColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-actions'; - const { columnOrder, creatingRow } = tableOptions.state!; - if ( - columnOrder?.includes(id) || - (creatingRow && tableOptions.createDisplayMode === 'row') - ) { - return { - Cell: ({ cell, row, table }) => ( - - ), - ...defaultDisplayColumnProps(tableOptions, id, 'actions'), - }; - } - return null; -} - -function makeRowExpandColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-expand'; - const { columnOrder, grouping } = tableOptions.state!; - if (columnOrder?.includes(id) && showExpandColumn(tableOptions, grouping)) { - const alignProps = - tableOptions.positionExpandColumn === 'last' - ? ({ - align: 'right', - } as const) - : undefined; - - return { - Cell: ({ cell, column, row, table }) => { - const expandButtonProps = { row, table }; - const subRowsLength = row.subRows?.length; - if ( - tableOptions.groupedColumnMode === 'remove' && - row.groupingColumnId - ) { - return ( - - - - {row.groupingValue as ReactNode} - - {!!subRowsLength && ({subRowsLength})} - - ); - } else { - return ( - <> - - {column.columnDef.GroupedCell?.({ cell, column, row, table })} - - ); - } - }, - Header: tableOptions.enableExpandAll - ? ({ table }) => { - return ( - <> - - {tableOptions.groupedColumnMode === 'remove' && - grouping - ?.map( - (groupedColumnId) => - table.getColumn(groupedColumnId).columnDef.header, - ) - ?.join(', ')} - - ); - } - : undefined, - mantineTableBodyCellProps: alignProps, - mantineTableHeadCellProps: alignProps, - ...defaultDisplayColumnProps( - tableOptions, - id, - 'expand', - tableOptions.groupedColumnMode === 'remove' - ? tableOptions?.defaultColumn?.size - : 60, - ), - }; - } - return null; -} - -function makeRowSelectColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-select'; - const { columnOrder } = tableOptions.state!; - if (columnOrder?.includes(id)) { - return { - Cell: ({ row, staticRowIndex, table }) => ( - - ), - Header: - tableOptions.enableSelectAll && tableOptions.enableMultiRowSelection - ? ({ table }) => - : undefined, - ...defaultDisplayColumnProps(tableOptions, id, 'select'), - }; - } - return null; -} - -function makeRowNumbersColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-numbers'; - const { columnOrder, pagination } = tableOptions.state!; - if (columnOrder?.includes(id) || tableOptions.enableRowNumbers) - return { - Cell: ({ row, staticRowIndex }) => - ((tableOptions.rowNumberDisplayMode === 'static' - ? (staticRowIndex || 0) + - (pagination?.pageSize || 0) * (pagination?.pageIndex || 0) - : row.index) ?? 0) + 1, - Header: () => tableOptions.localization.rowNumber, - ...defaultDisplayColumnProps(tableOptions, id, 'rowNumbers'), - }; - return null; -} - -const blankColProps = { - children: null, - style: { - flex: '1 0 auto', - minWidth: 0, - padding: 0, - width: 0, - }, -}; - -function makeSpacerColumn( - tableOptions: MRT_DefinedTableOptions, -): MRT_ColumnDef | null { - const id: MRT_DisplayColumnIds = 'mrt-row-spacer'; - const { columnOrder } = tableOptions.state!; - if (columnOrder?.includes(id)) { - return { - ...defaultDisplayColumnProps(tableOptions, id, undefined, 0), - ...MRT_DefaultDisplayColumn, - mantineTableBodyCellProps: blankColProps, - mantineTableFooterCellProps: blankColProps, - mantineTableHeadCellProps: blankColProps, - }; - } - return null; -} diff --git a/packages/mantine-react-table/src/hooks/useMRT_Effects.ts b/packages/mantine-react-table/src/hooks/useMRT_Effects.ts index e5a6c8aa6..4d936d322 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_Effects.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_Effects.ts @@ -1,10 +1,10 @@ import { useEffect, useReducer, useRef } from 'react'; -import { getCanRankRows } from '../column.utils'; import { type MRT_RowData, type MRT_SortingState, type MRT_TableInstance, } from '../types'; +import { getCanRankRows } from '../utils/row.utils'; export const useMRT_Effects = ( table: MRT_TableInstance, diff --git a/packages/mantine-react-table/src/hooks/useMRT_RowVirtualizer.ts b/packages/mantine-react-table/src/hooks/useMRT_RowVirtualizer.ts index 6b4697d20..324d23de0 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_RowVirtualizer.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_RowVirtualizer.ts @@ -1,15 +1,13 @@ import { useCallback } from 'react'; import { type Range, useVirtualizer } from '@tanstack/react-virtual'; -import { - extraIndexRangeExtractor, - parseFromValuesOrFunc, -} from '../column.utils'; import { type MRT_Row, type MRT_RowData, type MRT_RowVirtualizer, type MRT_TableInstance, } from '../types'; +import { parseFromValuesOrFunc } from '../utils/utils'; +import { extraIndexRangeExtractor } from '../utils/virtualization.utils'; export const useMRT_RowVirtualizer = < TData extends MRT_RowData, diff --git a/packages/mantine-react-table/src/hooks/useMRT_Rows.ts b/packages/mantine-react-table/src/hooks/useMRT_Rows.ts index 607ed3e1b..ae3174fa2 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_Rows.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_Rows.ts @@ -1,11 +1,11 @@ import { useMemo } from 'react'; -import { getCanRankRows } from '../column.utils'; -import { rankGlobalFuzzy } from '../sortingFns'; +import { rankGlobalFuzzy } from '../fns/sortingFns'; import { type MRT_Row, type MRT_RowData, type MRT_TableInstance, } from '../types'; +import { getCanRankRows } from '../utils/row.utils'; export const useMRT_Rows = ( table: MRT_TableInstance, @@ -19,6 +19,7 @@ export const useMRT_Rows = ( getState, getTopRows, options: { + createDisplayMode, enableGlobalFilterRankedResults, enablePagination, enableRowPinning, @@ -27,11 +28,18 @@ export const useMRT_Rows = ( manualGrouping, manualPagination, manualSorting, + positionCreatingRow, rowPinningDisplayMode, }, } = table; - const { expanded, globalFilter, pagination, rowPinning, sorting } = - getState(); + const { + creatingRow, + expanded, + globalFilter, + pagination, + rowPinning, + sorting, + } = getState(); const shouldRankRows = useMemo( () => @@ -73,14 +81,32 @@ export const useMRT_Rows = ( ...getBottomRows().filter((row) => !pinnedRowIds.includes(row.id)), ]; } + if ( + positionCreatingRow !== undefined && + creatingRow && + createDisplayMode === 'row' + ) { + const creatingRowIndex = !isNaN(+positionCreatingRow) + ? +positionCreatingRow + : positionCreatingRow === 'top' + ? 0 + : rows.length; + rows = [ + ...rows.slice(0, creatingRowIndex), + creatingRow, + ...rows.slice(creatingRowIndex), + ]; + } return rows; }, [ - shouldRankRows, - shouldRankRows ? getPrePaginationRowModel().rows : getRowModel().rows, + creatingRow, pagination.pageIndex, pagination.pageSize, + positionCreatingRow, rowPinning, + shouldRankRows ? getPrePaginationRowModel().rows : getRowModel().rows, + shouldRankRows, ]); return rows; diff --git a/packages/mantine-react-table/src/hooks/useMRT_TableInstance.ts b/packages/mantine-react-table/src/hooks/useMRT_TableInstance.ts index 19fab8dea..fb718f57b 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_TableInstance.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_TableInstance.ts @@ -11,20 +11,13 @@ import { getSortedRowModel, useReactTable, } from '@tanstack/react-table'; -import { - createRow, - getAllLeafColumnDefs, - getColumnId, - getDefaultColumnFilterFn, - getDefaultColumnOrderIds, - prepareColumns, -} from '../column.utils'; import { type MRT_Cell, type MRT_Column, type MRT_ColumnDef, type MRT_ColumnFilterFnsState, type MRT_ColumnOrderState, + type MRT_ColumnSizingInfoState, type MRT_DefinedTableOptions, type MRT_DensityState, type MRT_FilterOption, @@ -32,18 +25,25 @@ import { type MRT_PaginationState, type MRT_Row, type MRT_RowData, + type MRT_StatefulTableOptions, type MRT_TableInstance, type MRT_TableState, type MRT_Updater, } from '../types'; -import { useMRT_DisplayColumns } from './useMRT_DisplayColumns'; +import { + getAllLeafColumnDefs, + getColumnId, + getDefaultColumnFilterFn, + prepareColumns, +} from '../utils/column.utils'; +import { getDefaultColumnOrderIds } from '../utils/displayColumn.utils'; +import { createRow } from '../utils/tanstack.helpers'; +import { getMRT_DisplayColumns } from './display-columns/getMRT_DisplayColumns'; import { useMRT_Effects } from './useMRT_Effects'; -export const useMRT_TableInstance: ( - tableOptions: MRT_DefinedTableOptions, -) => MRT_TableInstance = ( - tableOptions: MRT_DefinedTableOptions, -) => { +export const useMRT_TableInstance = ( + _tableOptions: MRT_DefinedTableOptions, +): MRT_TableInstance => { const bottomToolbarRef = useRef(null); const editInputRefs = useRef>({}); const filterInputRefs = useRef>({}); @@ -56,14 +56,18 @@ export const useMRT_TableInstance: ( const tableFooterRef = useRef(null); const initialState: Partial> = useMemo(() => { - const initState = tableOptions.initialState ?? {}; + const initState = _tableOptions.initialState ?? {}; initState.columnOrder = - initState.columnOrder ?? getDefaultColumnOrderIds(tableOptions); - initState.globalFilterFn = tableOptions.globalFilterFn ?? 'fuzzy'; + initState.columnOrder ?? + getDefaultColumnOrderIds({ + ..._tableOptions, + state: { ..._tableOptions.initialState, ..._tableOptions.state }, + } as MRT_StatefulTableOptions); + initState.globalFilterFn = _tableOptions.globalFilterFn ?? 'fuzzy'; return initState; }, []); - tableOptions.initialState = initialState; + _tableOptions.initialState = initialState; const [creatingRow, _setCreatingRow] = useState | null>( initialState.creatingRow ?? null, @@ -73,7 +77,7 @@ export const useMRT_TableInstance: ( Object.assign( {}, ...getAllLeafColumnDefs( - tableOptions.columns as MRT_ColumnDef[], + _tableOptions.columns as MRT_ColumnDef[], ).map((col) => ({ [getColumnId(col)]: col.filterFn instanceof Function @@ -87,6 +91,10 @@ export const useMRT_TableInstance: ( const [columnOrder, onColumnOrderChange] = useState( initialState.columnOrder ?? [], ); + const [columnSizingInfo, onColumnSizingInfoChange] = + useState( + initialState.columnSizingInfo ?? ({} as MRT_ColumnSizingInfoState), + ); const [density, setDensity] = useState( initialState?.density ?? 'md', ); @@ -120,7 +128,7 @@ export const useMRT_TableInstance: ( initialState?.pagination ?? { pageIndex: 0, pageSize: 10 }, ); const [showAlertBanner, setShowAlertBanner] = useState( - tableOptions.initialState?.showAlertBanner ?? false, + initialState?.showAlertBanner ?? false, ); const [showColumnFilters, setShowColumnFilters] = useState( initialState?.showColumnFilters ?? false, @@ -132,9 +140,10 @@ export const useMRT_TableInstance: ( initialState?.showToolbarDropZone ?? false, ); - tableOptions.state = { + _tableOptions.state = { columnFilterFns, columnOrder, + columnSizingInfo, creatingRow, density, draggingColumn, @@ -151,30 +160,35 @@ export const useMRT_TableInstance: ( showColumnFilters, showGlobalFilter, showToolbarDropZone, - ...tableOptions.state, + ..._tableOptions.state, }; - const displayColumns = useMRT_DisplayColumns(tableOptions); + const tableOptions = _tableOptions as MRT_StatefulTableOptions; - tableOptions.columns = useMemo( - () => - prepareColumns({ - columnDefs: [...displayColumns, ...tableOptions.columns], - tableOptions, - }), - [displayColumns, tableOptions.columns], - ); + //don't recompute columnDefs while resizing column or dragging column/row + const columnDefsRef = useRef[]>([]); + tableOptions.columns = + tableOptions.state.columnSizingInfo.isResizingColumn || + tableOptions.state.draggingColumn || + tableOptions.state.draggingRow + ? columnDefsRef.current + : prepareColumns({ + columnDefs: [ + ...getMRT_DisplayColumns(tableOptions), + ...tableOptions.columns, + ], + tableOptions, + }); + columnDefsRef.current = tableOptions.columns; tableOptions.data = useMemo( () => - (tableOptions.state?.isLoading || tableOptions.state?.showSkeletons) && + (tableOptions.state.isLoading || tableOptions.state.showSkeletons) && !tableOptions.data.length ? [ - ...Array( - tableOptions.state?.pagination?.pageSize || - initialState?.pagination?.pageSize || - 10, - ).fill(null), + ...Array(Math.min(tableOptions.state.pagination.pageSize, 20)).fill( + null, + ), ].map(() => Object.assign( {}, @@ -186,8 +200,8 @@ export const useMRT_TableInstance: ( : tableOptions.data, [ tableOptions.data, - tableOptions.state?.isLoading, - tableOptions.state?.showSkeletons, + tableOptions.state.isLoading, + tableOptions.state.showSkeletons, ], ); @@ -224,6 +238,7 @@ export const useMRT_TableInstance: ( : undefined, getSubRows: (row) => row?.subRows, onColumnOrderChange, + onColumnSizingInfoChange, onGroupingChange, onPaginationChange, ...tableOptions, diff --git a/packages/mantine-react-table/src/hooks/useMRT_TableOptions.ts b/packages/mantine-react-table/src/hooks/useMRT_TableOptions.ts index 494254614..5cbc62798 100644 --- a/packages/mantine-react-table/src/hooks/useMRT_TableOptions.ts +++ b/packages/mantine-react-table/src/hooks/useMRT_TableOptions.ts @@ -1,17 +1,38 @@ import { useMemo } from 'react'; import { useDirection } from '@mantine/core'; -import { MRT_AggregationFns } from '../aggregationFns'; -import { MRT_DefaultColumn, MRT_DefaultDisplayColumn } from '../column.utils'; -import { MRT_FilterFns } from '../filterFns'; +import { MRT_AggregationFns } from '../fns/aggregationFns'; +import { MRT_FilterFns } from '../fns/filterFns'; +import { MRT_SortingFns } from '../fns/sortingFns'; import { MRT_Default_Icons } from '../icons'; import { MRT_Localization_EN } from '../locales/en'; -import { MRT_SortingFns } from '../sortingFns'; import { type MRT_DefinedTableOptions, type MRT_RowData, type MRT_TableOptions, } from '../types'; +export const MRT_DefaultColumn = { + filterVariant: 'text', + maxSize: 1000, + minSize: 40, + size: 180, +} as const; + +export const MRT_DefaultDisplayColumn = { + columnDefType: 'display', + enableClickToCopy: false, + enableColumnActions: false, + enableColumnDragging: false, + enableColumnFilter: false, + enableColumnOrdering: false, + enableEditing: false, + enableGlobalFilter: false, + enableGrouping: false, + enableHiding: false, + enableResizing: false, + enableSorting: false, +} as const; + export const useMRT_TableOptions: ( tableOptions: MRT_TableOptions, ) => MRT_DefinedTableOptions = ({ @@ -43,6 +64,7 @@ export const useMRT_TableOptions: ( enableMultiRowSelection = true, enableMultiSort = true, enablePagination = true, + enableRowPinning = false, enableRowSelection = false, enableSelectAll = true, enableSorting = true, @@ -61,6 +83,7 @@ export const useMRT_TableOptions: ( manualSorting, paginationDisplayMode = 'default', positionActionsColumn = 'first', + positionCreatingRow = 'top', positionExpandColumn = 'first', positionGlobalFilter = 'right', positionPagination = 'bottom', @@ -157,6 +180,7 @@ export const useMRT_TableOptions: ( enableMultiRowSelection, enableMultiSort, enablePagination, + enableRowPinning, enableRowSelection, enableSelectAll, enableSorting, @@ -175,6 +199,7 @@ export const useMRT_TableOptions: ( manualSorting, paginationDisplayMode, positionActionsColumn, + positionCreatingRow, positionExpandColumn, positionGlobalFilter, positionPagination, diff --git a/packages/mantine-react-table/src/useMantineReactTable.ts b/packages/mantine-react-table/src/hooks/useMantineReactTable.ts similarity index 71% rename from packages/mantine-react-table/src/useMantineReactTable.ts rename to packages/mantine-react-table/src/hooks/useMantineReactTable.ts index 8101efa0e..a449f49f2 100644 --- a/packages/mantine-react-table/src/useMantineReactTable.ts +++ b/packages/mantine-react-table/src/hooks/useMantineReactTable.ts @@ -1,10 +1,10 @@ -import { useMRT_TableInstance } from './hooks/useMRT_TableInstance'; -import { useMRT_TableOptions } from './hooks/useMRT_TableOptions'; import { type MRT_RowData, type MRT_TableInstance, type MRT_TableOptions, -} from './types'; +} from '../types'; +import { useMRT_TableInstance } from './useMRT_TableInstance'; +import { useMRT_TableOptions } from './useMRT_TableOptions'; export const useMantineReactTable: ( tableOptions: MRT_TableOptions, diff --git a/packages/mantine-react-table/src/index.ts b/packages/mantine-react-table/src/index.ts index 968755a12..f0825071c 100644 --- a/packages/mantine-react-table/src/index.ts +++ b/packages/mantine-react-table/src/index.ts @@ -1,17 +1,88 @@ -export * from './MantineReactTable'; -export * from './aggregationFns'; -export * from './body'; -export * from './buttons'; -export * from './column.utils'; -export * from './filterFns'; -export * from './footer'; -export * from './head'; -export * from './hooks'; -export * from './inputs'; -export * from './menus'; -export * from './modals'; -export * from './sortingFns'; -export * from './table'; -export * from './toolbar'; export * from './types'; -export * from './useMantineReactTable'; + +//helpers +export * from './utils/tanstack.helpers'; +export * from './utils/column.utils'; +export * from './utils/displayColumn.utils'; +export * from './utils/row.utils'; +export * from './utils/style.utils'; + +//fns +export * from './fns/aggregationFns'; +export * from './fns/filterFns'; +export * from './fns/sortingFns'; + +//hooks +export * from './hooks/useMantineReactTable'; +export * from './hooks/useMRT_ColumnVirtualizer'; +export * from './hooks/useMRT_Effects'; +export * from './hooks/useMRT_RowVirtualizer'; +export * from './hooks/useMRT_Rows'; +export * from './hooks/useMRT_TableInstance'; +export * from './hooks/useMRT_TableOptions'; + +//components +export * from './components/MantineReactTable'; +//body components +export * from './components/body/MRT_TableBody'; +export * from './components/body/MRT_TableBodyCell'; +export * from './components/body/MRT_TableBodyCellValue'; +export * from './components/body/MRT_TableBodyRow'; +export * from './components/body/MRT_TableBodyRowGrabHandle'; +export * from './components/body/MRT_TableBodyRowPinButton'; +export * from './components/body/MRT_TableDetailPanel'; +//button components +export * from './components/buttons/MRT_ColumnPinningButtons'; +export * from './components/buttons/MRT_CopyButton'; +export * from './components/buttons/MRT_EditActionButtons'; +export * from './components/buttons/MRT_ExpandAllButton'; +export * from './components/buttons/MRT_ExpandButton'; +export * from './components/buttons/MRT_GrabHandleButton'; +export * from './components/buttons/MRT_RowPinButton'; +export * from './components/buttons/MRT_ShowHideColumnsButton'; +export * from './components/buttons/MRT_ToggleDensePaddingButton'; +export * from './components/buttons/MRT_ToggleFiltersButton'; +export * from './components/buttons/MRT_ToggleFullScreenButton'; +export * from './components/buttons/MRT_ToggleGlobalFilterButton'; +export * from './components/buttons/MRT_ToggleRowActionMenuButton'; +//footer components +export * from './components/footer/MRT_TableFooter'; +export * from './components/footer/MRT_TableFooterCell'; +export * from './components/footer/MRT_TableFooterRow'; +//head components +export * from './components/head/MRT_TableHead'; +export * from './components/head/MRT_TableHeadCell'; +export * from './components/head/MRT_TableHeadCellFilterContainer'; +export * from './components/head/MRT_TableHeadCellFilterLabel'; +export * from './components/head/MRT_TableHeadCellGrabHandle'; +export * from './components/head/MRT_TableHeadCellResizeHandle'; +export * from './components/head/MRT_TableHeadCellSortLabel'; +export * from './components/head/MRT_TableHeadRow'; +//input components +export * from './components/inputs/MRT_EditCellTextInput'; +export * from './components/inputs/MRT_FilterCheckbox'; +export * from './components/inputs/MRT_FilterRangeFields'; +export * from './components/inputs/MRT_FilterRangeSlider'; +export * from './components/inputs/MRT_FilterTextInput'; +export * from './components/inputs/MRT_GlobalFilterTextInput'; +export * from './components/inputs/MRT_SelectCheckbox'; +//menu components +export * from './components/menus/MRT_ColumnActionMenu'; +export * from './components/menus/MRT_FilterOptionMenu'; +export * from './components/menus/MRT_RowActionMenu'; +export * from './components/menus/MRT_ShowHideColumnsMenu'; +export * from './components/menus/MRT_ShowHideColumnsMenuItems'; +//modal components +export * from './components/modals/MRT_EditRowModal'; +//table components +export * from './components/table/MRT_Table'; +export * from './components/table/MRT_TableContainer'; +export * from './components/table/MRT_TablePaper'; +//toolbar components +export * from './components/toolbar/MRT_BottomToolbar'; +export * from './components/toolbar/MRT_ProgressBar'; +export * from './components/toolbar/MRT_TablePagination'; +export * from './components/toolbar/MRT_ToolbarAlertBanner'; +export * from './components/toolbar/MRT_ToolbarDropZone'; +export * from './components/toolbar/MRT_ToolbarInternalButtons'; +export * from './components/toolbar/MRT_TopToolbar'; diff --git a/packages/mantine-react-table/src/inputs/index.ts b/packages/mantine-react-table/src/inputs/index.ts deleted file mode 100644 index da097799e..000000000 --- a/packages/mantine-react-table/src/inputs/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './MRT_EditCellTextInput'; -export * from './MRT_FilterCheckbox'; -export * from './MRT_FilterRangeFields'; -// export * from './MRT_FilterRangeSlider'; -export * from './MRT_FilterTextInput'; -export * from './MRT_GlobalFilterTextInput'; -export * from './MRT_SelectCheckbox'; diff --git a/packages/mantine-react-table/src/menus/index.ts b/packages/mantine-react-table/src/menus/index.ts deleted file mode 100644 index 8608fd08a..000000000 --- a/packages/mantine-react-table/src/menus/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './MRT_ColumnActionMenu'; -export * from './MRT_FilterOptionMenu'; -export * from './MRT_RowActionMenu'; -export * from './MRT_ShowHideColumnsMenu'; -export * from './MRT_ShowHideColumnsMenuItems'; diff --git a/packages/mantine-react-table/src/modals/index.ts b/packages/mantine-react-table/src/modals/index.ts deleted file mode 100644 index d091854c7..000000000 --- a/packages/mantine-react-table/src/modals/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './MRT_EditRowModal'; diff --git a/packages/mantine-react-table/src/table/index.ts b/packages/mantine-react-table/src/table/index.ts deleted file mode 100644 index a09fedc2f..000000000 --- a/packages/mantine-react-table/src/table/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './MRT_Table'; -export * from './MRT_TableContainer'; -export * from './MRT_TablePaper'; diff --git a/packages/mantine-react-table/src/toolbar/index.ts b/packages/mantine-react-table/src/toolbar/index.ts deleted file mode 100644 index a7bd7009f..000000000 --- a/packages/mantine-react-table/src/toolbar/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -export * from './MRT_BottomToolbar'; -export * from './MRT_ProgressBar'; -export * from './MRT_TablePagination'; -export * from './MRT_ToolbarAlertBanner'; -export * from './MRT_ToolbarDropZone'; -export * from './MRT_ToolbarInternalButtons'; -export * from './MRT_TopToolbar'; diff --git a/packages/mantine-react-table/src/types.ts b/packages/mantine-react-table/src/types.ts index ff063b5ff..9d3aac87a 100644 --- a/packages/mantine-react-table/src/types.ts +++ b/packages/mantine-react-table/src/types.ts @@ -65,10 +65,10 @@ import { type UnstyledButtonProps, } from '@mantine/core'; import { type DateInputProps } from '@mantine/dates'; -import { type MRT_AggregationFns } from './aggregationFns'; -import { type MRT_FilterFns } from './filterFns'; +import { type MRT_AggregationFns } from './fns/aggregationFns'; +import { type MRT_FilterFns } from './fns/filterFns'; +import { type MRT_SortingFns } from './fns/sortingFns'; import { type MRT_Icons } from './icons'; -import { type MRT_SortingFns } from './sortingFns'; export type { MRT_Icons }; @@ -300,7 +300,7 @@ export type MRT_TableInstance = Omit< getSelectedRowModel: () => MRT_RowModel; getState: () => MRT_TableState; getTopRows: () => MRT_Row[]; - options: MRT_DefinedTableOptions; + options: MRT_StatefulTableOptions; refs: { bottomToolbarRef: MutableRefObject; editInputRefs: MutableRefObject>; @@ -336,6 +336,32 @@ export type MRT_DefinedTableOptions = localization: MRT_Localization; }; +export type MRT_StatefulTableOptions = + MRT_DefinedTableOptions & { + state: Pick< + MRT_TableState, + | 'columnFilterFns' + | 'columnOrder' + | 'columnSizingInfo' + | 'creatingRow' + | 'density' + | 'draggingColumn' + | 'draggingRow' + | 'editingCell' + | 'editingRow' + | 'globalFilterFn' + | 'grouping' + | 'hoveredColumn' + | 'hoveredRow' + | 'isFullScreen' + | 'pagination' + | 'showAlertBanner' + | 'showColumnFilters' + | 'showGlobalFilter' + | 'showToolbarDropZone' + >; + }; + export type MRT_TableState = Prettify< TableState & { columnFilterFns: MRT_ColumnFilterFnsState; @@ -480,6 +506,10 @@ export type MRT_ColumnDef = Omit< * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F) */ footer?: string; + /** + * If `layoutMode` is `'grid'` or `'grid-no-grow'`, you can specify the flex grow value for individual columns to still grow and take up remaining space, or set to `false`/0 to not grow. + */ + grow?: boolean | number; /** * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H) */ @@ -901,6 +931,7 @@ export type MRT_TableOptions = Omit< mantineExpandButtonProps?: | ((props: { row: MRT_Row; + staticRowIndex?: number; table: MRT_TableInstance; }) => HTMLPropsRef & Partial) | (HTMLPropsRef & Partial); @@ -1140,6 +1171,7 @@ export type MRT_TableOptions = Omit< onShowToolbarDropZoneChange?: OnChangeFn; paginationDisplayMode?: 'custom' | 'default' | 'pages'; positionActionsColumn?: 'first' | 'last'; + positionCreatingRow?: 'bottom' | 'top' | number; positionExpandColumn?: 'first' | 'last'; positionGlobalFilter?: 'left' | 'none' | 'right'; positionPagination?: 'both' | 'bottom' | 'none' | 'top'; @@ -1186,11 +1218,13 @@ export type MRT_TableOptions = Omit< }) => ReactNode; renderRowActionMenuItems?: (props: { row: MRT_Row; + staticRowIndex?: number; table: MRT_TableInstance; }) => ReactNode; renderRowActions?: (props: { cell: MRT_Cell; row: MRT_Row; + staticRowIndex?: number; table: MRT_TableInstance; }) => ReactNode; renderToolbarAlertBannerContent?: (props: { diff --git a/packages/mantine-react-table/src/utils/column.utils.ts b/packages/mantine-react-table/src/utils/column.utils.ts new file mode 100644 index 000000000..0b4decdb3 --- /dev/null +++ b/packages/mantine-react-table/src/utils/column.utils.ts @@ -0,0 +1,176 @@ +import { + createRow as _createRow, + flexRender as _flexRender, + type Row, +} from '@tanstack/react-table'; +import { + type MRT_Column, + type MRT_ColumnDef, + type MRT_ColumnOrderState, + type MRT_DefinedColumnDef, + type MRT_DefinedTableOptions, + type MRT_FilterOption, + type MRT_RowData, + type MRT_TableInstance, +} from '../types'; + +export const getColumnId = ( + columnDef: MRT_ColumnDef, +): string => + columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header; + +export const getAllLeafColumnDefs = ( + columns: MRT_ColumnDef[], +) => { + const allLeafColumnDefs: MRT_ColumnDef[] = []; + const getLeafColumns = (cols: MRT_ColumnDef[]) => { + cols.forEach((col) => { + if (col.columns) { + getLeafColumns(col.columns); + } else { + allLeafColumnDefs.push(col); + } + }); + }; + getLeafColumns(columns); + return allLeafColumnDefs; +}; + +export const prepareColumns = ({ + columnDefs, + tableOptions, +}: { + columnDefs: MRT_ColumnDef[]; + tableOptions: MRT_DefinedTableOptions; +}): MRT_DefinedColumnDef[] => { + const { + aggregationFns = {}, + defaultDisplayColumn, + filterFns = {}, + sortingFns = {}, + state: { columnFilterFns = {} } = {}, + } = tableOptions; + return columnDefs.map((columnDef) => { + //assign columnId + if (!columnDef.id) columnDef.id = getColumnId(columnDef); + //assign columnDefType + if (!columnDef.columnDefType) columnDef.columnDefType = 'data'; + if (columnDef.columns?.length) { + columnDef.columnDefType = 'group'; + //recursively prepare columns if this is a group column + columnDef.columns = prepareColumns({ + columnDefs: columnDef.columns, + tableOptions, + }); + } else if (columnDef.columnDefType === 'data') { + //assign aggregationFns if multiple aggregationFns are provided + if (Array.isArray(columnDef.aggregationFn)) { + const aggFns = columnDef.aggregationFn as string[]; + columnDef.aggregationFn = ( + columnId: string, + leafRows: Row[], + childRows: Row[], + ) => + aggFns.map( + (fn) => aggregationFns[fn]?.(columnId, leafRows, childRows), + ); + } + + //assign filterFns + if (Object.keys(filterFns).includes(columnFilterFns[columnDef.id])) { + columnDef.filterFn = + filterFns[columnFilterFns[columnDef.id]] ?? filterFns.fuzzy; + (columnDef as MRT_DefinedColumnDef)._filterFn = + columnFilterFns[columnDef.id]; + } + + //assign sortingFns + if (Object.keys(sortingFns).includes(columnDef.sortingFn as string)) { + // @ts-ignore + columnDef.sortingFn = sortingFns[columnDef.sortingFn]; + } + } else if (columnDef.columnDefType === 'display') { + columnDef = { + ...(defaultDisplayColumn as MRT_ColumnDef), + ...columnDef, + }; + } + return columnDef; + }) as MRT_DefinedColumnDef[]; +}; + +export const reorderColumn = ( + draggedColumn: MRT_Column, + targetColumn: MRT_Column, + columnOrder: MRT_ColumnOrderState, +): MRT_ColumnOrderState => { + if (draggedColumn.getCanPin()) { + draggedColumn.pin(targetColumn.getIsPinned()); + } + const newColumnOrder = [...columnOrder]; + newColumnOrder.splice( + newColumnOrder.indexOf(targetColumn.id), + 0, + newColumnOrder.splice(newColumnOrder.indexOf(draggedColumn.id), 1)[0], + ); + return newColumnOrder; +}; + +export const getDefaultColumnFilterFn = ( + columnDef: MRT_ColumnDef, +): MRT_FilterOption => { + const { filterVariant } = columnDef; + if (filterVariant === 'multi-select') return 'arrIncludesSome'; + if (['date-range', 'range', 'range-slider'].includes(filterVariant || '')) + return 'betweenInclusive'; + if (['checkbox', 'date', 'select'].includes(filterVariant || '')) + return 'equals'; + return 'fuzzy'; +}; + +export const getIsFirstColumn = ( + column: MRT_Column, + table: MRT_TableInstance, +) => { + const leftColumns = table.getLeftVisibleLeafColumns(); + return leftColumns.length + ? leftColumns[0].id === column.id + : table.getVisibleLeafColumns()[0].id === column.id; +}; + +export const getIsLastColumn = ( + column: MRT_Column, + table: MRT_TableInstance, +) => { + const rightColumns = table.getRightVisibleLeafColumns(); + const columns = table.getVisibleLeafColumns(); + return rightColumns.length + ? rightColumns[rightColumns.length - 1].id === column.id + : columns[columns.length - 1].id === column.id; +}; + +export const getIsLastLeftPinnedColumn = ( + table: MRT_TableInstance, + column: MRT_Column, +) => { + return ( + column.getIsPinned() === 'left' && + table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex() + ); +}; + +export const getIsFirstRightPinnedColumn = ( + column: MRT_Column, +) => { + return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0; +}; + +export const getTotalRight = ( + table: MRT_TableInstance, + column: MRT_Column, +) => { + return table + .getRightLeafHeaders() + .slice(column.getPinnedIndex() + 1) + .reduce((acc, col) => acc + col.getSize(), 0); +}; diff --git a/packages/mantine-react-table/src/utils/displayColumn.utils.ts b/packages/mantine-react-table/src/utils/displayColumn.utils.ts new file mode 100644 index 000000000..20346c5e6 --- /dev/null +++ b/packages/mantine-react-table/src/utils/displayColumn.utils.ts @@ -0,0 +1,134 @@ +import { + type MRT_DefinedTableOptions, + type MRT_DisplayColumnIds, + type MRT_Localization, + type MRT_RowData, + type MRT_StatefulTableOptions, +} from '../types'; +import { getAllLeafColumnDefs, getColumnId } from './column.utils'; + +export function defaultDisplayColumnProps({ + header, + id, + size = 60, + tableOptions, +}: { + header?: keyof MRT_Localization; + id: MRT_DisplayColumnIds; + size?: number; + tableOptions: MRT_DefinedTableOptions; +}) { + const { defaultDisplayColumn, displayColumnDefOptions, localization } = + tableOptions; + return { + ...defaultDisplayColumn, + header: header ? localization[header]! : '', + size, + ...displayColumnDefOptions?.[id], + id, + } as const; +} + +export const showRowPinningColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => { + const { enableRowPinning, rowPinningDisplayMode } = tableOptions; + return enableRowPinning && !rowPinningDisplayMode?.startsWith('select'); +}; + +export const showRowDragColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => { + const { enableRowDragging, enableRowOrdering } = tableOptions; + return enableRowDragging || enableRowOrdering; +}; + +export const showRowExpandColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => { + const { + enableExpanding, + enableGrouping, + renderDetailPanel, + state: { grouping }, + } = tableOptions; + return !!( + enableExpanding || + (enableGrouping && (grouping === undefined || grouping?.length)) || + renderDetailPanel + ); +}; + +export const showRowActionsColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => { + const { + createDisplayMode, + editDisplayMode, + enableEditing, + enableRowActions, + state: { creatingRow }, + } = tableOptions; + return ( + enableRowActions || + (creatingRow && createDisplayMode === 'row') || + (enableEditing && ['modal', 'row'].includes(editDisplayMode ?? '')) + ); +}; + +export const showRowSelectionColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => tableOptions.enableRowSelection; + +export const showRowNumbersColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => tableOptions.enableRowNumbers; + +export const showRowSpacerColumn = ( + tableOptions: MRT_StatefulTableOptions, +) => tableOptions.layoutMode === 'grid-no-grow'; + +export const getLeadingDisplayColumnIds = ( + tableOptions: MRT_StatefulTableOptions, +) => + [ + showRowPinningColumn(tableOptions) && 'mrt-row-pin', + showRowDragColumn(tableOptions) && 'mrt-row-drag', + tableOptions.positionActionsColumn === 'first' && + showRowActionsColumn(tableOptions) && + 'mrt-row-actions', + tableOptions.positionExpandColumn === 'first' && + showRowExpandColumn(tableOptions) && + 'mrt-row-expand', + showRowSelectionColumn(tableOptions) && 'mrt-row-select', + showRowNumbersColumn(tableOptions) && 'mrt-row-numbers', + ].filter(Boolean) as MRT_DisplayColumnIds[]; + +export const getTrailingDisplayColumnIds = ( + tableOptions: MRT_StatefulTableOptions, +) => + [ + tableOptions.positionActionsColumn === 'last' && + showRowActionsColumn(tableOptions) && + 'mrt-row-actions', + tableOptions.positionExpandColumn === 'last' && + showRowExpandColumn(tableOptions) && + 'mrt-row-expand', + showRowSpacerColumn(tableOptions) && 'mrt-row-spacer', + ].filter(Boolean) as MRT_DisplayColumnIds[]; + +export const getDefaultColumnOrderIds = ( + tableOptions: MRT_StatefulTableOptions, +) => { + const leadingDisplayCols: string[] = getLeadingDisplayColumnIds(tableOptions); + const trailingDisplayCols: string[] = + getTrailingDisplayColumnIds(tableOptions); + const allLeafColumnDefs = getAllLeafColumnDefs(tableOptions.columns) + .map((columnDef) => getColumnId(columnDef)) + .filter( + (columnId) => + !leadingDisplayCols.includes(columnId) && + !trailingDisplayCols.includes(columnId), + ); + return [...leadingDisplayCols, ...allLeafColumnDefs, ...trailingDisplayCols]; +}; diff --git a/packages/mantine-react-table/src/utils/row.utils.ts b/packages/mantine-react-table/src/utils/row.utils.ts new file mode 100644 index 000000000..9342e4ff7 --- /dev/null +++ b/packages/mantine-react-table/src/utils/row.utils.ts @@ -0,0 +1,26 @@ +import { type MRT_RowData, type MRT_TableInstance } from '../types'; + +export const getCanRankRows = ( + table: MRT_TableInstance, +) => { + const { getState, options } = table; + const { + enableGlobalFilterRankedResults, + manualExpanding, + manualFiltering, + manualGrouping, + manualSorting, + } = options; + const { expanded, globalFilterFn } = getState(); + + return ( + !manualExpanding && + !manualFiltering && + !manualGrouping && + !manualSorting && + enableGlobalFilterRankedResults && + globalFilterFn === 'fuzzy' && + expanded !== true && + !Object.values(expanded).some(Boolean) + ); +}; diff --git a/packages/mantine-react-table/src/utils/style.utils.ts b/packages/mantine-react-table/src/utils/style.utils.ts new file mode 100644 index 000000000..a5eb6714f --- /dev/null +++ b/packages/mantine-react-table/src/utils/style.utils.ts @@ -0,0 +1,31 @@ +import { type MantineTheme } from '@mantine/core'; +import { type MantineShade } from '../types'; + +export const parseCSSVarId = (id: string) => id.replace(/[^a-zA-Z0-9]/g, '_'); + +export const getPrimaryShade = (theme: MantineTheme): number => + typeof theme.primaryShade === 'number' + ? theme.primaryShade + : theme.primaryShade?.dark ?? 7; + +export const getPrimaryColor = ( + theme: MantineTheme, + shade?: MantineShade, +): string => theme.colors[theme.primaryColor][shade ?? getPrimaryShade(theme)]; + +export function dataVariable( + name: string, + value: boolean | number | string | undefined, +) { + const key = `data-${name}`; + switch (typeof value) { + case 'boolean': + return value ? { [key]: '' } : null; + case 'number': + return { [key]: `${value}` }; + case 'string': + return { [key]: value }; + default: + return null; + } +} diff --git a/packages/mantine-react-table/src/utils/tanstack.helpers.ts b/packages/mantine-react-table/src/utils/tanstack.helpers.ts new file mode 100644 index 000000000..717c5ec14 --- /dev/null +++ b/packages/mantine-react-table/src/utils/tanstack.helpers.ts @@ -0,0 +1,64 @@ +import { type ReactNode } from 'react'; +import { + createRow as _createRow, + flexRender as _flexRender, + type Renderable, +} from '@tanstack/react-table'; +import { + type MRT_ColumnHelper, + type MRT_DisplayColumnDef, + type MRT_GroupColumnDef, + type MRT_Row, + type MRT_RowData, + type MRT_TableInstance, +} from '../types'; +import { getAllLeafColumnDefs, getColumnId } from './column.utils'; + +export const flexRender = _flexRender as ( + Comp: Renderable, + props: any, +) => JSX.Element | ReactNode; + +export function createMRTColumnHelper< + TData extends MRT_RowData, +>(): MRT_ColumnHelper { + return { + accessor: (accessor, column) => { + return typeof accessor === 'function' + ? ({ + ...column, + accessorFn: accessor, + } as any) + : { + ...column, + accessorKey: accessor, + }; + }, + display: (column) => column as MRT_DisplayColumnDef, + group: (column) => column as MRT_GroupColumnDef, + }; +} + +export const createRow = ( + table: MRT_TableInstance, + originalRow?: TData, + rowIndex = -1, + depth = 0, + subRows?: MRT_Row[], + parentId?: string, +): MRT_Row => + _createRow( + table as any, + 'mrt-row-create', + originalRow ?? + Object.assign( + {}, + ...getAllLeafColumnDefs(table.options.columns).map((col) => ({ + [getColumnId(col)]: '', + })), + ), + rowIndex, + depth, + subRows as any, + parentId, + ) as MRT_Row; diff --git a/packages/mantine-react-table/src/utils/utils.ts b/packages/mantine-react-table/src/utils/utils.ts new file mode 100644 index 000000000..71c1541e0 --- /dev/null +++ b/packages/mantine-react-table/src/utils/utils.ts @@ -0,0 +1,4 @@ +export const parseFromValuesOrFunc = ( + fn: ((arg: U) => T) | T | undefined, + arg: U, +): T | undefined => (fn instanceof Function ? fn(arg) : fn); diff --git a/packages/mantine-react-table/src/utils/virtualization.utils.ts b/packages/mantine-react-table/src/utils/virtualization.utils.ts new file mode 100644 index 000000000..2b5e8a2d2 --- /dev/null +++ b/packages/mantine-react-table/src/utils/virtualization.utils.ts @@ -0,0 +1,19 @@ +import { type Range, defaultRangeExtractor } from '@tanstack/react-virtual'; + +export const extraIndexRangeExtractor = ( + range: Range, + draggingIndex?: number, +) => { + const newIndexes = defaultRangeExtractor(range); + if (draggingIndex === undefined) return newIndexes; + if ( + draggingIndex >= 0 && + draggingIndex < Math.max(range.startIndex - range.overscan, 0) + ) { + newIndexes.unshift(draggingIndex); + } + if (draggingIndex >= 0 && draggingIndex > range.endIndex + range.overscan) { + newIndexes.push(draggingIndex); + } + return newIndexes; +}; diff --git a/packages/mantine-react-table/stories/styling/TableHeadCellStyles.stories.tsx b/packages/mantine-react-table/stories/styling/TableHeadCellStyles.stories.tsx index 214b95edc..7ec21bd6c 100644 --- a/packages/mantine-react-table/stories/styling/TableHeadCellStyles.stories.tsx +++ b/packages/mantine-react-table/stories/styling/TableHeadCellStyles.stories.tsx @@ -1,6 +1,6 @@ import { Box } from '@mantine/core'; import { type MRT_ColumnDef, MantineReactTable } from '../../src'; -import { getPrimaryColor } from '../../src/column.utils'; +import { getPrimaryColor } from '../../src/utils/column.utils'; import { faker } from '@faker-js/faker'; import { type Meta } from '@storybook/react'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3fac164e5..8adef6e27 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: devDependencies: prettier: - specifier: ^3.1.1 - version: 3.1.1 + specifier: ^3.2.4 + version: 3.2.4 turbo: specifier: ^1.11.3 version: 1.11.3 @@ -19,7 +19,7 @@ importers: dependencies: '@docsearch/js': specifier: 3.5.2 - version: 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) + version: 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) '@faker-js/faker': specifier: ^8.3.1 version: 8.3.1 @@ -33,35 +33,35 @@ importers: specifier: ^0.2.0 version: 0.2.0(@fortawesome/fontawesome-svg-core@6.5.1)(react@18.2.0) '@mantine/code-highlight': - specifier: 7.4.1 - version: 7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(react-dom@18.2.0)(react@18.2.0) '@mantine/core': - specifier: 7.4.1 - version: 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@mantine/dates': - specifier: 7.4.1 - version: 7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) '@mantine/hooks': - specifier: 7.4.1 - version: 7.4.1(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(react@18.2.0) '@mantine/modals': - specifier: 7.4.1 - version: 7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(react-dom@18.2.0)(react@18.2.0) '@mdx-js/loader': specifier: ^3.0.0 version: 3.0.0(webpack@5.89.0) '@mdx-js/react': specifier: ^3.0.0 - version: 3.0.0(@types/react@18.2.47)(react@18.2.0) + version: 3.0.0(@types/react@18.2.48)(react@18.2.0) '@next/mdx': - specifier: ^14.0.4 - version: 14.0.4(@mdx-js/loader@3.0.0)(@mdx-js/react@3.0.0) + specifier: ^14.1.0 + version: 14.1.0(@mdx-js/loader@3.0.0)(@mdx-js/react@3.0.0) '@tabler/icons-react': - specifier: 2.45.0 - version: 2.45.0(react@18.2.0) + specifier: 2.46.0 + version: 2.46.0(react@18.2.0) '@tanstack/react-query': - specifier: ^5.17.9 - version: 5.17.9(react@18.2.0) + specifier: ^5.17.19 + version: 5.17.19(react@18.2.0) '@types/mdx': specifier: ^2.0.10 version: 2.0.10 @@ -84,11 +84,11 @@ importers: specifier: workspace:* version: link:../../packages/mantine-react-table next: - specifier: 14.0.4 - version: 14.0.4(react-dom@18.2.0)(react@18.2.0) + specifier: 14.1.0 + version: 14.1.0(react-dom@18.2.0)(react@18.2.0) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.0.4) + version: 4.2.3(next@14.1.0) react: specifier: 18.2.0 version: 18.2.0 @@ -97,29 +97,29 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: '@types/node': - specifier: ^20.11.0 - version: 20.11.0 + specifier: ^20.11.5 + version: 20.11.5 '@types/react': - specifier: ^18.2.47 - version: 18.2.47 + specifier: ^18.2.48 + version: 18.2.48 '@types/react-dom': specifier: ^18.2.18 version: 18.2.18 '@typescript-eslint/eslint-plugin': - specifier: ^6.18.1 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.18.1 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) eslint: specifier: 8.56.0 version: 8.56.0 eslint-config-next: - specifier: 14.0.4 - version: 14.0.4(eslint@8.56.0)(typescript@5.3.3) + specifier: 14.1.0 + version: 14.1.0(eslint@8.56.0)(typescript@5.3.3) next-plausible: specifier: ^3.12.0 - version: 3.12.0(next@14.0.4)(react-dom@18.2.0)(react@18.2.0) + version: 3.12.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0) postcss: specifier: ^8.4.33 version: 8.4.33 @@ -145,8 +145,8 @@ importers: specifier: 8.11.6 version: 8.11.6(react-dom@18.2.0)(react@18.2.0) '@tanstack/react-virtual': - specifier: 3.0.1 - version: 3.0.1(react-dom@18.2.0)(react@18.2.0) + specifier: 3.0.2 + version: 3.0.2(react-dom@18.2.0)(react@18.2.0) clsx: specifier: ^2.1.0 version: 2.1.0 @@ -161,14 +161,14 @@ importers: specifier: ^8.3.1 version: 8.3.1 '@mantine/core': - specifier: 7.4.1 - version: 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@mantine/dates': - specifier: 7.4.1 - version: 7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0) '@mantine/hooks': - specifier: 7.4.1 - version: 7.4.1(react@18.2.0) + specifier: 7.4.2 + version: 7.4.2(react@18.2.0) '@rollup/plugin-babel': specifier: ^6.0.4 version: 6.0.4(@babel/core@7.23.7)(rollup@4.9.5) @@ -179,56 +179,56 @@ importers: specifier: ^11.1.6 version: 11.1.6(rollup@4.9.5)(tslib@2.6.2)(typescript@5.3.3) '@size-limit/preset-small-lib': - specifier: ^11.0.1 - version: 11.0.1(size-limit@11.0.1) + specifier: ^11.0.2 + version: 11.0.2(size-limit@11.0.2) '@storybook/addon-a11y': - specifier: ^7.6.7 - version: 7.6.7 + specifier: ^7.6.10 + version: 7.6.10 '@storybook/addon-essentials': - specifier: ^7.6.7 - version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.10 + version: 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/addon-interactions': - specifier: ^7.6.7 - version: 7.6.7 + specifier: ^7.6.10 + version: 7.6.10 '@storybook/addon-links': - specifier: ^7.6.7 - version: 7.6.7(react@18.2.0) + specifier: ^7.6.10 + version: 7.6.10(react@18.2.0) '@storybook/addon-storysource': - specifier: ^7.6.7 - version: 7.6.7 + specifier: ^7.6.10 + version: 7.6.10 '@storybook/blocks': - specifier: ^7.6.7 - version: 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + specifier: ^7.6.10 + version: 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/react': - specifier: ^7.6.7 - version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + specifier: ^7.6.10 + version: 7.6.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) '@storybook/react-vite': - specifier: ^7.6.7 - version: 7.6.7(react-dom@18.2.0)(react@18.2.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11) + specifier: ^7.6.10 + version: 7.6.10(react-dom@18.2.0)(react@18.2.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.12) '@storybook/testing-library': specifier: ^0.2.2 version: 0.2.2 '@tabler/icons-react': - specifier: 2.45.0 - version: 2.45.0(react@18.2.0) + specifier: 2.46.0 + version: 2.46.0(react@18.2.0) '@types/node': - specifier: ^20.11.0 - version: 20.11.0 + specifier: ^20.11.5 + version: 20.11.5 '@types/react': - specifier: ^18.2.47 - version: 18.2.47 + specifier: ^18.2.48 + version: 18.2.48 '@types/react-dom': specifier: ^18.2.18 version: 18.2.18 '@typescript-eslint/eslint-plugin': - specifier: ^6.18.1 - version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.18.1 - version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.19.0 + version: 6.19.0(eslint@8.56.0)(typescript@5.3.3) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.2.1(vite@5.0.11) + version: 4.2.1(vite@5.0.12) dayjs: specifier: ^1.11.10 version: 1.11.10 @@ -278,14 +278,14 @@ importers: specifier: ^4.0.2 version: 4.0.2(postcss@8.4.33) size-limit: - specifier: ^11.0.1 - version: 11.0.1 + specifier: ^11.0.2 + version: 11.0.2 storybook: - specifier: ^7.6.7 - version: 7.6.7 + specifier: ^7.6.10 + version: 7.6.10 storybook-dark-mode: specifier: ^3.0.3 - version: 3.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + version: 3.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) tslib: specifier: ^2.6.2 version: 2.6.2 @@ -296,8 +296,8 @@ importers: specifier: ^5.0.2 version: 5.0.2(typescript@5.3.3) vite: - specifier: ^5.0.11 - version: 5.0.11(@types/node@20.11.0) + specifier: ^5.0.12 + version: 5.0.12(@types/node@20.11.5) packages: @@ -1822,10 +1822,10 @@ packages: resolution: {integrity: sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==} dev: false - /@docsearch/js@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): + /@docsearch/js@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): resolution: {integrity: sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==} dependencies: - '@docsearch/react': 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) + '@docsearch/react': 3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0) preact: 10.19.3 transitivePeerDependencies: - '@algolia/client-search' @@ -1835,7 +1835,7 @@ packages: - search-insights dev: false - /@docsearch/react@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): + /@docsearch/react@3.5.2(@algolia/client-search@4.22.0)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.13.0): resolution: {integrity: sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -1855,7 +1855,7 @@ packages: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0)(search-insights@2.13.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.22.0)(algoliasearch@4.22.0) '@docsearch/css': 3.5.2 - '@types/react': 18.2.47 + '@types/react': 18.2.48 algoliasearch: 4.22.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2475,7 +2475,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.0 + '@types/node': 20.11.5 '@types/yargs': 16.0.9 chalk: 4.1.2 dev: true @@ -2487,12 +2487,12 @@ packages: '@jest/schemas': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 20.11.0 + '@types/node': 20.11.5 '@types/yargs': 17.0.32 chalk: 4.1.2 dev: true - /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@5.0.11): + /@joshwooding/vite-plugin-react-docgen-typescript@0.3.0(typescript@5.3.3)(vite@5.0.12): resolution: {integrity: sha512-2D6y7fNvFmsLmRt6UCOFJPvFoPMJGT0Uh1Wg0RaigUp7kdQPs6yYn8Dmx6GZkOH/NW0yMTwRz/p0SRMMRo50vA==} peerDependencies: typescript: '>= 4.3.x' @@ -2506,7 +2506,7 @@ packages: magic-string: 0.27.0 react-docgen-typescript: 2.2.2(typescript@5.3.3) typescript: 5.3.3 - vite: 5.0.11(@types/node@20.11.0) + vite: 5.0.12(@types/node@20.11.5) dev: true /@jridgewell/gen-mapping@0.3.3: @@ -2544,74 +2544,74 @@ packages: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: true - /@mantine/code-highlight@7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-zfUZuwP2hXnz3BC1H2tH/clc00NS36XQMmkMeVLTKDl8mU3vMiDPxjsODvrieLbat7rUfqaD9mqhJShwCL1D/g==} + /@mantine/code-highlight@7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-CVo3gMOWW+hjDQg2S63BZNmXHGRFYtugtWDIwC8fv7U6P2acs1OuxuXUrGkHkm8s3jJNTWB4kF2vd+7x5Z8GpQ==} peerDependencies: - '@mantine/core': 7.4.1 - '@mantine/hooks': 7.4.1 + '@mantine/core': 7.4.2 + '@mantine/hooks': 7.4.2 react: ^18.2.0 react-dom: ^18.2.0 dependencies: - '@mantine/core': 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 7.4.1(react@18.2.0) + '@mantine/core': 7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.4.2(react@18.2.0) clsx: 2.0.0 highlight.js: 11.9.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mantine/core@7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-crz9BemmwR8V/h6db9FgznCp0Ssp6rCUYkBBO4JprpH8NDSEblHyWcZZo43IuA1vZptp8eyrhRNJ4nfe8CAYFQ==} + /@mantine/core@7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-kXmq7NjSd1AsOIzqPwQhA7SeZS9hrbARRqhRwr4LLR3NKps9hLmVto441DnpHH/D27eL9gGLSl4GRIdogjX6mg==} peerDependencies: - '@mantine/hooks': 7.4.1 + '@mantine/hooks': 7.4.2 react: ^18.2.0 react-dom: ^18.2.0 dependencies: '@floating-ui/react': 0.24.8(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 7.4.1(react@18.2.0) + '@mantine/hooks': 7.4.2(react@18.2.0) clsx: 2.0.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) react-number-format: 5.3.1(react-dom@18.2.0)(react@18.2.0) - react-remove-scroll: 2.5.7(@types/react@18.2.47)(react@18.2.0) - react-textarea-autosize: 8.5.3(@types/react@18.2.47)(react@18.2.0) + react-remove-scroll: 2.5.7(@types/react@18.2.48)(react@18.2.0) + react-textarea-autosize: 8.5.3(@types/react@18.2.48)(react@18.2.0) type-fest: 3.13.1 transitivePeerDependencies: - '@types/react' - /@mantine/dates@7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-a7DNeJmLCgnFbd9NAEQ/LP998zLFPu8IWVjtJY/YJ4OUIDLEPi56OzuopA3epVzGkMcEvL4Ak78Z23KfZPJepg==} + /@mantine/dates@7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(dayjs@1.11.10)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-nv0QuUEJh/ypFOjRLW+vZeuCCj3syxX7iI7Oz3/P7W6o5zNJdi/QUfkqiLTu0L2ckDIkDATxpHgUwH1k/GLOPA==} peerDependencies: - '@mantine/core': 7.4.1 - '@mantine/hooks': 7.4.1 + '@mantine/core': 7.4.2 + '@mantine/hooks': 7.4.2 dayjs: '>=1.0.0' react: ^18.2.0 react-dom: ^18.2.0 dependencies: - '@mantine/core': 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 7.4.1(react@18.2.0) + '@mantine/core': 7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.4.2(react@18.2.0) clsx: 2.0.0 dayjs: 1.11.10 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - /@mantine/hooks@7.4.1(react@18.2.0): - resolution: {integrity: sha512-7gV9YR+xZ1L69MGVaSNwV0gaxIz4bCZuGxXTtnuaamDcO/4YiNDtmvdD7/jC/RTa1iJMnZ6YiYrcPXLOn+8saQ==} + /@mantine/hooks@7.4.2(react@18.2.0): + resolution: {integrity: sha512-tNtn/SNOtSmjLQmIk4S5nsTJjV84Oj0AUYRrAN78HHw3bfWp6bdWbgYPtPEH9e6iFJfdxiX0hrLfWqROalAsbQ==} peerDependencies: react: ^18.2.0 dependencies: react: 18.2.0 - /@mantine/modals@7.4.1(@mantine/core@7.4.1)(@mantine/hooks@7.4.1)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-LNE7tge2FJfmaZpW/Ai+5wMW8rbZ0CN2O0BtCxXF4Ztpzdsb+d/RJ3Me92Cext3ykWljfCFaNDbsEirWxS2mZQ==} + /@mantine/modals@7.4.2(@mantine/core@7.4.2)(@mantine/hooks@7.4.2)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-j1EgDuGDT5vbpO8VLup5p+NAJZWhmyDewpnPuRAe/TQZTht8ZDInXmgO3CJ5m5CwrhCIEeN+aUw0+ZQrPDouRg==} peerDependencies: - '@mantine/core': 7.4.1 - '@mantine/hooks': 7.4.1 + '@mantine/core': 7.4.2 + '@mantine/hooks': 7.4.2 react: ^18.2.0 react-dom: ^18.2.0 dependencies: - '@mantine/core': 7.4.1(@mantine/hooks@7.4.1)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@mantine/hooks': 7.4.1(react@18.2.0) + '@mantine/core': 7.4.2(@mantine/hooks@7.4.2)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@mantine/hooks': 7.4.2(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -2664,18 +2664,18 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@mdx-js/react@3.0.0(@types/react@18.2.47)(react@18.2.0): + /@mdx-js/react@3.0.0(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-nDctevR9KyYFyV+m+/+S4cpzCWHqj+iHDHq3QrsWezcC+B17uZdIWgCguESUkwFhM3n/56KxWVE3V6EokrmONQ==} peerDependencies: '@types/react': '>=16' react: '>=16' dependencies: '@types/mdx': 2.0.10 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: false @@ -2691,17 +2691,17 @@ packages: resolution: {integrity: sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==} dev: false - /@next/env@14.0.4: - resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==} + /@next/env@14.1.0: + resolution: {integrity: sha512-Py8zIo+02ht82brwwhTg36iogzFqGLPXlRGKQw5s+qP/kMNc4MAyDeEwBKDijk6zTIbegEgu8Qy7C1LboslQAw==} - /@next/eslint-plugin-next@14.0.4: - resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==} + /@next/eslint-plugin-next@14.1.0: + resolution: {integrity: sha512-x4FavbNEeXx/baD/zC/SdrvkjSby8nBn8KcCREqk6UuwvwoAPZmaV8TFCAuo/cpovBRTIY67mHhe86MQQm/68Q==} dependencies: - glob: 7.1.7 + glob: 10.3.10 dev: true - /@next/mdx@14.0.4(@mdx-js/loader@3.0.0)(@mdx-js/react@3.0.0): - resolution: {integrity: sha512-w0b+A2LRdlqqTIzmaeqPOaafid2cYYYjETA+G+3ZFwkNbBQjvZp57P1waOexF3MGHzcCEoXEnhYpAc+FO6S0Rg==} + /@next/mdx@14.1.0(@mdx-js/loader@3.0.0)(@mdx-js/react@3.0.0): + resolution: {integrity: sha512-YLYsViq91+H8+3oCtK1iuMWdeN14K70Hy6/tYScY+nfo5bQ84A/A+vA6UdNC9MkbWQ/373hQubx2p4JvUjlb2Q==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -2712,76 +2712,76 @@ packages: optional: true dependencies: '@mdx-js/loader': 3.0.0(webpack@5.89.0) - '@mdx-js/react': 3.0.0(@types/react@18.2.47)(react@18.2.0) + '@mdx-js/react': 3.0.0(@types/react@18.2.48)(react@18.2.0) source-map: 0.7.4 dev: false - /@next/swc-darwin-arm64@14.0.4: - resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==} + /@next/swc-darwin-arm64@14.1.0: + resolution: {integrity: sha512-nUDn7TOGcIeyQni6lZHfzNoo9S0euXnu0jhsbMOmMJUBfgsnESdjN97kM7cBqQxZa8L/bM9om/S5/1dzCrW6wQ==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] requiresBuild: true optional: true - /@next/swc-darwin-x64@14.0.4: - resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==} + /@next/swc-darwin-x64@14.1.0: + resolution: {integrity: sha512-1jgudN5haWxiAl3O1ljUS2GfupPmcftu2RYJqZiMJmmbBT5M1XDffjUtRUzP4W3cBHsrvkfOFdQ71hAreNQP6g==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] requiresBuild: true optional: true - /@next/swc-linux-arm64-gnu@14.0.4: - resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==} + /@next/swc-linux-arm64-gnu@14.1.0: + resolution: {integrity: sha512-RHo7Tcj+jllXUbK7xk2NyIDod3YcCPDZxj1WLIYxd709BQ7WuRYl3OWUNG+WUfqeQBds6kvZYlc42NJJTNi4tQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-arm64-musl@14.0.4: - resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==} + /@next/swc-linux-arm64-musl@14.1.0: + resolution: {integrity: sha512-v6kP8sHYxjO8RwHmWMJSq7VZP2nYCkRVQ0qolh2l6xroe9QjbgV8siTbduED4u0hlk0+tjS6/Tuy4n5XCp+l6g==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-x64-gnu@14.0.4: - resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==} + /@next/swc-linux-x64-gnu@14.1.0: + resolution: {integrity: sha512-zJ2pnoFYB1F4vmEVlb/eSe+VH679zT1VdXlZKX+pE66grOgjmKJHKacf82g/sWE4MQ4Rk2FMBCRnX+l6/TVYzQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@next/swc-linux-x64-musl@14.0.4: - resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==} + /@next/swc-linux-x64-musl@14.1.0: + resolution: {integrity: sha512-rbaIYFt2X9YZBSbH/CwGAjbBG2/MrACCVu2X0+kSykHzHnYH5FjHxwXLkcoJ10cX0aWCEynpu+rP76x0914atg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] requiresBuild: true optional: true - /@next/swc-win32-arm64-msvc@14.0.4: - resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==} + /@next/swc-win32-arm64-msvc@14.1.0: + resolution: {integrity: sha512-o1N5TsYc8f/HpGt39OUQpQ9AKIGApd3QLueu7hXk//2xq5Z9OxmV6sQfNp8C7qYmiOlHYODOGqNNa0e9jvchGQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-ia32-msvc@14.0.4: - resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==} + /@next/swc-win32-ia32-msvc@14.1.0: + resolution: {integrity: sha512-XXIuB1DBRCFwNO6EEzCTMHT5pauwaSj4SWs7CYnME57eaReAKBXCnkUE80p/pAZcewm7hs+vGvNqDPacEXHVkw==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] requiresBuild: true optional: true - /@next/swc-win32-x64-msvc@14.0.4: - resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==} + /@next/swc-win32-x64-msvc@14.1.0: + resolution: {integrity: sha512-9WEbVRRAqJ3YFVqEZIxUqkiO8l1nool1LmNxygr5HWF8AcSYsEpneUDhmjUVJEzO2A04+oPtZdombzzPPkTtgg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2825,7 +2825,7 @@ packages: '@babel/runtime': 7.23.7 dev: true - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -2839,14 +2839,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -2860,17 +2860,17 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -2880,11 +2880,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-context@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-context@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -2894,11 +2894,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-direction@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -2908,11 +2908,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -2927,17 +2927,17 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -2947,11 +2947,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -2965,16 +2965,16 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-id@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-id@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -2984,12 +2984,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -3004,22 +3004,22 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@floating-ui/react-dom': 2.0.5(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.47)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.48)(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.47 + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -3033,14 +3033,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -3054,14 +3054,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -3076,21 +3076,21 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -3106,32 +3106,32 @@ packages: '@babel/runtime': 7.23.7 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.47)(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.48)(react@18.2.0) dev: true - /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-separator@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-itYmTy/kokS21aiV5+Z56MZB54KrhPgn6eHDKkFeOLR34HMN2s8PaN47qZZAGnvupcjxHaFZnW4pQEh0BvvVuw==} peerDependencies: '@types/react': '*' @@ -3145,14 +3145,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-slot@1.0.2(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -3162,12 +3162,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle-group@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Uaj/M/cMyiyT9Bx6fOZO0SAG4Cls0GptBWiBmBxofmDbNVnYYoyRWj/2M/6VCi/7qcXFWnHhRUfdfZFvvkuu8A==} peerDependencies: '@types/react': '*' @@ -3182,19 +3182,19 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toggle@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Pkqg3+Bc98ftZGsl60CLANXQBBQ4W3mTFS9EJvNxKMZ7magklKV69/id1mlAlOFDDfHvlCms0fx8fA4CMKDJHg==} peerDependencies: '@types/react': '*' @@ -3209,15 +3209,15 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-toolbar@1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-tBgmM/O7a07xbaEkYJWYTXkIdU/1pW4/KZORR43toC/4XWyBCURK0ei9kMUdp+gTPPKBgYLxXmRSH1EVcIDp8Q==} peerDependencies: '@types/react': '*' @@ -3232,19 +3232,19 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-context': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-context': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-separator': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toggle-group': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -3254,11 +3254,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -3268,12 +3268,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -3283,12 +3283,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -3298,11 +3298,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -3312,11 +3312,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -3327,11 +3327,11 @@ packages: dependencies: '@babel/runtime': 7.23.7 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.47)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -3341,12 +3341,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.47)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.48)(react@18.2.0) + '@types/react': 18.2.48 react: 18.2.0 dev: true - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -3360,8 +3360,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.7 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.47 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.48 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3562,47 +3562,47 @@ packages: engines: {node: '>=18'} dev: true - /@size-limit/esbuild@11.0.1(size-limit@11.0.1): - resolution: {integrity: sha512-JXxzmDW7Rch6yxd4u8g6uE21g34oT7fk7Ex2gfDwN4TtciOghI3By4fqxXOwGYkDueEcIw3LXNGjHnTS8Dz5nA==} + /@size-limit/esbuild@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-67p+y+wkMBJJegLZUp1X3v1YEvgGSbbAukFbHtxJ1c/DTj/ApiHvtgMzvA5ij+A5UOay+jSU4bXetpNJlUK3Ow==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 11.0.1 + size-limit: 11.0.2 dependencies: esbuild: 0.19.11 nanoid: 5.0.4 - size-limit: 11.0.1 + size-limit: 11.0.2 dev: true - /@size-limit/file@11.0.1(size-limit@11.0.1): - resolution: {integrity: sha512-ioSYJ1WY66kc9+3dgTHi5mT/gcaNNCJ22xU87cjzfKiNxmol+lGsNKbplmrJf+QezvPH9kRIFOWxBjGY+DOt3g==} + /@size-limit/file@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-874lrMtWYRL+xb/6xzejjwD+krfHTOo+2uFGpZfJScvuNv91Ni2O7k0o09zC70VzCYBGkXquV92ln/H+/ognGg==} engines: {node: ^18.0.0 || >=20.0.0} peerDependencies: - size-limit: 11.0.1 + size-limit: 11.0.2 dependencies: - size-limit: 11.0.1 + size-limit: 11.0.2 dev: true - /@size-limit/preset-small-lib@11.0.1(size-limit@11.0.1): - resolution: {integrity: sha512-c1N5/wN5FRQ03aOpoCw9ed2TP/1cmjt8vKAeTxO40OSfj6ImkpkMarl7e7pCnBElMULc993aUP5UjFhDN6bU4w==} + /@size-limit/preset-small-lib@11.0.2(size-limit@11.0.2): + resolution: {integrity: sha512-Yo+RRHCLz29PMmRXzq69E3LjiAivspF2XRGdpZ+QdeFOotd3hBYVMJC9GDF3tEigPtfvEJk4L8YLlUK+SE90FA==} peerDependencies: - size-limit: 11.0.1 + size-limit: 11.0.2 dependencies: - '@size-limit/esbuild': 11.0.1(size-limit@11.0.1) - '@size-limit/file': 11.0.1(size-limit@11.0.1) - size-limit: 11.0.1 + '@size-limit/esbuild': 11.0.2(size-limit@11.0.2) + '@size-limit/file': 11.0.2(size-limit@11.0.2) + size-limit: 11.0.2 dev: true - /@storybook/addon-a11y@7.6.7: - resolution: {integrity: sha512-poT2oXIYDwLnhqn6g9ACTQ+7gi8QDHVlib4TQANdcozC/qYg+Bs6Pd99wT6rT4lrC/npVNTSKKwLw+3oXqlCxg==} + /@storybook/addon-a11y@7.6.10: + resolution: {integrity: sha512-TP17m4TAWLSSd2x9cWNg7d0MCZZCojYIG83RZMXAb55jt8gKJBMDbupOoDLydBsABQa5Uk9ZP0D/CvumMon8RA==} dependencies: - '@storybook/addon-highlight': 7.6.7 + '@storybook/addon-highlight': 7.6.10 axe-core: 4.8.3 dev: true - /@storybook/addon-actions@7.6.7: - resolution: {integrity: sha512-+6EZvhIeKEqG/RNsU3R5DxOrd60BL5GEvmzE2w60s2eKaNNxtyilDjiO1g4z2s2zDNyr7JL/Ft03pJ0Jgo0lew==} + /@storybook/addon-actions@7.6.10: + resolution: {integrity: sha512-pcKmf0H/caGzKDy8cz1adNSjv+KOBWLJ11RzGExrWm+Ad5ACifwlsQPykJ3TQ/21sTd9IXVrE9uuq4LldEnPbg==} dependencies: - '@storybook/core-events': 7.6.7 + '@storybook/core-events': 7.6.10 '@storybook/global': 5.0.0 '@types/uuid': 9.0.7 dequal: 2.0.3 @@ -3610,18 +3610,18 @@ packages: uuid: 9.0.1 dev: true - /@storybook/addon-backgrounds@7.6.7: - resolution: {integrity: sha512-55sBy1YUqponAVe+qL16qtWxdf63vHEnIoqFyHEwGpk7K9IhFA1BmdSpFr5VnWEwXeJXKj30db78frh2LUdk3Q==} + /@storybook/addon-backgrounds@7.6.10: + resolution: {integrity: sha512-kGzsN1QkfyI8Cz7TErEx9OCB3PMzpCFGLd/iy7FreXwbMbeAQ3/9fYgKUsNOYgOhuTz7S09koZUWjS/WJuZGFA==} dependencies: '@storybook/global': 5.0.0 memoizerific: 1.11.3 ts-dedent: 2.2.0 dev: true - /@storybook/addon-controls@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-DJ3gfvcdCgqi7AQxu83vx0AEUKiuJrNcSATfWV3Jqi8dH6fYO2yqpemHEeWOEy+DAHxIOaqLKwb1QjIBj+vSRQ==} + /@storybook/addon-controls@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LjwCQRMWq1apLtFwDi6U8MI6ITUr+KhxJucZ60tfc58RgB2v8ayozyDAonFEONsx9YSR1dNIJ2Z/e2rWTBJeYA==} dependencies: - '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/blocks': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) lodash: 4.17.21 ts-dedent: 2.2.0 transitivePeerDependencies: @@ -3633,27 +3633,27 @@ packages: - supports-color dev: true - /@storybook/addon-docs@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-2dfajNhweofJ3LxjGO83UE5sBMvKtJB0Agj7q8mMtK/9PUCUcbvsFSyZnO/s6X1zAjSn5ZrirbSoTXU4IqxwSA==} + /@storybook/addon-docs@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-GtyQ9bMx1AOOtl6ZS9vwK104HFRK+tqzxddRRxhXkpyeKu3olm9aMgXp35atE/3fJSqyyDm2vFtxxH8mzBA20A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: '@jest/transform': 29.7.0 '@mdx-js/react': 2.3.0(react@18.2.0) - '@storybook/blocks': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@storybook/client-logger': 7.6.7 - '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@storybook/csf-plugin': 7.6.7 - '@storybook/csf-tools': 7.6.7 + '@storybook/blocks': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.10 + '@storybook/components': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/csf-plugin': 7.6.10 + '@storybook/csf-tools': 7.6.10 '@storybook/global': 5.0.0 '@storybook/mdx2-csf': 1.1.0 - '@storybook/node-logger': 7.6.7 - '@storybook/postinstall': 7.6.7 - '@storybook/preview-api': 7.6.7 - '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.7 + '@storybook/node-logger': 7.6.10 + '@storybook/postinstall': 7.6.10 + '@storybook/preview-api': 7.6.10 + '@storybook/react-dom-shim': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 fs-extra: 11.2.0 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -3667,25 +3667,25 @@ packages: - supports-color dev: true - /@storybook/addon-essentials@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nNLMrpIvc04z4XCA+kval/44eKAFJlUJeeL2pxwP7F/PSzjWe5BXv1bQHOiw8inRO5II0PzqwWnVCI9jsj7K5A==} + /@storybook/addon-essentials@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cjbuCCK/3dtUity0Uqi5LwbkgfxqCCE5x5mXZIk9lTMeDz5vB9q6M5nzncVDy8F8przF3NbDLLgxKlt8wjiICg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/addon-actions': 7.6.7 - '@storybook/addon-backgrounds': 7.6.7 - '@storybook/addon-controls': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-docs': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@storybook/addon-highlight': 7.6.7 - '@storybook/addon-measure': 7.6.7 - '@storybook/addon-outline': 7.6.7 - '@storybook/addon-toolbars': 7.6.7 - '@storybook/addon-viewport': 7.6.7 - '@storybook/core-common': 7.6.7 - '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/node-logger': 7.6.7 - '@storybook/preview-api': 7.6.7 + '@storybook/addon-actions': 7.6.10 + '@storybook/addon-backgrounds': 7.6.10 + '@storybook/addon-controls': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-docs': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/addon-highlight': 7.6.10 + '@storybook/addon-measure': 7.6.10 + '@storybook/addon-outline': 7.6.10 + '@storybook/addon-toolbars': 7.6.10 + '@storybook/addon-viewport': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/manager-api': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/node-logger': 7.6.10 + '@storybook/preview-api': 7.6.10 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) ts-dedent: 2.2.0 @@ -3696,24 +3696,24 @@ packages: - supports-color dev: true - /@storybook/addon-highlight@7.6.7: - resolution: {integrity: sha512-2F/tJdn45d4zrvf/cmE1vsczl99wK8+I+kkj0G7jLsrJR0w1zTgbgjy6T9j86HBTBvWcnysNFNIRWPAOh5Wdbw==} + /@storybook/addon-highlight@7.6.10: + resolution: {integrity: sha512-dIuS5QmoT1R+gFOcf6CoBa6D9UR5/wHCfPqPRH8dNNcCLtIGSHWQ4v964mS5OCq1Huj7CghmR15lOUk7SaYwUA==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/addon-interactions@7.6.7: - resolution: {integrity: sha512-iXE2m9i/1D2baYkRgoYe9zwcAjtBOxBfW4o2AS0pzBNPN7elpP9C6mIa0ScpSltawBfIjfe6iQRXAMXOsIIh3Q==} + /@storybook/addon-interactions@7.6.10: + resolution: {integrity: sha512-lEsAdP/PrOZK/KmRbZ/fU4RjEqDP+e/PBlVVVJT2QvHniWK/xxkjCD0axsHU/XuaeQRFhmg0/KR342PC/cIf9A==} dependencies: '@storybook/global': 5.0.0 - '@storybook/types': 7.6.7 + '@storybook/types': 7.6.10 jest-mock: 27.5.1 polished: 4.2.2 ts-dedent: 2.2.0 dev: true - /@storybook/addon-links@7.6.7(react@18.2.0): - resolution: {integrity: sha512-O5LekPslkAIDtXC/TCIyg/3c0htBxDYwb/s+NrZUPTNWJsngxvTAwp6aIk6aVSeSCFUMWvBFcVsuV3hv+ndK6w==} + /@storybook/addon-links@7.6.10(react@18.2.0): + resolution: {integrity: sha512-s/WkSYHpr2pb9p57j6u/xDBg3TKJhBq55YMl0GB5gXgkRPIeuGbPhGJhm2yTGVFLvXgr/aHHnOxb/R/W8PiRhA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 peerDependenciesMeta: @@ -3726,34 +3726,34 @@ packages: ts-dedent: 2.2.0 dev: true - /@storybook/addon-measure@7.6.7: - resolution: {integrity: sha512-t1RnnNO4Xzgnsxu63FlZwsCTF0+9jKxr44NiJAUOxW9ppbCvs/JfSDOOvcDRtPWyjgnyzexNUUctMfxvLrU01A==} + /@storybook/addon-measure@7.6.10: + resolution: {integrity: sha512-OVfTI56+kc4hLWfZ/YPV3WKj/aA9e4iKXYxZyPdhfX4Z8TgZdD1wv9Z6e8DKS0H5kuybYrHKHaID5ki6t7qz3w==} dependencies: '@storybook/global': 5.0.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-outline@7.6.7: - resolution: {integrity: sha512-gu2y46ijjMkXlxy1f8Cctgjw5b5y8vSIqNAYlrs5/Qy+hJAWyU6lj2PFGOCCUG4L+F45fAjwWAin6qz43+WnRQ==} + /@storybook/addon-outline@7.6.10: + resolution: {integrity: sha512-RVJrEoPArhI6zAIMNl1Gz0zrj84BTfEWYYz0yDWOTVgvN411ugsoIk1hw0671MOneXJ2RcQ9MFIeV/v6AVDQYg==} dependencies: '@storybook/global': 5.0.0 ts-dedent: 2.2.0 dev: true - /@storybook/addon-storysource@7.6.7: - resolution: {integrity: sha512-YFC6rgbyXzlxifKDhhDyuJhu2I8HDW2Wc9IltFBhKdbu6LwlWCvYX6+OnIbRebwNH7vjbvHa8XopSDHroV4yIw==} + /@storybook/addon-storysource@7.6.10: + resolution: {integrity: sha512-ZtMiO26Bqd2oEovEeJ5ulvIL/rsAuHHpjAgBRZd/Byw25DQKY3GTqGtV474Wjm5tzj7HWhfk69fqAv87HnveCw==} dependencies: - '@storybook/source-loader': 7.6.7 + '@storybook/source-loader': 7.6.10 estraverse: 5.3.0 tiny-invariant: 1.3.1 dev: true - /@storybook/addon-toolbars@7.6.7: - resolution: {integrity: sha512-vT+YMzw8yVwndhJglI0XtELfXWq1M0HEy5ST3XPzbjmsJ54LgTf1b29UMkh0E/05qBQNFCcbT9B/tLxqWezxlg==} + /@storybook/addon-toolbars@7.6.10: + resolution: {integrity: sha512-PaXY/oj9yxF7/H0CNdQKcioincyCkfeHpISZriZbZqhyqsjn3vca7RFEmsB88Q+ou6rMeqyA9st+6e2cx/Ct6A==} dev: true - /@storybook/addon-viewport@7.6.7: - resolution: {integrity: sha512-Q/BKjJaKzl4RWxH45K2iIXwkicj4ReVAUIpIyd7dPBb/Bx+hEDYZxR5dDg82AMkZdA71x5ttMnuDSuVpmWAE6g==} + /@storybook/addon-viewport@7.6.10: + resolution: {integrity: sha512-+bA6juC/lH4vEhk+w0rXakaG8JgLG4MOYrIudk5vJKQaC6X58LIM9N4kzIS2KSExRhkExXBPrWsnMfCo7uxmKg==} dependencies: memoizerific: 1.11.3 dev: true @@ -3769,23 +3769,23 @@ packages: - react-dom dev: true - /@storybook/blocks@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-+QEvGQ0he/YvFS3lsZORJWxhQIyqcCDWsxbJxJiByePd+Z4my3q8xwtPhHW0TKRL0xUgNE/GnTfMMqJfevTuSw==} + /@storybook/blocks@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-oSIukGC3yuF8pojABC/HLu5tv2axZvf60TaUs8eDg7+NiiKhzYSPoMQxs5uMrKngl+EJDB92ESgWT9vvsfvIPg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@storybook/channels': 7.6.7 - '@storybook/client-logger': 7.6.7 - '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@storybook/core-events': 7.6.7 + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/components': 7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/core-events': 7.6.10 '@storybook/csf': 0.1.2 - '@storybook/docs-tools': 7.6.7 + '@storybook/docs-tools': 7.6.10 '@storybook/global': 5.0.0 - '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/preview-api': 7.6.7 - '@storybook/theming': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.7 + '@storybook/manager-api': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/preview-api': 7.6.10 + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 '@types/lodash': 4.14.202 color-convert: 2.0.1 dequal: 2.0.3 @@ -3807,13 +3807,13 @@ packages: - supports-color dev: true - /@storybook/builder-manager@7.6.7: - resolution: {integrity: sha512-6HYpj6+g/qbDMvImVz/G/aANbkhppyBa1ozfHxLK7tRD79YvozCWmj2Z9umRekPv9VIeMxnI5EEzJXOsoMX5DQ==} + /@storybook/builder-manager@7.6.10: + resolution: {integrity: sha512-f+YrjZwohGzvfDtH8BHzqM3xW0p4vjjg9u7uzRorqUiNIAAKHpfNrZ/WvwPlPYmrpAHt4xX/nXRJae4rFSygPw==} dependencies: '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@storybook/core-common': 7.6.7 - '@storybook/manager': 7.6.7 - '@storybook/node-logger': 7.6.7 + '@storybook/core-common': 7.6.10 + '@storybook/manager': 7.6.10 + '@storybook/node-logger': 7.6.10 '@types/ejs': 3.1.5 '@types/find-cache-dir': 3.2.1 '@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.18.20) @@ -3831,8 +3831,8 @@ packages: - supports-color dev: true - /@storybook/builder-vite@7.6.7(typescript@5.3.3)(vite@5.0.11): - resolution: {integrity: sha512-Sv+0ROFU9k+mkvIPsPHC0lkKDzBeMpvfO9uFRl1RDSsXBfcPPZKNo5YK7U7fOhesH0BILzurGA+U/aaITMSZ9g==} + /@storybook/builder-vite@7.6.10(typescript@5.3.3)(vite@5.0.12): + resolution: {integrity: sha512-qxe19axiNJVdIKj943e1ucAmADwU42fTGgMSdBzzrvfH3pSOmx2057aIxRzd8YtBRnj327eeqpgCHYIDTunMYQ==} peerDependencies: '@preact/preset-vite': '*' typescript: '>= 4.3.x' @@ -3846,14 +3846,14 @@ packages: vite-plugin-glimmerx: optional: true dependencies: - '@storybook/channels': 7.6.7 - '@storybook/client-logger': 7.6.7 - '@storybook/core-common': 7.6.7 - '@storybook/csf-plugin': 7.6.7 - '@storybook/node-logger': 7.6.7 - '@storybook/preview': 7.6.7 - '@storybook/preview-api': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/csf-plugin': 7.6.10 + '@storybook/node-logger': 7.6.10 + '@storybook/preview': 7.6.10 + '@storybook/preview-api': 7.6.10 + '@storybook/types': 7.6.10 '@types/find-cache-dir': 3.2.1 browser-assert: 1.2.1 es-module-lexer: 0.9.3 @@ -3863,12 +3863,23 @@ packages: magic-string: 0.30.5 rollup: 3.29.4 typescript: 5.3.3 - vite: 5.0.11(@types/node@20.11.0) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - encoding - supports-color dev: true + /@storybook/channels@7.6.10: + resolution: {integrity: sha512-ITCLhFuDBKgxetuKnWwYqMUWlU7zsfH3gEKZltTb+9/2OAWR7ez0iqU7H6bXP1ridm0DCKkt2UMWj2mmr9iQqg==} + dependencies: + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 + '@storybook/global': 5.0.0 + qs: 6.11.2 + telejson: 7.2.0 + tiny-invariant: 1.3.1 + dev: true + /@storybook/channels@7.6.7: resolution: {integrity: sha512-u1hURhfQHHtZyRIDUENRCp+CRRm7IQfcjQaoWI06XCevQPuhVEtFUfXHjG+J74aA/JuuTLFUtqwNm1zGqbXTAQ==} dependencies: @@ -3880,22 +3891,22 @@ packages: tiny-invariant: 1.3.1 dev: true - /@storybook/cli@7.6.7: - resolution: {integrity: sha512-DwDWzkifBH17ry+n+d+u52Sv69dZQ+04ETJdDDzghcyAcKnFzrRNukj4tJ21cm+ZAU/r0fKR9d4Qpbogca9fAg==} + /@storybook/cli@7.6.10: + resolution: {integrity: sha512-pK1MEseMm73OMO2OVoSz79QWX8ymxgIGM8IeZTCo9gImiVRChMNDFYcv8yPWkjuyesY8c15CoO48aR7pdA1OjQ==} hasBin: true dependencies: '@babel/core': 7.23.7 '@babel/preset-env': 7.23.7(@babel/core@7.23.7) '@babel/types': 7.23.6 '@ndelangen/get-tarball': 3.0.9 - '@storybook/codemod': 7.6.7 - '@storybook/core-common': 7.6.7 - '@storybook/core-events': 7.6.7 - '@storybook/core-server': 7.6.7 - '@storybook/csf-tools': 7.6.7 - '@storybook/node-logger': 7.6.7 - '@storybook/telemetry': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/codemod': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/core-events': 7.6.10 + '@storybook/core-server': 7.6.10 + '@storybook/csf-tools': 7.6.10 + '@storybook/node-logger': 7.6.10 + '@storybook/telemetry': 7.6.10 + '@storybook/types': 7.6.10 '@types/semver': 7.5.6 '@yarnpkg/fslib': 2.10.3 '@yarnpkg/libzip': 2.3.0 @@ -3920,7 +3931,6 @@ packages: puppeteer-core: 2.1.1 read-pkg-up: 7.0.1 semver: 7.5.4 - simple-update-notifier: 2.0.0 strip-json-comments: 3.1.1 tempy: 1.0.1 ts-dedent: 2.2.0 @@ -3932,22 +3942,28 @@ packages: - utf-8-validate dev: true + /@storybook/client-logger@7.6.10: + resolution: {integrity: sha512-U7bbpu21ntgePMz/mKM18qvCSWCUGCUlYru8mgVlXLCKqFqfTeP887+CsPEQf29aoE3cLgDrxqbRJ1wxX9kL9A==} + dependencies: + '@storybook/global': 5.0.0 + dev: true + /@storybook/client-logger@7.6.7: resolution: {integrity: sha512-A16zpWgsa0gSdXMR9P3bWVdC9u/1B1oG4H7Z1+JhNzgnL3CdyOYO0qFSiAtNBso4nOjIAJVb6/AoBzdRhmSVQg==} dependencies: '@storybook/global': 5.0.0 dev: true - /@storybook/codemod@7.6.7: - resolution: {integrity: sha512-an2pD5OHqO7CE8Wb7JxjrDnpQgeoxB22MyOs8PPJ9Rvclhpjg+Ku9RogoObYm//zR4g406l7Ec8mTltUkVCEOA==} + /@storybook/codemod@7.6.10: + resolution: {integrity: sha512-pzFR0nocBb94vN9QCJLC3C3dP734ZigqyPmd0ZCDj9Xce2ytfHK3v1lKB6TZWzKAZT8zztauECYxrbo4LVuagw==} dependencies: '@babel/core': 7.23.7 '@babel/preset-env': 7.23.7(@babel/core@7.23.7) '@babel/types': 7.23.6 '@storybook/csf': 0.1.2 - '@storybook/csf-tools': 7.6.7 - '@storybook/node-logger': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/csf-tools': 7.6.10 + '@storybook/node-logger': 7.6.10 + '@storybook/types': 7.6.10 '@types/cross-spawn': 6.0.6 cross-spawn: 7.0.3 globby: 11.1.0 @@ -3959,14 +3975,37 @@ packages: - supports-color dev: true - /@storybook/components@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /@storybook/components@7.6.10(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-H5hF8pxwtbt0LxV24KMMsPlbYG9Oiui3ObvAQkvGu6q62EYxRPeNSrq3GBI5XEbI33OJY9bT24cVaZx18dXqwQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@storybook/client-logger': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/global': 5.0.0 + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + use-resize-observer: 9.1.0(react-dom@18.2.0)(react@18.2.0) + util-deprecate: 1.0.2 + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + dev: true + + /@storybook/components@7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1HN4p+MCI4Tx9VGZayZyqbW7SB7mXQLnS5fUbTE1gXaMYHpzFvcrRNROeV1LZPClJX6qx1jgE5ngZojhxGuxMA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-select': 1.2.2(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-toolbar': 1.0.4(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/client-logger': 7.6.7 '@storybook/csf': 0.1.2 '@storybook/global': 5.0.0 @@ -3982,19 +4021,19 @@ packages: - '@types/react-dom' dev: true - /@storybook/core-client@7.6.7: - resolution: {integrity: sha512-ZQivyEzYsZok8vRj5Qan7LbiMUnO89rueWzTnZs4IS6JIaQtjoPI1rGVq+h6qOCM6tki478hic8FS+zwGQ6q+w==} + /@storybook/core-client@7.6.10: + resolution: {integrity: sha512-DjnzSzSNDmZyxyg6TxugzWQwOsW+n/iWVv6sHNEvEd5STr0mjuJjIEELmv58LIr5Lsre5+LEddqHsyuLyt8ubg==} dependencies: - '@storybook/client-logger': 7.6.7 - '@storybook/preview-api': 7.6.7 + '@storybook/client-logger': 7.6.10 + '@storybook/preview-api': 7.6.10 dev: true - /@storybook/core-common@7.6.7: - resolution: {integrity: sha512-F1fJnauVSPQtAlpicbN/O4XW38Ai8kf/IoU0Hgm9gEwurIk6MF5hiVLsaTI/5GUbrepMl9d9J+iIL4lHAT8IyA==} + /@storybook/core-common@7.6.10: + resolution: {integrity: sha512-K3YWqjCKMnpvYsWNjOciwTH6zWbuuZzmOiipziZaVJ+sB1XYmH52Y3WGEm07TZI8AYK9DRgwA13dR/7W0nw72Q==} dependencies: - '@storybook/core-events': 7.6.7 - '@storybook/node-logger': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/core-events': 7.6.10 + '@storybook/node-logger': 7.6.10 + '@storybook/types': 7.6.10 '@types/find-cache-dir': 3.2.1 '@types/node': 18.19.5 '@types/node-fetch': 2.6.10 @@ -4020,30 +4059,36 @@ packages: - supports-color dev: true + /@storybook/core-events@7.6.10: + resolution: {integrity: sha512-yccDH67KoROrdZbRKwxgTswFMAco5nlCyxszCDASCLygGSV2Q2e+YuywrhchQl3U6joiWi3Ps1qWu56NeNafag==} + dependencies: + ts-dedent: 2.2.0 + dev: true + /@storybook/core-events@7.6.7: resolution: {integrity: sha512-KZ5d03c47pnr5/kY26pJtWq7WpmCPXLbgyjJZDSc+TTY153BdZksvlBXRHtqM1yj2UM6QsSyIuiJaADJNAbP2w==} dependencies: ts-dedent: 2.2.0 dev: true - /@storybook/core-server@7.6.7: - resolution: {integrity: sha512-elKRv/DNahNNkGcQY/FdOBrLPmZF0T0fwmAmbc4qqeAisjl+to9TO77zdo2ieaEHKyRwE3B3dOB4EXomdF4N/g==} + /@storybook/core-server@7.6.10: + resolution: {integrity: sha512-2icnqJkn3vwq0eJPP0rNaHd7IOvxYf5q4lSVl2AWTxo/Ae19KhokI6j/2vvS2XQJMGQszwshlIwrZUNsj5p0yw==} dependencies: '@aw-web-design/x-default-browser': 1.4.126 '@discoveryjs/json-ext': 0.5.7 - '@storybook/builder-manager': 7.6.7 - '@storybook/channels': 7.6.7 - '@storybook/core-common': 7.6.7 - '@storybook/core-events': 7.6.7 + '@storybook/builder-manager': 7.6.10 + '@storybook/channels': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/core-events': 7.6.10 '@storybook/csf': 0.1.2 - '@storybook/csf-tools': 7.6.7 + '@storybook/csf-tools': 7.6.10 '@storybook/docs-mdx': 0.1.0 '@storybook/global': 5.0.0 - '@storybook/manager': 7.6.7 - '@storybook/node-logger': 7.6.7 - '@storybook/preview-api': 7.6.7 - '@storybook/telemetry': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/manager': 7.6.10 + '@storybook/node-logger': 7.6.10 + '@storybook/preview-api': 7.6.10 + '@storybook/telemetry': 7.6.10 + '@storybook/types': 7.6.10 '@types/detect-port': 1.3.5 '@types/node': 18.19.5 '@types/pretty-hrtime': 1.0.3 @@ -4077,24 +4122,24 @@ packages: - utf-8-validate dev: true - /@storybook/csf-plugin@7.6.7: - resolution: {integrity: sha512-YL7e6H4iVcsDI0UpgpdQX2IiGDrlbgaQMHQgDLWXmZyKxBcy0ONROAX5zoT1ml44EHkL60TMaG4f7SinviJCog==} + /@storybook/csf-plugin@7.6.10: + resolution: {integrity: sha512-Sc+zZg/BnPH2X28tthNaQBnDiFfO0QmfjVoOx0fGYM9SvY3P5ehzWwp5hMRBim6a/twOTzePADtqYL+t6GMqqg==} dependencies: - '@storybook/csf-tools': 7.6.7 + '@storybook/csf-tools': 7.6.10 unplugin: 1.6.0 transitivePeerDependencies: - supports-color dev: true - /@storybook/csf-tools@7.6.7: - resolution: {integrity: sha512-hyRbUGa2Uxvz3U09BjcOfMNf/5IYgRum1L6XszqK2O8tK9DGte1r6hArCIAcqiEmFMC40d0kalPzqu6WMNn7sg==} + /@storybook/csf-tools@7.6.10: + resolution: {integrity: sha512-TnDNAwIALcN6SA4l00Cb67G02XMOrYU38bIpFJk5VMDX2dvgPjUtJNBuLmEbybGcOt7nPyyFIHzKcY5FCVGoWA==} dependencies: '@babel/generator': 7.23.6 '@babel/parser': 7.23.6 '@babel/traverse': 7.23.7 '@babel/types': 7.23.6 '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.7 + '@storybook/types': 7.6.10 fs-extra: 11.2.0 recast: 0.23.4 ts-dedent: 2.2.0 @@ -4112,12 +4157,12 @@ packages: resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==} dev: true - /@storybook/docs-tools@7.6.7: - resolution: {integrity: sha512-enTO/xVjBqwUraGCYTwdyjMvug3OSAM7TPPUEJ3KPieJNwAzcYkww/qNDMIAR4S39zPMrkAmtS3STvVadlJz7g==} + /@storybook/docs-tools@7.6.10: + resolution: {integrity: sha512-UgbikducoXzqQHf2TozO0f2rshaeBNnShVbL5Ai4oW7pDymBmrfzdjGbF/milO7yxNKcoIByeoNmu384eBamgQ==} dependencies: - '@storybook/core-common': 7.6.7 - '@storybook/preview-api': 7.6.7 - '@storybook/types': 7.6.7 + '@storybook/core-common': 7.6.10 + '@storybook/preview-api': 7.6.10 + '@storybook/types': 7.6.10 '@types/doctrine': 0.0.3 assert: 2.1.0 doctrine: 3.0.0 @@ -4131,6 +4176,28 @@ packages: resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} dev: true + /@storybook/manager-api@7.6.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-8eGVpRlpunuFScDtc7nxpPJf/4kJBAAZlNdlhmX09j8M3voX6GpcxabBamSEX5pXZqhwxQCshD4IbqBmjvadlw==} + dependencies: + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/global': 5.0.0 + '@storybook/router': 7.6.10 + '@storybook/theming': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + store2: 2.14.2 + telejson: 7.2.0 + ts-dedent: 2.2.0 + transitivePeerDependencies: + - react + - react-dom + dev: true + /@storybook/manager-api@7.6.7(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3Wk/BvuGUlw/X05s57zZO7gJbzfUeE9Xe+CSIvuH7RY5jx9PYnNwqNlTXPXhJ5LPvwMthae7WJVn3SuBpbptoQ==} dependencies: @@ -4153,20 +4220,39 @@ packages: - react-dom dev: true - /@storybook/manager@7.6.7: - resolution: {integrity: sha512-ZCrkB2zEXogzdOcVzD242ZVm4tlHqrayotnI6iOn9uiun0Pgny0m2d7s9Zge6K2dTOO1vZiOHuA/Mr6nnIDjsA==} + /@storybook/manager@7.6.10: + resolution: {integrity: sha512-Co3sLCbNYY6O4iH2ggmRDLCPWLj03JE5s/DOG8OVoXc6vBwTc/Qgiyrsxxp6BHQnPpM0mxL6aKAxE3UjsW/Nog==} dev: true /@storybook/mdx2-csf@1.1.0: resolution: {integrity: sha512-TXJJd5RAKakWx4BtpwvSNdgTDkKM6RkXU8GK34S/LhidQ5Pjz3wcnqb0TxEkfhK/ztbP8nKHqXFwLfa2CYkvQw==} dev: true - /@storybook/node-logger@7.6.7: - resolution: {integrity: sha512-XLih8MxylkpZG9+8tgp8sPGc2tldlWF+DpuAkUv6J3Mc81mPyc3cQKQWZ7Hb+m1LpRGqKV4wyOQj1rC+leVMoQ==} + /@storybook/node-logger@7.6.10: + resolution: {integrity: sha512-ZBuqrv4bjJzKXyfRGFkVIi+z6ekn6rOPoQao4KmsfLNQAUUsEdR8Baw/zMnnU417zw5dSEaZdpuwx75SCQAeOA==} + dev: true + + /@storybook/postinstall@7.6.10: + resolution: {integrity: sha512-SMdXtednPCy3+SRJ7oN1OPN1oVFhj3ih+ChOEX8/kZ5J3nfmV3wLPtsZvFGUCf0KWQEP1xL+1Urv48mzMKcV/w==} dev: true - /@storybook/postinstall@7.6.7: - resolution: {integrity: sha512-mrpRmcwFd9FcvtHPXA9x6vOrHLVCKScZX/Xx2QPWgAvB3W6uzP8G+8QNb1u834iToxrWeuszUMB9UXZK4Qj5yg==} + /@storybook/preview-api@7.6.10: + resolution: {integrity: sha512-5A3etoIwZCx05yuv3KSTv1wynN4SR4rrzaIs/CTBp3BC4q1RBL+Or/tClk0IJPXQMlx/4Y134GtNIBbkiDofpw==} + dependencies: + '@storybook/channels': 7.6.10 + '@storybook/client-logger': 7.6.10 + '@storybook/core-events': 7.6.10 + '@storybook/csf': 0.1.2 + '@storybook/global': 5.0.0 + '@storybook/types': 7.6.10 + '@types/qs': 6.9.11 + dequal: 2.0.3 + lodash: 4.17.21 + memoizerific: 1.11.3 + qs: 6.11.2 + synchronous-promise: 2.0.17 + ts-dedent: 2.2.0 + util-deprecate: 1.0.2 dev: true /@storybook/preview-api@7.6.7: @@ -4188,12 +4274,12 @@ packages: util-deprecate: 1.0.2 dev: true - /@storybook/preview@7.6.7: - resolution: {integrity: sha512-/ddKIyT+6b8CKGJAma1wood4nwCAoi/E1olCqgpCmviMeUtAiMzgK0xzPwvq5Mxkz/cPeXVi8CQgaQZCa4yvNA==} + /@storybook/preview@7.6.10: + resolution: {integrity: sha512-F07BzVXTD3byq+KTWtvsw3pUu3fQbyiBNLFr2CnfU4XSdLKja5lDt8VqDQq70TayVQOf5qfUTzRd4M6pQkjw1w==} dev: true - /@storybook/react-dom-shim@7.6.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-b/rmy/YzVrwP+ifyZG4yXVIdeFVdTbmziodHUlbrWiUNsqtTZZur9kqkKRUH/7ofji9MFe81nd0MRlcTNFomqg==} + /@storybook/react-dom-shim@7.6.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-M+N/h6ximacaFdIDjMN2waNoWwApeVYTpFeoDppiFTvdBTXChyIuiPgYX9QSg7gDz92OaA52myGOot4wGvXVzg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4202,24 +4288,24 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /@storybook/react-vite@7.6.7(react-dom@18.2.0)(react@18.2.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.11): - resolution: {integrity: sha512-1cBpxVZ4vLO5rGbhTBNR2SjL+ZePCUAEY+I31tbORYFAoOKmlsNef4fRLnXJ9NYUAyjwZpUmbW0cIxxOFk7nGA==} + /@storybook/react-vite@7.6.10(react-dom@18.2.0)(react@18.2.0)(rollup@4.9.5)(typescript@5.3.3)(vite@5.0.12): + resolution: {integrity: sha512-YE2+J1wy8nO+c6Nv/hBMu91Edew3K184L1KSnfoZV8vtq2074k1Me/8pfe0QNuq631AncpfCYNb37yBAXQ/80w==} engines: {node: '>=16'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 vite: ^3.0.0 || ^4.0.0 || ^5.0.0 dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@5.0.11) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.0(typescript@5.3.3)(vite@5.0.12) '@rollup/pluginutils': 5.1.0(rollup@4.9.5) - '@storybook/builder-vite': 7.6.7(typescript@5.3.3)(vite@5.0.11) - '@storybook/react': 7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) - '@vitejs/plugin-react': 3.1.0(vite@5.0.11) + '@storybook/builder-vite': 7.6.10(typescript@5.3.3)(vite@5.0.12) + '@storybook/react': 7.6.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3) + '@vitejs/plugin-react': 3.1.0(vite@5.0.12) magic-string: 0.30.5 react: 18.2.0 react-docgen: 7.0.1 react-dom: 18.2.0(react@18.2.0) - vite: 5.0.11(@types/node@20.11.0) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - '@preact/preset-vite' - encoding @@ -4229,8 +4315,8 @@ packages: - vite-plugin-glimmerx dev: true - /@storybook/react@7.6.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): - resolution: {integrity: sha512-uT9IBPDM1SQg6FglWqb7IemOJ1Z8kYB5rehIDEDToi0u5INihSY8rHd003TxG4Wx4REp6J+rfbDJO2aVui/gxA==} + /@storybook/react@7.6.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.3.3): + resolution: {integrity: sha512-wwBn1cg2uZWW4peqqBjjU7XGmFq8HdkVUtWwh6dpfgmlY1Aopi+vPgZt7pY9KkWcTOq5+DerMdSfwxukpc3ajQ==} engines: {node: '>=16.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4240,13 +4326,13 @@ packages: typescript: optional: true dependencies: - '@storybook/client-logger': 7.6.7 - '@storybook/core-client': 7.6.7 - '@storybook/docs-tools': 7.6.7 + '@storybook/client-logger': 7.6.10 + '@storybook/core-client': 7.6.10 + '@storybook/docs-tools': 7.6.10 '@storybook/global': 5.0.0 - '@storybook/preview-api': 7.6.7 - '@storybook/react-dom-shim': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/types': 7.6.7 + '@storybook/preview-api': 7.6.10 + '@storybook/react-dom-shim': 7.6.10(react-dom@18.2.0)(react@18.2.0) + '@storybook/types': 7.6.10 '@types/escodegen': 0.0.6 '@types/estree': 0.0.51 '@types/node': 18.19.5 @@ -4269,6 +4355,14 @@ packages: - supports-color dev: true + /@storybook/router@7.6.10: + resolution: {integrity: sha512-G/H4Jn2+y8PDe8Zbq4DVxF/TPn0/goSItdILts39JENucHiuGBCjKjSWGBe1rkwKi1tUbB3yhxJVrLagxFEPpQ==} + dependencies: + '@storybook/client-logger': 7.6.10 + memoizerific: 1.11.3 + qs: 6.11.2 + dev: true + /@storybook/router@7.6.7: resolution: {integrity: sha512-kkhNSdC3fXaQxILg8a26RKk4/ZbF/AUVrepUEyO8lwvbJ6LItTyWSE/4I9Ih4qV2Mjx33ncc8vLqM9p8r5qnMA==} dependencies: @@ -4277,22 +4371,22 @@ packages: qs: 6.11.2 dev: true - /@storybook/source-loader@7.6.7: - resolution: {integrity: sha512-11uWYZwHyOMtC1vTh9AHDTh1ab1uUTeg1ZuqWJVSNSIfKNzDzeiWeqoWluzv6v3nQ5zNoMLqy8QOxbKeLiBDVw==} + /@storybook/source-loader@7.6.10: + resolution: {integrity: sha512-S3nOWyj+sdpsqJqKGIN3DKE1q+Q0KYxEyPlPCawMFazozUH7tOodTIqmHBqJZCSNqdC4M1S/qcL8vpP4PfXhuA==} dependencies: '@storybook/csf': 0.1.2 - '@storybook/types': 7.6.7 + '@storybook/types': 7.6.10 estraverse: 5.3.0 lodash: 4.17.21 prettier: 2.8.8 dev: true - /@storybook/telemetry@7.6.7: - resolution: {integrity: sha512-NHGzC/LGLXpK4AFbVj8ln5ab86ZiiNFvORQMn3+LNGwUt3ZdsHBzExN+WPZdw7OPtfk4ubUY89FXH2GedhTALw==} + /@storybook/telemetry@7.6.10: + resolution: {integrity: sha512-p3mOSUtIyy2tF1z6pQXxNh1JzYFcAm97nUgkwLzF07GfEdVAPM+ftRSLFbD93zVvLEkmLTlsTiiKaDvOY/lQWg==} dependencies: - '@storybook/client-logger': 7.6.7 - '@storybook/core-common': 7.6.7 - '@storybook/csf-tools': 7.6.7 + '@storybook/client-logger': 7.6.10 + '@storybook/core-common': 7.6.10 + '@storybook/csf-tools': 7.6.10 chalk: 4.1.2 detect-package-manager: 2.0.1 fetch-retry: 5.0.6 @@ -4311,6 +4405,20 @@ packages: ts-dedent: 2.2.0 dev: true + /@storybook/theming@7.6.10(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-f5tuy7yV3TOP3fIboSqpgLHy0wKayAw/M8HxX0jVET4Z4fWlFK0BiHJabQ+XEdAfQM97XhPFHB2IPbwsqhCEcQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) + '@storybook/client-logger': 7.6.10 + '@storybook/global': 5.0.0 + memoizerific: 1.11.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: true + /@storybook/theming@7.6.7(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-+42rfC4rZtWVAXJ7JBUQKnQ6vWBXJVHZ9HtNUWzQLPR9sJSMmHnnSMV6y5tizGgZqmBnAIkuoYk+Tt6NfwUmSA==} peerDependencies: @@ -4325,6 +4433,15 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true + /@storybook/types@7.6.10: + resolution: {integrity: sha512-hcS2HloJblaMpCAj2axgGV+53kgSRYPT0a1PG1IHsZaYQILfHSMmBqM8XzXXYTsgf9250kz3dqFX1l0n3EqMlQ==} + dependencies: + '@storybook/channels': 7.6.10 + '@types/babel__core': 7.20.5 + '@types/express': 4.17.21 + file-system-cache: 2.3.0 + dev: true + /@storybook/types@7.6.7: resolution: {integrity: sha512-VcGwrI4AkBENxkoAUJ+Z7SyMK73hpoY0TTtw2J7tc05/xdiXhkQTX15Qa12IBWIkoXCyNrtaU+q7KR8Tjzi+uw==} dependencies: @@ -4339,17 +4456,17 @@ packages: dependencies: tslib: 2.6.2 - /@tabler/icons-react@2.45.0(react@18.2.0): - resolution: {integrity: sha512-1vSBsHnBi9AfMILeJQrQo1XIHtFOxuWNGOeIvNHpDcBXyFTfVvDuh64PjMl57xCh5y/PlQlu3Hpx9vSkpSYXYQ==} + /@tabler/icons-react@2.46.0(react@18.2.0): + resolution: {integrity: sha512-X8MRxuslIOFqMjAo+GvUZDpjlOwNYNJTuOsHXf/NBvVI6ygqUf0FUNsDLLA5fQ6k6KtRwxMlgGB+eR8ZG1UP0g==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: - '@tabler/icons': 2.45.0 + '@tabler/icons': 2.46.0 prop-types: 15.8.1 react: 18.2.0 - /@tabler/icons@2.45.0: - resolution: {integrity: sha512-J10UDghOni9wlrj5CpKAzychDCABCKYq897mGg0wGFsd+tYLaUdz0dt/HZeGnV8gZJo0hIiTPLGwBp5EW42Qsg==} + /@tabler/icons@2.46.0: + resolution: {integrity: sha512-Q5G8Pj5IO+Uhc6pszpu5/hGYY018JwEzzvmuqr+gKJtfIvAHA3umpwUilMRLEy89p+WCP+YsDhicMhfBCCv1qA==} /@tanstack/match-sorter-utils@8.11.3: resolution: {integrity: sha512-2XVYTN6fLFyeIPywDL/HGKIQce3V6oUch1FHweGwxruPKEXip6Z9qg+zWZwNE26WG6CktqJh6NqTq90a42jeEw==} @@ -4358,16 +4475,16 @@ packages: remove-accents: 0.4.2 dev: false - /@tanstack/query-core@5.17.9: - resolution: {integrity: sha512-8xcvpWIPaRMDNLMvG9ugcUJMgFK316ZsqkPPbsI+TMZsb10N9jk0B6XgPk4/kgWC2ziHyWR7n7wUhxmD0pChQw==} + /@tanstack/query-core@5.17.19: + resolution: {integrity: sha512-Lzw8FUtnLCc9Jwz0sw9xOjZB+/mCCmJev38v2wHMUl/ioXNIhnNWeMxu0NKUjIhAd62IRB3eAtvxAGDJ55UkyA==} dev: false - /@tanstack/react-query@5.17.9(react@18.2.0): - resolution: {integrity: sha512-M5E9gwUq1Stby/pdlYjBlL24euIVuGbWKIFCbtnQxSdXI4PgzjTSdXdV3QE6fc+itF+TUvX/JPTKIwq8yuBXcg==} + /@tanstack/react-query@5.17.19(react@18.2.0): + resolution: {integrity: sha512-qaQENB6/03Gj3dFZGvdmUoqeUGlGm7P1p0RmaR04Bf1Ib1T9lLGimcC9T3oCFbrx0b2ZF21ngjFZNjj9uPJMcg==} peerDependencies: react: ^18.0.0 dependencies: - '@tanstack/query-core': 5.17.9 + '@tanstack/query-core': 5.17.19 react: 18.2.0 dev: false @@ -4383,8 +4500,8 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@tanstack/react-virtual@3.0.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-IFOFuRUTaiM/yibty9qQ9BfycQnYXIDHGP2+cU+0LrFFGNhVxCXSQnaY6wkX8uJVteFEBjUondX0Hmpp7TNcag==} + /@tanstack/react-virtual@3.0.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-9XbRLPKgnhMwwmuQMnJMv+5a9sitGNCSEtf/AZXzmJdesYk7XsjYHaEDny+IrJzvPNwZliIIDwCRiaUqR3zzCA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -4474,19 +4591,19 @@ packages: resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==} dependencies: '@types/connect': 3.4.38 - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/connect@3.4.38: resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/cross-spawn@6.0.6: resolution: {integrity: sha512-fXRhhUkG4H3TQk5dBhQ7m/JDdSNHKwR2BBia62lhwEIq9xGiQKLxd6LymNhn47SjXhsUEPmxi+PKw2OkW4LLjA==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/debug@4.1.12: @@ -4547,7 +4664,7 @@ packages: /@types/express-serve-static-core@4.17.41: resolution: {integrity: sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 '@types/qs': 6.9.11 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -4569,20 +4686,20 @@ packages: /@types/fs-extra@8.1.5: resolution: {integrity: sha512-0dzKcwO+S8s2kuF5Z9oUWatQJj5Uq/iqphEtE3GQJVRRYm/tD1LglU2UnXi2A8jLq5umkGouOXOR9y0n613ZwQ==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/graceful-fs@4.1.9: resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/hast@3.0.3: @@ -4654,7 +4771,7 @@ packages: /@types/node-fetch@2.6.10: resolution: {integrity: sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 form-data: 4.0.0 dev: true @@ -4664,8 +4781,8 @@ packages: undici-types: 5.26.5 dev: true - /@types/node@20.11.0: - resolution: {integrity: sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ==} + /@types/node@20.11.5: + resolution: {integrity: sha512-g557vgQjUUfN76MZAN/dt1z3dzcUsimuysco0KeluHgrPdJXkP/XdAURgyO2W9fZWHRtRBiVKzKn8vyOAwlG+w==} dependencies: undici-types: 5.26.5 @@ -4709,11 +4826,11 @@ packages: /@types/react-dom@18.2.18: resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==} dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 dev: true - /@types/react@18.2.47: - resolution: {integrity: sha512-xquNkkOirwyCgoClNk85BjP+aqnIS+ckAJ8i37gAbDs14jfW/J23f2GItAf33oiUPQnqNMALiFeoM9Y5mbjpVQ==} + /@types/react@18.2.48: + resolution: {integrity: sha512-qboRCl6Ie70DQQG9hhNREz81jqC1cs9EVNcjQ1AU+jH6NFfSAhVVbrrY/+nSF+Bsk4AOwm9Qa61InvMCyV+H3w==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.8 @@ -4738,7 +4855,7 @@ packages: resolution: {integrity: sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==} dependencies: '@types/mime': 1.3.5 - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/serve-static@1.15.5: @@ -4746,7 +4863,7 @@ packages: dependencies: '@types/http-errors': 2.0.4 '@types/mime': 3.0.4 - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /@types/unist@2.0.10: @@ -4776,8 +4893,8 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==} + /@typescript-eslint/eslint-plugin@6.19.0(@typescript-eslint/parser@6.19.0)(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha @@ -4788,11 +4905,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/type-utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -4805,8 +4922,8 @@ packages: - supports-color dev: true - /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==} + /@typescript-eslint/parser@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4815,10 +4932,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -4834,16 +4951,16 @@ packages: '@typescript-eslint/visitor-keys': 6.18.0 dev: true - /@typescript-eslint/scope-manager@6.18.1: - resolution: {integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==} + /@typescript-eslint/scope-manager@6.19.0: + resolution: {integrity: sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 dev: true - /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==} + /@typescript-eslint/type-utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4852,8 +4969,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) + '@typescript-eslint/utils': 6.19.0(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -4867,8 +4984,8 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/types@6.18.1: - resolution: {integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==} + /@typescript-eslint/types@6.19.0: + resolution: {integrity: sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A==} engines: {node: ^16.0.0 || >=18.0.0} dev: true @@ -4894,8 +5011,8 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): - resolution: {integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==} + /@typescript-eslint/typescript-estree@6.19.0(typescript@5.3.3): + resolution: {integrity: sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: typescript: '*' @@ -4903,8 +5020,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/visitor-keys': 6.18.1 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/visitor-keys': 6.19.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -4935,8 +5052,8 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==} + /@typescript-eslint/utils@6.19.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: eslint: ^7.0.0 || ^8.0.0 @@ -4944,9 +5061,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.18.1 - '@typescript-eslint/types': 6.18.1 - '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.19.0 + '@typescript-eslint/types': 6.19.0 + '@typescript-eslint/typescript-estree': 6.19.0(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -4962,18 +5079,18 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.18.1: - resolution: {integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==} + /@typescript-eslint/visitor-keys@6.19.0: + resolution: {integrity: sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ==} engines: {node: ^16.0.0 || >=18.0.0} dependencies: - '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/types': 6.19.0 eslint-visitor-keys: 3.4.3 dev: true /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-react@3.1.0(vite@5.0.11): + /@vitejs/plugin-react@3.1.0(vite@5.0.12): resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -4984,12 +5101,12 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) magic-string: 0.27.0 react-refresh: 0.14.0 - vite: 5.0.11(@types/node@20.11.0) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - supports-color dev: true - /@vitejs/plugin-react@4.2.1(vite@5.0.11): + /@vitejs/plugin-react@4.2.1(vite@5.0.12): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -5000,7 +5117,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.0.11(@types/node@20.11.0) + vite: 5.0.12(@types/node@20.11.5) transitivePeerDependencies: - supports-color dev: true @@ -5714,6 +5831,9 @@ packages: /caniuse-lite@1.0.30001574: resolution: {integrity: sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==} + /caniuse-lite@1.0.30001579: + resolution: {integrity: sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==} + /canvg@3.0.10: resolution: {integrity: sha512-qwR2FRNO9NlzTeKIPIKpnTY6fqwuYSequ8Ru8c0YkYU7U0oW+hLUvWadLvAu1Rl72OMNiFhoLu4f8eUjQ7l/+Q==} engines: {node: '>=10.0.0'} @@ -6707,8 +6827,8 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-next@14.0.4(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ==} + /eslint-config-next@14.1.0(eslint@8.56.0)(typescript@5.3.3): + resolution: {integrity: sha512-SBX2ed7DoRFXC6CQSLc/SbLY9Ut6HxNB2wPTcoIWjUMd7aF7O/SIE7111L8FdZ9TXsNV4pulUDnfthpyPtbFUg==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 typescript: '>=3.3.1' @@ -6716,13 +6836,13 @@ packages: typescript: optional: true dependencies: - '@next/eslint-plugin-next': 14.0.4 + '@next/eslint-plugin-next': 14.1.0 '@rushstack/eslint-patch': 1.6.1 - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-react: 7.33.2(eslint@8.56.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) @@ -6742,7 +6862,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6752,8 +6872,8 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -6765,7 +6885,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -6786,16 +6906,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -6805,7 +6925,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.19.0(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -6814,7 +6934,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.19.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -7538,17 +7658,6 @@ packages: path-scurry: 1.10.1 dev: true - /glob@7.1.7: - resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} - dependencies: - fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: @@ -8310,7 +8419,7 @@ packages: dependencies: '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 20.11.0 + '@types/node': 20.11.5 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8328,7 +8437,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.11.0 + '@types/node': 20.11.5 dev: true /jest-regex-util@29.6.3: @@ -8341,7 +8450,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - '@types/node': 20.11.0 + '@types/node': 20.11.5 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -8352,7 +8461,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8360,7 +8469,7 @@ packages: resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -9324,19 +9433,19 @@ packages: /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - /next-plausible@3.12.0(next@14.0.4)(react-dom@18.2.0)(react@18.2.0): + /next-plausible@3.12.0(next@14.1.0)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-SSkEqKQ6PgR8fx3sYfIAT69k2xuCUXO5ngkSS19CjxY97lAoZxsfZpYednxB4zo0mHYv87JzhPynrdBPlCBVHg==} peerDependencies: next: ^11.1.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - next: 14.0.4(react-dom@18.2.0)(react@18.2.0) + next: 14.1.0(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /next-sitemap@4.2.3(next@14.0.4): + /next-sitemap@4.2.3(next@14.1.0): resolution: {integrity: sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==} engines: {node: '>=14.18'} hasBin: true @@ -9347,11 +9456,11 @@ packages: '@next/env': 13.5.6 fast-glob: 3.3.2 minimist: 1.2.8 - next: 14.0.4(react-dom@18.2.0)(react@18.2.0) + next: 14.1.0(react-dom@18.2.0)(react@18.2.0) dev: false - /next@14.0.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==} + /next@14.1.0(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wlzrsbfeSU48YQBjZhDzOwhWhGsy+uQycR8bHAOt1LY1bn3zZEcDyHQOEoN3aWzQ8LHCAJ1nqrWCc9XF2+O45Q==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -9365,26 +9474,25 @@ packages: sass: optional: true dependencies: - '@next/env': 14.0.4 + '@next/env': 14.1.0 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001574 + caniuse-lite: 1.0.30001579 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(react@18.2.0) - watchpack: 2.4.0 optionalDependencies: - '@next/swc-darwin-arm64': 14.0.4 - '@next/swc-darwin-x64': 14.0.4 - '@next/swc-linux-arm64-gnu': 14.0.4 - '@next/swc-linux-arm64-musl': 14.0.4 - '@next/swc-linux-x64-gnu': 14.0.4 - '@next/swc-linux-x64-musl': 14.0.4 - '@next/swc-win32-arm64-msvc': 14.0.4 - '@next/swc-win32-ia32-msvc': 14.0.4 - '@next/swc-win32-x64-msvc': 14.0.4 + '@next/swc-darwin-arm64': 14.1.0 + '@next/swc-darwin-x64': 14.1.0 + '@next/swc-linux-arm64-gnu': 14.1.0 + '@next/swc-linux-arm64-musl': 14.1.0 + '@next/swc-linux-x64-gnu': 14.1.0 + '@next/swc-linux-x64-musl': 14.1.0 + '@next/swc-win32-arm64-msvc': 14.1.0 + '@next/swc-win32-ia32-msvc': 14.1.0 + '@next/swc-win32-x64-msvc': 14.1.0 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -10317,8 +10425,8 @@ packages: hasBin: true dev: true - /prettier@3.1.1: - resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + /prettier@3.2.4: + resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} engines: {node: '>=14'} hasBin: true dev: true @@ -10587,7 +10695,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.47)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -10597,12 +10705,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0) tslib: 2.6.2 - /react-remove-scroll@2.5.5(@types/react@18.2.47)(react@18.2.0): + /react-remove-scroll@2.5.5(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -10612,16 +10720,16 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.48)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.48)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.48)(react@18.2.0) dev: true - /react-remove-scroll@2.5.7(@types/react@18.2.47)(react@18.2.0): + /react-remove-scroll@2.5.7(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} engines: {node: '>=10'} peerDependencies: @@ -10631,15 +10739,15 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.47)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.47)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(@types/react@18.2.48)(react@18.2.0) + react-style-singleton: 2.2.1(@types/react@18.2.48)(react@18.2.0) tslib: 2.6.2 - use-callback-ref: 1.3.1(@types/react@18.2.47)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.47)(react@18.2.0) + use-callback-ref: 1.3.1(@types/react@18.2.48)(react@18.2.0) + use-sidecar: 1.1.2(@types/react@18.2.48)(react@18.2.0) - /react-style-singleton@2.2.1(@types/react@18.2.47)(react@18.2.0): + /react-style-singleton@2.2.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -10649,13 +10757,13 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 tslib: 2.6.2 - /react-textarea-autosize@8.5.3(@types/react@18.2.47)(react@18.2.0): + /react-textarea-autosize@8.5.3(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==} engines: {node: '>=10'} peerDependencies: @@ -10664,7 +10772,7 @@ packages: '@babel/runtime': 7.23.7 react: 18.2.0 use-composed-ref: 1.3.0(react@18.2.0) - use-latest: 1.2.1(@types/react@18.2.47)(react@18.2.0) + use-latest: 1.2.1(@types/react@18.2.48)(react@18.2.0) transitivePeerDependencies: - '@types/react' @@ -11217,19 +11325,12 @@ packages: engines: {node: '>=14'} dev: true - /simple-update-notifier@2.0.0: - resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==} - engines: {node: '>=10'} - dependencies: - semver: 7.5.4 - dev: true - /sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} dev: true - /size-limit@11.0.1: - resolution: {integrity: sha512-6L80ocVspWPrhIRg8kPl41VypqTGH8/lu9e6TJiSJpkNLtOR2h/EEqdAO/wNJOv/sUVtjX+lVEWrzBpItGP+gQ==} + /size-limit@11.0.2: + resolution: {integrity: sha512-iFZ8iTR/3zPqxSwEIdGnTVYVU0F2nhodLQG/G6zpi/NxECYAK9ntq2lNr+prXH7h3gyBjx2Umt2D/oS2Qzz+eg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -11331,7 +11432,7 @@ packages: resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==} dev: true - /storybook-dark-mode@3.0.3(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0): + /storybook-dark-mode@3.0.3(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-ZLBLVpkuKTdtUv3DTuOjeP/bE7DHhOxVpDROKc0NtEYq9JHLUu6z05LLZinE3v6QPXQZ9TMQPm3Xe/0BcLEZlw==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 @@ -11343,7 +11444,7 @@ packages: optional: true dependencies: '@storybook/addons': 7.6.7(react-dom@18.2.0)(react@18.2.0) - '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.47)(react-dom@18.2.0)(react@18.2.0) + '@storybook/components': 7.6.7(@types/react-dom@18.2.18)(@types/react@18.2.48)(react-dom@18.2.0)(react@18.2.0) '@storybook/core-events': 7.6.7 '@storybook/global': 5.0.0 '@storybook/manager-api': 7.6.7(react-dom@18.2.0)(react@18.2.0) @@ -11357,11 +11458,11 @@ packages: - '@types/react-dom' dev: true - /storybook@7.6.7: - resolution: {integrity: sha512-1Cd895dqYIT5MOUOCDlD73OTWoJubLq/sWC7AMzkMrLu76yD4Cu6f+wv1HDrRAheRaCaeT3yhYEhsMB6qHIcaA==} + /storybook@7.6.10: + resolution: {integrity: sha512-ypFeGhQTUBBfqSUVZYh7wS5ghn3O2wILCiQc4459SeUpvUn+skcqw/TlrwGSoF5EWjDA7gtRrWDxO3mnlPt5Cw==} hasBin: true dependencies: - '@storybook/cli': 7.6.7 + '@storybook/cli': 7.6.10 transitivePeerDependencies: - bufferutil - encoding @@ -12180,7 +12281,7 @@ packages: dependencies: punycode: 2.3.1 - /use-callback-ref@1.3.1(@types/react@18.2.47)(react@18.2.0): + /use-callback-ref@1.3.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==} engines: {node: '>=10'} peerDependencies: @@ -12190,7 +12291,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 tslib: 2.6.2 @@ -12201,7 +12302,7 @@ packages: dependencies: react: 18.2.0 - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.47)(react@18.2.0): + /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} peerDependencies: '@types/react': '*' @@ -12210,10 +12311,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 - /use-latest@1.2.1(@types/react@18.2.47)(react@18.2.0): + /use-latest@1.2.1(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==} peerDependencies: '@types/react': '*' @@ -12222,9 +12323,9 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 react: 18.2.0 - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.47)(react@18.2.0) + use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.48)(react@18.2.0) /use-resize-observer@9.1.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-R25VqO9Wb3asSD4eqtcxk8sJalvIOYBqS8MNZlpDSQ4l4xMQxC/J7Id9HoTqPq8FwULIn0PVW+OAqF2dyYbjow==} @@ -12237,7 +12338,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: true - /use-sidecar@1.1.2(@types/react@18.2.47)(react@18.2.0): + /use-sidecar@1.1.2(@types/react@18.2.48)(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -12247,7 +12348,7 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.47 + '@types/react': 18.2.48 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.6.2 @@ -12311,8 +12412,8 @@ packages: vfile-message: 4.0.2 dev: false - /vite@5.0.11(@types/node@20.11.0): - resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==} + /vite@5.0.12(@types/node@20.11.5): + resolution: {integrity: sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -12339,7 +12440,7 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.0 + '@types/node': 20.11.5 esbuild: 0.19.11 postcss: 8.4.33 rollup: 4.9.5