@marimo-team/islands 0.23.5-dev7 → 0.23.5-dev9

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.
@@ -23461,29 +23461,36 @@ Database schema: ${n}`), (_a3 = t2.aiFix) == null ? void 0 : _a3.setAiCompletion
23461
23461
  e2(t2);
23462
23462
  });
23463
23463
  if (!n2) return;
23464
- let i2 = (n2.filename ?? "").trim(), a2 = Filenames.withoutExtension(i2) || "download";
23465
- downloadByURL(n2.url, `${a2}.${t2}`);
23464
+ let i2 = (n2.filename ?? "").trim(), a2 = `${Filenames.withoutExtension(i2) || "download"}.${t2}`, o2 = n2.url;
23465
+ if (!o2.startsWith("data:")) {
23466
+ let e3 = o2.includes("?") ? "&" : "?", t3 = new URLSearchParams({
23467
+ download: "1",
23468
+ filename: a2
23469
+ });
23470
+ o2 = `${o2}${e3}${t3.toString()}`;
23471
+ }
23472
+ downloadByURL(o2, a2);
23466
23473
  }, a = async (e3) => {
23467
23474
  let t2 = await y(e3 === "csv" ? "csv" : "json", () => {
23468
23475
  a(e3);
23469
23476
  });
23470
23477
  if (!t2) return;
23471
23478
  let i2;
23472
- bb59: switch (e3) {
23479
+ bb65: switch (e3) {
23473
23480
  case "tsv":
23474
23481
  i2 = jsonToTSV(await fetchJson(t2.url), n);
23475
- break bb59;
23482
+ break bb65;
23476
23483
  case "json": {
23477
23484
  let e4 = await fetchJson(t2.url);
23478
23485
  i2 = JSON.stringify(e4, null, 2);
23479
- break bb59;
23486
+ break bb65;
23480
23487
  }
23481
23488
  case "csv":
23482
23489
  i2 = await fetchText(t2.url);
23483
- break bb59;
23490
+ break bb65;
23484
23491
  case "markdown":
23485
23492
  i2 = jsonToMarkdown(await fetchJson(t2.url));
23486
- break bb59;
23493
+ break bb65;
23487
23494
  default:
23488
23495
  logNever(e3);
23489
23496
  return;
@@ -25384,7 +25391,7 @@ ${_}`,
25384
25391
  return Logger.warn("Failed to get version from mount config"), null;
25385
25392
  }
25386
25393
  }
25387
- marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.5-dev7");
25394
+ marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.5-dev9");
25388
25395
  showCodeInRunModeAtom = atom(true);
25389
25396
  atom(null);
25390
25397
  var import_compiler_runtime = require_compiler_runtime();
package/dist/main.js CHANGED
@@ -26,7 +26,7 @@ import { $ as useCellActions, At as DeferredRequestRegistry, B as safeExtractSet
26
26
  import { __tla as __tla_1 } from "./chunk-5FQGJX7Z-CO1e63h_.js";
27
27
  import { o as useSize, s as Root$3, u as createLucideIcon } from "./dist-ESg7xyoD.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-BKWq0wn2.js";
29
- import { $ as getPageIndexForRow, A as contextAwarePanelType, At as GripHorizontal, B as TableHead, Bt as ChevronsDownUp, C as useInternalStateWithSync, Ct as RenderTextWithLinks, D as PANEL_TYPES, Dt as getStaticVirtualFiles, E as ContextAwarePanelItem, Et as EmotionCacheProvider, F as Fill, Ft as Download, G as inferFieldTypes, H as TableRow, Ht as ArrowDownWideNarrow, I as Provider$1, It as Code, J as ColumnChartSpecModel, K as renderCellValue, L as Table, Lt as ChevronsUpDown, M as SlotNames, Mt as EyeOff, N as slotsController, O as contextAwarePanelOpen, Ot as isStaticNotebook, P as Toggle, Pt as Ellipsis, Q as filtersToFilterGroup, R as TableBody, Rt as ChevronsRight, S as prettifyRowCount, St as useOverflowDetection, T as ComboboxItem, Tt as HtmlOutput, U as NAMELESS_COLUMN_PREFIX, V as TableHeader, Vt as ChevronLeft, W as generateColumns, X as useIntersectionObserver, Y as DelayMount, Z as usePrevious$1, _ as downloadBlob, _t as TabsTrigger, at as toFieldTypes, b as Filenames, bt as ChartLoadingState, c as Slide, ct as CommandEmpty, d as JsonOutput, dt as CommandList, et as loadTableAndRawData, f as OutputArea, ft as CommandSeparator, g as ADD_PRINTING_CLASS, gt as TabsList, h as InstallPackageButton, ht as TabsContent, it as TOO_MANY_ROWS, j as isCellAwareAtom, jt as Funnel, k as contextAwarePanelOwner, kt as TextWrap, l as RadioGroup, lt as CommandInput, m as DataTable, mt as Tabs, n as marimoVersionAtom, nt as INDEX_COLUMN_NAME, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as getMimeValues, p as OutputRenderer, pt as Maps, q as ColumnChartContext, r as showCodeInRunModeAtom, rt as SELECT_COLUMN_ID, st as Command, t as useNotebookCodeAvailable, tt as loadTableData, u as RadioGroupItem, ut as CommandItem, v as downloadByURL, vt as ChartErrorState, w as Combobox, wt as Kbd, x as prettifyRowColumnCount, xt as LazyVegaEmbed, y as downloadHTMLAsImage, yt as ChartInfoState, z as TableCell, zt as ChevronsLeft, __tla as __tla_2 } from "./code-visibility-B8JChlY3.js";
29
+ import { $ as getPageIndexForRow, A as contextAwarePanelType, At as GripHorizontal, B as TableHead, Bt as ChevronsDownUp, C as useInternalStateWithSync, Ct as RenderTextWithLinks, D as PANEL_TYPES, Dt as getStaticVirtualFiles, E as ContextAwarePanelItem, Et as EmotionCacheProvider, F as Fill, Ft as Download, G as inferFieldTypes, H as TableRow, Ht as ArrowDownWideNarrow, I as Provider$1, It as Code, J as ColumnChartSpecModel, K as renderCellValue, L as Table, Lt as ChevronsUpDown, M as SlotNames, Mt as EyeOff, N as slotsController, O as contextAwarePanelOpen, Ot as isStaticNotebook, P as Toggle, Pt as Ellipsis, Q as filtersToFilterGroup, R as TableBody, Rt as ChevronsRight, S as prettifyRowCount, St as useOverflowDetection, T as ComboboxItem, Tt as HtmlOutput, U as NAMELESS_COLUMN_PREFIX, V as TableHeader, Vt as ChevronLeft, W as generateColumns, X as useIntersectionObserver, Y as DelayMount, Z as usePrevious$1, _ as downloadBlob, _t as TabsTrigger, at as toFieldTypes, b as Filenames, bt as ChartLoadingState, c as Slide, ct as CommandEmpty, d as JsonOutput, dt as CommandList, et as loadTableAndRawData, f as OutputArea, ft as CommandSeparator, g as ADD_PRINTING_CLASS, gt as TabsList, h as InstallPackageButton, ht as TabsContent, it as TOO_MANY_ROWS, j as isCellAwareAtom, jt as Funnel, k as contextAwarePanelOwner, kt as TextWrap, l as RadioGroup, lt as CommandInput, m as DataTable, mt as Tabs, n as marimoVersionAtom, nt as INDEX_COLUMN_NAME, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as getMimeValues, p as OutputRenderer, pt as Maps, q as ColumnChartContext, r as showCodeInRunModeAtom, rt as SELECT_COLUMN_ID, st as Command, t as useNotebookCodeAvailable, tt as loadTableData, u as RadioGroupItem, ut as CommandItem, v as downloadByURL, vt as ChartErrorState, w as Combobox, wt as Kbd, x as prettifyRowColumnCount, xt as LazyVegaEmbed, y as downloadHTMLAsImage, yt as ChartInfoState, z as TableCell, zt as ChevronsLeft, __tla as __tla_2 } from "./code-visibility-DFgAR74c.js";
30
30
  import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, t as useOnMount } from "./useLifecycle-smVfjLNI.js";
