dbnexus 0.1.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.
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#18181b}::-webkit-scrollbar-thumb{background:#3f3f46;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#52525b}.monaco-editor{border-radius:8px;overflow:hidden}.monaco-editor .margin{background-color:#18181b!important}code,.mono{font-family:JetBrains Mono,Fira Code,Consolas,monospace}
@@ -0,0 +1,18 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" fill="none">
2
+ <defs>
3
+ <linearGradient id="grad" x1="0%" y1="0%" x2="100%" y2="100%">
4
+ <stop offset="0%" style="stop-color:#818cf8"/>
5
+ <stop offset="100%" style="stop-color:#6366f1"/>
6
+ </linearGradient>
7
+ </defs>
8
+
9
+ <!-- D shape simplified -->
10
+ <path d="M7 6 L7 26 L14 26 C20 26 23 21 23 16 C23 11 20 6 14 6 Z" fill="none" stroke="url(#grad)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
11
+
12
+ <!-- Circuit line -->
13
+ <line x1="23" y1="16" x2="28" y2="16" stroke="url(#grad)" stroke-width="1.5"/>
14
+ <circle cx="28" cy="16" r="1.5" fill="url(#grad)"/>
15
+
16
+ <!-- Inner dot -->
17
+ <circle cx="14" cy="16" r="2" fill="url(#grad)"/>
18
+ </svg>
@@ -0,0 +1,20 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>DB Nexus</title>
8
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
10
+ <link
11
+ href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@700&display=swap"
12
+ rel="stylesheet"
13
+ />
14
+ <script type="module" crossorigin src="/assets/index-2M0S9O7L.js"></script>
15
+ <link rel="stylesheet" crossorigin href="/assets/index-irX5x4FY.css">
16
+ </head>
17
+ <body>
18
+ <div id="root"></div>
19
+ </body>
20
+ </html>
@@ -0,0 +1,26 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 4: Abstract DB letters merged with circuit - Teal (Dark theme) -->
3
+ <defs>
4
+ <linearGradient id="gradDark" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#2dd4bf"/>
6
+ <stop offset="100%" style="stop-color:#14b8a6"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- D shape -->
11
+ <path d="M14 12 L14 52 L28 52 C40 52 46 42 46 32 C46 22 40 12 28 12 Z" fill="none" stroke="url(#gradDark)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
12
+
13
+ <!-- Circuit lines from D -->
14
+ <line x1="46" y1="32" x2="56" y2="32" stroke="url(#gradDark)" stroke-width="2"/>
15
+ <line x1="56" y1="32" x2="56" y2="18" stroke="url(#gradDark)" stroke-width="2"/>
16
+ <line x1="56" y1="32" x2="56" y2="46" stroke="url(#gradDark)" stroke-width="2"/>
17
+
18
+ <!-- Connection nodes -->
19
+ <circle cx="56" cy="18" r="3" fill="none" stroke="url(#gradDark)" stroke-width="2"/>
20
+ <circle cx="56" cy="46" r="3" fill="none" stroke="url(#gradDark)" stroke-width="2"/>
21
+ <circle cx="56" cy="32" r="2" fill="url(#gradDark)"/>
22
+
23
+ <!-- Inner accent -->
24
+ <circle cx="28" cy="32" r="6" fill="none" stroke="url(#gradDark)" stroke-width="2" opacity="0.5"/>
25
+ <circle cx="28" cy="32" r="2" fill="url(#gradDark)"/>
26
+ </svg>
@@ -0,0 +1,26 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 4: Abstract DB letters merged with circuit - Indigo (Light theme) -->
3
+ <defs>
4
+ <linearGradient id="gradLight" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#818cf8"/>
6
+ <stop offset="100%" style="stop-color:#6366f1"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- D shape -->
11
+ <path d="M14 12 L14 52 L28 52 C40 52 46 42 46 32 C46 22 40 12 28 12 Z" fill="none" stroke="url(#gradLight)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
12
+
13
+ <!-- Circuit lines from D -->
14
+ <line x1="46" y1="32" x2="56" y2="32" stroke="url(#gradLight)" stroke-width="2"/>
15
+ <line x1="56" y1="32" x2="56" y2="18" stroke="url(#gradLight)" stroke-width="2"/>
16
+ <line x1="56" y1="32" x2="56" y2="46" stroke="url(#gradLight)" stroke-width="2"/>
17
+
18
+ <!-- Connection nodes -->
19
+ <circle cx="56" cy="18" r="3" fill="none" stroke="url(#gradLight)" stroke-width="2"/>
20
+ <circle cx="56" cy="46" r="3" fill="none" stroke="url(#gradLight)" stroke-width="2"/>
21
+ <circle cx="56" cy="32" r="2" fill="url(#gradLight)"/>
22
+
23
+ <!-- Inner accent -->
24
+ <circle cx="28" cy="32" r="6" fill="none" stroke="url(#gradLight)" stroke-width="2" opacity="0.5"/>
25
+ <circle cx="28" cy="32" r="2" fill="url(#gradLight)"/>
26
+ </svg>
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 1: Minimal - Simple database with bracket accents -->
3
+ <defs>
4
+ <linearGradient id="grad1" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- Left bracket -->
11
+ <path d="M12 16 L8 16 L8 48 L12 48" fill="none" stroke="url(#grad1)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
12
+
13
+ <!-- Right bracket -->
14
+ <path d="M52 16 L56 16 L56 48 L52 48" fill="none" stroke="url(#grad1)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
15
+
16
+ <!-- Database stack - 3 rounded rectangles -->
17
+ <rect x="18" y="14" width="28" height="10" rx="2" fill="none" stroke="url(#grad1)" stroke-width="2.5"/>
18
+ <rect x="18" y="27" width="28" height="10" rx="2" fill="none" stroke="url(#grad1)" stroke-width="2.5"/>
19
+ <rect x="18" y="40" width="28" height="10" rx="2" fill="none" stroke="url(#grad1)" stroke-width="2.5"/>
20
+
21
+ <!-- Connection dots -->
22
+ <circle cx="32" cy="25" r="2" fill="url(#grad1)"/>
23
+ <circle cx="32" cy="38" r="2" fill="url(#grad1)"/>
24
+ </svg>
@@ -0,0 +1,32 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 2: Hexagonal network node style -->
3
+ <defs>
4
+ <linearGradient id="grad2" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- Outer hexagon -->
11
+ <polygon points="32,6 54,18 54,42 32,54 10,42 10,18" fill="none" stroke="url(#grad2)" stroke-width="2.5"/>
12
+
13
+ <!-- Inner connections -->
14
+ <line x1="32" y1="6" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
15
+ <line x1="54" y1="18" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
16
+ <line x1="54" y1="42" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
17
+ <line x1="32" y1="54" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
18
+ <line x1="10" y1="42" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
19
+ <line x1="10" y1="18" x2="32" y2="30" stroke="url(#grad2)" stroke-width="1.5" opacity="0.6"/>
20
+
21
+ <!-- Corner nodes -->
22
+ <circle cx="32" cy="6" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
23
+ <circle cx="54" cy="18" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
24
+ <circle cx="54" cy="42" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
25
+ <circle cx="32" cy="54" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
26
+ <circle cx="10" cy="42" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
27
+ <circle cx="10" cy="18" r="4" fill="none" stroke="url(#grad2)" stroke-width="2"/>
28
+
29
+ <!-- Center node -->
30
+ <circle cx="32" cy="30" r="6" fill="none" stroke="url(#grad2)" stroke-width="2.5"/>
31
+ <circle cx="32" cy="30" r="2.5" fill="url(#grad2)"/>
32
+ </svg>
@@ -0,0 +1,29 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 3: Layered discs with glow -->
3
+ <defs>
4
+ <linearGradient id="grad3" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ <filter id="glow3">
9
+ <feGaussianBlur stdDeviation="1.5" result="coloredBlur"/>
10
+ <feMerge>
11
+ <feMergeNode in="coloredBlur"/>
12
+ <feMergeNode in="SourceGraphic"/>
13
+ </feMerge>
14
+ </filter>
15
+ </defs>
16
+
17
+ <!-- Stacked ellipses (3D effect) -->
18
+ <ellipse cx="32" cy="48" rx="20" ry="7" fill="none" stroke="url(#grad3)" stroke-width="2" opacity="0.4"/>
19
+ <ellipse cx="32" cy="40" rx="20" ry="7" fill="none" stroke="url(#grad3)" stroke-width="2" opacity="0.6"/>
20
+ <ellipse cx="32" cy="32" rx="20" ry="7" fill="none" stroke="url(#grad3)" stroke-width="2.5" opacity="0.8"/>
21
+ <ellipse cx="32" cy="24" rx="20" ry="7" fill="none" stroke="url(#grad3)" stroke-width="2.5"/>
22
+ <ellipse cx="32" cy="16" rx="20" ry="7" fill="none" stroke="url(#grad3)" stroke-width="2.5" filter="url(#glow3)"/>
23
+
24
+ <!-- Central pillar -->
25
+ <line x1="32" y1="16" x2="32" y2="48" stroke="url(#grad3)" stroke-width="2" stroke-dasharray="4 2"/>
26
+
27
+ <!-- Top accent -->
28
+ <circle cx="32" cy="16" r="4" fill="url(#grad3)" filter="url(#glow3)"/>
29
+ </svg>
@@ -0,0 +1,26 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 4: Abstract DB letters merged with circuit -->
3
+ <defs>
4
+ <linearGradient id="grad4" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- D shape -->
11
+ <path d="M14 12 L14 52 L28 52 C40 52 46 42 46 32 C46 22 40 12 28 12 Z" fill="none" stroke="url(#grad4)" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
12
+
13
+ <!-- Circuit lines from D -->
14
+ <line x1="46" y1="32" x2="56" y2="32" stroke="url(#grad4)" stroke-width="2"/>
15
+ <line x1="56" y1="32" x2="56" y2="18" stroke="url(#grad4)" stroke-width="2"/>
16
+ <line x1="56" y1="32" x2="56" y2="46" stroke="url(#grad4)" stroke-width="2"/>
17
+
18
+ <!-- Connection nodes -->
19
+ <circle cx="56" cy="18" r="3" fill="none" stroke="url(#grad4)" stroke-width="2"/>
20
+ <circle cx="56" cy="46" r="3" fill="none" stroke="url(#grad4)" stroke-width="2"/>
21
+ <circle cx="56" cy="32" r="2" fill="url(#grad4)"/>
22
+
23
+ <!-- Inner accent -->
24
+ <circle cx="28" cy="32" r="6" fill="none" stroke="url(#grad4)" stroke-width="2" opacity="0.5"/>
25
+ <circle cx="28" cy="32" r="2" fill="url(#grad4)"/>
26
+ </svg>
@@ -0,0 +1,30 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 5: Cube/3D database with connections -->
3
+ <defs>
4
+ <linearGradient id="grad5" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- 3D Cube outline -->
11
+ <!-- Front face -->
12
+ <rect x="16" y="22" width="24" height="24" fill="none" stroke="url(#grad5)" stroke-width="2.5"/>
13
+
14
+ <!-- Top face -->
15
+ <polygon points="16,22 28,10 52,10 40,22" fill="none" stroke="url(#grad5)" stroke-width="2.5"/>
16
+
17
+ <!-- Right face -->
18
+ <polygon points="40,22 52,10 52,34 40,46" fill="none" stroke="url(#grad5)" stroke-width="2.5"/>
19
+
20
+ <!-- Data rows inside -->
21
+ <line x1="20" y1="30" x2="36" y2="30" stroke="url(#grad5)" stroke-width="1.5" opacity="0.5"/>
22
+ <line x1="20" y1="36" x2="36" y2="36" stroke="url(#grad5)" stroke-width="1.5" opacity="0.5"/>
23
+ <line x1="20" y1="42" x2="36" y2="42" stroke="url(#grad5)" stroke-width="1.5" opacity="0.5"/>
24
+
25
+ <!-- Connection nodes -->
26
+ <circle cx="16" cy="22" r="3" fill="url(#grad5)"/>
27
+ <circle cx="40" cy="22" r="3" fill="url(#grad5)"/>
28
+ <circle cx="52" cy="10" r="3" fill="url(#grad5)"/>
29
+ <circle cx="40" cy="46" r="3" fill="url(#grad5)"/>
30
+ </svg>
@@ -0,0 +1,30 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" fill="none">
2
+ <!-- Option 6: Terminal/Code style with cursor -->
3
+ <defs>
4
+ <linearGradient id="grad6" x1="0%" y1="0%" x2="100%" y2="100%">
5
+ <stop offset="0%" style="stop-color:#a78bfa"/>
6
+ <stop offset="100%" style="stop-color:#7c3aed"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- Terminal window frame -->
11
+ <rect x="8" y="10" width="48" height="44" rx="4" fill="none" stroke="url(#grad6)" stroke-width="2.5"/>
12
+
13
+ <!-- Title bar -->
14
+ <line x1="8" y1="20" x2="56" y2="20" stroke="url(#grad6)" stroke-width="2"/>
15
+
16
+ <!-- Window buttons -->
17
+ <circle cx="16" cy="15" r="2" fill="url(#grad6)" opacity="0.6"/>
18
+ <circle cx="24" cy="15" r="2" fill="url(#grad6)" opacity="0.6"/>
19
+ <circle cx="32" cy="15" r="2" fill="url(#grad6)" opacity="0.6"/>
20
+
21
+ <!-- Prompt symbol > -->
22
+ <path d="M14 30 L22 36 L14 42" fill="none" stroke="url(#grad6)" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
23
+
24
+ <!-- Cursor line -->
25
+ <line x1="28" y1="32" x2="48" y2="32" stroke="url(#grad6)" stroke-width="2" opacity="0.5"/>
26
+ <rect x="28" y="30" width="3" height="12" fill="url(#grad6)"/>
27
+
28
+ <!-- DB text hint -->
29
+ <text x="34" y="40" font-family="monospace" font-size="10" font-weight="bold" fill="url(#grad6)" opacity="0.7">db</text>
30
+ </svg>
package/package.json ADDED
@@ -0,0 +1,43 @@
1
+ {
2
+ "name": "dbnexus",
3
+ "version": "0.1.0",
4
+ "description": "Database management tool with web UI - like Prisma Studio for any database",
5
+ "keywords": [
6
+ "database",
7
+ "postgres",
8
+ "mysql",
9
+ "mariadb",
10
+ "sqlite",
11
+ "database-management",
12
+ "schema-migration",
13
+ "data-sync",
14
+ "database-tool",
15
+ "cli"
16
+ ],
17
+ "homepage": "https://github.com/akademskig/dbnexus",
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "https://github.com/akademskig/dbnexus.git"
21
+ },
22
+ "bugs": {
23
+ "url": "https://github.com/akademskig/dbnexus/issues"
24
+ },
25
+ "author": "DB Nexus Team",
26
+ "license": "MIT",
27
+ "type": "module",
28
+ "bin": {
29
+ "dbnexus": "./dist/index.js"
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "README.md",
34
+ "LICENSE"
35
+ ],
36
+ "engines": {
37
+ "node": ">=18.0.0"
38
+ },
39
+ "dependencies": {
40
+ "better-sqlite3": "^11.7.0",
41
+ "open": "^10.1.0"
42
+ }
43
+ }