@agenticmail/enterprise 0.5.277 → 0.5.278
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.
|
@@ -174,7 +174,54 @@ Object.assign(BrandLogo, {
|
|
|
174
174
|
heroku: function(s) { return _pill('#430098', '#fff', 'H', s); },
|
|
175
175
|
firebase: function(s) { return _pill('#FFCA28', '#000', 'FB', s); },
|
|
176
176
|
openai: function(s) { return _pill('#412991', '#fff', 'AI', s); },
|
|
177
|
-
mongodb: function(s) {
|
|
177
|
+
mongodb: function(s) {
|
|
178
|
+
s = s || 28;
|
|
179
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
180
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#023430' }),
|
|
181
|
+
h('path', { d: 'M14.5 5c-.2 1.2-.8 2.1-1.6 2.9-1.3 1.3-2.6 2.5-3 4.3-.5 2.3.3 4.2 1.8 5.8.3.3.6.6 1 .8l.1 1.8h1.4l.1-1.8c2-1 3.2-2.6 3.3-4.9.1-2.5-1.2-4.3-2.7-5.9-.3-.3-.5-.6-.5-1 0-.7.1-1.4.1-2z', fill: '#00ED64' }),
|
|
182
|
+
h('path', { d: 'M14.2 20.7l.1 1.8h-.6l.1-1.8c-.1-.1-.2-.3-.3-.4.1 0 .2-.1.4-.1s.3 0 .4.1c-.1.1-.1.3-.1.4z', fill: '#B8C4C2' })
|
|
183
|
+
);
|
|
184
|
+
},
|
|
185
|
+
postgresql: function(s) {
|
|
186
|
+
s = s || 28;
|
|
187
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
188
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#336791' }),
|
|
189
|
+
h('path', { d: 'M20.3 17.6c-.4-1-.3-1.9-.2-3 .1-.7.2-1.5.1-2.4-.2-2.1-1.5-3.5-2.5-4.3.4-.1.8-.3 1.1-.5 0 0-2.7-1-5.2-.1-.6.1-1.1.3-1.6.6-1-.3-2.4-.4-3.4 0C6.3 9.2 7 11.1 7 11.1l.2-.1c.5-.3 1.1-.3 1.7-.2-.4.6-.7 1.3-.7 2.1 0 .3 0 .7.1 1 .4 1.5 1.5 2.2 2.6 2.4-.2.3-.4.7-.4 1.2v.2c-.5.2-1.2.2-1.6-.2-.5-.5-.8-1.1-1.5-1.3-.3-.1-.6 0-.5.2.5.5.8.8 1.1 1.4.3.5.7.9 1.4 1 .5.1 1.1 0 1.3-.1v1.5c0 .3-.2.5-.3.6-.1.1-.2.3.1.4.3.1 1.4.3 1.7-.4.1-.2.1-.4.1-.6v-2.2c0-.5 0-1 .1-1.1l.2-.2v3.5c0 .4-.1 1.2.2 1.5.1.2.4.5.8.4.3-.1.5-.2.5-.7v-3.8c.2 0 .2.4.2.4v2.3c0 .3.1.7.3.9.4.5 1.3.4 1.6.2.3-.2.2-.6.2-.9v-2.9c.1-.3.3-.6.3-.6s0 1.8.9 2.8c.5.6 1.3.8 1.7.3.4-.5-.2-1-.5-1.7z', fill: '#fff' })
|
|
190
|
+
);
|
|
191
|
+
},
|
|
192
|
+
mysql: function(s) {
|
|
193
|
+
s = s || 28;
|
|
194
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
195
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#00546B' }),
|
|
196
|
+
h('path', { d: 'M6 19.5c0-1 .6-1.5 1.8-1.7l1.5-.2c.5-.1.7-.3.7-.6 0-.4-.4-.7-1.1-.7s-1.2.3-1.3.8H6.2c.1-1.1 1-1.8 2.5-1.8s2.4.7 2.4 1.8v3.4h-1.3v-.7c-.4.5-1 .8-1.7.8-1.1 0-2.1-.5-2.1-1.6v-.5zm4-.4v-.4l-1.3.2c-.6.1-.9.3-.9.7 0 .4.3.6.9.6.8 0 1.3-.4 1.3-1.1z', fill: '#F29111' }),
|
|
197
|
+
h('text', { x: 18, y: 20.5, textAnchor: 'middle', fill: '#F29111', fontFamily: 'system-ui,sans-serif', fontWeight: 700, fontSize: 7 }, 'SQL')
|
|
198
|
+
);
|
|
199
|
+
},
|
|
200
|
+
redis: function(s) {
|
|
201
|
+
s = s || 28;
|
|
202
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
203
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#DC382D' }),
|
|
204
|
+
h('path', { d: 'M22.5 16.2c-1 .5-6 2.6-7.1 3.1-1 .6-1.6.6-2.5.1-1-.5-6.3-2.6-7.3-3.1-.5-.3-.8-.5-.8-.7v-2.2s7-1.5 8.2-2c1.2-.4 1.6-.4 2.6 0 1 .4 6.9 1.9 6.9 1.9v2.2c0 .2-.3.5-1 .7z', fill: '#fff', opacity: '.3' }),
|
|
205
|
+
h('path', { d: 'M22.5 13.9c-1 .5-6 2.6-7.1 3.1-1 .6-1.6.6-2.5.1-1-.5-6.3-2.6-7.3-3.1-1-.5-1-.8 0-1.2 1-.4 6.3-2.5 7.4-2.9 1.2-.4 1.6-.4 2.6 0 1 .4 5.8 2.3 6.8 2.8 1.1.4 1.1.8.1 1.2z', fill: '#fff' }),
|
|
206
|
+
h('path', { d: 'M14.8 12.4l-1.3-.5-1.2.5.6-1.1-.5-1 1.3.3 1-.6-.2 1.2.8.9-1.5.3z', fill: '#DC382D' })
|
|
207
|
+
);
|
|
208
|
+
},
|
|
209
|
+
sqlite: function(s) {
|
|
210
|
+
s = s || 28;
|
|
211
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
212
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#003B57' }),
|
|
213
|
+
h('path', { d: 'M17.5 5L11 11.5c-.3.4-.5.9-.6 1.5-.2 1.3.2 2.8.8 4.2.6 1.3 1.2 2.3 1.6 3.1.4.8.6 1.3.6 1.7H12c0-.5-1.2-2.4-1.8-3.9-.6-1.6-1-3.3-.7-5 .2-.9.6-1.7 1.2-2.3L17.5 5z', fill: '#fff' }),
|
|
214
|
+
h('circle', { cx: 17.5, cy: 8, r: 2, fill: '#0F80CC' })
|
|
215
|
+
);
|
|
216
|
+
},
|
|
217
|
+
mariadb: function(s) { return _pill('#003545', '#C97E68', 'MDB', s); },
|
|
218
|
+
mssql: function(s) { return _pill('#CC2927', '#fff', 'SQL', s); },
|
|
219
|
+
oracle: function(s) { return _pill('#F80000', '#fff', 'ORA', s); },
|
|
220
|
+
neon: function(s) { return _pill('#00E599', '#000', 'N', s); },
|
|
221
|
+
planetscale: function(s) { return _pill('#000', '#fff', 'PS', s); },
|
|
222
|
+
cockroachdb: function(s) { return _pill('#6933FF', '#fff', 'CR', s); },
|
|
223
|
+
turso: function(s) { return _pill('#4FF8D2', '#000', 'T', s); },
|
|
224
|
+
dynamodb: function(s) { return _pill('#4053D6', '#fff', 'DDB', s); },
|
|
178
225
|
paypal: function(s) { return _pill('#003087', '#fff', 'PP', s); },
|
|
179
226
|
linkedin: function(s) { return _pill('#0A66C2', '#fff', 'in', s); },
|
|
180
227
|
twitter: function(s) { return _pill('#000', '#fff', 'X', s); },
|
|
@@ -2,30 +2,37 @@ import { h, useState, useEffect, useCallback, Fragment, useApp, engineCall, getO
|
|
|
2
2
|
import { I } from '../components/icons.js?v=2';
|
|
3
3
|
import { Modal } from '../components/modal.js';
|
|
4
4
|
import { HelpButton } from '../components/help-button.js';
|
|
5
|
+
import { BrandLogo } from '../assets/brand-logos.js';
|
|
5
6
|
|
|
6
7
|
var DATABASE_TYPES = [
|
|
7
8
|
{ section: 'Relational (SQL)', items: [
|
|
8
|
-
{ value: 'postgresql', label: 'PostgreSQL'
|
|
9
|
-
{ value: 'mysql', label: 'MySQL'
|
|
10
|
-
{ value: 'mariadb', label: 'MariaDB'
|
|
11
|
-
{ value: 'mssql', label: 'Microsoft SQL Server'
|
|
12
|
-
{ value: 'oracle', label: 'Oracle'
|
|
13
|
-
{ value: 'sqlite', label: 'SQLite'
|
|
9
|
+
{ value: 'postgresql', label: 'PostgreSQL' },
|
|
10
|
+
{ value: 'mysql', label: 'MySQL' },
|
|
11
|
+
{ value: 'mariadb', label: 'MariaDB' },
|
|
12
|
+
{ value: 'mssql', label: 'Microsoft SQL Server' },
|
|
13
|
+
{ value: 'oracle', label: 'Oracle' },
|
|
14
|
+
{ value: 'sqlite', label: 'SQLite' },
|
|
14
15
|
]},
|
|
15
16
|
{ section: 'Cloud-Native SQL', items: [
|
|
16
|
-
{ value: 'supabase', label: 'Supabase'
|
|
17
|
-
{ value: 'neon', label: 'Neon'
|
|
18
|
-
{ value: 'planetscale', label: 'PlanetScale'
|
|
19
|
-
{ value: 'cockroachdb', label: 'CockroachDB'
|
|
20
|
-
{ value: 'turso', label: 'Turso / LibSQL'
|
|
17
|
+
{ value: 'supabase', label: 'Supabase' },
|
|
18
|
+
{ value: 'neon', label: 'Neon' },
|
|
19
|
+
{ value: 'planetscale', label: 'PlanetScale' },
|
|
20
|
+
{ value: 'cockroachdb', label: 'CockroachDB' },
|
|
21
|
+
{ value: 'turso', label: 'Turso / LibSQL' },
|
|
21
22
|
]},
|
|
22
23
|
{ section: 'NoSQL / Key-Value', items: [
|
|
23
|
-
{ value: 'mongodb', label: 'MongoDB'
|
|
24
|
-
{ value: 'redis', label: 'Redis'
|
|
25
|
-
{ value: 'dynamodb', label: 'AWS DynamoDB'
|
|
24
|
+
{ value: 'mongodb', label: 'MongoDB' },
|
|
25
|
+
{ value: 'redis', label: 'Redis' },
|
|
26
|
+
{ value: 'dynamodb', label: 'AWS DynamoDB' },
|
|
26
27
|
]},
|
|
27
28
|
];
|
|
28
29
|
|
|
30
|
+
function dbLogo(type, size) {
|
|
31
|
+
if (BrandLogo[type]) return BrandLogo[type](size || 28);
|
|
32
|
+
var dbType = ALL_DB_TYPES.find(function(d) { return d.value === type; });
|
|
33
|
+
return h('span', { style: { fontSize: (size || 28) * 0.75 + 'px', lineHeight: 1 } }, dbType ? dbType.label.charAt(0) : '?');
|
|
34
|
+
}
|
|
35
|
+
|
|
29
36
|
var ALL_DB_TYPES = DATABASE_TYPES.flatMap(function(s) { return s.items; });
|
|
30
37
|
|
|
31
38
|
var PERMISSIONS = [
|
|
@@ -205,7 +212,7 @@ function ConnectionsTab(props) {
|
|
|
205
212
|
var statusStyle = conn.status === 'active' ? s.badgeActive : conn.status === 'error' ? s.badgeError : s.badgeInactive;
|
|
206
213
|
return h('div', { key: conn.id, style: s.card },
|
|
207
214
|
h('div', { style: s.cardHeader },
|
|
208
|
-
h('span', { style: s.cardIcon },
|
|
215
|
+
h('span', { style: s.cardIcon }, dbLogo(conn.type, 32)),
|
|
209
216
|
h('div', null,
|
|
210
217
|
h('div', { style: s.cardTitle }, conn.name),
|
|
211
218
|
h('div', { style: s.cardType }, dbType ? dbType.label : conn.type),
|
|
@@ -275,7 +282,7 @@ function AgentAccessTab(props) {
|
|
|
275
282
|
var dbType = ALL_DB_TYPES.find(function(t) { return t.value === conn.type; });
|
|
276
283
|
return h('div', { key: grant.connectionId, style: s.agentRow },
|
|
277
284
|
h('div', { style: css('display: flex; align-items: center; gap: 8px;') },
|
|
278
|
-
h('span', null,
|
|
285
|
+
h('span', null, dbLogo(conn.type, 20)),
|
|
279
286
|
h('span', { style: s.agentName }, conn.name || grant.connectionId),
|
|
280
287
|
),
|
|
281
288
|
h('div', { style: s.agentPerms },
|
|
@@ -391,7 +398,7 @@ function AddConnectionModal(props) {
|
|
|
391
398
|
style: isActive ? s.dbPickerItemActive : s.dbPickerItem,
|
|
392
399
|
onClick: function() { setDbType(item.value); },
|
|
393
400
|
},
|
|
394
|
-
h('div', { style: css('
|
|
401
|
+
h('div', { style: css('margin-bottom: 4px; display: flex; justify-content: center;') }, dbLogo(item.value, 32)),
|
|
395
402
|
h('div', { style: css('font-size: 12px; font-weight: 500;') }, item.label),
|
|
396
403
|
);
|
|
397
404
|
})
|
package/package.json
CHANGED
|
@@ -174,7 +174,54 @@ Object.assign(BrandLogo, {
|
|
|
174
174
|
heroku: function(s) { return _pill('#430098', '#fff', 'H', s); },
|
|
175
175
|
firebase: function(s) { return _pill('#FFCA28', '#000', 'FB', s); },
|
|
176
176
|
openai: function(s) { return _pill('#412991', '#fff', 'AI', s); },
|
|
177
|
-
mongodb: function(s) {
|
|
177
|
+
mongodb: function(s) {
|
|
178
|
+
s = s || 28;
|
|
179
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
180
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#023430' }),
|
|
181
|
+
h('path', { d: 'M14.5 5c-.2 1.2-.8 2.1-1.6 2.9-1.3 1.3-2.6 2.5-3 4.3-.5 2.3.3 4.2 1.8 5.8.3.3.6.6 1 .8l.1 1.8h1.4l.1-1.8c2-1 3.2-2.6 3.3-4.9.1-2.5-1.2-4.3-2.7-5.9-.3-.3-.5-.6-.5-1 0-.7.1-1.4.1-2z', fill: '#00ED64' }),
|
|
182
|
+
h('path', { d: 'M14.2 20.7l.1 1.8h-.6l.1-1.8c-.1-.1-.2-.3-.3-.4.1 0 .2-.1.4-.1s.3 0 .4.1c-.1.1-.1.3-.1.4z', fill: '#B8C4C2' })
|
|
183
|
+
);
|
|
184
|
+
},
|
|
185
|
+
postgresql: function(s) {
|
|
186
|
+
s = s || 28;
|
|
187
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
188
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#336791' }),
|
|
189
|
+
h('path', { d: 'M20.3 17.6c-.4-1-.3-1.9-.2-3 .1-.7.2-1.5.1-2.4-.2-2.1-1.5-3.5-2.5-4.3.4-.1.8-.3 1.1-.5 0 0-2.7-1-5.2-.1-.6.1-1.1.3-1.6.6-1-.3-2.4-.4-3.4 0C6.3 9.2 7 11.1 7 11.1l.2-.1c.5-.3 1.1-.3 1.7-.2-.4.6-.7 1.3-.7 2.1 0 .3 0 .7.1 1 .4 1.5 1.5 2.2 2.6 2.4-.2.3-.4.7-.4 1.2v.2c-.5.2-1.2.2-1.6-.2-.5-.5-.8-1.1-1.5-1.3-.3-.1-.6 0-.5.2.5.5.8.8 1.1 1.4.3.5.7.9 1.4 1 .5.1 1.1 0 1.3-.1v1.5c0 .3-.2.5-.3.6-.1.1-.2.3.1.4.3.1 1.4.3 1.7-.4.1-.2.1-.4.1-.6v-2.2c0-.5 0-1 .1-1.1l.2-.2v3.5c0 .4-.1 1.2.2 1.5.1.2.4.5.8.4.3-.1.5-.2.5-.7v-3.8c.2 0 .2.4.2.4v2.3c0 .3.1.7.3.9.4.5 1.3.4 1.6.2.3-.2.2-.6.2-.9v-2.9c.1-.3.3-.6.3-.6s0 1.8.9 2.8c.5.6 1.3.8 1.7.3.4-.5-.2-1-.5-1.7z', fill: '#fff' })
|
|
190
|
+
);
|
|
191
|
+
},
|
|
192
|
+
mysql: function(s) {
|
|
193
|
+
s = s || 28;
|
|
194
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
195
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#00546B' }),
|
|
196
|
+
h('path', { d: 'M6 19.5c0-1 .6-1.5 1.8-1.7l1.5-.2c.5-.1.7-.3.7-.6 0-.4-.4-.7-1.1-.7s-1.2.3-1.3.8H6.2c.1-1.1 1-1.8 2.5-1.8s2.4.7 2.4 1.8v3.4h-1.3v-.7c-.4.5-1 .8-1.7.8-1.1 0-2.1-.5-2.1-1.6v-.5zm4-.4v-.4l-1.3.2c-.6.1-.9.3-.9.7 0 .4.3.6.9.6.8 0 1.3-.4 1.3-1.1z', fill: '#F29111' }),
|
|
197
|
+
h('text', { x: 18, y: 20.5, textAnchor: 'middle', fill: '#F29111', fontFamily: 'system-ui,sans-serif', fontWeight: 700, fontSize: 7 }, 'SQL')
|
|
198
|
+
);
|
|
199
|
+
},
|
|
200
|
+
redis: function(s) {
|
|
201
|
+
s = s || 28;
|
|
202
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
203
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#DC382D' }),
|
|
204
|
+
h('path', { d: 'M22.5 16.2c-1 .5-6 2.6-7.1 3.1-1 .6-1.6.6-2.5.1-1-.5-6.3-2.6-7.3-3.1-.5-.3-.8-.5-.8-.7v-2.2s7-1.5 8.2-2c1.2-.4 1.6-.4 2.6 0 1 .4 6.9 1.9 6.9 1.9v2.2c0 .2-.3.5-1 .7z', fill: '#fff', opacity: '.3' }),
|
|
205
|
+
h('path', { d: 'M22.5 13.9c-1 .5-6 2.6-7.1 3.1-1 .6-1.6.6-2.5.1-1-.5-6.3-2.6-7.3-3.1-1-.5-1-.8 0-1.2 1-.4 6.3-2.5 7.4-2.9 1.2-.4 1.6-.4 2.6 0 1 .4 5.8 2.3 6.8 2.8 1.1.4 1.1.8.1 1.2z', fill: '#fff' }),
|
|
206
|
+
h('path', { d: 'M14.8 12.4l-1.3-.5-1.2.5.6-1.1-.5-1 1.3.3 1-.6-.2 1.2.8.9-1.5.3z', fill: '#DC382D' })
|
|
207
|
+
);
|
|
208
|
+
},
|
|
209
|
+
sqlite: function(s) {
|
|
210
|
+
s = s || 28;
|
|
211
|
+
return h('svg', { viewBox: '0 0 28 28', width: s, height: s, style: { borderRadius: 4 } },
|
|
212
|
+
h('rect', { width: 28, height: 28, rx: 4, fill: '#003B57' }),
|
|
213
|
+
h('path', { d: 'M17.5 5L11 11.5c-.3.4-.5.9-.6 1.5-.2 1.3.2 2.8.8 4.2.6 1.3 1.2 2.3 1.6 3.1.4.8.6 1.3.6 1.7H12c0-.5-1.2-2.4-1.8-3.9-.6-1.6-1-3.3-.7-5 .2-.9.6-1.7 1.2-2.3L17.5 5z', fill: '#fff' }),
|
|
214
|
+
h('circle', { cx: 17.5, cy: 8, r: 2, fill: '#0F80CC' })
|
|
215
|
+
);
|
|
216
|
+
},
|
|
217
|
+
mariadb: function(s) { return _pill('#003545', '#C97E68', 'MDB', s); },
|
|
218
|
+
mssql: function(s) { return _pill('#CC2927', '#fff', 'SQL', s); },
|
|
219
|
+
oracle: function(s) { return _pill('#F80000', '#fff', 'ORA', s); },
|
|
220
|
+
neon: function(s) { return _pill('#00E599', '#000', 'N', s); },
|
|
221
|
+
planetscale: function(s) { return _pill('#000', '#fff', 'PS', s); },
|
|
222
|
+
cockroachdb: function(s) { return _pill('#6933FF', '#fff', 'CR', s); },
|
|
223
|
+
turso: function(s) { return _pill('#4FF8D2', '#000', 'T', s); },
|
|
224
|
+
dynamodb: function(s) { return _pill('#4053D6', '#fff', 'DDB', s); },
|
|
178
225
|
paypal: function(s) { return _pill('#003087', '#fff', 'PP', s); },
|
|
179
226
|
linkedin: function(s) { return _pill('#0A66C2', '#fff', 'in', s); },
|
|
180
227
|
twitter: function(s) { return _pill('#000', '#fff', 'X', s); },
|
|
@@ -2,30 +2,37 @@ import { h, useState, useEffect, useCallback, Fragment, useApp, engineCall, getO
|
|
|
2
2
|
import { I } from '../components/icons.js?v=2';
|
|
3
3
|
import { Modal } from '../components/modal.js';
|
|
4
4
|
import { HelpButton } from '../components/help-button.js';
|
|
5
|
+
import { BrandLogo } from '../assets/brand-logos.js';
|
|
5
6
|
|
|
6
7
|
var DATABASE_TYPES = [
|
|
7
8
|
{ section: 'Relational (SQL)', items: [
|
|
8
|
-
{ value: 'postgresql', label: 'PostgreSQL'
|
|
9
|
-
{ value: 'mysql', label: 'MySQL'
|
|
10
|
-
{ value: 'mariadb', label: 'MariaDB'
|
|
11
|
-
{ value: 'mssql', label: 'Microsoft SQL Server'
|
|
12
|
-
{ value: 'oracle', label: 'Oracle'
|
|
13
|
-
{ value: 'sqlite', label: 'SQLite'
|
|
9
|
+
{ value: 'postgresql', label: 'PostgreSQL' },
|
|
10
|
+
{ value: 'mysql', label: 'MySQL' },
|
|
11
|
+
{ value: 'mariadb', label: 'MariaDB' },
|
|
12
|
+
{ value: 'mssql', label: 'Microsoft SQL Server' },
|
|
13
|
+
{ value: 'oracle', label: 'Oracle' },
|
|
14
|
+
{ value: 'sqlite', label: 'SQLite' },
|
|
14
15
|
]},
|
|
15
16
|
{ section: 'Cloud-Native SQL', items: [
|
|
16
|
-
{ value: 'supabase', label: 'Supabase'
|
|
17
|
-
{ value: 'neon', label: 'Neon'
|
|
18
|
-
{ value: 'planetscale', label: 'PlanetScale'
|
|
19
|
-
{ value: 'cockroachdb', label: 'CockroachDB'
|
|
20
|
-
{ value: 'turso', label: 'Turso / LibSQL'
|
|
17
|
+
{ value: 'supabase', label: 'Supabase' },
|
|
18
|
+
{ value: 'neon', label: 'Neon' },
|
|
19
|
+
{ value: 'planetscale', label: 'PlanetScale' },
|
|
20
|
+
{ value: 'cockroachdb', label: 'CockroachDB' },
|
|
21
|
+
{ value: 'turso', label: 'Turso / LibSQL' },
|
|
21
22
|
]},
|
|
22
23
|
{ section: 'NoSQL / Key-Value', items: [
|
|
23
|
-
{ value: 'mongodb', label: 'MongoDB'
|
|
24
|
-
{ value: 'redis', label: 'Redis'
|
|
25
|
-
{ value: 'dynamodb', label: 'AWS DynamoDB'
|
|
24
|
+
{ value: 'mongodb', label: 'MongoDB' },
|
|
25
|
+
{ value: 'redis', label: 'Redis' },
|
|
26
|
+
{ value: 'dynamodb', label: 'AWS DynamoDB' },
|
|
26
27
|
]},
|
|
27
28
|
];
|
|
28
29
|
|
|
30
|
+
function dbLogo(type, size) {
|
|
31
|
+
if (BrandLogo[type]) return BrandLogo[type](size || 28);
|
|
32
|
+
var dbType = ALL_DB_TYPES.find(function(d) { return d.value === type; });
|
|
33
|
+
return h('span', { style: { fontSize: (size || 28) * 0.75 + 'px', lineHeight: 1 } }, dbType ? dbType.label.charAt(0) : '?');
|
|
34
|
+
}
|
|
35
|
+
|
|
29
36
|
var ALL_DB_TYPES = DATABASE_TYPES.flatMap(function(s) { return s.items; });
|
|
30
37
|
|
|
31
38
|
var PERMISSIONS = [
|
|
@@ -205,7 +212,7 @@ function ConnectionsTab(props) {
|
|
|
205
212
|
var statusStyle = conn.status === 'active' ? s.badgeActive : conn.status === 'error' ? s.badgeError : s.badgeInactive;
|
|
206
213
|
return h('div', { key: conn.id, style: s.card },
|
|
207
214
|
h('div', { style: s.cardHeader },
|
|
208
|
-
h('span', { style: s.cardIcon },
|
|
215
|
+
h('span', { style: s.cardIcon }, dbLogo(conn.type, 32)),
|
|
209
216
|
h('div', null,
|
|
210
217
|
h('div', { style: s.cardTitle }, conn.name),
|
|
211
218
|
h('div', { style: s.cardType }, dbType ? dbType.label : conn.type),
|
|
@@ -275,7 +282,7 @@ function AgentAccessTab(props) {
|
|
|
275
282
|
var dbType = ALL_DB_TYPES.find(function(t) { return t.value === conn.type; });
|
|
276
283
|
return h('div', { key: grant.connectionId, style: s.agentRow },
|
|
277
284
|
h('div', { style: css('display: flex; align-items: center; gap: 8px;') },
|
|
278
|
-
h('span', null,
|
|
285
|
+
h('span', null, dbLogo(conn.type, 20)),
|
|
279
286
|
h('span', { style: s.agentName }, conn.name || grant.connectionId),
|
|
280
287
|
),
|
|
281
288
|
h('div', { style: s.agentPerms },
|
|
@@ -391,7 +398,7 @@ function AddConnectionModal(props) {
|
|
|
391
398
|
style: isActive ? s.dbPickerItemActive : s.dbPickerItem,
|
|
392
399
|
onClick: function() { setDbType(item.value); },
|
|
393
400
|
},
|
|
394
|
-
h('div', { style: css('
|
|
401
|
+
h('div', { style: css('margin-bottom: 4px; display: flex; justify-content: center;') }, dbLogo(item.value, 32)),
|
|
395
402
|
h('div', { style: css('font-size: 12px; font-weight: 500;') }, item.label),
|
|
396
403
|
);
|
|
397
404
|
})
|