@marimo-team/islands 0.23.12-dev5 → 0.23.12-dev7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chat-ui-BElU7iES.js → chat-ui-BEOvjkmJ.js} +2 -2
- package/dist/{code-visibility-C4oGgzI1.js → code-visibility-43gCeXKe.js} +12 -12
- package/dist/{formats-CGj29bgR.js → formats-d6MhLuQ9.js} +1 -1
- package/dist/{html-to-image-Pd4oj3-L.js → html-to-image-Di0mtt6O.js} +58 -58
- package/dist/main.js +1214 -1201
- package/dist/{process-output-nrhrehth.js → process-output-BLd4KuwX.js} +1 -1
- package/dist/{reveal-component-BnYITWzo.js → reveal-component-BQHpjptH.js} +3 -3
- package/dist/style.css +2 -2
- package/dist/{vega-component-CKPImOhx.js → vega-component-Pk6lyc_a.js} +1 -1
- package/package.json +3 -3
- package/src/components/ai/display-helpers.tsx +5 -5
- package/src/components/app-config/ai-config.tsx +5 -5
- package/src/components/app-config/mcp-config.tsx +3 -3
- package/src/components/chat/acp/agent-panel.tsx +3 -3
- package/src/components/chat/acp/blocks.tsx +36 -38
- package/src/components/chat/acp/common.tsx +12 -16
- package/src/components/chat/acp/scroll-to-bottom-button.tsx +1 -1
- package/src/components/chat/acp/session-tabs.tsx +2 -2
- package/src/components/chat/chat-history-popover.tsx +1 -1
- package/src/components/data-table/columns.tsx +2 -2
- package/src/components/data-table/filter-pill-editor.tsx +1 -1
- package/src/components/dependency-graph/minimap-content.tsx +1 -1
- package/src/components/editor/RecoveryButton.tsx +1 -1
- package/src/components/editor/actions/pair-with-agent-modal.tsx +2 -2
- package/src/components/editor/ai/ai-completion-editor.tsx +1 -1
- package/src/components/editor/cell/CreateCellButton.tsx +1 -1
- package/src/components/editor/chrome/panels/empty-state.tsx +1 -1
- package/src/components/editor/chrome/panels/outline/floating-outline.tsx +1 -1
- package/src/components/editor/chrome/wrapper/pending-ai-cells.tsx +1 -1
- package/src/components/editor/columns/cell-column.tsx +1 -1
- package/src/components/editor/columns/sortable-column.tsx +2 -2
- package/src/components/editor/output/MarimoErrorOutput.tsx +1 -1
- package/src/components/editor/output/TextOutput.tsx +2 -2
- package/src/components/slides/minimap.tsx +2 -2
- package/src/components/slides/reveal-component.tsx +1 -1
- package/src/components/ui/alert.tsx +1 -1
- package/src/components/ui/command.tsx +2 -2
- package/src/components/ui/reorderable-list.tsx +1 -1
- package/src/components/ui/table.tsx +2 -5
- package/src/core/codemirror/language/languages/sql/renderers.tsx +60 -68
- package/src/plugins/impl/MatrixPlugin.tsx +2 -2
- package/src/plugins/impl/TabsPlugin.tsx +1 -1
- package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +1 -1
- package/src/plugins/impl/mpl-interactive/MplInteractivePlugin.tsx +155 -98
- package/src/plugins/impl/mpl-interactive/__tests__/MplInteractivePlugin.test.tsx +154 -1
- package/src/plugins/impl/mpl-interactive/mpl-websocket-shim.ts +10 -0
|
@@ -514,7 +514,7 @@ const SlideThumbnailRow = ({
|
|
|
514
514
|
tabIndex={0}
|
|
515
515
|
data-cell-id={cell.id}
|
|
516
516
|
className={cn(
|
|
517
|
-
"relative shrink-0 appearance-none text-left p-0 bg-transparent outline-
|
|
517
|
+
"relative shrink-0 appearance-none text-left p-0 bg-transparent outline-hidden",
|
|
518
518
|
className,
|
|
519
519
|
)}
|
|
520
520
|
style={rowStyle}
|
|
@@ -591,7 +591,7 @@ const InsertCellLine = ({
|
|
|
591
591
|
data-testid="minimap-insert-cell"
|
|
592
592
|
className={cn(
|
|
593
593
|
"absolute left-0 right-0 z-30 flex h-3 items-center justify-center",
|
|
594
|
-
"opacity-0 transition-opacity hover:opacity-80 focus-visible:opacity-100 focus:outline-
|
|
594
|
+
"opacity-0 transition-opacity hover:opacity-80 focus-visible:opacity-100 focus:outline-hidden",
|
|
595
595
|
position === "below"
|
|
596
596
|
? "bottom-0 translate-y-1/2"
|
|
597
597
|
: "top-0 -translate-y-1/2",
|
|
@@ -684,7 +684,7 @@ const RevealSlidesComponent = ({
|
|
|
684
684
|
<div className="group relative" style={{ width, height }}>
|
|
685
685
|
<Deck
|
|
686
686
|
deckRef={deckRef}
|
|
687
|
-
className="aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-
|
|
687
|
+
className="aspect-video w-full overflow-hidden border rounded bg-background mo-slides-theme prose-slides focus:outline-hidden focus-visible:outline-hidden"
|
|
688
688
|
config={revealConfig}
|
|
689
689
|
onReady={handleDeckReady}
|
|
690
690
|
onSlideChange={handleSlideChange}
|
|
@@ -6,7 +6,7 @@ import * as React from "react";
|
|
|
6
6
|
import { cn } from "@/utils/cn";
|
|
7
7
|
|
|
8
8
|
const alertVariants = cva(
|
|
9
|
-
"relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] [
|
|
9
|
+
"relative w-full rounded-lg border p-4 [&>svg]:absolute [&>svg]:text-foreground [&>svg]:left-4 [&>svg]:top-4 [&>svg+div]:translate-y-[-3px] has-[svg]:pl-11",
|
|
10
10
|
{
|
|
11
11
|
variants: {
|
|
12
12
|
variant: {
|
|
@@ -44,7 +44,7 @@ const CommandDialog = ({ children, ...props }: CommandDialogProps) => {
|
|
|
44
44
|
className="overflow-hidden p-0 shadow-2xl"
|
|
45
45
|
usePortal={true}
|
|
46
46
|
>
|
|
47
|
-
<Command className="[
|
|
47
|
+
<Command className="**:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 **:[[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 **:[[cmdk-input]]:h-12 **:[[cmdk-item]]:px-2 **:[[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
|
|
48
48
|
{children}
|
|
49
49
|
</Command>
|
|
50
50
|
</DialogContent>
|
|
@@ -113,7 +113,7 @@ const CommandGroup = React.forwardRef<
|
|
|
113
113
|
<CommandPrimitive.Group
|
|
114
114
|
ref={ref}
|
|
115
115
|
className={cn(
|
|
116
|
-
"overflow-hidden p-1 text-foreground [
|
|
116
|
+
"overflow-hidden p-1 text-foreground **:[[cmdk-group-heading]]:px-2 **:[[cmdk-group-heading]]:py-1.5 **:[[cmdk-group-heading]]:text-xs **:[[cmdk-group-heading]]:font-medium **:[[cmdk-group-heading]]:text-muted-foreground",
|
|
117
117
|
className,
|
|
118
118
|
)}
|
|
119
119
|
{...props}
|
|
@@ -300,7 +300,7 @@ export const ReorderableList = <T extends object>({
|
|
|
300
300
|
<ListBoxItem
|
|
301
301
|
key={getKey(item)}
|
|
302
302
|
id={getKey(item)}
|
|
303
|
-
className="active:cursor-grabbing data-
|
|
303
|
+
className="active:cursor-grabbing data-dragging:opacity-60 outline-hidden"
|
|
304
304
|
onHoverStart={
|
|
305
305
|
onItemPreloadHint ? () => onItemPreloadHint(item) : undefined
|
|
306
306
|
}
|
|
@@ -75,7 +75,7 @@ const TableHead = React.forwardRef<
|
|
|
75
75
|
<th
|
|
76
76
|
ref={ref}
|
|
77
77
|
className={cn(
|
|
78
|
-
"h-10 px-2 text-left align-middle font-medium text-muted-foreground
|
|
78
|
+
"h-10 px-2 text-left align-middle font-medium text-muted-foreground has-[[role=checkbox]]:pr-0",
|
|
79
79
|
className,
|
|
80
80
|
)}
|
|
81
81
|
{...props}
|
|
@@ -89,10 +89,7 @@ const TableCell = React.forwardRef<
|
|
|
89
89
|
>(({ className, ...props }, ref) => (
|
|
90
90
|
<td
|
|
91
91
|
ref={ref}
|
|
92
|
-
className={cn(
|
|
93
|
-
"p-1.5 align-middle [&:has([role=checkbox])]:pr-0",
|
|
94
|
-
className,
|
|
95
|
-
)}
|
|
92
|
+
className={cn("p-1.5 align-middle has-[[role=checkbox]]:pr-0", className)}
|
|
96
93
|
{...props}
|
|
97
94
|
/>
|
|
98
95
|
));
|
|
@@ -34,22 +34,22 @@ const PREVIEW_ITEM_LIMIT = 5;
|
|
|
34
34
|
|
|
35
35
|
// Color mappings for data types (Tailwind-safe)
|
|
36
36
|
const DATA_TYPE_COLORS: Record<DataType, string> = {
|
|
37
|
-
boolean: "bg-
|
|
38
|
-
date: "bg-
|
|
39
|
-
time: "bg-
|
|
40
|
-
datetime: "bg-
|
|
41
|
-
number: "bg-
|
|
42
|
-
integer: "bg-
|
|
43
|
-
string: "bg-
|
|
44
|
-
unknown: "bg-
|
|
37
|
+
boolean: "bg-(--orange-4) text-(--orange-11)",
|
|
38
|
+
date: "bg-(--grass-4) text-(--grass-11)",
|
|
39
|
+
time: "bg-(--grass-4) text-(--grass-11)",
|
|
40
|
+
datetime: "bg-(--grass-4) text-(--grass-11)",
|
|
41
|
+
number: "bg-(--purple-4) text-(--purple-11)",
|
|
42
|
+
integer: "bg-(--purple-4) text-(--purple-11)",
|
|
43
|
+
string: "bg-(--blue-4) text-(--blue-11)",
|
|
44
|
+
unknown: "bg-(--slate-4) text-(--slate-11)",
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
// Source type colors
|
|
48
48
|
const SOURCE_TYPE_COLORS = {
|
|
49
|
-
local: "bg-
|
|
50
|
-
duckdb: "bg-
|
|
51
|
-
connection: "bg-
|
|
52
|
-
catalog: "bg-
|
|
49
|
+
local: "bg-(--blue-4) text-(--blue-11)",
|
|
50
|
+
duckdb: "bg-(--amber-4) text-(--amber-11)",
|
|
51
|
+
connection: "bg-(--green-4) text-(--green-11)",
|
|
52
|
+
catalog: "bg-(--purple-4) text-(--purple-11)",
|
|
53
53
|
} as const;
|
|
54
54
|
|
|
55
55
|
const CONTAINER_STYLES = "p-3 min-w-[250px] flex flex-col divide-y";
|
|
@@ -78,7 +78,7 @@ const MetadataRow: React.FC<{
|
|
|
78
78
|
value: React.ReactNode;
|
|
79
79
|
}> = ({ label, value }) => (
|
|
80
80
|
<div className="flex items-center justify-between text-xs">
|
|
81
|
-
<span className="text-
|
|
81
|
+
<span className="text-(--slate-11)">{label}:</span>
|
|
82
82
|
{value}
|
|
83
83
|
</div>
|
|
84
84
|
);
|
|
@@ -89,7 +89,7 @@ const StatisticItem: React.FC<{
|
|
|
89
89
|
}> = ({ icon, text }) => (
|
|
90
90
|
<div className="flex items-center gap-1">
|
|
91
91
|
{icon}
|
|
92
|
-
<span className="text-xs text-
|
|
92
|
+
<span className="text-xs text-(--slate-11)">{text}</span>
|
|
93
93
|
</div>
|
|
94
94
|
);
|
|
95
95
|
|
|
@@ -109,14 +109,12 @@ const PreviewList: React.FC<{
|
|
|
109
109
|
return (
|
|
110
110
|
<div className="py-2">
|
|
111
111
|
{title && (
|
|
112
|
-
<h4 className="text-xs font-medium text-
|
|
113
|
-
{title}:
|
|
114
|
-
</h4>
|
|
112
|
+
<h4 className="text-xs font-medium text-(--slate-11) mb-2">{title}:</h4>
|
|
115
113
|
)}
|
|
116
114
|
<div className="flex flex-col gap-1 overflow-y-auto">
|
|
117
115
|
{visibleItems}
|
|
118
116
|
{hasMore && (
|
|
119
|
-
<div className="text-xs text-
|
|
117
|
+
<div className="text-xs text-(--slate-10) text-center py-1">
|
|
120
118
|
... and {totalCount - limit} more
|
|
121
119
|
</div>
|
|
122
120
|
)}
|
|
@@ -132,9 +130,9 @@ const getDataTypeColorClass = (dataType: DataType): string => {
|
|
|
132
130
|
export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
133
131
|
const tableIcon =
|
|
134
132
|
table.type === "view" ? (
|
|
135
|
-
<ViewIcon className="w-4 h-4 text-
|
|
133
|
+
<ViewIcon className="w-4 h-4 text-(--blue-9)" />
|
|
136
134
|
) : (
|
|
137
|
-
<TableIcon className="w-4 h-4 text-
|
|
135
|
+
<TableIcon className="w-4 h-4 text-(--green-9)" />
|
|
138
136
|
);
|
|
139
137
|
|
|
140
138
|
const typeBadge = (
|
|
@@ -142,8 +140,8 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
142
140
|
variant="secondary"
|
|
143
141
|
className={`text-xs ${
|
|
144
142
|
table.type === "view"
|
|
145
|
-
? "bg-
|
|
146
|
-
: "bg-
|
|
143
|
+
? "bg-(--blue-4) text-(--blue-11)"
|
|
144
|
+
: "bg-(--green-4) text-(--green-11)"
|
|
147
145
|
}`}
|
|
148
146
|
>
|
|
149
147
|
{table.type}
|
|
@@ -158,7 +156,7 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
158
156
|
className="flex items-center justify-between text-xs rounded"
|
|
159
157
|
>
|
|
160
158
|
<div className="flex items-center gap-2">
|
|
161
|
-
<TypeIcon className="w-3 h-3 text-
|
|
159
|
+
<TypeIcon className="w-3 h-3 text-(--slate-9)" />
|
|
162
160
|
<span className="font-mono">{column.name}</span>
|
|
163
161
|
</div>
|
|
164
162
|
<Badge
|
|
@@ -196,7 +194,7 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
196
194
|
<MetadataRow
|
|
197
195
|
label="Variable"
|
|
198
196
|
value={
|
|
199
|
-
<code className="text-xs bg-
|
|
197
|
+
<code className="text-xs bg-(--slate-4) px-1 rounded">
|
|
200
198
|
{table.variable_name}
|
|
201
199
|
</code>
|
|
202
200
|
}
|
|
@@ -207,7 +205,7 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
207
205
|
<MetadataRow
|
|
208
206
|
label="Engine"
|
|
209
207
|
value={
|
|
210
|
-
<code className="text-xs bg-
|
|
208
|
+
<code className="text-xs bg-(--slate-4) px-1 rounded">
|
|
211
209
|
{table.engine}
|
|
212
210
|
</code>
|
|
213
211
|
}
|
|
@@ -220,13 +218,13 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
220
218
|
<div className="grid grid-cols-2 gap-2 py-2">
|
|
221
219
|
{table.num_columns != null && (
|
|
222
220
|
<StatisticItem
|
|
223
|
-
icon={<ColumnIcon className="w-3 h-3 text-
|
|
221
|
+
icon={<ColumnIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
224
222
|
text={`${table.num_columns} ${columnsText.pluralize(table.num_columns)}`}
|
|
225
223
|
/>
|
|
226
224
|
)}
|
|
227
225
|
{table.num_rows != null && (
|
|
228
226
|
<StatisticItem
|
|
229
|
-
icon={<HashIcon className="w-3 h-3 text-
|
|
227
|
+
icon={<HashIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
230
228
|
text={`${table.num_rows} ${rowsText.pluralize(table.num_rows)}`}
|
|
231
229
|
/>
|
|
232
230
|
)}
|
|
@@ -242,8 +240,8 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
242
240
|
{hasPrimaryKeys && (
|
|
243
241
|
<div className="flex flex-row gap-1">
|
|
244
242
|
<div className="flex items-center gap-1">
|
|
245
|
-
<PrimaryKeyIcon className="w-3 h-3 text-
|
|
246
|
-
<span className="text-xs font-medium text-
|
|
243
|
+
<PrimaryKeyIcon className="w-3 h-3 text-(--amber-9)" />
|
|
244
|
+
<span className="text-xs font-medium text-(--slate-11)">
|
|
247
245
|
Primary Keys:
|
|
248
246
|
</span>
|
|
249
247
|
</div>
|
|
@@ -251,7 +249,7 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
251
249
|
<Badge
|
|
252
250
|
key={key}
|
|
253
251
|
variant="outline"
|
|
254
|
-
className="text-xs text-
|
|
252
|
+
className="text-xs text-(--slate-11)"
|
|
255
253
|
>
|
|
256
254
|
{key}
|
|
257
255
|
</Badge>
|
|
@@ -262,8 +260,8 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
262
260
|
{hasIndexes && (
|
|
263
261
|
<div className="flex flex-row gap-1">
|
|
264
262
|
<div className="flex items-center gap-1 mb-1">
|
|
265
|
-
<IndexIcon className="w-3 h-3 text-
|
|
266
|
-
<span className="text-xs font-medium text-
|
|
263
|
+
<IndexIcon className="w-3 h-3 text-(--purple-9)" />
|
|
264
|
+
<span className="text-xs font-medium text-(--slate-11)">
|
|
267
265
|
Indexes:
|
|
268
266
|
</span>
|
|
269
267
|
</div>
|
|
@@ -271,7 +269,7 @@ export const renderTableInfo = (table: DataTable): React.ReactNode => {
|
|
|
271
269
|
<Badge
|
|
272
270
|
key={index}
|
|
273
271
|
variant="outline"
|
|
274
|
-
className="text-xs text-
|
|
272
|
+
className="text-xs text-(--slate-11)"
|
|
275
273
|
>
|
|
276
274
|
{index}
|
|
277
275
|
</Badge>
|
|
@@ -303,10 +301,7 @@ export const renderColumnInfo = (column: DataTableColumn): React.ReactNode => {
|
|
|
303
301
|
|
|
304
302
|
const sampleItems =
|
|
305
303
|
column.sample_values?.map((value, index) => (
|
|
306
|
-
<div
|
|
307
|
-
key={index}
|
|
308
|
-
className="text-xs bg-[var(--slate-3)] rounded font-mono"
|
|
309
|
-
>
|
|
304
|
+
<div key={index} className="text-xs bg-(--slate-3) rounded font-mono">
|
|
310
305
|
{value === null || value === undefined ? "null" : String(value)}
|
|
311
306
|
</div>
|
|
312
307
|
)) || [];
|
|
@@ -314,7 +309,7 @@ export const renderColumnInfo = (column: DataTableColumn): React.ReactNode => {
|
|
|
314
309
|
return (
|
|
315
310
|
<div className={CONTAINER_STYLES}>
|
|
316
311
|
<SectionHeader
|
|
317
|
-
icon={<TypeIcon className="w-4 h-4 text-
|
|
312
|
+
icon={<TypeIcon className="w-4 h-4 text-(--slate-9)" />}
|
|
318
313
|
title={column.name}
|
|
319
314
|
badge={typeBadge}
|
|
320
315
|
/>
|
|
@@ -328,7 +323,7 @@ export const renderColumnInfo = (column: DataTableColumn): React.ReactNode => {
|
|
|
328
323
|
<MetadataRow
|
|
329
324
|
label="External Type"
|
|
330
325
|
value={
|
|
331
|
-
<code className="text-xs bg-
|
|
326
|
+
<code className="text-xs bg-(--slate-4) px-1 rounded">
|
|
332
327
|
{column.external_type}
|
|
333
328
|
</code>
|
|
334
329
|
}
|
|
@@ -349,10 +344,7 @@ export const renderColumnInfo = (column: DataTableColumn): React.ReactNode => {
|
|
|
349
344
|
|
|
350
345
|
export const renderDatabaseInfo = (database: Database): React.ReactNode => {
|
|
351
346
|
const dialectBadge = (
|
|
352
|
-
<Badge
|
|
353
|
-
variant="outline"
|
|
354
|
-
className="text-xs bg-[var(--blue-4)] text-[var(--blue-11)]"
|
|
355
|
-
>
|
|
347
|
+
<Badge variant="outline" className="text-xs bg-(--blue-4) text-(--blue-11)">
|
|
356
348
|
{database.dialect}
|
|
357
349
|
</Badge>
|
|
358
350
|
);
|
|
@@ -360,10 +352,10 @@ export const renderDatabaseInfo = (database: Database): React.ReactNode => {
|
|
|
360
352
|
const schemaItems = database.schemas.map((schema) => (
|
|
361
353
|
<div
|
|
362
354
|
key={schema.name}
|
|
363
|
-
className="flex items-center justify-between text-xs rounded hover:bg-
|
|
355
|
+
className="flex items-center justify-between text-xs rounded hover:bg-(--slate-3)"
|
|
364
356
|
>
|
|
365
357
|
<div className="flex items-center gap-2">
|
|
366
|
-
<SchemaIcon className="w-3 h-3 text-
|
|
358
|
+
<SchemaIcon className="w-3 h-3 text-(--slate-9)" />
|
|
367
359
|
<span>{schema.name}</span>
|
|
368
360
|
</div>
|
|
369
361
|
<Badge variant="outline" className="text-xs">
|
|
@@ -375,7 +367,7 @@ export const renderDatabaseInfo = (database: Database): React.ReactNode => {
|
|
|
375
367
|
return (
|
|
376
368
|
<div className={CONTAINER_STYLES}>
|
|
377
369
|
<SectionHeader
|
|
378
|
-
icon={<DatabaseIcon className="w-4 h-4 text-
|
|
370
|
+
icon={<DatabaseIcon className="w-4 h-4 text-(--blue-9)" />}
|
|
379
371
|
title={database.name}
|
|
380
372
|
badge={dialectBadge}
|
|
381
373
|
/>
|
|
@@ -390,7 +382,7 @@ export const renderDatabaseInfo = (database: Database): React.ReactNode => {
|
|
|
390
382
|
<MetadataRow
|
|
391
383
|
label="Engine"
|
|
392
384
|
value={
|
|
393
|
-
<code className="text-xs bg-
|
|
385
|
+
<code className="text-xs bg-(--slate-4) px-1 rounded">
|
|
394
386
|
{database.engine}
|
|
395
387
|
</code>
|
|
396
388
|
}
|
|
@@ -400,7 +392,7 @@ export const renderDatabaseInfo = (database: Database): React.ReactNode => {
|
|
|
400
392
|
{/* Schema Statistics */}
|
|
401
393
|
<div className="py-2">
|
|
402
394
|
<StatisticItem
|
|
403
|
-
icon={<SchemaIcon className="w-3 h-3 text-
|
|
395
|
+
icon={<SchemaIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
404
396
|
text={`${database.schemas.length} schema${database.schemas.length === 1 ? "" : "s"}`}
|
|
405
397
|
/>
|
|
406
398
|
</div>
|
|
@@ -423,7 +415,7 @@ export const renderSchemaInfo = (schema: DatabaseSchema): React.ReactNode => {
|
|
|
423
415
|
const schemaBadge = (
|
|
424
416
|
<Badge
|
|
425
417
|
variant="outline"
|
|
426
|
-
className="text-xs bg-
|
|
418
|
+
className="text-xs bg-(--green-4) text-(--green-11)"
|
|
427
419
|
>
|
|
428
420
|
Schema
|
|
429
421
|
</Badge>
|
|
@@ -432,13 +424,13 @@ export const renderSchemaInfo = (schema: DatabaseSchema): React.ReactNode => {
|
|
|
432
424
|
const tableItems = schema.tables.map((table) => (
|
|
433
425
|
<div
|
|
434
426
|
key={table.name}
|
|
435
|
-
className="flex items-center justify-between text-xs rounded hover:bg-
|
|
427
|
+
className="flex items-center justify-between text-xs rounded hover:bg-(--slate-3)"
|
|
436
428
|
>
|
|
437
429
|
<div className="flex items-center gap-2">
|
|
438
430
|
{table.type === "view" ? (
|
|
439
|
-
<ViewIcon className="w-3 h-3 text-
|
|
431
|
+
<ViewIcon className="w-3 h-3 text-(--blue-9)" />
|
|
440
432
|
) : (
|
|
441
|
-
<TableIcon className="w-3 h-3 text-
|
|
433
|
+
<TableIcon className="w-3 h-3 text-(--green-9)" />
|
|
442
434
|
)}
|
|
443
435
|
<span>{table.name}</span>
|
|
444
436
|
</div>
|
|
@@ -446,8 +438,8 @@ export const renderSchemaInfo = (schema: DatabaseSchema): React.ReactNode => {
|
|
|
446
438
|
variant="outline"
|
|
447
439
|
className={`text-xs ${
|
|
448
440
|
table.type === "view"
|
|
449
|
-
? "bg-
|
|
450
|
-
: "bg-
|
|
441
|
+
? "bg-(--blue-4) text-(--blue-11)"
|
|
442
|
+
: "bg-(--green-4) text-(--green-11)"
|
|
451
443
|
}`}
|
|
452
444
|
>
|
|
453
445
|
{table.type}
|
|
@@ -458,7 +450,7 @@ export const renderSchemaInfo = (schema: DatabaseSchema): React.ReactNode => {
|
|
|
458
450
|
return (
|
|
459
451
|
<div className={CONTAINER_STYLES}>
|
|
460
452
|
<SectionHeader
|
|
461
|
-
icon={<SchemaIcon className="w-4 h-4 text-
|
|
453
|
+
icon={<SchemaIcon className="w-4 h-4 text-(--green-9)" />}
|
|
462
454
|
title={schema.name}
|
|
463
455
|
badge={schemaBadge}
|
|
464
456
|
/>
|
|
@@ -466,7 +458,7 @@ export const renderSchemaInfo = (schema: DatabaseSchema): React.ReactNode => {
|
|
|
466
458
|
{/* Table Statistics */}
|
|
467
459
|
<div className="py-2">
|
|
468
460
|
<StatisticItem
|
|
469
|
-
icon={<TableIcon className="w-3 h-3 text-
|
|
461
|
+
icon={<TableIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
470
462
|
text={`${schema.tables.length} table${schema.tables.length === 1 ? "" : "s"}`}
|
|
471
463
|
/>
|
|
472
464
|
</div>
|
|
@@ -516,7 +508,7 @@ export const renderDatasourceInfo = (
|
|
|
516
508
|
.map((table) => {
|
|
517
509
|
return (
|
|
518
510
|
<div key={table.name} className="flex items-center gap-2 ml-4">
|
|
519
|
-
<TableIcon className="w-3 h-3 text-
|
|
511
|
+
<TableIcon className="w-3 h-3 text-(--green-9)" />
|
|
520
512
|
<span className="text-xs">{table.name}</span>
|
|
521
513
|
</div>
|
|
522
514
|
);
|
|
@@ -525,8 +517,8 @@ export const renderDatasourceInfo = (
|
|
|
525
517
|
|
|
526
518
|
return (
|
|
527
519
|
<div key={schema.name}>
|
|
528
|
-
<div className="flex items-center gap-2 text-xs rounded hover:bg-
|
|
529
|
-
<SchemaIcon className="w-3 h-3 text-
|
|
520
|
+
<div className="flex items-center gap-2 text-xs rounded hover:bg-(--slate-3) ml-2">
|
|
521
|
+
<SchemaIcon className="w-3 h-3 text-(--slate-9)" />
|
|
530
522
|
<span>{schema.name}</span>
|
|
531
523
|
{isDefaultSchema && DefaultBadge}
|
|
532
524
|
<Badge variant="outline" className="text-xs ml-auto">
|
|
@@ -554,7 +546,7 @@ export const renderDatasourceInfo = (
|
|
|
554
546
|
return (
|
|
555
547
|
<div key={db.name}>
|
|
556
548
|
<div className="flex items-center gap-2">
|
|
557
|
-
<DatabaseIcon className="w-3 h-3 text-
|
|
549
|
+
<DatabaseIcon className="w-3 h-3 text-(--blue-9)" />
|
|
558
550
|
<span className="text-xs">{db.name}</span>
|
|
559
551
|
{isDefaultDb && DefaultBadge}
|
|
560
552
|
</div>
|
|
@@ -572,7 +564,7 @@ export const renderDatasourceInfo = (
|
|
|
572
564
|
|
|
573
565
|
const dataframeItems = dataframes?.map((table) => (
|
|
574
566
|
<div key={table.name} className="flex items-center gap-2">
|
|
575
|
-
<TableIcon className="w-3 h-3 text-
|
|
567
|
+
<TableIcon className="w-3 h-3 text-(--blue-9)" />
|
|
576
568
|
<span className="text-xs">{table.name}</span>
|
|
577
569
|
</div>
|
|
578
570
|
));
|
|
@@ -580,7 +572,7 @@ export const renderDatasourceInfo = (
|
|
|
580
572
|
return (
|
|
581
573
|
<div className={`${CONTAINER_STYLES} px-1`}>
|
|
582
574
|
<SectionHeader
|
|
583
|
-
icon={<DatasourceIcon className="w-4 h-4 text-
|
|
575
|
+
icon={<DatasourceIcon className="w-4 h-4 text-(--purple-9)" />}
|
|
584
576
|
title={title}
|
|
585
577
|
/>
|
|
586
578
|
|
|
@@ -599,7 +591,7 @@ export const renderDatasourceInfo = (
|
|
|
599
591
|
value={
|
|
600
592
|
<Badge
|
|
601
593
|
variant="outline"
|
|
602
|
-
className="text-xs bg-
|
|
594
|
+
className="text-xs bg-(--green-4) text-(--green-11)"
|
|
603
595
|
>
|
|
604
596
|
{connection.source}
|
|
605
597
|
</Badge>
|
|
@@ -610,11 +602,11 @@ export const renderDatasourceInfo = (
|
|
|
610
602
|
{/* Statistics */}
|
|
611
603
|
<div className="flex flex-row justify-between py-2">
|
|
612
604
|
<StatisticItem
|
|
613
|
-
icon={<DatabaseIcon className="w-3 h-3 text-
|
|
605
|
+
icon={<DatabaseIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
614
606
|
text={`${databaseCount} ${databasesText.pluralize(databaseCount)}`}
|
|
615
607
|
/>
|
|
616
608
|
<StatisticItem
|
|
617
|
-
icon={<SchemaIcon className="w-3 h-3 text-
|
|
609
|
+
icon={<SchemaIcon className="w-3 h-3 text-(--slate-9)" />}
|
|
618
610
|
text={`${schemasCount} ${schemasText.pluralize(schemasCount)}`}
|
|
619
611
|
/>
|
|
620
612
|
</div>
|
|
@@ -641,10 +633,10 @@ export const renderEmptyInfo = (
|
|
|
641
633
|
) => {
|
|
642
634
|
return (
|
|
643
635
|
<div className="flex items-start gap-2 mt-3">
|
|
644
|
-
<InfoIcon size={10} className="mt-1 text-
|
|
645
|
-
<span className="text-xs text-
|
|
636
|
+
<InfoIcon size={10} className="mt-1 text-(--slate-10) shrink-0" />
|
|
637
|
+
<span className="text-xs text-(--slate-11)">
|
|
646
638
|
No {type} information available.{" \n"}
|
|
647
|
-
<span className="text-
|
|
639
|
+
<span className="text-(--blue-10)">
|
|
648
640
|
Introspect to see more details.
|
|
649
641
|
</span>
|
|
650
642
|
</span>
|
|
@@ -244,10 +244,10 @@ const MatrixComponent = ({
|
|
|
244
244
|
<td
|
|
245
245
|
key={j}
|
|
246
246
|
className={cn(
|
|
247
|
-
"relative text-center min-w-14 h-8 px-2 transition-colors touch-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-
|
|
247
|
+
"relative text-center min-w-14 h-8 px-2 transition-colors touch-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-hidden",
|
|
248
248
|
isDisabled
|
|
249
249
|
? "cursor-default text-muted-foreground"
|
|
250
|
-
: "cursor-ew-resize text-
|
|
250
|
+
: "cursor-ew-resize text-link hover:bg-accent",
|
|
251
251
|
isActive && "bg-accent",
|
|
252
252
|
j === 0 && "bracket-l",
|
|
253
253
|
j === numCols - 1 && "bracket-r",
|
|
@@ -90,7 +90,7 @@ const TabComponent = ({
|
|
|
90
90
|
className={cn(
|
|
91
91
|
"scrollbar-thin",
|
|
92
92
|
isVertical
|
|
93
|
-
? "flex flex-col items-stretch justify-start h-auto max-h-none shrink-0 min-w-
|
|
93
|
+
? "flex flex-col items-stretch justify-start h-auto max-h-none shrink-0 min-w-40 overflow-y-auto"
|
|
94
94
|
: "max-w-full overflow-x-auto justify-start",
|
|
95
95
|
)}
|
|
96
96
|
>
|
|
@@ -292,7 +292,7 @@ export class MatplotlibRenderer {
|
|
|
292
292
|
// Configure container
|
|
293
293
|
container.tabIndex = -1;
|
|
294
294
|
container.role = "application";
|
|
295
|
-
container.className = "relative inline-block select-none outline-
|
|
295
|
+
container.className = "relative inline-block select-none outline-hidden";
|
|
296
296
|
|
|
297
297
|
// Create canvas
|
|
298
298
|
const canvas = document.createElement("canvas");
|