@marimo-team/islands 0.23.10-dev17 → 0.23.10-dev18

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.
@@ -35274,7 +35274,7 @@ ${d}`,
35274
35274
  return Logger.warn("Failed to get version from mount config"), null;
35275
35275
  }
35276
35276
  }
35277
- marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.10-dev17");
35277
+ marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.10-dev18");
35278
35278
  showCodeInRunModeAtom = atom(true);
35279
35279
  atom(null);
35280
35280
  var import_compiler_runtime = require_compiler_runtime();
package/dist/main.js CHANGED
@@ -26,7 +26,7 @@ import { $ as useCellActions, An as LoaderCircle, At as DeferredRequestRegistry,
26
26
  import { __tla as __tla_1 } from "./chunk-5FQGJX7Z-BNjes6Yx.js";
27
27
  import { o as useSize, s as Root$2, u as createLucideIcon } from "./dist-C1BYNeCR.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-B96zNUEA.js";
29
- import { $ as TableBody, $t as ChevronLeft, A as ComboboxItem, At as ChartErrorState, B as contextAwarePanelOpen, Bt as $fae977aafc393c5c$export$6b862160d295c8e, C as prettifyRowColumnCount, Ct as dateToLocalISODate, D as DatePicker, Dt as TabsContent, E as useInternalStateWithSync, Et as Tabs, F as CommandList, Ft as RenderTextWithLinks, G as slotsController, H as contextAwarePanelType, Ht as GripHorizontal, I as CommandSeparator, It as Kbd, Jt as Code, K as Toggle, Kt as Ellipsis, L as smartMatch, Lt as HtmlOutput, M as CommandEmpty, Mt as ChartLoadingState, N as CommandInput, Nt as LazyVegaEmbed, O as DateRangePicker, Ot as TabsList, P as CommandItem, Pt as useOverflowDetection, Q as Table, Qt as ChevronsDownUp, R as ContextAwarePanelItem, Rt as EmotionCacheProvider, S as downloadSizeLimitAtom, St as Maps, T as getColumnCountForDisplay, Tt as dateToLocalISOTime, U as isCellAwareAtom, Ut as Funnel, V as contextAwarePanelOwner, Vt as TextWrap, W as SlotNames, Wt as EyeOff, X as Fill, Xt as ChevronsRight, Yt as ChevronsUpDown, Z as Provider$1, Zt as ChevronsLeft, _ as downloadBlob, _t as SELECT_COLUMN_ID, at as generateColumns, b as Progress, bt as getMimeValues, c as Slide, ct as ColumnChartContext, d as JsonOutput, dt as useIntersectionObserver, en as ArrowDownWideNarrow, et as TableCell, f as OutputArea, ft as usePrevious$1, g as ADD_PRINTING_CLASS, gt as INDEX_COLUMN_NAME, h as InstallPackageButton, ht as loadTableData, it as NAMELESS_COLUMN_PREFIX, j as Command, jt as ChartInfoState, k as Combobox, kt as TabsTrigger, l as RadioGroup, lt as ColumnChartSpecModel, m as DataTable, mt as loadTableAndRawData, n as marimoVersionAtom, nt as TableHeader, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as inferFieldTypes, p as OutputRenderer, pt as getPageIndexForRow, qt as Download, r as showCodeInRunModeAtom, rt as TableRow, st as renderCellValue, t as useNotebookCodeAvailable, tt as TableHead, u as RadioGroupItem, ut as DelayMount, v as downloadByURL, vt as TOO_MANY_ROWS, w as prettifyRowCount, wt as dateToLocalISODateTime, x as Filenames, xt as isNullishFilter, y as downloadHTMLAsImage, yt as toFieldTypes, z as PANEL_TYPES, zt as $fae977aafc393c5c$export$588937bcd60ade55, __tla as __tla_2 } from "./code-visibility-D80f1Ibv.js";
29
+ import { $ as TableBody, $t as ChevronLeft, A as ComboboxItem, At as ChartErrorState, B as contextAwarePanelOpen, Bt as $fae977aafc393c5c$export$6b862160d295c8e, C as prettifyRowColumnCount, Ct as dateToLocalISODate, D as DatePicker, Dt as TabsContent, E as useInternalStateWithSync, Et as Tabs, F as CommandList, Ft as RenderTextWithLinks, G as slotsController, H as contextAwarePanelType, Ht as GripHorizontal, I as CommandSeparator, It as Kbd, Jt as Code, K as Toggle, Kt as Ellipsis, L as smartMatch, Lt as HtmlOutput, M as CommandEmpty, Mt as ChartLoadingState, N as CommandInput, Nt as LazyVegaEmbed, O as DateRangePicker, Ot as TabsList, P as CommandItem, Pt as useOverflowDetection, Q as Table, Qt as ChevronsDownUp, R as ContextAwarePanelItem, Rt as EmotionCacheProvider, S as downloadSizeLimitAtom, St as Maps, T as getColumnCountForDisplay, Tt as dateToLocalISOTime, U as isCellAwareAtom, Ut as Funnel, V as contextAwarePanelOwner, Vt as TextWrap, W as SlotNames, Wt as EyeOff, X as Fill, Xt as ChevronsRight, Yt as ChevronsUpDown, Z as Provider$1, Zt as ChevronsLeft, _ as downloadBlob, _t as SELECT_COLUMN_ID, at as generateColumns, b as Progress, bt as getMimeValues, c as Slide, ct as ColumnChartContext, d as JsonOutput, dt as useIntersectionObserver, en as ArrowDownWideNarrow, et as TableCell, f as OutputArea, ft as usePrevious$1, g as ADD_PRINTING_CLASS, gt as INDEX_COLUMN_NAME, h as InstallPackageButton, ht as loadTableData, it as NAMELESS_COLUMN_PREFIX, j as Command, jt as ChartInfoState, k as Combobox, kt as TabsTrigger, l as RadioGroup, lt as ColumnChartSpecModel, m as DataTable, mt as loadTableAndRawData, n as marimoVersionAtom, nt as TableHeader, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as inferFieldTypes, p as OutputRenderer, pt as getPageIndexForRow, qt as Download, r as showCodeInRunModeAtom, rt as TableRow, st as renderCellValue, t as useNotebookCodeAvailable, tt as TableHead, u as RadioGroupItem, ut as DelayMount, v as downloadByURL, vt as TOO_MANY_ROWS, w as prettifyRowCount, wt as dateToLocalISODateTime, x as Filenames, xt as isNullishFilter, y as downloadHTMLAsImage, yt as toFieldTypes, z as PANEL_TYPES, zt as $fae977aafc393c5c$export$588937bcd60ade55, __tla as __tla_2 } from "./code-visibility-CsR8644L.js";
30
30
  import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, t as useOnMount } from "./useLifecycle-BBO9PIph.js";
31
31
  import { t as Check } from "./check-DTbrK0zt.js";
32
32
  import { A as Trigger$1, C as $a916eb452884faea$export$b7a616150fdb9f44, E as $18f2051aff69b9bf$export$a54013f0d02a8f82, F as X, L as ChevronDown, M as usePrevious$2, N as useDirection, P as createCollection, S as logNever, T as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, a as SelectGroup, c as SelectSeparator, d as NativeSelect, i as SelectContent, j as clamp$2, k as Icon, l as SelectTrigger, n as capitalize, o as SelectItem, r as Select, s as SelectLabel, t as Strings, u as SelectValue, x as assertNever } from "./strings-Bu3vlb6W.js";
@@ -36116,7 +36116,7 @@ ${c}
36116
36116
  if (l && l !== "slide") return l;
36117
36117
  if (c == null ? void 0 : c.has(e)) return "skip";
36118
36118
  }
36119
- var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-mUdfwXMF.js"));
36119
+ var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-IUUJ4Dzx.js"));
36120
36120
  const SlidesLayoutRenderer = ({ layout: e, setLayout: r, cells: c, mode: l }) => {
36121
36121
  var _a3;
36122
36122
  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), [
@@ -9,7 +9,7 @@ import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
9
9
  import { ct as kioskModeAtom } from "./html-to-image-BqJ4c852.js";
10
10
  import "./chunk-5FQGJX7Z-BNjes6Yx.js";
11
11
  import { u as createLucideIcon } from "./dist-C1BYNeCR.js";
12
- import { Gt as Expand, J as PanelGroup, Jt as Code, Wt as EyeOff, Y as PanelResizeHandle, a as DEFAULT_SLIDE_TYPE, c as Slide, i as DEFAULT_DECK_TRANSITION, q as Panel, s as SlideSidebar, t as useNotebookCodeAvailable } from "./code-visibility-D80f1Ibv.js";
12
+ import { Gt as Expand, J as PanelGroup, Jt as Code, Wt as EyeOff, Y as PanelResizeHandle, a as DEFAULT_SLIDE_TYPE, c as Slide, i as DEFAULT_DECK_TRANSITION, q as Panel, s as SlideSidebar, t as useNotebookCodeAvailable } from "./code-visibility-CsR8644L.js";
13
13
  import { q as useDebouncedCallback } from "./input-_2sjvfne.js";
14
14
  import "./toDate-x-WRDCH7.js";
15
15
  import "./react-dom-BTJzcVJ9.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.23.10-dev17",
3
+ "version": "0.23.10-dev18",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -84,9 +84,7 @@ export const VisibilityToggleButton: React.FC<{
84
84
  /** Whether the optional items are currently visible. */
85
85
  isVisible: boolean;
86
86
  onToggle: () => void;
87
- /** Tooltip shown while items are hidden (clicking will show them). */
88
87
  showTooltip: string;
89
- /** Tooltip shown while items are visible (clicking will hide them). */
90
88
  hideTooltip: string;
91
89
  size?: ButtonProps["size"];
92
90
  className?: string;
@@ -1,9 +1,7 @@
1
1
  /* Copyright 2026 Marimo. All rights reserved. */
2
2
  import { describe, expect, it } from "vitest";
3
3
  import type { StorageEntry } from "@/core/storage/types";
4
- import { exportedForTesting } from "../storage-inspector";
5
-
6
- const { storageEntryKey } = exportedForTesting;
4
+ import { storageEntryKey } from "../storage-inspector";
7
5
 
8
6
  function makeEntry(
9
7
  overrides: Partial<StorageEntry> & { path: string },
@@ -98,7 +98,7 @@ function displayName(path: string): string {
98
98
  * Stable, unique identity for an entry row. Prefer the
99
99
  * backend's stable id when present and fall back to the list index
100
100
  */
101
- function storageEntryKey(entry: StorageEntry, index: number): string {
101
+ export function storageEntryKey(entry: StorageEntry, index: number): string {
102
102
  const id = entry.metadata?.id;
103
103
  if (typeof id === "string" && id.length > 0) {
104
104
  return id;
@@ -106,15 +106,19 @@ function storageEntryKey(entry: StorageEntry, index: number): string {
106
106
  return `${entry.path}::${index}`;
107
107
  }
108
108
 
109
+ interface SearchContext {
110
+ namespace: string;
111
+ searchValue: string;
112
+ entriesByPath: ReadonlyMap<StoragePathKey, StorageEntry[]>;
113
+ }
114
+
109
115
  /**
110
116
  * Recursively check whether an entry (or any of its loaded descendants)
111
117
  * matches the search query.
112
118
  */
113
119
  function entryMatchesSearch(
114
120
  entry: StorageEntry,
115
- namespace: string,
116
- searchValue: string,
117
- entriesByPath: ReadonlyMap<StoragePathKey, StorageEntry[]>,
121
+ { namespace, searchValue, entriesByPath }: SearchContext,
118
122
  ): boolean {
119
123
  const query = searchValue.toLowerCase();
120
124
 
@@ -127,7 +131,7 @@ function entryMatchesSearch(
127
131
  const children = entriesByPath.get(storagePathKey(namespace, entry.path));
128
132
  if (children) {
129
133
  return children.some((child) =>
130
- entryMatchesSearch(child, namespace, searchValue, entriesByPath),
134
+ entryMatchesSearch(child, { namespace, searchValue, entriesByPath }),
131
135
  );
132
136
  }
133
137
  }
@@ -141,16 +145,12 @@ function entryMatchesSearch(
141
145
  */
142
146
  function filterEntries(
143
147
  entries: StorageEntry[],
144
- namespace: string,
145
- searchValue: string,
146
- entriesByPath: ReadonlyMap<StoragePathKey, StorageEntry[]>,
148
+ context: SearchContext,
147
149
  ): StorageEntry[] {
148
- if (!searchValue.trim()) {
150
+ if (!context.searchValue.trim()) {
149
151
  return entries;
150
152
  }
151
- return entries.filter((entry) =>
152
- entryMatchesSearch(entry, namespace, searchValue, entriesByPath),
153
- );
153
+ return entries.filter((entry) => entryMatchesSearch(entry, context));
154
154
  }
155
155
 
156
156
  /**
@@ -216,12 +216,11 @@ const StorageEntryChildren: React.FC<{
216
216
  );
217
217
  }
218
218
 
219
- const filtered = filterEntries(
220
- children,
219
+ const filtered = filterEntries(children, {
221
220
  namespace,
222
221
  searchValue,
223
222
  entriesByPath,
224
- );
223
+ });
225
224
 
226
225
  return (
227
226
  <>
@@ -289,7 +288,7 @@ const StorageEntryRow: React.FC<{
289
288
  !!entriesByPath
290
289
  .get(storagePathKey(namespace, entry.path))
291
290
  ?.some((child) =>
292
- entryMatchesSearch(child, namespace, searchValue, entriesByPath),
291
+ entryMatchesSearch(child, { namespace, searchValue, entriesByPath }),
293
292
  );
294
293
 
295
294
  // Folder is shown expanded by manual toggle OR by search auto-expand
@@ -476,12 +475,11 @@ const StorageNamespaceSection: React.FC<{
476
475
 
477
476
  // While loading, fall back to initial entries from the namespace notification
478
477
  const entries = isPending ? namespace.storageEntries : fetchedEntries;
479
- const filtered = filterEntries(
480
- entries,
481
- namespaceName,
478
+ const filtered = filterEntries(entries, {
479
+ namespace: namespaceName,
482
480
  searchValue,
483
481
  entriesByPath,
484
- );
482
+ });
485
483
 
486
484
  return (
487
485
  <>
@@ -674,7 +672,3 @@ export const StorageInspector: React.FC = () => {
674
672
  </div>
675
673
  );
676
674
  };
677
-
678
- export const exportedForTesting = {
679
- storageEntryKey,
680
- };