31
31
  import { n as $fb18d541ea1ad717$export$ad991b66133851cf, r as $5a387cc49350e6db$export$722debc0e56fea39, t as $896ba0a80a8f4d36$export$85fd5fdf27bacc79 } from "./useDateFormatter-B3mCQMP3.js";
32
32
  import { t as Check } from "./check-CFM2mVDr.js";
@@ -44649,7 +44649,7 @@ ${c}
44649
44649
  if (l && l !== "slide") return l;
44650
44650
  if (c == null ? void 0 : c.has(e)) return "skip";
44651
44651
  }
44652
- var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-DVr24sXs.js"));
44652
+ var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-CiQGTb7l.js"));
44653
44653
  const SlidesLayoutPlugin = {
44654
44654
  type: "slides",
44655
44655
  name: "Slides",
@@ -8,7 +8,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
9
  import "./html-to-image-CzFE0Irw.js";
10
10
  import "./chunk-5FQGJX7Z-CO1e63h_.js";
11
- import { It as Code, Mt as EyeOff, Nt as Expand, a as DEFAULT_SLIDE_TYPE, c as Slide, i as DEFAULT_DECK_TRANSITION, s as SlideSidebar, t as useNotebookCodeAvailable } from "./code-visibility-B8JChlY3.js";
11
+ import { It as Code, Mt as EyeOff, Nt as Expand, a as DEFAULT_SLIDE_TYPE, c as Slide, i as DEFAULT_DECK_TRANSITION, s as SlideSidebar, t as useNotebookCodeAvailable } from "./code-visibility-DFgAR74c.js";
12
12
  import "./input-Drx1pguW.js";
13
13
  import "./toDate-yqOcZ_tY.js";
14
14
  import "./react-dom-BWRJ_g_k.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.23.5-dev7",
3
+ "version": "0.23.5-dev9",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -151,7 +151,21 @@ export const ExportMenu: React.FC<ExportActionProps> = (props) => {
151
151
  }
152
152
  const rawName = (result.filename ?? "").trim();
153
153
  const baseName = Filenames.withoutExtension(rawName) || "download";
154
- downloadByURL(result.url, `${baseName}.${format}`);
154
+ const downloadName = `${baseName}.${format}`;
155
+ // Append ?download=1 so the server returns Content-Disposition: attachment.
156
+ // This forces a save even when <a download> is ignored — e.g., inside
157
+ // sandboxed iframes that lack `allow-downloads`. Skip for data: URLs
158
+ // (used in pyodide/wasm) since query params would corrupt the payload.
159
+ let downloadUrl = result.url;
160
+ if (!downloadUrl.startsWith("data:")) {
161
+ const separator = downloadUrl.includes("?") ? "&" : "?";
162
+ const params = new URLSearchParams({
163
+ download: "1",
164
+ filename: downloadName,
165
+ });
166
+ downloadUrl = `${downloadUrl}${separator}${params.toString()}`;
167
+ }
168
+ downloadByURL(downloadUrl, downloadName);
155
169
  };
156
170
 
157
171
  const handleClipboardCopy = async (