@marimo-team/islands 0.19.3-dev8 → 0.19.4-dev0

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.
Files changed (74) hide show
  1. package/dist/{Combination-33P1MEPK.js → Combination-BOmAhdTT.js} +1 -1
  2. package/dist/{ConnectedDataExplorerComponent-BIfUtj_S.js → ConnectedDataExplorerComponent-D5KcOOzu.js} +7 -7
  3. package/dist/{any-language-editor-Bda9cY1_.js → any-language-editor-vYraVrwE.js} +3 -3
  4. package/dist/assets/__vite-browser-external-CgHmDpAZ.js +1 -0
  5. package/dist/assets/{worker-njnjDMwL.js → worker-BR7KVExK.js} +2 -2
  6. package/dist/{button-BlF-78eJ.js → button-D6ZIdUA3.js} +1 -1
  7. package/dist/{check-DDykH_Yi.js → check-S8ldILuD.js} +1 -1
  8. package/dist/{copy-B5nooU3m.js → copy-ACOJ1BXr.js} +1 -1
  9. package/dist/{error-banner-UH0Nxilf.js → error-banner-BhqH4mGj.js} +2 -2
  10. package/dist/{esm-D197NGQX.js → esm-DOBJQbuy.js} +4 -4
  11. package/dist/{glide-data-editor-Bv8bVIJ9.js → glide-data-editor-DsVDCmV2.js} +6 -6
  12. package/dist/{label-oKuiQuiM.js → label-BaX2bLJa.js} +4 -4
  13. package/dist/main.js +453 -459
  14. package/dist/{mermaid-JA6veDHv.js → mermaid-DZjjc-kI.js} +2 -2
  15. package/dist/{slides-component-CJJp5XN4.js → slides-component-BHWhzwDN.js} +1 -1
  16. package/dist/{spec-hsYzGr6F.js → spec-B1PGDiGh.js} +4 -4
  17. package/dist/style.css +1 -1
  18. package/dist/{types-DEmfj_i8.js → types-CbQF8CBX.js} +294 -255
  19. package/dist/{useAsyncData-BGpae_uu.js → useAsyncData-TLXJC7yx.js} +1 -1
  20. package/dist/{useDeepCompareMemoize-1wVjsLov.js → useDeepCompareMemoize-DVnEG7jx.js} +3 -3
  21. package/dist/{useTheme-DdLjooMf.js → useTheme-BllQjRdW.js} +1 -0
  22. package/dist/{vega-component-BGTsperM.js → vega-component-B2QrGnW8.js} +6 -6
  23. package/package.json +5 -5
  24. package/src/__mocks__/requests.ts +1 -0
  25. package/src/__tests__/mount.test.ts +128 -0
  26. package/src/components/app-config/__tests__/get-dirty-values.test.ts +1 -1
  27. package/src/components/app-config/ai-config.tsx +328 -28
  28. package/src/components/app-config/user-config-form.tsx +10 -3
  29. package/src/components/chat/acp/agent-panel.tsx +56 -43
  30. package/src/components/chat/chat-utils.ts +0 -19
  31. package/src/components/data-table/column-header.tsx +1 -1
  32. package/src/components/editor/KernelStartupErrorModal.tsx +2 -2
  33. package/src/components/editor/actions/name-cell-input.tsx +10 -4
  34. package/src/components/editor/ai/completion-handlers.tsx +1 -1
  35. package/src/components/editor/alerts/connecting-alert.tsx +33 -6
  36. package/src/components/editor/chrome/types.ts +2 -4
  37. package/src/components/editor/chrome/wrapper/app-chrome.tsx +55 -58
  38. package/src/components/editor/chrome/wrapper/footer-items/runtime-settings.tsx +150 -96
  39. package/src/components/editor/renderers/vertical-layout/__tests__/useFocusFirstEditor.test.ts +27 -0
  40. package/src/components/editor/renderers/vertical-layout/useFocusFirstEditor.ts +6 -0
  41. package/src/components/utils/lazy-mount.tsx +29 -8
  42. package/src/core/ai/ids/ids.ts +12 -4
  43. package/src/core/cells/cells.ts +2 -0
  44. package/src/core/cells/scrollCellIntoView.ts +3 -2
  45. package/src/core/codemirror/cm.ts +2 -0
  46. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +123 -0
  47. package/src/core/codemirror/lsp/notebook-lsp.ts +44 -4
  48. package/src/core/codemirror/misc/__tests__/string-braces.test.ts +200 -0
  49. package/src/core/codemirror/misc/string-braces.ts +37 -0
  50. package/src/core/config/__tests__/config-schema.test.ts +36 -0
  51. package/src/core/config/config-schema.ts +1 -0
  52. package/src/core/export/__tests__/hooks.test.ts +504 -0
  53. package/src/core/export/hooks.ts +93 -4
  54. package/src/core/islands/bridge.ts +1 -0
  55. package/src/core/kernel/__tests__/handlers.test.ts +2 -2
  56. package/src/core/kernel/state.ts +1 -0
  57. package/src/core/network/__tests__/requests-lazy.test.ts +1 -1
  58. package/src/core/network/__tests__/requests-network.test.ts +0 -18
  59. package/src/core/network/requests-lazy.ts +3 -2
  60. package/src/core/network/requests-network.ts +10 -7
  61. package/src/core/network/requests-static.ts +1 -0
  62. package/src/core/network/requests-toasting.tsx +1 -0
  63. package/src/core/network/types.ts +2 -0
  64. package/src/core/wasm/bridge.ts +1 -0
  65. package/src/css/globals.css +2 -0
  66. package/src/hooks/__tests__/useInterval.test.tsx +104 -0
  67. package/src/hooks/useInterval.ts +32 -6
  68. package/src/mount.tsx +6 -0
  69. package/src/plugins/impl/chat/ChatPlugin.tsx +2 -4
  70. package/src/plugins/impl/chat/chat-ui.tsx +62 -191
  71. package/src/plugins/impl/chat/types.ts +5 -12
  72. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +3 -1
  73. package/src/utils/events.ts +1 -0
  74. package/dist/assets/__vite-browser-external-CpAWmIPM.js +0 -1
package/dist/main.js CHANGED
@@ -4,23 +4,23 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
4
4
  import { a as __toCommonJS, n as __esmMin, o as __toDynamicImportESM, r as __export$1, s as __toESM, t as __commonJSMin } from "./chunk-BNovOVIE.js";
5
5
  import { t as require_react } from "./react-DdA8EBol.js";
6
6
  import { t as require_compiler_runtime } from "./compiler-runtime-DHFVbq0b.js";
7
- import { n as Copy, r as toast, t as copyToClipboard } from "./copy-B5nooU3m.js";
7
+ import { n as Copy, r as toast, t as copyToClipboard } from "./copy-ACOJ1BXr.js";
8
8
  import { h as require_cjs$1, i as Go$1, __tla as __tla_0 } from "./chunk-OGVTOU66-RMy3tlM6.js";
9
- import { C as useLayoutEffect2, D as dispatchDiscreteCustomEvent, E as Primitive$1, M as composeEventHandlers, N as createLucideIcon, O as createSlot, S as useId$12, T as useCallbackRef, _ as Arrow, a as __awaiter, b as createPopperScope, c as withSmartCollisionBoundary, d as Root$5, g as Anchor, h as Portal, i as useFocusGuards, j as createContextScope$1, l as isInVscodeExtension, m as Presence, n as hideOthers, o as MAX_HEIGHT_OFFSET, p as useControllableState, r as FocusScope, s as withFullScreenAsRoot, t as Combination_default, u as StyleNamespace, v as Content$3, w as DismissableLayer, x as useSize, y as Root2$6 } from "./Combination-33P1MEPK.js";
10
- import { A as Badge, B as ListFilter, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, F as $5a387cc49350e6db$export$722debc0e56fea39, H as ChartPie, I as Type, L as ToggleLeft, M as startCase_default, N as $896ba0a80a8f4d36$export$85fd5fdf27bacc79, O as TIME_UNIT_DESCRIPTIONS, P as $fb18d541ea1ad717$export$ad991b66133851cf, R as Table$1, S as DEFAULT_AGGREGATION, T as DEFAULT_TIME_UNIT, U as ChartColumn, V as Hash, W as Calendar, _ 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 createReducerAndAtoms, 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, z as SquareFunction } from "./spec-hsYzGr6F.js";
11
- import { t as Check } from "./check-DDykH_Yi.js";
12
- import { A as logNever, B as ChevronDown, C as useDirection, D as useOnUnmount, E as useOnMount, F as $18f2051aff69b9bf$export$a54013f0d02a8f82, I as $b5e257d569688ac6$export$535bd6ca7f90a273, M as $a916eb452884faea$export$b7a616150fdb9f44, O as usePrevious, P as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, R as X, S as Trigger$5, T as clamp$2, _ as menuItemVariants, a as SelectGroup, b as menuSubTriggerVariants, c as SelectSeparator, d as NativeSelect, f as selectStyles, g as menuControlVariants, h as menuControlCheckVariants, i as SelectContent, k as assertNever, l as SelectTrigger, m as menuContentCommon, n as Primitive, o as SelectItem, p as MENU_ITEM_DISABLED, r as Select, s as SelectLabel, t as Label, u as SelectValue, v as menuLabelVariants, w as createCollection, x as Icon, y as menuSeparatorVariants } from "./label-oKuiQuiM.js";
13
- import { $ as $514c0188e459b4c0$export$9afb8bc826b033ea, $t as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, A as ItemIndicator, At as $6db58dc88e78b024$export$2f817fcdc4b89ae0, B as createMenuScope, Bt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, C as DropdownMenuTrigger, Ct as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, D as Content2$3, Dt as $6c7bd7858deea686$export$cd11ab140839f11d, E as CheckboxItem, Et as $701a24aa0da5b062$export$ea18c227d4417cc3, F as Root3, Ft as $507fabe10e71c6fb$export$630ff653c5ada6a9, G as $3985021b0ad6602f$export$37fb8590cf2c088c, Gt as $df56164dff5785e2$export$4338b53315abf666, H as Root$6, Ht as $b4b717babfbb907b$export$bebd5a1431fec25d, I as Separator, It as $f6c31cce2adf654f$export$45712eceda6fad21, J as $a049562f99e7db0e$export$f9c6924e160136d1, Jt as $c87311424ea30a05$export$78551043582a6a98, K as $3985021b0ad6602f$export$f5b8910cec6cf069, Kt as $313b98861ee5dd6c$export$d6875122194c7b44, L as Sub, Lt as _class_private_field_init, M as Portal$2, Mt as $6179b936705e76d3$export$ae780daf29e6d456, N as RadioGroup$2, Nt as $9ab94262bd0047c7$export$420e68273165f4ec, O as Group$1, Ot as $fca6afa0e843324b$export$87b761675e8eaa10, P as RadioItem, Pt as $3ad3f6e1647bc98d$export$80f3e147d781571c, Q as $514c0188e459b4c0$export$5f1af8db9871e1d6, Qt as $7215afc6de606d6b$export$de79e2c695e052f3, R as SubContent, Rt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, S as DropdownMenuSubTrigger, St as $e5be200c675c3b3a$export$dad6ae84456c676a, T as Arrow2, Tt as $f7dceffc5ad7768b$export$4e328f61c538687f, U as createRovingFocusGroupScope, Ut as $99facab73266f662$export$5add1d006293d136, V as Item$2, Vt as $b4b717babfbb907b$export$4c063cf1350e6fed, W as ErrorBoundary, Wt as $e9faafb641e167db$export$90fc3a17d93f704c, X as $ee014567cb39d3f0$export$f551688fc98f2e09, Xt as $c87311424ea30a05$export$a11b0059900ceec8, Y as $d3e0e05bdfcf66bd$export$c24727297075ec6a, Yt as $c87311424ea30a05$export$9ac100e40613ea10, Z as $ee014567cb39d3f0$export$ff05c3ac10437e03, Zt as $c87311424ea30a05$export$fedb369cb70207f1, _ as DropdownMenuLabel, _n as ChevronRight, _t as $2baaea4c71418dea$export$294aa081a6c6f55d, a as OnBlurredInput, an as $431fbd86ca7dc216$export$b204af158042fbac, at as $64fa3d84918910a7$export$2881499e37b75b9a, b as DropdownMenuSub, bt as $e5be200c675c3b3a$export$a763b9476acd3eb, c as NumberField, cn as $bdb11010cef70236$export$b4cc09c592e8fdb8, ct as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, d as prettyNumber, dn as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, dt as $64fa3d84918910a7$export$ef03459518577ad4, en as $3ef42575df84b30b$export$9d1611c77c2fe928, et as $d2b4bc8c273e7be6$export$24d547caef80ccd1, f as prettyScientificNumber, fn as Trash, ft as $64fa3d84918910a7$export$fabf2dc03a41866e, g as DropdownMenuItem, gn as Circle, gt as $d2e8511e6f209edf$export$e908e06f4b8e3402, h as DropdownMenuGroup, hn as Pencil, ht as capitalize_default, i as Input, in as $f4e2df6bd15f8569$export$98658e8c59125e6a, it as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, j as Label$2, jt as $5b160d28a433310d$export$c17fa47878dc55b6, k as Item2$2, kt as $fca6afa0e843324b$export$f12b703ca79dfbb1, l as maxFractionalDigits, ln as $bdb11010cef70236$export$f680877a34711e37, lt as $64fa3d84918910a7$export$c245e6201fed2f75, m as DropdownMenuContent, mn as Plus, mt as marked, n as DebouncedInput, nn as $d4ee10de306f2510$export$cd4e5573fbe2b576, nt as $01b77f81d0f07f68$export$75b6ee27786ba447, o as useDebounceControlledState, on as $431fbd86ca7dc216$export$f21a1ffae260145a, ot as $64fa3d84918910a7$export$29f1550f4b0d4415, p as DropdownMenu, pn as Search, pt as useNonce, q as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, qt as $c87311424ea30a05$export$6446a186d09e379e, r as DebouncedNumberInput, rn as $d4ee10de306f2510$export$e58f029f0fbfdb29, rt as $01b77f81d0f07f68$export$b04be29aa201d4f5, s as useDebouncedCallback, sn as $ff5963eb1fccf552$export$e08e3b67e392101e, st as $64fa3d84918910a7$export$4d86445c2cf5e3, t as BulkEdit, tn as $d4ee10de306f2510$export$4282f70798064fe0, tt as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, u as prettyEngineeringNumber, un as $8ae05eaa5c114e9c$export$7f54fc3180508a52, ut as $64fa3d84918910a7$export$c62b8e45d58ddad9, v as DropdownMenuPortal, vt as $e93e671b31057976$export$b8473d3665f3a75a, w as Anchor2, wt as $319e236875307eab$export$a9b970dcc4ae71a9, x as DropdownMenuSubContent, xt as $e5be200c675c3b3a$export$aca958c65c314e6c, y as DropdownMenuSeparator, yt as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, z as SubTrigger, zt as $9446cca9a3875146$export$7d15b64cf5a3a4c4 } from "./types-DEmfj_i8.js";
14
- import { S as CircleQuestionMark, _ as isUrl, a as AlertTitle, b as Deferred, c as constructFrom, d as millisecondsInMinute, f as millisecondsInSecond, g as appendQueryParams, h as getRuntimeManager, i as AlertDescription, l as millisecondsInDay, m as asRemoteURL, n as arrow, o as isValid$1, p as millisecondsInWeek, r as Alert, s as toDate, t as useDeepCompareMemoize, u as millisecondsInHour, v as require_cuid2, x as isWasm, y as waitForConnectionOpen } from "./useDeepCompareMemoize-1wVjsLov.js";
9
+ import { C as useLayoutEffect2, D as dispatchDiscreteCustomEvent, E as Primitive$1, M as composeEventHandlers, N as createLucideIcon, O as createSlot, S as useId$12, T as useCallbackRef, _ as Arrow, a as __awaiter, b as createPopperScope, c as withSmartCollisionBoundary, d as Root$5, g as Anchor, h as Portal, i as useFocusGuards, j as createContextScope$1, l as isInVscodeExtension, m as Presence, n as hideOthers, o as MAX_HEIGHT_OFFSET, p as useControllableState, r as FocusScope, s as withFullScreenAsRoot, t as Combination_default, u as StyleNamespace, v as Content$3, w as DismissableLayer, x as useSize, y as Root2$6 } from "./Combination-BOmAhdTT.js";
10
+ import { A as Badge, B as ListFilter, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, F as $5a387cc49350e6db$export$722debc0e56fea39, H as ChartPie, I as Type, L as ToggleLeft, M as startCase_default, N as $896ba0a80a8f4d36$export$85fd5fdf27bacc79, O as TIME_UNIT_DESCRIPTIONS, P as $fb18d541ea1ad717$export$ad991b66133851cf, R as Table$1, S as DEFAULT_AGGREGATION, T as DEFAULT_TIME_UNIT, U as ChartColumn, V as Hash, W as Calendar, _ 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 createReducerAndAtoms, 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, z as SquareFunction } from "./spec-B1PGDiGh.js";
11
+ import { t as Check } from "./check-S8ldILuD.js";
12
+ import { A as logNever, B as ChevronDown, C as useDirection, D as useOnUnmount, E as useOnMount, F as $18f2051aff69b9bf$export$a54013f0d02a8f82, I as $b5e257d569688ac6$export$535bd6ca7f90a273, M as $a916eb452884faea$export$b7a616150fdb9f44, O as usePrevious, P as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, R as X, S as Trigger$5, T as clamp$2, _ as menuItemVariants, a as SelectGroup, b as menuSubTriggerVariants, c as SelectSeparator, d as NativeSelect, f as selectStyles, g as menuControlVariants, h as menuControlCheckVariants, i as SelectContent, k as assertNever, l as SelectTrigger, m as menuContentCommon, n as Primitive, o as SelectItem, p as MENU_ITEM_DISABLED, r as Select, s as SelectLabel, t as Label, u as SelectValue, v as menuLabelVariants, w as createCollection, x as Icon, y as menuSeparatorVariants } from "./label-BaX2bLJa.js";
13
+ import { $ as $514c0188e459b4c0$export$9afb8bc826b033ea, $t as $7215afc6de606d6b$export$de79e2c695e052f3, A as ItemIndicator, At as $6db58dc88e78b024$export$2f817fcdc4b89ae0, B as createMenuScope, Bt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, C as DropdownMenuTrigger, Ct as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, D as Content2$3, Dt as $6c7bd7858deea686$export$cd11ab140839f11d, E as CheckboxItem, Et as $701a24aa0da5b062$export$ea18c227d4417cc3, F as Root3, Ft as $507fabe10e71c6fb$export$630ff653c5ada6a9, G as $3985021b0ad6602f$export$37fb8590cf2c088c, Gt as $8ae05eaa5c114e9c$export$7f54fc3180508a52, H as Root$6, Ht as $b4b717babfbb907b$export$bebd5a1431fec25d, I as Separator, It as $f6c31cce2adf654f$export$45712eceda6fad21, J as $a049562f99e7db0e$export$f9c6924e160136d1, Jt as $c87311424ea30a05$export$6446a186d09e379e, K as $3985021b0ad6602f$export$f5b8910cec6cf069, Kt as $df56164dff5785e2$export$4338b53315abf666, L as Sub, Lt as _class_private_field_init, M as Portal$2, Mt as $6179b936705e76d3$export$ae780daf29e6d456, N as RadioGroup$2, Nt as $9ab94262bd0047c7$export$420e68273165f4ec, O as Group$1, Ot as $fca6afa0e843324b$export$87b761675e8eaa10, P as RadioItem, Pt as $3ad3f6e1647bc98d$export$80f3e147d781571c, Q as $514c0188e459b4c0$export$5f1af8db9871e1d6, Qt as $c87311424ea30a05$export$fedb369cb70207f1, R as SubContent, Rt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, S as DropdownMenuSubTrigger, St as $e5be200c675c3b3a$export$dad6ae84456c676a, T as Arrow2, Tt as $f7dceffc5ad7768b$export$4e328f61c538687f, U as createRovingFocusGroupScope, Ut as $99facab73266f662$export$5add1d006293d136, V as Item$2, Vt as $b4b717babfbb907b$export$4c063cf1350e6fed, W as ErrorBoundary, Wt as $e9faafb641e167db$export$90fc3a17d93f704c, X as $ee014567cb39d3f0$export$f551688fc98f2e09, Xt as $c87311424ea30a05$export$9ac100e40613ea10, Y as $d3e0e05bdfcf66bd$export$c24727297075ec6a, Yt as $c87311424ea30a05$export$78551043582a6a98, Z as $ee014567cb39d3f0$export$ff05c3ac10437e03, Zt as $c87311424ea30a05$export$a11b0059900ceec8, _ as DropdownMenuLabel, _n as ChevronRight, _t as $2baaea4c71418dea$export$294aa081a6c6f55d, a as OnBlurredInput, an as $f4e2df6bd15f8569$export$98658e8c59125e6a, at as $64fa3d84918910a7$export$2881499e37b75b9a, b as DropdownMenuSub, bt as $e5be200c675c3b3a$export$a763b9476acd3eb, c as NumberField, cn as $ff5963eb1fccf552$export$e08e3b67e392101e, ct as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, d as prettyNumber, dn as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, dt as $64fa3d84918910a7$export$ef03459518577ad4, en as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, et as $d2b4bc8c273e7be6$export$24d547caef80ccd1, f as prettyScientificNumber, fn as Trash, ft as $64fa3d84918910a7$export$fabf2dc03a41866e, g as DropdownMenuItem, gn as Circle, gt as $d2e8511e6f209edf$export$e908e06f4b8e3402, h as DropdownMenuGroup, hn as Pencil, ht as capitalize_default, i as Input, in as $d4ee10de306f2510$export$e58f029f0fbfdb29, it as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, j as Label$2, jt as $5b160d28a433310d$export$c17fa47878dc55b6, k as Item2$2, kt as $fca6afa0e843324b$export$f12b703ca79dfbb1, l as maxFractionalDigits, ln as $bdb11010cef70236$export$b4cc09c592e8fdb8, lt as $64fa3d84918910a7$export$c245e6201fed2f75, m as DropdownMenuContent, mn as Plus, mt as marked, n as DebouncedInput, nn as $d4ee10de306f2510$export$4282f70798064fe0, nt as $01b77f81d0f07f68$export$75b6ee27786ba447, o as useDebounceControlledState, on as $431fbd86ca7dc216$export$b204af158042fbac, ot as $64fa3d84918910a7$export$29f1550f4b0d4415, p as DropdownMenu, pn as Search, pt as useNonce, q as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, qt as $313b98861ee5dd6c$export$d6875122194c7b44, r as DebouncedNumberInput, rn as $d4ee10de306f2510$export$cd4e5573fbe2b576, rt as $01b77f81d0f07f68$export$b04be29aa201d4f5, s as useDebouncedCallback, sn as $431fbd86ca7dc216$export$f21a1ffae260145a, st as $64fa3d84918910a7$export$4d86445c2cf5e3, t as BulkEdit, tn as $3ef42575df84b30b$export$9d1611c77c2fe928, tt as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, u as prettyEngineeringNumber, un as $bdb11010cef70236$export$f680877a34711e37, ut as $64fa3d84918910a7$export$c62b8e45d58ddad9, v as DropdownMenuPortal, vt as $e93e671b31057976$export$b8473d3665f3a75a, w as Anchor2, wt as $319e236875307eab$export$a9b970dcc4ae71a9, x as DropdownMenuSubContent, xt as $e5be200c675c3b3a$export$aca958c65c314e6c, y as DropdownMenuSeparator, yt as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, z as SubTrigger, zt as $9446cca9a3875146$export$7d15b64cf5a3a4c4 } from "./types-CbQF8CBX.js";
14
+ import { S as CircleQuestionMark, _ as isUrl, a as AlertTitle, b as Deferred, c as constructFrom, d as millisecondsInMinute, f as millisecondsInSecond, g as appendQueryParams, h as getRuntimeManager, i as AlertDescription, l as millisecondsInDay, m as asRemoteURL, n as arrow, o as isValid$1, p as millisecondsInWeek, r as Alert, s as toDate, t as useDeepCompareMemoize, u as millisecondsInHour, v as require_cuid2, x as isWasm, y as waitForConnectionOpen } from "./useDeepCompareMemoize-DVnEG7jx.js";
15
15
  import { n as clsx_default } from "./clsx-D2KVTYnW.js";
