@sqlrooms/schema-tree 0.28.0-rc.0 → 0.28.1-rc.0

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.
Files changed (2) hide show
  1. package/README.md +52 -13
  2. package/package.json +6 -6
package/README.md CHANGED
@@ -1,19 +1,58 @@
1
- This package is part of the SQLRooms framework.
1
+ React components for rendering DuckDB database/schema/table/column trees in SQLRooms apps.
2
2
 
3
- # DuckDB schema tree
3
+ ## Installation
4
4
 
5
- A React component library for rendering DuckDB schema trees in a hierarchical view. It provides components to display database schemas, tables, and columns in an interactive tree structure with features like:
5
+ ```bash
6
+ npm install @sqlrooms/schema-tree @sqlrooms/duckdb @sqlrooms/ui
7
+ ```
6
8
 
7
- - Expandable/collapsible tree nodes
8
- - Column type badges
9
- - Context menus for actions (e.g. copying column names)
10
- - Customizable node rendering
11
- - Hover states and visual feedback
9
+ ## What this package provides
12
10
 
13
- The main components are:
11
+ - `TableSchemaTree` for rendering full schema hierarchies
12
+ - node components (`DatabaseTreeNode`, `SchemaTreeNode`, `TableTreeNode`, `ColumnTreeNode`)
13
+ - `TreeNodeActionsMenu` for context-style node actions
14
+ - `defaultRenderTableSchemaNode` for quick customization
14
15
 
15
- - `TableSchemaTree`: The root tree component that renders the full schema hierarchy
16
- - `ColumnTreeNode`: Specialized node for displaying column information
17
- - `TreeNodeActionsMenu`: Reusable menu component for node actions
16
+ ## Basic usage
18
17
 
19
- This package is used by SQLRooms to provide schema browsing capabilities in the database explorer interface.
18
+ ```tsx
19
+ import {TableSchemaTree} from '@sqlrooms/schema-tree';
20
+ import {useRoomStore} from './store';
21
+
22
+ export function SchemaExplorer() {
23
+ const schemaTrees = useRoomStore((state) => state.db.schemaTrees ?? []);
24
+
25
+ if (!schemaTrees.length) {
26
+ return <div className="p-2 text-sm">No schema loaded yet.</div>;
27
+ }
28
+
29
+ return (
30
+ <TableSchemaTree
31
+ className="h-full"
32
+ schemaTrees={schemaTrees}
33
+ skipSingleDatabaseOrSchema
34
+ />
35
+ );
36
+ }
37
+ ```
38
+
39
+ ## Custom node rendering
40
+
41
+ ```tsx
42
+ import {DbSchemaNode} from '@sqlrooms/duckdb';
43
+ import {defaultRenderTableSchemaNode, TableSchemaTree} from '@sqlrooms/schema-tree';
44
+
45
+ const renderNode = (node: DbSchemaNode, isOpen: boolean) => (
46
+ <div className={isOpen ? 'opacity-100' : 'opacity-90'}>
47
+ {defaultRenderTableSchemaNode(node)}
48
+ </div>
49
+ );
50
+
51
+ <TableSchemaTree schemaTrees={schemaTrees} renderNode={renderNode} />;
52
+ ```
53
+
54
+ ## Notes
55
+
56
+ - `schemaTrees` comes from the DuckDB slice (`state.db.schemaTrees`).
57
+ - Call `state.db.refreshTableSchemas()` after table changes to keep the tree up to date.
58
+ - This package is used by SQLRooms SQL editor table-structure panels.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/schema-tree",
3
- "version": "0.28.0-rc.0",
3
+ "version": "0.28.1-rc.0",
4
4
  "author": "SQLRooms Contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -25,10 +25,10 @@
25
25
  "typedoc": "typedoc"
26
26
  },
27
27
  "dependencies": {
28
- "@sqlrooms/data-table": "0.28.0-rc.0",
29
- "@sqlrooms/duckdb": "0.28.0-rc.0",
30
- "@sqlrooms/ui": "0.28.0-rc.0",
31
- "@sqlrooms/utils": "0.28.0-rc.0",
28
+ "@sqlrooms/data-table": "0.28.1-rc.0",
29
+ "@sqlrooms/duckdb": "0.28.1-rc.0",
30
+ "@sqlrooms/ui": "0.28.1-rc.0",
31
+ "@sqlrooms/utils": "0.28.1-rc.0",
32
32
  "lucide-react": "^0.556.0"
33
33
  },
34
34
  "peerDependencies": {
@@ -39,5 +39,5 @@
39
39
  "@types/react": "^19.1.13",
40
40
  "@types/react-dom": "^19.1.9"
41
41
  },
42
- "gitHead": "87a478edbff690e04c38cc717db8e11e844565c8"
42
+ "gitHead": "1e0dcae95d1ccdbcd1b32df1d647d0f794b94e5e"
43
43
  }