@marimo-team/islands 0.24.1-dev115 → 0.24.1-dev119
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-3vyrwCHu.js → ConnectedDataExplorerComponent-qIKbwYin.js} +10 -10
- package/dist/{ErrorBoundary-QF0xsxMw.js → ErrorBoundary-CR-ZQN_c.js} +2 -2
- package/dist/{any-language-editor-B2e3EkTe.js → any-language-editor-CpTnK43-.js} +3 -3
- package/dist/assets/__vite-browser-external-BdKGjRZ4.js +1 -0
- package/dist/assets/{worker-C3TCEtlU.js → worker-DlIBfp9S.js} +2 -2
- package/dist/{chat-ui-BgGHMO2G.js → chat-ui-DttQ-5Ut.js} +15 -15
- package/dist/{check-C_-c2CXl.js → check-CHig47QV.js} +1 -1
- package/dist/{common-Cdx64lyR.js → common-B2pVJVWJ.js} +7590 -7548
- package/dist/{copy-D4GHy7GA.js → copy-CD7S58CY.js} +1 -1
- package/dist/{dist-mymH-A_x.js → dist-3_o3T78I.js} +14 -14
- package/dist/{dropdown-menu-Div6gwlw.js → dropdown-menu-DhCfcscX.js} +123 -123
- package/dist/{error-banner-DmgOcFS3.js → error-banner-WDhUzJyg.js} +202 -202
- package/dist/{esm-CmFEQJjP.js → esm-CesmlDrs.js} +1 -1
- package/dist/{extends-CGTKDWHv.js → extends-BPB6_lTK.js} +3 -3
- package/dist/{formats-DuRRWVwb.js → formats-CJMVUfb3.js} +1 -1
- package/dist/{glide-data-editor-ekJ5GwaZ.js → glide-data-editor-sPZ8fUFn.js} +7 -7
- package/dist/{glide-utils-Dwc8Eh8G.js → glide-utils-NShAPPtn.js} +2 -2
- package/dist/{html-to-image-u8Ik6EnK.js → html-to-image-BTYnN4ev.js} +3378 -3378
- package/dist/{label-DdGS_CZZ.js → label-lwzzBHUW.js} +1 -1
- package/dist/main.js +793 -793
- package/dist/{mermaid-Bt45Zzl4.js → mermaid-BsHdQeQf.js} +3 -3
- package/dist/{process-output-DQiqt-_U.js → process-output-CsALk6tp.js} +3 -3
- package/dist/{reveal-component-tQ-rgxcQ.js → reveal-component-CiaqFa0B.js} +8 -8
- package/dist/{schemas-BjeOpZLk.js → schemas-DzK6U94N.js} +1379 -1363
- package/dist/{select-DotAQ4jp.js → select-3qHpFKF9.js} +286 -286
- package/dist/{spec-BesaYkGC.js → spec-CutWdqo3.js} +4 -4
- package/dist/style.css +1 -1
- package/dist/{toDate-CrAIOASL.js → toDate-D-Rx3ux5.js} +2 -2
- package/dist/{tooltip-COXZxyl7.js → tooltip-Dt77sBeT.js} +87 -87
- package/dist/{useAsyncData-x0_tWDWI.js → useAsyncData-CH6-CgJF.js} +1 -1
- package/dist/{useDateFormatter-B3V__WqX.js → useDateFormatter-Cp9Jdxls.js} +2 -2
- package/dist/{useDeepCompareMemoize-KaRHJEEU.js → useDeepCompareMemoize-JC87C_jO.js} +1 -1
- package/dist/{useLifecycle-x0OriHo-.js → useLifecycle-B4RGlyf0.js} +2 -2
- package/dist/{useTheme-Bm9_FyqO.js → useTheme-CVJ0UOf2.js} +2 -1
- package/dist/{vega-component-nD2oP6WN.js → vega-component-D-IXRnlx.js} +7 -7
- package/package.json +1 -1
- package/src/components/ai/ai-provider-icon.tsx +2 -2
- package/src/components/ai/ai-utils.ts +1 -1
- package/src/components/app-config/ai-config.tsx +33 -37
- package/src/components/app-config/user-config-form.tsx +1 -1
- package/src/components/data-table/renderers.tsx +2 -6
- package/src/components/editor/Output.tsx +40 -0
- package/src/components/editor/__tests__/Output.test.tsx +85 -2
- package/src/components/editor/file-tree/__tests__/file-explorer-navigation.test.tsx +832 -0
- package/src/components/editor/file-tree/__tests__/file-viewer.test.tsx +27 -0
- package/src/components/editor/file-tree/__tests__/requesting-tree.test.ts +130 -0
- package/src/components/editor/file-tree/file-browser-row.tsx +82 -0
- package/src/components/editor/file-tree/file-explorer.tsx +377 -159
- package/src/components/editor/file-tree/file-operations.tsx +1 -1
- package/src/components/editor/file-tree/file-search-results.tsx +142 -0
- package/src/components/editor/file-tree/file-tree-row.tsx +40 -0
- package/src/components/editor/file-tree/file-viewer.tsx +2 -1
- package/src/components/editor/file-tree/requesting-tree.tsx +162 -32
- package/src/components/editor/file-tree/use-file-search.ts +142 -0
- package/src/components/editor/file-tree/use-hover-expand.ts +34 -0
- package/src/components/ui/__tests__/fullscreen.test.tsx +88 -0
- package/src/components/ui/fullscreen.tsx +43 -1
- package/src/components/ui/links.tsx +2 -1
- package/src/core/ai/ids/__tests__/ids.test.ts +0 -8
- package/src/core/ai/ids/ids.ts +1 -1
- package/src/core/config/config-schema.ts +1 -0
- package/src/core/network/__tests__/requests-toasting.test.tsx +14 -0
- package/src/core/network/requests-toasting.tsx +1 -1
- package/src/hooks/useEventListener.ts +1 -1
- package/dist/assets/__vite-browser-external-Cf4O9gnt.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
2
2
|
import { g as t } from "./button-CKBkqR9J.js";
|
|
3
3
|
import { t as n } from "./compiler-runtime-CAH9RLw2.js";
|
|
4
|
-
import { u as r } from "./dist-
|
|
5
|
-
import { E as i, _ as a, a as o, b as s } from "./useTheme-
|
|
4
|
+
import { u as r } from "./dist-3_o3T78I.js";
|
|
5
|
+
import { E as i, _ as a, a as o, b as s } from "./useTheme-CVJ0UOf2.js";
|
|
6
6
|
import { t as c } from "./invariant-DLmrl-hA.js";
|
|
7
7
|
var l = r("circle-question-mark", [
|
|
8
8
|
["circle", {
|
|
@@ -2,116 +2,116 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
|
2
2
|
import { d as t, h as n, p as r } from "./button-CKBkqR9J.js";
|
|
3
3
|
import { t as i } from "./react-DMWcHin-.js";
|
|
4
4
|
import { t as a } from "./compiler-runtime-CAH9RLw2.js";
|
|
5
|
-
import { a as o, i as s, n as c, r as l, s as u, t as d } from "./dist-
|
|
5
|
+
import { a as o, i as s, n as c, r as l, s as u, t as d } from "./dist-3_o3T78I.js";
|
|
6
6
|
import { t as f } from "./jsx-runtime-CpoKNRgu.js";
|
|
7
|
-
import {
|
|
7
|
+
import { Ac as p, Dc as m, Fc as h, Gc as g, Hc as _, Jc as v, Oc as y, Rc as b, Uc as ee, Vc as te, qc as x } from "./schemas-DzK6U94N.js";
|
|
8
8
|
//#region ../node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@19.2.3_@types+react@19.2.10__@types+reac_6c936392a1aa34d496e116dc55299197/node_modules/@radix-ui/react-tooltip/dist/index.mjs
|
|
9
|
-
var
|
|
10
|
-
let { __scopeTooltip: t, delayDuration: n =
|
|
11
|
-
return
|
|
9
|
+
var S = /* @__PURE__ */ e(i(), 1), C = f(), [w, T] = x("Tooltip", [o]), E = o(), D = "TooltipProvider", ne = 700, O = "tooltip.open", [re, k] = w(D), A = (e) => {
|
|
10
|
+
let { __scopeTooltip: t, delayDuration: n = ne, skipDelayDuration: r = 300, disableHoverableContent: i = !1, children: a } = e, o = S.useRef(!0), s = S.useRef(!1), c = S.useRef(0);
|
|
11
|
+
return S.useEffect(() => {
|
|
12
12
|
let e = c.current;
|
|
13
13
|
return () => window.clearTimeout(e);
|
|
14
|
-
}, []), /* @__PURE__ */ (0,
|
|
14
|
+
}, []), /* @__PURE__ */ (0, C.jsx)(re, {
|
|
15
15
|
scope: t,
|
|
16
16
|
isOpenDelayedRef: o,
|
|
17
17
|
delayDuration: n,
|
|
18
|
-
onOpen:
|
|
18
|
+
onOpen: S.useCallback(() => {
|
|
19
19
|
window.clearTimeout(c.current), o.current = !1;
|
|
20
20
|
}, []),
|
|
21
|
-
onClose:
|
|
21
|
+
onClose: S.useCallback(() => {
|
|
22
22
|
window.clearTimeout(c.current), c.current = window.setTimeout(() => o.current = !0, r);
|
|
23
23
|
}, [r]),
|
|
24
24
|
isPointerInTransitRef: s,
|
|
25
|
-
onPointerInTransitChange:
|
|
25
|
+
onPointerInTransitChange: S.useCallback((e) => {
|
|
26
26
|
s.current = e;
|
|
27
27
|
}, []),
|
|
28
28
|
disableHoverableContent: i,
|
|
29
29
|
children: a
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
|
-
|
|
33
|
-
var
|
|
34
|
-
let { __scopeTooltip: t, children: n, open: r, defaultOpen: i, onOpenChange: a, disableHoverableContent: o, delayDuration: c } = e, l =
|
|
32
|
+
A.displayName = D;
|
|
33
|
+
var j = "Tooltip", [M, N] = w(j), P = (e) => {
|
|
34
|
+
let { __scopeTooltip: t, children: n, open: r, defaultOpen: i, onOpenChange: a, disableHoverableContent: o, delayDuration: c } = e, l = k(j, e.__scopeTooltip), u = E(t), [d, f] = S.useState(null), p = te(), m = S.useRef(0), h = o ?? l.disableHoverableContent, g = c ?? l.delayDuration, _ = S.useRef(!1), [v, y] = ee({
|
|
35
35
|
prop: r,
|
|
36
36
|
defaultProp: i ?? !1,
|
|
37
37
|
onChange: (e) => {
|
|
38
|
-
e ? (l.onOpen(), document.dispatchEvent(new CustomEvent(
|
|
38
|
+
e ? (l.onOpen(), document.dispatchEvent(new CustomEvent(O))) : l.onClose(), a?.(e);
|
|
39
39
|
},
|
|
40
|
-
caller:
|
|
41
|
-
}),
|
|
42
|
-
window.clearTimeout(
|
|
43
|
-
}, [
|
|
44
|
-
window.clearTimeout(
|
|
45
|
-
}, [
|
|
46
|
-
window.clearTimeout(
|
|
47
|
-
|
|
48
|
-
},
|
|
49
|
-
}, [
|
|
50
|
-
return
|
|
51
|
-
|
|
52
|
-
}, []), /* @__PURE__ */ (0,
|
|
40
|
+
caller: j
|
|
41
|
+
}), b = S.useMemo(() => v ? _.current ? "delayed-open" : "instant-open" : "closed", [v]), x = S.useCallback(() => {
|
|
42
|
+
window.clearTimeout(m.current), m.current = 0, _.current = !1, y(!0);
|
|
43
|
+
}, [y]), w = S.useCallback(() => {
|
|
44
|
+
window.clearTimeout(m.current), m.current = 0, y(!1);
|
|
45
|
+
}, [y]), T = S.useCallback(() => {
|
|
46
|
+
window.clearTimeout(m.current), m.current = window.setTimeout(() => {
|
|
47
|
+
_.current = !0, y(!0), m.current = 0;
|
|
48
|
+
}, g);
|
|
49
|
+
}, [g, y]);
|
|
50
|
+
return S.useEffect(() => () => {
|
|
51
|
+
m.current &&= (window.clearTimeout(m.current), 0);
|
|
52
|
+
}, []), /* @__PURE__ */ (0, C.jsx)(s, {
|
|
53
53
|
...u,
|
|
54
|
-
children: /* @__PURE__ */ (0,
|
|
54
|
+
children: /* @__PURE__ */ (0, C.jsx)(M, {
|
|
55
55
|
scope: t,
|
|
56
|
-
contentId:
|
|
57
|
-
open:
|
|
58
|
-
stateAttribute:
|
|
56
|
+
contentId: p,
|
|
57
|
+
open: v,
|
|
58
|
+
stateAttribute: b,
|
|
59
59
|
trigger: d,
|
|
60
60
|
onTriggerChange: f,
|
|
61
|
-
onTriggerEnter:
|
|
62
|
-
l.isOpenDelayedRef.current ?
|
|
61
|
+
onTriggerEnter: S.useCallback(() => {
|
|
62
|
+
l.isOpenDelayedRef.current ? T() : x();
|
|
63
63
|
}, [
|
|
64
64
|
l.isOpenDelayedRef,
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
T,
|
|
66
|
+
x
|
|
67
67
|
]),
|
|
68
|
-
onTriggerLeave:
|
|
69
|
-
|
|
70
|
-
}, [
|
|
71
|
-
onOpen:
|
|
72
|
-
onClose:
|
|
73
|
-
disableHoverableContent:
|
|
68
|
+
onTriggerLeave: S.useCallback(() => {
|
|
69
|
+
h ? w() : (window.clearTimeout(m.current), m.current = 0);
|
|
70
|
+
}, [w, h]),
|
|
71
|
+
onOpen: x,
|
|
72
|
+
onClose: w,
|
|
73
|
+
disableHoverableContent: h,
|
|
74
74
|
children: n
|
|
75
75
|
})
|
|
76
76
|
});
|
|
77
77
|
};
|
|
78
|
-
|
|
79
|
-
var
|
|
80
|
-
let { __scopeTooltip: n, ...i } = e, a =
|
|
81
|
-
return
|
|
78
|
+
P.displayName = j;
|
|
79
|
+
var F = "TooltipTrigger", I = S.forwardRef((e, t) => {
|
|
80
|
+
let { __scopeTooltip: n, ...i } = e, a = N(F, n), o = k(F, n), s = E(n), c = S.useRef(null), l = r(t, c, a.onTriggerChange), u = S.useRef(!1), f = S.useRef(!1), p = S.useCallback(() => u.current = !1, []);
|
|
81
|
+
return S.useEffect(() => () => document.removeEventListener("pointerup", p), [p]), /* @__PURE__ */ (0, C.jsx)(d, {
|
|
82
82
|
asChild: !0,
|
|
83
83
|
...s,
|
|
84
|
-
children: /* @__PURE__ */ (0,
|
|
84
|
+
children: /* @__PURE__ */ (0, C.jsx)(v.button, {
|
|
85
85
|
"aria-describedby": a.open ? a.contentId : void 0,
|
|
86
86
|
"data-state": a.stateAttribute,
|
|
87
87
|
...i,
|
|
88
88
|
ref: l,
|
|
89
|
-
onPointerMove:
|
|
89
|
+
onPointerMove: g(e.onPointerMove, (e) => {
|
|
90
90
|
e.pointerType !== "touch" && !f.current && !o.isPointerInTransitRef.current && (a.onTriggerEnter(), f.current = !0);
|
|
91
91
|
}),
|
|
92
|
-
onPointerLeave:
|
|
92
|
+
onPointerLeave: g(e.onPointerLeave, () => {
|
|
93
93
|
a.onTriggerLeave(), f.current = !1;
|
|
94
94
|
}),
|
|
95
|
-
onPointerDown:
|
|
95
|
+
onPointerDown: g(e.onPointerDown, () => {
|
|
96
96
|
a.open && a.onClose(), u.current = !0, document.addEventListener("pointerup", p, { once: !0 });
|
|
97
97
|
}),
|
|
98
|
-
onFocus:
|
|
98
|
+
onFocus: g(e.onFocus, () => {
|
|
99
99
|
u.current || a.onOpen();
|
|
100
100
|
}),
|
|
101
|
-
onBlur:
|
|
102
|
-
onClick:
|
|
101
|
+
onBlur: g(e.onBlur, a.onClose),
|
|
102
|
+
onClick: g(e.onClick, a.onClose)
|
|
103
103
|
})
|
|
104
104
|
});
|
|
105
105
|
});
|
|
106
|
-
|
|
107
|
-
var
|
|
108
|
-
let { __scopeTooltip: t, forceMount: n, children: r, container: i } = e, a =
|
|
109
|
-
return /* @__PURE__ */ (0,
|
|
106
|
+
I.displayName = F;
|
|
107
|
+
var L = "TooltipPortal", [R, z] = w(L, { forceMount: void 0 }), B = (e) => {
|
|
108
|
+
let { __scopeTooltip: t, forceMount: n, children: r, container: i } = e, a = N(L, t);
|
|
109
|
+
return /* @__PURE__ */ (0, C.jsx)(R, {
|
|
110
110
|
scope: t,
|
|
111
111
|
forceMount: n,
|
|
112
|
-
children: /* @__PURE__ */ (0,
|
|
112
|
+
children: /* @__PURE__ */ (0, C.jsx)(_, {
|
|
113
113
|
present: n || a.open,
|
|
114
|
-
children: /* @__PURE__ */ (0,
|
|
114
|
+
children: /* @__PURE__ */ (0, C.jsx)(h, {
|
|
115
115
|
asChild: !0,
|
|
116
116
|
container: i,
|
|
117
117
|
children: r
|
|
@@ -119,32 +119,32 @@ var R = "TooltipPortal", [re, z] = T(R, { forceMount: void 0 }), B = (e) => {
|
|
|
119
119
|
})
|
|
120
120
|
});
|
|
121
121
|
};
|
|
122
|
-
B.displayName =
|
|
123
|
-
var V = "TooltipContent", H =
|
|
124
|
-
let n = z(V, e.__scopeTooltip), { forceMount: r = n.forceMount, side: i = "top", ...a } = e, o =
|
|
125
|
-
return /* @__PURE__ */ (0,
|
|
122
|
+
B.displayName = L;
|
|
123
|
+
var V = "TooltipContent", H = S.forwardRef((e, t) => {
|
|
124
|
+
let n = z(V, e.__scopeTooltip), { forceMount: r = n.forceMount, side: i = "top", ...a } = e, o = N(V, e.__scopeTooltip);
|
|
125
|
+
return /* @__PURE__ */ (0, C.jsx)(_, {
|
|
126
126
|
present: r || o.open,
|
|
127
|
-
children: o.disableHoverableContent ? /* @__PURE__ */ (0,
|
|
127
|
+
children: o.disableHoverableContent ? /* @__PURE__ */ (0, C.jsx)(G, {
|
|
128
128
|
side: i,
|
|
129
129
|
...a,
|
|
130
130
|
ref: t
|
|
131
|
-
}) : /* @__PURE__ */ (0,
|
|
131
|
+
}) : /* @__PURE__ */ (0, C.jsx)(ie, {
|
|
132
132
|
side: i,
|
|
133
133
|
...a,
|
|
134
134
|
ref: t
|
|
135
135
|
})
|
|
136
136
|
});
|
|
137
|
-
}), ie =
|
|
138
|
-
let n =
|
|
137
|
+
}), ie = S.forwardRef((e, t) => {
|
|
138
|
+
let n = N(V, e.__scopeTooltip), i = k(V, e.__scopeTooltip), a = S.useRef(null), o = r(t, a), [s, c] = S.useState(null), { trigger: l, onClose: u } = n, d = a.current, { onPointerInTransitChange: f } = i, p = S.useCallback(() => {
|
|
139
139
|
c(null), f(!1);
|
|
140
|
-
}, [f]), m =
|
|
140
|
+
}, [f]), m = S.useCallback((e, t) => {
|
|
141
141
|
let n = e.currentTarget, r = {
|
|
142
142
|
x: e.clientX,
|
|
143
143
|
y: e.clientY
|
|
144
144
|
}, i = se(r, oe(r, n.getBoundingClientRect())), a = ce(t.getBoundingClientRect()), o = ue([...i, ...a]);
|
|
145
145
|
c(o), f(!0);
|
|
146
146
|
}, [f]);
|
|
147
|
-
return
|
|
147
|
+
return S.useEffect(() => () => p(), [p]), S.useEffect(() => {
|
|
148
148
|
if (l && d) {
|
|
149
149
|
let e = (e) => m(e, d), t = (e) => m(e, l);
|
|
150
150
|
return l.addEventListener("pointerleave", e), d.addEventListener("pointerleave", t), () => {
|
|
@@ -156,7 +156,7 @@ var V = "TooltipContent", H = C.forwardRef((e, t) => {
|
|
|
156
156
|
d,
|
|
157
157
|
m,
|
|
158
158
|
p
|
|
159
|
-
]),
|
|
159
|
+
]), S.useEffect(() => {
|
|
160
160
|
if (s) {
|
|
161
161
|
let e = (e) => {
|
|
162
162
|
let t = e.target, n = {
|
|
@@ -173,27 +173,27 @@ var V = "TooltipContent", H = C.forwardRef((e, t) => {
|
|
|
173
173
|
s,
|
|
174
174
|
u,
|
|
175
175
|
p
|
|
176
|
-
]), /* @__PURE__ */ (0,
|
|
176
|
+
]), /* @__PURE__ */ (0, C.jsx)(G, {
|
|
177
177
|
...e,
|
|
178
178
|
ref: o
|
|
179
179
|
});
|
|
180
|
-
}), [ae, U] =
|
|
181
|
-
let { __scopeTooltip: n, children: r, "aria-label": i, onEscapeKeyDown: a, onPointerDownOutside: o, ...s } = e, c =
|
|
182
|
-
return
|
|
180
|
+
}), [ae, U] = w(j, { isInside: !1 }), W = t("TooltipContent"), G = S.forwardRef((e, t) => {
|
|
181
|
+
let { __scopeTooltip: n, children: r, "aria-label": i, onEscapeKeyDown: a, onPointerDownOutside: o, ...s } = e, c = N(V, n), d = E(n), { onClose: f } = c;
|
|
182
|
+
return S.useEffect(() => (document.addEventListener(O, f), () => document.removeEventListener(O, f)), [f]), S.useEffect(() => {
|
|
183
183
|
if (c.trigger) {
|
|
184
184
|
let e = (e) => {
|
|
185
185
|
e.target?.contains(c.trigger) && f();
|
|
186
186
|
};
|
|
187
187
|
return window.addEventListener("scroll", e, { capture: !0 }), () => window.removeEventListener("scroll", e, { capture: !0 });
|
|
188
188
|
}
|
|
189
|
-
}, [c.trigger, f]), /* @__PURE__ */ (0,
|
|
189
|
+
}, [c.trigger, f]), /* @__PURE__ */ (0, C.jsx)(b, {
|
|
190
190
|
asChild: !0,
|
|
191
191
|
disableOutsidePointerEvents: !1,
|
|
192
192
|
onEscapeKeyDown: a,
|
|
193
193
|
onPointerDownOutside: o,
|
|
194
194
|
onFocusOutside: (e) => e.preventDefault(),
|
|
195
195
|
onDismiss: f,
|
|
196
|
-
children: /* @__PURE__ */ (0,
|
|
196
|
+
children: /* @__PURE__ */ (0, C.jsxs)(l, {
|
|
197
197
|
"data-state": c.stateAttribute,
|
|
198
198
|
...d,
|
|
199
199
|
...s,
|
|
@@ -206,10 +206,10 @@ var V = "TooltipContent", H = C.forwardRef((e, t) => {
|
|
|
206
206
|
"--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
|
|
207
207
|
"--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
|
|
208
208
|
},
|
|
209
|
-
children: [/* @__PURE__ */ (0,
|
|
209
|
+
children: [/* @__PURE__ */ (0, C.jsx)(W, { children: r }), /* @__PURE__ */ (0, C.jsx)(ae, {
|
|
210
210
|
scope: n,
|
|
211
211
|
isInside: !0,
|
|
212
|
-
children: /* @__PURE__ */ (0,
|
|
212
|
+
children: /* @__PURE__ */ (0, C.jsx)(u, {
|
|
213
213
|
id: c.contentId,
|
|
214
214
|
role: "tooltip",
|
|
215
215
|
children: i || r
|
|
@@ -219,9 +219,9 @@ var V = "TooltipContent", H = C.forwardRef((e, t) => {
|
|
|
219
219
|
});
|
|
220
220
|
});
|
|
221
221
|
H.displayName = V;
|
|
222
|
-
var K = "TooltipArrow", q =
|
|
223
|
-
let { __scopeTooltip: n, ...r } = e, i =
|
|
224
|
-
return U(K, n).isInside ? null : /* @__PURE__ */ (0,
|
|
222
|
+
var K = "TooltipArrow", q = S.forwardRef((e, t) => {
|
|
223
|
+
let { __scopeTooltip: n, ...r } = e, i = E(n);
|
|
224
|
+
return U(K, n).isInside ? null : /* @__PURE__ */ (0, C.jsx)(c, {
|
|
225
225
|
...i,
|
|
226
226
|
...r,
|
|
227
227
|
ref: t
|
|
@@ -336,21 +336,21 @@ function de(e) {
|
|
|
336
336
|
}
|
|
337
337
|
return n.pop(), t.length === 1 && n.length === 1 && t[0].x === n[0].x && t[0].y === n[0].y ? t : t.concat(n);
|
|
338
338
|
}
|
|
339
|
-
var fe =
|
|
339
|
+
var fe = A, pe = P, me = I, he = B, J = H, Y = a(), ge = (e) => {
|
|
340
340
|
let t = (0, Y.c)(6), n, r;
|
|
341
341
|
t[0] === e ? (n = t[1], r = t[2]) : ({delayDuration: r, ...n} = e, t[0] = e, t[1] = n, t[2] = r);
|
|
342
342
|
let i = r === void 0 ? 400 : r, a;
|
|
343
|
-
return t[3] !== i || t[4] !== n ? (a = /* @__PURE__ */ (0,
|
|
343
|
+
return t[3] !== i || t[4] !== n ? (a = /* @__PURE__ */ (0, C.jsx)(fe, {
|
|
344
344
|
delayDuration: i,
|
|
345
345
|
...n
|
|
346
346
|
}), t[3] = i, t[4] = n, t[5] = a) : a = t[5], a;
|
|
347
|
-
}, X =
|
|
347
|
+
}, X = m(he), Z = pe, _e = y(J), Q = me, $ = S.forwardRef((e, t) => {
|
|
348
348
|
let r = (0, Y.c)(11), i, a, o;
|
|
349
349
|
r[0] === e ? (i = r[1], a = r[2], o = r[3]) : ({className: i, sideOffset: o, ...a} = e, r[0] = e, r[1] = i, r[2] = a, r[3] = o);
|
|
350
350
|
let s = o === void 0 ? 4 : o, c;
|
|
351
351
|
r[4] === i ? c = r[5] : (c = n("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-xs data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1", i), r[4] = i, r[5] = c);
|
|
352
352
|
let l;
|
|
353
|
-
return r[6] !== a || r[7] !== t || r[8] !== s || r[9] !== c ? (l = /* @__PURE__ */ (0,
|
|
353
|
+
return r[6] !== a || r[7] !== t || r[8] !== s || r[9] !== c ? (l = /* @__PURE__ */ (0, C.jsx)(p, { children: /* @__PURE__ */ (0, C.jsx)(_e, {
|
|
354
354
|
ref: t,
|
|
355
355
|
sideOffset: s,
|
|
356
356
|
className: c,
|
|
@@ -364,23 +364,23 @@ var ve = (e) => {
|
|
|
364
364
|
let u = s === void 0 || s, d = c === void 0 || c;
|
|
365
365
|
if (i == null || i === "") return r;
|
|
366
366
|
let f;
|
|
367
|
-
t[9] !== d || t[10] !== r || t[11] !== l ? (f = /* @__PURE__ */ (0,
|
|
367
|
+
t[9] !== d || t[10] !== r || t[11] !== l ? (f = /* @__PURE__ */ (0, C.jsx)(Q, {
|
|
368
368
|
asChild: d,
|
|
369
369
|
tabIndex: l,
|
|
370
370
|
children: r
|
|
371
371
|
}), t[9] = d, t[10] = r, t[11] = l, t[12] = f) : f = t[12];
|
|
372
372
|
let p;
|
|
373
|
-
t[13] !== n || t[14] !== i || t[15] !== o || t[16] !== u ? (p = u ? /* @__PURE__ */ (0,
|
|
373
|
+
t[13] !== n || t[14] !== i || t[15] !== o || t[16] !== u ? (p = u ? /* @__PURE__ */ (0, C.jsx)(X, { children: /* @__PURE__ */ (0, C.jsx)($, {
|
|
374
374
|
side: o,
|
|
375
375
|
align: n,
|
|
376
376
|
children: i
|
|
377
|
-
}) }) : /* @__PURE__ */ (0,
|
|
377
|
+
}) }) : /* @__PURE__ */ (0, C.jsx)($, {
|
|
378
378
|
side: o,
|
|
379
379
|
align: n,
|
|
380
380
|
children: i
|
|
381
381
|
}), t[13] = n, t[14] = i, t[15] = o, t[16] = u, t[17] = p) : p = t[17];
|
|
382
382
|
let m;
|
|
383
|
-
return t[18] !== a || t[19] !== f || t[20] !== p ? (m = /* @__PURE__ */ (0,
|
|
383
|
+
return t[18] !== a || t[19] !== f || t[20] !== p ? (m = /* @__PURE__ */ (0, C.jsxs)(Z, {
|
|
384
384
|
disableHoverableContent: !0,
|
|
385
385
|
...a,
|
|
386
386
|
children: [f, p]
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
2
2
|
import { t } from "./react-DMWcHin-.js";
|
|
3
3
|
import { t as n } from "./compiler-runtime-CAH9RLw2.js";
|
|
4
|
-
import { j as r } from "./useTheme-
|
|
4
|
+
import { j as r } from "./useTheme-CVJ0UOf2.js";
|
|
5
5
|
import { t as i } from "./invariant-DLmrl-hA.js";
|
|
6
6
|
//#region src/hooks/useAsyncData.ts
|
|
7
7
|
var a = n(), o = /* @__PURE__ */ e(t(), 1), s = {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
2
2
|
import { t } from "./react-DMWcHin-.js";
|
|
3
|
-
import { u as n } from "./dist-
|
|
4
|
-
import { E as r } from "./select-
|
|
3
|
+
import { u as n } from "./dist-3_o3T78I.js";
|
|
4
|
+
import { E as r } from "./select-3qHpFKF9.js";
|
|
5
5
|
var i = n("chart-pie", [["path", {
|
|
6
6
|
d: "M21 12c.552 0 1.005-.449.95-.998a10 10 0 0 0-8.953-8.951c-.55-.055-.998.398-.998.95v8a1 1 0 0 0 1 1z",
|
|
7
7
|
key: "pzmjnu"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
2
2
|
import { t } from "./react-DMWcHin-.js";
|
|
3
|
-
import { A as n } from "./useTheme-
|
|
3
|
+
import { A as n } from "./useTheme-CVJ0UOf2.js";
|
|
4
4
|
//#region src/hooks/useDeepCompareMemoize.ts
|
|
5
5
|
var r = /* @__PURE__ */ e(t(), 1);
|
|
6
6
|
function i(e) {
|
|
@@ -2,9 +2,9 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
|
2
2
|
import { g as t, h as n, r } from "./button-CKBkqR9J.js";
|
|
3
3
|
import { t as i } from "./react-DMWcHin-.js";
|
|
4
4
|
import { t as a } from "./compiler-runtime-CAH9RLw2.js";
|
|
5
|
-
import { u as o } from "./dist-
|
|
5
|
+
import { u as o } from "./dist-3_o3T78I.js";
|
|
6
6
|
import { t as s } from "./jsx-runtime-CpoKNRgu.js";
|
|
7
|
-
import { E as c, w as l } from "./useTheme-
|
|
7
|
+
import { E as c, w as l } from "./useTheme-CVJ0UOf2.js";
|
|
8
8
|
var u = o("calendar", [
|
|
9
9
|
["path", {
|
|
10
10
|
d: "M8 2v4",
|
|
@@ -2,7 +2,7 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
|
2
2
|
import { a as t, g as n, s as r } from "./button-CKBkqR9J.js";
|
|
3
3
|
import { t as i } from "./react-DMWcHin-.js";
|
|
4
4
|
import { t as a } from "./compiler-runtime-CAH9RLw2.js";
|
|
5
|
-
import { Cn as o, In as s, Jn as c, Sn as l, Tt as u, jn as d, kt as f, un as p, vt as m } from "./schemas-
|
|
5
|
+
import { Cn as o, In as s, Jn as c, Sn as l, Tt as u, jn as d, kt as f, un as p, vt as m } from "./schemas-DzK6U94N.js";
|
|
6
6
|
import { n as h, t as g } from "./_baseMerge-Dv8bBloN.js";
|
|
7
7
|
//#region ../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/mergeWith.js
|
|
8
8
|
var _ = h(function(e, t, n, r) {
|
|
@@ -618,6 +618,7 @@ var Ie = [
|
|
|
618
618
|
inline_tooltip: f().prefault(!1),
|
|
619
619
|
allow_provider_config: f().prefault(!0),
|
|
620
620
|
open_ai: q.optional(),
|
|
621
|
+
github: q.optional(),
|
|
621
622
|
anthropic: q.optional(),
|
|
622
623
|
google: q.optional(),
|
|
623
624
|
ollama: q.optional(),
|
|
@@ -2,20 +2,20 @@ import { a as e } from "./rolldown-runtime-Cb76FRpK.js";
|
|
|
2
2
|
import { g as t, h as n, m as r, o as i } from "./button-CKBkqR9J.js";
|
|
3
3
|
import { t as a } from "./react-DMWcHin-.js";
|
|
4
4
|
import { t as o } from "./compiler-runtime-CAH9RLw2.js";
|
|
5
|
-
import { c as s, v as c } from "./toDate-
|
|
5
|
+
import { c as s, v as c } from "./toDate-D-Rx3ux5.js";
|
|
6
6
|
import { t as l } from "./jsx-runtime-CpoKNRgu.js";
|
|
7
|
-
import { n as u } from "./error-banner-
|
|
8
|
-
import { t as d } from "./tooltip-
|
|
7
|
+
import { n as u } from "./error-banner-WDhUzJyg.js";
|
|
8
|
+
import { t as d } from "./tooltip-Dt77sBeT.js";
|
|
9
9
|
import { t as f } from "./debounce-C3jyATpc.js";
|
|
10
|
-
import { j as p, n as ee } from "./useTheme-
|
|
10
|
+
import { j as p, n as ee } from "./useTheme-CVJ0UOf2.js";
|
|
11
11
|
import { c as m } from "./arrays-CN1djC4k.js";
|
|
12
12
|
import { t as te } from "./objects-CzUgoMIF.js";
|
|
13
|
-
import { t as h } from "./useAsyncData-
|
|
14
|
-
import { a as ne, i as re, n as ie, t as g } from "./formats-
|
|
13
|
+
import { t as h } from "./useAsyncData-CH6-CgJF.js";
|
|
14
|
+
import { a as ne, i as re, n as ie, t as g } from "./formats-CJMVUfb3.js";
|
|
15
15
|
import { A as ae, n as oe } from "./vega-loader.browser-DEggZzni.js";
|
|
16
16
|
import { t as se } from "./react-vega-DSD5aT7_.js";
|
|
17
17
|
import { a as ce, n as _ } from "./loader-VZ__bv4g.js";
|
|
18
|
-
import { t as le } from "./useDeepCompareMemoize-
|
|
18
|
+
import { t as le } from "./useDeepCompareMemoize-JC87C_jO.js";
|
|
19
19
|
import { t as ue } from "./semaphore-89jsoHtS.js";
|
|
20
20
|
import { t as de } from "./use-vega-container-remeasure-DUW4tRxq.js";
|
|
21
21
|
//#region src/plugins/impl/vega/fix-relative-url.ts
|
package/package.json
CHANGED
|
@@ -5,8 +5,8 @@ import BedrockIcon from "@marimo-team/llm-info/icons/aws.svg?inline";
|
|
|
5
5
|
import AzureIcon from "@marimo-team/llm-info/icons/azure.svg?inline";
|
|
6
6
|
import CursorIcon from "@marimo-team/llm-info/icons/cursor.svg?inline";
|
|
7
7
|
import DeepseekIcon from "@marimo-team/llm-info/icons/deepseek.svg?inline";
|
|
8
|
-
import GitHubIcon from "@marimo-team/llm-info/icons/github.svg?inline";
|
|
9
8
|
import GeminiIcon from "@marimo-team/llm-info/icons/googlegemini.svg?inline";
|
|
9
|
+
import GitHubIcon from "@marimo-team/llm-info/icons/github.svg?inline";
|
|
10
10
|
import OllamaIcon from "@marimo-team/llm-info/icons/ollama.svg?inline";
|
|
11
11
|
import OpenAIIcon from "@marimo-team/llm-info/icons/openai.svg?inline";
|
|
12
12
|
import OpencodeIcon from "@marimo-team/llm-info/icons/opencode-logo-light.svg?inline";
|
|
@@ -21,6 +21,7 @@ import type { ExternalAgentId } from "../chat/acp/state";
|
|
|
21
21
|
|
|
22
22
|
const icons: Record<ProviderId | ExternalAgentId, string> = {
|
|
23
23
|
openai: OpenAIIcon,
|
|
24
|
+
github: GitHubIcon,
|
|
24
25
|
anthropic: AnthropicIcon,
|
|
25
26
|
claude: AnthropicIcon,
|
|
26
27
|
gemini: GeminiIcon,
|
|
@@ -30,7 +31,6 @@ const icons: Record<ProviderId | ExternalAgentId, string> = {
|
|
|
30
31
|
azure: AzureIcon,
|
|
31
32
|
bedrock: BedrockIcon,
|
|
32
33
|
deepseek: DeepseekIcon,
|
|
33
|
-
github: GitHubIcon,
|
|
34
34
|
openrouter: OpenRouterIcon,
|
|
35
35
|
wandb: WandbIcon,
|
|
36
36
|
"opencode-go": OpencodeIcon,
|
|
@@ -15,9 +15,9 @@ type CredentialChecker = (ai: AiConfig | undefined) => boolean;
|
|
|
15
15
|
*/
|
|
16
16
|
const CREDENTIAL_CHECKERS: Record<KnownProviderId, CredentialChecker> = {
|
|
17
17
|
openai: (ai) => Boolean(ai?.open_ai?.api_key),
|
|
18
|
+
github: (ai) => Boolean(ai?.github?.api_key),
|
|
18
19
|
anthropic: (ai) => Boolean(ai?.anthropic?.api_key),
|
|
19
20
|
google: (ai) => Boolean(ai?.google?.api_key),
|
|
20
|
-
github: (ai) => Boolean(ai?.github?.api_key),
|
|
21
21
|
openrouter: (ai) => Boolean(ai?.openrouter?.api_key),
|
|
22
22
|
azure: (ai) => Boolean(ai?.azure?.api_key && ai?.azure?.base_url),
|
|
23
23
|
wandb: (ai) => Boolean(ai?.wandb?.api_key),
|
|
@@ -65,7 +65,6 @@ import {
|
|
|
65
65
|
AccordionItem,
|
|
66
66
|
AccordionTrigger,
|
|
67
67
|
} from "../ui/accordion";
|
|
68
|
-
import { Alert, AlertDescription } from "../ui/alert";
|
|
69
68
|
import { Button } from "../ui/button";
|
|
70
69
|
import { Checkbox } from "../ui/checkbox";
|
|
71
70
|
import { DropdownMenuSeparator } from "../ui/dropdown-menu";
|
|
@@ -969,6 +968,39 @@ export const AiProvidersConfig: React.FC<AiConfigProps> = ({
|
|
|
969
968
|
/>
|
|
970
969
|
</AccordionFormItem>
|
|
971
970
|
|
|
971
|
+
<AccordionFormItem
|
|
972
|
+
title="GitHub Copilot"
|
|
973
|
+
provider="github"
|
|
974
|
+
isConfigured={hasValue("ai.github.api_key")}
|
|
975
|
+
>
|
|
976
|
+
<ApiKey
|
|
977
|
+
form={form}
|
|
978
|
+
config={config}
|
|
979
|
+
name="ai.github.api_key"
|
|
980
|
+
placeholder="gho_..."
|
|
981
|
+
testId="ai-github-copilot-api-key-input"
|
|
982
|
+
description={
|
|
983
|
+
<>
|
|
984
|
+
Your GitHub OAuth token. Run{" "}
|
|
985
|
+
<Kbd className="inline">gh auth token</Kbd> after you sign in
|
|
986
|
+
with the GitHub CLI. A GitHub Copilot subscription is required.
|
|
987
|
+
See the{" "}
|
|
988
|
+
<ExternalLink href="https://pydantic.dev/docs/ai/models/github-copilot/">
|
|
989
|
+
authentication guide
|
|
990
|
+
</ExternalLink>
|
|
991
|
+
.
|
|
992
|
+
</>
|
|
993
|
+
}
|
|
994
|
+
/>
|
|
995
|
+
<BaseUrl
|
|
996
|
+
form={form}
|
|
997
|
+
config={config}
|
|
998
|
+
name="ai.github.base_url"
|
|
999
|
+
placeholder="https://api.githubcopilot.com"
|
|
1000
|
+
testId="ai-github-copilot-base-url-input"
|
|
1001
|
+
/>
|
|
1002
|
+
</AccordionFormItem>
|
|
1003
|
+
|
|
972
1004
|
<AccordionFormItem
|
|
973
1005
|
title="Anthropic"
|
|
974
1006
|
provider="anthropic"
|
|
@@ -1029,42 +1061,6 @@ export const AiProvidersConfig: React.FC<AiConfigProps> = ({
|
|
|
1029
1061
|
/>
|
|
1030
1062
|
</AccordionFormItem>
|
|
1031
1063
|
|
|
1032
|
-
<AccordionFormItem
|
|
1033
|
-
title="GitHub"
|
|
1034
|
-
provider="github"
|
|
1035
|
-
isConfigured={hasValue("ai.github.api_key")}
|
|
1036
|
-
>
|
|
1037
|
-
<Alert variant="warning" className="py-1.5 px-3 text-xs">
|
|
1038
|
-
<AlertDescription>
|
|
1039
|
-
Free tier models have low token limits which can cause errors with
|
|
1040
|
-
larger prompts.{" "}
|
|
1041
|
-
<ExternalLink href="https://docs.github.com/en/github-models/prototyping-with-ai-models#rate-limits">
|
|
1042
|
-
Learn more
|
|
1043
|
-
</ExternalLink>
|
|
1044
|
-
</AlertDescription>
|
|
1045
|
-
</Alert>
|
|
1046
|
-
<ApiKey
|
|
1047
|
-
form={form}
|
|
1048
|
-
config={config}
|
|
1049
|
-
name="ai.github.api_key"
|
|
1050
|
-
placeholder="gho_..."
|
|
1051
|
-
testId="ai-github-api-key-input"
|
|
1052
|
-
description={
|
|
1053
|
-
<>
|
|
1054
|
-
Your GitHub API token from{" "}
|
|
1055
|
-
<Kbd className="inline">gh auth token</Kbd>.
|
|
1056
|
-
</>
|
|
1057
|
-
}
|
|
1058
|
-
/>
|
|
1059
|
-
<BaseUrl
|
|
1060
|
-
form={form}
|
|
1061
|
-
config={config}
|
|
1062
|
-
name="ai.github.base_url"
|
|
1063
|
-
placeholder="https://models.github.ai/inference"
|
|
1064
|
-
testId="ai-github-base-url-input"
|
|
1065
|
-
/>
|
|
1066
|
-
</AccordionFormItem>
|
|
1067
|
-
|
|
1068
1064
|
<AccordionFormItem
|
|
1069
1065
|
title="OpenRouter"
|
|
1070
1066
|
provider="openrouter"
|
|
@@ -1304,7 +1304,7 @@ export const UserConfigForm: React.FC = () => {
|
|
|
1304
1304
|
<IsOverridden override={override} />
|
|
1305
1305
|
<FormDescription>
|
|
1306
1306
|
Enable experimental external agents such as Claude Code and
|
|
1307
|
-
|
|
1307
|
+
Codex. Learn more in the{" "}
|
|
1308
1308
|
<ExternalLink href="https://docs.marimo.io/guides/editor_features/agents/">
|
|
1309
1309
|
docs
|
|
1310
1310
|
</ExternalLink>
|
|
@@ -71,11 +71,7 @@ export function renderTableHeader<TData>(
|
|
|
71
71
|
{renderHeaderGroup(table.getCenterHeaderGroups())}
|
|
72
72
|
{renderHeaderGroup(table.getRightHeaderGroups())}
|
|
73
73
|
{table.getAllColumns().length <= AUTO_WIDTH_MAX_COLUMNS && (
|
|
74
|
-
<th
|
|
75
|
-
className="w-full border-0"
|
|
76
|
-
aria-hidden="true"
|
|
77
|
-
role="presentation"
|
|
78
|
-
/>
|
|
74
|
+
<th className="w-full border-0" aria-hidden="true" />
|
|
79
75
|
)}
|
|
80
76
|
</TableRow>
|
|
81
77
|
</TableHeader>
|
|
@@ -217,7 +213,7 @@ export const DataTableBody = <TData,>({
|
|
|
217
213
|
{renderCells(row.getCenterVisibleCells())}
|
|
218
214
|
{renderCells(row.getRightVisibleCells())}
|
|
219
215
|
{columns.length <= AUTO_WIDTH_MAX_COLUMNS && (
|
|
220
|
-
<td className="border-0" aria-hidden="true"
|
|
216
|
+
<td className="border-0" aria-hidden="true" />
|
|
221
217
|
)}
|
|
222
218
|
</TableRow>
|
|
223
219
|
);
|