16
- import { a as cva, c as useComposedRefs, l as Events, n as buttonVariants, o as useEventListener, r as Slot$1, s as composeRefs, t as Button, u as cn } from "./button-BlF-78eJ.js";
16
+ import { a as cva, c as useComposedRefs, l as Events, n as buttonVariants, o as useEventListener, r as Slot$1, s as composeRefs, t as Button, u as cn } from "./button-D6ZIdUA3.js";
17
17
  import { c as Functions, i as parseShortcut, l as throwNotImplemented, o as Objects, r as isPlatformMac, s as Logger, t as NOT_SET } from "./hotkeys-C4e3s3sJ.js";
18
18
  import { t as require_jsx_runtime } from "./jsx-runtime-CTBg5pdT.js";
19
19
  import { t as require_react_dom } from "./react-dom-DJW8xUDg.js";
20
- import { a as Portal$3, c as prettyError, d as TooltipPortal, f as TooltipProvider, h as TooltipProvider$1, i as Overlay, l as Tooltip, m as TooltipTrigger, n as ErrorBanner, o as Root$7, p as TooltipRoot, r as Content$4, s as CellNotInitializedError, t as Banner, u as TooltipContent } from "./error-banner-UH0Nxilf.js";
21
- import { a as _extends$5, c as setDiagnostics, d as CopyClipboardIcon, i as minimalSetup, l as historyField, o as forEachDiagnostic, r as esm_default, s as linter, t as langs, u as insertTab } from "./esm-D197NGQX.js";
20
+ import { a as Portal$3, c as prettyError, d as TooltipPortal, f as TooltipProvider, h as TooltipProvider$1, i as Overlay, l as Tooltip, m as TooltipTrigger, n as ErrorBanner, o as Root$7, p as TooltipRoot, r as Content$4, s as CellNotInitializedError, t as Banner, u as TooltipContent } from "./error-banner-BhqH4mGj.js";
21
+ import { a as _extends$5, c as setDiagnostics, d as CopyClipboardIcon, i as minimalSetup, l as historyField, o as forEachDiagnostic, r as esm_default, s as linter, t as langs, u as insertTab } from "./esm-DOBJQbuy.js";
22
22
  import { t as purify } from "./purify.es-Brw-U87Q.js";
23
- import { C as buildStore, _ as useAtom, a as getResolvedMarimoConfig, b as useStore, c as AppConfigSchema, d as useJotaiEffect, g as Provider, h as useEvent_default, i as autoInstantiateAtom, l as createDeepEqualAtom, m as isEqual_default, n as useTheme, o as localeAtom, p as isIslands, r as aiEnabledAtom, s as useResolvedMarimoConfig, t as resolvedThemeAtom, u as store, v as useAtomValue, w as getBuildingBlocks, x as atom, y as useSetAtom } from "./useTheme-DdLjooMf.js";
23
+ import { C as buildStore, _ as useAtom, a as getResolvedMarimoConfig, b as useStore, c as AppConfigSchema, d as useJotaiEffect, g as Provider, h as useEvent_default, i as autoInstantiateAtom, l as createDeepEqualAtom, m as isEqual_default, n as useTheme, o as localeAtom, p as isIslands, r as aiEnabledAtom, s as useResolvedMarimoConfig, t as resolvedThemeAtom, u as store, v as useAtomValue, w as getBuildingBlocks, x as atom, y as useSetAtom } from "./useTheme-BllQjRdW.js";
24
24
  import { $ as ViewPlugin, At as RangeSet, B as tags$1, Dt as Facet$1, E as getIndentUnit, Et as EditorState, Ft as Text$2, I as syntaxTree, It as Transaction, J as parseMixed, L as unfoldAll, Nt as StateEffect, Pt as StateField, Q as GutterMarker, S as foldInside, Tt as EditorSelection, Y as Decoration, Z as EditorView, _t as showPanel, b as foldAll, bt as Annotation, dt as keymap, et as WidgetType, f as StreamLanguage, kt as Prec, l as LanguageDescription, mt as placeholder, ot as gutter, u as LanguageSupport, ut as hoverTooltip, vt as showTooltip, w as foldNodeProp, wt as Compartment } from "./dist-D7jHtwN8.js";
25
25
  import { d as snippet, n as acceptCompletion, o as closeCompletion, r as autocompletion, u as insertCompletionText } from "./dist-g1p2PEVs.js";
26
26
  import { p as _baseTimes_default } from "./_baseFor-DSVmVciX.js";
@@ -47,7 +47,7 @@ import { n as stexMath } from "./stex-BIsgBmK4.js";
47
47
  import { n as memoize$1, t as isPropValid } from "./emotion-is-prop-valid.esm-_z-EwK5u.js";
48
48
  import { t as require_prop_types } from "./prop-types-DTzjue2h.js";
49
49
  import { n as formats } from "./vega-loader.browser-nTy1NZD3.js";
50
- import { t as useAsyncData } from "./useAsyncData-BGpae_uu.js";
50
+ import { t as useAsyncData } from "./useAsyncData-TLXJC7yx.js";
51
51
  import "./defaultLocale-DZtxSCkJ.js";
52
52
  import "./defaultLocale-DMZFeDB8.js";
53
53
  import "./katex-BTobf3T8.js";
