@treenity/react 3.0.0 → 3.0.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/README.md +91 -0
- package/dist/AclEditor.d.ts +1 -1
- package/dist/AclEditor.d.ts.map +1 -1
- package/dist/AclEditor.js +5 -5
- package/dist/AclEditor.js.map +1 -1
- package/dist/ActionCards.d.ts +9 -0
- package/dist/ActionCards.d.ts.map +1 -0
- package/dist/ActionCards.js +96 -0
- package/dist/ActionCards.js.map +1 -0
- package/dist/App.d.ts.map +1 -1
- package/dist/App.js +71 -185
- package/dist/App.js.map +1 -1
- package/dist/ComponentSection.d.ts +15 -0
- package/dist/ComponentSection.d.ts.map +1 -0
- package/dist/ComponentSection.js +25 -0
- package/dist/ComponentSection.js.map +1 -0
- package/dist/ErrorBoundary.d.ts +18 -0
- package/dist/ErrorBoundary.d.ts.map +1 -0
- package/dist/ErrorBoundary.js +17 -0
- package/dist/ErrorBoundary.js.map +1 -0
- package/dist/Inspector.d.ts +1 -0
- package/dist/Inspector.d.ts.map +1 -1
- package/dist/Inspector.js +22 -347
- package/dist/Inspector.js.map +1 -1
- package/dist/Login.d.ts +8 -0
- package/dist/Login.d.ts.map +1 -0
- package/dist/Login.js +45 -0
- package/dist/Login.js.map +1 -0
- package/dist/NodeEditor.d.ts +11 -0
- package/dist/NodeEditor.d.ts.map +1 -0
- package/dist/NodeEditor.js +157 -0
- package/dist/NodeEditor.js.map +1 -0
- package/dist/Tree.d.ts +1 -0
- package/dist/Tree.d.ts.map +1 -1
- package/dist/Tree.js +8 -27
- package/dist/Tree.js.map +1 -1
- package/dist/bind/engine.js +1 -1
- package/dist/bind/engine.js.map +1 -1
- package/dist/bind/eval.d.ts +1 -1
- package/dist/bind/eval.d.ts.map +1 -1
- package/dist/bind/hook.d.ts +1 -1
- package/dist/bind/hook.d.ts.map +1 -1
- package/dist/bind/hook.js +1 -1
- package/dist/bind/hook.js.map +1 -1
- package/dist/cache.d.ts +1 -1
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +4 -0
- package/dist/cache.js.map +1 -1
- package/dist/client-tree.d.ts +1 -2
- package/dist/client-tree.d.ts.map +1 -1
- package/dist/client-tree.js +12 -5
- package/dist/client-tree.js.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +2 -4
- package/dist/client.js.map +1 -1
- package/dist/components/ConfirmDialog.d.ts +9 -0
- package/dist/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/ConfirmDialog.js +6 -0
- package/dist/components/ConfirmDialog.js.map +1 -0
- package/dist/components/ConfirmPopover.d.ts +8 -0
- package/dist/components/ConfirmPopover.d.ts.map +1 -0
- package/dist/components/ConfirmPopover.js +9 -0
- package/dist/components/ConfirmPopover.js.map +1 -0
- package/dist/components/PathBreadcrumb.d.ts +5 -0
- package/dist/components/PathBreadcrumb.d.ts.map +1 -0
- package/dist/components/PathBreadcrumb.js +16 -0
- package/dist/components/PathBreadcrumb.js.map +1 -0
- package/dist/components/lib/utils.d.ts +3 -0
- package/dist/components/lib/utils.d.ts.map +1 -0
- package/dist/components/lib/utils.js +6 -0
- package/dist/components/lib/utils.js.map +1 -0
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/accordion.js.map +1 -1
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +42 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +12 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +28 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button.d.ts +9 -8
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +26 -21
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +25 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.js +1 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/collapsible.d.ts +6 -0
- package/dist/components/ui/collapsible.d.ts.map +1 -0
- package/dist/components/ui/collapsible.js +13 -0
- package/dist/components/ui/collapsible.js.map +1 -0
- package/dist/components/ui/command.d.ts +19 -0
- package/dist/components/ui/command.d.ts.map +1 -0
- package/dist/components/ui/command.js +35 -0
- package/dist/components/ui/command.js.map +1 -0
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/dialog.js +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.js +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +52 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/form-field.d.ts +7 -0
- package/dist/components/ui/form-field.d.ts.map +1 -0
- package/dist/components/ui/form-field.js +17 -0
- package/dist/components/ui/form-field.js.map +1 -0
- package/dist/components/ui/input.js +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/label.js +1 -1
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/pagination.d.ts +14 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +30 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.js +2 -2
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/progress.js +1 -1
- package/dist/components/ui/progress.js.map +1 -1
- package/dist/components/ui/resizable.d.ts +8 -0
- package/dist/components/ui/resizable.d.ts.map +1 -0
- package/dist/components/ui/resizable.js +14 -0
- package/dist/components/ui/resizable.js.map +1 -0
- package/dist/components/ui/scroll-area.d.ts +6 -0
- package/dist/components/ui/scroll-area.d.ts.map +1 -0
- package/dist/components/ui/scroll-area.js +13 -0
- package/dist/components/ui/scroll-area.js.map +1 -0
- package/dist/components/ui/select.js +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +9 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +15 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +40 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +7 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.js +1 -1
- package/dist/components/ui/slider.js.map +1 -1
- package/dist/components/ui/switch.js +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +29 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +12 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +29 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +10 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +23 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +27 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.js +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/context/index.d.ts +27 -10
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +43 -36
- package/dist/context/index.js.map +1 -1
- package/dist/events.d.ts +10 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +78 -0
- package/dist/events.js.map +1 -0
- package/dist/fiber-tree.d.ts +3 -0
- package/dist/fiber-tree.d.ts.map +1 -0
- package/dist/fiber-tree.js +93 -0
- package/dist/fiber-tree.js.map +1 -0
- package/dist/hooks.d.ts +5 -2
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +66 -6
- package/dist/hooks.js.map +1 -1
- package/dist/idb.d.ts +1 -1
- package/dist/idb.d.ts.map +1 -1
- package/dist/lib/to-plain.d.ts +2 -0
- package/dist/lib/to-plain.d.ts.map +1 -0
- package/dist/lib/to-plain.js +21 -0
- package/dist/lib/to-plain.js.map +1 -0
- package/dist/main.d.ts +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +4 -3
- package/dist/main.js.map +1 -1
- package/dist/mods/clients.d.ts +3 -0
- package/dist/mods/clients.d.ts.map +1 -0
- package/dist/mods/clients.js +4 -0
- package/dist/mods/clients.js.map +1 -0
- package/dist/mods/editor-ui/FieldLabel.d.ts +15 -0
- package/dist/mods/editor-ui/FieldLabel.d.ts.map +1 -0
- package/dist/mods/editor-ui/FieldLabel.js +55 -0
- package/dist/mods/editor-ui/FieldLabel.js.map +1 -0
- package/dist/mods/editor-ui/client.d.ts +1 -1
- package/dist/mods/editor-ui/client.d.ts.map +1 -1
- package/dist/mods/editor-ui/client.js +1 -1
- package/dist/mods/editor-ui/client.js.map +1 -1
- package/dist/mods/editor-ui/default-edit.d.ts +2 -0
- package/dist/mods/editor-ui/default-edit.d.ts.map +1 -0
- package/dist/mods/editor-ui/default-edit.js +54 -0
- package/dist/mods/editor-ui/default-edit.js.map +1 -0
- package/dist/mods/editor-ui/default-view.d.ts +8 -1
- package/dist/mods/editor-ui/default-view.d.ts.map +1 -1
- package/dist/mods/editor-ui/default-view.js +8 -5
- package/dist/mods/editor-ui/default-view.js.map +1 -1
- package/dist/mods/editor-ui/dir-view.js +0 -2
- package/dist/mods/editor-ui/dir-view.js.map +1 -1
- package/dist/mods/editor-ui/empty-placeholder.d.ts +5 -0
- package/dist/mods/editor-ui/empty-placeholder.d.ts.map +1 -0
- package/dist/mods/editor-ui/empty-placeholder.js +14 -0
- package/dist/mods/editor-ui/empty-placeholder.js.map +1 -0
- package/dist/mods/editor-ui/form-field.d.ts +17 -0
- package/dist/mods/editor-ui/form-field.d.ts.map +1 -0
- package/dist/mods/editor-ui/form-field.js +68 -0
- package/dist/mods/editor-ui/form-field.js.map +1 -0
- package/dist/mods/editor-ui/form-fields.d.ts +1 -2
- package/dist/mods/editor-ui/form-fields.d.ts.map +1 -1
- package/dist/mods/editor-ui/form-fields.js +56 -60
- package/dist/mods/editor-ui/form-fields.js.map +1 -1
- package/dist/mods/editor-ui/layout-view.js +3 -2
- package/dist/mods/editor-ui/layout-view.js.map +1 -1
- package/dist/mods/editor-ui/list-items.js +1 -1
- package/dist/mods/editor-ui/list-items.js.map +1 -1
- package/dist/mods/editor-ui/node-utils.d.ts +2 -2
- package/dist/mods/editor-ui/node-utils.d.ts.map +1 -1
- package/dist/mods/editor-ui/node-utils.js +4 -5
- package/dist/mods/editor-ui/node-utils.js.map +1 -1
- package/dist/mods/editor-ui/type-picker.d.ts +15 -0
- package/dist/mods/editor-ui/type-picker.d.ts.map +1 -0
- package/dist/mods/editor-ui/type-picker.js +69 -0
- package/dist/mods/editor-ui/type-picker.js.map +1 -0
- package/dist/mods/editor-ui/user-view.js +1 -1
- package/dist/mods/editor-ui/user-view.js.map +1 -1
- package/dist/mods/servers.d.ts +1 -0
- package/dist/mods/servers.d.ts.map +1 -0
- package/dist/mods/servers.js +4 -0
- package/dist/mods/servers.js.map +1 -0
- package/dist/mods/treenity/groups/index.js +1 -1
- package/dist/mods/treenity/groups/index.js.map +1 -1
- package/dist/mods/treenity/preview.js +1 -1
- package/dist/mods/treenity/preview.js.map +1 -1
- package/dist/mods/treenity/ref-view.js +1 -1
- package/dist/mods/treenity/ref-view.js.map +1 -1
- package/dist/mods/treenity/schema-form.js +1 -1
- package/dist/mods/treenity/schema-form.js.map +1 -1
- package/dist/mods/treenity/seed.js +1 -1
- package/dist/mods/treenity/seed.js.map +1 -1
- package/dist/mods/treenity/type-view.js +1 -1
- package/dist/mods/treenity/type-view.js.map +1 -1
- package/dist/schema-loader.d.ts +1 -1
- package/dist/schema-loader.d.ts.map +1 -1
- package/dist/schema-loader.js +1 -1
- package/dist/schema-loader.js.map +1 -1
- package/dist/symbols.d.ts +5 -0
- package/dist/symbols.d.ts.map +1 -0
- package/dist/symbols.js +16 -0
- package/dist/symbols.js.map +1 -0
- package/dist/trpc.d.ts +10 -3
- package/dist/trpc.d.ts.map +1 -1
- package/package.json +74 -8
- package/src/AclEditor.tsx +11 -18
- package/src/ActionCards.tsx +224 -0
- package/src/App.tsx +204 -385
- package/src/ComponentSection.tsx +113 -0
- package/src/ErrorBoundary.tsx +37 -0
- package/src/Inspector.css +54 -0
- package/src/Inspector.tsx +73 -793
- package/src/Login.tsx +97 -0
- package/src/NodeEditor.tsx +300 -0
- package/src/Tree.css +91 -0
- package/src/Tree.tsx +40 -43
- package/src/bind/bind.test.ts +1 -1
- package/src/bind/engine.ts +1 -1
- package/src/bind/eval.ts +1 -1
- package/src/bind/hook.ts +1 -1
- package/src/bind/pipes.ts +1 -1
- package/src/cache.ts +5 -1
- package/src/client-tree.test.ts +1 -1
- package/src/client-tree.ts +22 -16
- package/src/client.ts +2 -4
- package/src/components/ConfirmDialog.tsx +34 -0
- package/src/components/ConfirmPopover.tsx +41 -0
- package/src/components/PathBreadcrumb.tsx +36 -0
- package/src/components/lib/utils.ts +6 -0
- package/src/components/lib/utils.ts.bak +6 -0
- package/src/components/ui/accordion.tsx +1 -1
- package/src/components/ui/alert-dialog.tsx +189 -0
- package/src/components/ui/badge.tsx +1 -1
- package/src/components/ui/breadcrumb.tsx +108 -0
- package/src/components/ui/button.tsx +53 -31
- package/src/components/ui/card.tsx +91 -0
- package/src/components/ui/checkbox.tsx +1 -1
- package/src/components/ui/collapsible.tsx +31 -0
- package/src/components/ui/command.tsx +177 -0
- package/src/components/ui/dialog.tsx +1 -2
- package/src/components/ui/drawer.tsx +1 -1
- package/src/components/ui/dropdown-menu.tsx +256 -0
- package/src/components/ui/form-field.tsx +37 -0
- package/src/components/ui/input.tsx +1 -1
- package/src/components/ui/label.tsx +1 -1
- package/src/components/ui/pagination.tsx +127 -0
- package/src/components/ui/popover.tsx +2 -2
- package/src/components/ui/progress.tsx +1 -1
- package/src/components/ui/resizable.tsx +47 -0
- package/src/components/ui/scroll-area.tsx +55 -0
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/separator.tsx +27 -0
- package/src/components/ui/sheet.tsx +140 -0
- package/src/components/ui/skeleton.tsx +13 -0
- package/src/components/ui/slider.tsx +1 -1
- package/src/components/ui/switch.tsx +1 -1
- package/src/components/ui/table.tsx +115 -0
- package/src/components/ui/tabs.tsx +88 -0
- package/src/components/ui/textarea.tsx +1 -1
- package/src/components/ui/toggle-group.tsx +82 -0
- package/src/components/ui/toggle.tsx +46 -0
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/context/index.tsx +75 -42
- package/src/events.ts +81 -0
- package/src/fiber-tree.ts +112 -0
- package/src/hooks.ts +88 -9
- package/src/idb.ts +1 -1
- package/src/lib/to-plain.ts +21 -0
- package/src/main.tsx +3 -1
- package/src/mods/clients.ts +3 -0
- package/src/mods/editor-ui/FieldLabel.tsx +124 -0
- package/src/mods/editor-ui/client.ts +1 -1
- package/src/mods/editor-ui/default-edit.tsx +99 -0
- package/src/mods/editor-ui/default-view.tsx +13 -8
- package/src/mods/editor-ui/dir-view.tsx +2 -2
- package/src/mods/editor-ui/editor-ui.css +174 -0
- package/src/mods/editor-ui/empty-placeholder.tsx +39 -0
- package/src/mods/editor-ui/form-field.tsx +144 -0
- package/src/mods/editor-ui/form-fields.tsx +132 -113
- package/src/mods/editor-ui/layout-view.tsx +4 -2
- package/src/mods/editor-ui/list-items.tsx +2 -2
- package/src/mods/editor-ui/node-utils.ts +4 -5
- package/src/mods/editor-ui/type-picker.tsx +147 -0
- package/src/mods/editor-ui/user-view.tsx +1 -1
- package/src/mods/servers.ts +2 -0
- package/src/mods/treenity/groups/index.tsx +1 -1
- package/src/mods/treenity/preview.tsx +1 -1
- package/src/mods/treenity/ref-view.tsx +1 -1
- package/src/mods/treenity/schema-form.tsx +1 -1
- package/src/mods/treenity/seed.ts +1 -1
- package/src/mods/treenity/type-view.tsx +1 -1
- package/src/optimistic.test.ts +111 -0
- package/src/remote-tree.test.ts +1 -1
- package/src/remote-tree.ts +1 -1
- package/src/root.css +117 -0
- package/src/schema-loader.ts +1 -1
- package/src/symbols.ts +18 -0
- package/src/index.html +0 -14
- package/src/style.css +0 -1269
- package/src/vite-env.d.ts +0 -3
package/dist/Inspector.js
CHANGED
|
@@ -1,360 +1,35 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
// Inspector — view + edit panel for selected node (Unity-style inspector)
|
|
3
|
-
// Shell only:
|
|
3
|
+
// Shell only: header, rendered view, delegates editing to NodeEditor
|
|
4
|
+
import './Inspector.css';
|
|
5
|
+
import { ConfirmDialog } from '#components/ConfirmDialog';
|
|
6
|
+
import { PathBreadcrumb } from '#components/PathBreadcrumb';
|
|
7
|
+
import { Badge } from '#components/ui/badge';
|
|
8
|
+
import { Button } from '#components/ui/button';
|
|
9
|
+
import { ScrollArea } from '#components/ui/scroll-area';
|
|
4
10
|
import { Render, RenderContext } from '#context';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
import { set, usePath } from './hooks';
|
|
11
|
-
import { useSchema } from './schema-loader';
|
|
12
|
-
import { trpc } from './trpc';
|
|
13
|
-
// Breadcrumb from path
|
|
14
|
-
function Breadcrumb({ path, onSelect }) {
|
|
15
|
-
if (path === '/')
|
|
16
|
-
return (_jsx("div", { className: "editor-breadcrumb", children: _jsx("span", { children: "/" }) }));
|
|
17
|
-
const parts = path.split('/').filter(Boolean);
|
|
18
|
-
const crumbs = [{ label: '/', path: '/' }];
|
|
19
|
-
let cur = '';
|
|
20
|
-
for (const p of parts) {
|
|
21
|
-
cur += '/' + p;
|
|
22
|
-
crumbs.push({ label: p, path: cur });
|
|
23
|
-
}
|
|
24
|
-
return (_jsx("div", { className: "editor-breadcrumb", children: crumbs.map((c, i) => (_jsxs("span", { children: [i > 0 && _jsx("span", { className: "sep", children: "/" }), _jsx("span", { onClick: () => onSelect(c.path), children: c.label === '/' ? 'root' : c.label })] }, c.path))) }));
|
|
25
|
-
}
|
|
26
|
-
// Pretty-print action result value
|
|
27
|
-
function ResultView({ value }) {
|
|
28
|
-
if (value === undefined || value === null)
|
|
29
|
-
return null;
|
|
30
|
-
if (typeof value !== 'object')
|
|
31
|
-
return _jsx("span", { className: "font-mono text-[11px]", children: String(value) });
|
|
32
|
-
// Object/array with typed $type → render via Render
|
|
33
|
-
if ('$type' in value) {
|
|
34
|
-
return _jsx(Render, { value: value });
|
|
35
|
-
}
|
|
36
|
-
// Plain object — key/value pairs
|
|
37
|
-
const entries = Object.entries(value);
|
|
38
|
-
if (entries.length === 0)
|
|
39
|
-
return _jsx("span", { className: "text-muted-foreground text-[11px]", children: "empty" });
|
|
40
|
-
return (_jsx("div", { className: "flex flex-col gap-0.5", children: entries.map(([k, v]) => (_jsxs("div", { className: "flex gap-2 text-[11px]", children: [_jsx("span", { className: "text-muted-foreground shrink-0", children: k }), _jsx("span", { className: "font-mono text-foreground/80 truncate", children: typeof v === 'object' && v !== null ? JSON.stringify(v) : String(v ?? '') })] }, k))) }));
|
|
41
|
-
}
|
|
42
|
-
// Action pills — compact action buttons that expand on click
|
|
43
|
-
function ActionCardList({ path, componentName, compType, toast, onActionComplete, }) {
|
|
44
|
-
const schema = useSchema(compType);
|
|
45
|
-
const [expanded, setExpanded] = useState(null);
|
|
46
|
-
const [paramsText, setParamsText] = useState({});
|
|
47
|
-
const [schemaData, setSchemaData] = useState({});
|
|
48
|
-
const [running, setRunning] = useState(null);
|
|
49
|
-
const [results, setResults] = useState({});
|
|
50
|
-
const [resultMode, setResultMode] = useState({});
|
|
51
|
-
if (schema === undefined)
|
|
52
|
-
return null;
|
|
53
|
-
const actions = getActions(compType, schema);
|
|
54
|
-
if (actions.length === 0)
|
|
55
|
-
return null;
|
|
56
|
-
async function run(a) {
|
|
57
|
-
setRunning(a);
|
|
58
|
-
try {
|
|
59
|
-
const actionSchema = getActionSchema(compType, a);
|
|
60
|
-
let data = {};
|
|
61
|
-
if (actionSchema) {
|
|
62
|
-
data = schemaData[a] ?? {};
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const raw = (paramsText[a] ?? '').trim();
|
|
66
|
-
if (raw && raw !== '{}') {
|
|
67
|
-
try {
|
|
68
|
-
data = JSON.parse(raw);
|
|
69
|
-
}
|
|
70
|
-
catch {
|
|
71
|
-
toast('Invalid JSON params');
|
|
72
|
-
setRunning(null);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
const result = await trpc.execute.mutate({ path, key: componentName, action: a, data });
|
|
78
|
-
const fresh = (await trpc.get.query({ path, watch: true }));
|
|
79
|
-
if (fresh)
|
|
80
|
-
cache.put(fresh);
|
|
81
|
-
onActionComplete?.();
|
|
82
|
-
setResults((prev) => ({ ...prev, [a]: { ok: true, value: result } }));
|
|
83
|
-
setExpanded(a);
|
|
84
|
-
}
|
|
85
|
-
catch (e) {
|
|
86
|
-
setResults((prev) => ({
|
|
87
|
-
...prev,
|
|
88
|
-
[a]: { ok: false, value: e instanceof Error ? e.message : String(e) },
|
|
89
|
-
}));
|
|
90
|
-
setExpanded(a);
|
|
91
|
-
}
|
|
92
|
-
finally {
|
|
93
|
-
setRunning(null);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
return (_jsxs("div", { className: "action-pills", children: [_jsx("div", { className: "flex flex-wrap gap-1.5", children: actions.map((a) => (_jsxs("button", { className: `action-pill${expanded === a ? ' active' : ''}${running === a ? ' running' : ''}`, onClick: () => setExpanded(expanded === a ? null : a), children: [running === a ? '...' : a, results[a] && !results[a].ok && expanded !== a && (_jsx("span", { className: "ml-1 text-destructive", children: "!" })), results[a]?.ok && expanded !== a && (_jsx("span", { className: "ml-1 text-primary/60", children: "\u2713" }))] }, a))) }), expanded && (() => {
|
|
97
|
-
const a = expanded;
|
|
98
|
-
const actionSchema = getActionSchema(compType, a);
|
|
99
|
-
const hasParams = actionSchema !== null && Object.keys(actionSchema.properties).length > 0;
|
|
100
|
-
const noParams = actionSchema !== null && Object.keys(actionSchema.properties).length === 0;
|
|
101
|
-
const result = results[a];
|
|
102
|
-
const mode = resultMode[a] ?? 'pretty';
|
|
103
|
-
return (_jsxs("div", { className: "action-detail", children: [hasParams && (_jsx("div", { className: "flex flex-col gap-1.5 mb-2", children: Object.entries(actionSchema.properties).map(([field, prop]) => {
|
|
104
|
-
const p = prop;
|
|
105
|
-
const val = (schemaData[a] ?? {})[field];
|
|
106
|
-
const setField = (v) => setSchemaData((prev) => ({
|
|
107
|
-
...prev,
|
|
108
|
-
[a]: { ...(prev[a] ?? {}), [field]: v },
|
|
109
|
-
}));
|
|
110
|
-
return (_jsxs("div", { className: "action-detail-field", children: [_jsx("label", { children: p.title ?? field }), p.type === 'number' || p.format === 'number' ? (_jsx("input", { type: "number", value: String(val ?? 0), onChange: (e) => setField(Number(e.target.value)) })) : p.type === 'boolean' ? (_jsxs("label", { className: "flex items-center gap-1.5 cursor-pointer", children: [_jsx("input", { type: "checkbox", checked: !!val, className: "w-auto", onChange: (e) => setField(e.target.checked) }), _jsx("span", { className: "text-[11px]", children: val ? 'true' : 'false' })] })) : (_jsx("input", { value: String(val ?? ''), onChange: (e) => setField(e.target.value) }))] }, field));
|
|
111
|
-
}) })), !hasParams && !noParams && (_jsx("textarea", { className: "action-params-input mb-2", value: paramsText[a] ?? '{}', onChange: (e) => setParamsText((prev) => ({ ...prev, [a]: e.target.value })), spellCheck: false, rows: 2 })), _jsxs("button", { className: "action-run-btn", disabled: running !== null, onClick: () => run(a), children: [running === a ? '...' : '▶', " ", a] }), result && (_jsx("div", { className: `action-result-box${result.ok ? '' : ' error'}`, children: !result.ok ? (_jsx("span", { className: "text-destructive font-mono text-[11px]", children: String(result.value) })) : result.value === undefined || result.value === null ? (_jsx("span", { className: "text-primary text-[11px]", children: "\u2713 done" })) : (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex items-center justify-between mb-1", children: [_jsx("span", { className: "text-[10px] text-muted-foreground uppercase tracking-wider", children: "Result" }), typeof result.value === 'object' && (_jsxs("div", { className: "flex gap-0.5", children: [_jsx("button", { className: `action-mode-btn${mode === 'pretty' ? ' active' : ''}`, onClick: () => setResultMode((p) => ({ ...p, [a]: 'pretty' })), children: "View" }), _jsx("button", { className: `action-mode-btn${mode === 'json' ? ' active' : ''}`, onClick: () => setResultMode((p) => ({ ...p, [a]: 'json' })), children: "JSON" })] }))] }), mode === 'json' ? (_jsx("pre", { className: "text-[11px] font-mono text-foreground/60 whitespace-pre-wrap break-all leading-relaxed", children: JSON.stringify(result.value, null, 2) })) : (_jsx(ResultView, { value: result.value }))] })) }))] }));
|
|
112
|
-
})()] }));
|
|
113
|
-
}
|
|
114
|
-
function renderField(name, fieldSchema, plainData, setPlainData) {
|
|
115
|
-
const ctx = fieldSchema.readOnly ? 'react' : 'react:form';
|
|
116
|
-
const handler = resolveExact(fieldSchema.type, ctx) ?? resolveExact('string', ctx);
|
|
117
|
-
if (!handler)
|
|
118
|
-
return (_jsxs("div", { className: "text-[--danger] text-xs", children: ["No form handler: ", fieldSchema.type] }, name));
|
|
119
|
-
const fieldData = {
|
|
120
|
-
$type: fieldSchema.type,
|
|
121
|
-
value: plainData[name],
|
|
122
|
-
label: fieldSchema.label,
|
|
123
|
-
placeholder: fieldSchema.placeholder,
|
|
124
|
-
};
|
|
125
|
-
if (fieldSchema.items)
|
|
126
|
-
fieldData.items = fieldSchema.items;
|
|
127
|
-
if (fieldSchema.enum)
|
|
128
|
-
fieldData.enum = fieldSchema.enum;
|
|
129
|
-
if (fieldSchema.refType)
|
|
130
|
-
fieldData.refType = fieldSchema.refType;
|
|
131
|
-
const isComplex = fieldSchema.type === 'object' || fieldSchema.type === 'array';
|
|
132
|
-
return (_jsxs("div", { className: isComplex ? 'field stack' : 'field', children: [fieldSchema.type !== 'boolean' && _jsx("label", { children: fieldSchema.label }), createElement(handler, {
|
|
133
|
-
value: fieldData,
|
|
134
|
-
onChange: fieldSchema.readOnly
|
|
135
|
-
? undefined
|
|
136
|
-
: (next) => setPlainData((prev) => ({ ...prev, [name]: next.value })),
|
|
137
|
-
})] }, name));
|
|
138
|
-
}
|
|
139
|
-
// Inline string-array editor for raw component fields without schema
|
|
140
|
-
function StringArrayField({ value, onChange, }) {
|
|
141
|
-
const [input, setInput] = useState('');
|
|
142
|
-
const isStrings = value.every((v) => typeof v === 'string');
|
|
143
|
-
if (!isStrings) {
|
|
144
|
-
return (_jsx("textarea", { value: JSON.stringify(value, null, 2), onChange: (e) => {
|
|
145
|
-
try {
|
|
146
|
-
onChange(JSON.parse(e.target.value));
|
|
147
|
-
}
|
|
148
|
-
catch {
|
|
149
|
-
/* typing */
|
|
150
|
-
}
|
|
151
|
-
} }));
|
|
152
|
-
}
|
|
153
|
-
const tags = value;
|
|
154
|
-
return (_jsxs("div", { className: "flex-1 space-y-1", children: [_jsx("div", { className: "flex flex-wrap gap-1", children: tags.map((tag, i) => (_jsxs("span", { className: "inline-flex items-center gap-0.5 text-[11px] font-mono bg-muted text-foreground/70 px-1.5 py-0.5 rounded", children: [tag, _jsx("button", { type: "button", className: "ml-0.5 border-0 bg-transparent p-0 text-muted-foreground/40 hover:text-foreground leading-none cursor-pointer", onClick: () => onChange(tags.filter((_, j) => j !== i)), children: "\u00D7" })] }, i))) }), _jsx("input", { className: "text-xs w-full", placeholder: "Add item...", value: input, onChange: (e) => setInput(e.target.value), onKeyDown: (e) => {
|
|
155
|
-
if (e.key !== 'Enter')
|
|
156
|
-
return;
|
|
157
|
-
e.preventDefault();
|
|
158
|
-
const t = input.trim();
|
|
159
|
-
if (t && !tags.includes(t))
|
|
160
|
-
onChange([...tags, t]);
|
|
161
|
-
setInput('');
|
|
162
|
-
} })] }));
|
|
163
|
-
}
|
|
164
|
-
function NodeCard({ path, type, onChangeType, }) {
|
|
165
|
-
const [open, setOpen] = useState(false);
|
|
166
|
-
return (_jsxs("div", { className: "card", children: [_jsxs("div", { className: "card-header cursor-pointer select-none", onClick: () => setOpen((v) => !v), children: [_jsx("span", { children: "Node" }), _jsxs("span", { className: "flex items-center gap-2 normal-case tracking-normal font-normal text-[11px] font-mono text-foreground/50", children: [path, _jsx("span", { className: "text-primary", children: type }), open ? (_jsx("svg", { className: "h-3 w-3", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "m6 9 6 6 6-6" }) })) : (_jsx("svg", { className: "h-3 w-3", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: _jsx("path", { d: "m9 18 6-6-6-6" }) }))] })] }), open && (_jsxs("div", { className: "card-body", children: [_jsxs("div", { className: "field", children: [_jsx("label", { children: "$path" }), _jsx("input", { value: path, readOnly: true })] }), _jsxs("div", { className: "field", children: [_jsx("label", { children: "$type" }), _jsx("input", { value: type, onChange: (e) => onChangeType(e.target.value) })] })] }))] }));
|
|
167
|
-
}
|
|
168
|
-
function ComponentBody({ ctype, cdata, setCD, path, componentName, toast, onActionComplete, }) {
|
|
169
|
-
const cschema = useSchema(ctype);
|
|
170
|
-
if (cschema === undefined)
|
|
171
|
-
return null;
|
|
172
|
-
return (_jsxs("div", { className: "card-body", children: [cschema && Object.keys(cschema.properties).length > 0 ? (Object.entries(cschema.properties).map(([field, prop]) => {
|
|
173
|
-
const p = prop;
|
|
174
|
-
return renderField(field, {
|
|
175
|
-
type: p.format ?? p.type, label: p.title ?? field, placeholder: p.description,
|
|
176
|
-
readOnly: p.readOnly, enum: p.enum, items: p.items, refType: p.refType,
|
|
177
|
-
}, cdata, setCD);
|
|
178
|
-
})) : Object.keys(cdata).length > 0 ? (Object.entries(cdata).map(([k, v]) => (_jsxs("div", { className: `field${Array.isArray(v) || (typeof v === 'object' && v !== null) ? ' stack' : ''}`, children: [_jsx("label", { children: k }), typeof v === 'boolean' ? (_jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [_jsx("input", { type: "checkbox", checked: !!cdata[k], className: "w-auto", onChange: (e) => setCD((prev) => ({ ...prev, [k]: e.target.checked })) }), cdata[k] ? 'true' : 'false'] })) : typeof v === 'number' ? (_jsx("input", { type: "number", value: String(cdata[k] ?? 0), onChange: (e) => setCD((prev) => ({ ...prev, [k]: Number(e.target.value) })) })) : Array.isArray(v) ? (_jsx(StringArrayField, { value: cdata[k], onChange: (next) => setCD((prev) => ({ ...prev, [k]: next })) })) : typeof v === 'object' ? ((() => {
|
|
179
|
-
const h = resolve('object', 'react:form');
|
|
180
|
-
return h
|
|
181
|
-
? createElement(h, {
|
|
182
|
-
value: { $type: 'object', value: cdata[k] },
|
|
183
|
-
onChange: (next) => setCD((prev) => ({ ...prev, [k]: next.value })),
|
|
184
|
-
})
|
|
185
|
-
: _jsx("pre", { className: "text-[11px] font-mono text-foreground/60", children: JSON.stringify(cdata[k], null, 2) });
|
|
186
|
-
})()) : (_jsx("input", { value: String(cdata[k] ?? ''), onChange: (e) => setCD((prev) => ({ ...prev, [k]: e.target.value })) }))] }, k)))) : (_jsx("pre", { className: "text-[11px] font-mono text-foreground/60 bg-muted/30 rounded p-2 whitespace-pre-wrap", children: JSON.stringify(cdata, null, 2) })), _jsx(ActionCardList, { path: path, componentName: componentName, compType: ctype, compData: cdata, toast: toast, onActionComplete: onActionComplete })] }));
|
|
187
|
-
}
|
|
11
|
+
import { getViewContexts, pickDefaultContext } from '#mods/editor-ui/node-utils';
|
|
12
|
+
import { useState } from 'react';
|
|
13
|
+
import { ErrorBoundary } from './ErrorBoundary';
|
|
14
|
+
import { usePath } from './hooks';
|
|
15
|
+
import { NodeEditor } from './NodeEditor';
|
|
188
16
|
export function Inspector({ path, currentUserId, onDelete, onAddComponent, onSelect, onSetRoot, toast }) {
|
|
189
17
|
const node = usePath(path);
|
|
190
|
-
const [
|
|
18
|
+
const [confirmDelete, setConfirmDelete] = useState(false);
|
|
191
19
|
const [editing, setEditing] = useState(false);
|
|
192
|
-
const [
|
|
193
|
-
|
|
194
|
-
const [
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
const [collapsed, setCollapsed] = useState(new Set());
|
|
199
|
-
const [aclOwner, setAclOwner] = useState('');
|
|
200
|
-
const [aclRules, setAclRules] = useState([]);
|
|
201
|
-
const [dirty, setDirty] = useState(false);
|
|
202
|
-
const [stale, setStale] = useState(false);
|
|
203
|
-
const syncedPathRef = useRef(null);
|
|
204
|
-
const syncedRevRef = useRef(null);
|
|
205
|
-
function syncFromNode(n) {
|
|
206
|
-
setNodeType(n.$type);
|
|
207
|
-
setAclOwner(n.$owner ?? '');
|
|
208
|
-
setAclRules(n.$acl ? [...n.$acl] : []);
|
|
209
|
-
const texts = {};
|
|
210
|
-
const cdata = {};
|
|
211
|
-
for (const [name, comp] of getComponents(n)) {
|
|
212
|
-
texts[name] = JSON.stringify(comp, null, 2);
|
|
213
|
-
const d = {};
|
|
214
|
-
for (const [k, v] of Object.entries(comp)) {
|
|
215
|
-
if (!k.startsWith('$'))
|
|
216
|
-
d[k] = v;
|
|
217
|
-
}
|
|
218
|
-
cdata[name] = d;
|
|
219
|
-
}
|
|
220
|
-
setCompTexts(texts);
|
|
221
|
-
setCompData(cdata);
|
|
222
|
-
setPlainData(getPlainFields(n));
|
|
223
|
-
setJsonText(JSON.stringify(n, null, 2));
|
|
224
|
-
setTab('properties');
|
|
225
|
-
}
|
|
226
|
-
useEffect(() => {
|
|
227
|
-
if (!node)
|
|
228
|
-
return;
|
|
229
|
-
const pathChanged = node.$path !== syncedPathRef.current;
|
|
230
|
-
if (pathChanged) {
|
|
20
|
+
const [context, setContext] = useState('react');
|
|
21
|
+
// Reset context when path changes
|
|
22
|
+
const [prevPath, setPrevPath] = useState(path);
|
|
23
|
+
if (path !== prevPath) {
|
|
24
|
+
setPrevPath(path);
|
|
25
|
+
if (node)
|
|
231
26
|
setContext(pickDefaultContext(node.$type));
|
|
232
|
-
syncFromNode(node);
|
|
233
|
-
syncedPathRef.current = node.$path;
|
|
234
|
-
syncedRevRef.current = node.$rev;
|
|
235
|
-
setDirty(false);
|
|
236
|
-
setStale(false);
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
if (node.$rev !== syncedRevRef.current) {
|
|
240
|
-
if (dirty) {
|
|
241
|
-
setStale(true);
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
syncFromNode(node);
|
|
245
|
-
syncedRevRef.current = node.$rev;
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
}, [node?.$path, node?.$rev]);
|
|
249
|
-
// Dirty-tracking wrappers — mark form as edited on any user change
|
|
250
|
-
const dSetNodeType = (v) => { setNodeType(v); setDirty(true); };
|
|
251
|
-
const dSetCompData = (v) => { setCompData(v); setDirty(true); };
|
|
252
|
-
const dSetPlainData = (v) => { setPlainData(v); setDirty(true); };
|
|
253
|
-
const dSetJsonText = (v) => { setJsonText(v); setDirty(true); };
|
|
254
|
-
const dSetAclOwner = (v) => { setAclOwner(v); setDirty(true); };
|
|
255
|
-
const dSetAclRules = (v) => { setAclRules(v); setDirty(true); };
|
|
256
|
-
function handleReset() {
|
|
257
|
-
if (!node)
|
|
258
|
-
return;
|
|
259
|
-
const current = cache.get(node.$path) ?? node;
|
|
260
|
-
syncFromNode(current);
|
|
261
|
-
syncedRevRef.current = current.$rev;
|
|
262
|
-
setDirty(false);
|
|
263
|
-
setStale(false);
|
|
264
27
|
}
|
|
265
28
|
if (!node) {
|
|
266
|
-
return (_jsx("div", { className: "
|
|
29
|
+
return (_jsx("div", { className: "flex flex-1 flex-col overflow-hidden bg-background", children: _jsxs("div", { className: "flex flex-1 flex-col items-center justify-center gap-2 text-muted-foreground/40", children: [_jsx("div", { className: "text-[32px] opacity-30", children: "\u260D" }), _jsx("p", { children: "Select a node to inspect" })] }) }));
|
|
267
30
|
}
|
|
268
31
|
const nodeName = node.$path === '/' ? '/' : node.$path.slice(node.$path.lastIndexOf('/') + 1);
|
|
269
|
-
const components = getComponents(node);
|
|
270
32
|
const viewContexts = getViewContexts(node.$type, node);
|
|
271
|
-
|
|
272
|
-
const schema = schemaHandler ? schemaHandler() : null;
|
|
273
|
-
// Main component: when the node IS the component (its $type has a registered class).
|
|
274
|
-
// Show the class's fields (with defaults as fallback for unset fields).
|
|
275
|
-
const mainCompCls = resolve(node.$type, 'class');
|
|
276
|
-
const mainCompDefaults = mainCompCls ? new mainCompCls() : null;
|
|
277
|
-
async function handleSave() {
|
|
278
|
-
if (!node)
|
|
279
|
-
return;
|
|
280
|
-
let toSave;
|
|
281
|
-
if (tab === 'json') {
|
|
282
|
-
try {
|
|
283
|
-
toSave = JSON.parse(jsonText);
|
|
284
|
-
}
|
|
285
|
-
catch {
|
|
286
|
-
toast('Invalid JSON');
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
toSave = { $path: node.$path, $type: nodeType, ...plainData };
|
|
292
|
-
if (aclOwner)
|
|
293
|
-
toSave.$owner = aclOwner;
|
|
294
|
-
if (aclRules.length > 0)
|
|
295
|
-
toSave.$acl = aclRules;
|
|
296
|
-
for (const [name, comp] of components) {
|
|
297
|
-
const ctype = comp.$type;
|
|
298
|
-
const cschema = getSchema(ctype);
|
|
299
|
-
const cd = compData[name];
|
|
300
|
-
if ((cschema || (cd && Object.keys(cd).length > 0)) && cd) {
|
|
301
|
-
toSave[name] = { $type: ctype, ...cd };
|
|
302
|
-
}
|
|
303
|
-
else {
|
|
304
|
-
const text = compTexts[name];
|
|
305
|
-
if (text === undefined)
|
|
306
|
-
continue;
|
|
307
|
-
try {
|
|
308
|
-
toSave[name] = JSON.parse(text);
|
|
309
|
-
}
|
|
310
|
-
catch {
|
|
311
|
-
toast(`Invalid JSON in component: ${name}`);
|
|
312
|
-
return;
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
await set(toSave);
|
|
318
|
-
const fresh = cache.get(node.$path);
|
|
319
|
-
if (fresh) {
|
|
320
|
-
syncFromNode(fresh);
|
|
321
|
-
syncedRevRef.current = fresh.$rev;
|
|
322
|
-
}
|
|
323
|
-
setDirty(false);
|
|
324
|
-
setStale(false);
|
|
325
|
-
toast('Saved');
|
|
326
|
-
}
|
|
327
|
-
function handleAdd() {
|
|
328
|
-
if (!node)
|
|
329
|
-
return;
|
|
330
|
-
onAddComponent(node.$path);
|
|
331
|
-
}
|
|
332
|
-
function handleRemoveComponent(name) {
|
|
333
|
-
if (!node)
|
|
334
|
-
return;
|
|
335
|
-
const next = { ...node };
|
|
336
|
-
delete next[name];
|
|
337
|
-
set(next);
|
|
338
|
-
}
|
|
339
|
-
function toggleCollapse(name) {
|
|
340
|
-
setCollapsed((prev) => {
|
|
341
|
-
const next = new Set(prev);
|
|
342
|
-
if (next.has(name))
|
|
343
|
-
next.delete(name);
|
|
344
|
-
else
|
|
345
|
-
next.add(name);
|
|
346
|
-
return next;
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
return (_jsxs("div", { className: "editor", children: [_jsxs("div", { className: "editor-header", children: [_jsx(Breadcrumb, { path: node.$path, onSelect: onSelect }), _jsxs("div", { className: "editor-title", children: [_jsx("h2", { children: nodeName }), _jsx("span", { className: "editor-type-badge", children: node.$type }), _jsx("a", { href: node.$path, target: "_blank", rel: "noopener", className: "text-[11px] text-[--text-3] hover:text-[--accent] no-underline", children: "View \u2197" }), onSetRoot && (_jsx("button", { className: "sm ghost text-[11px]", onClick: () => onSetRoot(node.$path), title: "Focus subtree", children: "\u2302" })), viewContexts.length > 1 && (_jsx("span", { className: "context-buttons", children: viewContexts.map((c) => (_jsx("button", { className: `sm context-btn${context === c ? ' active' : ''}`, onClick: () => setContext(c), children: c }, c))) })), _jsx("span", { className: "spacer" }), _jsx("button", { className: editing ? 'sm' : 'sm primary', onClick: () => setEditing(!editing), children: editing ? 'Close' : 'Edit' }), _jsx("button", { className: "sm danger", onClick: () => {
|
|
350
|
-
if (confirm(`Delete ${node.$path}?`))
|
|
351
|
-
onDelete(node.$path);
|
|
352
|
-
}, children: "Delete" })] })] }), _jsx("div", { className: "editor-body", children: _jsx(RenderContext, { name: context, children: _jsx("div", { className: "node-view", children: _jsx(Render, { value: node }) }) }) }), _jsxs("div", { className: `edit-panel${editing ? ' open' : ''}`, children: [_jsxs("div", { className: "edit-panel-header", children: [_jsxs("span", { children: ["Edit ", nodeName] }), _jsx("button", { className: "sm ghost", onClick: () => setEditing(false), children: "\u2715" })] }), _jsxs("div", { className: "edit-panel-tabs", children: [_jsx("button", { className: `editor-tab${tab === 'properties' ? ' active' : ''}`, onClick: () => setTab('properties'), children: "Properties" }), _jsx("button", { className: `editor-tab${tab === 'json' ? ' active' : ''}`, onClick: () => {
|
|
353
|
-
setTab('json');
|
|
354
|
-
setJsonText(JSON.stringify({ ...node, ...plainData }, null, 2));
|
|
355
|
-
}, children: "JSON" })] }), _jsx("div", { className: "edit-panel-body", children: tab === 'properties' ? (_jsxs(_Fragment, { children: [_jsx(NodeCard, { path: node.$path, type: nodeType, onChangeType: dSetNodeType }), _jsx(AclEditor, { path: node.$path, owner: aclOwner, rules: aclRules, currentUserId: currentUserId, onChange: (o, r) => {
|
|
356
|
-
dSetAclOwner(o);
|
|
357
|
-
dSetAclRules(r);
|
|
358
|
-
} }), (mainCompCls || schema) && (_jsxs("div", { className: "card", children: [_jsx("div", { className: "card-header", children: node.$type }), _jsx(ComponentBody, { ctype: node.$type, cdata: plainData, setCD: (fn) => dSetPlainData(fn), path: node.$path, componentName: "", toast: toast, onActionComplete: handleReset })] })), components.map(([name, comp]) => (_jsxs("div", { className: "card", children: [_jsxs("div", { className: "card-header cursor-pointer select-none", onClick: () => toggleCollapse(name), children: [_jsx("span", { className: "font-mono text-[12px]", children: name }), _jsxs("span", { className: "flex items-center gap-2", children: [_jsx("span", { className: "component-type", children: comp.$type }), _jsx("button", { className: "sm danger", onClick: (e) => { e.stopPropagation(); handleRemoveComponent(name); }, children: "Remove" })] })] }), !collapsed.has(name) && (_jsx(ComponentBody, { ctype: comp.$type, cdata: compData[name] ?? {}, setCD: (fn) => dSetCompData((prev) => ({ ...prev, [name]: fn(prev[name] ?? {}) })), path: node.$path, componentName: name, toast: toast, onActionComplete: handleReset }))] }, name))), !schema && !mainCompDefaults && Object.keys(plainData).length > 0 && (_jsxs("div", { className: "card", children: [_jsx("div", { className: "card-header", children: "Data" }), _jsx("div", { className: "card-body", children: Object.entries(plainData).map(([k, v]) => (_jsxs("div", { className: "field", children: [_jsx("label", { children: k }), _jsx("input", { value: typeof v === 'string' ? v : JSON.stringify(v), onChange: (e) => dSetPlainData((prev) => ({ ...prev, [k]: e.target.value })) })] }, k))) })] }))] })) : (_jsx("div", { className: "json-view", children: _jsx("textarea", { value: jsonText, onChange: (e) => dSetJsonText(e.target.value), spellCheck: false }) })) }), _jsxs("div", { className: "edit-panel-actions", children: [stale && (_jsx("button", { className: "ghost", onClick: handleReset, title: "Node updated externally", children: "Reset" })), _jsx("button", { className: "primary", onClick: handleSave, children: "Save" }), tab === 'properties' && (_jsx("button", { onClick: handleAdd, children: "+ Component" }))] })] })] }));
|
|
33
|
+
return (_jsxs("div", { className: "editor", children: [_jsxs("div", { className: "px-6 pt-4 pb-3 border-b border-border bg-card shrink-0", children: [_jsx(PathBreadcrumb, { path: node.$path, onSelect: onSelect }), _jsxs("div", { className: "flex items-center gap-2.5 flex-wrap", children: [_jsx("h2", { children: nodeName }), _jsx(Badge, { variant: "outline", className: "font-mono text-[10px]", children: node.$type }), _jsx("a", { href: node.$path, target: "_blank", rel: "noopener", className: "text-[11px] text-muted-foreground hover:text-primary no-underline", children: "View \u2197" }), onSetRoot && (_jsx(Button, { variant: "ghost", size: "sm", className: "h-6 px-1.5 text-[11px]", onClick: () => onSetRoot(node.$path), title: "Focus subtree", children: "\u2302" })), viewContexts.length > 1 && (_jsx("span", { className: "flex gap-0.5", children: viewContexts.map((c) => (_jsx(Button, { variant: context === c ? 'default' : 'ghost', size: "sm", className: "h-6 px-2 text-[11px]", onClick: () => setContext(c), children: c.replace('react:', '') }, c))) })), _jsx("span", { className: "flex-1" }), _jsx(Button, { variant: editing ? 'ghost' : 'default', size: "sm", className: "h-7", onClick: () => setEditing(!editing), children: editing ? 'Close' : 'Edit' }), _jsx(Button, { variant: "destructive", size: "sm", className: "h-7", onClick: () => setConfirmDelete(true), children: "Delete" }), _jsx(ConfirmDialog, { open: confirmDelete, onOpenChange: setConfirmDelete, title: `Delete ${node.$path}?`, description: "This action cannot be undone.", variant: "destructive", onConfirm: () => onDelete(node.$path) })] })] }), _jsx(ScrollArea, { className: "flex-1", children: _jsx("div", { className: "p-4", children: _jsx(ErrorBoundary, { children: _jsx(RenderContext, { name: context, children: _jsx("div", { className: "node-view", children: _jsx(Render, { value: node }) }) }) }) }) }), _jsx(NodeEditor, { node: node, open: editing, onClose: () => setEditing(false), currentUserId: currentUserId, toast: toast, onAddComponent: onAddComponent })] }));
|
|
359
34
|
}
|
|
360
35
|
//# sourceMappingURL=Inspector.js.map
|
package/dist/Inspector.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../src/Inspector.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../src/Inspector.tsx"],"names":[],"mappings":"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"}
|
package/dist/Login.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function LoginScreen({ onLogin }: {
|
|
2
|
+
onLogin: (userId: string) => void;
|
|
3
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function LoginModal({ onLogin, onClose }: {
|
|
5
|
+
onLogin: (userId: string) => void;
|
|
6
|
+
onClose?: () => void;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=Login.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Login.d.ts","sourceRoot":"","sources":["../src/Login.tsx"],"names":[],"mappings":"AAgFA,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,2CAM7E;AAED,wBAAgB,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,2CAQ3G"}
|
package/dist/Login.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '#components/ui/button';
|
|
3
|
+
import { Dialog, DialogContent } from '#components/ui/dialog';
|
|
4
|
+
import { Input } from '#components/ui/input';
|
|
5
|
+
import { Label } from '#components/ui/label';
|
|
6
|
+
import { useState } from 'react';
|
|
7
|
+
import { setToken, trpc } from './trpc';
|
|
8
|
+
function LoginForm({ onLogin }) {
|
|
9
|
+
const [mode, setMode] = useState('login');
|
|
10
|
+
const [userId, setUserId] = useState('');
|
|
11
|
+
const [password, setPassword] = useState('');
|
|
12
|
+
const [err, setErr] = useState(null);
|
|
13
|
+
const [loading, setLoading] = useState(false);
|
|
14
|
+
async function handleSubmit(e) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
if (!userId.trim() || !password)
|
|
17
|
+
return;
|
|
18
|
+
setLoading(true);
|
|
19
|
+
setErr(null);
|
|
20
|
+
try {
|
|
21
|
+
const fn = mode === 'register' ? trpc.register : trpc.login;
|
|
22
|
+
const res = await fn.mutate({ userId: userId.trim(), password });
|
|
23
|
+
setToken(res.token);
|
|
24
|
+
onLogin(res.userId);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
setErr(e instanceof Error ? e.message : 'Failed');
|
|
28
|
+
}
|
|
29
|
+
finally {
|
|
30
|
+
setLoading(false);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return (_jsxs("form", { className: "flex flex-col gap-4 w-80 p-8 rounded-lg border border-border bg-card", onSubmit: handleSubmit, children: [_jsxs("div", { className: "flex items-center justify-center gap-2 mb-2", children: [_jsx("img", { src: "/treenity.svg", alt: "", width: "32", height: "32" }), _jsx("span", { className: "text-lg font-semibold", children: "Treenity" })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "userId", children: "User ID" }), _jsx(Input, { id: "userId", autoFocus: true, placeholder: "Enter your user ID", value: userId, onChange: (e) => setUserId(e.target.value) })] }), _jsxs("div", { className: "flex flex-col gap-1.5", children: [_jsx(Label, { htmlFor: "password", children: "Password" }), _jsx(Input, { id: "password", type: "password", placeholder: "Enter password", value: password, onChange: (e) => setPassword(e.target.value) })] }), err && _jsx("p", { className: "text-sm text-destructive", children: err }), _jsx(Button, { type: "submit", disabled: loading || !userId.trim() || !password, children: loading ? '...' : mode === 'register' ? 'Create account' : 'Sign in' }), _jsx(Button, { type: "button", variant: "ghost", onClick: () => {
|
|
34
|
+
setMode((m) => (m === 'login' ? 'register' : 'login'));
|
|
35
|
+
setErr(null);
|
|
36
|
+
}, children: mode === 'login' ? 'No account? Register' : 'Have an account? Sign in' })] }));
|
|
37
|
+
}
|
|
38
|
+
export function LoginScreen({ onLogin }) {
|
|
39
|
+
return (_jsx("div", { className: "flex items-center justify-center h-screen bg-background", children: _jsx(LoginForm, { onLogin: onLogin }) }));
|
|
40
|
+
}
|
|
41
|
+
export function LoginModal({ onLogin, onClose }) {
|
|
42
|
+
return (_jsx(Dialog, { open: true, onOpenChange: (open) => { if (!open && onClose)
|
|
43
|
+
onClose(); }, children: _jsx(DialogContent, { className: "p-0 border-none bg-transparent shadow-none max-w-fit", showCloseButton: !!onClose, children: _jsx(LoginForm, { onLogin: onLogin }) }) }));
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=Login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Login.js","sourceRoot":"","sources":["../src/Login.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAExC,SAAS,SAAS,CAAC,EAAE,OAAO,EAAyC;IACnE,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAuB,OAAO,CAAC,CAAC;IAChE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,KAAK,UAAU,YAAY,CAAC,CAAkB;QAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ;YAAE,OAAO;QACxC,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5D,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACpD,CAAC;gBAAS,CAAC;YACT,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CACL,gBAAM,SAAS,EAAC,sEAAsE,EAAC,QAAQ,EAAE,YAAY,aAC3G,eAAK,SAAS,EAAC,6CAA6C,aAC1D,cAAK,GAAG,EAAC,eAAe,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,GAAG,EACzD,eAAM,SAAS,EAAC,uBAAuB,yBAAgB,IACnD,EAEN,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,KAAK,IAAC,OAAO,EAAC,QAAQ,wBAAgB,EACvC,KAAC,KAAK,IACJ,EAAE,EAAC,QAAQ,EACX,SAAS,QACT,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC1C,IACE,EAEN,eAAK,SAAS,EAAC,uBAAuB,aACpC,KAAC,KAAK,IAAC,OAAO,EAAC,UAAU,yBAAiB,EAC1C,KAAC,KAAK,IACJ,EAAE,EAAC,UAAU,EACb,IAAI,EAAC,UAAU,EACf,WAAW,EAAC,gBAAgB,EAC5B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAC5C,IACE,EAEL,GAAG,IAAI,YAAG,SAAS,EAAC,0BAA0B,YAAE,GAAG,GAAK,EAEzD,KAAC,MAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,QAAQ,EAAE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,YACnE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,GAC9D,EAET,KAAC,MAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,OAAO,EACf,OAAO,EAAE,GAAG,EAAE;oBACZ,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;oBACvD,MAAM,CAAC,IAAI,CAAC,CAAC;gBACf,CAAC,YAEA,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,0BAA0B,GAChE,IACJ,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAE,OAAO,EAAyC;IAC5E,OAAO,CACL,cAAK,SAAS,EAAC,yDAAyD,YACtE,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI,GAC3B,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,EAA+D;IAC1G,OAAO,CACL,KAAC,MAAM,IAAC,IAAI,QAAC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,YACvE,KAAC,aAAa,IAAC,SAAS,EAAC,sDAAsD,EAAC,eAAe,EAAE,CAAC,CAAC,OAAO,YACxG,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,GAAI,GACjB,GACT,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NodeData } from '@treenity/core';
|
|
2
|
+
export type NodeEditorProps = {
|
|
3
|
+
node: NodeData;
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
currentUserId?: string;
|
|
7
|
+
toast: (msg: string) => void;
|
|
8
|
+
onAddComponent: (path: string) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare function NodeEditor({ node, open, onClose, currentUserId, toast, onAddComponent }: NodeEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
//# sourceMappingURL=NodeEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeEditor.d.ts","sourceRoot":"","sources":["../src/NodeEditor.tsx"],"names":[],"mappings":"AAWA,OAAO,EAA6C,KAAK,QAAQ,EAAW,MAAM,gBAAgB,CAAC;AA2CnG,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,eAAe,2CA4OxG"}
|