@marimo-team/islands 0.23.1-dev2 → 0.23.1-dev20
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/{ConnectedDataExplorerComponent-D08JKcQg.js → ConnectedDataExplorerComponent-Eq8bCe49.js} +11 -11
- package/dist/{any-language-editor-BIGc8RUt.js → any-language-editor-BF8ew8wu.js} +4 -4
- package/dist/{button-DNlNlZY_.js → button-Cn59RsBF.js} +9 -5
- package/dist/{capabilities-Coe9eM9T.js → capabilities-Bml77Di-.js} +1 -1
- package/dist/{chat-ui-B9oZ19ii.js → chat-ui-BdrC6z8t.js} +140 -140
- package/dist/{check-Cex3x9fD.js → check-C51PA02v.js} +1 -1
- package/dist/{copy-BRF7ryOP.js → copy-DzOz_Au7.js} +2 -2
- package/dist/{dist-D56NKWim.js → dist-CjLQ79mo.js} +2 -2
- package/dist/{error-banner-DexD-5js.js → error-banner-BQcJXy6k.js} +2 -2
- package/dist/{esm-BGo_Mcdt.js → esm-BmYNigxi.js} +4 -4
- package/dist/{glide-data-editor-BmyQCm0U.js → glide-data-editor-D2X4D_xi.js} +7 -7
- package/dist/{input-SSWXiS6n.js → input-BRN2Mjzx.js} +6 -6
- package/dist/{label-CIR53v8V.js → label-J1N4mVcg.js} +4 -4
- package/dist/{loader-Bd1kgLn7.js → loader-JmfPBSx5.js} +1 -1
- package/dist/main.js +4514 -1458
- package/dist/{mermaid-BZ2YHhbi.js → mermaid-UMKVHs_g.js} +5 -5
- package/dist/{process-output-D_uZ0o1x.js → process-output-D3Q6xBZJ.js} +2215 -2198
- package/dist/slides-component-_3tukGh-.js +3065 -0
- package/dist/{spec-ByDEU1T3.js → spec-rP6otrXw.js} +3 -3
- package/dist/style.css +1 -1
- package/dist/{toDate-D0QaHNwR.js → toDate-CfGr2xZ1.js} +3 -3
- package/dist/{tooltip-B5EnNyok.js → tooltip-BusGYw7Q.js} +3 -4
- package/dist/{types-D4-TD_m0.js → types-D4CFUmPq.js} +2 -2
- package/dist/{useAsyncData-BG3ULuDU.js → useAsyncData-BzS3Ai32.js} +1 -1
- package/dist/{useDeepCompareMemoize-CkSq3l3_.js → useDeepCompareMemoize-AjORjhpL.js} +4 -4
- package/dist/{useIframeCapabilities-CqhrVue6.js → useIframeCapabilities---aRgGdv.js} +1 -1
- package/dist/{useLifecycle-2Vh-WDv6.js → useLifecycle-B90lJH4p.js} +3 -3
- package/dist/{useTheme-CxjbgkRc.js → useTheme-ytmywQ5O.js} +2 -2
- package/dist/{vega-component-z4WGXPkf.js → vega-component-C3akWtJ1.js} +9 -9
- package/dist/{zod-D18k8Z52.js → zod-D4UoCYGu.js} +1 -1
- package/package.json +1 -1
- package/src/components/editor/renderers/slides-layout/slides-layout.tsx +50 -44
- package/src/components/slides/__tests__/minimap.test.ts +402 -0
- package/src/components/slides/minimap.tsx +534 -0
- package/src/components/slides/slide.tsx +29 -0
- package/src/components/slides/slides-component.tsx +16 -1
- package/src/components/ui/button.tsx +1 -2
- package/src/core/cells/__tests__/cells.test.ts +105 -1
- package/src/core/cells/cells.ts +43 -0
- package/src/core/cells/document-changes.ts +2 -1
- package/src/plugins/core/RenderHTML.tsx +9 -0
- package/src/plugins/core/__test__/RenderHTML.test.ts +27 -0
- package/src/plugins/core/registerReactComponent.tsx +11 -8
- package/src/plugins/impl/ButtonPlugin.tsx +4 -6
- package/src/plugins/impl/CodeEditorPlugin.tsx +15 -18
- package/src/plugins/impl/DataEditorPlugin.tsx +8 -14
- package/src/plugins/impl/DataTablePlugin.tsx +1 -6
- package/src/plugins/impl/FileUploadPlugin.tsx +39 -43
- package/src/plugins/impl/FormPlugin.tsx +2 -6
- package/src/plugins/impl/chat/ChatPlugin.tsx +17 -20
- package/src/plugins/impl/data-explorer/DataExplorerPlugin.tsx +5 -8
- package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +38 -14
- package/src/plugins/impl/vega/VegaPlugin.tsx +5 -8
- package/src/plugins/layout/NavigationMenuPlugin.tsx +2 -6
- package/src/utils/__tests__/events.test.ts +223 -0
- package/src/utils/events.ts +28 -14
- package/dist/slides-component-CX2JC-Ws.js +0 -3057
|
@@ -3,10 +3,10 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
import { t as __commonJSMin } from "./chunk-BNovOVIE.js";
|
|
5
5
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
6
|
-
import { u as createLucideIcon } from "./dist-
|
|
7
|
-
import { g as Logger } from "./button-
|
|
6
|
+
import { u as createLucideIcon } from "./dist-CjLQ79mo.js";
|
|
7
|
+
import { g as Logger } from "./button-Cn59RsBF.js";
|
|
8
8
|
import { r as KnownQueryParams } from "./constants-CvyfaCvs.js";
|
|
9
|
-
import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-
|
|
9
|
+
import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-ytmywQ5O.js";
|
|
10
10
|
var CircleQuestionMark = createLucideIcon("circle-question-mark", [
|
|
11
11
|
["circle", {
|
|
12
12
|
cx: "12",
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { a as createPopperScope, i as Root2, n as Arrow, r as Content, s as Root, t as Anchor } from "./dist-
|
|
5
|
-
import { f as createSlottable, m as useComposedRefs, y as cn } from "./button-
|
|
4
|
+
import { a as createPopperScope, i as Root2, n as Arrow, r as Content, s as Root, t as Anchor } from "./dist-CjLQ79mo.js";
|
|
5
|
+
import { f as createSlottable, m as useComposedRefs, y as cn } from "./button-Cn59RsBF.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
7
|
-
import { $ as StyleNamespace, X as withFullScreenAsRoot, Z as withSmartCollisionBoundary, _t as Primitive, dt as Presence, ft as useControllableState, gt as createContextScope, it as Portal, mt as composeEventHandlers, st as DismissableLayer, ut as useId } from "./zod-
|
|
7
|
+
import { $ as StyleNamespace, X as withFullScreenAsRoot, Z as withSmartCollisionBoundary, _t as Primitive, dt as Presence, ft as useControllableState, gt as createContextScope, it as Portal, mt as composeEventHandlers, st as DismissableLayer, ut as useId } from "./zod-D4UoCYGu.js";
|
|
8
8
|
var import_react = /* @__PURE__ */ __toESM(require_react(), 1), import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime(), 1), [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [createPopperScope]), usePopperScope = createPopperScope(), PROVIDER_NAME = "TooltipProvider", DEFAULT_DELAY_DURATION = 700, TOOLTIP_OPEN = "tooltip.open", [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME), TooltipProvider$1 = (t) => {
|
|
9
9
|
let { __scopeTooltip: j, delayDuration: M = DEFAULT_DELAY_DURATION, skipDelayDuration: N = 300, disableHoverableContent: P = false, children: F } = t, I = import_react.useRef(true), L = import_react.useRef(false), R = import_react.useRef(0);
|
|
10
10
|
return import_react.useEffect(() => {
|
|
@@ -399,6 +399,5 @@ export {
|
|
|
399
399
|
TooltipContent as n,
|
|
400
400
|
TooltipTrigger as o,
|
|
401
401
|
TooltipPortal as r,
|
|
402
|
-
Provider as s,
|
|
403
402
|
Tooltip as t
|
|
404
403
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { s as __toESM, t as __commonJSMin } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { u as createLucideIcon } from "./dist-
|
|
5
|
-
import { t as Button } from "./button-
|
|
4
|
+
import { u as createLucideIcon } from "./dist-CjLQ79mo.js";
|
|
5
|
+
import { t as Button } from "./button-Cn59RsBF.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
7
7
|
import { n as Constants } from "./constants-CvyfaCvs.js";
|
|
8
8
|
var Pencil = createLucideIcon("pencil", [["path", {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { w as useEvent_default } from "./useTheme-
|
|
4
|
+
import { w as useEvent_default } from "./useTheme-ytmywQ5O.js";
|
|
5
5
|
import { t as invariant } from "./invariant-e8eBgdux.js";
|
|
6
6
|
var import_compiler_runtime = require_compiler_runtime(), import_react = /* @__PURE__ */ __toESM(require_react(), 1), Result = {
|
|
7
7
|
error(e, s) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { t as toDate } from "./toDate-
|
|
5
|
-
import { r as cva, y as cn } from "./button-
|
|
4
|
+
import { t as toDate } from "./toDate-CfGr2xZ1.js";
|
|
5
|
+
import { r as cva, y as cn } from "./button-Cn59RsBF.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
7
|
-
import { C as dequal } from "./useTheme-
|
|
8
|
-
import { i as tableFromIPC } from "./loader-
|
|
7
|
+
import { C as dequal } from "./useTheme-ytmywQ5O.js";
|
|
8
|
+
import { i as tableFromIPC } from "./loader-JmfPBSx5.js";
|
|
9
9
|
function isDate(t) {
|
|
10
10
|
return t instanceof Date || typeof t == "object" && Object.prototype.toString.call(t) === "[object Date]";
|
|
11
11
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { t as getIframeCapabilities } from "./capabilities-
|
|
4
|
+
import { t as getIframeCapabilities } from "./capabilities-Bml77Di-.js";
|
|
5
5
|
var import_compiler_runtime = require_compiler_runtime();
|
|
6
6
|
require_react();
|
|
7
7
|
function useIframeCapabilities() {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { u as createLucideIcon } from "./dist-
|
|
5
|
-
import { g as Logger, r as cva, y as cn } from "./button-
|
|
4
|
+
import { u as createLucideIcon } from "./dist-CjLQ79mo.js";
|
|
5
|
+
import { g as Logger, r as cva, y as cn } from "./button-Cn59RsBF.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
7
|
-
import { _ as useSetAtom, y as atom } from "./useTheme-
|
|
7
|
+
import { _ as useSetAtom, y as atom } from "./useTheme-ytmywQ5O.js";
|
|
8
8
|
var Calendar = createLucideIcon("calendar", [
|
|
9
9
|
["path", {
|
|
10
10
|
d: "M8 2v4",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { a as OverridingHotkeyProvider, g as Logger, s as resolvePlatform } from "./button-
|
|
5
|
-
import { A as looseObject, B as union, I as record, N as number, P as object, R as string, T as boolean, b as _enum, w as array } from "./zod-
|
|
4
|
+
import { a as OverridingHotkeyProvider, g as Logger, s as resolvePlatform } from "./button-Cn59RsBF.js";
|
|
5
|
+
import { A as looseObject, B as union, I as record, N as number, P as object, R as string, T as boolean, b as _enum, w as array } from "./zod-D4UoCYGu.js";
|
|
6
6
|
import { t as merge_default } from "./merge-CVhG7q_o.js";
|
|
7
7
|
var import_react = /* @__PURE__ */ __toESM(require_react()), useInsertionEffect = typeof window < "u" ? import_react.useInsertionEffect || import_react.useLayoutEffect : () => {
|
|
8
8
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-
|
|
5
|
-
import { c as Objects, g as Logger, h as Events, y as cn } from "./button-
|
|
4
|
+
import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-CfGr2xZ1.js";
|
|
5
|
+
import { c as Objects, g as Logger, h as Events, y as cn } from "./button-Cn59RsBF.js";
|
|
6
6
|
import "./react-dom-BSUuJjCR.js";
|
|
7
7
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
8
|
-
import "./zod-
|
|
9
|
-
import { n as ErrorBanner } from "./error-banner-
|
|
10
|
-
import { t as Tooltip } from "./tooltip-
|
|
8
|
+
import "./zod-D4UoCYGu.js";
|
|
9
|
+
import { n as ErrorBanner } from "./error-banner-BQcJXy6k.js";
|
|
10
|
+
import { t as Tooltip } from "./tooltip-BusGYw7Q.js";
|
|
11
11
|
import { i as debounce_default } from "./constants-CvyfaCvs.js";
|
|
12
|
-
import { n as useTheme, w as useEvent_default } from "./useTheme-
|
|
12
|
+
import { n as useTheme, w as useEvent_default } from "./useTheme-ytmywQ5O.js";
|
|
13
13
|
import { s as uniq } from "./arrays-beUWo8RF.js";
|
|
14
|
-
import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-
|
|
14
|
+
import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-AjORjhpL.js";
|
|
15
15
|
import { n as formats } from "./vega-loader.browser-DqEcFOPD.js";
|
|
16
|
-
import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-
|
|
17
|
-
import { t as useAsyncData } from "./useAsyncData-
|
|
16
|
+
import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-JmfPBSx5.js";
|
|
17
|
+
import { t as useAsyncData } from "./useAsyncData-BzS3Ai32.js";
|
|
18
18
|
import { t as j } from "./react-vega-CzRAIHrv.js";
|
|
19
19
|
import "./defaultLocale-qS7DaAmi.js";
|
|
20
20
|
import "./defaultLocale-Bxoo2-30.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as __export, s as __toESM } from "./chunk-BNovOVIE.js";
|
|
2
2
|
import { t as require_react } from "./react-Bs6Z0kvn.js";
|
|
3
3
|
import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
|
|
4
|
-
import { d as createSlot, l as useEventListener, m as useComposedRefs } from "./button-
|
|
4
|
+
import { d as createSlot, l as useEventListener, m as useComposedRefs } from "./button-Cn59RsBF.js";
|
|
5
5
|
import { t as require_react_dom } from "./react-dom-BSUuJjCR.js";
|
|
6
6
|
import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
|
|
7
7
|
var import_react = /* @__PURE__ */ __toESM(require_react(), 1), import_react_dom$1 = /* @__PURE__ */ __toESM(require_react_dom(), 1), import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime(), 1), Primitive = [
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
|
-
import React, {
|
|
3
|
-
import {
|
|
2
|
+
import React, { useState } from "react";
|
|
3
|
+
import { useAtomValue } from "jotai";
|
|
4
|
+
import { numColumnsAtom } from "@/core/cells/cells";
|
|
4
5
|
import type { CellId } from "@/core/cells/ids";
|
|
5
|
-
import type { CellRuntimeState } from "@/core/cells/types";
|
|
6
|
-
import type { AppMode } from "@/core/mode";
|
|
7
|
-
import { OutputArea } from "../../Output";
|
|
8
6
|
import type { ICellRendererProps } from "../types";
|
|
9
7
|
import type { SlidesLayout } from "./types";
|
|
8
|
+
import { SlidesMinimap } from "@/components/slides/minimap";
|
|
9
|
+
import { Slide } from "@/components/slides/slide";
|
|
10
|
+
import useEvent from "react-use-event-hook";
|
|
10
11
|
|
|
11
12
|
type Props = ICellRendererProps<SlidesLayout>;
|
|
12
13
|
|
|
@@ -22,25 +23,41 @@ export const SlidesLayoutRenderer: React.FC<Props> = ({
|
|
|
22
23
|
mode,
|
|
23
24
|
}) => {
|
|
24
25
|
const isReading = mode === "read";
|
|
26
|
+
const numColumns = useAtomValue(numColumnsAtom);
|
|
27
|
+
const isMultiColumn = numColumns > 1;
|
|
28
|
+
const [activeCellId, setActiveCellId] = useState<CellId | null>(null);
|
|
29
|
+
|
|
30
|
+
const cellsWithOutput = cells.filter(
|
|
31
|
+
(cell) => cell.output != null && cell.output.data !== "",
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const activeSlideIndex = activeCellId
|
|
35
|
+
? cellsWithOutput.findIndex((c) => c.id === activeCellId)
|
|
36
|
+
: 0;
|
|
37
|
+
const resolvedIndex = activeSlideIndex === -1 ? 0 : activeSlideIndex;
|
|
38
|
+
|
|
39
|
+
const handleSlideChange = useEvent((index: number) => {
|
|
40
|
+
const cell = cellsWithOutput[index];
|
|
41
|
+
if (cell) {
|
|
42
|
+
setActiveCellId(cell.id);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
25
45
|
|
|
26
46
|
const slides = (
|
|
27
|
-
<LazySlidesComponent
|
|
28
|
-
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/>
|
|
42
|
-
);
|
|
43
|
-
})}
|
|
47
|
+
<LazySlidesComponent
|
|
48
|
+
forceKeyboardNavigation={true}
|
|
49
|
+
className="flex-1 self-center"
|
|
50
|
+
activeIndex={resolvedIndex}
|
|
51
|
+
onActiveIndexChange={handleSlideChange}
|
|
52
|
+
>
|
|
53
|
+
{cellsWithOutput.map((cell) => (
|
|
54
|
+
<Slide
|
|
55
|
+
key={cell.id}
|
|
56
|
+
cellId={cell.id}
|
|
57
|
+
status={cell.status}
|
|
58
|
+
output={cell.output}
|
|
59
|
+
/>
|
|
60
|
+
))}
|
|
44
61
|
</LazySlidesComponent>
|
|
45
62
|
);
|
|
46
63
|
|
|
@@ -48,27 +65,16 @@ export const SlidesLayoutRenderer: React.FC<Props> = ({
|
|
|
48
65
|
return <div className="p-4 flex flex-col flex-1 max-h-[95%]">{slides}</div>;
|
|
49
66
|
}
|
|
50
67
|
|
|
51
|
-
return <div className="pr-18 pb-5 flex-1 flex flex-col">{slides}</div>;
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
interface SlideProps extends Pick<CellRuntimeState, "output" | "status"> {
|
|
55
|
-
className?: string;
|
|
56
|
-
code: string;
|
|
57
|
-
cellId: CellId;
|
|
58
|
-
mode: AppMode;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const Slide = memo(({ output, cellId, status }: SlideProps) => {
|
|
62
|
-
const loading = outputIsLoading(status);
|
|
63
68
|
return (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
// Use 11/12 to ensure all content fits on the page (no overflow, scrolling required)
|
|
70
|
+
<div className="pr-18 pb-5 flex-1 flex flex-row max-h-11/12 gap-2">
|
|
71
|
+
<SlidesMinimap
|
|
72
|
+
cells={cellsWithOutput}
|
|
73
|
+
canReorder={!isMultiColumn}
|
|
74
|
+
activeCellId={activeCellId ?? cellsWithOutput[0]?.id ?? null}
|
|
75
|
+
onSlideClick={handleSlideChange}
|
|
76
|
+
/>
|
|
77
|
+
{slides}
|
|
78
|
+
</div>
|
|
72
79
|
);
|
|
73
|
-
}
|
|
74
|
-
Slide.displayName = "Slide";
|
|
80
|
+
};
|