@marimo-team/islands 0.23.10-dev57 → 0.23.10-dev60
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-BHx9bULO.js → chat-ui-B2WNqRL6.js} +2 -2
- package/dist/{code-visibility-BwMX56Aa.js → code-visibility-2YZN4O7E.js} +2 -2
- package/dist/{html-to-image-BEeeScWH.js → html-to-image-DNiPS5a-.js} +1 -1
- package/dist/main.js +5 -5
- package/dist/{process-output-CO5geDQU.js → process-output-CmEyGIJM.js} +1 -1
- package/dist/{reveal-component-DnqT3Wzo.js → reveal-component-jq-TjZWl.js} +2 -2
- package/package.json +1 -1
- package/src/components/storage/storage-inspector.tsx +28 -18
- package/src/core/cells/__tests__/focus.test.ts +45 -2
- package/src/core/cells/focus.ts +1 -1
|
@@ -6,13 +6,13 @@ import { _ as Logger, c as Objects, g as cn, l as useEventListener, t as Button
|
|
|
6
6
|
import { t as require_react } from "./react-DA-nE2FX.js";
|
|
7
7
|
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
8
8
|
import { r as toast } from "./copy-UqRYxiOg.js";
|
|
9
|
-
import { C as AccordionContent, D as ChatBubbleIcon, En as Trash2, Et as createVariableInfoElement, G as cellErrorsAtom, Gt as getTableType, In as ExternalLink, It as jotaiJsonStorage, Lt as variablesAtom, Mt as generateUUID, Nn as Info, P as base64ToDataURL, Pn as FileText, Rt as PluralWord, S as Accordion, T as AccordionTrigger, Tn as Wrench, Ut as allTablesAtom, V as renderHTML, Wt as dataSourceConnectionsAtom, X as notebookAtom, Zt as singleFacet, _ as Boosts, _n as atomWithStorage, b as AIContextProvider, c as Popover, d as PopoverTrigger, f as isOutputEmpty, h as DatasourceContextProvider, jn as LoaderCircle, kt as moveToEndOfEditor, n as Spinner, nn as ZodLocalStorage, qt as getRequestClient, r as MarkdownRenderer, sn as CellOutputId, t as toPng, u as PopoverContent, v as Sections, w as AccordionItem, x as AIContextRegistry, y as contextToXml, yn as Anchor2, yt as displayCellName, zn as CircleX } from "./html-to-image-
|
|
9
|
+
import { C as AccordionContent, D as ChatBubbleIcon, En as Trash2, Et as createVariableInfoElement, G as cellErrorsAtom, Gt as getTableType, In as ExternalLink, It as jotaiJsonStorage, Lt as variablesAtom, Mt as generateUUID, Nn as Info, P as base64ToDataURL, Pn as FileText, Rt as PluralWord, S as Accordion, T as AccordionTrigger, Tn as Wrench, Ut as allTablesAtom, V as renderHTML, Wt as dataSourceConnectionsAtom, X as notebookAtom, Zt as singleFacet, _ as Boosts, _n as atomWithStorage, b as AIContextProvider, c as Popover, d as PopoverTrigger, f as isOutputEmpty, h as DatasourceContextProvider, jn as LoaderCircle, kt as moveToEndOfEditor, n as Spinner, nn as ZodLocalStorage, qt as getRequestClient, r as MarkdownRenderer, sn as CellOutputId, t as toPng, u as PopoverContent, v as Sections, w as AccordionItem, x as AIContextRegistry, y as contextToXml, yn as Anchor2, yt as displayCellName, zn as CircleX } from "./html-to-image-DNiPS5a-.js";
|
|
10
10
|
import "./chunk-5FQGJX7Z-BbqSm5gU.js";
|
|
11
11
|
import { u as createLucideIcon } from "./dist-Dk6PV_d3.js";
|
|
12
12
|
import { C as logNever, I as X, R as ChevronDown, t as Strings } from "./strings-J57tzLr3.js";
|
|
13
13
|
import { C as DropdownMenuTrigger, a as NumberField, f as DropdownMenu, h as DropdownMenuItem, p as DropdownMenuContent, r as Input } from "./input-OdWHkobi.js";
|
|
14
14
|
import { p as isUrl, v as CircleQuestionMark } from "./toDate-d8RCRrRd.js";
|
|
15
|
-
import { a as MarimoIncomingMessageEvent, d as Square, f as File$1, n as blobToString, t as processOutput, u as deserializeBlob } from "./process-output-
|
|
15
|
+
import { a as MarimoIncomingMessageEvent, d as Square, f as File$1, n as blobToString, t as processOutput, u as deserializeBlob } from "./process-output-CmEyGIJM.js";
|
|
16
16
|
import "./react-dom-BTJzcVJ9.js";
|
|
17
17
|
import { t as require_jsx_runtime } from "./jsx-runtime-DebpN0FN.js";
|
|
18
18
|
import { A as looseObject, B as union, C as any, D as discriminatedUnion, E as custom, H as safeParseAsync, I as record, L as strictObject, M as never, N as number, O as lazy, P as object$1, R as string, S as _null, T as boolean, V as unknown, W as toJSONSchema, b as _enum, k as literal, w as array$1, x as _instanceof } from "./zod-aLSua2NL.js";
|
|
@@ -6,7 +6,7 @@ import { _ as Logger, c as Objects, g as cn, h as Events, m as useComposedRefs,
|
|
|
6
6
|
import { t as require_react } from "./react-DA-nE2FX.js";
|
|
7
7
|
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
8
8
|
import { n as Copy, r as toast, t as copyToClipboard } from "./copy-UqRYxiOg.js";
|
|
9
|
-
import { $t as extractAllTracebackInfo, A as ChevronRightIcon, An as Minus, At as goToCellLine, Bt as DATA_TYPE_ICON, C as AccordionContent, Ct as Checkbox, En as Trash2, Fn as Eye, Ft as adaptForLocalStorage, Hn as esm_default, I as base64ToUint8Array, In as ExternalLink, It as jotaiJsonStorage, M as PinLeftIcon, N as PinRightIcon, Nn as Info, Nt as useChromeActions, O as CheckIcon, Pn as FileText, Qt as elementContainsMarimoCellFile, R as extractBase64FromDataURL, Rt as PluralWord, S as Accordion, T as AccordionTrigger, Tn as Wrench, Un as import_lib, V as renderHTML, Vn as Braces, Vt as getDataTypeColor, X as notebookAtom, Yt as useRequestClient, _n as atomWithStorage, _t as DATA_CELL_ID, bn as Close$1, c as Popover, cn as HTMLCellId, d as PopoverTrigger, dt as viewStateAtom, en as getTracebackInfo, et as useCellActions, ft as outputIsLoading, g as getDatasourceContext, gt as sanitizeHtml, hn as jsonToMarkdown, j as DotFilledIcon, jn as LoaderCircle, kn as NotebookPen, l as PopoverClose, ln as SCRATCH_CELL_ID, lt as kioskModeAtom, m as useExpandedOutput, mn as jsonParseWithSpecialChar, n as Spinner, nt as useCellNames, ot as AnsiUp, q as getCellEditorView, qt as getRequestClient, r as MarkdownRenderer, rn as filenameAtom, sn as CellOutputId, t as toPng, tt as useCellIds, u as PopoverContent, ut as useInstallAllowed, vt as getCellDomProps, w as AccordionItem, yt as displayCellName, z as isDataURLString, zn as CircleX, __tla as __tla_0 } from "./html-to-image-
|
|
9
|
+
import { $t as extractAllTracebackInfo, A as ChevronRightIcon, An as Minus, At as goToCellLine, Bt as DATA_TYPE_ICON, C as AccordionContent, Ct as Checkbox, En as Trash2, Fn as Eye, Ft as adaptForLocalStorage, Hn as esm_default, I as base64ToUint8Array, In as ExternalLink, It as jotaiJsonStorage, M as PinLeftIcon, N as PinRightIcon, Nn as Info, Nt as useChromeActions, O as CheckIcon, Pn as FileText, Qt as elementContainsMarimoCellFile, R as extractBase64FromDataURL, Rt as PluralWord, S as Accordion, T as AccordionTrigger, Tn as Wrench, Un as import_lib, V as renderHTML, Vn as Braces, Vt as getDataTypeColor, X as notebookAtom, Yt as useRequestClient, _n as atomWithStorage, _t as DATA_CELL_ID, bn as Close$1, c as Popover, cn as HTMLCellId, d as PopoverTrigger, dt as viewStateAtom, en as getTracebackInfo, et as useCellActions, ft as outputIsLoading, g as getDatasourceContext, gt as sanitizeHtml, hn as jsonToMarkdown, j as DotFilledIcon, jn as LoaderCircle, kn as NotebookPen, l as PopoverClose, ln as SCRATCH_CELL_ID, lt as kioskModeAtom, m as useExpandedOutput, mn as jsonParseWithSpecialChar, n as Spinner, nt as useCellNames, ot as AnsiUp, q as getCellEditorView, qt as getRequestClient, r as MarkdownRenderer, rn as filenameAtom, sn as CellOutputId, t as toPng, tt as useCellIds, u as PopoverContent, ut as useInstallAllowed, vt as getCellDomProps, w as AccordionItem, yt as displayCellName, z as isDataURLString, zn as CircleX, __tla as __tla_0 } from "./html-to-image-DNiPS5a-.js";
|
|
10
10
|
import { o as useSize, u as createLucideIcon } from "./dist-Dk6PV_d3.js";
|
|
11
11
|
import { c as Calendar, i as createReducerAndAtoms, r as Badge } from "./useLifecycle-00mO3OSS.js";
|
|
12
12
|
import { a as ListFilter, i as Table$1, n as $fb18d541ea1ad717$export$ad991b66133851cf, o as ChartPie, r as $5a387cc49350e6db$export$722debc0e56fea39, t as $896ba0a80a8f4d36$export$85fd5fdf27bacc79 } from "./useDateFormatter-QB-3MpYr.js";
|
|
@@ -35981,7 +35981,7 @@ ${d}`,
|
|
|
35981
35981
|
return Logger.warn("Failed to get version from mount config"), null;
|
|
35982
35982
|
}
|
|
35983
35983
|
}
|
|
35984
|
-
marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.10-
|
|
35984
|
+
marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.10-dev60");
|
|
35985
35985
|
showCodeInRunModeAtom = atom(true);
|
|
35986
35986
|
atom(null);
|
|
35987
35987
|
var import_compiler_runtime = require_compiler_runtime();
|
|
@@ -28096,7 +28096,7 @@ ${n.sqlString}
|
|
|
28096
28096
|
name: a.name,
|
|
28097
28097
|
config: a.config,
|
|
28098
28098
|
status: o ? o.status : "idle",
|
|
28099
|
-
getEditorView: () => s.
|
|
28099
|
+
getEditorView: () => s.editorViewOrNull,
|
|
28100
28100
|
hasOutput: (o == null ? void 0 : o.output) != null,
|
|
28101
28101
|
hasConsoleOutput: (o == null ? void 0 : o.consoleOutputs) != null
|
|
28102
28102
|
};
|
package/dist/main.js
CHANGED
|
@@ -22,17 +22,17 @@ import { _ as Logger, c as Objects, g as cn, h as Events, i as NOT_SET, l as use
|
|
|
22
22
|
import { t as require_react } from "./react-DA-nE2FX.js";
|
|
23
23
|
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
24
24
|
import { n as Copy, r as toast, t as copyToClipboard } from "./copy-UqRYxiOg.js";
|
|
25
|
-
import { $ as reducer, B as safeExtractSetUIElementMessageBuffers, Bn as CircleAlert, Bt as DATA_TYPE_ICON, C as AccordionContent, Cn as Root2$1, Ct as Checkbox, Dn as Table2, Dt as PathBuilder, E as BorderAllIcon, En as Trash2, F as base64ToDataView, Fn as Eye, H as getMarimoExportContext, Ht as require_client, It as jotaiJsonStorage, J as getCellNames, Jt as requestClientAtom, K as createActions, Kt as convertStatsName, L as dataViewToBase64, Ln as Database, Mn as Layers, Mt as generateUUID, Nn as Info, On as PaintRoller, Ot as Paths, Pn as FileText, Pt as repl, Q as numColumnsAtom, Rn as Columns2, S as Accordion, Sn as Item$1, St as normalizeName, T as AccordionTrigger, Tt as MarkdownLanguageAdapter, U as hasTrustedExportContext, V as renderHTML, Vn as Braces, W as hasRunAnyCellAtom, X as notebookAtom, Xt as isUninstantiated, Y as hasOnlyOneCellAtom, Yt as useRequestClient, Z as notebookOutline, _n as atomWithStorage, a as useCellFocusActions, an as parseDataset, bt as getValidName, cn as HTMLCellId, ct as initialModeAtom, dn as findCellId, et as useCellActions, f as isOutputEmpty, fn as OBJECT_ID_ATTR, ft as outputIsLoading, gn as atomWithReducer, ht as headingToIdentifier, i as LazyAnyLanguageCodeMirror, in as parseAttrValue, jn as LoaderCircle, jt as DeferredRequestRegistry, k as ChevronDownIcon, lt as kioskModeAtom, mn as jsonParseWithSpecialChar, mt as isErrorMime, n as Spinner, o as useLastFocusedCellId, on as parseInitialValue, p as useExpandedConsoleOutput, pn as RANDOM_ID_ATTR, pt as outputIsStale, qt as getRequestClient, rt as createCell, s as maybeAddAltairImport, st as getInitialAppMode, tn as NotebookScopedLocalStorage, tt as useCellIds, un as UIElementId, vn as selectAtom, w as AccordionItem, wn as Trigger2, wt as customPythonLanguageSupport, xn as Content2, xt as isInternalCellName, zt as PluralWords, __tla as __tla_0 } from "./html-to-image-
|
|
25
|
+
import { $ as reducer, B as safeExtractSetUIElementMessageBuffers, Bn as CircleAlert, Bt as DATA_TYPE_ICON, C as AccordionContent, Cn as Root2$1, Ct as Checkbox, Dn as Table2, Dt as PathBuilder, E as BorderAllIcon, En as Trash2, F as base64ToDataView, Fn as Eye, H as getMarimoExportContext, Ht as require_client, It as jotaiJsonStorage, J as getCellNames, Jt as requestClientAtom, K as createActions, Kt as convertStatsName, L as dataViewToBase64, Ln as Database, Mn as Layers, Mt as generateUUID, Nn as Info, On as PaintRoller, Ot as Paths, Pn as FileText, Pt as repl, Q as numColumnsAtom, Rn as Columns2, S as Accordion, Sn as Item$1, St as normalizeName, T as AccordionTrigger, Tt as MarkdownLanguageAdapter, U as hasTrustedExportContext, V as renderHTML, Vn as Braces, W as hasRunAnyCellAtom, X as notebookAtom, Xt as isUninstantiated, Y as hasOnlyOneCellAtom, Yt as useRequestClient, Z as notebookOutline, _n as atomWithStorage, a as useCellFocusActions, an as parseDataset, bt as getValidName, cn as HTMLCellId, ct as initialModeAtom, dn as findCellId, et as useCellActions, f as isOutputEmpty, fn as OBJECT_ID_ATTR, ft as outputIsLoading, gn as atomWithReducer, ht as headingToIdentifier, i as LazyAnyLanguageCodeMirror, in as parseAttrValue, jn as LoaderCircle, jt as DeferredRequestRegistry, k as ChevronDownIcon, lt as kioskModeAtom, mn as jsonParseWithSpecialChar, mt as isErrorMime, n as Spinner, o as useLastFocusedCellId, on as parseInitialValue, p as useExpandedConsoleOutput, pn as RANDOM_ID_ATTR, pt as outputIsStale, qt as getRequestClient, rt as createCell, s as maybeAddAltairImport, st as getInitialAppMode, tn as NotebookScopedLocalStorage, tt as useCellIds, un as UIElementId, vn as selectAtom, w as AccordionItem, wn as Trigger2, wt as customPythonLanguageSupport, xn as Content2, xt as isInternalCellName, zt as PluralWords, __tla as __tla_0 } from "./html-to-image-DNiPS5a-.js";
|
|
26
26
|
import { __tla as __tla_1 } from "./chunk-5FQGJX7Z-BbqSm5gU.js";
|
|
27
27
|
import { o as useSize, s as Root$1, u as createLucideIcon } from "./dist-Dk6PV_d3.js";
|
|
28
28
|
import { A as SquareFunction, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, O as TIME_UNIT_DESCRIPTIONS, S as DEFAULT_AGGREGATION, T as DEFAULT_TIME_UNIT, _ as AGGREGATION_TYPE_DESCRIPTIONS, a as AGGREGATION_FNS$1, b as COLOR_SCHEMES, c as COLOR_BY_FIELDS, d as NONE_VALUE, f as SELECTABLE_DATA_TYPES, g as TIME_UNITS, h as STRING_AGGREGATION_FNS, i as convertDataTypeToSelectable, j as ChartColumn, k as escapeFieldName, l as COMBINED_TIME_UNITS, m as SORT_TYPES, n as createSpecWithoutData, o as BIN_AGGREGATION, p as SINGLE_TIME_UNITS, r as isFieldSet, s as CHART_TYPES, t as augmentSpecWithData, u as ChartType, v as AGGREGATION_TYPE_ICON, w as DEFAULT_MAX_BINS_FACET, x as COUNT_FIELD, y as CHART_TYPE_ICON } from "./spec-X7FwLJni.js";
|
|
29
|
-
import { $ as contextAwarePanelOpen, $t as $fae977aafc393c5c$export$6b862160d295c8e, A as prettifyRowCount, At as SELECT_COLUMN_ID, B as DatePicker, Bt as TabsContent, C as downloadSizeLimitAtom, Ct as DelayMount, D as ErrorState, Dt as loadTableAndRawData, E as EmptyState, Et as getPageIndexForRow, F as ContextMenuSeparator, Ft as Maps, G as CommandEmpty, Gt as ChartLoadingState, H as Combobox, Ht as TabsTrigger, I as ContextMenuTrigger, It as dateToLocalISODate, J as CommandList, Jt as RenderTextWithLinks, K as CommandInput, Kt as LazyVegaEmbed, L as useInternalStateWithSync, Lt as dateToLocalISODateTime, M as ContextMenu, Mt as toFieldTypes, N as ContextMenuContent, Nt as getMimeValues, O as LoadingState, Ot as loadTableData, P as ContextMenuItem, Pt as isNullishFilter, Q as PANEL_TYPES, Qt as $fae977aafc393c5c$export$588937bcd60ade55, R as useSelectList, Rt as dateToLocalISOTime, S as Filenames, St as ColumnChartSpecModel, T as ColumnPreviewContainer, Tt as usePrevious$1, U as ComboboxItem, Ut as ChartErrorState, V as DateRangePicker, Vt as TabsList, W as Command, Wt as ChartInfoState, X as smartMatch, Xt as HtmlOutput, Y as CommandSeparator, Yt as Kbd, Z as ContextAwarePanelItem, Zt as EmotionCacheProvider, _ as ADD_PRINTING_CLASS, _t as NAMELESS_COLUMN_PREFIX, an as Ellipsis, at as Toggle, b as downloadHTMLAsImage, bt as renderCellValue, c as Slide, cn as ChevronsUpDown, d as RadioGroupItem, dn as ChevronsDownUp, dt as Table, en as TextWrap, et as contextAwarePanelOwner, f as JsonOutput, fn as ChevronLeft, ft as TableBody, g as InstallPackageButton, gt as TableRow, h as DataTable, ht as TableHeader, it as slotsController, j as getColumnCountForDisplay, jt as TOO_MANY_ROWS, k as prettifyRowColumnCount, kt as INDEX_COLUMN_NAME, l as Switch, ln as ChevronsRight, lt as Fill, m as OutputRenderer, mt as TableHead, n as marimoVersionAtom, nn as Funnel, nt as isCellAwareAtom, o as SLIDE_TYPE_OPTIONS_BY_VALUE, on as Download, p as OutputArea, pn as ArrowDownWideNarrow, pt as TableCell, q as CommandItem, qt as useOverflowDetection, r as showCodeInRunModeAtom, rn as EyeOff, rt as SlotNames, sn as Code, t as useNotebookCodeAvailable, tn as GripHorizontal, tt as contextAwarePanelType, u as RadioGroup, un as ChevronsLeft, ut as Provider$1, v as downloadBlob, vt as generateColumns, w as ColumnName, wt as useIntersectionObserver, x as Progress, xt as ColumnChartContext, y as downloadByURL, yt as inferFieldTypes, z as CompactChipRow, zt as Tabs, __tla as __tla_2 } from "./code-visibility-
|
|
29
|
+
import { $ as contextAwarePanelOpen, $t as $fae977aafc393c5c$export$6b862160d295c8e, A as prettifyRowCount, At as SELECT_COLUMN_ID, B as DatePicker, Bt as TabsContent, C as downloadSizeLimitAtom, Ct as DelayMount, D as ErrorState, Dt as loadTableAndRawData, E as EmptyState, Et as getPageIndexForRow, F as ContextMenuSeparator, Ft as Maps, G as CommandEmpty, Gt as ChartLoadingState, H as Combobox, Ht as TabsTrigger, I as ContextMenuTrigger, It as dateToLocalISODate, J as CommandList, Jt as RenderTextWithLinks, K as CommandInput, Kt as LazyVegaEmbed, L as useInternalStateWithSync, Lt as dateToLocalISODateTime, M as ContextMenu, Mt as toFieldTypes, N as ContextMenuContent, Nt as getMimeValues, O as LoadingState, Ot as loadTableData, P as ContextMenuItem, Pt as isNullishFilter, Q as PANEL_TYPES, Qt as $fae977aafc393c5c$export$588937bcd60ade55, R as useSelectList, Rt as dateToLocalISOTime, S as Filenames, St as ColumnChartSpecModel, T as ColumnPreviewContainer, Tt as usePrevious$1, U as ComboboxItem, Ut as ChartErrorState, V as DateRangePicker, Vt as TabsList, W as Command, Wt as ChartInfoState, X as smartMatch, Xt as HtmlOutput, Y as CommandSeparator, Yt as Kbd, Z as ContextAwarePanelItem, Zt as EmotionCacheProvider, _ as ADD_PRINTING_CLASS, _t as NAMELESS_COLUMN_PREFIX, an as Ellipsis, at as Toggle, b as downloadHTMLAsImage, bt as renderCellValue, c as Slide, cn as ChevronsUpDown, d as RadioGroupItem, dn as ChevronsDownUp, dt as Table, en as TextWrap, et as contextAwarePanelOwner, f as JsonOutput, fn as ChevronLeft, ft as TableBody, g as InstallPackageButton, gt as TableRow, h as DataTable, ht as TableHeader, it as slotsController, j as getColumnCountForDisplay, jt as TOO_MANY_ROWS, k as prettifyRowColumnCount, kt as INDEX_COLUMN_NAME, l as Switch, ln as ChevronsRight, lt as Fill, m as OutputRenderer, mt as TableHead, n as marimoVersionAtom, nn as Funnel, nt as isCellAwareAtom, o as SLIDE_TYPE_OPTIONS_BY_VALUE, on as Download, p as OutputArea, pn as ArrowDownWideNarrow, pt as TableCell, q as CommandItem, qt as useOverflowDetection, r as showCodeInRunModeAtom, rn as EyeOff, rt as SlotNames, sn as Code, t as useNotebookCodeAvailable, tn as GripHorizontal, tt as contextAwarePanelType, u as RadioGroup, un as ChevronsLeft, ut as Provider$1, v as downloadBlob, vt as generateColumns, w as ColumnName, wt as useIntersectionObserver, x as Progress, xt as ColumnChartContext, y as downloadByURL, yt as inferFieldTypes, z as CompactChipRow, zt as Tabs, __tla as __tla_2 } from "./code-visibility-2YZN4O7E.js";
|
|
30
30
|
import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, t as useOnMount } from "./useLifecycle-00mO3OSS.js";
|
|
31
31
|
import { t as Check } from "./check-BCaJeT-J.js";
|
|
32
32
|
import { A as Icon, C as logNever, D as $18f2051aff69b9bf$export$a54013f0d02a8f82, E as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, F as createCollection, I as X, M as clamp$2, N as usePrevious$2, P as useDirection, R as ChevronDown, S as assertNever, a as SelectGroup, c as SelectSeparator, d as NativeSelect, i as SelectContent, j as Trigger$1, l as SelectTrigger, n as capitalize, o as SelectItem, r as Select, s as SelectLabel, t as Strings, u as SelectValue, w as $a916eb452884faea$export$b7a616150fdb9f44 } from "./strings-J57tzLr3.js";
|
|
33
33
|
import { B as $64fa3d84918910a7$export$4d86445c2cf5e3, C as DropdownMenuTrigger, Ft as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, It as $3ef42575df84b30b$export$9d1611c77c2fe928, W as $64fa3d84918910a7$export$df3a06d6289f983e, Wt as $ff5963eb1fccf552$export$e08e3b67e392101e, X as useDebouncedCallback, Y as useDebounceControlledState, a as NumberField, d as roundToFractionDigits, f as DropdownMenu, g as DropdownMenuLabel, gn as ChevronRight, h as DropdownMenuItem, hn as Circle, i as OnBlurredInput, l as prettyNumber, m as DropdownMenuGroup, n as DebouncedNumberInput, o as maxFractionDigitsForSteps, ot as $f7dceffc5ad7768b$export$4e328f61c538687f, p as DropdownMenuContent, pt as $6179b936705e76d3$export$ae780daf29e6d456, r as Input, st as $701a24aa0da5b062$export$ea18c227d4417cc3, t as DebouncedInput, u as prettyScientificNumber, v as DropdownMenuSeparator, xt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, y as DropdownMenuShortcut, z as $64fa3d84918910a7$export$29f1550f4b0d4415 } from "./input-OdWHkobi.js";
|
|
34
34
|
import { _ as isWasm, c as asRemoteURL, d as isStaticNotebook, f as appendQueryParams, g as Deferred, m as require_cuid2, u as getStaticVirtualFiles, v as CircleQuestionMark } from "./toDate-d8RCRrRd.js";
|
|
35
|
-
import { a as MarimoIncomingMessageEvent, c as MarimoValueUpdateEvent, d as Square, f as File, i as PythonIcon, l as createInputEvent, n as blobToString, o as MarimoValueInputEvent, r as filesToBase64, s as MarimoValueReadyEvent, t as processOutput, u as deserializeBlob } from "./process-output-
|
|
35
|
+
import { a as MarimoIncomingMessageEvent, c as MarimoValueUpdateEvent, d as Square, f as File, i as PythonIcon, l as createInputEvent, n as blobToString, o as MarimoValueInputEvent, r as filesToBase64, s as MarimoValueReadyEvent, t as processOutput, u as deserializeBlob } from "./process-output-CmEyGIJM.js";
|
|
36
36
|
import { n as Trash, r as Pencil, t as BulkEdit } from "./types-ChtMFmZ2.js";
|
|
37
37
|
import { n as require_prop_types, r as Plus, t as ErrorBoundary } from "./ErrorBoundary-DpbaKVv7.js";
|
|
38
38
|
import { t as require_react_dom } from "./react-dom-BTJzcVJ9.js";
|
|
@@ -8558,7 +8558,7 @@ let __tla = Promise.all([
|
|
|
8558
8558
|
};
|
|
8559
8559
|
}
|
|
8560
8560
|
};
|
|
8561
|
-
var LazyChatbot = import_react.lazy(() => import("./chat-ui-
|
|
8561
|
+
var LazyChatbot = import_react.lazy(() => import("./chat-ui-B2WNqRL6.js").then((e) => ({
|
|
8562
8562
|
default: e.Chatbot
|
|
8563
8563
|
}))), messageSchema = array(object({
|
|
8564
8564
|
id: string(),
|
|
@@ -36187,7 +36187,7 @@ ${c}
|
|
|
36187
36187
|
function _temp2$2(e) {
|
|
36188
36188
|
e.target === e.currentTarget && e.key === "Enter" && (e.preventDefault(), e.stopPropagation(), e.currentTarget.click());
|
|
36189
36189
|
}
|
|
36190
|
-
var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-
|
|
36190
|
+
var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-jq-TjZWl.js"));
|
|
36191
36191
|
const SlidesLayoutRenderer = ({ layout: e, setLayout: r, cells: c, mode: l }) => {
|
|
36192
36192
|
var _a3;
|
|
36193
36193
|
let u = useAtomValue(kioskModeAtom), d = l === "read" || u, f = useAtomValue(numColumnsAtom) > 1, [p, m] = (0, import_react.useState)(null), { slideCells: h, skippedIds: g, noOutputIds: _, slideTypes: v, startCellIndex: y } = (0, import_react.useMemo)(() => computeSlideCellsInfo(c, e), [
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
3
|
-
import { at as parseHtmlContent, it as ansiToPlainText } from "./html-to-image-
|
|
3
|
+
import { at as parseHtmlContent, it as ansiToPlainText } from "./html-to-image-DNiPS5a-.js";
|
|
4
4
|
import { u as createLucideIcon } from "./dist-Dk6PV_d3.js";
|
|
5
5
|
import { t as Strings } from "./strings-J57tzLr3.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-DebpN0FN.js";
|
|
@@ -6,10 +6,10 @@ import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
|
6
6
|
import { _ as Logger, g as cn, h as Events, l as useEventListener, t as Button } from "./button-C5K9fIPF.js";
|
|
7
7
|
import { t as require_react } from "./react-DA-nE2FX.js";
|
|
8
8
|
import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
|
|
9
|
-
import { lt as kioskModeAtom } from "./html-to-image-
|
|
9
|
+
import { lt as kioskModeAtom } from "./html-to-image-DNiPS5a-.js";
|
|
10
10
|
import "./chunk-5FQGJX7Z-BbqSm5gU.js";
|
|
11
11
|
import { u as createLucideIcon } from "./dist-Dk6PV_d3.js";
|
|
12
|
-
import { a as DEFAULT_SLIDE_TYPE, c as Slide, ct as PanelResizeHandle, i as DEFAULT_DECK_TRANSITION, in as Expand, ot as Panel, rn as EyeOff, s as SlideSidebar, sn as Code, st as PanelGroup, t as useNotebookCodeAvailable } from "./code-visibility-
|
|
12
|
+
import { a as DEFAULT_SLIDE_TYPE, c as Slide, ct as PanelResizeHandle, i as DEFAULT_DECK_TRANSITION, in as Expand, ot as Panel, rn as EyeOff, s as SlideSidebar, sn as Code, st as PanelGroup, t as useNotebookCodeAvailable } from "./code-visibility-2YZN4O7E.js";
|
|
13
13
|
import { X as useDebouncedCallback } from "./input-OdWHkobi.js";
|
|
14
14
|
import "./toDate-d8RCRrRd.js";
|
|
15
15
|
import "./react-dom-BTJzcVJ9.js";
|
package/package.json
CHANGED
|
@@ -187,6 +187,21 @@ function canRetryRemoteSearch(remoteSearch: RemoteSearchState): boolean {
|
|
|
187
187
|
);
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
+
/**
|
|
191
|
+
* Whether the backend may still have an unfetched page for a prefix: either we
|
|
192
|
+
* have never listed it, or its last listing returned a next-page token.
|
|
193
|
+
*/
|
|
194
|
+
function hasUnfetchedPrefixPage(
|
|
195
|
+
searchKey: StoragePathKey,
|
|
196
|
+
entriesByPath: ReadonlyMap<StoragePathKey, StorageEntry[]>,
|
|
197
|
+
pageMetadataByPath: ReadonlyMap<StoragePathKey, StoragePageMetadata>,
|
|
198
|
+
): boolean {
|
|
199
|
+
return (
|
|
200
|
+
entriesByPath.get(searchKey) === undefined ||
|
|
201
|
+
pageMetadataByPath.get(searchKey)?.nextPageToken != null
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
|
|
190
205
|
function canSearchMoreRemoteEntries({
|
|
191
206
|
hasSearch,
|
|
192
207
|
hasLoadedMatches,
|
|
@@ -211,10 +226,7 @@ function canSearchMoreRemoteEntries({
|
|
|
211
226
|
return false;
|
|
212
227
|
}
|
|
213
228
|
|
|
214
|
-
return (
|
|
215
|
-
entriesByPath.get(searchKey) === undefined ||
|
|
216
|
-
pageMetadataByPath.get(searchKey)?.nextPageToken != null
|
|
217
|
-
);
|
|
229
|
+
return hasUnfetchedPrefixPage(searchKey, entriesByPath, pageMetadataByPath);
|
|
218
230
|
}
|
|
219
231
|
|
|
220
232
|
/**
|
|
@@ -635,14 +647,11 @@ const StorageNamespaceSection: React.FC<{
|
|
|
635
647
|
searchPrefix === "" ? [] : (entriesByPath.get(searchKey) ?? []);
|
|
636
648
|
// The fetched page is the whole parent directory; we still need to filter
|
|
637
649
|
// it by the full search query before showing entries to the user.
|
|
638
|
-
const filteredRemoteEntries =
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
entriesByPath,
|
|
644
|
-
})
|
|
645
|
-
: remoteEntries;
|
|
650
|
+
const filteredRemoteEntries = filterEntries(remoteEntries, {
|
|
651
|
+
namespace: namespaceName,
|
|
652
|
+
searchValue,
|
|
653
|
+
entriesByPath,
|
|
654
|
+
});
|
|
646
655
|
const hasSearch = !!searchValue.trim();
|
|
647
656
|
const hasLoadedMatches =
|
|
648
657
|
filtered.length > 0 || filteredRemoteEntries.length > 0;
|
|
@@ -702,7 +711,7 @@ const StorageNamespaceSection: React.FC<{
|
|
|
702
711
|
if (remoteSearch.status === "exhausted" && !hasLoadedMatches) {
|
|
703
712
|
return "No matches";
|
|
704
713
|
}
|
|
705
|
-
if (!hasSearch && !isPending && entries.length === 0
|
|
714
|
+
if (!hasSearch && !isPending && entries.length === 0) {
|
|
706
715
|
return "No entries";
|
|
707
716
|
}
|
|
708
717
|
if (canSearchMore) {
|
|
@@ -899,10 +908,11 @@ export const StorageInspector: React.FC = () => {
|
|
|
899
908
|
return false;
|
|
900
909
|
}
|
|
901
910
|
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
911
|
+
return hasUnfetchedPrefixPage(
|
|
912
|
+
searchKey,
|
|
913
|
+
entriesByPath,
|
|
914
|
+
pageMetadataByPath,
|
|
915
|
+
);
|
|
906
916
|
},
|
|
907
917
|
[currentQuery, entriesByPath, pageMetadataByPath, remoteSearchForNamespace],
|
|
908
918
|
);
|
|
@@ -1061,7 +1071,7 @@ export const StorageInspector: React.FC = () => {
|
|
|
1061
1071
|
</Button>
|
|
1062
1072
|
)}
|
|
1063
1073
|
<Tooltip
|
|
1064
|
-
content="
|
|
1074
|
+
content="Search by file name within loaded entries, or by prefix (e.g. 'folder/x') for backend search. Press Enter to fetch more results."
|
|
1065
1075
|
delayDuration={200}
|
|
1066
1076
|
>
|
|
1067
1077
|
<HelpCircleIcon className="h-3.5 w-3.5 shrink-0 cursor-help text-muted-foreground hover:text-foreground mr-2" />
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
|
+
import type { EditorView } from "@codemirror/view";
|
|
4
|
+
import { createStore } from "jotai";
|
|
3
5
|
import { beforeEach, describe, expect, it } from "vitest";
|
|
6
|
+
import { MockNotebook } from "@/__mocks__/notebook";
|
|
4
7
|
import { cellId } from "@/__tests__/branded";
|
|
8
|
+
import type { CellHandle } from "@/components/editor/notebook-cell";
|
|
9
|
+
import { notebookAtom } from "../cells";
|
|
5
10
|
import type { CellFocusState } from "../focus";
|
|
6
|
-
import { exportedForTesting } from "../focus";
|
|
11
|
+
import { exportedForTesting, lastFocusedCellAtom } from "../focus";
|
|
7
12
|
|
|
8
|
-
const { initialState, reducer, createActions } =
|
|
13
|
+
const { initialState, reducer, createActions, cellFocusAtom } =
|
|
14
|
+
exportedForTesting;
|
|
9
15
|
|
|
10
16
|
const CellIds = {
|
|
11
17
|
a: cellId("a"),
|
|
@@ -270,3 +276,40 @@ describe("cell focus reducer", () => {
|
|
|
270
276
|
});
|
|
271
277
|
});
|
|
272
278
|
});
|
|
279
|
+
|
|
280
|
+
describe("lastFocusedCellAtom", () => {
|
|
281
|
+
it("returns null getEditorView when CodeMirror is not mounted", () => {
|
|
282
|
+
const store = createStore();
|
|
283
|
+
const markdownCellId = cellId("markdown");
|
|
284
|
+
|
|
285
|
+
const unmountedEditorHandle: CellHandle = {
|
|
286
|
+
get editorView(): EditorView {
|
|
287
|
+
throw new ReferenceError("Attempting to dereference null object.");
|
|
288
|
+
},
|
|
289
|
+
editorViewOrNull: null,
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
const notebook = MockNotebook.notebookState({
|
|
293
|
+
cellData: {
|
|
294
|
+
[markdownCellId]: {
|
|
295
|
+
config: { hide_code: true },
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
notebook.cellHandles[markdownCellId] = {
|
|
300
|
+
current: unmountedEditorHandle,
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
store.set(notebookAtom, notebook);
|
|
304
|
+
store.set(cellFocusAtom, {
|
|
305
|
+
focusedCellId: markdownCellId,
|
|
306
|
+
lastFocusedCellId: markdownCellId,
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
const lastFocusedCell = store.get(lastFocusedCellAtom);
|
|
310
|
+
|
|
311
|
+
expect(lastFocusedCell).not.toBeNull();
|
|
312
|
+
expect(lastFocusedCell?.cellId).toBe(markdownCellId);
|
|
313
|
+
expect(lastFocusedCell?.getEditorView()).toBeNull();
|
|
314
|
+
});
|
|
315
|
+
});
|
package/src/core/cells/focus.ts
CHANGED
|
@@ -106,7 +106,7 @@ function cellFocusDetails(cellId: CellId, notebookState: NotebookState) {
|
|
|
106
106
|
if (!data || !handle) {
|
|
107
107
|
return null;
|
|
108
108
|
}
|
|
109
|
-
const getEditorView = () => handle.
|
|
109
|
+
const getEditorView = () => handle.editorViewOrNull;
|
|
110
110
|
|
|
111
111
|
return {
|
|
112
112
|
cellId,
|