diff --git a/examples/react/shadcn-basic/.gitignore b/examples/react/shadcn-basic/.gitignore index d451ff16c1..18a5070e2a 100644 --- a/examples/react/shadcn-basic/.gitignore +++ b/examples/react/shadcn-basic/.gitignore @@ -3,3 +3,4 @@ node_modules dist dist-ssr *.local +!lib diff --git a/examples/react/shadcn-basic/src/lib/utils.ts b/examples/react/shadcn-basic/src/lib/utils.ts new file mode 100644 index 0000000000..914ec868af --- /dev/null +++ b/examples/react/shadcn-basic/src/lib/utils.ts @@ -0,0 +1,7 @@ +import { clsx } from 'clsx' +import { twMerge } from 'tailwind-merge' +import type { ClassValue } from 'clsx' + +export function cn(...inputs: Array) { + return twMerge(clsx(inputs)) +} diff --git a/examples/react/shadcn-kitchen-sink/.gitignore b/examples/react/shadcn-kitchen-sink/.gitignore new file mode 100644 index 0000000000..18a5070e2a --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/.gitignore @@ -0,0 +1,6 @@ +node_modules +.DS_Store +dist +dist-ssr +*.local +!lib diff --git a/examples/react/shadcn-kitchen-sink/README.md b/examples/react/shadcn-kitchen-sink/README.md new file mode 100644 index 0000000000..b168d3c4b1 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/README.md @@ -0,0 +1,6 @@ +# Example + +To run this example: + +- `npm install` or `yarn` +- `npm run start` or `yarn start` diff --git a/examples/react/shadcn-kitchen-sink/components.json b/examples/react/shadcn-kitchen-sink/components.json new file mode 100644 index 0000000000..852e0565cf --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/components.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "new-york", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/index.css", + "baseColor": "zinc", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + }, + "iconLibrary": "lucide" +} \ No newline at end of file diff --git a/examples/react/shadcn-kitchen-sink/index.html b/examples/react/shadcn-kitchen-sink/index.html new file mode 100644 index 0000000000..3fc40c9367 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/index.html @@ -0,0 +1,13 @@ + + + + + + Vite App + + + +
+ + + diff --git a/examples/react/shadcn-kitchen-sink/package.json b/examples/react/shadcn-kitchen-sink/package.json new file mode 100644 index 0000000000..38989c8e66 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/package.json @@ -0,0 +1,49 @@ +{ + "name": "tanstack-table-example-shadcn-kitchen-sink", + "version": "0.0.0", + "private": true, + "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", + "start": "vite", + "lint": "eslint ./src", + "shadcn": "pnpm dlx shadcn@latest" + }, + "dependencies": { + "@dnd-kit/core": "^6.3.1", + "@dnd-kit/modifiers": "^9.0.0", + "@dnd-kit/sortable": "^10.0.0", + "@dnd-kit/utilities": "^3.2.2", + "@radix-ui/react-checkbox": "^1.1.4", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-dropdown-menu": "^2.1.6", + "@radix-ui/react-popover": "^1.1.6", + "@radix-ui/react-progress": "^1.1.2", + "@radix-ui/react-select": "^2.1.6", + "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-tooltip": "^1.1.8", + "@tanstack/react-table": "^9.0.0-alpha.10", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "cmdk": "1.0.0", + "date-fns": "^4.1.0", + "lucide-react": "^0.475.0", + "react": "^19.0.0", + "react-day-picker": "8.10.1", + "react-dom": "^19.0.0", + "tailwind-merge": "^3.0.1", + "tailwindcss-animate": "^1.0.7" + }, + "devDependencies": { + "@rollup/plugin-replace": "^6.0.1", + "@types/react": "^19.0.1", + "@types/react-dom": "^19.0.1", + "@vitejs/plugin-react": "^4.3.4", + "autoprefixer": "^10.4.20", + "postcss": "^8.5.1", + "tailwindcss": "^3.4.17", + "typescript": "5.6.3", + "vite": "^5.4.11" + } +} diff --git a/examples/react/shadcn-kitchen-sink/postcss.config.js b/examples/react/shadcn-kitchen-sink/postcss.config.js new file mode 100644 index 0000000000..33ad091d26 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-filter-list.tsx b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-filter-list.tsx new file mode 100644 index 0000000000..df3cc377d5 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-filter-list.tsx @@ -0,0 +1,956 @@ +'use client' + +import * as React from 'react' +import { format } from 'date-fns' +import { + CalendarIcon, + Check, + ChevronsUpDown, + ListFilter, + Trash2, +} from 'lucide-react' +import type { + ExtendedColumnFilter, + FilterOperator, + JoinOperator, + TableFilterFeatures, +} from '@/types' +import type { + Column, + ColumnMeta, + RowData, + Table, + TableFeatures, +} from '@tanstack/react-table' + +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { Input } from '@/components/ui/input' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' +import { Calendar } from '@/components/ui/calendar' +import { getFilterOperators } from '@/lib/data-table' +import { cn } from '@/lib/utils' +import { + Faceted, + FacetedBadgeList, + FacetedContent, + FacetedEmpty, + FacetedGroup, + FacetedInput, + FacetedItem, + FacetedList, + FacetedTrigger, +} from '@/components/ui/faceted' +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from '@/components/ui/command' + +// TODO: column.getFacetedUniqueValues() is broken rn, remove this once it's fixed +function createManualFacetedValues( + table: Table, TData>, + columnId: string, +): Map { + const facetedValues = new Map() + + const rows = table.getPreFilteredRowModel().flatRows + + for (const row of rows) { + const value = row.getValue(columnId) + if (value !== undefined && value !== null) { + const count = facetedValues.get(value) ?? 0 + facetedValues.set(value, count + 1) + } + } + + return facetedValues +} + +function getColumnOptions< + TFeatures extends TableFeatures, + TData extends RowData, +>({ + column, + table, +}: { + column: Column, TData> + table: Table, TData> +}): Array<{ label: string; value: string; count?: number }> { + const customOptions = column.columnDef.meta?.options + + if (customOptions) return customOptions + + let uniqueValues: Map + try { + uniqueValues = column.getFacetedUniqueValues() + + if (!(uniqueValues instanceof Map)) { + uniqueValues = createManualFacetedValues(table, column.id) + } + } catch (_err) { + uniqueValues = createManualFacetedValues(table, column.id) + } + + return Array.from(uniqueValues.entries()).map(([value, count]) => ({ + label: String(value), + value: String(value), + count, + })) +} + +interface DataTableFilterListProps< + TFeatures extends TableFeatures, + TData extends RowData, +> { + table: Table, TData> + columnFilters: Array + onColumnFiltersChange: (filters: Array) => void +} + +export function DataTableFilterList< + TFeatures extends TableFeatures, + TData extends RowData, +>({ + table, + columnFilters, + onColumnFiltersChange, +}: DataTableFilterListProps) { + const id = React.useId() + const labelId = React.useId() + const descriptionId = React.useId() + const listId = React.useId() + const [open, setOpen] = React.useState(false) + + const filterableColumns = React.useMemo( + () => table.getAllColumns().filter((column) => column.getCanFilter()), + [table], + ) + + const getColumnFilterVariant = React.useCallback( + ( + column: Column, TData>, + ): ColumnMeta['variant'] => { + if (column.columnDef.meta?.variant) { + return column.columnDef.meta.variant + } + + const firstValue = table + .getPreFilteredRowModel() + .flatRows[0]?.getValue(column.id) + + if (Array.isArray(firstValue)) return 'multi-select' + if (typeof firstValue === 'number') return 'number' + if (firstValue instanceof Date) return 'date' + if (column.columnDef.meta?.variant === 'select') return 'select' + + return 'text' + }, + [table], + ) + + const onFilterAddImpl = React.useCallback( + (columnId: string): ExtendedColumnFilter | null => { + const column = filterableColumns.find((col) => col.id === columnId) + if (!column) return null + + const filterVariant = getColumnFilterVariant(column) + const operators = getFilterOperators(filterVariant ?? 'text') + const defaultOperator = operators[0].value + + return { + id: columnId, + value: filterVariant === 'multi-select' ? [] : '', + operator: defaultOperator, + filterId: crypto.randomUUID(), + joinOperator: 'and', + } + }, + [filterableColumns, getColumnFilterVariant], + ) + + const onFilterAdd = React.useCallback(() => { + const firstFilterableColumn = filterableColumns[0] + + const newFilter = onFilterAddImpl(firstFilterableColumn.id) + if (newFilter) { + onColumnFiltersChange([...columnFilters, newFilter]) + } + }, [columnFilters, onFilterAddImpl, filterableColumns, onColumnFiltersChange]) + + const onFilterUpdate = React.useCallback( + ( + filterId: string, + updates: Partial>, + ) => { + const newFilters = columnFilters.map((filter) => { + if (filter.filterId === filterId) { + if (updates.id) { + const newColumn = filterableColumns.find( + (col) => col.id === updates.id, + ) + if (newColumn) { + const filterVariant = getColumnFilterVariant(newColumn) + const operators = getFilterOperators(filterVariant ?? 'text') + const defaultOperator = operators[0].value + return { + ...filter, + ...updates, + operator: defaultOperator, + value: filterVariant === 'multi-select' ? [] : '', + } + } + } + + if (updates.operator && filter.value) { + const column = filterableColumns.find((col) => col.id === filter.id) + if (column && getColumnFilterVariant(column) === 'date') { + const currentValue = filter.value + if ( + updates.operator === 'inRange' && + !Array.isArray(currentValue) + ) { + return { + ...filter, + ...updates, + value: [currentValue, undefined], + } + } else if ( + updates.operator !== 'inRange' && + Array.isArray(currentValue) + ) { + return { + ...filter, + ...updates, + value: currentValue[0] ?? '', + } + } + } + } + + return { ...filter, ...updates } + } + return filter + }) + onColumnFiltersChange(newFilters) + }, + [ + columnFilters, + filterableColumns, + getColumnFilterVariant, + getFilterOperators, + onColumnFiltersChange, + ], + ) + + const onFilterRemove = React.useCallback( + (filterId: string) => { + const newFilters = columnFilters.filter((filter) => { + return filter.filterId !== filterId + }) + onColumnFiltersChange(newFilters) + }, + [columnFilters, onColumnFiltersChange], + ) + + const onFilterInputRender = React.useCallback( + ({ + column, + operator, + filterId, + inputId, + }: { + column: Column, TData> + operator: FilterOperator + filterId: string + inputId: string + }) => { + const filterVariant = getColumnFilterVariant(column) ?? 'text' + const currentFilter = columnFilters.find( + (filter) => filter.filterId === filterId, + ) + const columnLabel = column.columnDef.meta?.label ?? column.id + + switch (filterVariant) { + case 'date': + if (operator === 'inRange') { + const currentValue = Array.isArray(currentFilter?.value) + ? currentFilter.value + : [currentFilter?.value, undefined] + + const dateRange = + currentValue[0] || currentValue[1] + ? { + from: currentValue[0] + ? new Date(currentValue[0]) + : undefined, + to: currentValue[1] ? new Date(currentValue[1]) : undefined, + } + : undefined + + return ( +
+ + + + + { + document.getElementById(inputId)?.focus({ + preventScroll: true, + }) + }} + > + { + if (filterId) { + onFilterUpdate(filterId, { + value: [ + date?.from ? date.from.toISOString() : undefined, + date?.to ? date.to.toISOString() : undefined, + ], + operator, + }) + } + }} + numberOfMonths={2} + initialFocus + /> + + +
+ ) + } + + const selectedDate = currentFilter?.value + ? new Date(currentFilter.value as string) + : undefined + + return ( + + + + + { + document.getElementById(inputId)?.focus({ + preventScroll: true, + }) + }} + > + { + if (filterId) { + onFilterUpdate(filterId, { + value: date ? date.toISOString() : undefined, + operator, + }) + } + }} + initialFocus + /> + + + ) + case 'number': + if (operator === 'inRange') { + const currentValue = Array.isArray(currentFilter?.value) + ? currentFilter.value + : [currentFilter?.value, undefined] + + return ( +
+ { + if (filterId) { + onFilterUpdate(filterId, { + value: [ + event.target.value === '' + ? undefined + : Number(event.target.value), + currentValue[1] ?? undefined, + ], + operator, + }) + } + }} + /> + { + if (filterId) { + onFilterUpdate(filterId, { + value: [ + currentValue[0] ?? undefined, + event.target.value === '' + ? undefined + : Number(event.target.value), + ], + operator, + }) + } + }} + /> +
+ ) + } + + return ( + { + if (filterId) { + onFilterUpdate(filterId, { + value: + event.target.value === '' + ? '' + : Number(event.target.value), + operator, + }) + } + }} + /> + ) + case 'select': + const selectOptions = getColumnOptions({ column, table }) + + return ( + { + if (filterId) { + onFilterUpdate(filterId, { value }) + } + }} + > + + + + + + + No options found. + + {selectOptions.map((option) => ( + + {option.label} + {option.count && ( + + {option.count} + + )} + + ))} + + + + + ) + + case 'multi-select': + const multiSelectOptions = getColumnOptions({ column, table }) + const selectedValues = Array.isArray(currentFilter?.value) + ? currentFilter.value + : [] + + return ( + { + if (filterId) { + onFilterUpdate(filterId, { value }) + } + }} + > + + + + + + + No options found. + + {multiSelectOptions.map((option) => ( + + {option.label} + {option.count && ( + + {option.count} + + )} + + ))} + + + + + ) + + default: + if (operator === 'isEmpty' || operator === 'isNotEmpty') { + return ( +
+ ) + } + + return ( + { + if (filterId) { + onFilterUpdate(filterId, { + value: event.target.value, + operator, + }) + } + }} + /> + ) + } + }, + [getColumnFilterVariant, columnFilters, onFilterUpdate], + ) + + const onFilterRender = React.useCallback( + ({ filter, index }: { filter: ExtendedColumnFilter; index: number }) => { + const column = table.getColumn(filter.id) + if (!column || !filter.filterId) return null + + const filterVariant = getColumnFilterVariant(column) ?? 'text' + const operators = getFilterOperators(filterVariant) + const filterItemId = `${id}-filter-${filter.filterId}` + const triggerId = `${filterItemId}-trigger` + const joinOperatorListboxId = `${filterItemId}-join-operator-listbox` + const fieldListboxId = `${filterItemId}-field-listbox` + const operatorListboxId = `${filterItemId}-operator-listbox` + const inputId = `${filterItemId}-input` + + return ( +
+ {index === 0 ? ( + + Where + + ) : index === 1 ? ( + + ) : ( + + {filter.joinOperator} + + )} + + + + + + document + .getElementById(triggerId) + ?.focus({ preventScroll: true }) + } + > + + + + No column found. + + {filterableColumns.map((col) => ( + { + if (!filter.filterId) return + onFilterUpdate(filter.filterId, { id: value }) + }} + > + + {col.columnDef.meta?.label ?? col.id} + + + ))} + + + + + + + {onFilterInputRender({ + column, + operator: filter.operator ?? 'includesString', + filterId: filter.filterId, + inputId, + })} + +
+ ) + }, + [ + table, + filterableColumns, + getColumnFilterVariant, + onFilterInputRender, + onFilterUpdate, + onFilterRemove, + ], + ) + + return ( + + + + + +
+

+ Filters +

+

0 && 'sr-only', + )} + > + {columnFilters.length > 0 + ? 'Modify filters to refine your results.' + : 'Add filters to refine your results.'} +

+
+ {columnFilters.length > 0 && ( +
+ {columnFilters.map((filter, index) => + onFilterRender({ filter, index }), + )} +
+ )} +
+ + {columnFilters.length > 0 && ( + + )} +
+
+
+ ) +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx new file mode 100644 index 0000000000..0556c3d459 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-pagination.tsx @@ -0,0 +1,104 @@ +'use client' + +import { + ChevronLeft, + ChevronRight, + ChevronsLeft, + ChevronsRight, +} from 'lucide-react' +import type { RowData, Table, TableFeatures } from '@tanstack/react-table' + +import { Button } from '@/components/ui/button' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' + +interface DataTablePaginationProps { + table: Table, RowData> + pageSizeOptions?: Array +} + +export function DataTablePagination({ + table, + pageSizeOptions = [10, 20, 30, 40, 50], +}: DataTablePaginationProps) { + return ( +
+
+ {table.getFilteredSelectedRowModel().rows.length} of{' '} + {table.getFilteredRowModel().rows.length} row(s) selected. +
+
+
+

Rows per page

+ +
+
+ Page {table.getState().pagination.pageIndex + 1} of{' '} + {table.getPageCount()} +
+
+ + + + +
+
+
+ ) +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-sort-list.tsx b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-sort-list.tsx new file mode 100644 index 0000000000..37b250854a --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-sort-list.tsx @@ -0,0 +1,371 @@ +'use client' + +import * as React from 'react' +import { + ArrowDownUp, + Check, + ChevronsUpDown, + GripVertical, + Trash2, +} from 'lucide-react' +import type { + ColumnSort, + RowData, + SortDirection, + SortingState, + Table, + TableFeatures, +} from '@tanstack/react-table' + +import { Badge } from '@/components/ui/badge' +import { Button } from '@/components/ui/button' +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from '@/components/ui/select' +import { + Sortable, + SortableContent, + SortableItem, + SortableItemHandle, + SortableOverlay, +} from '@/components/ui/sortable' +import { cn } from '@/lib/utils' + +interface DataTableSortListProps< + TFeatures extends TableFeatures, + TData extends RowData, +> { + table: Table, TData> + sorting: SortingState + onSortingChange: (sorting: SortingState) => void +} + +export function DataTableSortList< + TFeatures extends TableFeatures, + TData extends RowData, +>({ + table, + sorting, + onSortingChange, +}: DataTableSortListProps) { + const labelId = React.useId() + const descriptionId = React.useId() + const listId = React.useId() + const [open, setOpen] = React.useState(false) + + const sortableColumns = React.useMemo( + () => table.getAllColumns().filter((column) => column.getCanSort()), + [table], + ) + + const onColumnSelect = React.useCallback( + (currentSortId: string, newColumnId: string) => { + const newSorting = sorting.map((s) => + s.id === currentSortId ? { ...s, id: newColumnId } : s, + ) + table.setSorting(newSorting) + }, + [sorting, table], + ) + + const onSortAdd = React.useCallback(() => { + const firstAvailableColumn = sortableColumns.find( + (col) => !sorting.some((s) => s.id === col.id), + ) + if (firstAvailableColumn) { + table.setSorting([ + ...sorting, + { id: firstAvailableColumn.id, desc: false }, + ]) + } + }, [sorting, sortableColumns, table]) + + const onSortUpdate = React.useCallback( + (sortId: string, updates: Partial>) => { + const newSorting = sorting.map((s) => + s.id === sortId ? { ...s, ...updates } : s, + ) + table.setSorting(newSorting) + }, + [sorting, table], + ) + + const onSortRemove = React.useCallback( + (sortId: string) => { + const newSorting = sorting.filter((s) => s.id !== sortId) + table.setSorting(newSorting) + }, + [sorting, table], + ) + + return ( + item.id} + > + + + + + +
+

+ {sorting.length > 0 ? 'Sort by' : 'No sorting applied'} +

+

0 && 'sr-only', + )} + > + {sorting.length > 0 + ? 'Modify sorting to organize your results.' + : 'Add sorting to organize your results.'} +

