@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.59.1 → 0.5.0-beta.61.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js +140 -0
- package/dist/components/composed/PlateMapEditor/ManifestFilterPopover.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js +126 -0
- package/dist/components/composed/PlateMapEditor/PlateMapActionsMenu.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js +422 -0
- package/dist/components/composed/PlateMapEditor/PlateMapEditor.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js +136 -0
- package/dist/components/composed/PlateMapEditor/PlateMapPlateSelector.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js +389 -0
- package/dist/components/composed/PlateMapEditor/PlatePaintGrid.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js +54 -0
- package/dist/components/composed/PlateMapEditor/PlateZoomControl.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js +96 -0
- package/dist/components/composed/PlateMapEditor/TemplateIOPanel.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js +58 -0
- package/dist/components/composed/PlateMapEditor/WellLegend.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js +421 -0
- package/dist/components/composed/PlateMapEditor/WellManifestTable.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js +177 -0
- package/dist/components/composed/PlateMapEditor/WellMetadataForm.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/autoFill.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/autoFill.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/autoFill.js +41 -0
- package/dist/components/composed/PlateMapEditor/autoFill.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.cjs +4 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.js +103 -0
- package/dist/components/composed/PlateMapEditor/csvPlateTriage.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/helpers.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/helpers.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/helpers.js +11 -0
- package/dist/components/composed/PlateMapEditor/helpers.js.map +1 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.cjs +2 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.cjs.map +1 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.js +56 -0
- package/dist/components/composed/PlateMapEditor/wellGrid.js.map +1 -0
- package/dist/components/ui/data-table/data-table.cjs +1 -1
- package/dist/components/ui/data-table/data-table.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table.js +1 -0
- package/dist/components/ui/data-table/data-table.js.map +1 -1
- package/dist/components/ui/popover.cjs +2 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.js +45 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +555 -0
- package/dist/index.js +637 -595
- package/dist/index.js.map +1 -1
- package/dist/index.tailwind.css +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.js","sources":["../../../../src/components/ui/data-table/data-table.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n DragOverlay,\n type DragStartEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToHorizontalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n horizontalListSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport {\n type ColumnDef,\n type ColumnOrderState,\n type Header,\n type PaginationState,\n type RowData,\n type SortingState,\n type Table as TanStackTable,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon, ChevronDownIcon, ChevronRightIcon, GripVerticalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { DataTablePagination } from \"./data-table-pagination\"\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Module augmentation — column meta\n// ---------------------------------------------------------------------------\n\ndeclare module \"@tanstack/react-table\" {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n truncate?: boolean\n }\n}\n\n// ---------------------------------------------------------------------------\n// Filter types\n// ---------------------------------------------------------------------------\n\ntype FilterOperator =\n | \"contains\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"ends_with\"\n | \"is_empty\"\n | \"is_not_empty\"\n\ninterface FilterCondition {\n /** Stable unique key for React reconciliation. */\n id: string\n columnId: string\n operator: FilterOperator\n value: string\n}\n\ninterface FilterColumnConfig {\n columnId: string\n label?: string\n operators?: FilterOperator[]\n}\n\n// ---------------------------------------------------------------------------\n// Grouping types\n// ---------------------------------------------------------------------------\n\ninterface GroupColumnConfig {\n columnId: string\n label?: string\n}\n\nfunction applyFilterCondition(\n cellValue: string,\n operator: FilterOperator,\n filterValue: string,\n): boolean {\n const cell = cellValue.toLowerCase().trim()\n const filter = filterValue.toLowerCase().trim()\n switch (operator) {\n case \"contains\": return cell.includes(filter)\n case \"equals\": return cell === filter\n case \"not_equals\": return cell !== filter\n case \"starts_with\": return cell.startsWith(filter)\n case \"ends_with\": return cell.endsWith(filter)\n case \"is_empty\": return cell === \"\"\n case \"is_not_empty\": return cell !== \"\"\n default: {\n const _exhaustive: never = operator\n void _exhaustive\n return true\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface TableContextValue<TData> {\n table: TanStackTable<TData>\n columnLabels: Record<string, string>\n setColumnLabel: (columnId: string, label: string) => void\n filters: FilterCondition[]\n setFilters: (filters: FilterCondition[]) => void\n filterConfig: FilterColumnConfig[]\n enableFiltering: boolean\n grouping: string | null\n setGrouping: (columnId: string | null) => void\n groupConfig: GroupColumnConfig[]\n enableGrouping: boolean\n}\n\nconst TableContext = React.createContext<TableContextValue<unknown> | null>(null)\n\nfunction useDataTable<TData = unknown>() {\n const ctx = React.useContext(TableContext) as TableContextValue<TData> | null\n if (!ctx) {\n throw new Error(\"useDataTable must be used within a <DataTable>\")\n }\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// DraggableHeader\n// ---------------------------------------------------------------------------\n\nfunction DraggableHeader<TData>({\n header,\n children,\n position,\n numeric,\n truncate,\n}: {\n header: Header<TData, unknown>\n children: React.ReactNode\n position?: \"first\" | \"last\" | \"middle\"\n numeric?: boolean\n truncate?: boolean\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: header.column.id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(\n transform ? { ...transform, scaleX: 1, scaleY: 1 } : null,\n ),\n transition,\n position: \"relative\",\n }\n\n return (\n <TableHead\n ref={setNodeRef}\n style={style}\n variant={numeric ? \"numeric\" : undefined}\n truncate={truncate}\n className={cn(\n \"group/header transition-shadow duration-150\",\n !isDragging && position === \"first\" && \"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]\",\n !isDragging && position === \"last\" && \"hover:shadow-[inset_1px_0_0_0_var(--color-border)]\",\n !isDragging && position === \"middle\" && \"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]\",\n isDragging && \"opacity-40\",\n )}\n >\n <div className={cn(\"flex items-center gap-1 min-w-0\", numeric && \"flex-row-reverse\")}>\n <div className=\"flex-1 min-w-0\">{children}</div>\n <button\n type=\"button\"\n data-drag-handle=\"\"\n className=\"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity\"\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n </div>\n </TableHead>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Shared header / body renderers (extracted to reduce cognitive complexity)\n// ---------------------------------------------------------------------------\n\ninterface SortableHeaderContentProps {\n header: Header<unknown, unknown>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate?: boolean\n}\n\nfunction SortableHeaderContent({\n header,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: SortableHeaderContentProps) {\n if (header.isPlaceholder) return null\n const canSort = enableSorting && header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const isNumeric = numericColumns.has(header.column.id)\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 min-w-0\",\n canSort && \"group/sort cursor-pointer select-none\",\n isNumeric && \"flex-row-reverse\",\n )}\n onClick={canSort ? header.column.getToggleSortingHandler() : undefined}\n onKeyDown={(e) => {\n if ((e.key === \"Enter\" || e.key === \" \") && canSort) {\n header.column.getToggleSortingHandler()\n }\n }}\n >\n <span className={cn(\"min-w-0\", truncate && \"truncate\")}>\n {columnLabels[header.column.id] ??\n flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n {canSort && (\n <span\n className={cn(\n !sorted && \"opacity-0 group-hover/sort:opacity-100 transition-opacity\",\n )}\n >\n {sorted === \"asc\" ? (\n <ArrowUpIcon className=\"size-3.5 text-foreground\" />\n ) : sorted === \"desc\" ? (\n <ArrowDownIcon className=\"size-3.5 text-foreground\" />\n ) : (\n <ArrowUpDownIcon className=\"size-3.5 text-muted-foreground\" />\n )}\n </span>\n )}\n </div>\n )\n}\n\ntype RowOf<TData> = ReturnType<TanStackTable<TData>[\"getRowModel\"]>[\"rows\"][number]\n\nconst EMPTY_GROUP_KEY = \"—\"\n\nfunction bucketRowsByGroup<TData>(rows: RowOf<TData>[], grouping: string) {\n const buckets = new Map<string, RowOf<TData>[]>()\n const rawByKey = new Map<string, unknown>()\n for (const row of rows) {\n const raw = row.getValue(grouping)\n const isEmpty = raw == null || raw === \"\"\n const key = isEmpty ? EMPTY_GROUP_KEY : String(raw)\n const bucket = buckets.get(key)\n if (bucket) {\n bucket.push(row)\n } else {\n buckets.set(key, [row])\n rawByKey.set(key, isEmpty ? null : raw)\n }\n }\n\n const keys = [...buckets.keys()]\n const allNumeric = keys.every((k) => k === EMPTY_GROUP_KEY || typeof rawByKey.get(k) === \"number\")\n keys.sort((a, b) => {\n if (a === EMPTY_GROUP_KEY) return 1\n if (b === EMPTY_GROUP_KEY) return -1\n if (allNumeric) return (rawByKey.get(a) as number) - (rawByKey.get(b) as number)\n return a.localeCompare(b, undefined, { sensitivity: \"base\", numeric: true })\n })\n\n return { order: keys, buckets }\n}\n\nfunction resolveGroupLabel<TData>(\n table: TanStackTable<TData>,\n grouping: string,\n groupConfig: GroupColumnConfig[],\n columnLabels: Record<string, string>,\n): string {\n const groupColumn = table.getColumn(grouping)\n return (\n groupConfig.find((g) => g.columnId === grouping)?.label ??\n columnLabels[grouping] ??\n (typeof groupColumn?.columnDef.header === \"string\"\n ? groupColumn.columnDef.header\n : grouping)\n )\n}\n\ninterface DataRowProps<TData> {\n row: RowOf<TData>\n numericColumns: Set<string>\n truncate?: boolean\n}\n\nfunction DataRow<TData>({ row, numericColumns, truncate }: DataRowProps<TData>) {\n return (\n <TableRow data-state={row.getIsSelected() ? \"selected\" : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n variant={numericColumns.has(cell.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (cell.column.columnDef.meta?.truncate ?? true)}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n )\n}\n\ninterface GroupHeaderRowProps {\n groupKey: string\n groupLabel: string\n isExpanded: boolean\n colSpan: number\n onToggle: () => void\n}\n\nfunction GroupHeaderRow({\n groupKey,\n groupLabel,\n isExpanded,\n colSpan,\n onToggle,\n}: GroupHeaderRowProps) {\n return (\n <TableRow data-slot=\"data-table-group-header\">\n <TableCell colSpan={colSpan} className=\"p-0 font-medium\">\n <button\n type=\"button\"\n onClick={onToggle}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} group ${groupKey}`}\n className=\"flex w-full items-center gap-2 text-left p-4 in-data-[density=compact]:py-2 in-data-[density=relaxed]:py-5 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset\"\n >\n {isExpanded ? (\n <ChevronDownIcon className=\"size-3.5 shrink-0 text-muted-foreground\" />\n ) : (\n <ChevronRightIcon className=\"size-3.5 shrink-0 text-muted-foreground\" />\n )}\n <span className=\"text-xs uppercase tracking-wide text-muted-foreground\">\n {groupLabel}\n </span>\n <span className=\"truncate\">{groupKey}</span>\n </button>\n </TableCell>\n </TableRow>\n )\n}\n\ninterface GroupedRowsProps<TData> {\n table: TanStackTable<TData>\n numericColumns: Set<string>\n truncate?: boolean\n grouping: string\n groupConfig: GroupColumnConfig[]\n columnLabels: Record<string, string>\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n}\n\nfunction GroupedRows<TData>({\n table,\n numericColumns,\n truncate,\n grouping,\n groupConfig,\n columnLabels,\n collapsedGroups,\n onToggleGroup,\n}: GroupedRowsProps<TData>) {\n const visibleColumnCount = table.getVisibleLeafColumns().length\n const rows = table.getSortedRowModel().rows\n if (rows.length === 0) {\n return (\n <TableRow>\n <TableCell colSpan={visibleColumnCount} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )\n }\n\n const { order, buckets } = bucketRowsByGroup(rows, grouping)\n const groupLabel = resolveGroupLabel(table, grouping, groupConfig, columnLabels)\n\n return (\n <>\n {order.map((key) => {\n const groupRows = buckets.get(key) ?? []\n const isExpanded = !collapsedGroups.has(key)\n return (\n <React.Fragment key={`group-${key}`}>\n <GroupHeaderRow\n groupKey={key}\n groupLabel={groupLabel}\n isExpanded={isExpanded}\n colSpan={visibleColumnCount}\n onToggle={() => onToggleGroup(key)}\n />\n {isExpanded &&\n groupRows.map((row) => (\n <DataRow\n key={row.id}\n row={row}\n numericColumns={numericColumns}\n truncate={truncate}\n />\n ))}\n </React.Fragment>\n )\n })}\n </>\n )\n}\n\nfunction deriveNumericColumns<TData>(\n data: TData[],\n columns: ColumnDef<TData, unknown>[],\n): Set<string> {\n if (data.length === 0) return new Set<string>()\n const first = data[0] as Record<string, unknown>\n const ids = new Set<string>()\n for (const col of columns) {\n const key = \"accessorKey\" in col ? String(col.accessorKey) : \"\"\n if (key && typeof first[key] === \"number\") ids.add(key)\n }\n return ids\n}\n\nfunction deriveAccessorConfig<TData>(\n columns: ColumnDef<TData, unknown>[],\n): { columnId: string }[] {\n return columns\n .filter((col) => \"accessorKey\" in col)\n .map((col) => ({ columnId: String((col as { accessorKey: unknown }).accessorKey) }))\n}\n\nfunction applyClientFilters<TData>(data: TData[], filters: FilterCondition[]): TData[] {\n const active = filters.filter(\n (f) =>\n f.columnId &&\n f.operator &&\n (f.value.trim() !== \"\" || f.operator === \"is_empty\" || f.operator === \"is_not_empty\"),\n )\n if (active.length === 0) return data\n return data.filter((row) =>\n active.every((condition) => {\n const cellValue = String((row as Record<string, unknown>)[condition.columnId] ?? \"\")\n return applyFilterCondition(cellValue, condition.operator, condition.value)\n }),\n )\n}\n\nfunction useColumnReorder<TData>(\n table: TanStackTable<TData>,\n columnOrder: ColumnOrderState,\n) {\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n )\n\n const [draggingColumnId, setDraggingColumnId] = React.useState<string | null>(null)\n\n const handleDragStart = React.useCallback((event: DragStartEvent) => {\n setDraggingColumnId(String(event.active.id))\n }, [])\n\n const handleDragEnd = React.useCallback(\n (event: DragEndEvent) => {\n setDraggingColumnId(null)\n const { active, over } = event\n if (!over || active.id === over.id) return\n const currentOrder =\n columnOrder.length > 0 ? columnOrder : table.getAllLeafColumns().map((column) => column.id)\n const oldIdx = currentOrder.indexOf(String(active.id))\n const newIdx = currentOrder.indexOf(String(over.id))\n if (oldIdx === -1 || newIdx === -1) return\n const newOrder = arrayMove(currentOrder, oldIdx, newIdx)\n table.setColumnOrder(newOrder)\n },\n [columnOrder, table],\n )\n\n const draggingHeader = draggingColumnId\n ? table.getFlatHeaders().find((h) => h.column.id === draggingColumnId)\n : null\n\n return { sensors, draggingHeader, handleDragStart, handleDragEnd }\n}\n\nfunction useGroupingState(\n controlledGrouping: string | null | undefined,\n onGroupingChange: ((grouping: string | null) => void) | undefined,\n) {\n const [internalGrouping, setInternalGrouping] = React.useState<string | null>(null)\n const [collapsedGroups, setCollapsedGroups] = React.useState<Set<string>>(() => new Set())\n\n const grouping = controlledGrouping === undefined ? internalGrouping : controlledGrouping\n\n const handleGroupingChange = React.useCallback(\n (next: string | null) => {\n setCollapsedGroups(new Set())\n ;(onGroupingChange ?? setInternalGrouping)(next)\n },\n [onGroupingChange],\n )\n\n const toggleGroup = React.useCallback((key: string) => {\n setCollapsedGroups((prev) => {\n const next = new Set(prev)\n if (next.has(key)) next.delete(key)\n else next.add(key)\n return next\n })\n }, [])\n\n return { grouping, collapsedGroups, handleGroupingChange, toggleGroup }\n}\n\ninterface TableSurfaceProps<TData> {\n table: TanStackTable<TData>\n columns: ColumnDef<TData, unknown>[]\n variant: React.ComponentProps<typeof Table>[\"variant\"]\n containerClassName?: React.ComponentProps<typeof Table>[\"containerClassName\"]\n density: \"compact\" | \"default\" | \"relaxed\"\n hasExplicitSize: boolean\n enableSorting: boolean\n enableColumnReorder: boolean\n enableGrouping: boolean\n grouping: string | null\n groupConfig: GroupColumnConfig[]\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n reorderSensors: ReturnType<typeof useSensors>\n draggingHeader: ReturnType<TanStackTable<TData>[\"getFlatHeaders\"]>[number] | null | undefined\n onDragStart: (event: DragStartEvent) => void\n onDragEnd: (event: DragEndEvent) => void\n}\n\nfunction HeaderCells<TData>({\n table,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: {\n table: TanStackTable<TData>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n}) {\n return (\n <>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n variant={numericColumns.has(header.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n >\n <SortableHeaderContent\n header={header as Header<unknown, unknown>}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n />\n </TableHead>\n ))}\n </TableRow>\n ))}\n </>\n )\n}\n\nfunction DraggableHeaderCells<TData>({\n table,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: {\n table: TanStackTable<TData>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n}) {\n return (\n <>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header, headerIdx) => {\n const position =\n headerIdx === 0\n ? \"first\"\n : headerIdx === headerGroup.headers.length - 1\n ? \"last\"\n : \"middle\"\n return (\n <DraggableHeader\n key={header.id}\n header={header}\n position={position}\n numeric={numericColumns.has(header.column.id)}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n >\n <SortableHeaderContent\n header={header as Header<unknown, unknown>}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n />\n </DraggableHeader>\n )\n })}\n </TableRow>\n ))}\n </>\n )\n}\n\nfunction ColGroup<TData>({\n table,\n useFlexSize,\n}: {\n table: TanStackTable<TData>\n useFlexSize: boolean\n}) {\n return (\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) =>\n useFlexSize ? (\n <col key={header.id} style={{ width: header.column.getSize() }} />\n ) : (\n <col\n key={header.id}\n style={\n header.column.columnDef.size == null\n ? undefined\n : { width: header.column.columnDef.size }\n }\n />\n ),\n )}\n </colgroup>\n )\n}\n\nfunction TableSurface<TData>(props: TableSurfaceProps<TData>) {\n const {\n table,\n columns,\n variant,\n containerClassName,\n density,\n hasExplicitSize,\n enableSorting,\n enableColumnReorder,\n enableGrouping,\n grouping,\n groupConfig,\n collapsedGroups,\n onToggleGroup,\n numericColumns,\n columnLabels,\n truncate,\n reorderSensors,\n draggingHeader,\n onDragStart,\n onDragEnd,\n } = props\n\n const body = (\n <DataTableRows\n table={table}\n columns={columns}\n numericColumns={numericColumns}\n truncate={truncate}\n grouping={enableGrouping ? grouping : null}\n groupConfig={groupConfig}\n columnLabels={columnLabels}\n collapsedGroups={collapsedGroups}\n onToggleGroup={onToggleGroup}\n />\n )\n\n if (enableColumnReorder) {\n return (\n <DndContext\n sensors={reorderSensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToHorizontalAxis]}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n >\n <SortableContext\n items={table.getFlatHeaders().map((h) => h.column.id)}\n strategy={horizontalListSortingStrategy}\n >\n <Table\n data-density={density}\n variant={variant}\n containerClassName={containerClassName}\n layout={hasExplicitSize ? \"fixed\" : undefined}\n >\n {hasExplicitSize && <ColGroup table={table} useFlexSize />}\n <TableHeader>\n <DraggableHeaderCells\n table={table}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n />\n </TableHeader>\n <TableBody>{body}</TableBody>\n </Table>\n </SortableContext>\n <DragOverlay dropAnimation={null}>\n {draggingHeader && (\n <div className=\"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-lg\">\n {columnLabels[draggingHeader.column.id] ??\n (typeof draggingHeader.column.columnDef.header === \"string\"\n ? draggingHeader.column.columnDef.header\n : draggingHeader.column.id)}\n </div>\n )}\n </DragOverlay>\n </DndContext>\n )\n }\n\n return (\n <Table\n data-density={density}\n variant={variant}\n containerClassName={containerClassName}\n layout={hasExplicitSize ? \"fixed\" : undefined}\n >\n {hasExplicitSize && <ColGroup table={table} useFlexSize={false} />}\n <TableHeader>\n <HeaderCells\n table={table}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n />\n </TableHeader>\n <TableBody>{body}</TableBody>\n </Table>\n )\n}\n\nfunction DataTableRows<TData>({\n table,\n columns,\n numericColumns,\n truncate,\n grouping,\n groupConfig,\n columnLabels,\n collapsedGroups,\n onToggleGroup,\n}: {\n table: TanStackTable<TData>\n columns: ColumnDef<TData, unknown>[]\n numericColumns: Set<string>\n truncate?: boolean\n grouping: string | null\n groupConfig: GroupColumnConfig[]\n columnLabels: Record<string, string>\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n}) {\n if (grouping) {\n return (\n <GroupedRows\n table={table}\n numericColumns={numericColumns}\n truncate={truncate}\n grouping={grouping}\n groupConfig={groupConfig}\n columnLabels={columnLabels}\n collapsedGroups={collapsedGroups}\n onToggleGroup={onToggleGroup}\n />\n )\n }\n\n if (table.getRowModel().rows.length === 0) {\n return (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )\n }\n\n return table.getRowModel().rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() ? \"selected\" : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n variant={numericColumns.has(cell.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (cell.column.columnDef.meta?.truncate ?? true)}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n}\n\n// ---------------------------------------------------------------------------\n// Slot categorization\n// ---------------------------------------------------------------------------\n\nfunction categorizeSlots(children: React.ReactNode) {\n const toolbarSlots: React.ReactNode[] = []\n const filterSlots: React.ReactNode[] = []\n const groupSlots: React.ReactNode[] = []\n const paginationSlots: React.ReactNode[] = []\n const restSlots: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === TableToolbar) {\n toolbarSlots.push(child)\n } else if (\n React.isValidElement(child) &&\n (child.type as React.ComponentType).displayName === \"DataTableFilter\"\n ) {\n filterSlots.push(child)\n } else if (\n React.isValidElement(child) &&\n (child.type as React.ComponentType).displayName === \"DataTableGroup\"\n ) {\n groupSlots.push(child)\n } else if (React.isValidElement(child) && child.type === DataTablePagination) {\n paginationSlots.push(child)\n } else {\n restSlots.push(child)\n }\n })\n return { toolbarSlots, filterSlots, groupSlots, paginationSlots, restSlots }\n}\n\n// ---------------------------------------------------------------------------\n// DataTable\n// ---------------------------------------------------------------------------\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n /** @deprecated Use `<TableToolbar>` as a child instead */\n toolbar?: React.ReactNode\n enableSorting?: boolean\n enableColumnVisibility?: boolean\n columnOrder?: ColumnOrderState\n onColumnOrderChange?: (order: ColumnOrderState) => void\n columnVisibility?: VisibilityState\n onColumnVisibilityChange?: (vis: VisibilityState) => void\n columnLabels?: Record<string, string>\n onColumnLabelChange?: (columnId: string, label: string) => void\n enablePagination?: boolean\n defaultPageSize?: number\n pagination?: PaginationState\n onPaginationChange?: (pagination: PaginationState) => void\n enableColumnReorder?: boolean\n enableFiltering?: boolean\n filters?: FilterCondition[]\n onFiltersChange?: (filters: FilterCondition[]) => void\n filterConfig?: FilterColumnConfig[]\n /** When true, filtering is handled externally — onFiltersChange fires but rows are not filtered client-side. */\n manualFiltering?: boolean\n enableGrouping?: boolean\n /** ID of the column currently grouped by, or null for no grouping. */\n grouping?: string | null\n onGroupingChange?: (grouping: string | null) => void\n groupConfig?: GroupColumnConfig[]\n density?: \"compact\" | \"default\" | \"relaxed\"\n children?: React.ReactNode\n className?: string\n /** Variant passed to the base Table component */\n variant?: React.ComponentProps<typeof Table>[\"variant\"]\n /** className passed to the base Table's container div */\n containerClassName?: React.ComponentProps<typeof Table>[\"containerClassName\"]\n truncate?: boolean\n}\n\nfunction DataTable<TData, TValue>({\n columns,\n data,\n toolbar,\n enableSorting = false,\n enableColumnVisibility = false,\n children,\n columnOrder: controlledColumnOrder,\n onColumnOrderChange,\n columnVisibility: controlledColumnVisibility,\n onColumnVisibilityChange,\n columnLabels: controlledColumnLabels,\n onColumnLabelChange,\n enablePagination = false,\n defaultPageSize = 10,\n pagination: controlledPagination,\n onPaginationChange,\n enableColumnReorder = false,\n enableFiltering = false,\n filters: controlledFilters,\n onFiltersChange,\n filterConfig,\n manualFiltering = false,\n enableGrouping = false,\n grouping: controlledGrouping,\n onGroupingChange,\n groupConfig,\n density = \"default\",\n className,\n variant = \"card\",\n containerClassName,\n truncate = true,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [internalColumnVisibility, setInternalColumnVisibility] =\n React.useState<VisibilityState>({})\n const [internalColumnOrder, setInternalColumnOrder] =\n React.useState<ColumnOrderState>([])\n const [internalColumnLabels, setInternalColumnLabels] = React.useState<\n Record<string, string>\n >({})\n const [internalPagination, setInternalPagination] =\n React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: defaultPageSize,\n })\n const [internalFilters, setInternalFilters] = React.useState<FilterCondition[]>([])\n const { grouping, collapsedGroups, handleGroupingChange, toggleGroup } =\n useGroupingState(controlledGrouping, onGroupingChange)\n\n const pagination = controlledPagination ?? internalPagination\n const filters = controlledFilters ?? internalFilters\n\n const columnVisibility =\n controlledColumnVisibility ?? internalColumnVisibility\n const columnOrder = controlledColumnOrder ?? internalColumnOrder\n const columnLabels = controlledColumnLabels ?? internalColumnLabels\n\n const handlePaginationChange = React.useMemo(() => {\n if (!enablePagination) return\n if (onPaginationChange) {\n return (updater: PaginationState | ((prev: PaginationState) => PaginationState)) => {\n const next = typeof updater === \"function\" ? updater(controlledPagination!) : updater\n onPaginationChange(next)\n }\n }\n return setInternalPagination\n }, [enablePagination, onPaginationChange, controlledPagination])\n\n const handleVisibilityChange = React.useMemo(() => {\n if (!enableColumnVisibility) return\n return (updater: VisibilityState | ((prev: VisibilityState) => VisibilityState)) => {\n const next = typeof updater === \"function\" ? updater(columnVisibility) : updater\n ;(onColumnVisibilityChange ?? setInternalColumnVisibility)(next)\n }\n }, [enableColumnVisibility, columnVisibility, onColumnVisibilityChange])\n\n const handleFiltersChange = React.useCallback(\n (newFilters: FilterCondition[]) => {\n ;(onFiltersChange ?? setInternalFilters)(newFilters)\n },\n [onFiltersChange],\n )\n\n const resolvedFilterConfig: FilterColumnConfig[] = React.useMemo(\n () => filterConfig ?? deriveAccessorConfig(columns),\n [filterConfig, columns],\n )\n\n const resolvedGroupConfig: GroupColumnConfig[] = React.useMemo(\n () => groupConfig ?? deriveAccessorConfig(columns),\n [groupConfig, columns],\n )\n\n const filteredData = React.useMemo(\n (): TData[] => (!enableFiltering || manualFiltering ? data : applyClientFilters(data, filters)),\n [data, filters, enableFiltering, manualFiltering],\n )\n\n const handleColumnOrderChange = React.useCallback(\n (updater: ColumnOrderState | ((prev: ColumnOrderState) => ColumnOrderState)) => {\n const next = typeof updater === \"function\" ? updater(columnOrder) : updater\n ;(onColumnOrderChange ?? setInternalColumnOrder)(next)\n },\n [columnOrder, onColumnOrderChange],\n )\n\n const table = useReactTable({\n data: filteredData,\n columns,\n state: {\n sorting: enableSorting ? sorting : undefined,\n columnVisibility: enableColumnVisibility ? columnVisibility : undefined,\n columnOrder: columnOrder.length > 0 ? columnOrder : undefined,\n ...(enablePagination ? { pagination } : {}),\n },\n onSortingChange: enableSorting ? setSorting : undefined,\n onPaginationChange: handlePaginationChange,\n onColumnVisibilityChange: handleVisibilityChange,\n onColumnOrderChange: handleColumnOrderChange,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: enableSorting || enableGrouping ? getSortedRowModel() : undefined,\n getPaginationRowModel: enablePagination ? getPaginationRowModel() : undefined,\n })\n\n const setColumnLabel = React.useCallback(\n (columnId: string, label: string) => {\n ;(onColumnLabelChange ?? ((id: string, l: string) => setInternalColumnLabels((prev) => ({ ...prev, [id]: l }))))(columnId, label)\n },\n [onColumnLabelChange],\n )\n\n const {\n sensors: reorderSensors,\n draggingHeader,\n handleDragStart: handleColumnDragStart,\n handleDragEnd: handleColumnDragEnd,\n } = useColumnReorder(table, columnOrder)\n\n const numericColumns = React.useMemo(\n () => deriveNumericColumns(data, columns),\n [data, columns],\n )\n\n const hasExplicitSize = columns.some((c) => c.size != null)\n\n // Not memoized: TanStack's table instance is a stable reference that mutates\n // internally, so children reading table.getState() need fresh context on each render.\n const ctx = {\n table,\n columnLabels,\n setColumnLabel,\n filters,\n setFilters: handleFiltersChange,\n filterConfig: resolvedFilterConfig,\n enableFiltering,\n grouping,\n setGrouping: handleGroupingChange,\n groupConfig: resolvedGroupConfig,\n enableGrouping,\n } as TableContextValue<unknown>\n\n const { toolbarSlots, filterSlots, groupSlots, paginationSlots, restSlots } = categorizeSlots(children)\n\n return (\n <TableContext.Provider value={ctx}>\n <div data-slot=\"data-table\" className={cn(\"w-full space-y-2\", className)}>\n {toolbar}\n {toolbarSlots}\n {filterSlots}\n {groupSlots}\n <TableSurface\n table={table}\n columns={columns}\n variant={variant}\n containerClassName={containerClassName}\n density={density}\n hasExplicitSize={hasExplicitSize}\n enableSorting={enableSorting}\n enableColumnReorder={enableColumnReorder}\n enableGrouping={enableGrouping}\n grouping={grouping}\n groupConfig={resolvedGroupConfig}\n collapsedGroups={collapsedGroups}\n onToggleGroup={toggleGroup}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n reorderSensors={reorderSensors}\n draggingHeader={draggingHeader}\n onDragStart={handleColumnDragStart}\n onDragEnd={handleColumnDragEnd}\n />\n {paginationSlots}\n {restSlots}\n </div>\n </TableContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// TableToolbar\n// ---------------------------------------------------------------------------\n\nfunction TableToolbar({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"table-toolbar\"\n className={cn(\"flex items-center justify-end gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport { DataTable, TableToolbar, useDataTable }\nexport type { DataTableProps, FilterCondition, FilterOperator, FilterColumnConfig, GroupColumnConfig }\n"],"names":["applyFilterCondition","cellValue","operator","filterValue","cell","filter","TableContext","React","useDataTable","ctx","DraggableHeader","header","children","position","numeric","truncate","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsx","TableHead","cn","GripVerticalIcon","SortableHeaderContent","enableSorting","numericColumns","columnLabels","canSort","sorted","isNumeric","jsxs","e","flexRender","ArrowUpIcon","ArrowDownIcon","ArrowUpDownIcon","EMPTY_GROUP_KEY","bucketRowsByGroup","rows","grouping","buckets","rawByKey","row","raw","isEmpty","key","bucket","keys","allNumeric","k","a","b","resolveGroupLabel","table","groupConfig","groupColumn","g","DataRow","TableRow","TableCell","GroupHeaderRow","groupKey","groupLabel","isExpanded","colSpan","onToggle","ChevronDownIcon","ChevronRightIcon","GroupedRows","collapsedGroups","onToggleGroup","visibleColumnCount","order","Fragment","groupRows","deriveNumericColumns","data","columns","first","ids","col","deriveAccessorConfig","applyClientFilters","filters","active","f","condition","useColumnReorder","columnOrder","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","draggingColumnId","setDraggingColumnId","handleDragStart","event","handleDragEnd","over","currentOrder","column","oldIdx","newIdx","newOrder","arrayMove","draggingHeader","h","useGroupingState","controlledGrouping","onGroupingChange","internalGrouping","setInternalGrouping","setCollapsedGroups","handleGroupingChange","next","toggleGroup","prev","HeaderCells","headerGroup","DraggableHeaderCells","headerIdx","ColGroup","useFlexSize","TableSurface","props","variant","containerClassName","density","hasExplicitSize","enableColumnReorder","enableGrouping","reorderSensors","onDragStart","onDragEnd","body","DataTableRows","DndContext","closestCenter","restrictToHorizontalAxis","SortableContext","horizontalListSortingStrategy","Table","TableHeader","TableBody","DragOverlay","categorizeSlots","toolbarSlots","filterSlots","groupSlots","paginationSlots","restSlots","child","TableToolbar","DataTablePagination","DataTable","toolbar","enableColumnVisibility","controlledColumnOrder","onColumnOrderChange","controlledColumnVisibility","onColumnVisibilityChange","controlledColumnLabels","onColumnLabelChange","enablePagination","defaultPageSize","controlledPagination","onPaginationChange","enableFiltering","controlledFilters","onFiltersChange","filterConfig","manualFiltering","className","sorting","setSorting","internalColumnVisibility","setInternalColumnVisibility","internalColumnOrder","setInternalColumnOrder","internalColumnLabels","setInternalColumnLabels","internalPagination","setInternalPagination","internalFilters","setInternalFilters","pagination","columnVisibility","handlePaginationChange","updater","handleVisibilityChange","handleFiltersChange","newFilters","resolvedFilterConfig","resolvedGroupConfig","filteredData","handleColumnOrderChange","useReactTable","getCoreRowModel","getSortedRowModel","getPaginationRowModel","setColumnLabel","columnId","label","id","l","handleColumnDragStart","handleColumnDragEnd","c"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table.js","sources":["../../../../src/components/ui/data-table/data-table.tsx"],"sourcesContent":["\"use client\"\n\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n DragOverlay,\n type DragStartEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from \"@dnd-kit/core\"\nimport { restrictToHorizontalAxis } from \"@dnd-kit/modifiers\"\nimport {\n arrayMove,\n horizontalListSortingStrategy,\n SortableContext,\n sortableKeyboardCoordinates,\n useSortable,\n} from \"@dnd-kit/sortable\"\nimport { CSS } from \"@dnd-kit/utilities\"\nimport {\n type ColumnDef,\n type ColumnOrderState,\n type Header,\n type PaginationState,\n type RowData,\n type SortingState,\n type Table as TanStackTable,\n type VisibilityState,\n flexRender,\n getCoreRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon, ChevronDownIcon, ChevronRightIcon, GripVerticalIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { DataTablePagination } from \"./data-table-pagination\"\n\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Module augmentation — column meta\n// ---------------------------------------------------------------------------\n\ndeclare module \"@tanstack/react-table\" {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n interface ColumnMeta<TData extends RowData, TValue> {\n truncate?: boolean\n }\n}\n\n// ---------------------------------------------------------------------------\n// Filter types\n// ---------------------------------------------------------------------------\n\ntype FilterOperator =\n | \"contains\"\n | \"equals\"\n | \"not_equals\"\n | \"starts_with\"\n | \"ends_with\"\n | \"is_empty\"\n | \"is_not_empty\"\n\ninterface FilterCondition {\n /** Stable unique key for React reconciliation. */\n id: string\n columnId: string\n operator: FilterOperator\n value: string\n}\n\ninterface FilterColumnConfig {\n columnId: string\n label?: string\n operators?: FilterOperator[]\n}\n\n// ---------------------------------------------------------------------------\n// Grouping types\n// ---------------------------------------------------------------------------\n\ninterface GroupColumnConfig {\n columnId: string\n label?: string\n}\n\nexport function applyFilterCondition(\n cellValue: string,\n operator: FilterOperator,\n filterValue: string,\n): boolean {\n const cell = cellValue.toLowerCase().trim()\n const filter = filterValue.toLowerCase().trim()\n switch (operator) {\n case \"contains\": return cell.includes(filter)\n case \"equals\": return cell === filter\n case \"not_equals\": return cell !== filter\n case \"starts_with\": return cell.startsWith(filter)\n case \"ends_with\": return cell.endsWith(filter)\n case \"is_empty\": return cell === \"\"\n case \"is_not_empty\": return cell !== \"\"\n default: {\n const _exhaustive: never = operator\n void _exhaustive\n return true\n }\n }\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface TableContextValue<TData> {\n table: TanStackTable<TData>\n columnLabels: Record<string, string>\n setColumnLabel: (columnId: string, label: string) => void\n filters: FilterCondition[]\n setFilters: (filters: FilterCondition[]) => void\n filterConfig: FilterColumnConfig[]\n enableFiltering: boolean\n grouping: string | null\n setGrouping: (columnId: string | null) => void\n groupConfig: GroupColumnConfig[]\n enableGrouping: boolean\n}\n\nconst TableContext = React.createContext<TableContextValue<unknown> | null>(null)\n\nfunction useDataTable<TData = unknown>() {\n const ctx = React.useContext(TableContext) as TableContextValue<TData> | null\n if (!ctx) {\n throw new Error(\"useDataTable must be used within a <DataTable>\")\n }\n return ctx\n}\n\n// ---------------------------------------------------------------------------\n// DraggableHeader\n// ---------------------------------------------------------------------------\n\nfunction DraggableHeader<TData>({\n header,\n children,\n position,\n numeric,\n truncate,\n}: {\n header: Header<TData, unknown>\n children: React.ReactNode\n position?: \"first\" | \"last\" | \"middle\"\n numeric?: boolean\n truncate?: boolean\n}) {\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: header.column.id })\n\n const style: React.CSSProperties = {\n transform: CSS.Transform.toString(\n transform ? { ...transform, scaleX: 1, scaleY: 1 } : null,\n ),\n transition,\n position: \"relative\",\n }\n\n return (\n <TableHead\n ref={setNodeRef}\n style={style}\n variant={numeric ? \"numeric\" : undefined}\n truncate={truncate}\n className={cn(\n \"group/header transition-shadow duration-150\",\n !isDragging && position === \"first\" && \"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]\",\n !isDragging && position === \"last\" && \"hover:shadow-[inset_1px_0_0_0_var(--color-border)]\",\n !isDragging && position === \"middle\" && \"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]\",\n isDragging && \"opacity-40\",\n )}\n >\n <div className={cn(\"flex items-center gap-1 min-w-0\", numeric && \"flex-row-reverse\")}>\n <div className=\"flex-1 min-w-0\">{children}</div>\n <button\n type=\"button\"\n data-drag-handle=\"\"\n className=\"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity\"\n {...attributes}\n {...listeners}\n >\n <GripVerticalIcon className=\"size-3.5\" />\n </button>\n </div>\n </TableHead>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Shared header / body renderers (extracted to reduce cognitive complexity)\n// ---------------------------------------------------------------------------\n\ninterface SortableHeaderContentProps {\n header: Header<unknown, unknown>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate?: boolean\n}\n\nfunction SortableHeaderContent({\n header,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: SortableHeaderContentProps) {\n if (header.isPlaceholder) return null\n const canSort = enableSorting && header.column.getCanSort()\n const sorted = header.column.getIsSorted()\n const isNumeric = numericColumns.has(header.column.id)\n\n return (\n <div\n className={cn(\n \"flex items-center gap-1 min-w-0\",\n canSort && \"group/sort cursor-pointer select-none\",\n isNumeric && \"flex-row-reverse\",\n )}\n onClick={canSort ? header.column.getToggleSortingHandler() : undefined}\n onKeyDown={(e) => {\n if ((e.key === \"Enter\" || e.key === \" \") && canSort) {\n header.column.getToggleSortingHandler()\n }\n }}\n >\n <span className={cn(\"min-w-0\", truncate && \"truncate\")}>\n {columnLabels[header.column.id] ??\n flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n {canSort && (\n <span\n className={cn(\n !sorted && \"opacity-0 group-hover/sort:opacity-100 transition-opacity\",\n )}\n >\n {sorted === \"asc\" ? (\n <ArrowUpIcon className=\"size-3.5 text-foreground\" />\n ) : sorted === \"desc\" ? (\n <ArrowDownIcon className=\"size-3.5 text-foreground\" />\n ) : (\n <ArrowUpDownIcon className=\"size-3.5 text-muted-foreground\" />\n )}\n </span>\n )}\n </div>\n )\n}\n\ntype RowOf<TData> = ReturnType<TanStackTable<TData>[\"getRowModel\"]>[\"rows\"][number]\n\nconst EMPTY_GROUP_KEY = \"—\"\n\nfunction bucketRowsByGroup<TData>(rows: RowOf<TData>[], grouping: string) {\n const buckets = new Map<string, RowOf<TData>[]>()\n const rawByKey = new Map<string, unknown>()\n for (const row of rows) {\n const raw = row.getValue(grouping)\n const isEmpty = raw == null || raw === \"\"\n const key = isEmpty ? EMPTY_GROUP_KEY : String(raw)\n const bucket = buckets.get(key)\n if (bucket) {\n bucket.push(row)\n } else {\n buckets.set(key, [row])\n rawByKey.set(key, isEmpty ? null : raw)\n }\n }\n\n const keys = [...buckets.keys()]\n const allNumeric = keys.every((k) => k === EMPTY_GROUP_KEY || typeof rawByKey.get(k) === \"number\")\n keys.sort((a, b) => {\n if (a === EMPTY_GROUP_KEY) return 1\n if (b === EMPTY_GROUP_KEY) return -1\n if (allNumeric) return (rawByKey.get(a) as number) - (rawByKey.get(b) as number)\n return a.localeCompare(b, undefined, { sensitivity: \"base\", numeric: true })\n })\n\n return { order: keys, buckets }\n}\n\nfunction resolveGroupLabel<TData>(\n table: TanStackTable<TData>,\n grouping: string,\n groupConfig: GroupColumnConfig[],\n columnLabels: Record<string, string>,\n): string {\n const groupColumn = table.getColumn(grouping)\n return (\n groupConfig.find((g) => g.columnId === grouping)?.label ??\n columnLabels[grouping] ??\n (typeof groupColumn?.columnDef.header === \"string\"\n ? groupColumn.columnDef.header\n : grouping)\n )\n}\n\ninterface DataRowProps<TData> {\n row: RowOf<TData>\n numericColumns: Set<string>\n truncate?: boolean\n}\n\nfunction DataRow<TData>({ row, numericColumns, truncate }: DataRowProps<TData>) {\n return (\n <TableRow data-state={row.getIsSelected() ? \"selected\" : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n variant={numericColumns.has(cell.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (cell.column.columnDef.meta?.truncate ?? true)}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n )\n}\n\ninterface GroupHeaderRowProps {\n groupKey: string\n groupLabel: string\n isExpanded: boolean\n colSpan: number\n onToggle: () => void\n}\n\nfunction GroupHeaderRow({\n groupKey,\n groupLabel,\n isExpanded,\n colSpan,\n onToggle,\n}: GroupHeaderRowProps) {\n return (\n <TableRow data-slot=\"data-table-group-header\">\n <TableCell colSpan={colSpan} className=\"p-0 font-medium\">\n <button\n type=\"button\"\n onClick={onToggle}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} group ${groupKey}`}\n className=\"flex w-full items-center gap-2 text-left p-4 in-data-[density=compact]:py-2 in-data-[density=relaxed]:py-5 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset\"\n >\n {isExpanded ? (\n <ChevronDownIcon className=\"size-3.5 shrink-0 text-muted-foreground\" />\n ) : (\n <ChevronRightIcon className=\"size-3.5 shrink-0 text-muted-foreground\" />\n )}\n <span className=\"text-xs uppercase tracking-wide text-muted-foreground\">\n {groupLabel}\n </span>\n <span className=\"truncate\">{groupKey}</span>\n </button>\n </TableCell>\n </TableRow>\n )\n}\n\ninterface GroupedRowsProps<TData> {\n table: TanStackTable<TData>\n numericColumns: Set<string>\n truncate?: boolean\n grouping: string\n groupConfig: GroupColumnConfig[]\n columnLabels: Record<string, string>\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n}\n\nfunction GroupedRows<TData>({\n table,\n numericColumns,\n truncate,\n grouping,\n groupConfig,\n columnLabels,\n collapsedGroups,\n onToggleGroup,\n}: GroupedRowsProps<TData>) {\n const visibleColumnCount = table.getVisibleLeafColumns().length\n const rows = table.getSortedRowModel().rows\n if (rows.length === 0) {\n return (\n <TableRow>\n <TableCell colSpan={visibleColumnCount} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )\n }\n\n const { order, buckets } = bucketRowsByGroup(rows, grouping)\n const groupLabel = resolveGroupLabel(table, grouping, groupConfig, columnLabels)\n\n return (\n <>\n {order.map((key) => {\n const groupRows = buckets.get(key) ?? []\n const isExpanded = !collapsedGroups.has(key)\n return (\n <React.Fragment key={`group-${key}`}>\n <GroupHeaderRow\n groupKey={key}\n groupLabel={groupLabel}\n isExpanded={isExpanded}\n colSpan={visibleColumnCount}\n onToggle={() => onToggleGroup(key)}\n />\n {isExpanded &&\n groupRows.map((row) => (\n <DataRow\n key={row.id}\n row={row}\n numericColumns={numericColumns}\n truncate={truncate}\n />\n ))}\n </React.Fragment>\n )\n })}\n </>\n )\n}\n\nfunction deriveNumericColumns<TData>(\n data: TData[],\n columns: ColumnDef<TData, unknown>[],\n): Set<string> {\n if (data.length === 0) return new Set<string>()\n const first = data[0] as Record<string, unknown>\n const ids = new Set<string>()\n for (const col of columns) {\n const key = \"accessorKey\" in col ? String(col.accessorKey) : \"\"\n if (key && typeof first[key] === \"number\") ids.add(key)\n }\n return ids\n}\n\nfunction deriveAccessorConfig<TData>(\n columns: ColumnDef<TData, unknown>[],\n): { columnId: string }[] {\n return columns\n .filter((col) => \"accessorKey\" in col)\n .map((col) => ({ columnId: String((col as { accessorKey: unknown }).accessorKey) }))\n}\n\nfunction applyClientFilters<TData>(data: TData[], filters: FilterCondition[]): TData[] {\n const active = filters.filter(\n (f) =>\n f.columnId &&\n f.operator &&\n (f.value.trim() !== \"\" || f.operator === \"is_empty\" || f.operator === \"is_not_empty\"),\n )\n if (active.length === 0) return data\n return data.filter((row) =>\n active.every((condition) => {\n const cellValue = String((row as Record<string, unknown>)[condition.columnId] ?? \"\")\n return applyFilterCondition(cellValue, condition.operator, condition.value)\n }),\n )\n}\n\nfunction useColumnReorder<TData>(\n table: TanStackTable<TData>,\n columnOrder: ColumnOrderState,\n) {\n const sensors = useSensors(\n useSensor(PointerSensor, { activationConstraint: { distance: 5 } }),\n useSensor(KeyboardSensor, { coordinateGetter: sortableKeyboardCoordinates }),\n )\n\n const [draggingColumnId, setDraggingColumnId] = React.useState<string | null>(null)\n\n const handleDragStart = React.useCallback((event: DragStartEvent) => {\n setDraggingColumnId(String(event.active.id))\n }, [])\n\n const handleDragEnd = React.useCallback(\n (event: DragEndEvent) => {\n setDraggingColumnId(null)\n const { active, over } = event\n if (!over || active.id === over.id) return\n const currentOrder =\n columnOrder.length > 0 ? columnOrder : table.getAllLeafColumns().map((column) => column.id)\n const oldIdx = currentOrder.indexOf(String(active.id))\n const newIdx = currentOrder.indexOf(String(over.id))\n if (oldIdx === -1 || newIdx === -1) return\n const newOrder = arrayMove(currentOrder, oldIdx, newIdx)\n table.setColumnOrder(newOrder)\n },\n [columnOrder, table],\n )\n\n const draggingHeader = draggingColumnId\n ? table.getFlatHeaders().find((h) => h.column.id === draggingColumnId)\n : null\n\n return { sensors, draggingHeader, handleDragStart, handleDragEnd }\n}\n\nfunction useGroupingState(\n controlledGrouping: string | null | undefined,\n onGroupingChange: ((grouping: string | null) => void) | undefined,\n) {\n const [internalGrouping, setInternalGrouping] = React.useState<string | null>(null)\n const [collapsedGroups, setCollapsedGroups] = React.useState<Set<string>>(() => new Set())\n\n const grouping = controlledGrouping === undefined ? internalGrouping : controlledGrouping\n\n const handleGroupingChange = React.useCallback(\n (next: string | null) => {\n setCollapsedGroups(new Set())\n ;(onGroupingChange ?? setInternalGrouping)(next)\n },\n [onGroupingChange],\n )\n\n const toggleGroup = React.useCallback((key: string) => {\n setCollapsedGroups((prev) => {\n const next = new Set(prev)\n if (next.has(key)) next.delete(key)\n else next.add(key)\n return next\n })\n }, [])\n\n return { grouping, collapsedGroups, handleGroupingChange, toggleGroup }\n}\n\ninterface TableSurfaceProps<TData> {\n table: TanStackTable<TData>\n columns: ColumnDef<TData, unknown>[]\n variant: React.ComponentProps<typeof Table>[\"variant\"]\n containerClassName?: React.ComponentProps<typeof Table>[\"containerClassName\"]\n density: \"compact\" | \"default\" | \"relaxed\"\n hasExplicitSize: boolean\n enableSorting: boolean\n enableColumnReorder: boolean\n enableGrouping: boolean\n grouping: string | null\n groupConfig: GroupColumnConfig[]\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n reorderSensors: ReturnType<typeof useSensors>\n draggingHeader: ReturnType<TanStackTable<TData>[\"getFlatHeaders\"]>[number] | null | undefined\n onDragStart: (event: DragStartEvent) => void\n onDragEnd: (event: DragEndEvent) => void\n}\n\nfunction HeaderCells<TData>({\n table,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: {\n table: TanStackTable<TData>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n}) {\n return (\n <>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n variant={numericColumns.has(header.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n >\n <SortableHeaderContent\n header={header as Header<unknown, unknown>}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n />\n </TableHead>\n ))}\n </TableRow>\n ))}\n </>\n )\n}\n\nfunction DraggableHeaderCells<TData>({\n table,\n enableSorting,\n numericColumns,\n columnLabels,\n truncate,\n}: {\n table: TanStackTable<TData>\n enableSorting: boolean\n numericColumns: Set<string>\n columnLabels: Record<string, string>\n truncate: boolean\n}) {\n return (\n <>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header, headerIdx) => {\n const position =\n headerIdx === 0\n ? \"first\"\n : headerIdx === headerGroup.headers.length - 1\n ? \"last\"\n : \"middle\"\n return (\n <DraggableHeader\n key={header.id}\n header={header}\n position={position}\n numeric={numericColumns.has(header.column.id)}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n >\n <SortableHeaderContent\n header={header as Header<unknown, unknown>}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate && (header.column.columnDef.meta?.truncate ?? true)}\n />\n </DraggableHeader>\n )\n })}\n </TableRow>\n ))}\n </>\n )\n}\n\nfunction ColGroup<TData>({\n table,\n useFlexSize,\n}: {\n table: TanStackTable<TData>\n useFlexSize: boolean\n}) {\n return (\n <colgroup>\n {table.getHeaderGroups()[0]?.headers.map((header) =>\n useFlexSize ? (\n <col key={header.id} style={{ width: header.column.getSize() }} />\n ) : (\n <col\n key={header.id}\n style={\n header.column.columnDef.size == null\n ? undefined\n : { width: header.column.columnDef.size }\n }\n />\n ),\n )}\n </colgroup>\n )\n}\n\nfunction TableSurface<TData>(props: TableSurfaceProps<TData>) {\n const {\n table,\n columns,\n variant,\n containerClassName,\n density,\n hasExplicitSize,\n enableSorting,\n enableColumnReorder,\n enableGrouping,\n grouping,\n groupConfig,\n collapsedGroups,\n onToggleGroup,\n numericColumns,\n columnLabels,\n truncate,\n reorderSensors,\n draggingHeader,\n onDragStart,\n onDragEnd,\n } = props\n\n const body = (\n <DataTableRows\n table={table}\n columns={columns}\n numericColumns={numericColumns}\n truncate={truncate}\n grouping={enableGrouping ? grouping : null}\n groupConfig={groupConfig}\n columnLabels={columnLabels}\n collapsedGroups={collapsedGroups}\n onToggleGroup={onToggleGroup}\n />\n )\n\n if (enableColumnReorder) {\n return (\n <DndContext\n sensors={reorderSensors}\n collisionDetection={closestCenter}\n modifiers={[restrictToHorizontalAxis]}\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n >\n <SortableContext\n items={table.getFlatHeaders().map((h) => h.column.id)}\n strategy={horizontalListSortingStrategy}\n >\n <Table\n data-density={density}\n variant={variant}\n containerClassName={containerClassName}\n layout={hasExplicitSize ? \"fixed\" : undefined}\n >\n {hasExplicitSize && <ColGroup table={table} useFlexSize />}\n <TableHeader>\n <DraggableHeaderCells\n table={table}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n />\n </TableHeader>\n <TableBody>{body}</TableBody>\n </Table>\n </SortableContext>\n <DragOverlay dropAnimation={null}>\n {draggingHeader && (\n <div className=\"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-lg\">\n {columnLabels[draggingHeader.column.id] ??\n (typeof draggingHeader.column.columnDef.header === \"string\"\n ? draggingHeader.column.columnDef.header\n : draggingHeader.column.id)}\n </div>\n )}\n </DragOverlay>\n </DndContext>\n )\n }\n\n return (\n <Table\n data-density={density}\n variant={variant}\n containerClassName={containerClassName}\n layout={hasExplicitSize ? \"fixed\" : undefined}\n >\n {hasExplicitSize && <ColGroup table={table} useFlexSize={false} />}\n <TableHeader>\n <HeaderCells\n table={table}\n enableSorting={enableSorting}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n />\n </TableHeader>\n <TableBody>{body}</TableBody>\n </Table>\n )\n}\n\nfunction DataTableRows<TData>({\n table,\n columns,\n numericColumns,\n truncate,\n grouping,\n groupConfig,\n columnLabels,\n collapsedGroups,\n onToggleGroup,\n}: {\n table: TanStackTable<TData>\n columns: ColumnDef<TData, unknown>[]\n numericColumns: Set<string>\n truncate?: boolean\n grouping: string | null\n groupConfig: GroupColumnConfig[]\n columnLabels: Record<string, string>\n collapsedGroups: Set<string>\n onToggleGroup: (key: string) => void\n}) {\n if (grouping) {\n return (\n <GroupedRows\n table={table}\n numericColumns={numericColumns}\n truncate={truncate}\n grouping={grouping}\n groupConfig={groupConfig}\n columnLabels={columnLabels}\n collapsedGroups={collapsedGroups}\n onToggleGroup={onToggleGroup}\n />\n )\n }\n\n if (table.getRowModel().rows.length === 0) {\n return (\n <TableRow>\n <TableCell colSpan={columns.length} className=\"h-24 text-center text-muted-foreground\">\n No results.\n </TableCell>\n </TableRow>\n )\n }\n\n return table.getRowModel().rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() ? \"selected\" : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n variant={numericColumns.has(cell.column.id) ? \"numeric\" : undefined}\n truncate={truncate && (cell.column.columnDef.meta?.truncate ?? true)}\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </TableCell>\n ))}\n </TableRow>\n ))\n}\n\n// ---------------------------------------------------------------------------\n// Slot categorization\n// ---------------------------------------------------------------------------\n\nfunction categorizeSlots(children: React.ReactNode) {\n const toolbarSlots: React.ReactNode[] = []\n const filterSlots: React.ReactNode[] = []\n const groupSlots: React.ReactNode[] = []\n const paginationSlots: React.ReactNode[] = []\n const restSlots: React.ReactNode[] = []\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child) && child.type === TableToolbar) {\n toolbarSlots.push(child)\n } else if (\n React.isValidElement(child) &&\n (child.type as React.ComponentType).displayName === \"DataTableFilter\"\n ) {\n filterSlots.push(child)\n } else if (\n React.isValidElement(child) &&\n (child.type as React.ComponentType).displayName === \"DataTableGroup\"\n ) {\n groupSlots.push(child)\n } else if (React.isValidElement(child) && child.type === DataTablePagination) {\n paginationSlots.push(child)\n } else {\n restSlots.push(child)\n }\n })\n return { toolbarSlots, filterSlots, groupSlots, paginationSlots, restSlots }\n}\n\n// ---------------------------------------------------------------------------\n// DataTable\n// ---------------------------------------------------------------------------\n\ninterface DataTableProps<TData, TValue> {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n /** @deprecated Use `<TableToolbar>` as a child instead */\n toolbar?: React.ReactNode\n enableSorting?: boolean\n enableColumnVisibility?: boolean\n columnOrder?: ColumnOrderState\n onColumnOrderChange?: (order: ColumnOrderState) => void\n columnVisibility?: VisibilityState\n onColumnVisibilityChange?: (vis: VisibilityState) => void\n columnLabels?: Record<string, string>\n onColumnLabelChange?: (columnId: string, label: string) => void\n enablePagination?: boolean\n defaultPageSize?: number\n pagination?: PaginationState\n onPaginationChange?: (pagination: PaginationState) => void\n enableColumnReorder?: boolean\n enableFiltering?: boolean\n filters?: FilterCondition[]\n onFiltersChange?: (filters: FilterCondition[]) => void\n filterConfig?: FilterColumnConfig[]\n /** When true, filtering is handled externally — onFiltersChange fires but rows are not filtered client-side. */\n manualFiltering?: boolean\n enableGrouping?: boolean\n /** ID of the column currently grouped by, or null for no grouping. */\n grouping?: string | null\n onGroupingChange?: (grouping: string | null) => void\n groupConfig?: GroupColumnConfig[]\n density?: \"compact\" | \"default\" | \"relaxed\"\n children?: React.ReactNode\n className?: string\n /** Variant passed to the base Table component */\n variant?: React.ComponentProps<typeof Table>[\"variant\"]\n /** className passed to the base Table's container div */\n containerClassName?: React.ComponentProps<typeof Table>[\"containerClassName\"]\n truncate?: boolean\n}\n\nfunction DataTable<TData, TValue>({\n columns,\n data,\n toolbar,\n enableSorting = false,\n enableColumnVisibility = false,\n children,\n columnOrder: controlledColumnOrder,\n onColumnOrderChange,\n columnVisibility: controlledColumnVisibility,\n onColumnVisibilityChange,\n columnLabels: controlledColumnLabels,\n onColumnLabelChange,\n enablePagination = false,\n defaultPageSize = 10,\n pagination: controlledPagination,\n onPaginationChange,\n enableColumnReorder = false,\n enableFiltering = false,\n filters: controlledFilters,\n onFiltersChange,\n filterConfig,\n manualFiltering = false,\n enableGrouping = false,\n grouping: controlledGrouping,\n onGroupingChange,\n groupConfig,\n density = \"default\",\n className,\n variant = \"card\",\n containerClassName,\n truncate = true,\n}: DataTableProps<TData, TValue>) {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [internalColumnVisibility, setInternalColumnVisibility] =\n React.useState<VisibilityState>({})\n const [internalColumnOrder, setInternalColumnOrder] =\n React.useState<ColumnOrderState>([])\n const [internalColumnLabels, setInternalColumnLabels] = React.useState<\n Record<string, string>\n >({})\n const [internalPagination, setInternalPagination] =\n React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: defaultPageSize,\n })\n const [internalFilters, setInternalFilters] = React.useState<FilterCondition[]>([])\n const { grouping, collapsedGroups, handleGroupingChange, toggleGroup } =\n useGroupingState(controlledGrouping, onGroupingChange)\n\n const pagination = controlledPagination ?? internalPagination\n const filters = controlledFilters ?? internalFilters\n\n const columnVisibility =\n controlledColumnVisibility ?? internalColumnVisibility\n const columnOrder = controlledColumnOrder ?? internalColumnOrder\n const columnLabels = controlledColumnLabels ?? internalColumnLabels\n\n const handlePaginationChange = React.useMemo(() => {\n if (!enablePagination) return\n if (onPaginationChange) {\n return (updater: PaginationState | ((prev: PaginationState) => PaginationState)) => {\n const next = typeof updater === \"function\" ? updater(controlledPagination!) : updater\n onPaginationChange(next)\n }\n }\n return setInternalPagination\n }, [enablePagination, onPaginationChange, controlledPagination])\n\n const handleVisibilityChange = React.useMemo(() => {\n if (!enableColumnVisibility) return\n return (updater: VisibilityState | ((prev: VisibilityState) => VisibilityState)) => {\n const next = typeof updater === \"function\" ? updater(columnVisibility) : updater\n ;(onColumnVisibilityChange ?? setInternalColumnVisibility)(next)\n }\n }, [enableColumnVisibility, columnVisibility, onColumnVisibilityChange])\n\n const handleFiltersChange = React.useCallback(\n (newFilters: FilterCondition[]) => {\n ;(onFiltersChange ?? setInternalFilters)(newFilters)\n },\n [onFiltersChange],\n )\n\n const resolvedFilterConfig: FilterColumnConfig[] = React.useMemo(\n () => filterConfig ?? deriveAccessorConfig(columns),\n [filterConfig, columns],\n )\n\n const resolvedGroupConfig: GroupColumnConfig[] = React.useMemo(\n () => groupConfig ?? deriveAccessorConfig(columns),\n [groupConfig, columns],\n )\n\n const filteredData = React.useMemo(\n (): TData[] => (!enableFiltering || manualFiltering ? data : applyClientFilters(data, filters)),\n [data, filters, enableFiltering, manualFiltering],\n )\n\n const handleColumnOrderChange = React.useCallback(\n (updater: ColumnOrderState | ((prev: ColumnOrderState) => ColumnOrderState)) => {\n const next = typeof updater === \"function\" ? updater(columnOrder) : updater\n ;(onColumnOrderChange ?? setInternalColumnOrder)(next)\n },\n [columnOrder, onColumnOrderChange],\n )\n\n const table = useReactTable({\n data: filteredData,\n columns,\n state: {\n sorting: enableSorting ? sorting : undefined,\n columnVisibility: enableColumnVisibility ? columnVisibility : undefined,\n columnOrder: columnOrder.length > 0 ? columnOrder : undefined,\n ...(enablePagination ? { pagination } : {}),\n },\n onSortingChange: enableSorting ? setSorting : undefined,\n onPaginationChange: handlePaginationChange,\n onColumnVisibilityChange: handleVisibilityChange,\n onColumnOrderChange: handleColumnOrderChange,\n getCoreRowModel: getCoreRowModel(),\n getSortedRowModel: enableSorting || enableGrouping ? getSortedRowModel() : undefined,\n getPaginationRowModel: enablePagination ? getPaginationRowModel() : undefined,\n })\n\n const setColumnLabel = React.useCallback(\n (columnId: string, label: string) => {\n ;(onColumnLabelChange ?? ((id: string, l: string) => setInternalColumnLabels((prev) => ({ ...prev, [id]: l }))))(columnId, label)\n },\n [onColumnLabelChange],\n )\n\n const {\n sensors: reorderSensors,\n draggingHeader,\n handleDragStart: handleColumnDragStart,\n handleDragEnd: handleColumnDragEnd,\n } = useColumnReorder(table, columnOrder)\n\n const numericColumns = React.useMemo(\n () => deriveNumericColumns(data, columns),\n [data, columns],\n )\n\n const hasExplicitSize = columns.some((c) => c.size != null)\n\n // Not memoized: TanStack's table instance is a stable reference that mutates\n // internally, so children reading table.getState() need fresh context on each render.\n const ctx = {\n table,\n columnLabels,\n setColumnLabel,\n filters,\n setFilters: handleFiltersChange,\n filterConfig: resolvedFilterConfig,\n enableFiltering,\n grouping,\n setGrouping: handleGroupingChange,\n groupConfig: resolvedGroupConfig,\n enableGrouping,\n } as TableContextValue<unknown>\n\n const { toolbarSlots, filterSlots, groupSlots, paginationSlots, restSlots } = categorizeSlots(children)\n\n return (\n <TableContext.Provider value={ctx}>\n <div data-slot=\"data-table\" className={cn(\"w-full space-y-2\", className)}>\n {toolbar}\n {toolbarSlots}\n {filterSlots}\n {groupSlots}\n <TableSurface\n table={table}\n columns={columns}\n variant={variant}\n containerClassName={containerClassName}\n density={density}\n hasExplicitSize={hasExplicitSize}\n enableSorting={enableSorting}\n enableColumnReorder={enableColumnReorder}\n enableGrouping={enableGrouping}\n grouping={grouping}\n groupConfig={resolvedGroupConfig}\n collapsedGroups={collapsedGroups}\n onToggleGroup={toggleGroup}\n numericColumns={numericColumns}\n columnLabels={columnLabels}\n truncate={truncate}\n reorderSensors={reorderSensors}\n draggingHeader={draggingHeader}\n onDragStart={handleColumnDragStart}\n onDragEnd={handleColumnDragEnd}\n />\n {paginationSlots}\n {restSlots}\n </div>\n </TableContext.Provider>\n )\n}\n\n// ---------------------------------------------------------------------------\n// TableToolbar\n// ---------------------------------------------------------------------------\n\nfunction TableToolbar({\n className,\n children,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"table-toolbar\"\n className={cn(\"flex items-center justify-end gap-2\", className)}\n {...props}\n >\n {children}\n </div>\n )\n}\n\nexport { DataTable, TableToolbar, useDataTable }\nexport type { DataTableProps, FilterCondition, FilterOperator, FilterColumnConfig, GroupColumnConfig }\n"],"names":["applyFilterCondition","cellValue","operator","filterValue","cell","filter","TableContext","React","useDataTable","ctx","DraggableHeader","header","children","position","numeric","truncate","attributes","listeners","setNodeRef","transform","transition","isDragging","useSortable","style","CSS","jsx","TableHead","cn","GripVerticalIcon","SortableHeaderContent","enableSorting","numericColumns","columnLabels","canSort","sorted","isNumeric","jsxs","e","flexRender","ArrowUpIcon","ArrowDownIcon","ArrowUpDownIcon","EMPTY_GROUP_KEY","bucketRowsByGroup","rows","grouping","buckets","rawByKey","row","raw","isEmpty","key","bucket","keys","allNumeric","k","a","b","resolveGroupLabel","table","groupConfig","groupColumn","g","DataRow","TableRow","TableCell","GroupHeaderRow","groupKey","groupLabel","isExpanded","colSpan","onToggle","ChevronDownIcon","ChevronRightIcon","GroupedRows","collapsedGroups","onToggleGroup","visibleColumnCount","order","Fragment","groupRows","deriveNumericColumns","data","columns","first","ids","col","deriveAccessorConfig","applyClientFilters","filters","active","f","condition","useColumnReorder","columnOrder","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","sortableKeyboardCoordinates","draggingColumnId","setDraggingColumnId","handleDragStart","event","handleDragEnd","over","currentOrder","column","oldIdx","newIdx","newOrder","arrayMove","draggingHeader","h","useGroupingState","controlledGrouping","onGroupingChange","internalGrouping","setInternalGrouping","setCollapsedGroups","handleGroupingChange","next","toggleGroup","prev","HeaderCells","headerGroup","DraggableHeaderCells","headerIdx","ColGroup","useFlexSize","TableSurface","props","variant","containerClassName","density","hasExplicitSize","enableColumnReorder","enableGrouping","reorderSensors","onDragStart","onDragEnd","body","DataTableRows","DndContext","closestCenter","restrictToHorizontalAxis","SortableContext","horizontalListSortingStrategy","Table","TableHeader","TableBody","DragOverlay","categorizeSlots","toolbarSlots","filterSlots","groupSlots","paginationSlots","restSlots","child","TableToolbar","DataTablePagination","DataTable","toolbar","enableColumnVisibility","controlledColumnOrder","onColumnOrderChange","controlledColumnVisibility","onColumnVisibilityChange","controlledColumnLabels","onColumnLabelChange","enablePagination","defaultPageSize","controlledPagination","onPaginationChange","enableFiltering","controlledFilters","onFiltersChange","filterConfig","manualFiltering","className","sorting","setSorting","internalColumnVisibility","setInternalColumnVisibility","internalColumnOrder","setInternalColumnOrder","internalColumnLabels","setInternalColumnLabels","internalPagination","setInternalPagination","internalFilters","setInternalFilters","pagination","columnVisibility","handlePaginationChange","updater","handleVisibilityChange","handleFiltersChange","newFilters","resolvedFilterConfig","resolvedGroupConfig","filteredData","handleColumnOrderChange","useReactTable","getCoreRowModel","getSortedRowModel","getPaginationRowModel","setColumnLabel","columnId","label","id","l","handleColumnDragStart","handleColumnDragEnd","c"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("radix-ui"),i=require("../../lib/utils.cjs");function d({...o}){return e.jsx(t.Popover.Root,{"data-slot":"popover",...o})}function p({...o}){return e.jsx(t.Popover.Trigger,{"data-slot":"popover-trigger",...o})}function s({...o}){return e.jsx(t.Popover.Anchor,{"data-slot":"popover-anchor",...o})}function l({className:o,align:r="center",sideOffset:n=4,...a}){return e.jsx(t.Popover.Portal,{"data-slot":"popover-portal",children:e.jsx(t.Popover.Content,{"data-slot":"popover-content",align:r,sideOffset:n,className:i.cn("z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",o),...a})})}exports.Popover=d;exports.PopoverAnchor=s;exports.PopoverContent=l;exports.PopoverTrigger=p;
|
|
2
|
+
//# sourceMappingURL=popover.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.cjs","sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal data-slot=\"popover-portal\">\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverAnchor, PopoverContent }\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverAnchor","PopoverContent","className","align","sideOffset","jsx","cn"],"mappings":"4KAKA,SAASA,EAAQ,CACf,GAAGC,CACL,EAAuD,CACrD,aAAQC,EAAAA,QAAiB,KAAjB,CAAsB,YAAU,UAAW,GAAGD,EAAO,CAC/D,CAEA,SAASE,EAAe,CACtB,GAAGF,CACL,EAA0D,CACxD,aAAQC,EAAAA,QAAiB,QAAjB,CAAyB,YAAU,kBAAmB,GAAGD,EAAO,CAC1E,CAEA,SAASG,EAAc,CACrB,GAAGH,CACL,EAAyD,CACvD,aAAQC,EAAAA,QAAiB,OAAjB,CAAwB,YAAU,iBAAkB,GAAGD,EAAO,CACxE,CAEA,SAASI,EAAe,CACtB,UAAAC,EACA,MAAAC,EAAQ,SACR,WAAAC,EAAa,EACb,GAAGP,CACL,EAA0D,CACxD,OACEQ,EAAAA,IAACP,EAAAA,QAAiB,OAAjB,CAAwB,YAAU,iBACjC,SAAAO,EAAAA,IAACP,EAAAA,QAAiB,QAAjB,CACC,YAAU,kBACV,MAAAK,EACA,WAAAC,EACA,UAAWE,EAAAA,GACT,ydACAJ,CAAA,EAED,GAAGL,CAAA,CAAA,EAER,CAEJ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { Popover as r } from "radix-ui";
|
|
3
|
+
import { cn as i } from "../../lib/utils.js";
|
|
4
|
+
function l({
|
|
5
|
+
...o
|
|
6
|
+
}) {
|
|
7
|
+
return /* @__PURE__ */ t(r.Root, { "data-slot": "popover", ...o });
|
|
8
|
+
}
|
|
9
|
+
function m({
|
|
10
|
+
...o
|
|
11
|
+
}) {
|
|
12
|
+
return /* @__PURE__ */ t(r.Trigger, { "data-slot": "popover-trigger", ...o });
|
|
13
|
+
}
|
|
14
|
+
function f({
|
|
15
|
+
...o
|
|
16
|
+
}) {
|
|
17
|
+
return /* @__PURE__ */ t(r.Anchor, { "data-slot": "popover-anchor", ...o });
|
|
18
|
+
}
|
|
19
|
+
function c({
|
|
20
|
+
className: o,
|
|
21
|
+
align: e = "center",
|
|
22
|
+
sideOffset: n = 4,
|
|
23
|
+
...a
|
|
24
|
+
}) {
|
|
25
|
+
return /* @__PURE__ */ t(r.Portal, { "data-slot": "popover-portal", children: /* @__PURE__ */ t(
|
|
26
|
+
r.Content,
|
|
27
|
+
{
|
|
28
|
+
"data-slot": "popover-content",
|
|
29
|
+
align: e,
|
|
30
|
+
sideOffset: n,
|
|
31
|
+
className: i(
|
|
32
|
+
"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
33
|
+
o
|
|
34
|
+
),
|
|
35
|
+
...a
|
|
36
|
+
}
|
|
37
|
+
) });
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
l as Popover,
|
|
41
|
+
f as PopoverAnchor,
|
|
42
|
+
c as PopoverContent,
|
|
43
|
+
m as PopoverTrigger
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.js","sources":["../../../src/components/ui/popover.tsx"],"sourcesContent":["import { Popover as PopoverPrimitive } from \"radix-ui\"\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal data-slot=\"popover-portal\">\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-lg bg-popover p-3 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nexport { Popover, PopoverTrigger, PopoverAnchor, PopoverContent }\n"],"names":["Popover","props","PopoverPrimitive","PopoverTrigger","PopoverAnchor","PopoverContent","className","align","sideOffset","jsx","cn"],"mappings":";;;AAKA,SAASA,EAAQ;AAAA,EACf,GAAGC;AACL,GAAuD;AACrD,2BAAQC,EAAiB,MAAjB,EAAsB,aAAU,WAAW,GAAGD,GAAO;AAC/D;AAEA,SAASE,EAAe;AAAA,EACtB,GAAGF;AACL,GAA0D;AACxD,2BAAQC,EAAiB,SAAjB,EAAyB,aAAU,mBAAmB,GAAGD,GAAO;AAC1E;AAEA,SAASG,EAAc;AAAA,EACrB,GAAGH;AACL,GAAyD;AACvD,2BAAQC,EAAiB,QAAjB,EAAwB,aAAU,kBAAkB,GAAGD,GAAO;AACxE;AAEA,SAASI,EAAe;AAAA,EACtB,WAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,YAAAC,IAAa;AAAA,EACb,GAAGP;AACL,GAA0D;AACxD,SACE,gBAAAQ,EAACP,EAAiB,QAAjB,EAAwB,aAAU,kBACjC,UAAA,gBAAAO;AAAA,IAACP,EAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV,OAAAK;AAAA,MACA,YAAAC;AAAA,MACA,WAAWE;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGL;AAAA,IAAA;AAAA,EAAA,GAER;AAEJ;"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const le=require("./components/composed/FormPatterns/FormSection.cjs"),pe=require("./components/composed/StatCard/StatCard.cjs"),ce=require("./components/composed/DataAppShell/DataAppShell.cjs"),Ce=require("./components/composed/Chat/Chat.cjs"),se=require("./components/composed/ConfirmDialog/ConfirmDialog.cjs"),j=require("./components/composed/RichListItem/RichListItem.cjs"),de=require("./components/composed/EmptyState/EmptyState.cjs"),me=require("./components/composed/TdpSearch/TdpSearch.cjs"),ge=require("./components/composed/TdpSearch/hooks/useSearch.cjs"),w=require("./components/composed/tdp-link.cjs"),F=require("./components/composed/tdp-url.cjs"),Se=require("./components/charts/AreaGraph/AreaGraph.cjs"),be=require("./components/charts/BarGraph/BarGraph.cjs"),Ie=require("./components/charts/Boxplot/Boxplot.cjs"),Te=require("./components/charts/Chromatogram/Chromatogram.cjs"),Me=require("./components/charts/ChromatogramChart/ChromatogramChart.cjs"),he=require("./components/charts/DotPlot/DotPlot.cjs"),Ae=require("./components/charts/Heatmap/Heatmap.cjs"),De=require("./components/charts/Histogram/Histogram.cjs"),Pe=require("./components/charts/LineGraph/LineGraph.cjs"),xe=require("./components/charts/PieChart/PieChart.cjs"),Be=require("./components/charts/PlateMap/PlateMap.cjs"),qe=require("./components/charts/ScatterGraph/ScatterGraph.cjs"),f=require("./components/ui/accordion.cjs"),O=require("./components/ui/alert.cjs"),C=require("./components/ui/alert-dialog.cjs"),ve=require("./components/ui/aspect-ratio.cjs"),q=require("./components/ui/avatar.cjs"),J=require("./components/ui/badge.cjs"),W=require("./components/ui/banner.cjs"),P=require("./components/ui/breadcrumb.cjs"),X=require("./components/ui/button.cjs"),y=require("./components/ui/button-group.cjs"),Y=require("./components/ui/calendar.cjs"),x=require("./components/ui/card.cjs"),v=require("./components/ui/carousel.cjs"),Ge=require("./components/ui/checkbox.cjs"),U=require("./components/ui/collapsible.cjs"),o=require("./components/ui/combobox.cjs"),T=require("./components/ui/command.cjs"),n=require("./components/ui/context-menu.cjs"),_=require("./components/ui/data-table/data-table.cjs"),Le=require("./components/ui/data-table/data-table-column-toggle.cjs"),Re=require("./components/ui/data-table/data-table-filter.cjs"),we=require("./components/ui/data-table/data-table-group.cjs"),ke=require("./components/ui/data-table/data-table-pagination.cjs"),d=require("./components/ui/dialog.cjs"),m=require("./components/ui/drawer.cjs"),a=require("./components/ui/dropdown-menu.cjs"),g=require("./components/ui/field.cjs"),z=require("./components/ui/hover-card.cjs"),He=require("./components/ui/input.cjs"),G=require("./components/ui/input-group.cjs"),N=require("./components/ui/input-otp.cjs"),S=require("./components/ui/item.cjs"),Z=require("./components/ui/kbd.cjs"),Fe=require("./components/ui/label.cjs"),r=require("./components/ui/menubar.cjs"),M=require("./components/ui/navigation-menu.cjs"),$=require("./components/ui/radio-group.cjs"),K=require("./components/ui/resizable.cjs"),ee=require("./components/ui/scroll-area.cjs"),b=require("./components/ui/select.cjs"),fe=require("./components/ui/separator.cjs"),A=require("./components/ui/sheet.cjs"),t=require("./components/ui/sidebar.cjs"),Oe=require("./components/ui/skeleton.cjs"),ye=require("./components/ui/slider.cjs"),Ne=require("./components/ui/sonner.cjs"),te=require("./components/ui/spinner.cjs"),Qe=require("./components/ui/switch.cjs"),D=require("./components/ui/table.cjs"),k=require("./components/ui/tabs.cjs"),Ee=require("./components/ui/textarea.cjs"),oe=require("./components/ui/toggle.cjs"),re=require("./components/ui/toggle-group.cjs"),Q=require("./components/ui/tooltip.cjs"),Ve=require("./components/ui/code-editor.cjs"),Ue=require("./components/ui/tetrascience-icon.cjs"),c=require("./components/ai/attachments.cjs"),B=require("./components/ai/chain-of-thought.cjs"),u=require("./components/ui/code-block.cjs"),h=require("./components/ai/confirmation.cjs"),I=require("./components/ai/context.cjs"),L=require("./components/ai/conversation.cjs"),l=require("./components/ai/inline-citation.cjs"),s=require("./components/ai/message.cjs"),p=require("./components/ai/model-selector.cjs"),e=require("./components/ai/prompt-input.cjs"),i=require("./components/ai/queue.cjs"),E=require("./components/ai/reasoning.cjs"),ne=require("./components/ai/shimmer.cjs"),V=require("./components/ai/sources.cjs"),_e=require("./components/ai/speech-input.cjs"),ae=require("./components/ai/stream-status.cjs"),ie=require("./components/ai/suggestion.cjs"),H=require("./components/ai/task.cjs"),R=require("./components/ai/tool.cjs"),ue=require("./utils/colors.cjs");exports.FormSection=le.FormSection;exports.StatCard=pe.StatCard;exports.DataAppShell=ce.DataAppShell;exports.Chat=Ce.Chat;exports.ConfirmDialog=se.ConfirmDialog;exports.RichListItem=j.RichListItem;exports.RichListItemAvatar=j.RichListItemAvatar;exports.EmptyState=de.EmptyState;exports.TdpSearch=me.TdpSearch;exports.useSearch=ge.useSearch;exports.TDPLink=w.TDPLink;exports.TdpNavigationContext=w.TdpNavigationContext;exports.TdpNavigationProvider=w.TdpNavigationProvider;exports.useTdpNavigation=w.useTdpNavigation;exports.useTdpNavigationContext=w.useTdpNavigationContext;exports.buildTdpUrl=F.buildTdpUrl;exports.getTdpBaseUrlFromReferrer=F.getTdpBaseUrlFromReferrer;exports.navigateToTdpUrl=F.navigateToTdpUrl;exports.tdpPaths=F.tdpPaths;exports.AreaGraph=Se.AreaGraph;exports.BarGraph=be.BarGraph;exports.Boxplot=Ie.Boxplot;exports.Chromatogram=Te.Chromatogram;exports.ChromatogramChart=Me.ChromatogramChart;exports.DotPlot=he.DotPlot;exports.Heatmap=Ae.Heatmap;exports.Histogram=De.Histogram;exports.LineGraph=Pe.LineGraph;exports.PieChart=xe.PieChart;exports.PlateMap=Be.PlateMap;exports.ScatterGraph=qe.ScatterGraph;exports.Accordion=f.Accordion;exports.AccordionContent=f.AccordionContent;exports.AccordionItem=f.AccordionItem;exports.AccordionTrigger=f.AccordionTrigger;exports.Alert=O.Alert;exports.AlertAction=O.AlertAction;exports.AlertDescription=O.AlertDescription;exports.AlertTitle=O.AlertTitle;exports.AlertDialog=C.AlertDialog;exports.AlertDialogAction=C.AlertDialogAction;exports.AlertDialogCancel=C.AlertDialogCancel;exports.AlertDialogContent=C.AlertDialogContent;exports.AlertDialogDescription=C.AlertDialogDescription;exports.AlertDialogFooter=C.AlertDialogFooter;exports.AlertDialogHeader=C.AlertDialogHeader;exports.AlertDialogMedia=C.AlertDialogMedia;exports.AlertDialogOverlay=C.AlertDialogOverlay;exports.AlertDialogPortal=C.AlertDialogPortal;exports.AlertDialogTitle=C.AlertDialogTitle;exports.AlertDialogTrigger=C.AlertDialogTrigger;exports.AspectRatio=ve.AspectRatio;exports.Avatar=q.Avatar;exports.AvatarBadge=q.AvatarBadge;exports.AvatarFallback=q.AvatarFallback;exports.AvatarGroup=q.AvatarGroup;exports.AvatarGroupCount=q.AvatarGroupCount;exports.AvatarImage=q.AvatarImage;exports.Badge=J.Badge;exports.badgeVariants=J.badgeVariants;exports.Banner=W.Banner;exports.bannerVariants=W.bannerVariants;exports.Breadcrumb=P.Breadcrumb;exports.BreadcrumbEllipsis=P.BreadcrumbEllipsis;exports.BreadcrumbItem=P.BreadcrumbItem;exports.BreadcrumbLink=P.BreadcrumbLink;exports.BreadcrumbList=P.BreadcrumbList;exports.BreadcrumbPage=P.BreadcrumbPage;exports.BreadcrumbSeparator=P.BreadcrumbSeparator;exports.Button=X.Button;exports.buttonVariants=X.buttonVariants;exports.ButtonGroup=y.ButtonGroup;exports.ButtonGroupSeparator=y.ButtonGroupSeparator;exports.ButtonGroupText=y.ButtonGroupText;exports.buttonGroupVariants=y.buttonGroupVariants;exports.Calendar=Y.Calendar;exports.CalendarDayButton=Y.CalendarDayButton;exports.Card=x.Card;exports.CardAction=x.CardAction;exports.CardContent=x.CardContent;exports.CardDescription=x.CardDescription;exports.CardFooter=x.CardFooter;exports.CardHeader=x.CardHeader;exports.CardTitle=x.CardTitle;exports.Carousel=v.Carousel;exports.CarouselContent=v.CarouselContent;exports.CarouselItem=v.CarouselItem;exports.CarouselNext=v.CarouselNext;exports.CarouselPrevious=v.CarouselPrevious;exports.useCarousel=v.useCarousel;exports.Checkbox=Ge.Checkbox;exports.Collapsible=U.Collapsible;exports.CollapsibleContent=U.CollapsibleContent;exports.CollapsibleTrigger=U.CollapsibleTrigger;exports.Combobox=o.Combobox;exports.ComboboxChip=o.ComboboxChip;exports.ComboboxChips=o.ComboboxChips;exports.ComboboxChipsInput=o.ComboboxChipsInput;exports.ComboboxCollection=o.ComboboxCollection;exports.ComboboxContent=o.ComboboxContent;exports.ComboboxEmpty=o.ComboboxEmpty;exports.ComboboxGroup=o.ComboboxGroup;exports.ComboboxInput=o.ComboboxInput;exports.ComboboxItem=o.ComboboxItem;exports.ComboboxLabel=o.ComboboxLabel;exports.ComboboxList=o.ComboboxList;exports.ComboboxSeparator=o.ComboboxSeparator;exports.ComboboxTrigger=o.ComboboxTrigger;exports.ComboboxValue=o.ComboboxValue;exports.useComboboxAnchor=o.useComboboxAnchor;exports.Command=T.Command;exports.CommandDialog=T.CommandDialog;exports.CommandEmpty=T.CommandEmpty;exports.CommandGroup=T.CommandGroup;exports.CommandInput=T.CommandInput;exports.CommandItem=T.CommandItem;exports.CommandList=T.CommandList;exports.CommandSeparator=T.CommandSeparator;exports.CommandShortcut=T.CommandShortcut;exports.ContextMenu=n.ContextMenu;exports.ContextMenuCheckboxItem=n.ContextMenuCheckboxItem;exports.ContextMenuContent=n.ContextMenuContent;exports.ContextMenuGroup=n.ContextMenuGroup;exports.ContextMenuItem=n.ContextMenuItem;exports.ContextMenuLabel=n.ContextMenuLabel;exports.ContextMenuPortal=n.ContextMenuPortal;exports.ContextMenuRadioGroup=n.ContextMenuRadioGroup;exports.ContextMenuRadioItem=n.ContextMenuRadioItem;exports.ContextMenuSeparator=n.ContextMenuSeparator;exports.ContextMenuShortcut=n.ContextMenuShortcut;exports.ContextMenuSub=n.ContextMenuSub;exports.ContextMenuSubContent=n.ContextMenuSubContent;exports.ContextMenuSubTrigger=n.ContextMenuSubTrigger;exports.ContextMenuTrigger=n.ContextMenuTrigger;exports.DataTable=_.DataTable;exports.TableToolbar=_.TableToolbar;exports.useDataTable=_.useDataTable;exports.DataTableColumnToggle=Le.DataTableColumnToggle;exports.DataTableFilter=Re.DataTableFilter;exports.DataTableGroup=we.DataTableGroup;exports.DataTablePagination=ke.DataTablePagination;exports.Dialog=d.Dialog;exports.DialogBody=d.DialogBody;exports.DialogClose=d.DialogClose;exports.DialogContent=d.DialogContent;exports.DialogDescription=d.DialogDescription;exports.DialogFooter=d.DialogFooter;exports.DialogHeader=d.DialogHeader;exports.DialogOverlay=d.DialogOverlay;exports.DialogPortal=d.DialogPortal;exports.DialogTitle=d.DialogTitle;exports.DialogTrigger=d.DialogTrigger;exports.Drawer=m.Drawer;exports.DrawerClose=m.DrawerClose;exports.DrawerContent=m.DrawerContent;exports.DrawerDescription=m.DrawerDescription;exports.DrawerFooter=m.DrawerFooter;exports.DrawerHeader=m.DrawerHeader;exports.DrawerOverlay=m.DrawerOverlay;exports.DrawerPortal=m.DrawerPortal;exports.DrawerTitle=m.DrawerTitle;exports.DrawerTrigger=m.DrawerTrigger;exports.DropdownMenu=a.DropdownMenu;exports.DropdownMenuCheckboxItem=a.DropdownMenuCheckboxItem;exports.DropdownMenuContent=a.DropdownMenuContent;exports.DropdownMenuGroup=a.DropdownMenuGroup;exports.DropdownMenuItem=a.DropdownMenuItem;exports.DropdownMenuLabel=a.DropdownMenuLabel;exports.DropdownMenuPortal=a.DropdownMenuPortal;exports.DropdownMenuRadioGroup=a.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=a.DropdownMenuRadioItem;exports.DropdownMenuSeparator=a.DropdownMenuSeparator;exports.DropdownMenuShortcut=a.DropdownMenuShortcut;exports.DropdownMenuSub=a.DropdownMenuSub;exports.DropdownMenuSubContent=a.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=a.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=a.DropdownMenuTrigger;exports.Field=g.Field;exports.FieldContent=g.FieldContent;exports.FieldDescription=g.FieldDescription;exports.FieldError=g.FieldError;exports.FieldGroup=g.FieldGroup;exports.FieldLabel=g.FieldLabel;exports.FieldLegend=g.FieldLegend;exports.FieldSeparator=g.FieldSeparator;exports.FieldSet=g.FieldSet;exports.FieldTitle=g.FieldTitle;exports.HoverCard=z.HoverCard;exports.HoverCardContent=z.HoverCardContent;exports.HoverCardTrigger=z.HoverCardTrigger;exports.Input=He.Input;exports.InputGroup=G.InputGroup;exports.InputGroupAddon=G.InputGroupAddon;exports.InputGroupButton=G.InputGroupButton;exports.InputGroupInput=G.InputGroupInput;exports.InputGroupText=G.InputGroupText;exports.InputGroupTextarea=G.InputGroupTextarea;exports.InputOTP=N.InputOTP;exports.InputOTPGroup=N.InputOTPGroup;exports.InputOTPSeparator=N.InputOTPSeparator;exports.InputOTPSlot=N.InputOTPSlot;exports.Item=S.Item;exports.ItemActions=S.ItemActions;exports.ItemContent=S.ItemContent;exports.ItemDescription=S.ItemDescription;exports.ItemFooter=S.ItemFooter;exports.ItemGroup=S.ItemGroup;exports.ItemHeader=S.ItemHeader;exports.ItemMedia=S.ItemMedia;exports.ItemSeparator=S.ItemSeparator;exports.ItemTitle=S.ItemTitle;exports.Kbd=Z.Kbd;exports.KbdGroup=Z.KbdGroup;exports.Label=Fe.Label;exports.Menubar=r.Menubar;exports.MenubarCheckboxItem=r.MenubarCheckboxItem;exports.MenubarContent=r.MenubarContent;exports.MenubarGroup=r.MenubarGroup;exports.MenubarItem=r.MenubarItem;exports.MenubarLabel=r.MenubarLabel;exports.MenubarMenu=r.MenubarMenu;exports.MenubarPortal=r.MenubarPortal;exports.MenubarRadioGroup=r.MenubarRadioGroup;exports.MenubarRadioItem=r.MenubarRadioItem;exports.MenubarSeparator=r.MenubarSeparator;exports.MenubarShortcut=r.MenubarShortcut;exports.MenubarSub=r.MenubarSub;exports.MenubarSubContent=r.MenubarSubContent;exports.MenubarSubTrigger=r.MenubarSubTrigger;exports.MenubarTrigger=r.MenubarTrigger;exports.NavigationMenu=M.NavigationMenu;exports.NavigationMenuContent=M.NavigationMenuContent;exports.NavigationMenuIndicator=M.NavigationMenuIndicator;exports.NavigationMenuItem=M.NavigationMenuItem;exports.NavigationMenuLink=M.NavigationMenuLink;exports.NavigationMenuList=M.NavigationMenuList;exports.NavigationMenuTrigger=M.NavigationMenuTrigger;exports.NavigationMenuViewport=M.NavigationMenuViewport;exports.navigationMenuTriggerStyle=M.navigationMenuTriggerStyle;exports.RadioGroup=$.RadioGroup;exports.RadioGroupItem=$.RadioGroupItem;exports.ResizableHandle=K.ResizableHandle;exports.ResizablePanel=K.ResizablePanel;exports.ResizablePanelGroup=K.ResizablePanelGroup;exports.ScrollArea=ee.ScrollArea;exports.ScrollBar=ee.ScrollBar;exports.Select=b.Select;exports.SelectContent=b.SelectContent;exports.SelectGroup=b.SelectGroup;exports.SelectItem=b.SelectItem;exports.SelectLabel=b.SelectLabel;exports.SelectScrollDownButton=b.SelectScrollDownButton;exports.SelectScrollUpButton=b.SelectScrollUpButton;exports.SelectSeparator=b.SelectSeparator;exports.SelectTrigger=b.SelectTrigger;exports.SelectValue=b.SelectValue;exports.Separator=fe.Separator;exports.Sheet=A.Sheet;exports.SheetClose=A.SheetClose;exports.SheetContent=A.SheetContent;exports.SheetDescription=A.SheetDescription;exports.SheetFooter=A.SheetFooter;exports.SheetHeader=A.SheetHeader;exports.SheetTitle=A.SheetTitle;exports.SheetTrigger=A.SheetTrigger;exports.Sidebar=t.Sidebar;exports.SidebarContent=t.SidebarContent;exports.SidebarFooter=t.SidebarFooter;exports.SidebarGroup=t.SidebarGroup;exports.SidebarGroupAction=t.SidebarGroupAction;exports.SidebarGroupContent=t.SidebarGroupContent;exports.SidebarGroupLabel=t.SidebarGroupLabel;exports.SidebarHeader=t.SidebarHeader;exports.SidebarInput=t.SidebarInput;exports.SidebarInset=t.SidebarInset;exports.SidebarMenu=t.SidebarMenu;exports.SidebarMenuAction=t.SidebarMenuAction;exports.SidebarMenuBadge=t.SidebarMenuBadge;exports.SidebarMenuButton=t.SidebarMenuButton;exports.SidebarMenuItem=t.SidebarMenuItem;exports.SidebarMenuSkeleton=t.SidebarMenuSkeleton;exports.SidebarMenuSub=t.SidebarMenuSub;exports.SidebarMenuSubButton=t.SidebarMenuSubButton;exports.SidebarMenuSubItem=t.SidebarMenuSubItem;exports.SidebarProvider=t.SidebarProvider;exports.SidebarRail=t.SidebarRail;exports.SidebarSeparator=t.SidebarSeparator;exports.SidebarTrigger=t.SidebarTrigger;exports.useSidebar=t.useSidebar;exports.Skeleton=Oe.Skeleton;exports.Slider=ye.Slider;exports.Toaster=Ne.Toaster;exports.Spinner=te.Spinner;exports.spinnerVariants=te.spinnerVariants;exports.Switch=Qe.Switch;exports.Table=D.Table;exports.TableBody=D.TableBody;exports.TableCaption=D.TableCaption;exports.TableCell=D.TableCell;exports.TableFooter=D.TableFooter;exports.TableHead=D.TableHead;exports.TableHeader=D.TableHeader;exports.TableRow=D.TableRow;exports.Tabs=k.Tabs;exports.TabsContent=k.TabsContent;exports.TabsList=k.TabsList;exports.TabsTrigger=k.TabsTrigger;exports.tabsListVariants=k.tabsListVariants;exports.Textarea=Ee.Textarea;exports.Toggle=oe.Toggle;exports.toggleVariants=oe.toggleVariants;exports.ToggleGroup=re.ToggleGroup;exports.ToggleGroupItem=re.ToggleGroupItem;exports.Tooltip=Q.Tooltip;exports.TooltipContent=Q.TooltipContent;exports.TooltipProvider=Q.TooltipProvider;exports.TooltipTrigger=Q.TooltipTrigger;exports.CodeEditor=Ve.CodeEditor;exports.TetraScienceIcon=Ue.TetraScienceIcon;exports.Attachment=c.Attachment;exports.AttachmentEmpty=c.AttachmentEmpty;exports.AttachmentHoverCard=c.AttachmentHoverCard;exports.AttachmentHoverCardContent=c.AttachmentHoverCardContent;exports.AttachmentHoverCardTrigger=c.AttachmentHoverCardTrigger;exports.AttachmentInfo=c.AttachmentInfo;exports.AttachmentPreview=c.AttachmentPreview;exports.AttachmentRemove=c.AttachmentRemove;exports.Attachments=c.Attachments;exports.getAttachmentLabel=c.getAttachmentLabel;exports.getMediaCategory=c.getMediaCategory;exports.useAttachmentContext=c.useAttachmentContext;exports.useAttachmentsContext=c.useAttachmentsContext;exports.ChainOfThought=B.ChainOfThought;exports.ChainOfThoughtContent=B.ChainOfThoughtContent;exports.ChainOfThoughtImage=B.ChainOfThoughtImage;exports.ChainOfThoughtSource=B.ChainOfThoughtSource;exports.ChainOfThoughtSources=B.ChainOfThoughtSources;exports.ChainOfThoughtStep=B.ChainOfThoughtStep;exports.ChainOfThoughtTrigger=B.ChainOfThoughtTrigger;exports.CodeBlock=u.CodeBlock;exports.CodeBlockActions=u.CodeBlockActions;exports.CodeBlockContainer=u.CodeBlockContainer;exports.CodeBlockContent=u.CodeBlockContent;exports.CodeBlockCopyButton=u.CodeBlockCopyButton;exports.CodeBlockFilename=u.CodeBlockFilename;exports.CodeBlockHeader=u.CodeBlockHeader;exports.CodeBlockLanguageSelector=u.CodeBlockLanguageSelector;exports.CodeBlockLanguageSelectorContent=u.CodeBlockLanguageSelectorContent;exports.CodeBlockLanguageSelectorItem=u.CodeBlockLanguageSelectorItem;exports.CodeBlockLanguageSelectorTrigger=u.CodeBlockLanguageSelectorTrigger;exports.CodeBlockLanguageSelectorValue=u.CodeBlockLanguageSelectorValue;exports.CodeBlockTitle=u.CodeBlockTitle;exports.highlightCode=u.highlightCode;exports.Confirmation=h.Confirmation;exports.ConfirmationAccepted=h.ConfirmationAccepted;exports.ConfirmationAction=h.ConfirmationAction;exports.ConfirmationActions=h.ConfirmationActions;exports.ConfirmationCode=h.ConfirmationCode;exports.ConfirmationRejected=h.ConfirmationRejected;exports.ConfirmationRequest=h.ConfirmationRequest;exports.ConfirmationShortcut=h.ConfirmationShortcut;exports.ConfirmationTitle=h.ConfirmationTitle;exports.Context=I.Context;exports.ContextCacheUsage=I.ContextCacheUsage;exports.ContextContent=I.ContextContent;exports.ContextContentBody=I.ContextContentBody;exports.ContextContentFooter=I.ContextContentFooter;exports.ContextContentHeader=I.ContextContentHeader;exports.ContextInputUsage=I.ContextInputUsage;exports.ContextOutputUsage=I.ContextOutputUsage;exports.ContextReasoningUsage=I.ContextReasoningUsage;exports.ContextTrigger=I.ContextTrigger;exports.Conversation=L.Conversation;exports.ConversationContent=L.ConversationContent;exports.ConversationDownload=L.ConversationDownload;exports.ConversationEmptyState=L.ConversationEmptyState;exports.ConversationScrollButton=L.ConversationScrollButton;exports.messagesToMarkdown=L.messagesToMarkdown;exports.InlineCitation=l.InlineCitation;exports.InlineCitationCard=l.InlineCitationCard;exports.InlineCitationCardBody=l.InlineCitationCardBody;exports.InlineCitationCardTrigger=l.InlineCitationCardTrigger;exports.InlineCitationCarousel=l.InlineCitationCarousel;exports.InlineCitationCarouselContent=l.InlineCitationCarouselContent;exports.InlineCitationCarouselHeader=l.InlineCitationCarouselHeader;exports.InlineCitationCarouselIndex=l.InlineCitationCarouselIndex;exports.InlineCitationCarouselItem=l.InlineCitationCarouselItem;exports.InlineCitationCarouselNext=l.InlineCitationCarouselNext;exports.InlineCitationCarouselPrev=l.InlineCitationCarouselPrev;exports.InlineCitationQuote=l.InlineCitationQuote;exports.InlineCitationSource=l.InlineCitationSource;exports.InlineCitationText=l.InlineCitationText;exports.Message=s.Message;exports.MessageAction=s.MessageAction;exports.MessageActions=s.MessageActions;exports.MessageBranch=s.MessageBranch;exports.MessageBranchContent=s.MessageBranchContent;exports.MessageBranchNext=s.MessageBranchNext;exports.MessageBranchPage=s.MessageBranchPage;exports.MessageBranchPrevious=s.MessageBranchPrevious;exports.MessageBranchSelector=s.MessageBranchSelector;exports.MessageContent=s.MessageContent;exports.MessageResponse=s.MessageResponse;exports.MessageToolbar=s.MessageToolbar;exports.ModelSelector=p.ModelSelector;exports.ModelSelectorContent=p.ModelSelectorContent;exports.ModelSelectorDialog=p.ModelSelectorDialog;exports.ModelSelectorEmpty=p.ModelSelectorEmpty;exports.ModelSelectorGroup=p.ModelSelectorGroup;exports.ModelSelectorInput=p.ModelSelectorInput;exports.ModelSelectorItem=p.ModelSelectorItem;exports.ModelSelectorList=p.ModelSelectorList;exports.ModelSelectorLogo=p.ModelSelectorLogo;exports.ModelSelectorLogoGroup=p.ModelSelectorLogoGroup;exports.ModelSelectorName=p.ModelSelectorName;exports.ModelSelectorSeparator=p.ModelSelectorSeparator;exports.ModelSelectorShortcut=p.ModelSelectorShortcut;exports.ModelSelectorTrigger=p.ModelSelectorTrigger;exports.LocalReferencedSourcesContext=e.LocalReferencedSourcesContext;exports.PromptInput=e.PromptInput;exports.PromptInputActionAddAttachments=e.PromptInputActionAddAttachments;exports.PromptInputActionAddScreenshot=e.PromptInputActionAddScreenshot;exports.PromptInputActionMenu=e.PromptInputActionMenu;exports.PromptInputActionMenuContent=e.PromptInputActionMenuContent;exports.PromptInputActionMenuItem=e.PromptInputActionMenuItem;exports.PromptInputActionMenuTrigger=e.PromptInputActionMenuTrigger;exports.PromptInputBody=e.PromptInputBody;exports.PromptInputButton=e.PromptInputButton;exports.PromptInputCommand=e.PromptInputCommand;exports.PromptInputCommandEmpty=e.PromptInputCommandEmpty;exports.PromptInputCommandGroup=e.PromptInputCommandGroup;exports.PromptInputCommandInput=e.PromptInputCommandInput;exports.PromptInputCommandItem=e.PromptInputCommandItem;exports.PromptInputCommandList=e.PromptInputCommandList;exports.PromptInputCommandSeparator=e.PromptInputCommandSeparator;exports.PromptInputFooter=e.PromptInputFooter;exports.PromptInputHeader=e.PromptInputHeader;exports.PromptInputHoverCard=e.PromptInputHoverCard;exports.PromptInputHoverCardContent=e.PromptInputHoverCardContent;exports.PromptInputHoverCardTrigger=e.PromptInputHoverCardTrigger;exports.PromptInputProvider=e.PromptInputProvider;exports.PromptInputSelect=e.PromptInputSelect;exports.PromptInputSelectContent=e.PromptInputSelectContent;exports.PromptInputSelectItem=e.PromptInputSelectItem;exports.PromptInputSelectTrigger=e.PromptInputSelectTrigger;exports.PromptInputSelectValue=e.PromptInputSelectValue;exports.PromptInputSlotSwap=e.PromptInputSlotSwap;exports.PromptInputSubmit=e.PromptInputSubmit;exports.PromptInputTab=e.PromptInputTab;exports.PromptInputTabBody=e.PromptInputTabBody;exports.PromptInputTabItem=e.PromptInputTabItem;exports.PromptInputTabLabel=e.PromptInputTabLabel;exports.PromptInputTabsList=e.PromptInputTabsList;exports.PromptInputTextarea=e.PromptInputTextarea;exports.PromptInputTools=e.PromptInputTools;exports.usePromptInputAttachments=e.usePromptInputAttachments;exports.usePromptInputController=e.usePromptInputController;exports.usePromptInputReferencedSources=e.usePromptInputReferencedSources;exports.useProviderAttachments=e.useProviderAttachments;exports.Queue=i.Queue;exports.QueueItem=i.QueueItem;exports.QueueItemAction=i.QueueItemAction;exports.QueueItemActions=i.QueueItemActions;exports.QueueItemAttachment=i.QueueItemAttachment;exports.QueueItemContent=i.QueueItemContent;exports.QueueItemDescription=i.QueueItemDescription;exports.QueueItemFile=i.QueueItemFile;exports.QueueItemImage=i.QueueItemImage;exports.QueueItemIndicator=i.QueueItemIndicator;exports.QueueList=i.QueueList;exports.QueueSection=i.QueueSection;exports.QueueSectionContent=i.QueueSectionContent;exports.QueueSectionLabel=i.QueueSectionLabel;exports.QueueSectionTrigger=i.QueueSectionTrigger;exports.Reasoning=E.Reasoning;exports.ReasoningContent=E.ReasoningContent;exports.ReasoningTrigger=E.ReasoningTrigger;exports.useReasoning=E.useReasoning;exports.Shimmer=ne.Shimmer;exports.TS_SHIMMER_GRADIENT=ne.TS_SHIMMER_GRADIENT;exports.Source=V.Source;exports.Sources=V.Sources;exports.SourcesContent=V.SourcesContent;exports.SourcesTrigger=V.SourcesTrigger;exports.SpeechInput=_e.SpeechInput;exports.STREAM_STATUS_ICONS=ae.STREAM_STATUS_ICONS;exports.StreamStatus=ae.StreamStatus;exports.Suggestion=ie.Suggestion;exports.Suggestions=ie.Suggestions;exports.Task=H.Task;exports.TaskContent=H.TaskContent;exports.TaskItem=H.TaskItem;exports.TaskItemFile=H.TaskItemFile;exports.TaskTrigger=H.TaskTrigger;exports.Tool=R.Tool;exports.ToolContent=R.ToolContent;exports.ToolHeader=R.ToolHeader;exports.ToolInput=R.ToolInput;exports.ToolOutput=R.ToolOutput;exports.getStatusBadge=R.getStatusBadge;exports.CHART_COLORS=ue.CHART_COLORS;exports.COLORS=ue.COLORS;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});;/* empty css */const de=require("./components/composed/FormPatterns/FormSection.cjs"),me=require("./components/composed/StatCard/StatCard.cjs"),ge=require("./components/composed/DataAppShell/DataAppShell.cjs"),be=require("./components/composed/Chat/Chat.cjs"),J=require("./components/composed/PlateMapEditor/PlateMapEditor.cjs"),Se=require("./components/composed/PlateMapEditor/PlateMapActionsMenu.cjs"),Ie=require("./components/composed/PlateMapEditor/PlateMapPlateSelector.cjs"),Te=require("./components/composed/PlateMapEditor/PlatePaintGrid.cjs"),Me=require("./components/composed/PlateMapEditor/WellMetadataForm.cjs"),he=require("./components/composed/PlateMapEditor/WellManifestTable.cjs"),Pe=require("./components/composed/PlateMapEditor/TemplateIOPanel.cjs"),z=require("./components/composed/PlateMapEditor/csvPlateTriage.cjs"),Ae=require("./components/composed/PlateMapEditor/ManifestFilterPopover.cjs"),De=require("./components/composed/PlateMapEditor/WellLegend.cjs"),xe=require("./components/composed/PlateMapEditor/PlateZoomControl.cjs"),X=require("./components/composed/PlateMapEditor/autoFill.cjs"),D=require("./components/composed/PlateMapEditor/wellGrid.cjs"),ve=require("./components/composed/ConfirmDialog/ConfirmDialog.cjs"),Y=require("./components/composed/RichListItem/RichListItem.cjs"),qe=require("./components/composed/EmptyState/EmptyState.cjs"),Be=require("./components/composed/TdpSearch/TdpSearch.cjs"),Ge=require("./components/composed/TdpSearch/hooks/useSearch.cjs"),F=require("./components/composed/tdp-link.cjs"),f=require("./components/composed/tdp-url.cjs"),Le=require("./components/charts/AreaGraph/AreaGraph.cjs"),we=require("./components/charts/BarGraph/BarGraph.cjs"),Re=require("./components/charts/Boxplot/Boxplot.cjs"),Fe=require("./components/charts/Chromatogram/Chromatogram.cjs"),ke=require("./components/charts/ChromatogramChart/ChromatogramChart.cjs"),He=require("./components/charts/DotPlot/DotPlot.cjs"),fe=require("./components/charts/Heatmap/Heatmap.cjs"),Oe=require("./components/charts/Histogram/Histogram.cjs"),ye=require("./components/charts/LineGraph/LineGraph.cjs"),Ne=require("./components/charts/PieChart/PieChart.cjs"),Qe=require("./components/charts/PlateMap/PlateMap.cjs"),Ee=require("./components/charts/ScatterGraph/ScatterGraph.cjs"),O=require("./components/ui/accordion.cjs"),y=require("./components/ui/alert.cjs"),c=require("./components/ui/alert-dialog.cjs"),Ve=require("./components/ui/aspect-ratio.cjs"),B=require("./components/ui/avatar.cjs"),$=require("./components/ui/badge.cjs"),ee=require("./components/ui/banner.cjs"),x=require("./components/ui/breadcrumb.cjs"),te=require("./components/ui/button.cjs"),N=require("./components/ui/button-group.cjs"),oe=require("./components/ui/calendar.cjs"),v=require("./components/ui/card.cjs"),G=require("./components/ui/carousel.cjs"),Ue=require("./components/ui/checkbox.cjs"),K=require("./components/ui/collapsible.cjs"),o=require("./components/ui/combobox.cjs"),T=require("./components/ui/command.cjs"),n=require("./components/ui/context-menu.cjs"),Q=require("./components/ui/data-table/data-table.cjs"),We=require("./components/ui/data-table/data-table-column-toggle.cjs"),_e=require("./components/ui/data-table/data-table-filter.cjs"),ze=require("./components/ui/data-table/data-table-group.cjs"),Ke=require("./components/ui/data-table/data-table-pagination.cjs"),d=require("./components/ui/dialog.cjs"),m=require("./components/ui/drawer.cjs"),a=require("./components/ui/dropdown-menu.cjs"),g=require("./components/ui/field.cjs"),j=require("./components/ui/hover-card.cjs"),je=require("./components/ui/input.cjs"),L=require("./components/ui/input-group.cjs"),E=require("./components/ui/input-otp.cjs"),b=require("./components/ui/item.cjs"),re=require("./components/ui/kbd.cjs"),Ze=require("./components/ui/label.cjs"),r=require("./components/ui/menubar.cjs"),M=require("./components/ui/navigation-menu.cjs"),V=require("./components/ui/popover.cjs"),ne=require("./components/ui/radio-group.cjs"),Z=require("./components/ui/resizable.cjs"),ae=require("./components/ui/scroll-area.cjs"),S=require("./components/ui/select.cjs"),Je=require("./components/ui/separator.cjs"),P=require("./components/ui/sheet.cjs"),t=require("./components/ui/sidebar.cjs"),Xe=require("./components/ui/skeleton.cjs"),Ye=require("./components/ui/slider.cjs"),$e=require("./components/ui/sonner.cjs"),ie=require("./components/ui/spinner.cjs"),et=require("./components/ui/switch.cjs"),A=require("./components/ui/table.cjs"),k=require("./components/ui/tabs.cjs"),tt=require("./components/ui/textarea.cjs"),ue=require("./components/ui/toggle.cjs"),le=require("./components/ui/toggle-group.cjs"),U=require("./components/ui/tooltip.cjs"),ot=require("./components/ui/code-editor.cjs"),rt=require("./components/ui/tetrascience-icon.cjs"),s=require("./components/ai/attachments.cjs"),q=require("./components/ai/chain-of-thought.cjs"),u=require("./components/ui/code-block.cjs"),h=require("./components/ai/confirmation.cjs"),I=require("./components/ai/context.cjs"),w=require("./components/ai/conversation.cjs"),l=require("./components/ai/inline-citation.cjs"),C=require("./components/ai/message.cjs"),p=require("./components/ai/model-selector.cjs"),e=require("./components/ai/prompt-input.cjs"),i=require("./components/ai/queue.cjs"),W=require("./components/ai/reasoning.cjs"),pe=require("./components/ai/shimmer.cjs"),_=require("./components/ai/sources.cjs"),nt=require("./components/ai/speech-input.cjs"),se=require("./components/ai/stream-status.cjs"),ce=require("./components/ai/suggestion.cjs"),H=require("./components/ai/task.cjs"),R=require("./components/ai/tool.cjs"),Ce=require("./utils/colors.cjs");exports.FormSection=de.FormSection;exports.StatCard=me.StatCard;exports.DataAppShell=ge.DataAppShell;exports.Chat=be.Chat;exports.PlateMapEditor=J.PlateMapEditor;exports.getPlateMapScopedWellId=J.getPlateMapScopedWellId;exports.PlateMapActionsMenu=Se.PlateMapActionsMenu;exports.PlateMapPlateSelector=Ie.PlateMapPlateSelector;exports.PlatePaintGrid=Te.PlatePaintGrid;exports.WellMetadataForm=Me.WellMetadataForm;exports.WellManifestTable=he.WellManifestTable;exports.TemplateIOPanel=Pe.TemplateIOPanel;exports.plateOptionsFromCsvTriage=z.plateOptionsFromCsvTriage;exports.triagePlateMapCsvByBarcode=z.triagePlateMapCsvByBarcode;exports.triagePlateMapCsvFile=z.triagePlateMapCsvFile;exports.ManifestFilterPopover=Ae.ManifestFilterPopover;exports.WellLegend=De.WellLegend;exports.PlateZoomControl=xe.PlateZoomControl;exports.autoFillPositions=X.autoFillPositions;exports.autoFillRecords=X.autoFillRecords;exports.allPositions=D.allPositions;exports.parsePos=D.parsePos;exports.parseRowLabel=D.parseRowLabel;exports.pos=D.pos;exports.rectPositions=D.rectPositions;exports.resolveDimensions=D.resolveDimensions;exports.rowLabel=D.rowLabel;exports.ConfirmDialog=ve.ConfirmDialog;exports.RichListItem=Y.RichListItem;exports.RichListItemAvatar=Y.RichListItemAvatar;exports.EmptyState=qe.EmptyState;exports.TdpSearch=Be.TdpSearch;exports.useSearch=Ge.useSearch;exports.TDPLink=F.TDPLink;exports.TdpNavigationContext=F.TdpNavigationContext;exports.TdpNavigationProvider=F.TdpNavigationProvider;exports.useTdpNavigation=F.useTdpNavigation;exports.useTdpNavigationContext=F.useTdpNavigationContext;exports.buildTdpUrl=f.buildTdpUrl;exports.getTdpBaseUrlFromReferrer=f.getTdpBaseUrlFromReferrer;exports.navigateToTdpUrl=f.navigateToTdpUrl;exports.tdpPaths=f.tdpPaths;exports.AreaGraph=Le.AreaGraph;exports.BarGraph=we.BarGraph;exports.Boxplot=Re.Boxplot;exports.Chromatogram=Fe.Chromatogram;exports.ChromatogramChart=ke.ChromatogramChart;exports.DotPlot=He.DotPlot;exports.Heatmap=fe.Heatmap;exports.Histogram=Oe.Histogram;exports.LineGraph=ye.LineGraph;exports.PieChart=Ne.PieChart;exports.PlateMap=Qe.PlateMap;exports.ScatterGraph=Ee.ScatterGraph;exports.Accordion=O.Accordion;exports.AccordionContent=O.AccordionContent;exports.AccordionItem=O.AccordionItem;exports.AccordionTrigger=O.AccordionTrigger;exports.Alert=y.Alert;exports.AlertAction=y.AlertAction;exports.AlertDescription=y.AlertDescription;exports.AlertTitle=y.AlertTitle;exports.AlertDialog=c.AlertDialog;exports.AlertDialogAction=c.AlertDialogAction;exports.AlertDialogCancel=c.AlertDialogCancel;exports.AlertDialogContent=c.AlertDialogContent;exports.AlertDialogDescription=c.AlertDialogDescription;exports.AlertDialogFooter=c.AlertDialogFooter;exports.AlertDialogHeader=c.AlertDialogHeader;exports.AlertDialogMedia=c.AlertDialogMedia;exports.AlertDialogOverlay=c.AlertDialogOverlay;exports.AlertDialogPortal=c.AlertDialogPortal;exports.AlertDialogTitle=c.AlertDialogTitle;exports.AlertDialogTrigger=c.AlertDialogTrigger;exports.AspectRatio=Ve.AspectRatio;exports.Avatar=B.Avatar;exports.AvatarBadge=B.AvatarBadge;exports.AvatarFallback=B.AvatarFallback;exports.AvatarGroup=B.AvatarGroup;exports.AvatarGroupCount=B.AvatarGroupCount;exports.AvatarImage=B.AvatarImage;exports.Badge=$.Badge;exports.badgeVariants=$.badgeVariants;exports.Banner=ee.Banner;exports.bannerVariants=ee.bannerVariants;exports.Breadcrumb=x.Breadcrumb;exports.BreadcrumbEllipsis=x.BreadcrumbEllipsis;exports.BreadcrumbItem=x.BreadcrumbItem;exports.BreadcrumbLink=x.BreadcrumbLink;exports.BreadcrumbList=x.BreadcrumbList;exports.BreadcrumbPage=x.BreadcrumbPage;exports.BreadcrumbSeparator=x.BreadcrumbSeparator;exports.Button=te.Button;exports.buttonVariants=te.buttonVariants;exports.ButtonGroup=N.ButtonGroup;exports.ButtonGroupSeparator=N.ButtonGroupSeparator;exports.ButtonGroupText=N.ButtonGroupText;exports.buttonGroupVariants=N.buttonGroupVariants;exports.Calendar=oe.Calendar;exports.CalendarDayButton=oe.CalendarDayButton;exports.Card=v.Card;exports.CardAction=v.CardAction;exports.CardContent=v.CardContent;exports.CardDescription=v.CardDescription;exports.CardFooter=v.CardFooter;exports.CardHeader=v.CardHeader;exports.CardTitle=v.CardTitle;exports.Carousel=G.Carousel;exports.CarouselContent=G.CarouselContent;exports.CarouselItem=G.CarouselItem;exports.CarouselNext=G.CarouselNext;exports.CarouselPrevious=G.CarouselPrevious;exports.useCarousel=G.useCarousel;exports.Checkbox=Ue.Checkbox;exports.Collapsible=K.Collapsible;exports.CollapsibleContent=K.CollapsibleContent;exports.CollapsibleTrigger=K.CollapsibleTrigger;exports.Combobox=o.Combobox;exports.ComboboxChip=o.ComboboxChip;exports.ComboboxChips=o.ComboboxChips;exports.ComboboxChipsInput=o.ComboboxChipsInput;exports.ComboboxCollection=o.ComboboxCollection;exports.ComboboxContent=o.ComboboxContent;exports.ComboboxEmpty=o.ComboboxEmpty;exports.ComboboxGroup=o.ComboboxGroup;exports.ComboboxInput=o.ComboboxInput;exports.ComboboxItem=o.ComboboxItem;exports.ComboboxLabel=o.ComboboxLabel;exports.ComboboxList=o.ComboboxList;exports.ComboboxSeparator=o.ComboboxSeparator;exports.ComboboxTrigger=o.ComboboxTrigger;exports.ComboboxValue=o.ComboboxValue;exports.useComboboxAnchor=o.useComboboxAnchor;exports.Command=T.Command;exports.CommandDialog=T.CommandDialog;exports.CommandEmpty=T.CommandEmpty;exports.CommandGroup=T.CommandGroup;exports.CommandInput=T.CommandInput;exports.CommandItem=T.CommandItem;exports.CommandList=T.CommandList;exports.CommandSeparator=T.CommandSeparator;exports.CommandShortcut=T.CommandShortcut;exports.ContextMenu=n.ContextMenu;exports.ContextMenuCheckboxItem=n.ContextMenuCheckboxItem;exports.ContextMenuContent=n.ContextMenuContent;exports.ContextMenuGroup=n.ContextMenuGroup;exports.ContextMenuItem=n.ContextMenuItem;exports.ContextMenuLabel=n.ContextMenuLabel;exports.ContextMenuPortal=n.ContextMenuPortal;exports.ContextMenuRadioGroup=n.ContextMenuRadioGroup;exports.ContextMenuRadioItem=n.ContextMenuRadioItem;exports.ContextMenuSeparator=n.ContextMenuSeparator;exports.ContextMenuShortcut=n.ContextMenuShortcut;exports.ContextMenuSub=n.ContextMenuSub;exports.ContextMenuSubContent=n.ContextMenuSubContent;exports.ContextMenuSubTrigger=n.ContextMenuSubTrigger;exports.ContextMenuTrigger=n.ContextMenuTrigger;exports.DataTable=Q.DataTable;exports.TableToolbar=Q.TableToolbar;exports.applyFilterCondition=Q.applyFilterCondition;exports.useDataTable=Q.useDataTable;exports.DataTableColumnToggle=We.DataTableColumnToggle;exports.DataTableFilter=_e.DataTableFilter;exports.DataTableGroup=ze.DataTableGroup;exports.DataTablePagination=Ke.DataTablePagination;exports.Dialog=d.Dialog;exports.DialogBody=d.DialogBody;exports.DialogClose=d.DialogClose;exports.DialogContent=d.DialogContent;exports.DialogDescription=d.DialogDescription;exports.DialogFooter=d.DialogFooter;exports.DialogHeader=d.DialogHeader;exports.DialogOverlay=d.DialogOverlay;exports.DialogPortal=d.DialogPortal;exports.DialogTitle=d.DialogTitle;exports.DialogTrigger=d.DialogTrigger;exports.Drawer=m.Drawer;exports.DrawerClose=m.DrawerClose;exports.DrawerContent=m.DrawerContent;exports.DrawerDescription=m.DrawerDescription;exports.DrawerFooter=m.DrawerFooter;exports.DrawerHeader=m.DrawerHeader;exports.DrawerOverlay=m.DrawerOverlay;exports.DrawerPortal=m.DrawerPortal;exports.DrawerTitle=m.DrawerTitle;exports.DrawerTrigger=m.DrawerTrigger;exports.DropdownMenu=a.DropdownMenu;exports.DropdownMenuCheckboxItem=a.DropdownMenuCheckboxItem;exports.DropdownMenuContent=a.DropdownMenuContent;exports.DropdownMenuGroup=a.DropdownMenuGroup;exports.DropdownMenuItem=a.DropdownMenuItem;exports.DropdownMenuLabel=a.DropdownMenuLabel;exports.DropdownMenuPortal=a.DropdownMenuPortal;exports.DropdownMenuRadioGroup=a.DropdownMenuRadioGroup;exports.DropdownMenuRadioItem=a.DropdownMenuRadioItem;exports.DropdownMenuSeparator=a.DropdownMenuSeparator;exports.DropdownMenuShortcut=a.DropdownMenuShortcut;exports.DropdownMenuSub=a.DropdownMenuSub;exports.DropdownMenuSubContent=a.DropdownMenuSubContent;exports.DropdownMenuSubTrigger=a.DropdownMenuSubTrigger;exports.DropdownMenuTrigger=a.DropdownMenuTrigger;exports.Field=g.Field;exports.FieldContent=g.FieldContent;exports.FieldDescription=g.FieldDescription;exports.FieldError=g.FieldError;exports.FieldGroup=g.FieldGroup;exports.FieldLabel=g.FieldLabel;exports.FieldLegend=g.FieldLegend;exports.FieldSeparator=g.FieldSeparator;exports.FieldSet=g.FieldSet;exports.FieldTitle=g.FieldTitle;exports.HoverCard=j.HoverCard;exports.HoverCardContent=j.HoverCardContent;exports.HoverCardTrigger=j.HoverCardTrigger;exports.Input=je.Input;exports.InputGroup=L.InputGroup;exports.InputGroupAddon=L.InputGroupAddon;exports.InputGroupButton=L.InputGroupButton;exports.InputGroupInput=L.InputGroupInput;exports.InputGroupText=L.InputGroupText;exports.InputGroupTextarea=L.InputGroupTextarea;exports.InputOTP=E.InputOTP;exports.InputOTPGroup=E.InputOTPGroup;exports.InputOTPSeparator=E.InputOTPSeparator;exports.InputOTPSlot=E.InputOTPSlot;exports.Item=b.Item;exports.ItemActions=b.ItemActions;exports.ItemContent=b.ItemContent;exports.ItemDescription=b.ItemDescription;exports.ItemFooter=b.ItemFooter;exports.ItemGroup=b.ItemGroup;exports.ItemHeader=b.ItemHeader;exports.ItemMedia=b.ItemMedia;exports.ItemSeparator=b.ItemSeparator;exports.ItemTitle=b.ItemTitle;exports.Kbd=re.Kbd;exports.KbdGroup=re.KbdGroup;exports.Label=Ze.Label;exports.Menubar=r.Menubar;exports.MenubarCheckboxItem=r.MenubarCheckboxItem;exports.MenubarContent=r.MenubarContent;exports.MenubarGroup=r.MenubarGroup;exports.MenubarItem=r.MenubarItem;exports.MenubarLabel=r.MenubarLabel;exports.MenubarMenu=r.MenubarMenu;exports.MenubarPortal=r.MenubarPortal;exports.MenubarRadioGroup=r.MenubarRadioGroup;exports.MenubarRadioItem=r.MenubarRadioItem;exports.MenubarSeparator=r.MenubarSeparator;exports.MenubarShortcut=r.MenubarShortcut;exports.MenubarSub=r.MenubarSub;exports.MenubarSubContent=r.MenubarSubContent;exports.MenubarSubTrigger=r.MenubarSubTrigger;exports.MenubarTrigger=r.MenubarTrigger;exports.NavigationMenu=M.NavigationMenu;exports.NavigationMenuContent=M.NavigationMenuContent;exports.NavigationMenuIndicator=M.NavigationMenuIndicator;exports.NavigationMenuItem=M.NavigationMenuItem;exports.NavigationMenuLink=M.NavigationMenuLink;exports.NavigationMenuList=M.NavigationMenuList;exports.NavigationMenuTrigger=M.NavigationMenuTrigger;exports.NavigationMenuViewport=M.NavigationMenuViewport;exports.navigationMenuTriggerStyle=M.navigationMenuTriggerStyle;exports.Popover=V.Popover;exports.PopoverAnchor=V.PopoverAnchor;exports.PopoverContent=V.PopoverContent;exports.PopoverTrigger=V.PopoverTrigger;exports.RadioGroup=ne.RadioGroup;exports.RadioGroupItem=ne.RadioGroupItem;exports.ResizableHandle=Z.ResizableHandle;exports.ResizablePanel=Z.ResizablePanel;exports.ResizablePanelGroup=Z.ResizablePanelGroup;exports.ScrollArea=ae.ScrollArea;exports.ScrollBar=ae.ScrollBar;exports.Select=S.Select;exports.SelectContent=S.SelectContent;exports.SelectGroup=S.SelectGroup;exports.SelectItem=S.SelectItem;exports.SelectLabel=S.SelectLabel;exports.SelectScrollDownButton=S.SelectScrollDownButton;exports.SelectScrollUpButton=S.SelectScrollUpButton;exports.SelectSeparator=S.SelectSeparator;exports.SelectTrigger=S.SelectTrigger;exports.SelectValue=S.SelectValue;exports.Separator=Je.Separator;exports.Sheet=P.Sheet;exports.SheetClose=P.SheetClose;exports.SheetContent=P.SheetContent;exports.SheetDescription=P.SheetDescription;exports.SheetFooter=P.SheetFooter;exports.SheetHeader=P.SheetHeader;exports.SheetTitle=P.SheetTitle;exports.SheetTrigger=P.SheetTrigger;exports.Sidebar=t.Sidebar;exports.SidebarContent=t.SidebarContent;exports.SidebarFooter=t.SidebarFooter;exports.SidebarGroup=t.SidebarGroup;exports.SidebarGroupAction=t.SidebarGroupAction;exports.SidebarGroupContent=t.SidebarGroupContent;exports.SidebarGroupLabel=t.SidebarGroupLabel;exports.SidebarHeader=t.SidebarHeader;exports.SidebarInput=t.SidebarInput;exports.SidebarInset=t.SidebarInset;exports.SidebarMenu=t.SidebarMenu;exports.SidebarMenuAction=t.SidebarMenuAction;exports.SidebarMenuBadge=t.SidebarMenuBadge;exports.SidebarMenuButton=t.SidebarMenuButton;exports.SidebarMenuItem=t.SidebarMenuItem;exports.SidebarMenuSkeleton=t.SidebarMenuSkeleton;exports.SidebarMenuSub=t.SidebarMenuSub;exports.SidebarMenuSubButton=t.SidebarMenuSubButton;exports.SidebarMenuSubItem=t.SidebarMenuSubItem;exports.SidebarProvider=t.SidebarProvider;exports.SidebarRail=t.SidebarRail;exports.SidebarSeparator=t.SidebarSeparator;exports.SidebarTrigger=t.SidebarTrigger;exports.useSidebar=t.useSidebar;exports.Skeleton=Xe.Skeleton;exports.Slider=Ye.Slider;exports.Toaster=$e.Toaster;exports.Spinner=ie.Spinner;exports.spinnerVariants=ie.spinnerVariants;exports.Switch=et.Switch;exports.Table=A.Table;exports.TableBody=A.TableBody;exports.TableCaption=A.TableCaption;exports.TableCell=A.TableCell;exports.TableFooter=A.TableFooter;exports.TableHead=A.TableHead;exports.TableHeader=A.TableHeader;exports.TableRow=A.TableRow;exports.Tabs=k.Tabs;exports.TabsContent=k.TabsContent;exports.TabsList=k.TabsList;exports.TabsTrigger=k.TabsTrigger;exports.tabsListVariants=k.tabsListVariants;exports.Textarea=tt.Textarea;exports.Toggle=ue.Toggle;exports.toggleVariants=ue.toggleVariants;exports.ToggleGroup=le.ToggleGroup;exports.ToggleGroupItem=le.ToggleGroupItem;exports.Tooltip=U.Tooltip;exports.TooltipContent=U.TooltipContent;exports.TooltipProvider=U.TooltipProvider;exports.TooltipTrigger=U.TooltipTrigger;exports.CodeEditor=ot.CodeEditor;exports.TetraScienceIcon=rt.TetraScienceIcon;exports.Attachment=s.Attachment;exports.AttachmentEmpty=s.AttachmentEmpty;exports.AttachmentHoverCard=s.AttachmentHoverCard;exports.AttachmentHoverCardContent=s.AttachmentHoverCardContent;exports.AttachmentHoverCardTrigger=s.AttachmentHoverCardTrigger;exports.AttachmentInfo=s.AttachmentInfo;exports.AttachmentPreview=s.AttachmentPreview;exports.AttachmentRemove=s.AttachmentRemove;exports.Attachments=s.Attachments;exports.getAttachmentLabel=s.getAttachmentLabel;exports.getMediaCategory=s.getMediaCategory;exports.useAttachmentContext=s.useAttachmentContext;exports.useAttachmentsContext=s.useAttachmentsContext;exports.ChainOfThought=q.ChainOfThought;exports.ChainOfThoughtContent=q.ChainOfThoughtContent;exports.ChainOfThoughtImage=q.ChainOfThoughtImage;exports.ChainOfThoughtSource=q.ChainOfThoughtSource;exports.ChainOfThoughtSources=q.ChainOfThoughtSources;exports.ChainOfThoughtStep=q.ChainOfThoughtStep;exports.ChainOfThoughtTrigger=q.ChainOfThoughtTrigger;exports.CodeBlock=u.CodeBlock;exports.CodeBlockActions=u.CodeBlockActions;exports.CodeBlockContainer=u.CodeBlockContainer;exports.CodeBlockContent=u.CodeBlockContent;exports.CodeBlockCopyButton=u.CodeBlockCopyButton;exports.CodeBlockFilename=u.CodeBlockFilename;exports.CodeBlockHeader=u.CodeBlockHeader;exports.CodeBlockLanguageSelector=u.CodeBlockLanguageSelector;exports.CodeBlockLanguageSelectorContent=u.CodeBlockLanguageSelectorContent;exports.CodeBlockLanguageSelectorItem=u.CodeBlockLanguageSelectorItem;exports.CodeBlockLanguageSelectorTrigger=u.CodeBlockLanguageSelectorTrigger;exports.CodeBlockLanguageSelectorValue=u.CodeBlockLanguageSelectorValue;exports.CodeBlockTitle=u.CodeBlockTitle;exports.highlightCode=u.highlightCode;exports.Confirmation=h.Confirmation;exports.ConfirmationAccepted=h.ConfirmationAccepted;exports.ConfirmationAction=h.ConfirmationAction;exports.ConfirmationActions=h.ConfirmationActions;exports.ConfirmationCode=h.ConfirmationCode;exports.ConfirmationRejected=h.ConfirmationRejected;exports.ConfirmationRequest=h.ConfirmationRequest;exports.ConfirmationShortcut=h.ConfirmationShortcut;exports.ConfirmationTitle=h.ConfirmationTitle;exports.Context=I.Context;exports.ContextCacheUsage=I.ContextCacheUsage;exports.ContextContent=I.ContextContent;exports.ContextContentBody=I.ContextContentBody;exports.ContextContentFooter=I.ContextContentFooter;exports.ContextContentHeader=I.ContextContentHeader;exports.ContextInputUsage=I.ContextInputUsage;exports.ContextOutputUsage=I.ContextOutputUsage;exports.ContextReasoningUsage=I.ContextReasoningUsage;exports.ContextTrigger=I.ContextTrigger;exports.Conversation=w.Conversation;exports.ConversationContent=w.ConversationContent;exports.ConversationDownload=w.ConversationDownload;exports.ConversationEmptyState=w.ConversationEmptyState;exports.ConversationScrollButton=w.ConversationScrollButton;exports.messagesToMarkdown=w.messagesToMarkdown;exports.InlineCitation=l.InlineCitation;exports.InlineCitationCard=l.InlineCitationCard;exports.InlineCitationCardBody=l.InlineCitationCardBody;exports.InlineCitationCardTrigger=l.InlineCitationCardTrigger;exports.InlineCitationCarousel=l.InlineCitationCarousel;exports.InlineCitationCarouselContent=l.InlineCitationCarouselContent;exports.InlineCitationCarouselHeader=l.InlineCitationCarouselHeader;exports.InlineCitationCarouselIndex=l.InlineCitationCarouselIndex;exports.InlineCitationCarouselItem=l.InlineCitationCarouselItem;exports.InlineCitationCarouselNext=l.InlineCitationCarouselNext;exports.InlineCitationCarouselPrev=l.InlineCitationCarouselPrev;exports.InlineCitationQuote=l.InlineCitationQuote;exports.InlineCitationSource=l.InlineCitationSource;exports.InlineCitationText=l.InlineCitationText;exports.Message=C.Message;exports.MessageAction=C.MessageAction;exports.MessageActions=C.MessageActions;exports.MessageBranch=C.MessageBranch;exports.MessageBranchContent=C.MessageBranchContent;exports.MessageBranchNext=C.MessageBranchNext;exports.MessageBranchPage=C.MessageBranchPage;exports.MessageBranchPrevious=C.MessageBranchPrevious;exports.MessageBranchSelector=C.MessageBranchSelector;exports.MessageContent=C.MessageContent;exports.MessageResponse=C.MessageResponse;exports.MessageToolbar=C.MessageToolbar;exports.ModelSelector=p.ModelSelector;exports.ModelSelectorContent=p.ModelSelectorContent;exports.ModelSelectorDialog=p.ModelSelectorDialog;exports.ModelSelectorEmpty=p.ModelSelectorEmpty;exports.ModelSelectorGroup=p.ModelSelectorGroup;exports.ModelSelectorInput=p.ModelSelectorInput;exports.ModelSelectorItem=p.ModelSelectorItem;exports.ModelSelectorList=p.ModelSelectorList;exports.ModelSelectorLogo=p.ModelSelectorLogo;exports.ModelSelectorLogoGroup=p.ModelSelectorLogoGroup;exports.ModelSelectorName=p.ModelSelectorName;exports.ModelSelectorSeparator=p.ModelSelectorSeparator;exports.ModelSelectorShortcut=p.ModelSelectorShortcut;exports.ModelSelectorTrigger=p.ModelSelectorTrigger;exports.LocalReferencedSourcesContext=e.LocalReferencedSourcesContext;exports.PromptInput=e.PromptInput;exports.PromptInputActionAddAttachments=e.PromptInputActionAddAttachments;exports.PromptInputActionAddScreenshot=e.PromptInputActionAddScreenshot;exports.PromptInputActionMenu=e.PromptInputActionMenu;exports.PromptInputActionMenuContent=e.PromptInputActionMenuContent;exports.PromptInputActionMenuItem=e.PromptInputActionMenuItem;exports.PromptInputActionMenuTrigger=e.PromptInputActionMenuTrigger;exports.PromptInputBody=e.PromptInputBody;exports.PromptInputButton=e.PromptInputButton;exports.PromptInputCommand=e.PromptInputCommand;exports.PromptInputCommandEmpty=e.PromptInputCommandEmpty;exports.PromptInputCommandGroup=e.PromptInputCommandGroup;exports.PromptInputCommandInput=e.PromptInputCommandInput;exports.PromptInputCommandItem=e.PromptInputCommandItem;exports.PromptInputCommandList=e.PromptInputCommandList;exports.PromptInputCommandSeparator=e.PromptInputCommandSeparator;exports.PromptInputFooter=e.PromptInputFooter;exports.PromptInputHeader=e.PromptInputHeader;exports.PromptInputHoverCard=e.PromptInputHoverCard;exports.PromptInputHoverCardContent=e.PromptInputHoverCardContent;exports.PromptInputHoverCardTrigger=e.PromptInputHoverCardTrigger;exports.PromptInputProvider=e.PromptInputProvider;exports.PromptInputSelect=e.PromptInputSelect;exports.PromptInputSelectContent=e.PromptInputSelectContent;exports.PromptInputSelectItem=e.PromptInputSelectItem;exports.PromptInputSelectTrigger=e.PromptInputSelectTrigger;exports.PromptInputSelectValue=e.PromptInputSelectValue;exports.PromptInputSlotSwap=e.PromptInputSlotSwap;exports.PromptInputSubmit=e.PromptInputSubmit;exports.PromptInputTab=e.PromptInputTab;exports.PromptInputTabBody=e.PromptInputTabBody;exports.PromptInputTabItem=e.PromptInputTabItem;exports.PromptInputTabLabel=e.PromptInputTabLabel;exports.PromptInputTabsList=e.PromptInputTabsList;exports.PromptInputTextarea=e.PromptInputTextarea;exports.PromptInputTools=e.PromptInputTools;exports.usePromptInputAttachments=e.usePromptInputAttachments;exports.usePromptInputController=e.usePromptInputController;exports.usePromptInputReferencedSources=e.usePromptInputReferencedSources;exports.useProviderAttachments=e.useProviderAttachments;exports.Queue=i.Queue;exports.QueueItem=i.QueueItem;exports.QueueItemAction=i.QueueItemAction;exports.QueueItemActions=i.QueueItemActions;exports.QueueItemAttachment=i.QueueItemAttachment;exports.QueueItemContent=i.QueueItemContent;exports.QueueItemDescription=i.QueueItemDescription;exports.QueueItemFile=i.QueueItemFile;exports.QueueItemImage=i.QueueItemImage;exports.QueueItemIndicator=i.QueueItemIndicator;exports.QueueList=i.QueueList;exports.QueueSection=i.QueueSection;exports.QueueSectionContent=i.QueueSectionContent;exports.QueueSectionLabel=i.QueueSectionLabel;exports.QueueSectionTrigger=i.QueueSectionTrigger;exports.Reasoning=W.Reasoning;exports.ReasoningContent=W.ReasoningContent;exports.ReasoningTrigger=W.ReasoningTrigger;exports.useReasoning=W.useReasoning;exports.Shimmer=pe.Shimmer;exports.TS_SHIMMER_GRADIENT=pe.TS_SHIMMER_GRADIENT;exports.Source=_.Source;exports.Sources=_.Sources;exports.SourcesContent=_.SourcesContent;exports.SourcesTrigger=_.SourcesTrigger;exports.SpeechInput=nt.SpeechInput;exports.STREAM_STATUS_ICONS=se.STREAM_STATUS_ICONS;exports.StreamStatus=se.StreamStatus;exports.Suggestion=ce.Suggestion;exports.Suggestions=ce.Suggestions;exports.Task=H.Task;exports.TaskContent=H.TaskContent;exports.TaskItem=H.TaskItem;exports.TaskItemFile=H.TaskItemFile;exports.TaskTrigger=H.TaskTrigger;exports.Tool=R.Tool;exports.ToolContent=R.ToolContent;exports.ToolHeader=R.ToolHeader;exports.ToolInput=R.ToolInput;exports.ToolOutput=R.ToolOutput;exports.getStatusBadge=R.getStatusBadge;exports.CHART_COLORS=Ce.CHART_COLORS;exports.COLORS=Ce.COLORS;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|