@@ -5940,35 +5940,34 @@ let __tla = Promise.all([
5940
5940
  }
5941
5941
  var import_react = __toESM(require_react(), 1);
5942
5942
  function $4f58c5f72bcf79f7$export$496315a1608d9602(e, r) {
5943
- let c = (0, import_react.useRef)(true), d = (0, import_react.useRef)(null);
5943
+ let c = (0, import_react.useRef)(true), d = (0, import_react.useRef)(null), f = $8ae05eaa5c114e9c$export$7f54fc3180508a52(e);
5944
5944
  (0, import_react.useEffect)(() => (c.current = true, () => {
5945
5945
  c.current = false;
5946
5946
  }), []), (0, import_react.useEffect)(() => {
5947
- let f = d.current;
5948
- c.current ? c.current = false : (!f || r.some((e2, r2) => !Object.is(e2, f[r2]))) && e(), d.current = r;
5947
+ let e2 = d.current;
5948
+ c.current ? c.current = false : (!e2 || r.some((r2, c2) => !Object.is(r2, e2[c2]))) && f(), d.current = r;
5949
5949
  }, r);
5950
5950
  }
5951
5951
  function $9daab02d461809db$var$hasResizeObserver() {
5952
5952
  return window.ResizeObserver !== void 0;
5953
5953
  }
5954
5954
  function $9daab02d461809db$export$683480f191c0e3ea(e) {
5955
- let { ref: r, box: c, onResize: d } = e;
5955
+ let { ref: r, box: c, onResize: d } = e, f = $8ae05eaa5c114e9c$export$7f54fc3180508a52(d);
5956
5956
  (0, import_react.useEffect)(() => {
5957
5957
  let e2 = r == null ? void 0 : r.current;
5958
5958
  if (e2) if ($9daab02d461809db$var$hasResizeObserver()) {
5959
5959
  let r2 = new window.ResizeObserver((e3) => {
5960
- e3.length && d();
5960
+ e3.length && f();
5961
5961
  });
5962
5962
  return r2.observe(e2, {
5963
5963
  box: c
5964
5964
  }), () => {
5965
5965
  e2 && r2.unobserve(e2);
5966
5966
  };
5967
- } else return window.addEventListener("resize", d, false), () => {
5968
- window.removeEventListener("resize", d, false);
5967
+ } else return window.addEventListener("resize", f, false), () => {
5968
+ window.removeEventListener("resize", f, false);
5969
5969
  };
5970
5970
  }, [
5971
- d,
5972
5971
  r,
5973
5972
  c
5974
5973
  ]);
@@ -6028,11 +6027,8 @@ let __tla = Promise.all([
6028
6027
  };
6029
6028
  }
6030
6029
  function $2f04cbc44ee30ce0$export$53a0910f038337bd(e, r) {
6031
- let c = $2f04cbc44ee30ce0$var$relativeOffset(e, r, "left"), d = $2f04cbc44ee30ce0$var$relativeOffset(e, r, "top"), f = r.offsetWidth, h = r.offsetHeight, _ = e.scrollLeft, v = e.scrollTop, { borderTopWidth: y, borderLeftWidth: S, scrollPaddingTop: w, scrollPaddingRight: E, scrollPaddingBottom: O, scrollPaddingLeft: M } = getComputedStyle(e), { scrollMarginTop: I, scrollMarginRight: z, scrollMarginBottom: G, scrollMarginLeft: q } = getComputedStyle(r), LY = _ + parseInt(S, 10), RY = v + parseInt(y, 10), zY = LY + e.clientWidth, BY = RY + e.clientHeight, VY = parseInt(w, 10) || 0, HY = parseInt(O, 10) || 0, UY = parseInt(E, 10) || 0, WY = parseInt(M, 10) || 0, GY = parseInt(I, 10) || 0, KY = parseInt(G, 10) || 0, qY = parseInt(z, 10) || 0, JY = c - (parseInt(q, 10) || 0), YY = c + f + qY, XY = d - GY, ZY = d + h + KY, QY = _ + parseInt(S, 10) + WY, $Y = zY - UY, eX = v + parseInt(y, 10) + VY, tX = BY - HY;
6032
- (JY > QY || YY < $Y) && (JY <= _ + WY ? _ = JY - parseInt(S, 10) - WY : YY > zY - UY && (_ += YY - zY + UY)), (XY > eX || ZY < tX) && (XY <= RY + VY ? v = XY - parseInt(y, 10) - VY : ZY > BY - HY && (v += ZY - BY + HY)), e.scrollTo({
6033
- left: _,
6034
- top: v
6035
- });
6030
+ let c = $2f04cbc44ee30ce0$var$relativeOffset(e, r, "left"), d = $2f04cbc44ee30ce0$var$relativeOffset(e, r, "top"), f = r.offsetWidth, h = r.offsetHeight, _ = e.scrollLeft, v = e.scrollTop, { borderTopWidth: y, borderLeftWidth: S, scrollPaddingTop: w, scrollPaddingRight: E, scrollPaddingBottom: O, scrollPaddingLeft: M } = getComputedStyle(e), I = _ + parseInt(S, 10), z = v + parseInt(y, 10), G = I + e.clientWidth, q = z + e.clientHeight, LY = parseInt(w, 10) || 0, RY = parseInt(O, 10) || 0, zY = parseInt(E, 10) || 0, BY = parseInt(M, 10) || 0;
6031
+ c <= _ + BY ? _ = c - parseInt(S, 10) - BY : c + f > G - zY && (_ += c + f - G + zY), d <= z + LY ? v = d - parseInt(y, 10) - LY : d + h > q - RY && (v += d + h - q + RY), e.scrollLeft = _, e.scrollTop = v;
6036
6032
  }
6037
6033
  function $2f04cbc44ee30ce0$var$relativeOffset(e, r, c) {
6038
6034
  let d = c === "left" ? "offsetLeft" : "offsetTop", f = 0;
@@ -6047,15 +6043,19 @@ let __tla = Promise.all([
6047
6043
  }
6048
6044
  function $2f04cbc44ee30ce0$export$c826860796309d1b(e, r) {
6049
6045
  if (e && document.contains(e)) {
6050
- let _ = document.scrollingElement || document.documentElement;
6051
- if (window.getComputedStyle(_).overflow !== "hidden" && !$c87311424ea30a05$export$6446a186d09e379e()) {
6046
+ let _ = document.scrollingElement || document.documentElement, v = window.getComputedStyle(_).overflow === "hidden";
6047
+ if (v) {
6048
+ let r2 = $a40c673dc9f6d9c7$export$94ed1c92c7beeb22(e);
6049
+ v || r2.push(_);
6050
+ for (let c2 of r2) $2f04cbc44ee30ce0$export$53a0910f038337bd(c2, e);
6051
+ } else {
6052
6052
  var c;
6053
- let { left: _2, top: v } = e.getBoundingClientRect();
6053
+ let { left: _2, top: v2 } = e.getBoundingClientRect();
6054
6054
  e == null || (c = e.scrollIntoView) == null || c.call(e, {
6055
6055
  block: "nearest"
6056
6056
  });
6057
6057
  let { left: y, top: S } = e.getBoundingClientRect();
6058
- if (Math.abs(_2 - y) > 1 || Math.abs(v - S) > 1) {
6058
+ if (Math.abs(_2 - y) > 1 || Math.abs(v2 - S) > 1) {
6059
6059
  var d, f, h;
6060
6060
  r == null || (f = r.containingElement) == null || (d = f.scrollIntoView) == null || d.call(f, {
6061
6061
  block: "center",
@@ -6064,9 +6064,6 @@ let __tla = Promise.all([
6064
6064
  block: "nearest"
6065
6065
  });
6066
6066
  }
6067
- } else {
6068
- let r2 = $a40c673dc9f6d9c7$export$94ed1c92c7beeb22(e);
6069
- for (let c2 of r2) $2f04cbc44ee30ce0$export$53a0910f038337bd(c2, e);
6070
6067
  }
6071
6068
  }
6072
6069
  }
@@ -6156,9 +6153,7 @@ let __tla = Promise.all([
6156
6153
  }
6157
6154
  }, [
6158
6155
  r,
6159
- d,
6160
- _,
6161
- v
6156
+ d
6162
6157
  ]);
6163
6158
  }
6164
6159
  function $e0b6e0b68ec7f50f$var$isValidEvent(e, r) {
@@ -9070,21 +9065,21 @@ let __tla = Promise.all([
9070
9065
  }, $edcf132a9284368a$var$TOTAL_SIZE = {
9071
9066
  width: "totalWidth",
9072
9067
  height: "totalHeight"
9073
- }, $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE = {}, $edcf132a9284368a$var$visualViewport = typeof document < "u" ? window.visualViewport : null;
9074
- function $edcf132a9284368a$var$getContainerDimensions(e) {
9075
- let r = 0, c = 0, d = 0, f = 0, h = 0, _ = 0, v = {}, y = (($edcf132a9284368a$var$visualViewport == null ? void 0 : $edcf132a9284368a$var$visualViewport.scale) ?? 1) > 1;
9076
- if (e.tagName === "BODY") {
9077
- let y2 = document.documentElement;
9078
- d = y2.clientWidth, f = y2.clientHeight, r = ($edcf132a9284368a$var$visualViewport == null ? void 0 : $edcf132a9284368a$var$visualViewport.width) ?? d, c = ($edcf132a9284368a$var$visualViewport == null ? void 0 : $edcf132a9284368a$var$visualViewport.height) ?? f, v.top = y2.scrollTop || e.scrollTop, v.left = y2.scrollLeft || e.scrollLeft, $edcf132a9284368a$var$visualViewport && (h = $edcf132a9284368a$var$visualViewport.offsetTop, _ = $edcf132a9284368a$var$visualViewport.offsetLeft);
9079
- } else ({ width: r, height: c, top: h, left: _ } = $edcf132a9284368a$var$getOffset(e, false)), v.top = e.scrollTop, v.left = e.scrollLeft, d = r, f = c;
9080
- return $c87311424ea30a05$export$78551043582a6a98() && (e.tagName === "BODY" || e.tagName === "HTML") && y && (v.top = 0, v.left = 0, h = ($edcf132a9284368a$var$visualViewport == null ? void 0 : $edcf132a9284368a$var$visualViewport.pageTop) ?? 0, _ = ($edcf132a9284368a$var$visualViewport == null ? void 0 : $edcf132a9284368a$var$visualViewport.pageLeft) ?? 0), {
9081
- width: r,
9082
- height: c,
9083
- totalWidth: d,
9084
- totalHeight: f,
9085
- scroll: v,
9086
- top: h,
9087
- left: _
9068
+ }, $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE = {}, $edcf132a9284368a$var$getVisualViewport = () => typeof document < "u" ? window.visualViewport : null;
9069
+ function $edcf132a9284368a$var$getContainerDimensions(e, r) {
9070
+ let c = 0, d = 0, f = 0, h = 0, _ = 0, v = 0, y = {}, S = ((r == null ? void 0 : r.scale) ?? 1) > 1;
9071
+ if (e.tagName === "BODY" || e.tagName === "HTML") {
9072
+ let S2 = document.documentElement;
9073
+ f = S2.clientWidth, h = S2.clientHeight, c = (r == null ? void 0 : r.width) ?? f, d = (r == null ? void 0 : r.height) ?? h, y.top = S2.scrollTop || e.scrollTop, y.left = S2.scrollLeft || e.scrollLeft, r && (_ = r.offsetTop, v = r.offsetLeft);
9074
+ } else ({ width: c, height: d, top: _, left: v } = $edcf132a9284368a$var$getOffset(e, false)), y.top = e.scrollTop, y.left = e.scrollLeft, f = c, h = d;
9075
+ return $c87311424ea30a05$export$78551043582a6a98() && (e.tagName === "BODY" || e.tagName === "HTML") && S && (y.top = 0, y.left = 0, _ = (r == null ? void 0 : r.pageTop) ?? 0, v = (r == null ? void 0 : r.pageLeft) ?? 0), {
9076
+ width: c,
9077
+ height: d,
9078
+ totalWidth: f,
9079
+ totalHeight: h,
9080
+ scroll: y,
9081
+ top: _,
9082
+ left: v
9088
9083
  };
9089
9084
  }
9090
9085
  function $edcf132a9284368a$var$getScroll(e) {
@@ -9096,7 +9091,7 @@ let __tla = Promise.all([
9096
9091
  };
9097
9092
  }
9098
9093
  function $edcf132a9284368a$var$getDelta(e, r, c, d, f, h, _) {
9099
- let v = f.scroll[e] ?? 0, y = d[$edcf132a9284368a$var$AXIS_SIZE[e]], S = d.scroll[$edcf132a9284368a$var$AXIS[e]] + h, w = y + d.scroll[$edcf132a9284368a$var$AXIS[e]] - h, E = r - v + _[e] - d[$edcf132a9284368a$var$AXIS[e]], O = r - v + c + _[e] - d[$edcf132a9284368a$var$AXIS[e]];
9094
+ let v = f.scroll[e] ?? 0, y = d[$edcf132a9284368a$var$AXIS_SIZE[e]], S = _[e] + d.scroll[$edcf132a9284368a$var$AXIS[e]] + h, w = _[e] + d.scroll[$edcf132a9284368a$var$AXIS[e]] + y - h, E = r - v + d.scroll[$edcf132a9284368a$var$AXIS[e]] + _[e] - d[$edcf132a9284368a$var$AXIS[e]], O = r - v + c + d.scroll[$edcf132a9284368a$var$AXIS[e]] + _[e] - d[$edcf132a9284368a$var$AXIS[e]];
9100
9095
  return E < S ? S - E : O > w ? Math.max(w - O, S - E) : 0;
9101
9096
  }
9102
9097
  function $edcf132a9284368a$var$getMargins(e) {
@@ -9122,61 +9117,62 @@ let __tla = Promise.all([
9122
9117
  crossSize: _
9123
9118
  }, $edcf132a9284368a$var$PARSED_PLACEMENT_CACHE[e];
9124
9119
  }
9125
- function $edcf132a9284368a$var$computePosition(e, r, c, d, f, h, _, v, y, S) {
9126
- let { placement: w, crossPlacement: E, axis: O, crossAxis: M, size: I, crossSize: z } = d, G = {};
9127
- G[M] = e[M] ?? 0, E === "center" ? G[M] += ((e[z] ?? 0) - (c[z] ?? 0)) / 2 : E !== M && (G[M] += (e[z] ?? 0) - (c[z] ?? 0)), G[M] += h;
9128
- let q = e[M] - c[z] + y + S, LY = e[M] + e[z] - y - S;
9129
- if (G[M] = $9446cca9a3875146$export$7d15b64cf5a3a4c4(G[M], q, LY), w === O) {
9130
- let c2 = v ? _[I] : r[$edcf132a9284368a$var$TOTAL_SIZE[I]];
9131
- G[$edcf132a9284368a$var$FLIPPED_DIRECTION[O]] = Math.floor(c2 - e[O] + f);
9132
- } else G[O] = Math.floor(e[O] + e[I] + f);
9133
- return G;
9134
- }
9135
- function $edcf132a9284368a$var$getMaxHeight(e, r, c, d, f, h, _, v) {
9136
- let y = d ? c.height : r[$edcf132a9284368a$var$TOTAL_SIZE.height], S = e.top == null ? c.top + (y - (e.bottom ?? 0) - _) : c.top + e.top, w = v === "top" ? Math.max(0, S + _ - (r.top + (r.scroll.top ?? 0)) - ((f.top ?? 0) + (f.bottom ?? 0) + h)) : Math.max(0, r.height + r.top + (r.scroll.top ?? 0) - S - ((f.top ?? 0) + (f.bottom ?? 0) + h));
9137
- return Math.min(r.height - h * 2, w);
9138
- }
9139
- function $edcf132a9284368a$var$getAvailableSpace(e, r, c, d, f, h) {
9140
- let { placement: _, axis: v, size: y } = h;
9141
- return _ === v ? Math.max(0, c[v] - e[v] - (e.scroll[v] ?? 0) + r[v] - (d[v] ?? 0) - d[$edcf132a9284368a$var$FLIPPED_DIRECTION[v]] - f) : Math.max(0, e[y] + e[v] + e.scroll[v] - r[v] - c[v] - c[y] - (d[v] ?? 0) - d[$edcf132a9284368a$var$FLIPPED_DIRECTION[v]] - f);
9142
- }
9143
- function $edcf132a9284368a$export$6839422d1f33cee9(e, r, c, d, f, h, _, v, y, S, w, E, O, M, I, z) {
9144
- let G = $edcf132a9284368a$var$parsePlacement(e), { size: q, crossAxis: LY, crossSize: RY, placement: zY, crossPlacement: BY } = G, VY = $edcf132a9284368a$var$computePosition(r, v, c, G, w, E, S, O, I, z), HY = w, UY = $edcf132a9284368a$var$getAvailableSpace(v, S, r, f, h + w, G);
9145
- if (_ && d[q] > UY) {
9146
- let e2 = $edcf132a9284368a$var$parsePlacement(`${$edcf132a9284368a$var$FLIPPED_DIRECTION[zY]} ${BY}`), d2 = $edcf132a9284368a$var$computePosition(r, v, c, e2, w, E, S, O, I, z);
9147
- $edcf132a9284368a$var$getAvailableSpace(v, S, r, f, h + w, e2) > UY && (G = e2, VY = d2, HY = w);
9148
- }
9149
- let WY = "bottom";
9150
- G.axis === "top" ? G.placement === "top" ? WY = "top" : G.placement === "bottom" && (WY = "bottom") : G.crossAxis === "top" && (G.crossPlacement === "top" ? WY = "bottom" : G.crossPlacement === "bottom" && (WY = "top"));
9151
- let GY = $edcf132a9284368a$var$getDelta(LY, VY[LY], c[RY], v, y, h, S);
9152
- VY[LY] += GY;
9153
- let KY = $edcf132a9284368a$var$getMaxHeight(VY, v, S, O, f, h, c.height, WY);
9154
- M && M < KY && (KY = M), c.height = Math.min(c.height, KY), VY = $edcf132a9284368a$var$computePosition(r, v, c, G, HY, E, S, O, I, z), GY = $edcf132a9284368a$var$getDelta(LY, VY[LY], c[RY], v, y, h, S), VY[LY] += GY;
9155
- let qY = {}, JY = r[LY] - VY[LY] - f[$edcf132a9284368a$var$AXIS[LY]], YY = JY + 0.5 * r[RY], XY = I / 2 + z, ZY = $edcf132a9284368a$var$AXIS[LY] === "left" ? (f.left ?? 0) + (f.right ?? 0) : (f.top ?? 0) + (f.bottom ?? 0), QY = c[RY] - ZY - I / 2 - z;
9156
- qY[LY] = $9446cca9a3875146$export$7d15b64cf5a3a4c4($9446cca9a3875146$export$7d15b64cf5a3a4c4(YY, r[LY] + I / 2 - (VY[LY] + f[$edcf132a9284368a$var$AXIS[LY]]), r[LY] + r[RY] - I / 2 - (VY[LY] + f[$edcf132a9284368a$var$AXIS[LY]])), XY, QY), { placement: zY, crossPlacement: BY } = G, I ? JY = qY[LY] : BY === "right" ? JY += r[RY] : BY === "center" && (JY += r[RY] / 2);
9157
- let $Y = zY === "left" || zY === "top" ? c[q] : 0, eX = {
9158
- x: zY === "top" || zY === "bottom" ? JY : $Y,
9159
- y: zY === "left" || zY === "right" ? JY : $Y
9120
+ function $edcf132a9284368a$var$computePosition(e, r, c, d, f, h, _, v, y, S, w) {
9121
+ let { placement: E, crossPlacement: O, axis: M, crossAxis: I, size: z, crossSize: G } = d, q = {};
9122
+ q[I] = e[I] ?? 0, O === "center" ? q[I] += ((e[G] ?? 0) - (c[G] ?? 0)) / 2 : O !== I && (q[I] += (e[G] ?? 0) - (c[G] ?? 0)), q[I] += h;
9123
+ let LY = e[I] - c[G] + y + S, RY = e[I] + e[G] - y - S;
9124
+ if (q[I] = $9446cca9a3875146$export$7d15b64cf5a3a4c4(q[I], LY, RY), E === M) {
9125
+ let r2 = v ? w[z] : w[$edcf132a9284368a$var$TOTAL_SIZE[z]];
9126
+ q[$edcf132a9284368a$var$FLIPPED_DIRECTION[M]] = Math.floor(r2 - e[M] + f);
9127
+ } else q[M] = Math.floor(e[M] + e[z] + f);
9128
+ return q;
9129
+ }
9130
+ function $edcf132a9284368a$var$getMaxHeight(e, r, c, d, f, h, _, v, y, S, w) {
9131
+ let E = (e.top == null ? y[$edcf132a9284368a$var$TOTAL_SIZE.height] - (e.bottom ?? 0) - _ : e.top) - (y.scroll.top ?? 0), O = S ? c.top : 0, M = {
9132
+ top: Math.max(r.top + O, ((w == null ? void 0 : w.offsetTop) ?? r.top) + O),
9133
+ bottom: Math.min(r.top + r.height + O, ((w == null ? void 0 : w.offsetTop) ?? 0) + ((w == null ? void 0 : w.height) ?? 0))
9134
+ };
9135
+ return v === "top" ? Math.max(0, E + _ - M.top - ((f.top ?? 0) + (f.bottom ?? 0) + h)) : Math.max(0, M.bottom - E - ((f.top ?? 0) + (f.bottom ?? 0) + h));
9136
+ }
9137
+ function $edcf132a9284368a$var$getAvailableSpace(e, r, c, d, f, h, _, v) {
9138
+ let { placement: y, axis: S, size: w } = h;
9139
+ return y === S ? Math.max(0, c[S] - (_.scroll[S] ?? 0) - (e[S] + (v ? r[S] : 0)) - (d[S] ?? 0) - d[$edcf132a9284368a$var$FLIPPED_DIRECTION[S]] - f) : Math.max(0, e[w] + e[S] + (v ? r[S] : 0) - c[S] - c[w] + (_.scroll[S] ?? 0) - (d[S] ?? 0) - d[$edcf132a9284368a$var$FLIPPED_DIRECTION[S]] - f);
9140
+ }
9141
+ function $edcf132a9284368a$export$6839422d1f33cee9(e, r, c, d, f, h, _, v, y, S, w, E, O, M, I, z, G, q) {
9142
+ let LY = $edcf132a9284368a$var$parsePlacement(e), { size: RY, crossAxis: zY, crossSize: BY, placement: VY, crossPlacement: HY } = LY, UY = $edcf132a9284368a$var$computePosition(r, v, c, LY, w, E, S, O, I, z, y), WY = w, GY = $edcf132a9284368a$var$getAvailableSpace(v, S, r, f, h + w, LY, y, G);
9143
+ if (_ && c[RY] > GY) {
9144
+ let e2 = $edcf132a9284368a$var$parsePlacement(`${$edcf132a9284368a$var$FLIPPED_DIRECTION[VY]} ${HY}`), d2 = $edcf132a9284368a$var$computePosition(r, v, c, e2, w, E, S, O, I, z, y);
9145
+ $edcf132a9284368a$var$getAvailableSpace(v, S, r, f, h + w, e2, y, G) > GY && (LY = e2, UY = d2, WY = w);
9146
+ }
9147
+ let KY = "bottom";
9148
+ LY.axis === "top" ? LY.placement === "top" ? KY = "top" : LY.placement === "bottom" && (KY = "bottom") : LY.crossAxis === "top" && (LY.crossPlacement === "top" ? KY = "bottom" : LY.crossPlacement === "bottom" && (KY = "top"));
9149
+ let qY = $edcf132a9284368a$var$getDelta(zY, UY[zY], c[BY], v, y, h, S);
9150
+ UY[zY] += qY;
9151
+ let JY = $edcf132a9284368a$var$getMaxHeight(UY, v, S, O, f, h, c.height, KY, y, G, q);
9152
+ M && M < JY && (JY = M), c.height = Math.min(c.height, JY), UY = $edcf132a9284368a$var$computePosition(r, v, c, LY, WY, E, S, O, I, z, y), qY = $edcf132a9284368a$var$getDelta(zY, UY[zY], c[BY], v, y, h, S), UY[zY] += qY;
9153
+ let YY = {}, XY = r[zY] - UY[zY] - f[$edcf132a9284368a$var$AXIS[zY]], ZY = XY + 0.5 * r[BY], QY = I / 2 + z, $Y = $edcf132a9284368a$var$AXIS[zY] === "left" ? (f.left ?? 0) + (f.right ?? 0) : (f.top ?? 0) + (f.bottom ?? 0), eX = c[BY] - $Y - I / 2 - z;
9154
+ YY[zY] = $9446cca9a3875146$export$7d15b64cf5a3a4c4($9446cca9a3875146$export$7d15b64cf5a3a4c4(ZY, r[zY] + I / 2 - (UY[zY] + f[$edcf132a9284368a$var$AXIS[zY]]), r[zY] + r[BY] - I / 2 - (UY[zY] + f[$edcf132a9284368a$var$AXIS[zY]])), QY, eX), { placement: VY, crossPlacement: HY } = LY, I ? XY = YY[zY] : HY === "right" ? XY += r[BY] : HY === "center" && (XY += r[BY] / 2);
9155
+ let tX = VY === "left" || VY === "top" ? c[RY] : 0, nX = {
9156
+ x: VY === "top" || VY === "bottom" ? XY : tX,
9157
+ y: VY === "left" || VY === "right" ? XY : tX
9160
9158
  };
9161
9159
  return {
9162
- position: VY,
9163
- maxHeight: KY,
9164
- arrowOffsetLeft: qY.left,
9165
- arrowOffsetTop: qY.top,
9166
- placement: zY,
9167
- triggerAnchorPoint: eX
9160
+ position: UY,
9161
+ maxHeight: JY,
9162
+ arrowOffsetLeft: YY.left,
9163
+ arrowOffsetTop: YY.top,
9164
+ placement: VY,
9165
+ triggerAnchorPoint: nX
9168
9166
  };
9169
9167
  }
9170
9168
  function $edcf132a9284368a$export$b3ceb0cbf1056d98(e) {
9171
- let { placement: r, targetNode: c, overlayNode: d, scrollNode: f, padding: h, shouldFlip: _, boundaryElement: v, offset: y, crossOffset: S, maxHeight: w, arrowSize: E = 0, arrowBoundaryOffset: O = 0 } = e, M = d instanceof HTMLElement ? $edcf132a9284368a$var$getContainingBlock(d) : document.documentElement, I = M === document.documentElement, z = window.getComputedStyle(M).position, G = !!z && z !== "static", q = I ? $edcf132a9284368a$var$getOffset(c, false) : $edcf132a9284368a$var$getPosition(c, M, false);
9172
- if (!I) {
9169
+ let { placement: r, targetNode: c, overlayNode: d, scrollNode: f, padding: h, shouldFlip: _, boundaryElement: v, offset: y, crossOffset: S, maxHeight: w, arrowSize: E = 0, arrowBoundaryOffset: O = 0 } = e, M = $edcf132a9284368a$var$getVisualViewport(), I = d instanceof HTMLElement ? $edcf132a9284368a$var$getContainingBlock(d) : document.documentElement, z = I === document.documentElement, G = window.getComputedStyle(I).position, q = !!G && G !== "static", LY = z ? $edcf132a9284368a$var$getOffset(c, false) : $edcf132a9284368a$var$getPosition(c, I, false);
9170
+ if (!z) {
9173
9171
  let { marginTop: e2, marginLeft: r2 } = window.getComputedStyle(c);
9174
- q.top += parseInt(e2, 10) || 0, q.left += parseInt(r2, 10) || 0;
9172
+ LY.top += parseInt(e2, 10) || 0, LY.left += parseInt(r2, 10) || 0;
9175
9173
  }
9176
- let LY = $edcf132a9284368a$var$getOffset(d, true), RY = $edcf132a9284368a$var$getMargins(d);
9177
- LY.width += (RY.left ?? 0) + (RY.right ?? 0), LY.height += (RY.top ?? 0) + (RY.bottom ?? 0);
9178
- let zY = $edcf132a9284368a$var$getScroll(f), BY = $edcf132a9284368a$var$getContainerDimensions(v), VY = $edcf132a9284368a$var$getContainerDimensions(M), HY = v.tagName === "BODY" ? $edcf132a9284368a$var$getOffset(M, false) : $edcf132a9284368a$var$getPosition(M, v, false);
9179
- return M.tagName === "HTML" && v.tagName === "BODY" && (VY.scroll.top = 0, VY.scroll.left = 0), $edcf132a9284368a$export$6839422d1f33cee9(r, q, LY, zY, RY, h, _, BY, VY, HY, y, S, G, w, E, O);
9174
+ let RY = $edcf132a9284368a$var$getOffset(d, true), zY = $edcf132a9284368a$var$getMargins(d);
9175
+ return RY.width += (zY.left ?? 0) + (zY.right ?? 0), RY.height += (zY.top ?? 0) + (zY.bottom ?? 0), $edcf132a9284368a$export$6839422d1f33cee9(r, LY, RY, $edcf132a9284368a$var$getScroll(f), zY, h, _, $edcf132a9284368a$var$getContainerDimensions(v, M), $edcf132a9284368a$var$getContainerDimensions(I, M), $edcf132a9284368a$var$getPosition(v, I, false), y, S, q, w, E, O, v.contains(I), M);
9180
9176
  }
9181
9177
  function $edcf132a9284368a$export$4b834cebd9e5cebe(e, r) {
9182
9178
  let { top: c, left: d, width: f, height: h } = e.getBoundingClientRect();
@@ -18583,11 +18579,9 @@ ${JSON.stringify(e2, null, 4)}`);
18583
18579
  }
18584
18580
  ])), f.hoverEnabled && h.push(hoverTooltip((e2, c2) => r == null ? null : r.requestHoverTooltip(e2, offsetToPos(e2.state.doc, c2)), e.hoverConfig)), f.signatureHelpEnabled) {
18585
18581
  h.push(signatureHelpTooltipField);
18586
- let e2 = (e3) => {
18587
- e3.state.field(signatureHelpTooltipField) && e3.dispatch({
18588
- effects: setSignatureHelpTooltip.of(null)
18589
- });
18590
- };
18582
+ let e2 = (e3) => e3.state.field(signatureHelpTooltipField) ? (e3.dispatch({
18583
+ effects: setSignatureHelpTooltip.of(null)
18584
+ }), true) : false;
18591
18585
  h.push(EditorView.domEventHandlers({
18592
18586
  mousedown: (r2, c2) => (e2(c2), false)
18593
18587
  })), h.push(keymap.of([
@@ -18597,7 +18591,7 @@ ${JSON.stringify(e2, null, 4)}`);
18597
18591
  },
18598
18592
  {
18599
18593
  key: "Escape",
18600
- run: (r2) => (e2(r2), true)
18594
+ run: (r2) => e2(r2)
18601
18595
  }
18602
18596
  ])), h.push(EditorView.updateListener.of((c2) => {
18603
18597
  if (!(r && f.signatureActivateOnTyping) || !c2.state.field(signatureHelpTooltipField) || !(c2.selectionSet || c2.docChanged)) return;
@@ -30382,7 +30376,7 @@ ${c.sqlString}
30382
30376
  });
30383
30377
  return c;
30384
30378
  }
30385
- }), import_Transport = require_Transport();
30379
+ });
30386
30380
  function adaptForLocalStorage(e) {
30387
30381
  let r = e.storage || availableStorage;
30388
30382
  return {
@@ -30632,6 +30626,33 @@ ${c.sqlString}
30632
30626
  const documentationAtom = atom({
30633
30627
  documentation: null
30634
30628
  });
30629
+ var reactiveVariableDecoration = Decoration.mark({
30630
+ class: "mo-cm-reactive-reference"
30631
+ });
30632
+ Decoration.mark({
30633
+ class: "mo-cm-reactive-reference-hover"
30634
+ });
30635
+ var updateReactiveVariables = StateEffect.define();
30636
+ const reactiveReferencesField = StateField.define({
30637
+ create() {
30638
+ return {
30639
+ decorations: Decoration.none,
30640
+ ranges: []
30641
+ };
30642
+ },
30643
+ update(e, r) {
30644
+ let c = {
30645
+ decorations: e.decorations.map(r.changes),
30646
+ ranges: e.ranges
30647
+ };
30648
+ for (let e2 of r.effects) e2.is(updateReactiveVariables) && (c = {
30649
+ decorations: Decoration.set(e2.value.map((e3) => reactiveVariableDecoration.range(e3.from, e3.to))),
30650
+ ranges: e2.value
30651
+ });
30652
+ return c;
30653
+ },
30654
+ provide: (e) => EditorView.decorations.from(e, (e2) => e2.decorations)
30655
+ });
30635
30656
  function generateUUID() {
30636
30657
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replaceAll(/[xy]/g, (e) => {
30637
30658
  let r = Math.trunc(Math.random() * 16);
@@ -30725,6 +30746,63 @@ ${c.sqlString}
30725
30746
  if (r) return e.find((e2) => e2.name === r);
30726
30747
  }
30727
30748
  }
30749
+ async function requestDocumentation({ view: e, pos: r, excludeTypes: c }) {
30750
+ var _a2;
30751
+ let d = HTMLCellId.findElement(e.dom);
30752
+ if (!d) return Logger.error("Failed to find active cell."), null;
30753
+ let f = HTMLCellId.parse(d.id), { startToken: h, endToken: _ } = getPositionAtWordBounds(e.state.doc, r), v = ((_a2 = e.state.field(reactiveReferencesField, false)) == null ? void 0 : _a2.ranges.some((e2) => r >= e2.from && r <= e2.to)) ?? false, y = await AUTOCOMPLETER.request({
30754
+ document: e.state.doc.slice(0, _).toString(),
30755
+ cellId: f
30756
+ });
30757
+ if (!y) return "cancelled";
30758
+ let S = e.state.doc.slice(h, _).toString();
30759
+ return Autocompleter.asHoverTooltip({
30760
+ position: _,
30761
+ message: y,
30762
+ exactName: S,
30763
+ excludeTypes: c,
30764
+ showGoToDefinitionHint: v
30765
+ }) ?? null;
30766
+ }
30767
+ function getPositionAtWordBounds(e, r) {
30768
+ let c = r, d = c > 0 ? e.sliceString(c - 1, c) : "", f = c < e.length ? e.sliceString(c, c + 1) : "";
30769
+ d === "(" && f === ")" && --c;
30770
+ let h = c, _ = c;
30771
+ for (; h > 0; ) {
30772
+ let r2 = e.sliceString(h - 1, h);
30773
+ if (!/\w/.test(r2)) break;
30774
+ h--;
30775
+ }
30776
+ for (; _ < e.length; ) {
30777
+ let r2 = e.sliceString(_, _ + 1);
30778
+ if (!/\w/.test(r2)) break;
30779
+ _++;
30780
+ }
30781
+ return {
30782
+ startToken: h,
30783
+ endToken: _
30784
+ };
30785
+ }
30786
+ function isCursorInText(e) {
30787
+ let { head: r } = e.selection.main, c = e.doc.sliceString(r - 1, r);
30788
+ return /\w/.test(c);
30789
+ }
30790
+ var debouncedAutocomplete = debounce_default(async (e, r) => {
30791
+ if (store.get(chromeAtom).selectedPanel !== "documentation") return;
30792
+ let c = await requestDocumentation({
30793
+ view: e,
30794
+ pos: r
30795
+ });
30796
+ c !== "cancelled" && store.set(documentationAtom, {
30797
+ documentation: (c == null ? void 0 : c.html) ?? null
30798
+ });
30799
+ }, 300);
30800
+ EditorView.updateListener.of((e) => {
30801
+ if (e.selectionSet && isCursorInText(e.state)) {
30802
+ let r = e.state.selection.main.head;
30803
+ debouncedAutocomplete(e.view, r);
30804
+ }
30805
+ });
30728
30806
  function goToPosition(e, r) {
30729
30807
  e.focus(), requestAnimationFrame(() => {
30730
30808
  e.dispatch({
@@ -32257,6 +32335,9 @@ ${c.sqlString}
32257
32335
  function isClientWithNotify(e) {
32258
32336
  return "notify" in e;
32259
32337
  }
32338
+ function isPrivateVariable(e) {
32339
+ return e.startsWith("_") && !e.startsWith("__");
32340
+ }
32260
32341
  var Snapshotter = class {
32261
32342
  constructor(e) {
32262
32343
  __publicField(this, "documentVersion", 0);
@@ -32457,10 +32538,15 @@ ${c.sqlString}
32457
32538
  let y = d.getEditsForNewText(v.newText), S = new Map(y.map((e2) => [
32458
32539
  e2.cellId,
32459
32540
  e2.text
32460
- ])), w = this.getNotebookEditors();
32541
+ ])), w = this.getNotebookEditors(), E = w[c], O = false;
32542
+ if (E) {
32543
+ let r2 = E.state.doc.line(e.position.line + 1).from + e.position.character, { startToken: c2, endToken: d2 } = getPositionAtWordBounds(E.state.doc, r2), f2 = E.state.doc.sliceString(c2, d2);
32544
+ O = isPrivateVariable(f2), O && Logger.debug("[lsp] Private variable rename detected, limiting to current cell", f2);
32545
+ }
32461
32546
  for (let [e2, r2] of Objects.entries(w)) {
32462
- let c2 = S.get(e2);
32463
- if (c2 == null) {
32547
+ if (O && e2 !== c) continue;
32548
+ let d2 = S.get(e2);
32549
+ if (d2 == null) {
32464
32550
  Logger.warn("No new code for cell", e2);
32465
32551
  continue;
32466
32552
  }
@@ -32468,7 +32554,7 @@ ${c.sqlString}
32468
32554
  Logger.warn("No view for plugin", e2);
32469
32555
  continue;
32470
32556
  }
32471
- getEditorCodeAsPython(r2) !== c2 && updateEditorCodeFromPython(r2, c2);
32557
+ getEditorCodeAsPython(r2) !== d2 && updateEditorCodeFromPython(r2, d2);
32472
32558
  }
32473
32559
  return {
32474
32560
  ...h,
@@ -32571,7 +32657,7 @@ ${c.sqlString}
32571
32657
  };
32572
32658
  this.client.processNotification = c;
32573
32659
  }
32574
- }, __publicField(_a, "SEEN_CELL_DOCUMENT_URIS", /* @__PURE__ */ new Set()), _a), import_build = require_build(), ReconnectingWebSocketTransport = class extends import_Transport.Transport {
32660
+ }, __publicField(_a, "SEEN_CELL_DOCUMENT_URIS", /* @__PURE__ */ new Set()), _a), import_build = require_build(), import_Transport = require_Transport(), ReconnectingWebSocketTransport = class extends import_Transport.Transport {
32575
32661
  constructor(e) {
32576
32662
  super();
32577
32663
  __publicField(this, "isClosed", false);
@@ -38970,7 +39056,7 @@ ${c.sqlString}
38970
39056
  Logger.warn("scrollCellIntoView: editor not found", e);
38971
39057
  return;
38972
39058
  }
38973
- if (c2.hasFocus) return;
39059
+ if (c2.hasFocus || !document.hasFocus()) return;
38974
39060
  if (retryWithTimeout(() => (c2.focus(), c2.hasFocus), {
38975
39061
  retries: 5,
38976
39062
  delay: 20
@@ -39895,7 +39981,7 @@ ${c.sqlString}
39895
39981
  return (_a2 = r[e2]) == null ? void 0 : _a2.name;
39896
39982
  }).filter(Boolean);
39897
39983
  };
39898
- splitAtom(selectAtom(notebookAtom, (e) => e.cellIds.inOrderIds.map((r) => e.cellData[r]))), atom((e) => notebookIsRunning(e(notebookAtom))), atom((e) => notebookQueueOrRunningCount(e(notebookAtom))), atom((e) => e(notebookAtom).cellIds.colLength), atom((e) => e(notebookAtom).cellIds.idLength > 0), atom((e) => e(notebookAtom).cellIds.getColumnIds());
39984
+ splitAtom(selectAtom(notebookAtom, (e) => e.cellIds.inOrderIds.map((r) => e.cellData[r]))), atom((e) => e(notebookAtom).cellRuntime), atom((e) => notebookIsRunning(e(notebookAtom))), atom((e) => notebookQueueOrRunningCount(e(notebookAtom))), atom((e) => e(notebookAtom).cellIds.colLength), atom((e) => e(notebookAtom).cellIds.idLength > 0), atom((e) => e(notebookAtom).cellIds.getColumnIds());
39899
39985
  const cellDataAtom = atomFamily((e) => atom((r) => r(notebookAtom).cellData[e]));
39900
39986
  var cellRuntimeAtom = atomFamily((e) => atom((r) => r(notebookAtom).cellRuntime[e]));
39901
39987
  const cellHandleAtom = atomFamily((e) => atom((r) => r(notebookAtom).cellHandles[e]));
@@ -41779,7 +41865,7 @@ ${c.sqlString}
41779
41865
  $d34552a7550967e7$exports = {
41780
41866
  rangeOverflow: (e) => `\uAC12\uC740 ${e.maxValue} \uC774\uC804\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.`,
41781
41867
  rangeReversed: "\uC2DC\uC791\uC77C\uC740 \uC885\uB8CC\uC77C \uC774\uC804\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.",
41782
- rangeUnderflow: (e) => `\uAC12\uC740 ${e.minValue} \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.`,
41868
+ rangeUnderflow: (e) => `\uAC12\uC740 ${e.minValue} \uC774\uD6C4\uC5EC\uC57C \uD569\uB2C8\uB2E4.`,
41783
41869
  unavailableDate: "\uC120\uD0DD\uD55C \uB0A0\uC9DC\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
41784
41870
  };
41785
41871
  var $8f855bffe63f6eca$exports = {};
@@ -43180,7 +43266,7 @@ ${c.sqlString}
43180
43266
  ...$3ef42575df84b30b$export$9d1611c77c2fe928(v, h),
43181
43267
  ref: r,
43182
43268
  style: d,
43183
- className: f || "react-aria-CalendarGridHeader"
43269
+ className: f ?? "react-aria-CalendarGridHeader"
43184
43270
  }, import_react.createElement("tr", null, _.map((e2, r2) => import_react.cloneElement(c(e2), {
43185
43271
  key: r2
43186
43272
  }))));
@@ -43206,7 +43292,7 @@ ${c.sqlString}
43206
43292
  ...w,
43207
43293
  ref: r,
43208
43294
  style: d,
43209
- className: f || "react-aria-CalendarGridBody"
43295
+ className: f ?? "react-aria-CalendarGridBody"
43210
43296
  }, [
43211
43297
  ...Array(S).keys()
43212
43298
  ].map((e2) => import_react.createElement("tr", {
@@ -43556,7 +43642,9 @@ ${c.sqlString}
43556
43642
  isDisabled: _.isDisabled
43557
43643
  }, _.segments.map((e2, r2) => (0, import_react.cloneElement)(d(e2), {
43558
43644
  key: r2
43559
- }))), import_react.createElement($3985021b0ad6602f$export$f5b8910cec6cf069, null));
43645
+ }))), import_react.createElement($3985021b0ad6602f$export$f5b8910cec6cf069, {
43646
+ className: ""
43647
+ }));
43560
43648
  }), $40825cdb76e74f70$export$336ab7fa954c4b5f = (0, import_react.forwardRef)(function({ segment: e, ...r }, c) {
43561
43649
  let d = (0, import_react.useContext)($40825cdb76e74f70$export$3b08bebcf796eea0), f = (0, import_react.useContext)($40825cdb76e74f70$export$5d8dc44abd10a920), h = d ?? f, _ = $df56164dff5785e2$export$4338b53315abf666(c), { segmentProps: v } = $32489daedd52963e$export$1315d136e6f7581(e, h, _), { focusProps: y, isFocused: S, isFocusVisible: w } = $f7dceffc5ad7768b$export$4e328f61c538687f(), { hoverProps: E, isHovered: O } = $6179b936705e76d3$export$ae780daf29e6d456({
43562
43650
  ...r,
@@ -56193,7 +56281,7 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
56193
56281
  shouldFilter: false,
56194
56282
  children: [
56195
56283
  (0, import_jsx_runtime.jsx)(CommandInput, {
56196
- placeholder: "Search",
56284
+ placeholder: `Search among the top ${v.length} values`,
56197
56285
  autoFocus: true,
56198
56286
  onValueChange: (e3) => _(e3.trim())
56199
56287
  }),
@@ -57949,7 +58037,7 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
57949
58037
  hasConsoleOutput: (_ == null ? void 0 : _.consoleOutputs) != null
57950
58038
  };
57951
58039
  }
57952
- const LazyAnyLanguageCodeMirror = (0, import_react.lazy)(() => import("./any-language-editor-Bda9cY1_.js"));
58040
+ const LazyAnyLanguageCodeMirror = (0, import_react.lazy)(() => import("./any-language-editor-vYraVrwE.js"));
57953
58041
  var import_compiler_runtime$112 = require_compiler_runtime(), extensions = [
57954
58042
  EditorView.lineWrapping
57955
58043
  ], SUPPORTED_LANGUAGES = /* @__PURE__ */ new Set([
@@ -71129,214 +71217,129 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71129
71217
  var import_compiler_runtime$86 = require_compiler_runtime();
71130
71218
  const Chatbot = (e) => {
71131
71219
  var _a2;
71132
- let [r, c] = (0, import_react.useState)(""), [d, f] = (0, import_react.useState)(e.config), [h, _] = (0, import_react.useState)(void 0), v = (0, import_react.useRef)(null), y = (0, import_react.useRef)(null), S = (0, import_react.useRef)(null), w = (0, import_react.useRef)(null), E = (0, import_react.useRef)(d);
71133
- E.current = d;
71134
- let O = (0, import_react.useRef)({
71220
+ let [r, c] = (0, import_react.useState)(""), [d, f] = (0, import_react.useState)(e.config), [h, _] = (0, import_react.useState)(e.config), [v, y] = (0, import_react.useState)(void 0), S = (0, import_react.useRef)(null), w = (0, import_react.useRef)(null), E = (0, import_react.useRef)(null), O = (0, import_react.useRef)(null);
71221
+ Object.keys(e.config).some((r2) => e.config[r2] !== h[r2]) && (f(e.config), _(e.config));
71222
+ let M = (0, import_react.useRef)(d);
71223
+ M.current = d;
71224
+ let I = (0, import_react.useRef)({
71135
71225
  backendMessageId: null,
71136
71226
  frontendMessageIndex: null
71137
- }), M = (0, import_react.useRef)(null), { data: I } = useAsyncData(async () => (await e.get_chat_history({})).messages, []), z = e.value.length > 0 ? e.value : I, { messages: G, sendMessage: q, setMessages: LY, status: RY, stop: zY, error: BY, regenerate: VY, clearError: HY } = useChat({
71227
+ }), z = (0, import_react.useRef)(null), { data: G } = useAsyncData(async () => (await e.get_chat_history({})).messages, []), q = e.value.length > 0 ? e.value : G, { messages: LY, sendMessage: RY, setMessages: zY, status: BY, stop: VY, error: HY, regenerate: UY, clearError: WY } = useChat({
71138
71228
  transport: new DefaultChatTransport({
71139
71229
  fetch: async (r2, c2) => {
71230
+ var _a3;
71140
71231
  if (c2 === void 0) return fetch(r2);
71141
71232
  let d2 = JSON.parse(c2.body), f2 = c2.signal, h2 = {
71142
- max_tokens: E.current.max_tokens,
71143
- temperature: E.current.temperature,
71144
- top_p: E.current.top_p,
71145
- top_k: E.current.top_k,
71146
- frequency_penalty: E.current.frequency_penalty,
71147
- presence_penalty: E.current.presence_penalty
71233
+ max_tokens: M.current.max_tokens,
71234
+ temperature: M.current.temperature,
71235
+ top_p: M.current.top_p,
71236
+ top_k: M.current.top_k,
71237
+ frequency_penalty: M.current.frequency_penalty,
71238
+ presence_penalty: M.current.presence_penalty
71148
71239
  };
71149
71240
  try {
71150
71241
  let r3 = d2.messages.map((e2) => {
71151
- var _a3;
71242
+ var _a4;
71152
71243
  return {
71153
71244
  ...e2,
71154
- content: (_a3 = e2.parts) == null ? void 0 : _a3.map((e3) => "text" in e3 ? e3.text : "").join("\n")
71245
+ content: (_a4 = e2.parts) == null ? void 0 : _a4.map((e3) => "text" in e3 ? e3.text : "").join("\n")
71155
71246
  };
71156
- });
71157
- if (e.frontendManaged) {
71158
- let c4 = new ReadableStream({
71159
- start(e2) {
71160
- M.current = e2;
71161
- let r4 = () => {
71162
- try {
71163
- e2.close();
71164
- } catch (e3) {
71165
- Logger.debug("Controller may already be closed", {
71166
- error: e3
71167
- });
71168
- }
71169
- M.current = null;
71170
- };
71171
- return f2 == null ? void 0 : f2.addEventListener("abort", r4), () => {
71172
- f2 == null ? void 0 : f2.removeEventListener("abort", r4);
71173
- };
71174
- },
71175
- cancel() {
71176
- M.current = null;
71177
- }
71178
- });
71179
- return e.send_prompt({
71180
- messages: r3,
71181
- config: h2
71182
- }).catch((e2) => {
71183
- var _a3;
71184
- (_a3 = M.current) == null ? void 0 : _a3.error(e2), M.current = null;
71185
- }), createUIMessageStreamResponse({
71186
- stream: c4
71187
- });
71188
- }
71189
- if (f2 == null ? void 0 : f2.aborted) return new Response("Aborted", {
71190
- status: 499
71191
- });
71192
- let c3 = Date.now().toString();
71193
- LY((e2) => [
71194
- ...e2,
71195
- {
71196
- id: c3,
71197
- role: "assistant",
71198
- parts: [
71199
- {
71200
- type: "text",
71201
- text: ""
71247
+ }), c3 = new ReadableStream({
71248
+ start(e2) {
71249
+ z.current = e2;
71250
+ let r4 = () => {
71251
+ try {
71252
+ e2.close();
71253
+ } catch (e3) {
71254
+ Logger.debug("Controller may already be closed", {
71255
+ error: e3
71256
+ });
71202
71257
  }
71203
- ]
71258
+ z.current = null;
71259
+ };
71260
+ return f2 == null ? void 0 : f2.addEventListener("abort", r4), () => {
71261
+ f2 == null ? void 0 : f2.removeEventListener("abort", r4);
71262
+ };
71263
+ },
71264
+ cancel() {
71265
+ z.current = null;
71204
71266
  }
71205
- ]);
71206
- let _2 = e.send_prompt({
71267
+ });
71268
+ return e.send_prompt({
71207
71269
  messages: r3,
71208
71270
  config: h2
71209
- }), v2 = await new Promise((e2, r4) => {
71210
- let c4 = () => {
71211
- r4(new DOMException("Aborted", "AbortError"));
71212
- };
71213
- f2 == null ? void 0 : f2.addEventListener("abort", c4), _2.then(e2).catch(r4).finally(() => {
71214
- f2 == null ? void 0 : f2.removeEventListener("abort", c4);
71215
- });
71271
+ }).catch((e2) => {
71272
+ var _a4;
71273
+ (_a4 = z.current) == null ? void 0 : _a4.error(e2), z.current = null;
71274
+ }), createUIMessageStreamResponse({
71275
+ stream: c3
71216
71276
  });
71217
- return v2 === null ? (Logger.error("Non-frontend-managed response is null", {
71218
- response: v2
71219
- }), new Response("Internal server error", {
71220
- status: 500
71221
- })) : (O.current.backendMessageId === null && O.current.frontendMessageIndex === null && LY((e2) => {
71222
- let r4 = [
71223
- ...e2
71224
- ], d3 = r4.findIndex((e3) => e3.id === c3);
71225
- return d3 !== -1 && (r4[d3] = {
71226
- ...r4[d3],
71227
- parts: [
71228
- {
71229
- type: "text",
71230
- text: v2
71231
- }
71232
- ]
71233
- }), r4;
71234
- }), new Response(v2));
71235
71277
  } catch (e2) {
71236
- if (O.current = {
71278
+ if (I.current = {
71237
71279
  backendMessageId: null,
71238
71280
  frontendMessageIndex: null
71239
- }, e2.name === "AbortError") return new Response("Aborted", {
71281
+ }, e2 instanceof Error && e2.name === "AbortError") return new Response("Aborted", {
71240
71282
  status: 499
71241
71283
  });
71242
- let r3 = e2.message.split("failed with exception ").pop();
71284
+ let r3 = (_a3 = e2.message) == null ? void 0 : _a3.split("failed with exception ").pop();
71243
71285
  return new Response(r3, {
71244
71286
  status: 400
71245
71287
  });
71246
71288
  }
71247
71289
  }
71248
71290
  }),
71249
- messages: z,
71291
+ messages: q,
71250
71292
  onFinish: (r2) => {
71251
- _(void 0), v.current && (v.current.value = ""), Logger.debug("Finished streaming message:", r2), O.current = {
71293
+ y(void 0), S.current && (S.current.value = ""), Logger.debug("Finished streaming message:", r2), I.current = {
71252
71294
  backendMessageId: null,
71253
71295
  frontendMessageIndex: null
71254
- }, e.frontendManaged && e.setValue(r2.messages);
71296
+ }, e.setValue(r2.messages);
71255
71297
  },
71256
71298
  onError: (e2) => {
71257
- Logger.error("An error occurred:", e2), O.current = {
71299
+ Logger.error("An error occurred:", e2), I.current = {
71258
71300
  backendMessageId: null,
71259
71301
  frontendMessageIndex: null
71260
71302
  };
71261
71303
  }
71262
71304
  });
71263
- useEventListener(e.host, MarimoIncomingMessageEvent.TYPE, (r2) => {
71264
- let c2 = r2.detail.message;
71265
- if (typeof c2 != "object" || !c2 || !("type" in c2) || c2.type !== "stream_chunk") return;
71266
- if (e.frontendManaged) {
71267
- let e2 = M.current;
71268
- if (!e2) return;
71269
- let r3 = c2;
71270
- r3.content && e2.enqueue(r3.content), r3.is_final && (e2.close(), M.current = null);
71271
- return;
71272
- }
71273
- let d2 = c2;
71274
- O.current.backendMessageId === null && LY((e2) => {
71275
- let r3 = [
71276
- ...e2
71277
- ];
71278
- for (let e3 = r3.length - 1; e3 >= 0; e3--) if (r3[e3].role === "assistant") {
71279
- O.current = {
71280
- backendMessageId: d2.message_id,
71281
- frontendMessageIndex: e3
71282
- };
71283
- break;
71284
- }
71285
- return r3;
71286
- });
71287
- let f2 = O.current.frontendMessageIndex;
71288
- O.current.backendMessageId === d2.message_id && f2 !== null && (LY((e2) => {
71289
- let r3 = [
71290
- ...e2
71291
- ], c3 = f2;
71292
- if (c3 < r3.length) {
71293
- let e3 = r3[c3];
71294
- e3.role === "assistant" && (r3[c3] = {
71295
- ...e3,
71296
- parts: [
71297
- {
71298
- type: "text",
71299
- text: d2.content
71300
- }
71301
- ]
71302
- });
71303
- }
71304
- return r3;
71305
- }), d2.is_final && (O.current = {
71306
- backendMessageId: null,
71307
- frontendMessageIndex: null
71308
- }));
71305
+ useEventListener(e.host, MarimoIncomingMessageEvent.TYPE, (e2) => {
71306
+ let r2 = e2.detail.message;
71307
+ if (typeof r2 != "object" || !r2 || !("type" in r2) || r2.type !== "stream_chunk") return;
71308
+ let c2 = z.current;
71309
+ if (!c2) return;
71310
+ let d2 = r2;
71311
+ d2.content && c2.enqueue(d2.content), d2.is_final && (c2.close(), z.current = null);
71309
71312
  });
71310
- let UY = RY === "submitted" || RY === "streaming", WY = (r2) => {
71311
- let c2 = G.findIndex((e2) => e2.id === r2);
71313
+ let GY = BY === "submitted" || BY === "streaming", KY = (r2) => {
71314
+ let c2 = LY.findIndex((e2) => e2.id === r2);
71312
71315
  if (c2 !== -1) {
71313
- let d2 = G.filter((e2) => e2.id !== r2);
71316
+ let d2 = LY.filter((e2) => e2.id !== r2);
71314
71317
  e.delete_chat_message({
71315
71318
  index: c2
71316
- }), LY(d2), e.frontendManaged && e.setValue(d2);
71319
+ }), zY(d2), e.setValue(d2);
71317
71320
  }
71318
- }, GY = Array.isArray(e.allowAttachments) && e.allowAttachments.length > 0 || e.allowAttachments === true, KY = {
71321
+ }, qY = Array.isArray(e.allowAttachments) && e.allowAttachments.length > 0 || e.allowAttachments === true, JY = {
71319
71322
  triggerCompletionRegex: /^\/(\w+)?/,
71320
71323
  completions: e.prompts.map((e2) => ({
71321
71324
  label: `/${e2}`,
71322
71325
  displayLabel: e2,
71323
71326
  apply: e2
71324
71327
  }))
71325
- }, qY = e.prompts.length > 0 ? "Type your message here, / for prompts" : "Type your message here...";
71328
+ }, YY = e.prompts.length > 0 ? "Type your message here, / for prompts" : "Type your message here...";
71326
71329
  (0, import_react.useEffect)(() => {
71327
71330
  var _a3;
71328
- (_a3 = w.current) == null ? void 0 : _a3.scrollTo({
71329
- top: w.current.scrollHeight,
71331
+ (_a3 = O.current) == null ? void 0 : _a3.scrollTo({
71332
+ top: O.current.scrollHeight,
71330
71333
  behavior: "smooth"
71331
71334
  });
71332
71335
  }, [
71333
- G.length,
71334
- w
71336
+ LY.length,
71337
+ O
71335
71338
  ]);
71336
- let JY = (_a2 = S.current) == null ? void 0 : _a2.view, YY = () => {
71337
- if (JY) {
71338
- let e2 = JY.state.doc.length;
71339
- JY.dispatch({
71339
+ let XY = (_a2 = E.current) == null ? void 0 : _a2.view, ZY = () => {
71340
+ if (XY) {
71341
+ let e2 = XY.state.doc.length;
71342
+ XY.dispatch({
71340
71343
  changes: {
71341
71344
  from: 0,
71342
71345
  to: e2,
@@ -71357,9 +71360,9 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71357
71360
  children: (0, import_jsx_runtime.jsx)(Button, {
71358
71361
  variant: "text",
71359
71362
  size: "icon",
71360
- disabled: G.length === 0,
71363
+ disabled: LY.length === 0,
71361
71364
  onClick: () => {
71362
- LY([]), e.setValue([]), e.delete_chat_history({}), HY();
71365
+ zY([]), e.setValue([]), e.delete_chat_history({}), WY();
71363
71366
  },
71364
71367
  children: (0, import_jsx_runtime.jsx)(RotateCw, {
71365
71368
  className: "h-3 w-3"
@@ -71368,9 +71371,9 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71368
71371
  }),
71369
71372
  (0, import_jsx_runtime.jsxs)("div", {
71370
71373
  className: "grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col",
71371
- ref: w,
71374
+ ref: O,
71372
71375
  children: [
71373
- G.length === 0 && (0, import_jsx_runtime.jsxs)("div", {
71376
+ LY.length === 0 && (0, import_jsx_runtime.jsxs)("div", {
71374
71377
  className: "flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4",
71375
71378
  children: [
71376
71379
  (0, import_jsx_runtime.jsx)(BotMessageSquare, {
@@ -71386,9 +71389,9 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71386
71389
  })
71387
71390
  ]
71388
71391
  }),
71389
- G.map((e2, r2) => {
71392
+ LY.map((e2, r2) => {
71390
71393
  var _a3;
71391
- let c2 = (_a3 = e2.parts) == null ? void 0 : _a3.filter((e3) => e3.type === "text").map((e3) => e3.text).join("\n"), d2 = r2 === G.length - 1;
71394
+ let c2 = (_a3 = e2.parts) == null ? void 0 : _a3.filter((e3) => e3.type === "text").map((e3) => e3.text).join("\n"), d2 = r2 === LY.length - 1;
71392
71395
  return (0, import_jsx_runtime.jsxs)("div", {
71393
71396
  className: cn("flex flex-col group gap-2", e2.role === "user" ? "items-end" : "items-start"),
71394
71397
  children: [
@@ -71396,7 +71399,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71396
71399
  className: `max-w-[80%] p-3 rounded-lg ${e2.role === "user" ? "bg-(--sky-11) text-(--slate-1) whitespace-pre-wrap" : "bg-(--slate-4) text-(--slate-12)"}`,
71397
71400
  children: renderUIMessage({
71398
71401
  message: e2,
71399
- isStreamingReasoning: RY === "streaming",
71402
+ isStreamingReasoning: BY === "streaming",
71400
71403
  isLast: d2
71401
71404
  })
71402
71405
  }),
@@ -71410,7 +71413,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71410
71413
  }),
71411
71414
  (0, import_jsx_runtime.jsx)("button", {
71412
71415
  type: "button",
71413
- onClick: () => WY(e2.id),
71416
+ onClick: () => KY(e2.id),
71414
71417
  className: "text-xs text-(--slate-9) hover:text-(--slate-11)",
71415
71418
  children: (0, import_jsx_runtime.jsx)(Trash2, {
71416
71419
  className: "h-3 w-3 text-(--red-9)"
@@ -71419,9 +71422,9 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71419
71422
  ]
71420
71423
  })
71421
71424
  ]
71422
- }, e2.id);
71425
+ }, `${e2.id}-${r2}`);
71423
71426
  }),
71424
- UY && (0, import_jsx_runtime.jsxs)("div", {
71427
+ GY && (0, import_jsx_runtime.jsxs)("div", {
71425
71428
  className: "flex items-center justify-center space-x-2 mb-4",
71426
71429
  children: [
71427
71430
  (0, import_jsx_runtime.jsx)(Spinner, {
@@ -71430,22 +71433,22 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71430
71433
  (0, import_jsx_runtime.jsx)(Button, {
71431
71434
  variant: "link",
71432
71435
  size: "sm",
71433
- onClick: () => zY(),
71436
+ onClick: () => VY(),
71434
71437
  className: "text-(--red-9) hover:text-(--red-11)",
71435
71438
  children: "Stop"
71436
71439
  })
71437
71440
  ]
71438
71441
  }),
71439
- BY && (0, import_jsx_runtime.jsxs)("div", {
71442
+ HY && (0, import_jsx_runtime.jsxs)("div", {
71440
71443
  className: "flex items-center justify-center space-x-2 mb-4",
71441
71444
  children: [
71442
71445
  (0, import_jsx_runtime.jsx)(ErrorBanner, {
71443
- error: BY
71446
+ error: HY
71444
71447
  }),
71445
71448
  (0, import_jsx_runtime.jsx)(Button, {
71446
71449
  variant: "outline",
71447
71450
  size: "sm",
71448
- onClick: () => VY(),
71451
+ onClick: () => UY(),
71449
71452
  children: "Retry"
71450
71453
  })
71451
71454
  ]
@@ -71455,8 +71458,8 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71455
71458
  (0, import_jsx_runtime.jsxs)("form", {
71456
71459
  onSubmit: async (e2) => {
71457
71460
  e2.preventDefault();
71458
- let c2 = h ? await convertToFileUIPart(h) : void 0;
71459
- q({
71461
+ let c2 = v ? await convertToFileUIPart(v) : void 0;
71462
+ RY({
71460
71463
  role: "user",
71461
71464
  parts: [
71462
71465
  {
@@ -71465,9 +71468,9 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71465
71468
  },
71466
71469
  ...c2 ?? []
71467
71470
  ]
71468
- }), YY();
71471
+ }), ZY();
71469
71472
  },
71470
- ref: y,
71473
+ ref: w,
71471
71474
  className: "flex w-full border-t border-(--slate-6) px-2 py-1 items-center",
71472
71475
  children: [
71473
71476
  e.showConfigurationControls && (0, import_jsx_runtime.jsx)(ConfigPopup, {
@@ -71478,52 +71481,52 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71478
71481
  prompts: e.prompts,
71479
71482
  onSelect: (e2) => {
71480
71483
  c(e2), requestAnimationFrame(() => {
71481
- JY == null ? void 0 : JY.focus(), moveToEndOfEditor(JY);
71484
+ XY == null ? void 0 : XY.focus(), moveToEndOfEditor(XY);
71482
71485
  });
71483
71486
  }
71484
71487
  }),
71485
71488
  (0, import_jsx_runtime.jsx)(PromptInput, {
71486
71489
  className: "rounded-sm mr-2",
71487
- placeholder: qY,
71490
+ placeholder: YY,
71488
71491
  value: r,
71489
- inputRef: S,
71492
+ inputRef: E,
71490
71493
  maxHeight: e.maxHeight ? `${e.maxHeight / 2}px` : void 0,
71491
71494
  onChange: c,
71492
71495
  onSubmit: (e2, r2) => {
71493
71496
  var _a3;
71494
- r2.trim() && ((_a3 = y.current) == null ? void 0 : _a3.requestSubmit());
71497
+ r2.trim() && ((_a3 = w.current) == null ? void 0 : _a3.requestSubmit());
71495
71498
  },
71496
71499
  onClose: () => {
71497
71500
  },
71498
- additionalCompletions: KY
71501
+ additionalCompletions: JY
71499
71502
  }),
71500
- h && h.length === 1 && (0, import_jsx_runtime.jsx)("span", {
71501
- title: h[0].name,
71503
+ v && v.length === 1 && (0, import_jsx_runtime.jsx)("span", {
71504
+ title: v[0].name,
71502
71505
  className: "text-sm text-(--slate-11) truncate shrink-0 w-fit max-w-24",
71503
- children: h[0].name
71506
+ children: v[0].name
71504
71507
  }),
71505
- h && h.length > 1 && (0, import_jsx_runtime.jsxs)("span", {
71508
+ v && v.length > 1 && (0, import_jsx_runtime.jsxs)("span", {
71506
71509
  title: [
71507
- ...h
71510
+ ...v
71508
71511
  ].map((e2) => e2.name).join("\n"),
71509
71512
  className: "text-sm text-(--slate-11) truncate shrink-0",
71510
71513
  children: [
71511
- h.length,
71514
+ v.length,
71512
71515
  " files"
71513
71516
  ]
71514
71517
  }),
71515
- h && h.length > 0 && (0, import_jsx_runtime.jsx)(Button, {
71518
+ v && v.length > 0 && (0, import_jsx_runtime.jsx)(Button, {
71516
71519
  type: "button",
71517
71520
  variant: "text",
71518
71521
  size: "sm",
71519
71522
  onClick: () => {
71520
- _(void 0), v.current && (v.current.value = "");
71523
+ y(void 0), S.current && (S.current.value = "");
71521
71524
  },
71522
71525
  children: (0, import_jsx_runtime.jsx)(X, {
71523
71526
  className: "size-3"
71524
71527
  })
71525
71528
  }),
71526
- GY && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
71529
+ qY && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
71527
71530
  children: [
71528
71531
  (0, import_jsx_runtime.jsx)(Button, {
71529
71532
  type: "button",
@@ -71531,7 +71534,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71531
71534
  size: "sm",
71532
71535
  onClick: () => {
71533
71536
  var _a3;
71534
- return (_a3 = v.current) == null ? void 0 : _a3.click();
71537
+ return (_a3 = S.current) == null ? void 0 : _a3.click();
71535
71538
  },
71536
71539
  children: (0, import_jsx_runtime.jsx)(Paperclip, {
71537
71540
  className: "h-4"
@@ -71539,12 +71542,12 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71539
71542
  }),
71540
71543
  (0, import_jsx_runtime.jsx)("input", {
71541
71544
  type: "file",
71542
- ref: v,
71545
+ ref: S,
71543
71546
  className: "hidden",
71544
71547
  multiple: true,
71545
71548
  accept: Array.isArray(e.allowAttachments) ? e.allowAttachments.join(",") : void 0,
71546
71549
  onChange: (e2) => {
71547
- e2.target.files && _([
71550
+ e2.target.files && y([
71548
71551
  ...e2.target.files
71549
71552
  ]);
71550
71553
  }
@@ -71553,7 +71556,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71553
71556
  }),
71554
71557
  (0, import_jsx_runtime.jsx)(Button, {
71555
71558
  type: "submit",
71556
- disabled: UY || !r,
71559
+ disabled: GY || !r,
71557
71560
  variant: "outline",
71558
71561
  size: "sm",
71559
71562
  className: "text-(--slate-11)",
@@ -71600,25 +71603,24 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71600
71603
  description: "Penalizes new tokens (-2: favor, 2: avoid)"
71601
71604
  }
71602
71605
  }, ConfigPopup = (e) => {
71603
- let r = (0, import_compiler_runtime$86.c)(16), { config: c, onChange: d } = e, [f, h] = (0, import_react.useState)(c), [_, v] = (0, import_react.useState)(false), y;
71604
- r[0] !== f || r[1] !== d ? (y = (e2, r2) => {
71605
- let c2 = r2 === null || Number.isNaN(r2) ? null : r2;
71606
- if (c2 !== null) {
71607
- let { min: r3, max: d2 } = configDescriptions[e2];
71608
- c2 = Math.max(r3, Math.min(d2, c2));
71609
- }
71610
- let _2 = {
71611
- ...f,
71612
- [e2]: c2
71613
- };
71614
- h(_2), d(_2);
71615
- }, r[0] = f, r[1] = d, r[2] = y) : y = r[2];
71606
+ let r = (0, import_compiler_runtime$86.c)(16), { config: c, onChange: d } = e, [f, h] = (0, import_react.useState)(false), _;
71607
+ r[0] !== c || r[1] !== d ? (_ = (e2, r2) => {
71608
+ let f2 = r2 === null || Number.isNaN(r2) ? null : r2;
71609
+ if (f2 !== null) {
71610
+ let { min: r3, max: c2 } = configDescriptions[e2];
71611
+ f2 = Math.max(r3, Math.min(c2, f2));
71612
+ }
71613
+ d({
71614
+ ...c,
71615
+ [e2]: f2
71616
+ });
71617
+ }, r[0] = c, r[1] = d, r[2] = _) : _ = r[2];
71618
+ let v = _, y;
71619
+ r[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = (e2) => {
71620
+ e2.key === "Enter" && (e2.preventDefault(), h(false));
71621
+ }, r[3] = y) : y = r[3];
71616
71622
  let S = y, w;
71617
- r[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (w = (e2) => {
71618
- e2.key === "Enter" && (e2.preventDefault(), v(false));
71619
- }, r[3] = w) : w = r[3];
71620
- let E = w, O;
71621
- r[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (O = (0, import_jsx_runtime.jsx)(Tooltip, {
71623
+ r[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (w = (0, import_jsx_runtime.jsx)(Tooltip, {
71622
71624
  content: "Configuration",
71623
71625
  children: (0, import_jsx_runtime.jsx)(PopoverTrigger, {
71624
71626
  asChild: true,
@@ -71631,16 +71633,16 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71631
71633
  })
71632
71634
  })
71633
71635
  })
71634
- }), r[4] = O) : O = r[4];
71635
- let M;
71636
- r[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M = (0, import_jsx_runtime.jsx)("h4", {
71636
+ }), r[4] = w) : w = r[4];
71637
+ let E;
71638
+ r[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (E = (0, import_jsx_runtime.jsx)("h4", {
71637
71639
  className: "font-bold leading-none",
71638
71640
  children: "Configuration"
71639
- }), r[5] = M) : M = r[5];
71640
- let I;
71641
- if (r[6] !== S || r[7] !== f) {
71641
+ }), r[5] = E) : E = r[5];
71642
+ let O;
71643
+ if (r[6] !== c || r[7] !== v) {
71642
71644
  let e2;
71643
- r[9] === S ? e2 = r[10] : (e2 = (e3) => {
71645
+ r[9] === v ? e2 = r[10] : (e2 = (e3) => {
71644
71646
  let [r2, c2] = e3;
71645
71647
  return (0, import_jsx_runtime.jsxs)("div", {
71646
71648
  className: "grid grid-cols-3 items-center gap-1",
@@ -71671,34 +71673,34 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71671
71673
  minValue: configDescriptions[r2].min,
71672
71674
  maxValue: configDescriptions[r2].max,
71673
71675
  step: configDescriptions[r2].step ?? 1,
71674
- onChange: (e4) => S(r2, e4),
71675
- onKeyDown: E,
71676
+ onChange: (e4) => v(r2, e4),
71677
+ onKeyDown: S,
71676
71678
  className: "col-span-3"
71677
71679
  })
71678
71680
  ]
71679
71681
  }, r2);
71680
- }, r[9] = S, r[10] = e2), I = Objects.entries(f).map(e2), r[6] = S, r[7] = f, r[8] = I;
71681
- } else I = r[8];
71682
- let z;
71683
- r[11] === I ? z = r[12] : (z = (0, import_jsx_runtime.jsx)(PopoverContent, {
71682
+ }, r[9] = v, r[10] = e2), O = Objects.entries(c).map(e2), r[6] = c, r[7] = v, r[8] = O;
71683
+ } else O = r[8];
71684
+ let M;
71685
+ r[11] === O ? M = r[12] : (M = (0, import_jsx_runtime.jsx)(PopoverContent, {
71684
71686
  className: "w-70 border",
71685
71687
  children: (0, import_jsx_runtime.jsxs)("div", {
71686
71688
  className: "grid gap-3",
71687
71689
  children: [
71688
- M,
71689
- I
71690
+ E,
71691
+ O
71690
71692
  ]
71691
71693
  })
71692
- }), r[11] = I, r[12] = z);
71693
- let G;
71694
- return r[13] !== _ || r[14] !== z ? (G = (0, import_jsx_runtime.jsxs)(Popover$1, {
71695
- open: _,
71696
- onOpenChange: v,
71694
+ }), r[11] = O, r[12] = M);
71695
+ let I;
71696
+ return r[13] !== f || r[14] !== M ? (I = (0, import_jsx_runtime.jsxs)(Popover$1, {
71697
+ open: f,
71698
+ onOpenChange: h,
71697
71699
  children: [
71698
- O,
71699
- z
71700
+ w,
71701
+ M
71700
71702
  ]
71701
- }), r[13] = _, r[14] = z, r[15] = G) : G = r[15], G;
71703
+ }), r[13] = f, r[14] = M, r[15] = I) : I = r[15], I;
71702
71704
  }, PromptsPopover = (e) => {
71703
71705
  let r = (0, import_compiler_runtime$86.c)(18), { prompts: c, onSelect: d } = e, [f, h] = (0, import_react.useState)(false), [_, v] = (0, import_react.useState)(""), y;
71704
71706
  r[0] === d ? y = r[1] : (y = (e2) => {
@@ -71886,8 +71888,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71886
71888
  allowAttachments: union([
71887
71889
  boolean$2(),
71888
71890
  string$2().array()
71889
- ]),
71890
- frontendManaged: boolean$2()
71891
+ ])
71891
71892
  })).withFunctions({
71892
71893
  get_chat_history: rpc.input(object$1({})).output(object$1({
71893
71894
  messages: messageSchema
@@ -71899,10 +71900,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71899
71900
  send_prompt: rpc.input(object$1({
71900
71901
  messages: messageSchema,
71901
71902
  config: configSchema
71902
- })).output(union([
71903
- string$2(),
71904
- _null()
71905
- ]))
71903
+ })).output(unknown())
71906
71904
  }).renderer((e) => {
71907
71905
  var _a2;
71908
71906
  return (0, import_jsx_runtime.jsx)(TooltipProvider, {
@@ -71912,7 +71910,6 @@ Image URL: ${r.imageUrl}`)), contextToXml({
71912
71910
  showConfigurationControls: e.data.showConfigurationControls,
71913
71911
  maxHeight: e.data.maxHeight,
71914
71912
  allowAttachments: e.data.allowAttachments,
71915
- frontendManaged: e.data.frontendManaged,
71916
71913
  config: e.data.config,
71917
71914
  get_chat_history: e.functions.get_chat_history,
71918
71915
  delete_chat_history: e.functions.delete_chat_history,
@@ -72009,7 +72006,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
72009
72006
  function getVegaFieldTypes(e) {
72010
72007
  return !e || Object.keys(e).length === 0 ? "auto" : Objects.mapValues(e, (e2) => e2 === "date" || e2 === "time" ? "string" : e2 === "datetime" ? "date" : e2);
72011
72008
  }
72012
- var import_compiler_runtime$84 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-Bv8bVIJ9.js").then(async (m2) => {
72009
+ var import_compiler_runtime$84 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-DsVDCmV2.js").then(async (m2) => {
72013
72010
  await m2.__tla;
72014
72011
  return m2;
72015
72012
  }));
@@ -83667,7 +83664,7 @@ ${c}
83667
83664
  fullWidth: v,
83668
83665
  children: z
83669
83666
  }), r[19] = v, r[20] = y, r[21] = c, r[22] = z, r[23] = G) : G = r[23], G;
83670
- }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-BIfUtj_S.js"));
83667
+ }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-D5KcOOzu.js"));
83671
83668
  const DataExplorerPlugin = createPlugin("marimo-data-explorer").withData(object$1({
83672
83669
  label: string$2().nullish(),
83673
83670
  data: string$2()
@@ -85559,7 +85556,7 @@ ${c}
85559
85556
  transforms: []
85560
85557
  };
85561
85558
  const DataFrameComponent = (0, import_react.memo)((e) => {
85562
- let r = (0, import_compiler_runtime$39.c)(71), { columns: c, pageSize: d, showDownload: f, lazy: h, value: _, setValue: v, get_dataframe: y, get_column_values: S, search: w, download_as: E, host: O } = e, M;
85559
+ let r = (0, import_compiler_runtime$39.c)(69), { columns: c, pageSize: d, showDownload: f, lazy: h, value: _, setValue: v, get_dataframe: y, get_column_values: S, search: w, download_as: E, host: O } = e, M;
85563
85560
  r[0] === y ? M = r[1] : (M = () => y({}), r[0] = y, r[1] = M);
85564
85561
  let I = _ == null ? void 0 : _.transforms, z;
85565
85562
  r[2] === I ? z = r[3] : (z = [
@@ -85567,29 +85564,29 @@ ${c}
85567
85564
  ], r[2] = I, r[3] = z);
85568
85565
  let { data: G, error: q, isPending: LY } = useAsyncData(M, z), RY;
85569
85566
  r[4] === G ? RY = r[5] : (RY = G || {}, r[4] = G, r[5] = RY);
85570
- let { url: zY, total_rows: BY, row_headers: VY, field_types: HY, column_types_per_step: UY, python_code: WY, sql_code: GY } = RY, [KY, qY] = (0, import_react.useState)(_ || EMPTY), JY = (0, import_react.useRef)(null), YY;
85571
- r[6] === h ? YY = r[7] : (YY = (e2) => {
85567
+ let { url: zY, total_rows: BY, row_headers: VY, field_types: HY, column_types_per_step: UY, python_code: WY, sql_code: GY } = RY, KY = HY == null ? void 0 : HY.length, [qY, JY] = (0, import_react.useState)(_ || EMPTY), YY = (0, import_react.useRef)(null), XY;
85568
+ r[6] === h ? XY = r[7] : (XY = (e2) => {
85572
85569
  var _a2;
85573
- h && e2 !== "transform" && ((_a2 = JY.current) == null ? void 0 : _a2.submit());
85574
- }, r[6] = h, r[7] = YY);
85575
- let XY = YY, ZY = (0, import_react.useRef)(KY), QY;
85576
- r[8] === KY ? QY = r[9] : (QY = () => {
85577
- ZY.current = KY;
85578
- }, r[8] = KY, r[9] = QY), (0, import_react.useEffect)(QY);
85579
- let $Y;
85580
- r[10] !== v || r[11] !== (_ == null ? void 0 : _.transforms.length) ? ($Y = () => {
85581
- let e2 = ZY.current;
85570
+ h && e2 !== "transform" && ((_a2 = YY.current) == null ? void 0 : _a2.submit());
85571
+ }, r[6] = h, r[7] = XY);
85572
+ let ZY = XY, QY = (0, import_react.useRef)(qY), $Y;
85573
+ r[8] === qY ? $Y = r[9] : ($Y = () => {
85574
+ QY.current = qY;
85575
+ }, r[8] = qY, r[9] = $Y), (0, import_react.useEffect)($Y);
85576
+ let eX;
85577
+ r[10] !== v || r[11] !== (_ == null ? void 0 : _.transforms.length) ? (eX = () => {
85578
+ let e2 = QY.current;
85582
85579
  (_ == null ? void 0 : _.transforms.length) !== e2.transforms.length && v(e2);
85583
- }, r[10] = v, r[11] = _ == null ? void 0 : _.transforms.length, r[12] = $Y) : $Y = r[12];
85584
- let eX = _ == null ? void 0 : _.transforms.length, tX;
85585
- r[13] !== G || r[14] !== v || r[15] !== eX ? (tX = [
85580
+ }, r[10] = v, r[11] = _ == null ? void 0 : _.transforms.length, r[12] = eX) : eX = r[12];
85581
+ let tX = _ == null ? void 0 : _.transforms.length, nX;
85582
+ r[13] !== G || r[14] !== v || r[15] !== tX ? (nX = [
85586
85583
  G,
85587
- eX,
85588
- ZY,
85584
+ tX,
85585
+ QY,
85589
85586
  v
85590
- ], r[13] = G, r[14] = v, r[15] = eX, r[16] = tX) : tX = r[16], (0, import_react.useEffect)($Y, tX);
85591
- let nX;
85592
- r[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (nX = (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85587
+ ], r[13] = G, r[14] = v, r[15] = tX, r[16] = nX) : nX = r[16], (0, import_react.useEffect)(eX, nX);
85588
+ let rX;
85589
+ r[17] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (rX = (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85593
85590
  value: "transform",
85594
85591
  className: "text-xs py-1",
85595
85592
  children: [
@@ -85598,9 +85595,9 @@ ${c}
85598
85595
  }),
85599
85596
  "Transform"
85600
85597
  ]
85601
- }), r[17] = nX) : nX = r[17];
85602
- let rX;
85603
- r[18] === WY ? rX = r[19] : (rX = WY && (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85598
+ }), r[17] = rX) : rX = r[17];
85599
+ let iX;
85600
+ r[18] === WY ? iX = r[19] : (iX = WY && (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85604
85601
  value: "python-code",
85605
85602
  className: "text-xs py-1",
85606
85603
  children: [
@@ -85609,9 +85606,9 @@ ${c}
85609
85606
  }),
85610
85607
  "Python Code"
85611
85608
  ]
85612
- }), r[18] = WY, r[19] = rX);
85613
- let iX;
85614
- r[20] === GY ? iX = r[21] : (iX = GY && (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85609
+ }), r[18] = WY, r[19] = iX);
85610
+ let aX;
85611
+ r[20] === GY ? aX = r[21] : (aX = GY && (0, import_jsx_runtime.jsxs)(TabsTrigger, {
85615
85612
  value: "sql-code",
85616
85613
  className: "text-xs py-1",
85617
85614
  children: [
@@ -85620,54 +85617,54 @@ ${c}
85620
85617
  }),
85621
85618
  "SQL Code"
85622
85619
  ]
85623
- }), r[20] = GY, r[21] = iX);
85624
- let aX;
85625
- r[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (aX = (0, import_jsx_runtime.jsx)("div", {
85626
- className: "grow"
85627
- }), r[22] = aX) : aX = r[22];
85620
+ }), r[20] = GY, r[21] = aX);
85628
85621
  let oX;
85629
- r[23] !== rX || r[24] !== iX ? (oX = (0, import_jsx_runtime.jsxs)(TabsList, {
85622
+ r[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (oX = (0, import_jsx_runtime.jsx)("div", {
85623
+ className: "grow"
85624
+ }), r[22] = oX) : oX = r[22];
85625
+ let sX;
85626
+ r[23] !== iX || r[24] !== aX ? (sX = (0, import_jsx_runtime.jsxs)(TabsList, {
85630
85627
  className: "h-8",
85631
85628
  children: [
85632
- nX,
85633
85629
  rX,
85634
85630
  iX,
85635
- aX
85631
+ aX,
85632
+ oX
85636
85633
  ]
85637
- }), r[23] = rX, r[24] = iX, r[25] = oX) : oX = r[25];
85638
- let sX;
85639
- r[26] === LY ? sX = r[27] : (sX = LY && (0, import_jsx_runtime.jsx)(Spinner, {
85640
- size: "small"
85641
- }), r[26] = LY, r[27] = sX);
85634
+ }), r[23] = iX, r[24] = aX, r[25] = sX) : sX = r[25];
85642
85635
  let cX;
85643
- r[28] !== oX || r[29] !== sX ? (cX = (0, import_jsx_runtime.jsxs)("div", {
85636
+ r[26] === LY ? cX = r[27] : (cX = LY && (0, import_jsx_runtime.jsx)(Spinner, {
85637
+ size: "small"
85638
+ }), r[26] = LY, r[27] = cX);
85639
+ let lX;
85640
+ r[28] !== sX || r[29] !== cX ? (lX = (0, import_jsx_runtime.jsxs)("div", {
85644
85641
  className: "flex items-center gap-2",
85645
85642
  children: [
85646
- oX,
85647
- sX
85643
+ sX,
85644
+ cX
85648
85645
  ]
85649
- }), r[28] = oX, r[29] = sX, r[30] = cX) : cX = r[30];
85650
- let lX;
85651
- r[31] !== v || r[32] !== _ ? (lX = (e2) => {
85652
- isEqual_default(e2, _) || (v(e2), qY(e2));
85653
- }, r[31] = v, r[32] = _, r[33] = lX) : lX = r[33];
85646
+ }), r[28] = sX, r[29] = cX, r[30] = lX) : lX = r[30];
85654
85647
  let uX;
85655
- r[34] !== UY || r[35] !== c || r[36] !== S || r[37] !== KY || r[38] !== h || r[39] !== lX ? (uX = (0, import_jsx_runtime.jsx)(TabsContent, {
85648
+ r[31] !== v || r[32] !== _ ? (uX = (e2) => {
85649
+ isEqual_default(e2, _) || (v(e2), JY(e2));
85650
+ }, r[31] = v, r[32] = _, r[33] = uX) : uX = r[33];
85651
+ let dX;
85652
+ r[34] !== UY || r[35] !== c || r[36] !== S || r[37] !== qY || r[38] !== h || r[39] !== uX ? (dX = (0, import_jsx_runtime.jsx)(TabsContent, {
85656
85653
  value: "transform",
85657
85654
  className: "mt-1 border rounded-t overflow-hidden",
85658
85655
  children: (0, import_jsx_runtime.jsx)(TransformPanel, {
85659
- ref: JY,
85660
- initialValue: KY,
85656
+ ref: YY,
85657
+ initialValue: qY,
85661
85658
  columns: c,
85662
- onChange: lX,
85663
- onInvalidChange: qY,
85659
+ onChange: uX,
85660
+ onInvalidChange: JY,
85664
85661
  getColumnValues: S,
85665
85662
  columnTypesPerStep: UY,
85666
85663
  lazy: h
85667
85664
  })
85668
- }), r[34] = UY, r[35] = c, r[36] = S, r[37] = KY, r[38] = h, r[39] = lX, r[40] = uX) : uX = r[40];
85669
- let dX;
85670
- r[41] === WY ? dX = r[42] : (dX = WY && (0, import_jsx_runtime.jsx)(TabsContent, {
85665
+ }), r[34] = UY, r[35] = c, r[36] = S, r[37] = qY, r[38] = h, r[39] = uX, r[40] = dX) : dX = r[40];
85666
+ let fX;
85667
+ r[41] === WY ? fX = r[42] : (fX = WY && (0, import_jsx_runtime.jsx)(TabsContent, {
85671
85668
  value: "python-code",
85672
85669
  className: "mt-1 border rounded-t overflow-hidden",
85673
85670
  children: (0, import_jsx_runtime.jsx)(ReadonlyCode, {
@@ -85676,9 +85673,9 @@ ${c}
85676
85673
  code: WY,
85677
85674
  language: "python"
85678
85675
  })
85679
- }), r[41] = WY, r[42] = dX);
85680
- let fX;
85681
- r[43] === GY ? fX = r[44] : (fX = GY && (0, import_jsx_runtime.jsx)(TabsContent, {
85676
+ }), r[41] = WY, r[42] = fX);
85677
+ let pX;
85678
+ r[43] === GY ? pX = r[44] : (pX = GY && (0, import_jsx_runtime.jsx)(TabsContent, {
85682
85679
  value: "sql-code",
85683
85680
  className: "mt-1 border rounded-t overflow-hidden",
85684
85681
  children: (0, import_jsx_runtime.jsx)(ReadonlyCode, {
@@ -85687,37 +85684,35 @@ ${c}
85687
85684
  code: GY,
85688
85685
  language: "sql"
85689
85686
  })
85690
- }), r[43] = GY, r[44] = fX);
85691
- let pX;
85692
- r[45] !== XY || r[46] !== cX || r[47] !== uX || r[48] !== dX || r[49] !== fX ? (pX = (0, import_jsx_runtime.jsxs)(Tabs, {
85687
+ }), r[43] = GY, r[44] = pX);
85688
+ let mX;
85689
+ r[45] !== ZY || r[46] !== lX || r[47] !== dX || r[48] !== fX || r[49] !== pX ? (mX = (0, import_jsx_runtime.jsxs)(Tabs, {
85693
85690
  defaultValue: "transform",
85694
- onValueChange: XY,
85691
+ onValueChange: ZY,
85695
85692
  children: [
85696
- cX,
85697
- uX,
85693
+ lX,
85698
85694
  dX,
85699
- fX
85695
+ fX,
85696
+ pX
85700
85697
  ]
85701
- }), r[45] = XY, r[46] = cX, r[47] = uX, r[48] = dX, r[49] = fX, r[50] = pX) : pX = r[50];
85702
- let mX;
85703
- r[51] === q ? mX = r[52] : (mX = q && (0, import_jsx_runtime.jsx)(ErrorBanner, {
85698
+ }), r[45] = ZY, r[46] = lX, r[47] = dX, r[48] = fX, r[49] = pX, r[50] = mX) : mX = r[50];
85699
+ let hX;
85700
+ r[51] === q ? hX = r[52] : (hX = q && (0, import_jsx_runtime.jsx)(ErrorBanner, {
85704
85701
  error: q
85705
- }), r[51] = q, r[52] = mX);
85706
- let hX = zY || "", gX = BY ?? 0, _X;
85707
- r[53] === c ? _X = r[54] : (_X = Object.keys(c), r[53] = c, r[54] = _X);
85708
- let vX = VY || Arrays.EMPTY, yX = BY && BY > 5 || false, bX;
85709
- r[55] !== E || r[56] !== HY || r[57] !== O || r[58] !== d || r[59] !== w || r[60] !== f || r[61] !== hX || r[62] !== gX || r[63] !== _X.length || r[64] !== vX || r[65] !== yX ? (bX = (0, import_jsx_runtime.jsx)(LoadingDataTableComponent, {
85702
+ }), r[51] = q, r[52] = hX);
85703
+ let gX = zY || "", _X = BY ?? 0, vX = KY ?? 0, yX = VY || Arrays.EMPTY, bX = BY && BY > 5 || false, xX;
85704
+ r[53] !== E || r[54] !== HY || r[55] !== O || r[56] !== d || r[57] !== w || r[58] !== f || r[59] !== gX || r[60] !== _X || r[61] !== vX || r[62] !== yX || r[63] !== bX ? (xX = (0, import_jsx_runtime.jsx)(LoadingDataTableComponent, {
85710
85705
  label: null,
85711
85706
  className: "rounded-b border-x border-b",
85712
- data: hX,
85707
+ data: gX,
85713
85708
  hasStableRowId: false,
85714
- totalRows: gX,
85715
- totalColumns: _X.length,
85709
+ totalRows: _X,
85710
+ totalColumns: vX,
85716
85711
  maxColumns: "all",
85717
85712
  pageSize: d,
85718
85713
  pagination: true,
85719
85714
  fieldTypes: HY,
85720
- rowHeaders: vX,
85715
+ rowHeaders: yX,
85721
85716
  showDownload: f,
85722
85717
  download_as: E,
85723
85718
  enableSearch: false,
@@ -85726,7 +85721,7 @@ ${c}
85726
85721
  showColumnSummaries: false,
85727
85722
  showDataTypes: true,
85728
85723
  get_column_summaries: getColumnSummaries,
85729
- showPageSizeSelector: yX,
85724
+ showPageSizeSelector: bX,
85730
85725
  showColumnExplorer: false,
85731
85726
  showRowExplorer: true,
85732
85727
  showChartBuilder: false,
@@ -85735,15 +85730,15 @@ ${c}
85735
85730
  selection: null,
85736
85731
  lazy: false,
85737
85732
  host: O
85738
- }), r[55] = E, r[56] = HY, r[57] = O, r[58] = d, r[59] = w, r[60] = f, r[61] = hX, r[62] = gX, r[63] = _X.length, r[64] = vX, r[65] = yX, r[66] = bX) : bX = r[66];
85739
- let xX;
85740
- return r[67] !== pX || r[68] !== mX || r[69] !== bX ? (xX = (0, import_jsx_runtime.jsxs)("div", {
85733
+ }), r[53] = E, r[54] = HY, r[55] = O, r[56] = d, r[57] = w, r[58] = f, r[59] = gX, r[60] = _X, r[61] = vX, r[62] = yX, r[63] = bX, r[64] = xX) : xX = r[64];
85734
+ let SX;
85735
+ return r[65] !== mX || r[66] !== hX || r[67] !== xX ? (SX = (0, import_jsx_runtime.jsxs)("div", {
85741
85736
  children: [
85742
- pX,
85743
85737
  mX,
85744
- bX
85738
+ hX,
85739
+ xX
85745
85740
  ]
85746
- }), r[67] = pX, r[68] = mX, r[69] = bX, r[70] = xX) : xX = r[70], xX;
85741
+ }), r[65] = mX, r[66] = hX, r[67] = xX, r[68] = SX) : SX = r[68], SX;
85747
85742
  });
85748
85743
  DataFrameComponent.displayName = "DataFrameComponent";
85749
85744
  function getColumnSummaries() {
@@ -93989,7 +93984,7 @@ ${c}
93989
93984
  return true;
93990
93985
  }
93991
93986
  }
93992
- var LazyVegaComponent = import_react.lazy(() => import("./vega-component-BGTsperM.js")), VegaPlugin = class {
93987
+ var LazyVegaComponent = import_react.lazy(() => import("./vega-component-B2QrGnW8.js")), VegaPlugin = class {
93993
93988
  constructor() {
93994
93989
  __publicField(this, "tagName", "marimo-vega");
93995
93990
  __publicField(this, "validator", object$1({
@@ -94129,7 +94124,7 @@ ${c}
94129
94124
  children: e.children
94130
94125
  });
94131
94126
  }
94132
- }, LazySlidesComponent$1 = import_react.lazy(() => import("./slides-component-CJJp5XN4.js"));
94127
+ }, LazySlidesComponent$1 = import_react.lazy(() => import("./slides-component-BHWhzwDN.js"));
94133
94128
  const DownloadPlugin = createPlugin("marimo-download").withData(object$1({
94134
94129
  data: string$2(),
94135
94130
  disabled: boolean$2().default(false),
@@ -94311,7 +94306,7 @@ ${c}
94311
94306
  diagram: e.data.diagram
94312
94307
  });
94313
94308
  }
94314
- }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-JA6veDHv.js")), import_compiler_runtime$19 = require_compiler_runtime();
94309
+ }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-DZjjc-kI.js")), import_compiler_runtime$19 = require_compiler_runtime();
94315
94310
  function getRootScrollableElement() {
94316
94311
  return getInitialAppMode() === "edit" ? document.getElementById("App") : void 0;
94317
94312
  }
@@ -100570,7 +100565,7 @@ Defaulting to \`null\`.`;
100570
100565
  cells: []
100571
100566
  })
100572
100567
  };
100573
- var import_compiler_runtime$8 = require_compiler_runtime(), LazySlidesComponent = import_react.lazy(() => import("./slides-component-CJJp5XN4.js"));
100568
+ var import_compiler_runtime$8 = require_compiler_runtime(), LazySlidesComponent = import_react.lazy(() => import("./slides-component-BHWhzwDN.js"));
100574
100569
  const SlidesLayoutRenderer = (e) => {
100575
100570
  let r = (0, import_compiler_runtime$8.c)(11), { cells: c, mode: d } = e, f = d === "read", h;
100576
100571
  if (r[0] !== c || r[1] !== d) {
@@ -100812,7 +100807,7 @@ Defaulting to \`null\`.`;
100812
100807
  }
100813
100808
  var import_compiler_runtime$6 = require_compiler_runtime();
100814
100809
  const NameCellContentEditable = (e) => {
100815
- let r = (0, import_compiler_runtime$6.c)(13), { value: c, cellId: d, className: f } = e, { updateCellName: h } = useCellActions(), _;
100810
+ let r = (0, import_compiler_runtime$6.c)(12), { value: c, cellId: d, className: f } = e, { updateCellName: h } = useCellActions(), _;
100816
100811
  r[0] !== d || r[1] !== h ? (_ = (e2) => h({
100817
100812
  cellId: d,
100818
100813
  name: e2
@@ -100821,22 +100816,20 @@ Defaulting to \`null\`.`;
100821
100816
  if (isInternalCellName(c)) return null;
100822
100817
  let y = v.focusing ? "" : "text-ellipsis", S;
100823
100818
  r[3] !== f || r[4] !== y ? (S = cn("outline-hidden border hover:border-cyan-500/40 focus:border-cyan-500/40", y, f), r[3] = f, r[4] = y, r[5] = S) : S = r[5];
100824
- let w = v.onChange, E = v.onBlur, O = v.onFocus, M;
100825
- r[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M = Events.onEnter(_temp$3), r[6] = M) : M = r[6];
100826
- let I;
100827
- return r[7] !== v.onBlur || r[8] !== v.onChange || r[9] !== v.onFocus || r[10] !== S || r[11] !== c ? (I = (0, import_jsx_runtime.jsx)(Tooltip, {
100819
+ let w;
100820
+ return r[6] !== v.onBlur || r[7] !== v.onChange || r[8] !== v.onFocus || r[9] !== S || r[10] !== c ? (w = (0, import_jsx_runtime.jsx)(Tooltip, {
100828
100821
  content: "Click to rename",
100829
100822
  children: (0, import_jsx_runtime.jsx)("span", {
100830
100823
  className: S,
100831
100824
  contentEditable: true,
100832
100825
  suppressContentEditableWarning: true,
100833
- onChange: w,
100834
- onBlur: E,
100835
- onFocus: O,
100836
- onKeyDown: M,
100826
+ onChange: v.onChange,
100827
+ onBlur: v.onBlur,
100828
+ onFocus: v.onFocus,
100829
+ onKeyDown: _temp$3,
100837
100830
  children: c
100838
100831
  })
100839
- }), r[7] = v.onBlur, r[8] = v.onChange, r[9] = v.onFocus, r[10] = S, r[11] = c, r[12] = I) : I = r[12], I;
100832
+ }), r[6] = v.onBlur, r[7] = v.onChange, r[8] = v.onFocus, r[9] = S, r[10] = c, r[11] = w) : w = r[11], w;
100840
100833
  };
100841
100834
  function useCellNameInput(e, r) {
100842
100835
  let [c, d] = (0, import_react.useState)(e), [f, h] = (0, import_react.useState)(false), _ = (c2) => {
@@ -100867,7 +100860,7 @@ Defaulting to \`null\`.`;
100867
100860
  };
100868
100861
  }
100869
100862
  function _temp$3(e) {
100870
- e.target instanceof HTMLElement && e.target.blur();
100863
+ e.stopPropagation(), e.key === "Enter" && e.target instanceof HTMLElement && e.target.blur();
100871
100864
  }
100872
100865
  var import_compiler_runtime$5 = require_compiler_runtime(), wrapTextAtom = atomWithStorage("marimo:console:wrapText", false, jotaiJsonStorage);
100873
100866
  function useWrapText() {
@@ -101068,7 +101061,7 @@ Defaulting to \`null\`.`;
101068
101061
  return Logger.warn("Failed to get version from mount config"), null;
101069
101062
  }
101070
101063
  }
101071
- const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.19.3-dev8"), showCodeInRunModeAtom = atom(true);
101064
+ const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.19.4-dev0"), showCodeInRunModeAtom = atom(true);
101072
101065
  atom(null);
101073
101066
  var VIRTUAL_FILE_REGEX = /\/@file\/([^\s"&'/]+)\.([\dA-Za-z]+)/g, VirtualFileTracker = class e {
101074
101067
  constructor() {
@@ -102154,7 +102147,7 @@ ${r}
102154
102147
  return c ? parseIslandEditor(c.dataset.initialValue) : "";
102155
102148
  }
102156
102149
  const islandsInitializedAtom = atom(false), userTriedToInteractWithIslandsAtom = atom(false), shouldShowIslandsWarningIndicatorAtom = atom((e) => e(userTriedToInteractWithIslandsAtom) && e(islandsInitializedAtom) === false);
102157
- var worker_default = "/assets/worker-njnjDMwL.js", IslandsPyodideBridge = class e {
102150
+ var worker_default = "/assets/worker-BR7KVExK.js", IslandsPyodideBridge = class e {
102158
102151
  constructor() {
102159
102152
  __publicField(this, "initialized", new Deferred());
102160
102153
  __publicField(this, "sendComponentValues", async (e2) => (await this.putControlRequest(e2), null));
@@ -102201,6 +102194,7 @@ ${r}
102201
102194
  __publicField(this, "autoExportAsHTML", throwNotImplemented);
102202
102195
  __publicField(this, "autoExportAsMarkdown", throwNotImplemented);
102203
102196
  __publicField(this, "autoExportAsIPYNB", throwNotImplemented);
102197
+ __publicField(this, "updateCellOutputs", throwNotImplemented);
102204
102198
  __publicField(this, "addPackage", throwNotImplemented);
102205
102199
  __publicField(this, "removePackage", throwNotImplemented);
102206
102200
  __publicField(this, "getPackageList", throwNotImplemented);