@marimo-team/islands 0.23.11-dev11 → 0.23.11-dev12

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.
@@ -35983,7 +35983,7 @@ ${d}`,
35983
35983
  return Logger.warn("Failed to get version from mount config"), null;
35984
35984
  }
35985
35985
  }
35986
- marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.11-dev11");
35986
+ marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.11-dev12");
35987
35987
  showCodeInRunModeAtom = atom(true);
35988
35988
  atom(null);
35989
35989
  var import_compiler_runtime = require_compiler_runtime();
package/dist/main.js CHANGED
@@ -26,7 +26,7 @@ import { $ as reducer, B as safeExtractSetUIElementMessageBuffers, Bn as CircleA
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-CtHRiXmc.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-w2IqZ0FR.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";
@@ -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-BBeKjxzM.js"));
36190
+ var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-CJnarjEW.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), [
@@ -9,7 +9,7 @@ import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
9
9
  import { lt as kioskModeAtom } from "./html-to-image-AwZNbzIe.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-CtHRiXmc.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-w2IqZ0FR.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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/islands",
3
- "version": "0.23.11-dev11",
3
+ "version": "0.23.11-dev12",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -41,7 +41,10 @@ import {
41
41
  YoutubeIcon,
42
42
  ZapIcon,
43
43
  } from "lucide-react";
44
- import { settingDialogAtom } from "@/components/app-config/state";
44
+ import {
45
+ settingDialogAtom,
46
+ useOpenSettingsToTab,
47
+ } from "@/components/app-config/state";
45
48
  import { MarkdownIcon } from "@/components/editor/cell/code/icons";
46
49
  import { MarimoPlusIcon } from "@/components/icons/marimo-icons";
47
50
  import { useImperativeModal } from "@/components/modal/ImperativeModal";
@@ -57,7 +60,8 @@ import {
57
60
  useCellActions,
58
61
  } from "@/core/cells/cells";
59
62
  import { disabledCellIds } from "@/core/cells/utils";
60
- import { useResolvedMarimoConfig } from "@/core/config/config";
63
+ import { capabilitiesAtom } from "@/core/config/capabilities";
64
+ import { aiEnabledAtom, useResolvedMarimoConfig } from "@/core/config/config";
61
65
  import { Constants } from "@/core/constants";
62
66
  import {
63
67
  updateCellOutputsWithScreenshots,
@@ -86,7 +90,7 @@ import { Strings } from "@/utils/strings";
86
90
  import { newNotebookURL } from "@/utils/urls";
87
91
  import { useRunAllCells } from "../cell/useRunCells";
88
92
  import { useChromeActions, useChromeState } from "../chrome/state";
89
- import { PANELS } from "../chrome/types";
93
+ import { isPanelHidden, PANELS } from "../chrome/types";
90
94
  import { AddConnectionDialogContent } from "../connections/add-connection-dialog";
91
95
  import { keyboardShortcutsAtom } from "../controls/keyboard-shortcuts";
92
96
  import { commandPaletteAtom } from "../controls/state";
@@ -112,6 +116,8 @@ export function useNotebookActions() {
112
116
  const kioskMode = useAtomValue(kioskModeAtom);
113
117
  const hideAllMarkdownCode = useHideAllMarkdownCode();
114
118
  const [resolvedConfig] = useResolvedMarimoConfig();
119
+ const capabilities = useAtomValue(capabilitiesAtom);
120
+ const aiEnabled = useAtomValue(aiEnabledAtom);
115
121
 
116
122
  const {
117
123
  updateCellConfig,
@@ -126,6 +132,7 @@ export function useNotebookActions() {
126
132
  const copyNotebook = useCopyNotebook(filename);
127
133
  const setCommandPaletteOpen = useSetAtom(commandPaletteAtom);
128
134
  const setSettingsDialogOpen = useSetAtom(settingDialogAtom);
135
+ const { handleClick: openSettings } = useOpenSettingsToTab();
129
136
  const setKeyboardShortcutsOpen = useSetAtom(keyboardShortcutsAtom);
130
137
  const {
131
138
  exportAsIPYNB,
@@ -407,20 +414,31 @@ export function useNotebookActions() {
407
414
  label: "Helper panel",
408
415
  redundant: true,
409
416
  handle: NOOP_HANDLER,
410
- dropdown: PANELS.flatMap(
411
- ({ type: id, Icon, hidden, additionalKeywords }) => {
412
- if (hidden) {
413
- return [];
414
- }
415
- return {
416
- label: Strings.startCase(id),
417
- rightElement: renderCheckboxElement(selectedPanel === id),
418
- icon: <Icon size={14} strokeWidth={1.5} />,
419
- handle: () => toggleApplication(id),
420
- additionalKeywords,
421
- };
422
- },
423
- ),
417
+ dropdown: PANELS.flatMap((panel) => {
418
+ // Still show the AI panel in the command palette so users can try AI
419
+ // features. When AI is disabled, open settings instead of the panel.
420
+ const openAiSettingsWhenDisabled = panel.type === "ai" && !aiEnabled;
421
+ if (
422
+ isPanelHidden({ panel, capabilities, aiEnabled }) &&
423
+ !openAiSettingsWhenDisabled
424
+ ) {
425
+ return [];
426
+ }
427
+ const { type: id, Icon, additionalKeywords } = panel;
428
+ return {
429
+ label: Strings.startCase(id),
430
+ rightElement: renderCheckboxElement(selectedPanel === id),
431
+ icon: <Icon size={14} strokeWidth={1.5} />,
432
+ handle: () => {
433
+ if (openAiSettingsWhenDisabled) {
434
+ openSettings("ai", "ai-features");
435
+ return;
436
+ }
437
+ toggleApplication(id);
438
+ },
439
+ additionalKeywords,
440
+ };
441
+ }),
424
442
  },
425
443
 
426
444
  {