+
+ {sorting.length > 0 ? ( + +
+ {sorting.map((sort, index) => { + const columnTitle = + sortableColumns.find((col) => col.id === sort.id)?.columnDef + .meta?.label ?? sort.id + const sortItemId = `${listId}-item-${sort.id}` + const triggerId = `${listId}-${index}-trigger` + const fieldListboxId = `${sortItemId}-field-listbox` + const operatorListboxId = `${sortItemId}-operator-listbox` + + return ( + +
+ + + + + + document + .getElementById(triggerId) + ?.focus({ preventScroll: true }) + } + > + + + + No column found. + + {sortableColumns + .filter( + (column) => + !sorting.some( + (s) => + s.id === column.id && + s.id !== sort.id, + ), + ) + .map((column) => ( + + onColumnSelect(sort.id, column.id) + } + > + + {column.columnDef.meta?.label ?? + column.id} + + + ))} + + + + + + + + + + +
+
+ ) + })} +
+
+ ) : null} +
+ + {sorting.length > 0 && ( + + )} +
+
+
+ +
+
+
+
+
+
+ + + ) +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-view-options.tsx b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-view-options.tsx new file mode 100644 index 0000000000..5db610b966 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/data-table/data-table-view-options.tsx @@ -0,0 +1,171 @@ +'use client' + +import * as React from 'react' +import { Check, ChevronsUpDown, GripVertical, Settings2 } from 'lucide-react' +import type { + ColumnOrderState, + RowData, + Table, + TableFeatures, +} from '@tanstack/react-table' + +import { Button } from '@/components/ui/button' +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { cn } from '@/lib/utils' +import { + Sortable, + SortableContent, + SortableItem, + SortableItemHandle, + SortableOverlay, +} from '@/components/ui/sortable' + +interface DataTableViewOptionsProps< + TFeatures extends TableFeatures, + TRowData extends RowData, +> { + table: Table, TRowData> + columnOrder: ColumnOrderState + onColumnOrderChange: (columnOrder: ColumnOrderState) => void +} + +export function DataTableViewOptions< + TFeatures extends TableFeatures, + TRowData extends RowData, +>({ + table, + columnOrder, + onColumnOrderChange, +}: DataTableViewOptionsProps) { + const triggerRef = React.useRef(null) + + return ( + + + + + + triggerRef.current?.focus()} + > + + + + + No columns found. + + {table + .getAllColumns() + .sort((a, b) => { + const aIndex = columnOrder.indexOf(a.id) + const bIndex = columnOrder.indexOf(b.id) + return aIndex - bIndex + }) + .filter( + (column) => typeof column.accessorFn !== 'undefined', + ) + .map((column) => ( + + + column.toggleVisibility(!column.getIsVisible()) + } + > + + + {column.columnDef.meta?.label ?? column.id} + + + + + + + ))} + + + +
+ table.toggleAllColumnsVisible(false)} + className="w-full justify-center border" + > + Hide All + + table.toggleAllColumnsVisible(true)} + className="w-full justify-center border" + > + Show All + +
+
+
+
+
+
+
+ +
+ + + ) +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/badge.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/badge.tsx new file mode 100644 index 0000000000..e87d62bf1a --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/button.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/button.tsx new file mode 100644 index 0000000000..f56da8824c --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/button.tsx @@ -0,0 +1,58 @@ +import * as React from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cva } from 'class-variance-authority' +import type { VariantProps } from 'class-variance-authority' + +import { cn } from '@/lib/utils' + +const buttonVariants = cva( + 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0', + { + variants: { + variant: { + default: + 'bg-primary text-primary-foreground shadow hover:bg-primary/90', + destructive: + 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90', + outline: + 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground', + secondary: + 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80', + ghost: 'hover:bg-accent hover:text-accent-foreground', + link: 'text-primary underline-offset-4 hover:underline', + }, + size: { + default: 'h-9 px-4 py-2', + sm: 'h-8 rounded-md px-3 text-xs', + lg: 'h-10 rounded-md px-8', + icon: 'h-9 w-9', + }, + }, + defaultVariants: { + variant: 'default', + size: 'default', + }, + }, +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : 'button' + return ( + + ) + }, +) +Button.displayName = 'Button' + +export { Button, buttonVariants } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/calendar.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/calendar.tsx new file mode 100644 index 0000000000..215660fe2d --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/calendar.tsx @@ -0,0 +1,76 @@ +'use client' + +import * as React from 'react' +import { ChevronLeft, ChevronRight } from 'lucide-react' +import { DayPicker } from 'react-day-picker' + +import { cn } from '@/lib/utils' +import { buttonVariants } from '@/components/ui/button' + +export type CalendarProps = React.ComponentProps + +function Calendar({ + className, + classNames, + showOutsideDays = true, + ...props +}: CalendarProps) { + return ( + .day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md' + : '[&:has([aria-selected])]:rounded-md', + ), + day: cn( + buttonVariants({ variant: 'ghost' }), + 'h-8 w-8 p-0 font-normal aria-selected:opacity-100', + ), + day_range_start: 'day-range-start', + day_range_end: 'day-range-end', + day_selected: + 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground', + day_today: 'bg-accent text-accent-foreground', + day_outside: + 'day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground', + day_disabled: 'text-muted-foreground opacity-50', + day_range_middle: + 'aria-selected:bg-accent aria-selected:text-accent-foreground', + day_hidden: 'invisible', + ...classNames, + }} + components={{ + IconLeft: ({ className, ...props }) => ( + + ), + IconRight: ({ className, ...props }) => ( + + ), + }} + {...props} + /> + ) +} +Calendar.displayName = 'Calendar' + +export { Calendar } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/checkbox.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/checkbox.tsx new file mode 100644 index 0000000000..d92bc51ef0 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/checkbox.tsx @@ -0,0 +1,28 @@ +import * as React from 'react' +import * as CheckboxPrimitive from '@radix-ui/react-checkbox' +import { Check } from 'lucide-react' + +import { cn } from '@/lib/utils' + +const Checkbox = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + + +)) +Checkbox.displayName = CheckboxPrimitive.Root.displayName + +export { Checkbox } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/command.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/command.tsx new file mode 100644 index 0000000000..d65f6edb64 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/command.tsx @@ -0,0 +1,151 @@ +import * as React from 'react' +import { Command as CommandPrimitive } from 'cmdk' +import { Search } from 'lucide-react' +import type { DialogProps } from '@radix-ui/react-dialog' + +import { cn } from '@/lib/utils' +import { Dialog, DialogContent } from '@/components/ui/dialog' + +const Command = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +Command.displayName = CommandPrimitive.displayName + +const CommandDialog = ({ children, ...props }: DialogProps) => { + return ( + + + + {children} + + + + ) +} + +const CommandInput = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( +
+ + +
+)) + +CommandInput.displayName = CommandPrimitive.Input.displayName + +const CommandList = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandList.displayName = CommandPrimitive.List.displayName + +const CommandEmpty = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>((props, ref) => ( + +)) + +CommandEmpty.displayName = CommandPrimitive.Empty.displayName + +const CommandGroup = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandGroup.displayName = CommandPrimitive.Group.displayName + +const CommandSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +CommandSeparator.displayName = CommandPrimitive.Separator.displayName + +const CommandItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) + +CommandItem.displayName = CommandPrimitive.Item.displayName + +const CommandShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +CommandShortcut.displayName = 'CommandShortcut' + +export { + Command, + CommandDialog, + CommandInput, + CommandList, + CommandEmpty, + CommandGroup, + CommandItem, + CommandShortcut, + CommandSeparator, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/dialog.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/dialog.tsx new file mode 100644 index 0000000000..105f2b9f40 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/dialog.tsx @@ -0,0 +1,122 @@ +'use client' + +import * as React from 'react' +import * as DialogPrimitive from '@radix-ui/react-dialog' +import { X } from 'lucide-react' + +import { cn } from '@/lib/utils' + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = 'DialogHeader' + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = 'DialogFooter' + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogTrigger, + DialogClose, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/dropdown-menu.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/dropdown-menu.tsx new file mode 100644 index 0000000000..1213c1022a --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/dropdown-menu.tsx @@ -0,0 +1,201 @@ +'use client' + +import * as React from 'react' +import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu' +import { Check, ChevronRight, Circle } from 'lucide-react' + +import { cn } from '@/lib/utils' + +const DropdownMenu = DropdownMenuPrimitive.Root + +const DropdownMenuTrigger = DropdownMenuPrimitive.Trigger + +const DropdownMenuGroup = DropdownMenuPrimitive.Group + +const DropdownMenuPortal = DropdownMenuPrimitive.Portal + +const DropdownMenuSub = DropdownMenuPrimitive.Sub + +const DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup + +const DropdownMenuSubTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, children, ...props }, ref) => ( + + {children} + + +)) +DropdownMenuSubTrigger.displayName = + DropdownMenuPrimitive.SubTrigger.displayName + +const DropdownMenuSubContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSubContent.displayName = + DropdownMenuPrimitive.SubContent.displayName + +const DropdownMenuContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName + +const DropdownMenuItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + svg]:size-4 [&>svg]:shrink-0', + inset && 'pl-8', + className, + )} + {...props} + /> +)) +DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName + +const DropdownMenuCheckboxItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, checked, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuCheckboxItem.displayName = + DropdownMenuPrimitive.CheckboxItem.displayName + +const DropdownMenuRadioItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName + +const DropdownMenuLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & { + inset?: boolean + } +>(({ className, inset, ...props }, ref) => ( + +)) +DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName + +const DropdownMenuSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName + +const DropdownMenuShortcut = ({ + className, + ...props +}: React.HTMLAttributes) => { + return ( + + ) +} +DropdownMenuShortcut.displayName = 'DropdownMenuShortcut' + +export { + DropdownMenu, + DropdownMenuTrigger, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuCheckboxItem, + DropdownMenuRadioItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuShortcut, + DropdownMenuGroup, + DropdownMenuPortal, + DropdownMenuSub, + DropdownMenuSubContent, + DropdownMenuSubTrigger, + DropdownMenuRadioGroup, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/faceted.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/faceted.tsx new file mode 100644 index 0000000000..ff2213e482 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/faceted.tsx @@ -0,0 +1,360 @@ +'use client' + +import { Check, ChevronsUpDown } from 'lucide-react' +import * as React from 'react' + +import { Badge } from '@/components/ui/badge' +import { + Command, + CommandEmpty, + CommandGroup, + CommandInput, + CommandItem, + CommandList, + CommandSeparator, +} from '@/components/ui/command' +import { + Popover, + PopoverContent, + PopoverTrigger, +} from '@/components/ui/popover' +import { composeEventHandlers, useComposedRefs } from '@/lib/composition' +import { cn } from '@/lib/utils' + +const FACETED_NAME = 'Faceted' +const TRIGGER_NAME = 'FacetedTrigger' +const BADGE_LIST_NAME = 'FacetedBadgeList' +const CONTENT_NAME = 'FacetedContent' +const INPUT_NAME = 'FacetedInput' +const LIST_NAME = 'FacetedList' +const EMPTY_NAME = 'FacetedEmpty' +const GROUP_NAME = 'FacetedGroup' +const ITEM_NAME = 'FacetedItem' +const SEPARATOR_NAME = 'FacetedSeparator' + +const ERRORS = { + [FACETED_NAME]: `\`${FACETED_NAME}\` must be used as root component`, + [TRIGGER_NAME]: `\`${TRIGGER_NAME}\` must be within \`${FACETED_NAME}\``, + [BADGE_LIST_NAME]: `\`${BADGE_LIST_NAME}\` must be within \`${FACETED_NAME}\``, + [CONTENT_NAME]: `\`${CONTENT_NAME}\` must be within \`${FACETED_NAME}\``, + [INPUT_NAME]: `\`${INPUT_NAME}\` must be within \`${FACETED_NAME}\``, + [LIST_NAME]: `\`${LIST_NAME}\` must be within \`${FACETED_NAME}\``, + [EMPTY_NAME]: `\`${EMPTY_NAME}\` must be within \`${FACETED_NAME}\``, + [GROUP_NAME]: `\`${GROUP_NAME}\` must be within \`${FACETED_NAME}\``, + [ITEM_NAME]: `\`${ITEM_NAME}\` must be within \`${FACETED_NAME}\``, + [SEPARATOR_NAME]: `\`${SEPARATOR_NAME}\` must be within \`${FACETED_NAME}\``, +} + +type FacetedValue = Multiple extends true + ? Array + : string + +interface FacetedContextValue { + triggerRef: React.RefObject + value?: FacetedValue + onItemSelect?: (value: string) => void + multiple?: Multiple +} + +const FacetedContext = React.createContext | null>( + null, +) + +function useFacetedContext(name: keyof typeof ERRORS) { + const context = React.useContext(FacetedContext) + if (!context) { + throw new Error(ERRORS[name]) + } + return context +} + +interface FacetedProps + extends React.ComponentPropsWithoutRef { + value?: FacetedValue + onValueChange?: (value: FacetedValue | undefined) => void + children?: React.ReactNode + multiple?: Multiple +} + +function Faceted( + props: FacetedProps, +) { + const { + value, + onValueChange, + children, + multiple = false as Multiple, + ...facetedProps + } = props + const [open, setOpen] = React.useState(false) + const triggerRef = React.useRef(null) + const onItemSelect = React.useCallback( + (selectedValue: string) => { + if (!onValueChange) return + + if (multiple) { + const currentValue: Array = Array.isArray(value) ? value : [] + const newValue = currentValue.includes(selectedValue) + ? currentValue.filter((v) => v !== selectedValue) + : [...currentValue, selectedValue] + onValueChange(newValue as FacetedValue) + } else { + if (value === selectedValue) { + onValueChange(undefined) + } else { + onValueChange(selectedValue as FacetedValue) + } + + requestAnimationFrame(() => { + setOpen(false) + }) + } + }, + [multiple, onValueChange, value], + ) + + const contextValue = React.useMemo>( + () => ({ value, onItemSelect, multiple, triggerRef }), + [value, onItemSelect, multiple], + ) + + return ( + + + {children} + + + ) +} +Faceted.displayName = FACETED_NAME + +const FacetedTrigger = React.forwardRef< + React.ComponentRef, + React.ComponentPropsWithoutRef +>((props, forwardedRef) => { + const { className, children, ...triggerProps } = props + + const context = useFacetedContext(TRIGGER_NAME) + const composedRef = useComposedRefs(forwardedRef, context.triggerRef) + + return ( + { + // prevent implicit pointer capture + const target = event.target + if (!(target instanceof Element)) return + if (target.hasPointerCapture(event.pointerId)) { + target.releasePointerCapture(event.pointerId) + } + + // Only prevent default if we're not clicking on the input + // This allows text selection in the input while still preventing focus stealing elsewhere + if ( + event.button === 0 && + event.ctrlKey === false && + event.pointerType === 'mouse' && + !(event.target instanceof HTMLInputElement) + ) { + event.preventDefault() + } + }, + )} + > + {children} + + ) +}) +FacetedTrigger.displayName = TRIGGER_NAME + +interface FacetedBadgeListProps extends React.ComponentPropsWithoutRef<'div'> { + options?: Array<{ label: string; value: string }> + max?: number + badgeClassName?: string + placeholder?: string +} + +const FacetedBadgeList = React.forwardRef< + HTMLDivElement, + FacetedBadgeListProps +>((props, forwardedRef) => { + const { + options = [], + max = 2, + placeholder = 'Select options...', + className, + badgeClassName, + ...badgeListProps + } = props + + const context = useFacetedContext(BADGE_LIST_NAME) + const values = Array.isArray(context.value) + ? context.value + : context.value + ? [context.value] + : [] + + const getLabel = React.useCallback( + (value: string) => { + const option = options.find((opt) => opt.value === value) + return option?.label ?? value + }, + [options], + ) + + if (values.length === 0) { + return ( +
+ {placeholder} + +
+ ) + } + + return ( +
+ {values.length > max ? ( + + {values.length} selected + + ) : ( + values.map((value) => ( + + {value ? getLabel(value) : ''} + + )) + )} +
+ ) +}) +FacetedBadgeList.displayName = BADGE_LIST_NAME + +const FacetedContent = React.forwardRef< + React.ComponentRef, + React.ComponentPropsWithoutRef +>((props, forwardedRef) => { + const { className, children, ...contentProps } = props + + const context = useFacetedContext(CONTENT_NAME) + + return ( + context.triggerRef.current?.focus({ preventScroll: true }), + )} + > + {children} + + ) +}) +FacetedContent.displayName = CONTENT_NAME + +const FacetedInput = CommandInput +FacetedInput.displayName = INPUT_NAME + +const FacetedList = CommandList +FacetedList.displayName = LIST_NAME + +const FacetedEmpty = CommandEmpty +FacetedEmpty.displayName = EMPTY_NAME + +const FacetedGroup = CommandGroup +FacetedGroup.displayName = GROUP_NAME + +interface FacetedItemProps + extends React.ComponentPropsWithoutRef { + value: string +} + +const FacetedItem = React.forwardRef< + React.ComponentRef, + FacetedItemProps +>((props, ref) => { + const { className, children, value, onSelect, ...itemProps } = props + const context = useFacetedContext(ITEM_NAME) + + const isSelected = context.multiple + ? Array.isArray(context.value) && context.value.includes(value) + : context.value === value + + const onItemSelect = React.useCallback( + (currentValue: string) => { + if (onSelect) { + onSelect(currentValue) + } else if (context.onItemSelect) { + context.onItemSelect(currentValue) + } + }, + [onSelect, context.onItemSelect], + ) + + return ( + onItemSelect(value)} + {...itemProps} + ref={ref} + > + + + + {children} + + ) +}) +FacetedItem.displayName = ITEM_NAME + +const FacetedSeparator = CommandSeparator +FacetedSeparator.displayName = SEPARATOR_NAME + +export { + Faceted, + FacetedBadgeList, + FacetedContent, + FacetedEmpty, + FacetedGroup, + FacetedInput, + FacetedItem, + FacetedList, + FacetedSeparator, + FacetedTrigger, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/input.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/input.tsx new file mode 100644 index 0000000000..6c738ffc59 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + }, +) +Input.displayName = 'Input' + +export { Input } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/popover.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/popover.tsx new file mode 100644 index 0000000000..82bbbdb8b3 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/popover.tsx @@ -0,0 +1,31 @@ +import * as React from 'react' +import * as PopoverPrimitive from '@radix-ui/react-popover' + +import { cn } from '@/lib/utils' + +const Popover = PopoverPrimitive.Root + +const PopoverTrigger = PopoverPrimitive.Trigger + +const PopoverAnchor = PopoverPrimitive.Anchor + +const PopoverContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, align = 'center', sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/progress.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/progress.tsx new file mode 100644 index 0000000000..362579c828 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/progress.tsx @@ -0,0 +1,26 @@ +import * as React from 'react' +import * as ProgressPrimitive from '@radix-ui/react-progress' + +import { cn } from '@/lib/utils' + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => ( + + + +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/select.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/select.tsx new file mode 100644 index 0000000000..3eb986d3c9 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/select.tsx @@ -0,0 +1,157 @@ +import * as React from 'react' +import * as SelectPrimitive from '@radix-ui/react-select' +import { Check, ChevronDown, ChevronUp } from 'lucide-react' + +import { cn } from '@/lib/utils' + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1', + className, + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = 'popper', ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/sortable.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/sortable.tsx new file mode 100644 index 0000000000..5de7cb0be8 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/sortable.tsx @@ -0,0 +1,558 @@ +'use client' + +import * as React from 'react' +import * as ReactDOM from 'react-dom' +import { + DndContext, + DragOverlay, + KeyboardSensor, + MouseSensor, + TouchSensor, + closestCenter, + closestCorners, + defaultDropAnimationSideEffects, + useSensor, + useSensors, +} from '@dnd-kit/core' +import { + restrictToHorizontalAxis, + restrictToParentElement, + restrictToVerticalAxis, +} from '@dnd-kit/modifiers' +import { + SortableContext, + arrayMove, + horizontalListSortingStrategy, + sortableKeyboardCoordinates, + useSortable, + verticalListSortingStrategy, +} from '@dnd-kit/sortable' +import { CSS } from '@dnd-kit/utilities' +import { Slot } from '@radix-ui/react-slot' +import type { + Announcements, + DndContextProps, + DragEndEvent, + DraggableSyntheticListeners, + DropAnimation, + ScreenReaderInstructions, + UniqueIdentifier, +} from '@dnd-kit/core' +import type { SortableContextProps } from '@dnd-kit/sortable' + +import { composeEventHandlers, useComposedRefs } from '@/lib/composition' +import { cn } from '@/lib/utils' + +const orientationConfig = { + vertical: { + modifiers: [restrictToVerticalAxis, restrictToParentElement], + strategy: verticalListSortingStrategy, + collisionDetection: closestCenter, + }, + horizontal: { + modifiers: [restrictToHorizontalAxis, restrictToParentElement], + strategy: horizontalListSortingStrategy, + collisionDetection: closestCenter, + }, + mixed: { + modifiers: [restrictToParentElement], + strategy: undefined, + collisionDetection: closestCorners, + }, +} + +const ROOT_NAME = 'Sortable' +const CONTENT_NAME = 'SortableContent' +const ITEM_NAME = 'SortableItem' +const ITEM_HANDLE_NAME = 'SortableItemHandle' +const OVERLAY_NAME = 'SortableOverlay' + +const SORTABLE_ERROR = { + [ROOT_NAME]: `\`${ROOT_NAME}\` components must be within \`${ROOT_NAME}\``, + [CONTENT_NAME]: `\`${CONTENT_NAME}\` must be within \`${ROOT_NAME}\``, + [ITEM_NAME]: `\`${ITEM_NAME}\` must be within \`${CONTENT_NAME}\``, + [ITEM_HANDLE_NAME]: `\`${ITEM_HANDLE_NAME}\` must be within \`${ITEM_NAME}\``, + [OVERLAY_NAME]: `\`${OVERLAY_NAME}\` must be within \`${ROOT_NAME}\``, +} as const + +interface SortableRootContextValue { + id: string + items: Array + modifiers: DndContextProps['modifiers'] + strategy: SortableContextProps['strategy'] + activeId: UniqueIdentifier | null + setActiveId: (id: UniqueIdentifier | null) => void + getItemValue: (item: T) => UniqueIdentifier + flatCursor: boolean +} + +const SortableRootContext = + React.createContext | null>(null) +SortableRootContext.displayName = ROOT_NAME + +function useSortableContext(name: keyof typeof SORTABLE_ERROR) { + const context = React.useContext(SortableRootContext) + if (!context) { + throw new Error(SORTABLE_ERROR[name]) + } + return context +} + +interface GetItemValue { + /** + * Callback that returns a unique identifier for each sortable item. Required for array of objects. + * @example getItemValue={(item) => item.id} + */ + getItemValue: (item: T) => UniqueIdentifier +} + +type SortableProps = DndContextProps & { + value: Array + onValueChange?: (items: Array) => void + onMove?: ( + event: DragEndEvent & { activeIndex: number; overIndex: number }, + ) => void + strategy?: SortableContextProps['strategy'] + orientation?: 'vertical' | 'horizontal' | 'mixed' + flatCursor?: boolean +} & (T extends object ? GetItemValue : Partial>) + +function Sortable(props: SortableProps) { + const { + id = React.useId(), + value, + onValueChange, + modifiers, + strategy, + onMove, + orientation = 'vertical', + flatCursor = false, + getItemValue: getItemValueProp, + accessibility, + ...sortableProps + } = props + const [activeId, setActiveId] = React.useState(null) + const sensors = useSensors( + useSensor(MouseSensor), + useSensor(TouchSensor), + useSensor(KeyboardSensor, { + coordinateGetter: sortableKeyboardCoordinates, + }), + ) + const config = React.useMemo( + () => orientationConfig[orientation], + [orientation], + ) + const getItemValue = React.useCallback( + (item: T): UniqueIdentifier => { + if (typeof item === 'object' && !getItemValueProp) { + throw new Error('getItemValue is required when using array of objects.') + } + return getItemValueProp + ? getItemValueProp(item) + : (item as UniqueIdentifier) + }, + [getItemValueProp], + ) + + const onDragEnd = React.useCallback( + (event: DragEndEvent) => { + const { active, over } = event + if (over && active.id !== over.id) { + const activeIndex = value.findIndex( + (item) => getItemValue(item) === active.id, + ) + const overIndex = value.findIndex( + (item) => getItemValue(item) === over.id, + ) + + if (onMove) { + onMove({ ...event, activeIndex, overIndex }) + } else { + onValueChange?.(arrayMove(value, activeIndex, overIndex)) + } + } + setActiveId(null) + }, + [value, onValueChange, onMove, getItemValue], + ) + + const announcements: Announcements = { + onDragStart({ active }) { + const activeValue = active.id.toString() + return `Grabbed sortable item "${activeValue}". Current position is ${active.data.current?.sortable.index + 1} of ${value.length}. Use arrow keys to move, space to drop.` + }, + onDragOver({ active, over }) { + if (over) { + const overIndex = over.data.current?.sortable.index ?? 0 + const activeIndex = active.data.current?.sortable.index ?? 0 + const moveDirection = overIndex > activeIndex ? 'down' : 'up' + const activeValue = active.id.toString() + return `Sortable item "${activeValue}" moved ${moveDirection} to position ${overIndex + 1} of ${value.length}.` + } + return 'Sortable item is no longer over a droppable area. Press escape to cancel.' + }, + onDragEnd({ active, over }) { + const activeValue = active.id.toString() + if (over) { + const overIndex = over.data.current?.sortable.index ?? 0 + return `Sortable item "${activeValue}" dropped at position ${overIndex + 1} of ${value.length}.` + } + return `Sortable item "${activeValue}" dropped. No changes were made.` + }, + onDragCancel({ active }) { + const activeIndex = active.data.current?.sortable.index ?? 0 + const activeValue = active.id.toString() + return `Sorting cancelled. Sortable item "${activeValue}" returned to position ${activeIndex + 1} of ${value.length}.` + }, + onDragMove({ active, over }) { + if (over) { + const overIndex = over.data.current?.sortable.index ?? 0 + const activeIndex = active.data.current?.sortable.index ?? 0 + const moveDirection = overIndex > activeIndex ? 'down' : 'up' + const activeValue = active.id.toString() + return `Sortable item "${activeValue}" is moving ${moveDirection} to position ${overIndex + 1} of ${value.length}.` + } + return 'Sortable item is no longer over a droppable area. Press escape to cancel.' + }, + } + + const screenReaderInstructions: ScreenReaderInstructions = React.useMemo( + () => ({ + draggable: ` + To pick up a sortable item, press space or enter. + While dragging, use the ${orientation === 'vertical' ? 'up and down' : orientation === 'horizontal' ? 'left and right' : 'arrow'} keys to move the item. + Press space or enter again to drop the item in its new position, or press escape to cancel. + `, + }), + [orientation], + ) + + const items = React.useMemo(() => { + return value.map((item) => getItemValue(item)) + }, [value, getItemValue]) + + const contextValue = React.useMemo( + () => ({ + id, + items, + modifiers: modifiers ?? config.modifiers, + strategy: strategy ?? config.strategy, + activeId, + setActiveId, + getItemValue, + flatCursor, + }), + [ + id, + items, + modifiers, + strategy, + config.modifiers, + config.strategy, + activeId, + getItemValue, + flatCursor, + ], + ) + + return ( + } + > + setActiveId(active.id), + )} + onDragEnd={composeEventHandlers(sortableProps.onDragEnd, onDragEnd)} + onDragCancel={composeEventHandlers(sortableProps.onDragCancel, () => + setActiveId(null), + )} + accessibility={{ + announcements, + screenReaderInstructions, + ...accessibility, + }} + {...sortableProps} + /> + + ) +} + +const SortableContentContext = React.createContext(false) +SortableContentContext.displayName = CONTENT_NAME + +interface SortableContentProps extends React.ComponentPropsWithoutRef<'div'> { + strategy?: SortableContextProps['strategy'] + children: React.ReactNode + asChild?: boolean + withoutSlot?: boolean +} + +const SortableContent = React.forwardRef( + (props, forwardedRef) => { + const { + strategy: strategyProp, + asChild, + withoutSlot, + children, + ...contentProps + } = props + const context = useSortableContext(CONTENT_NAME) + + const ContentSlot = asChild ? Slot : 'div' + + return ( + + + {withoutSlot ? ( + children + ) : ( + + {children} + + )} + + + ) + }, +) +SortableContent.displayName = CONTENT_NAME + +interface SortableItemContextValue { + id: string + attributes: React.HTMLAttributes + listeners: DraggableSyntheticListeners | undefined + setActivatorNodeRef: (node: HTMLElement | null) => void + isDragging?: boolean + disabled?: boolean +} + +const SortableItemContext = + React.createContext(null) +SortableItemContext.displayName = ITEM_NAME + +interface SortableItemProps extends React.ComponentPropsWithoutRef<'div'> { + value: UniqueIdentifier + asHandle?: boolean + asChild?: boolean + disabled?: boolean +} + +const SortableItem = React.forwardRef( + (props, forwardedRef) => { + const { + value, + style, + asHandle, + asChild, + disabled, + className, + ...itemProps + } = props + const inSortableContent = React.useContext(SortableContentContext) + const inSortableOverlay = React.useContext(SortableOverlayContext) + + if (!inSortableContent && !inSortableOverlay) { + throw new Error(SORTABLE_ERROR[ITEM_NAME]) + } + + if (value === '') { + throw new Error(`\`${ITEM_NAME}\` value cannot be an empty string`) + } + + const context = useSortableContext(ITEM_NAME) + const id = React.useId() + const { + attributes, + listeners, + setNodeRef, + setActivatorNodeRef, + transform, + transition, + isDragging, + } = useSortable({ id: value, disabled }) + + const composedRef = useComposedRefs(forwardedRef, (node) => { + if (disabled) return + setNodeRef(node) + if (asHandle) setActivatorNodeRef(node) + }) + + const composedStyle = React.useMemo(() => { + return { + transform: CSS.Translate.toString(transform), + transition, + ...style, + } + }, [transform, transition, style]) + + const itemContext = React.useMemo( + () => ({ + id, + attributes, + listeners, + setActivatorNodeRef, + isDragging, + disabled, + }), + [id, attributes, listeners, setActivatorNodeRef, isDragging, disabled], + ) + + const ItemSlot = asChild ? Slot : 'div' + + return ( + + + + ) + }, +) +SortableItem.displayName = ITEM_NAME + +interface SortableItemHandleProps + extends React.ComponentPropsWithoutRef<'button'> { + asChild?: boolean +} + +const SortableItemHandle = React.forwardRef< + HTMLButtonElement, + SortableItemHandleProps +>((props, forwardedRef) => { + const { asChild, disabled, className, ...itemHandleProps } = props + const itemContext = React.useContext(SortableItemContext) + if (!itemContext) { + throw new Error(SORTABLE_ERROR[ITEM_HANDLE_NAME]) + } + const context = useSortableContext(ITEM_HANDLE_NAME) + + const isDisabled = disabled ?? itemContext.disabled + + const composedRef = useComposedRefs(forwardedRef, (node) => { + if (!isDisabled) return + itemContext.setActivatorNodeRef(node) + }) + + const HandleSlot = asChild ? Slot : 'button' + + return ( + + ) +}) +SortableItemHandle.displayName = ITEM_HANDLE_NAME + +const SortableOverlayContext = React.createContext(false) +SortableOverlayContext.displayName = OVERLAY_NAME + +const dropAnimation: DropAnimation = { + sideEffects: defaultDropAnimationSideEffects({ + styles: { + active: { + opacity: '0.4', + }, + }, + }), +} + +interface SortableOverlayProps + extends Omit, 'children'> { + container?: HTMLElement | DocumentFragment | null + children?: + | ((params: { value: UniqueIdentifier }) => React.ReactNode) + | React.ReactNode +} + +function SortableOverlay(props: SortableOverlayProps) { + const { container: containerProp, children, ...overlayProps } = props + const context = useSortableContext(OVERLAY_NAME) + + const [mounted, setMounted] = React.useState(false) + React.useLayoutEffect(() => setMounted(true), []) + + const container = containerProp ?? (mounted ? globalThis.document.body : null) + + if (!container) return null + + return ReactDOM.createPortal( + + + {context.activeId + ? typeof children === 'function' + ? children({ value: context.activeId }) + : children + : null} + + , + container, + ) +} + +const Root = Sortable +const Content = SortableContent +const Item = SortableItem +const ItemHandle = SortableItemHandle +const Overlay = SortableOverlay + +export { + Content, + Item, + ItemHandle, + Overlay, + // + Root, + Sortable, + SortableContent, + SortableItem, + SortableItemHandle, + SortableOverlay, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/table.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/table.tsx new file mode 100644 index 0000000000..084ecec9c8 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/table.tsx @@ -0,0 +1,120 @@ +import * as React from 'react' + +import { cn } from '@/lib/utils' + +const Table = React.forwardRef< + HTMLTableElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+ + +)) +Table.displayName = 'Table' + +const TableHeader = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableHeader.displayName = 'TableHeader' + +const TableBody = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableBody.displayName = 'TableBody' + +const TableFooter = React.forwardRef< + HTMLTableSectionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + tr]:last:border-b-0', + className, + )} + {...props} + /> +)) +TableFooter.displayName = 'TableFooter' + +const TableRow = React.forwardRef< + HTMLTableRowElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( + +)) +TableRow.displayName = 'TableRow' + +const TableHead = React.forwardRef< + HTMLTableCellElement, + React.ThHTMLAttributes +>(({ className, ...props }, ref) => ( +
[role=checkbox]]:translate-y-[2px]', + className, + )} + {...props} + /> +)) +TableHead.displayName = 'TableHead' + +const TableCell = React.forwardRef< + HTMLTableCellElement, + React.TdHTMLAttributes +>(({ className, ...props }, ref) => ( + [role=checkbox]]:translate-y-[2px]', + className, + )} + {...props} + /> +)) +TableCell.displayName = 'TableCell' + +const TableCaption = React.forwardRef< + HTMLTableCaptionElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +TableCaption.displayName = 'TableCaption' + +export { + Table, + TableHeader, + TableBody, + TableFooter, + TableHead, + TableRow, + TableCell, + TableCaption, +} diff --git a/examples/react/shadcn-kitchen-sink/src/components/ui/tooltip.tsx b/examples/react/shadcn-kitchen-sink/src/components/ui/tooltip.tsx new file mode 100644 index 0000000000..24efa26367 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/components/ui/tooltip.tsx @@ -0,0 +1,30 @@ +import * as React from 'react' +import * as TooltipPrimitive from '@radix-ui/react-tooltip' + +import { cn } from '@/lib/utils' + +const TooltipProvider = TooltipPrimitive.Provider + +const Tooltip = TooltipPrimitive.Root + +const TooltipTrigger = TooltipPrimitive.Trigger + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + + + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } diff --git a/examples/react/shadcn-kitchen-sink/src/lib/composition.ts b/examples/react/shadcn-kitchen-sink/src/lib/composition.ts new file mode 100644 index 0000000000..e3681bb5f3 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/lib/composition.ts @@ -0,0 +1,88 @@ +import * as React from 'react' + +/** + * A utility to compose multiple event handlers into a single event handler. + * Run originalEventHandler first, then ourEventHandler unless prevented. + */ +function composeEventHandlers( + originalEventHandler?: (event: E) => void, + ourEventHandler?: (event: E) => void, + { checkForDefaultPrevented = true } = {}, +) { + return function handleEvent(event: E) { + originalEventHandler?.(event) + + if ( + checkForDefaultPrevented === false || + !(event as unknown as Event).defaultPrevented + ) { + return ourEventHandler?.(event) + } + } +} + +/** + * @see https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx + */ + +type PossibleRef = React.Ref | undefined + +/** + * Set a given ref to a given value. + * This utility takes care of different types of refs: callback refs and RefObject(s). + */ +function setRef(ref: PossibleRef, value: T) { + if (typeof ref === 'function') { + return ref(value) + } + + if (ref !== null && ref !== undefined) { + ref.current = value + } +} + +/** + * A utility to compose multiple refs together. + * Accepts callback refs and RefObject(s). + */ +function composeRefs(...refs: Array>): React.RefCallback { + return (node) => { + let hasCleanup = false + const cleanups = refs.map((ref) => { + const cleanup = setRef(ref, node) + if (!hasCleanup && typeof cleanup === 'function') { + hasCleanup = true + } + return cleanup + }) + + // React <19 will log an error to the console if a callback ref returns a + // value. We don't use ref cleanups internally so this will only happen if a + // user's ref callback returns a value, which we only expect if they are + // using the cleanup functionality added in React 19. + if (hasCleanup) { + return () => { + for (let i = 0; i < cleanups.length; i++) { + const cleanup = cleanups[i] + if (typeof cleanup === 'function') { + cleanup() + } else { + setRef(refs[i], null) + } + } + } + } + } +} + +/** + * A custom hook that composes multiple refs. + * Accepts callback refs and RefObject(s). + */ +function useComposedRefs( + ...refs: Array> +): React.RefCallback { + return React.useCallback(composeRefs(...refs), refs) +} + +export { composeEventHandlers, composeRefs, useComposedRefs } diff --git a/examples/react/shadcn-kitchen-sink/src/lib/data-table.ts b/examples/react/shadcn-kitchen-sink/src/lib/data-table.ts new file mode 100644 index 0000000000..fabd256346 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/lib/data-table.ts @@ -0,0 +1,463 @@ +import { + filterFn_arrIncludes, + filterFn_equals, + filterFn_equalsString, + filterFn_greaterThan, + filterFn_greaterThanOrEqualTo, + filterFn_includesString, + filterFn_lessThan, + filterFn_lessThanOrEqualTo, +} from '@tanstack/react-table' +import type { + ExtendedColumnFilter, + FilterOperator, + JoinOperator, + TableFilterFeatures, +} from '@/types' +import type { + FilterFn, + Row, + RowData, + TableFeatures, +} from '@tanstack/react-table' + +function isFalsy(val: unknown) { + return ( + val === undefined || + val === null || + val === '' || + (Array.isArray(val) && val.length === 0) + ) +} + +function isValidDate(value: unknown): boolean { + if (value instanceof Date) return !isNaN(value.getTime()) + if (typeof value === 'string') return !isNaN(Date.parse(value)) + return false +} + +function toDate(value: unknown): Date | null { + if (value instanceof Date) return value + if (typeof value === 'string') { + const date = new Date(value) + return !isNaN(date.getTime()) ? date : null + } + return null +} + +function isSameDay(date1: Date, date2: Date): boolean { + const date1Str = date1.toISOString().split('T')[0] + const date2Str = date2.toISOString().split('T')[0] + return date1Str === date2Str +} + +const filterFn_enhancedEquals: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (Array.isArray(filterValue)) { + return filterFn_arrIncludes(row, columnId, filterValue) + } + + if (isValidDate(rowValue) && isValidDate(filterValue)) { + const rowDate = toDate(rowValue) + const filterDate = toDate(filterValue) + + if (rowDate && filterDate) { + return isSameDay(rowDate, filterDate) + } + } + + return filterFn_equals(row, columnId, filterValue) +} + +filterFn_enhancedEquals.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_enhancedGreaterThan: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (isValidDate(rowValue) && isValidDate(filterValue)) { + const rowDate = toDate(rowValue) + const filterDate = toDate(filterValue) + + if (rowDate && filterDate) { + return rowDate.getTime() > filterDate.getTime() + } + } + + return filterFn_greaterThan(row, columnId, filterValue) +} + +filterFn_enhancedGreaterThan.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_enhancedGreaterThanOrEqualTo: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (isValidDate(rowValue) && isValidDate(filterValue)) { + const rowDate = toDate(rowValue) + const filterDate = toDate(filterValue) + + if (rowDate && filterDate) { + return rowDate.getTime() >= filterDate.getTime() + } + } + + return filterFn_greaterThanOrEqualTo(row, columnId, filterValue) +} + +filterFn_enhancedGreaterThanOrEqualTo.resolveFilterValue = (val: any) => + isFalsy(val) + +const filterFn_enhancedLessThan: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (isValidDate(rowValue) && isValidDate(filterValue)) { + const rowDate = toDate(rowValue) + const filterDate = toDate(filterValue) + + if (rowDate && filterDate) { + return rowDate.getTime() < filterDate.getTime() + } + } + + return filterFn_lessThan(row, columnId, filterValue) +} + +filterFn_enhancedLessThan.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_enhancedLessThanOrEqualTo: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (isValidDate(rowValue) && isValidDate(filterValue)) { + const rowDate = toDate(rowValue) + const filterDate = toDate(filterValue) + + if (rowDate && filterDate) { + return rowDate.getTime() <= filterDate.getTime() + } + } + + return filterFn_lessThanOrEqualTo(row, columnId, filterValue) +} + +filterFn_enhancedLessThanOrEqualTo.resolveFilterValue = (val: any) => + isFalsy(val) + +const filterFn_startsWith: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: string, +) => { + const value = String(row.getValue(columnId) ?? '').toLowerCase() + return value.startsWith(filterValue.toLowerCase()) +} + +filterFn_startsWith.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_endsWith: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: string, +) => { + const value = String(row.getValue(columnId) ?? '').toLowerCase() + return value.endsWith(filterValue.toLowerCase()) +} + +filterFn_endsWith.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_isEmpty: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, +) => { + const value = row.getValue(columnId) + return ( + value === undefined || + value === null || + value === '' || + (Array.isArray(value) && value.length === 0) + ) +} + +filterFn_isEmpty.resolveFilterValue = (val: any) => isFalsy(val) + +const filterFn_inBetween: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + if (Array.isArray(filterValue)) { + const [min, max] = filterValue + const rowValue: unknown = row.getValue(columnId) + + if (min === undefined || min === '' || min === null) { + return max === undefined || max === '' || max === null + ? true + : typeof rowValue === 'number' && typeof max === 'number' + ? rowValue <= max + : String(rowValue) <= String(max) + } + if (max === undefined || max === '' || max === null) { + return typeof rowValue === 'number' && typeof min === 'number' + ? rowValue >= min + : String(rowValue) >= String(min) + } + + if ( + rowValue instanceof Date || + (typeof rowValue === 'string' && !isNaN(Date.parse(rowValue))) + ) { + const dateValue = new Date(rowValue).getTime() + const minDate = new Date(min as string | Date).getTime() + const maxDate = new Date(max as string | Date).getTime() + return dateValue >= minDate && dateValue <= maxDate + } + + const numValue = Number(rowValue) + return ( + !isNaN(numValue) && numValue >= Number(min) && numValue <= Number(max) + ) + } + return true +} + +filterFn_inBetween.autoRemove = (val: any) => isFalsy(val) + +const filterFn_isRelativeToToday: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, + columnId: string, + filterValue: unknown, +) => { + const rowValue = row.getValue(columnId) + + if (!isValidDate(rowValue)) return false + + const rowDate = toDate(rowValue) + if (!rowDate) return false + + rowDate.setHours(0, 0, 0, 0) + + const today = new Date() + today.setHours(0, 0, 0, 0) + + const diffInDays = Math.floor( + (rowDate.getTime() - today.getTime()) / (1000 * 60 * 60 * 24), + ) + + if (typeof filterValue === 'number') { + return diffInDays === filterValue + } else if (typeof filterValue === 'string') { + const numValue = parseInt(filterValue, 10) + if (!isNaN(numValue)) { + return diffInDays === numValue + } + } else if (Array.isArray(filterValue) && filterValue.length === 2) { + const [min, max] = filterValue + const minDays = typeof min === 'number' ? min : parseInt(min as string, 10) + const maxDays = typeof max === 'number' ? max : parseInt(max as string, 10) + + if (!isNaN(minDays) && !isNaN(maxDays)) { + return diffInDays >= minDays && diffInDays <= maxDays + } + } + + return false +} + +filterFn_isRelativeToToday.autoRemove = (val: any) => isFalsy(val) + +export const dynamicFilterFn: FilterFn = < + TFeatures extends TableFeatures, + TData extends RowData, +>( + row: Row, TData>, + columnId: string, + filterValue: unknown, +) => { + let operator: FilterOperator = 'includesString' + let value = filterValue + let joinOperator: JoinOperator = 'and' + + const filters: Array = row._table + .getState() + .columnFilters.filter((f) => f.id === columnId) + + if (!filters.length) return true + + if (filters[0].joinOperator) { + joinOperator = filters[0].joinOperator + } + + return filters.reduce((pass, filter, index) => { + operator = filter.operator ?? 'includesString' + value = filter.value + + if (isFalsy(value) && operator !== 'isEmpty' && operator !== 'isNotEmpty') { + return pass + } + + let result: boolean + switch (operator) { + case 'includesString': + result = filterFn_includesString(row, columnId, value) + break + case 'notIncludesString': + result = !filterFn_includesString(row, columnId, value) + break + case 'equalsString': + result = filterFn_equalsString(row, columnId, value) + break + case 'notEqualsString': + result = !filterFn_equalsString(row, columnId, value) + break + case 'startsWith': + result = filterFn_startsWith(row, columnId, value) + break + case 'endsWith': + result = filterFn_endsWith(row, columnId, value) + break + case 'isEmpty': + result = filterFn_isEmpty(row, columnId, '') + break + case 'isNotEmpty': + result = !filterFn_isEmpty(row, columnId, '') + break + case 'equals': + result = filterFn_enhancedEquals(row, columnId, value) + break + case 'notEquals': + result = !filterFn_enhancedEquals(row, columnId, value) + break + case 'greaterThan': + result = filterFn_enhancedGreaterThan(row, columnId, value) + break + case 'greaterThanOrEqualTo': + result = filterFn_enhancedGreaterThanOrEqualTo(row, columnId, value) + break + case 'lessThan': + result = filterFn_enhancedLessThan(row, columnId, value) + break + case 'lessThanOrEqualTo': + result = filterFn_enhancedLessThanOrEqualTo(row, columnId, value) + break + case 'inRange': + result = filterFn_inBetween(row, columnId, value) + break + case 'isRelativeToToday': + result = filterFn_isRelativeToToday(row, columnId, value) + break + default: + result = filterFn_includesString(row, columnId, value) + break + } + + if (index === 0) return result + + return joinOperator === 'and' ? pass && result : pass || result + }, true) +} + +export function getFilterOperators(type: string): Array<{ + label: string + value: FilterOperator +}> { + switch (type) { + case 'text': + return [ + { label: 'contains', value: 'includesString' }, + { label: 'does not contain', value: 'notIncludesString' }, + { label: 'starts with', value: 'startsWith' }, + { label: 'ends with', value: 'endsWith' }, + { label: 'is', value: 'equalsString' }, + { label: 'is not', value: 'notEqualsString' }, + { label: 'is empty', value: 'isEmpty' }, + { label: 'is not empty', value: 'isNotEmpty' }, + ] + case 'number': + return [ + { label: 'is', value: 'equals' }, + { label: 'is not', value: 'notEquals' }, + { label: 'is less than', value: 'lessThan' }, + { label: 'is less than or equal to', value: 'lessThanOrEqualTo' }, + { label: 'is greater than', value: 'greaterThan' }, + { label: 'is greater than or equal to', value: 'greaterThanOrEqualTo' }, + { label: 'is between', value: 'inRange' }, + ] + case 'date': + return [ + { label: 'is', value: 'equals' }, + { label: 'is not', value: 'notEquals' }, + { label: 'is before', value: 'lessThan' }, + { label: 'is on or before', value: 'lessThanOrEqualTo' }, + { label: 'is after', value: 'greaterThan' }, + { label: 'is on or after', value: 'greaterThanOrEqualTo' }, + { label: 'is between', value: 'inRange' }, + { label: 'is relative to today', value: 'isRelativeToToday' }, + { label: 'is empty', value: 'isEmpty' }, + { label: 'is not empty', value: 'isNotEmpty' }, + ] + case 'select': + case 'multi-select': + return [ + { label: 'is', value: 'equals' }, + { label: 'is not', value: 'notEquals' }, + { label: 'is empty', value: 'isEmpty' }, + { label: 'is not empty', value: 'isNotEmpty' }, + ] + default: + return [ + { label: 'contains', value: 'includesString' }, + { label: 'does not contain', value: 'notIncludesString' }, + { label: 'is', value: 'equalsString' }, + { label: 'is not', value: 'notEqualsString' }, + ] + } +} diff --git a/examples/react/shadcn-kitchen-sink/src/lib/make-data.ts b/examples/react/shadcn-kitchen-sink/src/lib/make-data.ts new file mode 100644 index 0000000000..8198ee2581 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/lib/make-data.ts @@ -0,0 +1,57 @@ +import { faker } from '@faker-js/faker' + +export const statuses = ['active', 'inactive', 'pending'] as const +export const departments = [ + 'engineering', + 'marketing', + 'finance', + 'sales', + 'hr', +] as const + +export interface Person { + id: string + firstName: string + lastName: string + age: number + email: string + status: (typeof statuses)[number] + department: (typeof departments)[number] + joinDate: Date + subRows?: Array +} + +function range(len: number) { + const arr: Array = [] + for (let i = 0; i < len; i++) { + arr.push(i) + } + return arr +} + +function newPerson(): Person { + return { + id: faker.string.uuid(), + firstName: faker.person.firstName(), + lastName: faker.person.lastName(), + age: faker.number.int({ min: 20, max: 65 }), + email: faker.internet.email(), + status: faker.helpers.arrayElement(statuses), + department: faker.helpers.arrayElement(departments), + joinDate: faker.date.past({ years: 5 }), + } +} + +export function makeData(...lens: Array) { + const makeDataLevel = (depth = 0): Array => { + const len = lens[depth] + return range(len).map((_d): Person => { + return { + ...newPerson(), + subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined, + } + }) + } + + return makeDataLevel() +} diff --git a/examples/react/shadcn-kitchen-sink/src/lib/utils.ts b/examples/react/shadcn-kitchen-sink/src/lib/utils.ts new file mode 100644 index 0000000000..cdabfd3c6d --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/lib/utils.ts @@ -0,0 +1,29 @@ +import { clsx } from 'clsx' +import { twMerge } from 'tailwind-merge' +import type { ClassValue } from 'clsx' + +export function cn(...inputs: Array) { + return twMerge(clsx(inputs)) +} + +export function formatDate( + date: Date | string | number, + opts: Intl.DateTimeFormatOptions = {}, +) { + return new Intl.DateTimeFormat('en-US', { + month: opts.month ?? 'long', + day: opts.day ?? 'numeric', + year: opts.year ?? 'numeric', + ...opts, + }).format(new Date(date)) +} + +export function toSentenceCase(str: string) { + return str + .replace(/_/g, ' ') + .replace(/([A-Z])/g, ' $1') + .toLowerCase() + .replace(/^\w/, (c) => c.toUpperCase()) + .replace(/\s+/g, ' ') + .trim() +} diff --git a/examples/react/shadcn-kitchen-sink/src/main.tsx b/examples/react/shadcn-kitchen-sink/src/main.tsx new file mode 100644 index 0000000000..e06cbffdd4 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/main.tsx @@ -0,0 +1,487 @@ +'use client' + +import * as React from 'react' +import * as ReactDOM from 'react-dom/client' +import '@/styles/globals.css' + +import { + CheckCircle, + ChevronDown, + ChevronUp, + Clock, + Code, + CreditCard, + Megaphone, + MoreHorizontal, + ShoppingCart, + Users, + XCircle, +} from 'lucide-react' +import { + columnFacetingFeature, + columnFilteringFeature, + columnOrderingFeature, + columnResizingFeature, + columnSizingFeature, + columnVisibilityFeature, + createCoreRowModel, + createFacetedRowModel, + createFacetedUniqueValues, + createFilteredRowModel, + createPaginatedRowModel, + createSortedRowModel, + filterFns, + flexRender, + rowPaginationFeature, + rowSelectionFeature, + rowSortingFeature, + sortFns, + tableFeatures, + useTable, +} from '@tanstack/react-table' +import type { Person } from '@/lib/make-data' +import type { + CellData, + ColumnDef, + ColumnSizingState, + RowData, + SortingState, + TableFeatures, +} from '@tanstack/react-table' +import type { ExtendedColumnFilter } from '@/types' +import { Button } from '@/components/ui/button' +import { Checkbox } from '@/components/ui/checkbox' +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table' + +import { departments, makeData, statuses } from '@/lib/make-data' +import { DataTablePagination } from '@/components/data-table/data-table-pagination' +import { DataTableViewOptions } from '@/components/data-table/data-table-view-options' + +import { Badge } from '@/components/ui/badge' +import { + DropdownMenu, + DropdownMenuContent, + DropdownMenuItem, + DropdownMenuLabel, + DropdownMenuSeparator, + DropdownMenuTrigger, +} from '@/components/ui/dropdown-menu' +import { cn, formatDate, toSentenceCase } from '@/lib/utils' +import { DataTableSortList } from '@/components/data-table/data-table-sort-list' +import { DataTableFilterList } from '@/components/data-table/data-table-filter-list' +import { dynamicFilterFn } from '@/lib/data-table' + +declare module '@tanstack/react-table' { + interface ColumnMeta< + TFeatures extends TableFeatures, + TData extends RowData, + TValue extends CellData = CellData, + > { + label?: string + variant?: 'text' | 'number' | 'date' | 'boolean' | 'select' | 'multi-select' + options?: Array<{ label: string; value: string; count?: number }> + } +} + +const _features = tableFeatures({ + rowSortingFeature, + rowPaginationFeature, + rowSelectionFeature, + columnFilteringFeature, + columnFacetingFeature, + columnOrderingFeature, + columnVisibilityFeature, + columnSizingFeature, + columnResizingFeature, +}) + +function App() { + const rerender = React.useReducer(() => ({}), {})[1] + + const [rowSelection, setRowSelection] = React.useState({}) + const [sorting, setSorting] = React.useState([]) + const [columnFilters, setColumnFilters] = React.useState< + Array + >([]) + const [columnVisibility, setColumnVisibility] = React.useState({}) + const [columnSizing, setColumnSizing] = React.useState({}) + + const columns = React.useMemo>>( + () => [ + { + id: 'select', + header: ({ table }) => ( + + table.toggleAllPageRowsSelected(!!value) + } + aria-label="Select all" + className="translate-y-0.5" + /> + ), + cell: ({ row }) => ( + row.toggleSelected(!!value)} + aria-label="Select row" + className="translate-y-0.5" + /> + ), + maxSize: 30, + enableSorting: false, + enableHiding: false, + enableResizing: false, + }, + { + id: 'firstName', + accessorKey: 'firstName', + header: 'First Name', + cell: (info) => String(info.getValue()), + meta: { + label: 'First Name', + variant: 'text', + }, + }, + { + id: 'lastName', + accessorFn: (row) => row.lastName, + header: 'Last Name', + cell: (info) => String(info.getValue()), + meta: { + label: 'Last Name', + variant: 'text', + }, + }, + { + id: 'age', + accessorKey: 'age', + header: 'Age', + cell: (info) => {String(info.getValue())}, + meta: { + label: 'Age', + variant: 'number', + }, + }, + { + id: 'email', + accessorKey: 'email', + header: 'Email', + cell: (info) => info.cell.getValue(), + meta: { + label: 'Email', + variant: 'text', + }, + }, + { + id: 'status', + accessorKey: 'status', + header: 'Status', + cell: (info) => { + const status = info.getValue() + const icons: Record = { + active: , + inactive: , + pending: , + } + + return ( + + {icons[status]} + {toSentenceCase(status)} + + ) + }, + meta: { + label: 'Status', + variant: 'select', + options: statuses.map((status) => ({ + label: toSentenceCase(status), + value: status, + })), + }, + }, + { + id: 'department', + accessorKey: 'department', + header: 'Department', + cell: (info) => { + const department = info.getValue() + const icons: Record = { + engineering: , + marketing: , + sales: , + hr: , + finance: , + } + + return ( + + {icons[department]} + {toSentenceCase(department)} + + ) + }, + meta: { + label: 'Department', + variant: 'multi-select', + options: departments.map((department) => ({ + label: toSentenceCase(department), + value: department, + })), + }, + }, + { + id: 'joinDate', + accessorKey: 'joinDate', + header: 'Join Date', + cell: (info) => formatDate(info.getValue()), + meta: { + label: 'Join Date', + variant: 'date', + }, + }, + { + id: 'actions', + enableHiding: false, + cell: ({ row }) => { + const person = row.original + return ( + + + + + + Actions + navigator.clipboard.writeText(person.id)} + > + Copy ID + + + View details + View profile + + + ) + }, + maxSize: 30, + enableResizing: false, + }, + ], + [], + ) + + const [data, setData] = React.useState(() => makeData(1_000)) + const [columnOrder, setColumnOrder] = React.useState>(() => + columns.map((c) => c.id ?? ''), + ) + + const refreshData = () => setData(() => makeData(100_000)) // stress test + + const table = useTable({ + _features, + _rowModels: { + coreRowModel: createCoreRowModel(), + filteredRowModel: createFilteredRowModel(filterFns), + facetedRowModel: createFacetedRowModel(), + facetedUniqueValues: createFacetedUniqueValues(), + paginatedRowModel: createPaginatedRowModel(), + sortedRowModel: createSortedRowModel(sortFns), + }, + columns, + data, + defaultColumn: { + minSize: 60, + maxSize: 800, + filterFn: dynamicFilterFn, + }, + state: { + rowSelection, + sorting, + columnVisibility, + columnOrder, + columnSizing, + columnFilters, + }, + onSortingChange: setSorting, + onColumnVisibilityChange: setColumnVisibility, + onColumnOrderChange: setColumnOrder, + onColumnSizingChange: setColumnSizing, + onColumnFiltersChange: setColumnFilters, + getRowId: (row) => row.id, + enableRowSelection: true, + onRowSelectionChange: setRowSelection, + columnResizeMode: 'onChange', + debugTable: true, + }) + + const columnSizeVars = React.useMemo(() => { + const headers = table.getFlatHeaders() + const colSizes: { [key: string]: number } = {} + for (const header of headers) { + colSizes[`--header-${header.id}-size`] = header.getSize() + colSizes[`--col-${header.column.id}-size`] = header.column.getSize() + } + return colSizes + }, [table.getState().columnSizing]) + + return ( +
+
+ + + +
+
+
+ + + +
+
+ + + {table.getHeaderGroups().map((headerGroup) => ( + + {headerGroup.headers + .filter((header) => header.column.getIsVisible()) + .map((header) => { + return ( + + {header.isPlaceholder ? null : ( +
+ {flexRender( + header.column.columnDef.header, + header.getContext(), + )} + {header.column.getIsSorted() && ( + <> + {header.column.getIsSorted() === 'asc' ? ( + + ) : ( + + )} + + )} +
+ )} + {header.column.getCanResize() && ( +
header.column.resetSize()} + onMouseDown={header.getResizeHandler()} + onTouchStart={header.getResizeHandler()} + className={cn( + 'absolute right-[-2px] z-10 top-1/2 h-6 w-[3px] -translate-y-1/2 cursor-e-resize select-none touch-none rounded-md transition-colors hover:bg-blue-600 before:absolute before:left-[-4px] before:right-[-4px] before:top-0 before:h-full before:content-[""]', + header.column.getIsResizing() && 'bg-blue-600', + )} + /> + )} + + ) + })} + + ))} + + + {table.getRowModel().rows.map((row) => { + return ( + + {row.getVisibleCells().map((cell) => { + return ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext(), + )} + + ) + })} + + ) + })} + +
+
+ +
+
+ ) +} + +const rootElement = document.getElementById('root') +if (!rootElement) throw new Error('Failed to find the root element') + +ReactDOM.createRoot(rootElement).render( + + + , +) diff --git a/examples/react/shadcn-kitchen-sink/src/styles/globals.css b/examples/react/shadcn-kitchen-sink/src/styles/globals.css new file mode 100644 index 0000000000..d0c38fe2a9 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/styles/globals.css @@ -0,0 +1,68 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; + --chart-1: 12 76% 61%; + --chart-2: 173 58% 39%; + --chart-3: 197 37% 24%; + --chart-4: 43 74% 66%; + --chart-5: 27 87% 67%; + --radius: 0.5rem; + } + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 0 0% 98%; + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + --chart-1: 220 70% 50%; + --chart-2: 160 60% 45%; + --chart-3: 30 80% 55%; + --chart-4: 280 65% 60%; + --chart-5: 340 75% 55%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} diff --git a/examples/react/shadcn-kitchen-sink/src/types/index.ts b/examples/react/shadcn-kitchen-sink/src/types/index.ts new file mode 100644 index 0000000000..4958d1736a --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/src/types/index.ts @@ -0,0 +1,38 @@ +import type { + ColumnFilter, + TableFeatures, + filterFns, +} from '@tanstack/react-table' + +export type TableFilterFeatures = Pick< + TFeatures, + 'columnFilteringFeature' | 'columnFacetingFeature' +> + +export type FilterOperator = + | keyof typeof filterFns + | 'notIncludesString' + | 'notEqualsString' + | 'notEquals' + | 'greaterThan' + | 'notGreaterThan' + | 'greaterThanOrEqualTo' + | 'notGreaterThanOrEqualTo' + | 'lessThan' + | 'notLessThan' + | 'lessThanOrEqualTo' + | 'notLessThanOrEqualTo' + | 'isRelativeToToday' + | 'inRange' + | 'startsWith' + | 'endsWith' + | 'isEmpty' + | 'isNotEmpty' + +export type JoinOperator = 'and' | 'or' + +export interface ExtendedColumnFilter extends ColumnFilter { + filterId?: string + operator?: FilterOperator + joinOperator?: JoinOperator +} diff --git a/examples/react/shadcn-kitchen-sink/tailwind.config.ts b/examples/react/shadcn-kitchen-sink/tailwind.config.ts new file mode 100644 index 0000000000..c418578246 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/tailwind.config.ts @@ -0,0 +1,59 @@ +import type { Config } from 'tailwindcss' + +export default { + darkMode: ['class'], + content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'], + theme: { + extend: { + borderRadius: { + lg: 'var(--radius)', + md: 'calc(var(--radius) - 2px)', + sm: 'calc(var(--radius) - 4px)', + }, + colors: { + background: 'hsl(var(--background))', + foreground: 'hsl(var(--foreground))', + card: { + DEFAULT: 'hsl(var(--card))', + foreground: 'hsl(var(--card-foreground))', + }, + popover: { + DEFAULT: 'hsl(var(--popover))', + foreground: 'hsl(var(--popover-foreground))', + }, + primary: { + DEFAULT: 'hsl(var(--primary))', + foreground: 'hsl(var(--primary-foreground))', + }, + secondary: { + DEFAULT: 'hsl(var(--secondary))', + foreground: 'hsl(var(--secondary-foreground))', + }, + muted: { + DEFAULT: 'hsl(var(--muted))', + foreground: 'hsl(var(--muted-foreground))', + }, + accent: { + DEFAULT: 'hsl(var(--accent))', + foreground: 'hsl(var(--accent-foreground))', + }, + destructive: { + DEFAULT: 'hsl(var(--destructive))', + foreground: 'hsl(var(--destructive-foreground))', + }, + border: 'hsl(var(--border))', + input: 'hsl(var(--input))', + ring: 'hsl(var(--ring))', + chart: { + '1': 'hsl(var(--chart-1))', + '2': 'hsl(var(--chart-2))', + '3': 'hsl(var(--chart-3))', + '4': 'hsl(var(--chart-4))', + '5': 'hsl(var(--chart-5))', + }, + }, + }, + }, + // eslint-disable-next-line import/no-commonjs + plugins: [require('tailwindcss-animate')], +} satisfies Config diff --git a/examples/react/shadcn-kitchen-sink/tsconfig.json b/examples/react/shadcn-kitchen-sink/tsconfig.json new file mode 100644 index 0000000000..255b22450d --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true, + + /* Paths */ + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + "include": ["src", "tailwind.config.ts", "vite.config.js"] +} diff --git a/examples/react/shadcn-kitchen-sink/vite.config.js b/examples/react/shadcn-kitchen-sink/vite.config.js new file mode 100644 index 0000000000..ff2269e1f6 --- /dev/null +++ b/examples/react/shadcn-kitchen-sink/vite.config.js @@ -0,0 +1,23 @@ +import path from 'node:path' +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' +import rollupReplace from '@rollup/plugin-replace' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [ + rollupReplace({ + preventAssignment: true, + values: { + __DEV__: JSON.stringify(true), + 'process.env.NODE_ENV': JSON.stringify('development'), + }, + }), + react(), + ], + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, +}) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 027a9a2110..c0e66f8081 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -16,7 +16,7 @@ importers: version: 11.1.6(size-limit@11.1.6) '@tanstack/config': specifier: 0.14.2 - version: 0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@testing-library/jest-dom': specifier: ^6.6.3 version: 6.6.3 @@ -61,10 +61,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vitest: specifier: ^2.1.8 - version: 2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/angular/basic: dependencies: @@ -101,7 +101,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -153,7 +153,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -205,7 +205,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -254,7 +254,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -309,7 +309,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(x5dhxhgnntm73v76kvurmazh6m) + version: 19.1.5(ux3nvj6tifedgvq34mfas6r2zm) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -376,7 +376,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -431,7 +431,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(x5dhxhgnntm73v76kvurmazh6m) + version: 19.1.5(ux3nvj6tifedgvq34mfas6r2zm) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -507,7 +507,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(x5dhxhgnntm73v76kvurmazh6m) + version: 19.1.5(ux3nvj6tifedgvq34mfas6r2zm) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -559,7 +559,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -605,7 +605,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -666,7 +666,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(bg54tdz6yf55c3ogptzqk5tvqu) + version: 19.1.5(7dz2hkjslxwhczb2zexntq7aka) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@18.19.75)(chokidar@4.0.3) @@ -730,7 +730,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(x5dhxhgnntm73v76kvurmazh6m) + version: 19.1.5(ux3nvj6tifedgvq34mfas6r2zm) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -803,7 +803,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -855,7 +855,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -898,7 +898,7 @@ importers: devDependencies: '@angular/build': specifier: ^19.1.5 - version: 19.1.5(lhizrya3v66nyemuibqrf72rge) + version: 19.1.5(thjppjqgikmsdcvnscnqvb75lq) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -953,7 +953,7 @@ importers: devDependencies: '@angular-devkit/build-angular': specifier: ^19.1.5 - version: 19.1.5(x5dhxhgnntm73v76kvurmazh6m) + version: 19.1.5(ux3nvj6tifedgvq34mfas6r2zm) '@angular/cli': specifier: ^19.1.5 version: 19.1.5(@types/node@22.10.10)(chokidar@4.0.3) @@ -996,7 +996,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/column-sizing: dependencies: @@ -1018,7 +1018,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/filters: dependencies: @@ -1040,7 +1040,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/row-selection: dependencies: @@ -1062,7 +1062,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/sorting: dependencies: @@ -1084,7 +1084,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/sorting-dynamic-data: dependencies: @@ -1106,7 +1106,7 @@ importers: version: 5.4.5 vite: specifier: ^5.3.2 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/lit/virtualized-rows: dependencies: @@ -1131,7 +1131,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/preact/basic: dependencies: @@ -1144,13 +1144,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/preact/sorting: dependencies: @@ -1166,13 +1166,13 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/basic: dependencies: @@ -1182,7 +1182,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) serve: specifier: ^14.2.4 version: 14.2.4 @@ -1191,7 +1191,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/filters: dependencies: @@ -1204,7 +1204,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -1216,7 +1216,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/row-selection: dependencies: @@ -1226,7 +1226,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -1238,7 +1238,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/qwik/sorting: dependencies: @@ -1248,7 +1248,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@faker-js/faker': specifier: ^9.3.0 version: 9.3.0 @@ -1260,7 +1260,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/basic: dependencies: @@ -1285,13 +1285,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/basic-table-helper: dependencies: @@ -1316,13 +1316,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-dnd: dependencies: @@ -1362,13 +1362,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-groups: dependencies: @@ -1393,13 +1393,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-ordering: dependencies: @@ -1427,13 +1427,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning: dependencies: @@ -1461,13 +1461,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning-split: dependencies: @@ -1495,13 +1495,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-pinning-sticky: dependencies: @@ -1529,13 +1529,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-resizing: dependencies: @@ -1560,13 +1560,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-resizing-performant: dependencies: @@ -1594,13 +1594,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-sizing: dependencies: @@ -1625,13 +1625,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/column-visibility: dependencies: @@ -1656,13 +1656,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/custom-features: dependencies: @@ -1690,13 +1690,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/editable-data: dependencies: @@ -1724,13 +1724,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/expanding: dependencies: @@ -1758,13 +1758,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters: dependencies: @@ -1795,13 +1795,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters-faceted: dependencies: @@ -1832,13 +1832,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/filters-fuzzy: dependencies: @@ -1869,13 +1869,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/full-width-resizable-table: dependencies: @@ -1903,13 +1903,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/full-width-table: dependencies: @@ -1937,13 +1937,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/fully-controlled: dependencies: @@ -1971,13 +1971,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/grouping: dependencies: @@ -2005,13 +2005,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/pagination: dependencies: @@ -2039,13 +2039,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/pagination-controlled: dependencies: @@ -2076,13 +2076,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/query-router-search-params: dependencies: @@ -2110,7 +2110,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@tanstack/router-vite-plugin': specifier: ^1.86.0 - version: 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) + version: 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) '@types/react': specifier: ^19.0.1 version: 19.0.2 @@ -2119,13 +2119,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-dnd: dependencies: @@ -2165,13 +2165,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-pinning: dependencies: @@ -2199,13 +2199,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/row-selection: dependencies: @@ -2233,13 +2233,168 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + + examples/react/shadcn-basic: + dependencies: + '@radix-ui/react-slot': + specifier: ^1.1.2 + version: 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@tailwindcss/vite': + specifier: ^4.0.4 + version: 4.0.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) + '@tanstack/react-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/react-table + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + lucide-react: + specifier: ^0.474.0 + version: 0.474.0(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + tailwind-merge: + specifier: ^3.0.1 + version: 3.0.1 + tailwindcss: + specifier: ^4.0.4 + version: 4.0.8 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@4.0.8) + devDependencies: + '@rollup/plugin-replace': + specifier: ^6.0.1 + version: 6.0.2(rollup@4.32.0) + '@types/react': + specifier: ^19.0.1 + version: 19.0.2 + '@types/react-dom': + specifier: ^19.0.1 + version: 19.0.2(@types/react@19.0.2) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) + typescript: + specifier: 5.6.3 + version: 5.6.3 + vite: + specifier: ^5.4.11 + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + + examples/react/shadcn-kitchen-sink: + dependencies: + '@dnd-kit/core': + specifier: ^6.3.1 + version: 6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@dnd-kit/modifiers': + specifier: ^9.0.0 + version: 9.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + '@dnd-kit/sortable': + specifier: ^10.0.0 + version: 10.0.0(@dnd-kit/core@6.3.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(react@19.0.0) + '@dnd-kit/utilities': + specifier: ^3.2.2 + version: 3.2.2(react@19.0.0) + '@radix-ui/react-checkbox': + specifier: ^1.1.4 + version: 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dialog': + specifier: ^1.1.6 + version: 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-dropdown-menu': + specifier: ^2.1.6 + version: 2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-popover': + specifier: ^1.1.6 + version: 1.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-progress': + specifier: ^1.1.2 + version: 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-select': + specifier: ^2.1.6 + version: 2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': + specifier: ^1.1.2 + version: 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-tooltip': + specifier: ^1.1.8 + version: 1.1.8(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@tanstack/react-table': + specifier: ^9.0.0-alpha.10 + version: link:../../../packages/react-table + class-variance-authority: + specifier: ^0.7.1 + version: 0.7.1 + clsx: + specifier: ^2.1.1 + version: 2.1.1 + cmdk: + specifier: 1.0.0 + version: 1.0.0(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + date-fns: + specifier: ^4.1.0 + version: 4.1.0 + lucide-react: + specifier: ^0.475.0 + version: 0.475.0(react@19.0.0) + react: + specifier: ^19.0.0 + version: 19.0.0 + react-day-picker: + specifier: 8.10.1 + version: 8.10.1(date-fns@4.1.0)(react@19.0.0) + react-dom: + specifier: ^19.0.0 + version: 19.0.0(react@19.0.0) + tailwind-merge: + specifier: ^3.0.1 + version: 3.0.1 + tailwindcss-animate: + specifier: ^1.0.7 + version: 1.0.7(tailwindcss@3.4.17) + devDependencies: + '@rollup/plugin-replace': + specifier: ^6.0.1 + version: 6.0.2(rollup@4.32.0) + '@types/react': + specifier: ^19.0.1 + version: 19.0.2 + '@types/react-dom': + specifier: ^19.0.1 + version: 19.0.2(@types/react@19.0.2) + '@vitejs/plugin-react': + specifier: ^4.3.4 + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) + autoprefixer: + specifier: ^10.4.20 + version: 10.4.20(postcss@8.5.1) + postcss: + specifier: ^8.5.1 + version: 8.5.1 + tailwindcss: + specifier: ^3.4.17 + version: 3.4.17 + typescript: + specifier: 5.6.3 + version: 5.6.3 + vite: + specifier: ^5.4.11 + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/sorting: dependencies: @@ -2267,13 +2422,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/sub-components: dependencies: @@ -2301,13 +2456,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-columns: dependencies: @@ -2338,13 +2493,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-columns-experimental: dependencies: @@ -2375,13 +2530,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.4.5 version: 5.4.5 vite: specifier: ^5.3.2 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-infinite-scrolling: dependencies: @@ -2415,13 +2570,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-rows: dependencies: @@ -2452,13 +2607,13 @@ importers: version: 19.0.2(@types/react@19.0.2) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/react/virtualized-rows-experimental: dependencies: @@ -2489,13 +2644,13 @@ importers: version: 18.3.5(@types/react@18.3.18) '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) typescript: specifier: 5.4.5 version: 5.4.5 vite: specifier: ^5.3.2 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/solid/basic: dependencies: @@ -2511,10 +2666,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/basic-table-helper: dependencies: @@ -2530,10 +2685,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-groups: dependencies: @@ -2549,10 +2704,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-ordering: dependencies: @@ -2571,10 +2726,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/column-visibility: dependencies: @@ -2590,10 +2745,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/filters: dependencies: @@ -2615,10 +2770,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/filters-faceted: dependencies: @@ -2640,10 +2795,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/solid/sorting: dependencies: @@ -2662,10 +2817,10 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) examples/svelte/basic: devDependencies: @@ -2674,7 +2829,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2692,7 +2847,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/basic-snippets: devDependencies: @@ -2701,7 +2856,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2719,7 +2874,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/basic-table-helper: devDependencies: @@ -2728,7 +2883,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2746,7 +2901,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-groups: devDependencies: @@ -2755,7 +2910,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2773,7 +2928,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-ordering: devDependencies: @@ -2785,7 +2940,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2803,7 +2958,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-pinning: devDependencies: @@ -2815,7 +2970,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2833,7 +2988,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/column-visibility: devDependencies: @@ -2842,7 +2997,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2860,7 +3015,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/filtering: devDependencies: @@ -2872,7 +3027,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/match-sorter-utils': specifier: ^9.0.0-alpha.4 version: link:../../../packages/match-sorter-utils @@ -2893,7 +3048,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/svelte/sorting: devDependencies: @@ -2905,7 +3060,7 @@ importers: version: 6.0.2(rollup@4.32.0) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@tanstack/svelte-table': specifier: ^9.0.0-alpha.10 version: link:../../../packages/svelte-table @@ -2923,7 +3078,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/basic: dependencies: @@ -2945,7 +3100,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/pagination: dependencies: @@ -2970,7 +3125,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/vanilla/sorting: dependencies: @@ -2995,7 +3150,7 @@ importers: version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) examples/vue/basic: dependencies: @@ -3011,13 +3166,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3039,13 +3194,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3067,13 +3222,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3095,13 +3250,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3123,13 +3278,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3151,13 +3306,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3179,16 +3334,16 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) '@vitejs/plugin-vue-jsx': specifier: ^4.1.1 - version: 4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3210,13 +3365,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3238,13 +3393,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3269,13 +3424,13 @@ importers: version: 22.10.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3)) typescript: specifier: 5.6.3 version: 5.6.3 vite: specifier: ^5.4.11 - version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + version: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue-tsc: specifier: ^2.1.10 version: 2.2.0(typescript@5.6.3) @@ -3291,10 +3446,10 @@ importers: devDependencies: '@analogjs/vite-plugin-angular': specifier: ^1.11.0 - version: 1.13.0(rgq6hujoid62bmeuzktk4sungq) + version: 1.13.0(@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4))(@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq)) '@analogjs/vitest-angular': specifier: ^1.11.0 - version: 1.13.0(@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + version: 1.13.0(@analogjs/vite-plugin-angular@1.13.0(@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4))(@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq)))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@angular/core': specifier: ^19.1.4 version: 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) @@ -3306,7 +3461,7 @@ importers: version: 19.1.4(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) ng-packagr: specifier: ^19.1.2 - version: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + version: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.6.3) typescript: specifier: ~5.6.3 version: 5.6.3 @@ -3335,7 +3490,7 @@ importers: devDependencies: '@preact/preset-vite': specifier: ^2.9.3 - version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) preact: specifier: ^10.25.4 version: 10.25.4 @@ -3348,7 +3503,7 @@ importers: devDependencies: '@builder.io/qwik': specifier: ^1.11.0 - version: 1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) packages/react-table: dependencies: @@ -3367,7 +3522,7 @@ importers: version: 19.0.2 '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) eslint-plugin-react-hooks: specifier: ^5.1.0 version: 5.1.0(eslint@9.17.0(jiti@2.4.2)) @@ -3386,7 +3541,7 @@ importers: version: 1.9.3 vite-plugin-solid: specifier: ^2.11.0 - version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) packages/svelte-table: dependencies: @@ -3399,7 +3554,7 @@ importers: version: 2.3.7(svelte@5.19.3)(typescript@5.7.3) '@sveltejs/vite-plugin-svelte': specifier: ^4.0.4 - version: 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + version: 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) eslint-plugin-svelte: specifier: ^2.46.1 version: 2.46.1(eslint@9.17.0(jiti@2.4.2))(svelte@5.19.3) @@ -3420,7 +3575,7 @@ importers: devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) + version: 5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3)) eslint-plugin-vue: specifier: ^9.32.0 version: 9.32.0(eslint@9.17.0(jiti@2.4.2)) @@ -3433,6 +3588,10 @@ packages: '@adobe/css-tools@4.4.0': resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -4890,6 +5049,21 @@ packages: resolution: {integrity: sha512-r0tJ3ZOkMd9xsu3VRfqlFR6cz0V/jFYRswAIpC+m/DIfAUXq7g8N7wTAlhSANySXYGKzGryfDXwtwsY8TxEIDw==} engines: {node: '>=18.0.0', npm: '>=9.0.0'} + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} + + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} + '@gerrit0/mini-shiki@1.24.4': resolution: {integrity: sha512-YEHW1QeAg6UmxEmswiQbOVEg1CW22b1XUD/lNTliOsu0LD0wqoyleFMnmbTp697QE0pcadQiR5cVtbbAPncvpw==} @@ -5479,120 +5653,642 @@ packages: preact: ^10.4.0 vite: '>=2.0.0' - '@rollup/plugin-json@6.1.0': - resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} - engines: {node: '>=14.0.0'} + '@radix-ui/number@1.1.0': + resolution: {integrity: sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==} + + '@radix-ui/primitive@1.0.1': + resolution: {integrity: sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==} + + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} + + '@radix-ui/react-arrow@1.1.2': + resolution: {integrity: sha512-G+KcpzXHq24iH0uGG/pF8LyzpFJYGD4RfLjCIBfGdSLXvjLHST31RUiRVrupIBMvIppMgSzQ6l66iAxl03tdlg==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/plugin-replace@5.0.7': - resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-checkbox@1.1.4': + resolution: {integrity: sha512-wP0CPAHq+P5I4INKe3hJrIa1WoNqqrejzW+zoU0rOvo1b9gDEJJFl2rYfO1PYJUQCc2H1WZxIJmyv9BS8i5fLw==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/plugin-replace@6.0.2': - resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-collection@1.1.2': + resolution: {integrity: sha512-9z54IEKRxIa9VityapoEYMuByaG42iSy1ZXlY2KcuLSEtq8x4987/N6m15ppoMffgZX72gER2uHe1D9Y6Unlcw==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc peerDependenciesMeta: - rollup: + '@types/react': + optional: true + '@types/react-dom': optional: true - '@rollup/pluginutils@4.2.1': - resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} - engines: {node: '>= 8.0.0'} - - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} - engines: {node: '>=14.0.0'} + '@radix-ui/react-compose-refs@1.0.1': + resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 peerDependenciesMeta: - rollup: + '@types/react': optional: true - '@rollup/rollup-android-arm-eabi@4.29.1': - resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} - cpu: [arm] - os: [android] + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-android-arm-eabi@4.30.1': - resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} - cpu: [arm] - os: [android] + '@radix-ui/react-context@1.0.1': + resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-android-arm-eabi@4.32.0': - resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} - cpu: [arm] - os: [android] + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-android-arm64@4.29.1': - resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} - cpu: [arm64] - os: [android] + '@radix-ui/react-dialog@1.0.5': + resolution: {integrity: sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-android-arm64@4.30.1': - resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} - cpu: [arm64] - os: [android] + '@radix-ui/react-dialog@1.1.6': + resolution: {integrity: sha512-/IVhJV5AceX620DUJ4uYVMymzsipdKBzo3edo+omeskCKGm9FRHM0ebIdbPnlQVJqyuHbuBltQUOG2mOTq2IYw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-android-arm64@4.32.0': - resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} - cpu: [arm64] - os: [android] + '@radix-ui/react-direction@1.1.0': + resolution: {integrity: sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-darwin-arm64@4.29.1': - resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} - cpu: [arm64] - os: [darwin] + '@radix-ui/react-dismissable-layer@1.0.5': + resolution: {integrity: sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-darwin-arm64@4.30.1': - resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} - cpu: [arm64] - os: [darwin] + '@radix-ui/react-dismissable-layer@1.1.5': + resolution: {integrity: sha512-E4TywXY6UsXNRhFrECa5HAvE5/4BFcGyfTyK36gP+pAW1ed7UTK4vKwdr53gAJYwqbfCWC6ATvJa3J3R/9+Qrg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-darwin-arm64@4.32.0': - resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} - cpu: [arm64] - os: [darwin] + '@radix-ui/react-dropdown-menu@2.1.6': + resolution: {integrity: sha512-no3X7V5fD487wab/ZYSHXq3H37u4NVeLDKI/Ks724X/eEFSSEFYZxWgsIlr1UBeEyDaM29HM5x9p1Nv8DuTYPA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-darwin-x64@4.29.1': - resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-focus-guards@1.0.1': + resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-darwin-x64@4.30.1': - resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-darwin-x64@4.32.0': - resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} - cpu: [x64] - os: [darwin] + '@radix-ui/react-focus-scope@1.0.4': + resolution: {integrity: sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-freebsd-arm64@4.29.1': - resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} - cpu: [arm64] - os: [freebsd] + '@radix-ui/react-focus-scope@1.1.2': + resolution: {integrity: sha512-zxwE80FCU7lcXUGWkdt6XpTTCKPitG1XKOwViTxHVKIJhZl9MvIl2dVHeZENCWD9+EdWv05wlaEkRXUykU27RA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true - '@rollup/rollup-freebsd-arm64@4.30.1': - resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} - cpu: [arm64] - os: [freebsd] + '@radix-ui/react-id@1.0.1': + resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true - '@rollup/rollup-freebsd-arm64@4.32.0': - resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} - cpu: [arm64] - os: [freebsd] + '@radix-ui/react-id@1.1.0': + resolution: {integrity: sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-menu@2.1.6': + resolution: {integrity: sha512-tBBb5CXDJW3t2mo9WlO7r6GTmWV0F0uzHZVFmlRmYpiSK1CDU5IKojP1pm7oknpBOrFZx/YgBRW9oorPO2S/Lg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popover@1.1.6': + resolution: {integrity: sha512-NQouW0x4/GnkFJ/pRqsIS3rM/k97VzKnVb2jB7Gq7VEGPy5g7uNV1ykySFt7eWSp3i2uSGFwaJcvIRJBAHmmFg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-popper@1.2.2': + resolution: {integrity: sha512-Rvqc3nOpwseCyj/rgjlJDYAgyfw7OC1tTkKn2ivhaMGcYt8FSBlahHOZak2i3QwkRXUXgGgzeEe2RuqeEHuHgA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.0.4': + resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-portal@1.1.4': + resolution: {integrity: sha512-sn2O9k1rPFYVyKd5LAJfo96JlSGVFpa1fS6UuBJfrZadudiw5tAmru+n1x7aMRQ84qDM71Zh1+SzK5QwU0tJfA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.0.1': + resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@1.0.3': + resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-primitive@2.0.2': + resolution: {integrity: sha512-Ec/0d38EIuvDF+GZjcMU/Ze6MxntVJYO/fRlCPhCaVUyPY9WTalHJw54tp9sXeJo3tlShWpy41vQRgLRGOuz+w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-progress@1.1.2': + resolution: {integrity: sha512-u1IgJFQ4zNAUTjGdDL5dcl/U8ntOR6jsnhxKb5RKp5Ozwl88xKR9EqRZOe/Mk8tnx0x5tNUe2F+MzsyjqMg0MA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-roving-focus@1.1.2': + resolution: {integrity: sha512-zgMQWkNO169GtGqRvYrzb0Zf8NhMHS2DuEB/TiEmVnpr5OqPU3i8lfbxaAmC2J/KYuIQxyoQQ6DxepyXp61/xw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-select@2.1.6': + resolution: {integrity: sha512-T6ajELxRvTuAMWH0YmRJ1qez+x4/7Nq7QIx7zJ0VK3qaEWdnWpNbEDnmWldG1zBDwqrLy5aLMUWcoGirVj5kMg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-slot@1.0.2': + resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-slot@1.1.2': + resolution: {integrity: sha512-YAKxaiGsSQJ38VzKH86/BPRC4rh+b1Jpa+JneA5LRE7skmLPNAyeG8kPJj/oo4STLvlrs8vkf/iYyc3A5stYCQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-tooltip@1.1.8': + resolution: {integrity: sha512-YAA2cu48EkJZdAMHC0dqo9kialOcRStbtiY4nJPaht7Ptrhcvpo+eDChaM6BIs8kL6a8Z5l5poiqLnXcNduOkA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/react-use-callback-ref@1.0.1': + resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-callback-ref@1.1.0': + resolution: {integrity: sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.0.1': + resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-controllable-state@1.1.0': + resolution: {integrity: sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.0.3': + resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-escape-keydown@1.1.0': + resolution: {integrity: sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.0.1': + resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-layout-effect@1.1.0': + resolution: {integrity: sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-previous@1.1.0': + resolution: {integrity: sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-rect@1.1.0': + resolution: {integrity: sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-use-size@1.1.0': + resolution: {integrity: sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + '@radix-ui/react-visually-hidden@1.1.2': + resolution: {integrity: sha512-1SzA4ns2M1aRlvxErqhLHsBHoS5eI5UUcI2awAMgGUp4LoaoWOKYmvqDY2s/tltuPkh3Yk77YF/r3IRj+Amx4Q==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + + '@radix-ui/rect@1.1.0': + resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} + + '@rollup/plugin-json@6.1.0': + resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@5.0.7': + resolution: {integrity: sha512-PqxSfuorkHz/SPpyngLyg5GCEkOcee9M1bkxiVDr41Pd61mqP1PLOoDPbpl44SB2mQGKwV/In74gqQmGITOhEQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/plugin-replace@6.0.2': + resolution: {integrity: sha512-7QaYCf8bqF04dOy7w/eHmJeNExxTYwvKAmlSAH/EaWWUzbT0h5sbF6bktFoX/0F/0qwng5/dWFMyf3gzaM8DsQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/pluginutils@4.2.1': + resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==} + engines: {node: '>= 8.0.0'} + + '@rollup/pluginutils@5.1.0': + resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + + '@rollup/rollup-android-arm-eabi@4.29.1': + resolution: {integrity: sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm-eabi@4.32.0': + resolution: {integrity: sha512-G2fUQQANtBPsNwiVFg4zKiPQyjVKZCUdQUol53R8E71J7AsheRMV/Yv/nB8giOcOVqP7//eB5xPqieBYZe9bGg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.29.1': + resolution: {integrity: sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-android-arm64@4.32.0': + resolution: {integrity: sha512-qhFwQ+ljoymC+j5lXRv8DlaJYY/+8vyvYmVx074zrLsu5ZGWYsJNLjPPVJJjhZQpyAKUGPydOq9hRLLNvh1s3A==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.29.1': + resolution: {integrity: sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-arm64@4.32.0': + resolution: {integrity: sha512-44n/X3lAlWsEY6vF8CzgCx+LQaoqWGN7TzUfbJDiTIOjJm4+L2Yq+r5a8ytQRGyPqgJDs3Rgyo8eVL7n9iW6AQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.29.1': + resolution: {integrity: sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.32.0': + resolution: {integrity: sha512-F9ct0+ZX5Np6+ZDztxiGCIvlCaW87HBdHcozUfsHnj1WCUTBUubAoanhHUfnUHZABlElyRikI0mgcw/qdEm2VQ==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.29.1': + resolution: {integrity: sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-arm64@4.32.0': + resolution: {integrity: sha512-JpsGxLBB2EFXBsTLHfkZDsXSpSmKD3VxXCgBQtlPcuAqB8TlqtLcbeMhxXQkCDv1avgwNjF8uEIbq5p+Cee0PA==} + cpu: [arm64] + os: [freebsd] '@rollup/rollup-freebsd-x64@4.29.1': resolution: {integrity: sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==} @@ -5933,6 +6629,84 @@ packages: svelte: ^5.0.0-next.96 || ^5.0.0 vite: ^5.0.0 + '@tailwindcss/node@4.0.8': + resolution: {integrity: sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==} + + '@tailwindcss/oxide-android-arm64@4.0.8': + resolution: {integrity: sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [android] + + '@tailwindcss/oxide-darwin-arm64@4.0.8': + resolution: {integrity: sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [darwin] + + '@tailwindcss/oxide-darwin-x64@4.0.8': + resolution: {integrity: sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [darwin] + + '@tailwindcss/oxide-freebsd-x64@4.0.8': + resolution: {integrity: sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [freebsd] + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8': + resolution: {integrity: sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==} + engines: {node: '>= 10'} + cpu: [arm] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.8': + resolution: {integrity: sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-arm64-musl@4.0.8': + resolution: {integrity: sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-gnu@4.0.8': + resolution: {integrity: sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-linux-x64-musl@4.0.8': + resolution: {integrity: sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==} + engines: {node: '>= 10'} + cpu: [x64] + os: [linux] + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.8': + resolution: {integrity: sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==} + engines: {node: '>= 10'} + cpu: [arm64] + os: [win32] + + '@tailwindcss/oxide-win32-x64-msvc@4.0.8': + resolution: {integrity: sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==} + engines: {node: '>= 10'} + cpu: [x64] + os: [win32] + + '@tailwindcss/oxide@4.0.8': + resolution: {integrity: sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==} + engines: {node: '>= 10'} + + '@tailwindcss/vite@4.0.8': + resolution: {integrity: sha512-+SAq44yLzYlzyrb7QTcFCdU8Xa7FOA0jp+Xby7fPMUie+MY9HhJysM7Vp+vL8qIp8ceQJfLD+FjgJuJ4lL6nyg==} + peerDependencies: + vite: ^5.2.0 || ^6 + '@tanstack/config@0.14.2': resolution: {integrity: sha512-C431mIFMWgsnQKvmwjysfUbkqGWGtNgXqIcS14h/0QUvwSCx+ctC1UrsvGY08FrNouo/iAExRoOqUbD6cNagPg==} engines: {node: '>=18'} @@ -6642,6 +7416,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -6658,6 +7435,10 @@ packages: argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + aria-hidden@1.2.4: + resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} + engines: {node: '>=10'} + aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} @@ -6841,6 +7622,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + camelcase@7.0.1: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} @@ -6903,6 +7688,9 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -6958,6 +7746,12 @@ packages: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} + cmdk@1.0.0: + resolution: {integrity: sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==} + peerDependencies: + react: ^18.0.0 + react-dom: ^18.0.0 + code-block-writer@12.0.0: resolution: {integrity: sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w==} @@ -7158,6 +7952,9 @@ packages: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} + date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + date-format@4.0.14: resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==} engines: {node: '>=4.0'} @@ -7276,16 +8073,25 @@ packages: resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} engines: {node: '>=8'} + detect-node-es@1.1.0: + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} di@0.0.1: resolution: {integrity: sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==} + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dns-packet@5.6.1: resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==} engines: {node: '>=6'} @@ -7383,6 +8189,10 @@ packages: resolution: {integrity: sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==} engines: {node: '>=10.13.0'} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==} + engines: {node: '>=10.13.0'} + enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} engines: {node: '>=8.6'} @@ -7912,6 +8722,10 @@ packages: resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} + get-nonce@1.0.1: + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} + get-proto@1.0.1: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} @@ -8606,6 +9420,70 @@ packages: resolution: {integrity: sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg==} engines: {node: '>=10.13.0'} + lightningcss-darwin-arm64@1.29.1: + resolution: {integrity: sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [darwin] + + lightningcss-darwin-x64@1.29.1: + resolution: {integrity: sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [darwin] + + lightningcss-freebsd-x64@1.29.1: + resolution: {integrity: sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [freebsd] + + lightningcss-linux-arm-gnueabihf@1.29.1: + resolution: {integrity: sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==} + engines: {node: '>= 12.0.0'} + cpu: [arm] + os: [linux] + + lightningcss-linux-arm64-gnu@1.29.1: + resolution: {integrity: sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-arm64-musl@1.29.1: + resolution: {integrity: sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [linux] + + lightningcss-linux-x64-gnu@1.29.1: + resolution: {integrity: sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-linux-x64-musl@1.29.1: + resolution: {integrity: sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [linux] + + lightningcss-win32-arm64-msvc@1.29.1: + resolution: {integrity: sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==} + engines: {node: '>= 12.0.0'} + cpu: [arm64] + os: [win32] + + lightningcss-win32-x64-msvc@1.29.1: + resolution: {integrity: sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==} + engines: {node: '>= 12.0.0'} + cpu: [x64] + os: [win32] + + lightningcss@1.29.1: + resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==} + engines: {node: '>= 12.0.0'} + lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -8614,6 +9492,10 @@ packages: resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} + engines: {node: '>=14'} + lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} @@ -8721,6 +9603,16 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} + lucide-react@0.474.0: + resolution: {integrity: sha512-CmghgHkh0OJNmxGKWc0qfPJCYHASPMVSyGY8fj3xgk4v84ItqDg64JNKFZn5hC6E0vHi6gxnbCgwhyVB09wQtA==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + + lucide-react@0.475.0: + resolution: {integrity: sha512-NJzvVu1HwFVeZ+Gwq2q00KygM1aBhy/ZrhY9FsAgJtpB+E4R7uxRk9M2iKvHa6/vNxZydIB59htha4c2vvwvVg==} + peerDependencies: + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 + lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -8798,10 +9690,6 @@ packages: micro-memoize@4.1.2: resolution: {integrity: sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==} - micromatch@4.0.7: - resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} - engines: {node: '>=8.6'} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -8974,10 +9862,8 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} nanoid@3.3.8: resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} @@ -9151,6 +10037,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + object-inspect@1.13.3: resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} @@ -9381,10 +10271,18 @@ packages: resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} engines: {node: '>=12'} + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + pify@4.0.1: resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} engines: {node: '>=6'} + pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + piscina@4.8.0: resolution: {integrity: sha512-EZJb+ZxDrQf3dihsUL7p42pjNyrNIFJCrRHPMgxu/svsj+P3xS3fuEWp7k2+rfsavfl1N0G29b1HGs7J0m8rZA==} @@ -9399,6 +10297,18 @@ packages: pkg-types@1.1.1: resolution: {integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==} + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.0.1: + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + postcss-load-config@3.1.4: resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -9411,6 +10321,18 @@ packages: ts-node: optional: true + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-loader@8.1.1: resolution: {integrity: sha512-0IeqyAsG6tYiDRCYKQJLAmgQr47DX6N7sFSWvQxt6AcupX8DIdmykuk/o/tx0Lze3ErGHJEp5OSRxrelC6+NdQ==} engines: {node: '>= 18.12.0'} @@ -9451,6 +10373,12 @@ packages: peerDependencies: postcss: ^8.1.0 + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + postcss-safe-parser@6.0.0: resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -9467,6 +10395,10 @@ packages: resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} engines: {node: '>=4'} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-selector-parser@7.0.0: resolution: {integrity: sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==} engines: {node: '>=4'} @@ -9586,6 +10518,12 @@ packages: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true + react-day-picker@8.10.1: + resolution: {integrity: sha512-TMx7fNbhLk15eqcMt+7Z7S2KF7mfTId/XJDjKE8f+IUcFn0l08/kI4FiYTL/0yuOLmEcbR4Fwe3GJf/NiiMnPA==} + peerDependencies: + date-fns: ^2.28.0 || ^3.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} peerDependencies: @@ -9603,6 +10541,46 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} engines: {node: '>=0.10.0'} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.5.5: + resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + + react-remove-scroll@2.6.3: + resolution: {integrity: sha512-pnAi91oOk8g8ABQKGF5/M9qxmmOPxaAnopyTHYfqYEwJhyFrbbBtHuSgtKEoH0jpcxx5o3hXqH1mNd9/Oi+8iQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -9611,6 +10589,9 @@ packages: resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} engines: {node: '>=0.10.0'} + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -10210,6 +11191,11 @@ packages: style-vendorizer@2.2.3: resolution: {integrity: sha512-/VDRsWvQAgspVy9eATN3z6itKTuyg+jW1q6UoTCQCFRqPDw8bi3E1hXIKnGw5LvXS2AQPuJ7Af4auTLYeBOLEg==} + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + summary@2.1.0: resolution: {integrity: sha512-nMIjMrd5Z2nuB2RZCKJfFMjgS3fygbeyGk9PxPPaJR1RIcyN9yn4A63Isovzm3ZtQuEkLBVgMdPup8UeLH7aQw==} @@ -10266,6 +11252,22 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + tailwind-merge@3.0.1: + resolution: {integrity: sha512-AvzE8FmSoXC7nC+oU5GlQJbip2UO7tmOhOfQyOmPhrStOGXHU08j8mZEHZ4BmCqY5dWTCo4ClWkNyRNx1wpT0g==} + + tailwindcss-animate@1.0.7: + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + peerDependencies: + tailwindcss: '>=3.0.0 || insiders' + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + + tailwindcss@4.0.8: + resolution: {integrity: sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==} + tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -10307,6 +11309,13 @@ packages: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + thingies@1.21.0: resolution: {integrity: sha512-hsqsJsFMsV+aD4s3CWKk85ep/3I9XzYV/IXaSouJMYIoDlgyi11cBhsqYe9/geRfB0YIikBQg6raRaM+nIMP9g==} engines: {node: '>=10.18'} @@ -10405,6 +11414,9 @@ packages: peerDependencies: typescript: '>=4.0.0' + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-morph@21.0.1: resolution: {integrity: sha512-dbDtVdEAncKctzrVZ+Nr7kHpHkv+0JDJb2MjjpBaj8bFeCkePU9rHfMklmhuLFnpeq/EJZk2IhStY6NzqgjOkg==} @@ -10584,6 +11596,26 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} + peerDependencies: + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + use-sync-external-store@1.4.0: resolution: {integrity: sha512-9WXSPC5fMv61vaupRkCKCxsPxBocVnwakBEkMIHHpkTTg6icbJtg6jzgtLDm4bl3cSHAca52rYWih0k4K3PfHw==} peerDependencies: @@ -11067,23 +12099,25 @@ snapshots: '@adobe/css-tools@4.4.0': {} + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq)': + '@analogjs/vite-plugin-angular@1.13.0(@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4))(@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq))': dependencies: ts-morph: 21.0.1 vfile: 6.0.3 optionalDependencies: - '@angular-devkit/build-angular': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) - '@angular/build': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3) + '@angular-devkit/build-angular': 19.1.5(i7gmzsf6glst75kipkokin5yo4) + '@angular/build': 19.1.5(thjppjqgikmsdcvnscnqvb75lq) - '@analogjs/vitest-angular@1.13.0(@analogjs/vite-plugin-angular@1.13.0(rgq6hujoid62bmeuzktk4sungq))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@analogjs/vitest-angular@1.13.0(@analogjs/vite-plugin-angular@1.13.0(@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4))(@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq)))(vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@analogjs/vite-plugin-angular': 1.13.0(rgq6hujoid62bmeuzktk4sungq) - vitest: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + '@analogjs/vite-plugin-angular': 1.13.0(@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4))(@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq)) + vitest: 2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) '@angular-devkit/architect@0.1901.5(chokidar@4.0.3)': dependencies: @@ -11092,14 +12126,14 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/build-angular@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@angular-devkit/build-angular@19.1.5(7dz2hkjslxwhczb2zexntq7aka)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) '@angular-devkit/build-webpack': 0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2)) '@angular-devkit/core': 19.1.5(chokidar@4.0.3) - '@angular/build': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3) - '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + '@angular/build': 19.1.5(dnm4jl3se4zsv6iaryddl2ouhq) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) '@babel/core': 7.26.0 '@babel/generator': 7.26.3 '@babel/helper-annotate-as-pure': 7.25.9 @@ -11110,8 +12144,8 @@ snapshots: '@babel/preset-env': 7.26.0(@babel/core@7.26.0) '@babel/runtime': 7.26.0 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.4.49) babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) @@ -11134,7 +12168,7 @@ snapshots: picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.4.49 - postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) + postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.83.1 @@ -11145,15 +12179,19 @@ snapshots: terser: 5.37.0 tree-kill: 1.2.2 tslib: 2.8.1 - typescript: 5.6.3 + typescript: 5.7.3 webpack: 5.97.1(esbuild@0.24.2) webpack-dev-middleware: 7.4.2(webpack@5.97.1(esbuild@0.24.2)) webpack-dev-server: 5.2.0(webpack@5.97.1(esbuild@0.24.2)) webpack-merge: 6.0.1 webpack-subresource-integrity: 5.1.0(webpack@5.97.1(esbuild@0.24.2)) optionalDependencies: + '@angular/platform-server': 19.1.5(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) esbuild: 0.24.2 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + karma: 6.4.4 + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.7.3) + tailwindcss: 4.0.8 transitivePeerDependencies: - '@angular/compiler' - '@rspack/core' @@ -11176,16 +12214,15 @@ snapshots: - vite - webpack-cli - yaml - optional: true - '@angular-devkit/build-angular@19.1.5(bg54tdz6yf55c3ogptzqk5tvqu)': + '@angular-devkit/build-angular@19.1.5(i7gmzsf6glst75kipkokin5yo4)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) '@angular-devkit/build-webpack': 0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2)) '@angular-devkit/core': 19.1.5(chokidar@4.0.3) - '@angular/build': 19.1.5(6qqtnvpx3gaebcv63ux55wj2zm) - '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@angular/build': 19.1.5(h4dcvtu6bncbpz4db6cfr7gpea) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@babel/core': 7.26.0 '@babel/generator': 7.26.3 '@babel/helper-annotate-as-pure': 7.25.9 @@ -11196,8 +12233,8 @@ snapshots: '@babel/preset-env': 7.26.0(@babel/core@7.26.0) '@babel/runtime': 7.26.0 '@discoveryjs/json-ext': 0.6.3 - '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.4.49) babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) @@ -11220,7 +12257,7 @@ snapshots: picomatch: 4.0.2 piscina: 4.8.0 postcss: 8.4.49 - postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) + postcss-loader: 8.1.1(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)) resolve-url-loader: 5.0.0 rxjs: 7.8.1 sass: 1.83.1 @@ -11231,7 +12268,7 @@ snapshots: terser: 5.37.0 tree-kill: 1.2.2 tslib: 2.8.1 - typescript: 5.7.3 + typescript: 5.6.3 webpack: 5.97.1(esbuild@0.24.2) webpack-dev-middleware: 7.4.2(webpack@5.97.1(esbuild@0.24.2)) webpack-dev-server: 5.2.0(webpack@5.97.1(esbuild@0.24.2)) @@ -11242,7 +12279,8 @@ snapshots: '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) esbuild: 0.24.2 karma: 6.4.4 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.6.3) + tailwindcss: 4.0.8 transitivePeerDependencies: - '@angular/compiler' - '@rspack/core' @@ -11265,14 +12303,15 @@ snapshots: - vite - webpack-cli - yaml + optional: true - '@angular-devkit/build-angular@19.1.5(x5dhxhgnntm73v76kvurmazh6m)': + '@angular-devkit/build-angular@19.1.5(ux3nvj6tifedgvq34mfas6r2zm)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) '@angular-devkit/build-webpack': 0.1901.5(chokidar@4.0.3)(webpack-dev-server@5.2.0(webpack@5.97.1(esbuild@0.24.2)))(webpack@5.97.1(esbuild@0.24.2)) '@angular-devkit/core': 19.1.5(chokidar@4.0.3) - '@angular/build': 19.1.5(j32ndznqywlthzbbz7u4udwz2i) + '@angular/build': 19.1.5(55ge6qf6npuhm5nhcnekxvilru) '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -11285,7 +12324,7 @@ snapshots: '@babel/runtime': 7.26.0 '@discoveryjs/json-ext': 0.6.3 '@ngtools/webpack': 19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(typescript@5.7.3)(webpack@5.97.1(esbuild@0.24.2)) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) ansi-colors: 4.1.3 autoprefixer: 10.4.20(postcss@8.4.49) babel-loader: 9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.24.2)) @@ -11330,7 +12369,8 @@ snapshots: '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) esbuild: 0.24.2 karma: 6.4.4 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.7.3) + tailwindcss: 4.0.8 transitivePeerDependencies: - '@angular/compiler' - '@rspack/core' @@ -11389,7 +12429,7 @@ snapshots: '@angular/core': 19.1.4(rxjs@7.8.1)(zone.js@0.15.0) tslib: 2.8.1 - '@angular/build@19.1.5(6qqtnvpx3gaebcv63ux55wj2zm)': + '@angular/build@19.1.5(55ge6qf6npuhm5nhcnekxvilru)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) @@ -11400,8 +12440,8 @@ snapshots: '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@inquirer/confirm': 5.1.1(@types/node@18.19.75) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@inquirer/confirm': 5.1.1(@types/node@22.10.10) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.24.2 @@ -11418,15 +12458,16 @@ snapshots: sass: 1.83.1 semver: 7.6.3 typescript: 5.7.3 - vite: 6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.1.5(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) less: 4.2.1 lmdb: 3.2.2 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.7.3) postcss: 8.4.49 + tailwindcss: 4.0.8 transitivePeerDependencies: - '@types/node' - chokidar @@ -11440,19 +12481,19 @@ snapshots: - tsx - yaml - '@angular/build@19.1.5(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3))(postcss@8.4.49)(terser@5.37.0)(typescript@5.6.3)': + '@angular/build@19.1.5(dnm4jl3se4zsv6iaryddl2ouhq)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) '@angular-devkit/core': 19.1.5(chokidar@4.0.3) '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) - '@inquirer/confirm': 5.1.1(@types/node@22.10.10) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@inquirer/confirm': 5.1.1(@types/node@18.19.75) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.24.2 @@ -11468,14 +12509,17 @@ snapshots: rollup: 4.30.1 sass: 1.83.1 semver: 7.6.3 - typescript: 5.6.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + typescript: 5.7.3 + vite: 6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: + '@angular/platform-server': 19.1.5(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) + '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) less: 4.2.1 lmdb: 3.2.2 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.7.3) postcss: 8.4.49 + tailwindcss: 4.0.8 transitivePeerDependencies: - '@types/node' - chokidar @@ -11488,21 +12532,20 @@ snapshots: - terser - tsx - yaml - optional: true - '@angular/build@19.1.5(j32ndznqywlthzbbz7u4udwz2i)': + '@angular/build@19.1.5(h4dcvtu6bncbpz4db6cfr7gpea)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) '@angular-devkit/core': 19.1.5(chokidar@4.0.3) '@angular/compiler': 19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)) - '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) + '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@babel/core': 7.26.0 '@babel/helper-annotate-as-pure': 7.25.9 '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) '@inquirer/confirm': 5.1.1(@types/node@22.10.10) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.24.2 @@ -11518,16 +12561,17 @@ snapshots: rollup: 4.30.1 sass: 1.83.1 semver: 7.6.3 - typescript: 5.7.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + typescript: 5.6.3 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.1.5(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) less: 4.2.1 lmdb: 3.2.2 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.6.3) postcss: 8.4.49 + tailwindcss: 4.0.8 transitivePeerDependencies: - '@types/node' - chokidar @@ -11540,8 +12584,9 @@ snapshots: - terser - tsx - yaml + optional: true - '@angular/build@19.1.5(lhizrya3v66nyemuibqrf72rge)': + '@angular/build@19.1.5(thjppjqgikmsdcvnscnqvb75lq)': dependencies: '@ampproject/remapping': 2.3.0 '@angular-devkit/architect': 0.1901.5(chokidar@4.0.3) @@ -11553,7 +12598,7 @@ snapshots: '@babel/helper-split-export-declaration': 7.24.7 '@babel/plugin-syntax-import-attributes': 7.26.0(@babel/core@7.26.0) '@inquirer/confirm': 5.1.1(@types/node@22.10.10) - '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@vitejs/plugin-basic-ssl': 1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) beasties: 0.2.0 browserslist: 4.24.4 esbuild: 0.24.2 @@ -11570,15 +12615,16 @@ snapshots: sass: 1.83.1 semver: 7.6.3 typescript: 5.6.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) watchpack: 2.4.2 optionalDependencies: '@angular/platform-server': 19.1.5(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(@angular/platform-browser@19.1.4(@angular/animations@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(@angular/common@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))(rxjs@7.8.1))(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0))) '@angular/ssr': 19.1.6(7ilfkxcbrvq45ctcibs56h5doi) less: 4.2.1 lmdb: 3.2.2 - ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3) + ng-packagr: 19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.6.3) postcss: 8.5.1 + tailwindcss: 4.0.8 transitivePeerDependencies: - '@types/node' - chokidar @@ -12625,15 +13671,15 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 - '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@builder.io/qwik@1.12.0(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: csstype: 3.1.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) - '@builder.io/qwik@1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@builder.io/qwik@1.12.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: csstype: 3.1.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) '@colors/colors@1.5.0': {} @@ -13067,11 +14113,28 @@ snapshots: '@eslint/plugin-kit@0.2.4': dependencies: - levn: 0.4.1 + levn: 0.4.1 + + '@faker-js/faker@8.4.1': {} + + '@faker-js/faker@9.3.0': {} + + '@floating-ui/core@1.6.9': + dependencies: + '@floating-ui/utils': 0.2.9 + + '@floating-ui/dom@1.6.13': + dependencies: + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 - '@faker-js/faker@8.4.1': {} + '@floating-ui/react-dom@2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/dom': 1.6.13 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) - '@faker-js/faker@9.3.0': {} + '@floating-ui/utils@0.2.9': {} '@gerrit0/mini-shiki@1.24.4': dependencies: @@ -13724,13 +14787,13 @@ snapshots: '@pkgjs/parseargs@0.11.0': optional: true - '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -13739,18 +14802,18 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - preact - supports-color - '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@preact/preset-vite@2.9.4(@babel/core@7.26.0)(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/code-frame': 7.26.2 '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-development': 7.25.9(@babel/core@7.26.0) - '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@prefresh/vite': 2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.26.0) debug: 4.4.0 @@ -13759,42 +14822,562 @@ snapshots: node-html-parser: 6.1.13 source-map: 0.7.4 stack-trace: 1.0.0-pre2 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - preact - supports-color - '@prefresh/babel-plugin@0.5.1': {} + '@prefresh/babel-plugin@0.5.1': {} + + '@prefresh/core@1.5.3(preact@10.25.4)': + dependencies: + preact: 10.25.4 + + '@prefresh/utils@1.2.0': {} + + '@prefresh/vite@2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': + dependencies: + '@babel/core': 7.26.0 + '@prefresh/babel-plugin': 0.5.1 + '@prefresh/core': 1.5.3(preact@10.25.4) + '@prefresh/utils': 1.2.0 + '@rollup/pluginutils': 4.2.1 + preact: 10.25.4 + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + transitivePeerDependencies: + - supports-color + + '@prefresh/vite@2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + dependencies: + '@babel/core': 7.26.0 + '@prefresh/babel-plugin': 0.5.1 + '@prefresh/core': 1.5.3(preact@10.25.4) + '@prefresh/utils': 1.2.0 + '@rollup/pluginutils': 4.2.1 + preact: 10.25.4 + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + transitivePeerDependencies: + - supports-color + + '@radix-ui/number@1.1.0': {} + + '@radix-ui/primitive@1.0.1': + dependencies: + '@babel/runtime': 7.26.0 + + '@radix-ui/primitive@1.1.1': {} + + '@radix-ui/react-arrow@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-checkbox@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-collection@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-compose-refs@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-compose-refs@1.1.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-context@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-context@1.1.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-dialog@1.0.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@19.0.2)(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.5.5(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-dialog@1.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-direction@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-dismissable-layer@1.0.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-dismissable-layer@1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-dropdown-menu@2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-menu': 2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-focus-guards@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-focus-guards@1.1.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-focus-scope@1.0.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-focus-scope@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-id@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-id@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-menu@2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-roving-focus': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-popover@1.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-popper@1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-arrow': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-rect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-size': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/rect': 1.1.0 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-portal@1.0.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-portal@1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-presence@1.0.1(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-presence@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-primitive@1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-slot': 1.0.2(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-primitive@2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-progress@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-roving-focus@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-select@2.1.6(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/number': 1.1.0 + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-direction': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-focus-scope': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-previous': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + aria-hidden: 1.2.4 + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + react-remove-scroll: 2.6.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-slot@1.0.2(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-slot@1.1.2(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-tooltip@1.1.8(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-context': 1.1.1(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-dismissable-layer': 1.1.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-id': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-popper': 1.2.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-portal': 1.1.4(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-slot': 1.1.2(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@19.0.2)(react@19.0.0) + '@radix-ui/react-visually-hidden': 1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/react-use-callback-ref@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-controllable-state@1.0.1(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-escape-keydown@1.0.3(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@babel/runtime': 7.26.0 + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 - '@prefresh/core@1.5.3(preact@10.25.4)': + '@radix-ui/react-use-layout-effect@1.0.1(@types/react@19.0.2)(react@19.0.0)': dependencies: - preact: 10.25.4 + '@babel/runtime': 7.26.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 - '@prefresh/utils@1.2.0': {} + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 - '@prefresh/vite@2.4.6(preact@10.25.4)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@radix-ui/react-use-previous@1.1.0(@types/react@19.0.2)(react@19.0.0)': dependencies: - '@babel/core': 7.26.0 - '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.3(preact@10.25.4) - '@prefresh/utils': 1.2.0 - '@rollup/pluginutils': 4.2.1 - preact: 10.25.4 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - transitivePeerDependencies: - - supports-color + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 - '@prefresh/vite@2.4.6(preact@10.25.4)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@radix-ui/react-use-rect@1.1.0(@types/react@19.0.2)(react@19.0.0)': dependencies: - '@babel/core': 7.26.0 - '@prefresh/babel-plugin': 0.5.1 - '@prefresh/core': 1.5.3(preact@10.25.4) - '@prefresh/utils': 1.2.0 - '@rollup/pluginutils': 4.2.1 - preact: 10.25.4 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - transitivePeerDependencies: - - supports-color + '@radix-ui/rect': 1.1.0 + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-use-size@1.1.0(@types/react@19.0.2)(react@19.0.0)': + dependencies: + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@19.0.2)(react@19.0.0) + react: 19.0.0 + optionalDependencies: + '@types/react': 19.0.2 + + '@radix-ui/react-visually-hidden@1.1.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0)': + dependencies: + '@radix-ui/react-primitive': 2.0.2(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + '@types/react-dom': 19.0.2(@types/react@19.0.2) + + '@radix-ui/rect@1.1.0': {} '@rollup/plugin-json@6.1.0(rollup@4.32.0)': dependencies: @@ -14141,51 +15724,112 @@ snapshots: transitivePeerDependencies: - typescript - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) debug: 4.4.0 svelte: 5.19.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte-inspector@3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte': 4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.0 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)))(svelte@5.19.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.19.3 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + '@sveltejs/vite-plugin-svelte-inspector': 3.0.1(@sveltejs/vite-plugin-svelte@4.0.4(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)))(svelte@5.19.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 5.19.3 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) transitivePeerDependencies: - supports-color - '@tanstack/config@0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@tailwindcss/node@4.0.8': + dependencies: + enhanced-resolve: 5.18.1 + jiti: 2.4.2 + tailwindcss: 4.0.8 + + '@tailwindcss/oxide-android-arm64@4.0.8': + optional: true + + '@tailwindcss/oxide-darwin-arm64@4.0.8': + optional: true + + '@tailwindcss/oxide-darwin-x64@4.0.8': + optional: true + + '@tailwindcss/oxide-freebsd-x64@4.0.8': + optional: true + + '@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8': + optional: true + + '@tailwindcss/oxide-linux-arm64-gnu@4.0.8': + optional: true + + '@tailwindcss/oxide-linux-arm64-musl@4.0.8': + optional: true + + '@tailwindcss/oxide-linux-x64-gnu@4.0.8': + optional: true + + '@tailwindcss/oxide-linux-x64-musl@4.0.8': + optional: true + + '@tailwindcss/oxide-win32-arm64-msvc@4.0.8': + optional: true + + '@tailwindcss/oxide-win32-x64-msvc@4.0.8': + optional: true + + '@tailwindcss/oxide@4.0.8': + optionalDependencies: + '@tailwindcss/oxide-android-arm64': 4.0.8 + '@tailwindcss/oxide-darwin-arm64': 4.0.8 + '@tailwindcss/oxide-darwin-x64': 4.0.8 + '@tailwindcss/oxide-freebsd-x64': 4.0.8 + '@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.8 + '@tailwindcss/oxide-linux-arm64-gnu': 4.0.8 + '@tailwindcss/oxide-linux-arm64-musl': 4.0.8 + '@tailwindcss/oxide-linux-x64-gnu': 4.0.8 + '@tailwindcss/oxide-linux-x64-musl': 4.0.8 + '@tailwindcss/oxide-win32-arm64-msvc': 4.0.8 + '@tailwindcss/oxide-win32-x64-msvc': 4.0.8 + + '@tailwindcss/vite@4.0.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': + dependencies: + '@tailwindcss/node': 4.0.8 + '@tailwindcss/oxide': 4.0.8 + lightningcss: 1.29.1 + tailwindcss: 4.0.8 + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + + '@tanstack/config@0.14.2(@types/node@22.10.2)(esbuild@0.24.2)(eslint@9.17.0(jiti@2.4.2))(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@commitlint/parse': 19.5.0 '@eslint/js': 9.17.0 @@ -14208,9 +15852,9 @@ snapshots: typedoc-plugin-markdown: 4.4.0(typedoc@0.27.6(typescript@5.6.3)) typescript-eslint: 8.19.0(eslint@9.17.0(jiti@2.4.2))(typescript@5.6.3) v8flags: 4.0.1 - vite-plugin-dts: 4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) - vite-plugin-externalize-deps: 0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) - vite-tsconfig-paths: 5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + vite-plugin-dts: 4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) + vite-plugin-externalize-deps: 0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) + vite-tsconfig-paths: 5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) transitivePeerDependencies: - '@types/node' - esbuild @@ -14283,7 +15927,7 @@ snapshots: optionalDependencies: '@tanstack/react-router': 1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0) - '@tanstack/router-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': + '@tanstack/router-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -14304,15 +15948,15 @@ snapshots: unplugin: 1.16.0 zod: 3.23.8 optionalDependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) webpack: 5.97.1(esbuild@0.24.2) transitivePeerDependencies: - '@tanstack/react-router' - supports-color - '@tanstack/router-vite-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': + '@tanstack/router-vite-plugin@1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2))': dependencies: - '@tanstack/router-plugin': 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) + '@tanstack/router-plugin': 1.92.11(@tanstack/react-router@1.92.11(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(webpack@5.97.1(esbuild@0.24.2)) transitivePeerDependencies: - '@rsbuild/core' - '@tanstack/react-router' @@ -14711,59 +16355,54 @@ snapshots: '@typescript-eslint/types': 8.3.0 eslint-visitor-keys: 3.4.3 - '@vitejs/plugin-basic-ssl@1.2.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': - dependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - optional: true - - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - vite: 6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - '@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-basic-ssl@1.2.0(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': + '@vitejs/plugin-react@4.3.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue-jsx@4.1.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-typescript': 7.26.3(@babel/core@7.26.0) '@vue/babel-plugin-jsx': 1.2.5(@babel/core@7.26.0) - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))(vue@3.5.13(typescript@5.6.3))': dependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) vue: 3.5.13(typescript@5.6.3) - '@vitejs/plugin-vue@5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1))(vue@3.5.13(typescript@5.7.3))': dependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) vue: 3.5.13(typescript@5.7.3) '@vitest/expect@2.1.8': @@ -14773,21 +16412,21 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) - '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0))': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) '@vitest/pretty-format@2.1.8': dependencies: @@ -14878,7 +16517,7 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.11 - postcss: 8.4.49 + postcss: 8.5.1 source-map-js: 1.2.0 '@vue/compiler-ssr@3.5.13': @@ -15167,6 +16806,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -15182,6 +16823,10 @@ snapshots: argparse@2.0.1: {} + aria-hidden@1.2.4: + dependencies: + tslib: 2.8.1 + aria-query@5.3.0: dependencies: dequal: 2.0.3 @@ -15210,6 +16855,16 @@ snapshots: postcss: 8.4.49 postcss-value-parser: 4.2.0 + autoprefixer@10.4.20(postcss@8.5.1): + dependencies: + browserslist: 4.24.4 + caniuse-lite: 1.0.30001695 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + axios@1.7.9: dependencies: follow-redirects: 1.15.6 @@ -15410,6 +17065,8 @@ snapshots: callsites@3.1.0: {} + camelcase-css@2.0.1: {} + camelcase@7.0.1: {} caniuse-lite@1.0.30001695: {} @@ -15472,6 +17129,10 @@ snapshots: chrome-trace-event@1.0.4: {} + class-variance-authority@0.7.1: + dependencies: + clsx: 2.1.1 + clean-stack@2.2.0: {} cli-boxes@3.0.0: {} @@ -15523,6 +17184,16 @@ snapshots: clsx@2.1.1: {} + cmdk@1.0.0(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0): + dependencies: + '@radix-ui/react-dialog': 1.0.5(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@19.0.2(@types/react@19.0.2))(@types/react@19.0.2)(react-dom@19.0.0(react@19.0.0))(react@19.0.0) + react: 19.0.0 + react-dom: 19.0.0(react@19.0.0) + transitivePeerDependencies: + - '@types/react' + - '@types/react-dom' + code-block-writer@12.0.0: {} color-convert@1.9.3: @@ -15744,6 +17415,8 @@ snapshots: whatwg-mimetype: 4.0.0 whatwg-url: 14.0.0 + date-fns@4.1.0: {} + date-format@4.0.14: {} de-indent@1.0.2: {} @@ -15805,18 +17478,23 @@ snapshots: detect-file@1.0.0: {} - detect-libc@1.0.3: - optional: true + detect-libc@1.0.3: {} detect-libc@2.0.3: optional: true + detect-node-es@1.1.0: {} + detect-node@2.1.0: {} di@0.0.1: {} + didyoumean@1.2.2: {} + diff-sequences@29.6.3: {} + dlv@1.1.3: {} + dns-packet@5.6.1: dependencies: '@leichtgewicht/ip-codec': 2.0.5 @@ -15930,6 +17608,11 @@ snapshots: graceful-fs: 4.2.11 tapable: 2.2.1 + enhanced-resolve@5.18.1: + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + enquirer@2.3.6: dependencies: ansi-colors: 4.1.3 @@ -16259,9 +17942,9 @@ snapshots: eslint-compat-utils: 0.5.1(eslint@9.17.0(jiti@2.4.2)) esutils: 2.0.3 known-css-properties: 0.35.0 - postcss: 8.4.49 - postcss-load-config: 3.1.4(postcss@8.4.49) - postcss-safe-parser: 6.0.0(postcss@8.4.49) + postcss: 8.5.1 + postcss-load-config: 3.1.4(postcss@8.5.1) + postcss-safe-parser: 6.0.0(postcss@8.5.1) postcss-selector-parser: 6.1.0 semver: 7.6.3 svelte-eslint-parser: 0.43.0(svelte@5.19.3) @@ -16482,7 +18165,7 @@ snapshots: '@nodelib/fs.walk': 1.2.8 glob-parent: 5.1.2 merge2: 1.4.1 - micromatch: 4.0.7 + micromatch: 4.0.8 fast-glob@3.3.3: dependencies: @@ -16683,6 +18366,8 @@ snapshots: hasown: 2.0.2 math-intrinsics: 1.1.0 + get-nonce@1.0.1: {} + get-proto@1.0.1: dependencies: dunder-proto: 1.0.1 @@ -17422,10 +19107,57 @@ snapshots: rechoir: 0.8.0 resolve: 1.22.10 + lightningcss-darwin-arm64@1.29.1: + optional: true + + lightningcss-darwin-x64@1.29.1: + optional: true + + lightningcss-freebsd-x64@1.29.1: + optional: true + + lightningcss-linux-arm-gnueabihf@1.29.1: + optional: true + + lightningcss-linux-arm64-gnu@1.29.1: + optional: true + + lightningcss-linux-arm64-musl@1.29.1: + optional: true + + lightningcss-linux-x64-gnu@1.29.1: + optional: true + + lightningcss-linux-x64-musl@1.29.1: + optional: true + + lightningcss-win32-arm64-msvc@1.29.1: + optional: true + + lightningcss-win32-x64-msvc@1.29.1: + optional: true + + lightningcss@1.29.1: + dependencies: + detect-libc: 1.0.3 + optionalDependencies: + lightningcss-darwin-arm64: 1.29.1 + lightningcss-darwin-x64: 1.29.1 + lightningcss-freebsd-x64: 1.29.1 + lightningcss-linux-arm-gnueabihf: 1.29.1 + lightningcss-linux-arm64-gnu: 1.29.1 + lightningcss-linux-arm64-musl: 1.29.1 + lightningcss-linux-x64-gnu: 1.29.1 + lightningcss-linux-x64-musl: 1.29.1 + lightningcss-win32-arm64-msvc: 1.29.1 + lightningcss-win32-x64-msvc: 1.29.1 + lilconfig@2.1.0: {} lilconfig@3.1.2: {} + lilconfig@3.1.3: {} + lines-and-columns@1.2.4: {} lines-and-columns@2.0.3: {} @@ -17560,6 +19292,14 @@ snapshots: dependencies: yallist: 4.0.0 + lucide-react@0.474.0(react@19.0.0): + dependencies: + react: 19.0.0 + + lucide-react@0.475.0(react@19.0.0): + dependencies: + react: 19.0.0 + lunr@2.3.9: {} magic-string@0.30.11: @@ -17644,11 +19384,6 @@ snapshots: micro-memoize@4.1.2: {} - micromatch@4.0.7: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -17805,7 +19540,11 @@ snapshots: mute-stream@2.0.0: {} - nanoid@3.3.7: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 nanoid@3.3.8: {} @@ -17833,7 +19572,7 @@ snapshots: neo-async@2.6.2: {} - ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tslib@2.8.1)(typescript@5.6.3): + ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.6.3): dependencies: '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.6.3) '@rollup/plugin-json': 6.1.0(rollup@4.32.0) @@ -17860,8 +19599,9 @@ snapshots: typescript: 5.6.3 optionalDependencies: rollup: 4.32.0 + tailwindcss: 4.0.8 - ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tslib@2.8.1)(typescript@5.7.3): + ng-packagr@19.1.2(@angular/compiler-cli@19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3))(tailwindcss@4.0.8)(tslib@2.8.1)(typescript@5.7.3): dependencies: '@angular/compiler-cli': 19.1.4(@angular/compiler@19.1.4(@angular/core@19.1.4(rxjs@7.8.1)(zone.js@0.15.0)))(typescript@5.7.3) '@rollup/plugin-json': 6.1.0(rollup@4.32.0) @@ -17888,6 +19628,7 @@ snapshots: typescript: 5.7.3 optionalDependencies: rollup: 4.32.0 + tailwindcss: 4.0.8 optional: true no-case@3.0.4: @@ -18066,6 +19807,8 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + object-inspect@1.13.3: {} object.defaults@1.1.0: @@ -18310,9 +20053,13 @@ snapshots: picomatch@4.0.2: {} + pify@2.3.0: {} + pify@4.0.1: optional: true + pirates@4.0.6: {} + piscina@4.8.0: optionalDependencies: '@napi-rs/nice': 1.0.1 @@ -18331,12 +20078,31 @@ snapshots: mlly: 1.7.1 pathe: 1.1.2 - postcss-load-config@3.1.4(postcss@8.4.49): + postcss-import@15.1.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.0.1(postcss@8.5.1): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.1 + + postcss-load-config@3.1.4(postcss@8.5.1): dependencies: lilconfig: 2.1.0 yaml: 1.10.2 optionalDependencies: - postcss: 8.4.49 + postcss: 8.5.1 + + postcss-load-config@4.0.2(postcss@8.5.1): + dependencies: + lilconfig: 3.1.3 + yaml: 2.6.1 + optionalDependencies: + postcss: 8.5.1 postcss-loader@8.1.1(postcss@8.4.49)(typescript@5.6.3)(webpack@5.97.1(esbuild@0.24.2)): dependencies: @@ -18384,9 +20150,14 @@ snapshots: icss-utils: 5.1.0(postcss@8.5.1) postcss: 8.5.1 - postcss-safe-parser@6.0.0(postcss@8.4.49): + postcss-nested@6.2.0(postcss@8.5.1): dependencies: - postcss: 8.4.49 + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 + + postcss-safe-parser@6.0.0(postcss@8.5.1): + dependencies: + postcss: 8.5.1 postcss-scss@4.0.9(postcss@8.5.1): dependencies: @@ -18397,6 +20168,11 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-selector-parser@7.0.0: dependencies: cssesc: 3.0.0 @@ -18406,7 +20182,7 @@ snapshots: postcss@8.4.49: dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -18502,6 +20278,11 @@ snapshots: minimist: 1.2.8 strip-json-comments: 2.0.1 + react-day-picker@8.10.1(date-fns@4.1.0)(react@19.0.0): + dependencies: + date-fns: 4.1.0 + react: 19.0.0 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 @@ -18523,12 +20304,54 @@ snapshots: react-refresh@0.14.2: {} + react-remove-scroll-bar@2.3.8(@types/react@19.0.2)(react@19.0.0): + dependencies: + react: 19.0.0 + react-style-singleton: 2.2.3(@types/react@19.0.2)(react@19.0.0) + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.2 + + react-remove-scroll@2.5.5(@types/react@19.0.2)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.2)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.2)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.2)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + + react-remove-scroll@2.6.3(@types/react@19.0.2)(react@19.0.0): + dependencies: + react: 19.0.0 + react-remove-scroll-bar: 2.3.8(@types/react@19.0.2)(react@19.0.0) + react-style-singleton: 2.2.3(@types/react@19.0.2)(react@19.0.0) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@19.0.2)(react@19.0.0) + use-sidecar: 1.1.3(@types/react@19.0.2)(react@19.0.0) + optionalDependencies: + '@types/react': 19.0.2 + + react-style-singleton@2.2.3(@types/react@19.0.2)(react@19.0.0): + dependencies: + get-nonce: 1.0.1 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.2 + react@18.3.1: dependencies: loose-envify: 1.4.0 react@19.0.0: {} + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + readable-stream@2.3.8: dependencies: core-util-is: 1.0.3 @@ -19249,6 +21072,16 @@ snapshots: style-vendorizer@2.2.3: {} + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + commander: 4.1.1 + glob: 10.4.2 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + summary@2.1.0: {} supports-color@5.5.0: @@ -19329,6 +21162,45 @@ snapshots: symbol-tree@3.2.4: {} + tailwind-merge@3.0.1: {} + + tailwindcss-animate@1.0.7(tailwindcss@3.4.17): + dependencies: + tailwindcss: 3.4.17 + + tailwindcss-animate@1.0.7(tailwindcss@4.0.8): + dependencies: + tailwindcss: 4.0.8 + + tailwindcss@3.4.17: + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + + tailwindcss@4.0.8: {} + tapable@2.2.1: {} tar-stream@2.2.0: @@ -19377,6 +21249,14 @@ snapshots: text-extensions@2.4.0: {} + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + thingies@1.21.0(tslib@2.8.1): dependencies: tslib: 2.8.1 @@ -19453,6 +21333,8 @@ snapshots: minimatch: 10.0.1 typescript: 5.7.3 + ts-interface-checker@0.1.13: {} + ts-morph@21.0.1: dependencies: '@ts-morph/common': 0.22.0 @@ -19603,6 +21485,21 @@ snapshots: dependencies: punycode: 2.3.1 + use-callback-ref@1.3.3(@types/react@19.0.2)(react@19.0.0): + dependencies: + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.2 + + use-sidecar@1.1.3(@types/react@19.0.2)(react@19.0.0): + dependencies: + detect-node-es: 1.1.0 + react: 19.0.0 + tslib: 2.8.1 + optionalDependencies: + '@types/react': 19.0.2 + use-sync-external-store@1.4.0(react@19.0.0): dependencies: react: 19.0.0 @@ -19640,13 +21537,13 @@ snapshots: '@types/unist': 3.0.2 vfile-message: 4.0.2 - vite-node@2.1.8(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -19658,13 +21555,13 @@ snapshots: - supports-color - terser - vite-node@2.1.8(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vite-node@2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - less @@ -19676,7 +21573,7 @@ snapshots: - supports-color - terser - vite-plugin-dts@4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): + vite-plugin-dts@4.0.3(@types/node@22.10.2)(rollup@4.32.0)(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)): dependencies: '@microsoft/api-extractor': 7.47.4(@types/node@22.10.2) '@rollup/pluginutils': 5.1.0(rollup@4.32.0) @@ -19690,17 +21587,17 @@ snapshots: typescript: 5.6.3 vue-tsc: 2.0.29(typescript@5.6.3) optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite-plugin-externalize-deps@0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): + vite-plugin-externalize-deps@0.8.0(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)): dependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) - vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): + vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)): dependencies: '@babel/core': 7.24.7 '@types/babel__core': 7.20.5 @@ -19708,14 +21605,14 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + vitefu: 1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): + vite-plugin-solid@2.11.0(@testing-library/jest-dom@6.6.3)(solid-js@1.9.3)(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): dependencies: '@babel/core': 7.24.7 '@types/babel__core': 7.20.5 @@ -19723,25 +21620,25 @@ snapshots: merge-anything: 5.1.7 solid-js: 1.9.3 solid-refresh: 0.6.3(solid-js@1.9.3) - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vitefu: 1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)) optionalDependencies: '@testing-library/jest-dom': 6.6.3 transitivePeerDependencies: - supports-color - vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): + vite-tsconfig-paths@5.1.4(typescript@5.6.3)(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.1(typescript@5.6.3) optionalDependencies: - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -19750,10 +21647,11 @@ snapshots: '@types/node': 22.10.10 fsevents: 2.3.3 less: 4.2.1 + lightningcss: 1.29.1 sass: 1.83.1 terser: 5.37.0 - vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -19762,10 +21660,11 @@ snapshots: '@types/node': 22.10.2 fsevents: 2.3.3 less: 4.2.1 + lightningcss: 1.29.1 sass: 1.83.1 terser: 5.37.0 - vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): + vite@6.0.11(@types/node@18.19.75)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.5.1 @@ -19775,12 +21674,13 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.1 + lightningcss: 1.29.1 sass: 1.83.1 terser: 5.37.0 tsx: 4.19.2 yaml: 2.6.1 - vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): + vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1): dependencies: esbuild: 0.24.2 postcss: 8.5.1 @@ -19790,23 +21690,24 @@ snapshots: fsevents: 2.3.3 jiti: 2.4.2 less: 4.2.1 + lightningcss: 1.29.1 sass: 1.83.1 terser: 5.37.0 tsx: 4.19.2 yaml: 2.6.1 - vitefu@1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)): + vitefu@1.0.4(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)): optionalDependencies: - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) - vitefu@1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): + vitefu@1.0.4(vite@6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1)): optionalDependencies: - vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) + vite: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)(tsx@4.19.2)(yaml@2.6.1) - vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vitest@2.1.8(@types/node@22.10.10)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -19822,8 +21723,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.10.10)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.10)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.10 @@ -19839,10 +21740,10 @@ snapshots: - supports-color - terser - vitest@2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(sass@1.83.1)(terser@5.37.0): + vitest@2.1.8(@types/node@22.10.2)(jsdom@25.0.1)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0)) + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -19858,8 +21759,8 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 1.2.0 - vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) - vite-node: 2.1.8(@types/node@22.10.2)(less@4.2.1)(sass@1.83.1)(terser@5.37.0) + vite: 5.4.11(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) + vite-node: 2.1.8(@types/node@22.10.2)(less@4.2.1)(lightningcss@1.29.1)(sass@1.83.1)(terser@5.37.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 22.10.2