@marimo-team/islands 0.17.8 → 0.18.0

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 (53) hide show
  1. package/dist/{Combination-BH_L276x.js → Combination-D68fi0fY.js} +22 -21
  2. package/dist/{ConnectedDataExplorerComponent-WbiFXhKG.js → ConnectedDataExplorerComponent-BUgUSo2B.js} +7 -7
  3. package/dist/{any-language-editor-YPQMljy9.js → any-language-editor-BS-Z5AY5.js} +3 -3
  4. package/dist/assets/__vite-browser-external-CSegkGa0.js +1 -0
  5. package/dist/assets/{worker-BrDpRi2I.js → worker-CiT2i-Vo.js} +2 -2
  6. package/dist/{error-banner-BqE1uF21.js → error-banner-CPLhCPHA.js} +24 -24
  7. package/dist/{esm-hR1r0nyt.js → esm-DxgKy8Wv.js} +1 -1
  8. package/dist/{formats-dvT8nDgH.js → formats-oddMfm9_.js} +27 -7
  9. package/dist/{glide-data-editor-B26PhZvE.js → glide-data-editor-BFv4VQnc.js} +4 -4
  10. package/dist/{label-D3LNCORf.js → label-Dsm6T1fr.js} +72 -72
  11. package/dist/main.js +359 -250
  12. package/dist/{mermaid-Dl3ywmV2.js → mermaid-BeGlg1JH.js} +2 -2
  13. package/dist/{react-vega-ypEMYp9o.js → react-vega-DDXWt_PN.js} +852 -1544
  14. package/dist/{react-vega-BIDT9Ttp.js → react-vega-DV2IwPx_.js} +1 -1
  15. package/dist/{spec-qDDGe5hl.js → spec-BotzCMo3.js} +2 -2
  16. package/dist/style.css +1 -1
  17. package/dist/{types-2eTEqSwS.js → types-IRrkdH-H.js} +14 -14
  18. package/dist/{useAsyncData-6gisQ4pR.js → useAsyncData-CsSW6_Zh.js} +1 -1
  19. package/dist/{useTheme-B-2frT0L.js → useTheme-D56Xlrez.js} +1 -0
  20. package/dist/{vega-component-C-bCSv1b.js → vega-component-CLjz4see.js} +6 -6
  21. package/package.json +2 -2
  22. package/src/components/chat/chat-panel.tsx +6 -2
  23. package/src/components/data-table/TableActions.tsx +18 -14
  24. package/src/components/data-table/data-table.tsx +3 -0
  25. package/src/components/editor/chrome/panels/packages-panel.tsx +3 -1
  26. package/src/components/editor/file-tree/__tests__/file-expolorer.test.ts +178 -0
  27. package/src/components/editor/file-tree/file-explorer.tsx +70 -1
  28. package/src/components/pages/home-page.tsx +8 -3
  29. package/src/core/ai/tools/__tests__/registry.test.ts +6 -2
  30. package/src/core/ai/tools/registry.ts +5 -2
  31. package/src/core/cells/__tests__/session.test.ts +0 -9
  32. package/src/core/cells/session.ts +0 -1
  33. package/src/core/codemirror/copilot/client.ts +21 -1
  34. package/src/core/codemirror/copilot/copilot-config.tsx +29 -1
  35. package/src/core/config/__tests__/config-schema.test.ts +2 -0
  36. package/src/core/config/config-schema.ts +1 -0
  37. package/src/core/packages/__tests__/package-input-utils.test.ts +93 -0
  38. package/src/core/packages/package-input-utils.ts +36 -0
  39. package/src/css/md.css +5 -0
  40. package/src/plugins/core/__test__/sanitize.test.ts +1 -1
  41. package/src/plugins/core/sanitize.ts +3 -1
  42. package/src/plugins/impl/DataTablePlugin.tsx +10 -1
  43. package/src/plugins/impl/chat/ChatPlugin.tsx +1 -0
  44. package/src/plugins/impl/chat/chat-ui.tsx +140 -10
  45. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +1 -0
  46. package/src/plugins/layout/NavigationMenuPlugin.tsx +14 -3
  47. package/src/plugins/layout/ProgressPlugin.tsx +8 -5
  48. package/src/plugins/layout/StatPlugin.tsx +11 -4
  49. package/src/plugins/layout/__test__/ProgressPlugin.test.ts +37 -21
  50. package/src/utils/__tests__/urls.test.ts +165 -1
  51. package/src/utils/urls.ts +120 -0
  52. package/src/utils/vitals.ts +1 -1
  53. package/dist/assets/__vite-browser-external-BTNiCQ6O.js +0 -1
package/dist/main.js CHANGED
@@ -7,22 +7,22 @@ import { t as require_compiler_runtime } from "./compiler-runtime-DTozApu4.js";
7
7
  import { n as toast, t as copyToClipboard } from "./copy-BeueJfCy.js";
8
8
  import { n as require_cjs$1, t as Download } from "./download-Bb5BCMXq.js";
9
9
  import { t as createLucideIcon } from "./createLucideIcon-ixdBmsqu.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-qDDGe5hl.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-BotzCMo3.js";
11
11
  import { t as Check } from "./check-DvmFwGOM.js";
12
- import { C as createCollection, D as usePrevious, E as useOnUnmount, F as $b5e257d569688ac6$export$535bd6ca7f90a273, L as X, N as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, O as assertNever, P as $18f2051aff69b9bf$export$a54013f0d02a8f82, S as useDirection, T as useOnMount, a as SelectItem, b as Icon, c as SelectTrigger, d as selectStyles, f as MENU_ITEM_DISABLED, g as menuItemVariants, i as SelectGroup, j as $a916eb452884faea$export$b7a616150fdb9f44, k as logNever, l as SelectValue, n as Select, o as SelectLabel, r as SelectContent, s as SelectSeparator, t as Label, u as NativeSelect, v as menuSeparatorVariants, w as clamp$2, x as Trigger$4, z as ChevronDown } from "./label-D3LNCORf.js";
13
- import { $ as $e93e671b31057976$export$b8473d3665f3a75a, A as $a049562f99e7db0e$export$f9c6924e160136d1, At as $c87311424ea30a05$export$9ac100e40613ea10, B as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, Bt as $431fbd86ca7dc216$export$b204af158042fbac, C as DropdownMenuTrigger, Ct as $b4b717babfbb907b$export$bebd5a1431fec25d, D as $3985021b0ad6602f$export$37fb8590cf2c088c, Dt as $313b98861ee5dd6c$export$d6875122194c7b44, E as createRovingFocusGroupScope, Et as $df56164dff5785e2$export$4338b53315abf666, F as $514c0188e459b4c0$export$9afb8bc826b033ea, Ft as $3ef42575df84b30b$export$9d1611c77c2fe928, G as $64fa3d84918910a7$export$c245e6201fed2f75, Gt as $8ae05eaa5c114e9c$export$7f54fc3180508a52, H as $64fa3d84918910a7$export$29f1550f4b0d4415, Ht as $ff5963eb1fccf552$export$e08e3b67e392101e, I as $d2b4bc8c273e7be6$export$24d547caef80ccd1, It as $d4ee10de306f2510$export$4282f70798064fe0, J as $64fa3d84918910a7$export$fabf2dc03a41866e, Jt as Search, K as $64fa3d84918910a7$export$c62b8e45d58ddad9, Kt as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, L as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, Lt as $d4ee10de306f2510$export$cd4e5573fbe2b576, M as $ee014567cb39d3f0$export$f551688fc98f2e09, Mt as $c87311424ea30a05$export$fedb369cb70207f1, N as $ee014567cb39d3f0$export$ff05c3ac10437e03, Nt as $7215afc6de606d6b$export$de79e2c695e052f3, O as $3985021b0ad6602f$export$f5b8910cec6cf069, Ot as $c87311424ea30a05$export$6446a186d09e379e, P as $514c0188e459b4c0$export$5f1af8db9871e1d6, Pt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, Q as $2baaea4c71418dea$export$294aa081a6c6f55d, Qt as ChevronRight, R as $01b77f81d0f07f68$export$75b6ee27786ba447, Rt as $d4ee10de306f2510$export$e58f029f0fbfdb29, S as DropdownMenuSubTrigger, St as $b4b717babfbb907b$export$4c063cf1350e6fed, T as Root$5, Tt as $e9faafb641e167db$export$90fc3a17d93f704c, U as $64fa3d84918910a7$export$4d86445c2cf5e3, Ut as $bdb11010cef70236$export$b4cc09c592e8fdb8, V as $64fa3d84918910a7$export$2881499e37b75b9a, Vt as $431fbd86ca7dc216$export$f21a1ffae260145a, W as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, Wt as $bdb11010cef70236$export$f680877a34711e37, X as capitalize_default, Xt as Pencil, Y as useNonce, Yt as Plus, Z as $d2e8511e6f209edf$export$e908e06f4b8e3402, Zt as Circle, _ as DropdownMenuLabel, _t as $f6c31cce2adf654f$export$45712eceda6fad21, a as Input, at as $319e236875307eab$export$a9b970dcc4ae71a9, b as DropdownMenuSub, bt as $9446cca9a3875146$export$7d15b64cf5a3a4c4, c as prettyEngineeringNumber, ct as $6c7bd7858deea686$export$cd11ab140839f11d, d as useDebounceControlledState, dt as $6db58dc88e78b024$export$2f817fcdc4b89ae0, et as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, f as useDebouncedCallback, ft as $5b160d28a433310d$export$c17fa47878dc55b6, g as DropdownMenuItem, gt as $507fabe10e71c6fb$export$630ff653c5ada6a9, h as DropdownMenuGroup, ht as $3ad3f6e1647bc98d$export$80f3e147d781571c, i as DebouncedNumberInput, it as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, j as $d3e0e05bdfcf66bd$export$c24727297075ec6a, jt as $c87311424ea30a05$export$a11b0059900ceec8, k as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, kt as $c87311424ea30a05$export$78551043582a6a98, l as prettyNumber, lt as $fca6afa0e843324b$export$87b761675e8eaa10, m as DropdownMenuContent, mt as $9ab94262bd0047c7$export$420e68273165f4ec, n as ErrorBoundary, nt as $e5be200c675c3b3a$export$aca958c65c314e6c, o as OnBlurredInput, ot as $f7dceffc5ad7768b$export$4e328f61c538687f, p as DropdownMenu, pt as $6179b936705e76d3$export$ae780daf29e6d456, q as $64fa3d84918910a7$export$ef03459518577ad4, qt as Trash, r as DebouncedInput, rt as $e5be200c675c3b3a$export$dad6ae84456c676a, s as NumberField, st as $701a24aa0da5b062$export$ea18c227d4417cc3, t as BulkEdit, tt as $e5be200c675c3b3a$export$a763b9476acd3eb, u as prettyScientificNumber, ut as $fca6afa0e843324b$export$f12b703ca79dfbb1, v as DropdownMenuPortal, vt as _class_private_field_init, w as Item$2, wt as $99facab73266f662$export$5add1d006293d136, x as DropdownMenuSubContent, xt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, y as DropdownMenuSeparator, yt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, z as $01b77f81d0f07f68$export$b04be29aa201d4f5, zt as $f4e2df6bd15f8569$export$98658e8c59125e6a } from "./types-2eTEqSwS.js";
14
- import { S as CircleQuestionMark, _ as isUrl, a as AlertDescription, b as Deferred, c as toDate, d as millisecondsInHour, f as millisecondsInMinute, g as getRuntimeManager, h as asRemoteURL, i as Alert, l as constructFrom, m as millisecondsInWeek, n as useDeepCompareMemoize, o as AlertTitle, p as millisecondsInSecond, r as dequal, s as isValid$1, t as arrow, u as millisecondsInDay, v as require_cuid2, x as isWasm, y as isStaticNotebook } from "./formats-dvT8nDgH.js";
12
+ import { C as createCollection, D as usePrevious, E as useOnUnmount, F as $b5e257d569688ac6$export$535bd6ca7f90a273, L as X, N as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, O as assertNever, P as $18f2051aff69b9bf$export$a54013f0d02a8f82, S as useDirection, T as useOnMount, a as SelectItem, b as Icon, c as SelectTrigger, d as selectStyles, f as MENU_ITEM_DISABLED, g as menuItemVariants, i as SelectGroup, j as $a916eb452884faea$export$b7a616150fdb9f44, k as logNever, l as SelectValue, n as Select, o as SelectLabel, r as SelectContent, s as SelectSeparator, t as Label, u as NativeSelect, v as menuSeparatorVariants, w as clamp$2, x as Trigger$4, z as ChevronDown } from "./label-Dsm6T1fr.js";
13
+ import { $ as $e93e671b31057976$export$b8473d3665f3a75a, A as $a049562f99e7db0e$export$f9c6924e160136d1, At as $c87311424ea30a05$export$9ac100e40613ea10, B as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, Bt as $431fbd86ca7dc216$export$b204af158042fbac, C as DropdownMenuTrigger, Ct as $b4b717babfbb907b$export$bebd5a1431fec25d, D as $3985021b0ad6602f$export$37fb8590cf2c088c, Dt as $313b98861ee5dd6c$export$d6875122194c7b44, E as createRovingFocusGroupScope, Et as $df56164dff5785e2$export$4338b53315abf666, F as $514c0188e459b4c0$export$9afb8bc826b033ea, Ft as $3ef42575df84b30b$export$9d1611c77c2fe928, G as $64fa3d84918910a7$export$c245e6201fed2f75, Gt as $8ae05eaa5c114e9c$export$7f54fc3180508a52, H as $64fa3d84918910a7$export$29f1550f4b0d4415, Ht as $ff5963eb1fccf552$export$e08e3b67e392101e, I as $d2b4bc8c273e7be6$export$24d547caef80ccd1, It as $d4ee10de306f2510$export$4282f70798064fe0, J as $64fa3d84918910a7$export$fabf2dc03a41866e, Jt as Search, K as $64fa3d84918910a7$export$c62b8e45d58ddad9, Kt as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, L as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, Lt as $d4ee10de306f2510$export$cd4e5573fbe2b576, M as $ee014567cb39d3f0$export$f551688fc98f2e09, Mt as $c87311424ea30a05$export$fedb369cb70207f1, N as $ee014567cb39d3f0$export$ff05c3ac10437e03, Nt as $7215afc6de606d6b$export$de79e2c695e052f3, O as $3985021b0ad6602f$export$f5b8910cec6cf069, Ot as $c87311424ea30a05$export$6446a186d09e379e, P as $514c0188e459b4c0$export$5f1af8db9871e1d6, Pt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, Q as $2baaea4c71418dea$export$294aa081a6c6f55d, Qt as ChevronRight, R as $01b77f81d0f07f68$export$75b6ee27786ba447, Rt as $d4ee10de306f2510$export$e58f029f0fbfdb29, S as DropdownMenuSubTrigger, St as $b4b717babfbb907b$export$4c063cf1350e6fed, T as Root$5, Tt as $e9faafb641e167db$export$90fc3a17d93f704c, U as $64fa3d84918910a7$export$4d86445c2cf5e3, Ut as $bdb11010cef70236$export$b4cc09c592e8fdb8, V as $64fa3d84918910a7$export$2881499e37b75b9a, Vt as $431fbd86ca7dc216$export$f21a1ffae260145a, W as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, Wt as $bdb11010cef70236$export$f680877a34711e37, X as capitalize_default, Xt as Pencil, Y as useNonce, Yt as Plus, Z as $d2e8511e6f209edf$export$e908e06f4b8e3402, Zt as Circle, _ as DropdownMenuLabel, _t as $f6c31cce2adf654f$export$45712eceda6fad21, a as Input, at as $319e236875307eab$export$a9b970dcc4ae71a9, b as DropdownMenuSub, bt as $9446cca9a3875146$export$7d15b64cf5a3a4c4, c as prettyEngineeringNumber, ct as $6c7bd7858deea686$export$cd11ab140839f11d, d as useDebounceControlledState, dt as $6db58dc88e78b024$export$2f817fcdc4b89ae0, et as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, f as useDebouncedCallback, ft as $5b160d28a433310d$export$c17fa47878dc55b6, g as DropdownMenuItem, gt as $507fabe10e71c6fb$export$630ff653c5ada6a9, h as DropdownMenuGroup, ht as $3ad3f6e1647bc98d$export$80f3e147d781571c, i as DebouncedNumberInput, it as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, j as $d3e0e05bdfcf66bd$export$c24727297075ec6a, jt as $c87311424ea30a05$export$a11b0059900ceec8, k as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, kt as $c87311424ea30a05$export$78551043582a6a98, l as prettyNumber, lt as $fca6afa0e843324b$export$87b761675e8eaa10, m as DropdownMenuContent, mt as $9ab94262bd0047c7$export$420e68273165f4ec, n as ErrorBoundary, nt as $e5be200c675c3b3a$export$aca958c65c314e6c, o as OnBlurredInput, ot as $f7dceffc5ad7768b$export$4e328f61c538687f, p as DropdownMenu, pt as $6179b936705e76d3$export$ae780daf29e6d456, q as $64fa3d84918910a7$export$ef03459518577ad4, qt as Trash, r as DebouncedInput, rt as $e5be200c675c3b3a$export$dad6ae84456c676a, s as NumberField, st as $701a24aa0da5b062$export$ea18c227d4417cc3, t as BulkEdit, tt as $e5be200c675c3b3a$export$a763b9476acd3eb, u as prettyScientificNumber, ut as $fca6afa0e843324b$export$f12b703ca79dfbb1, v as DropdownMenuPortal, vt as _class_private_field_init, w as Item$2, wt as $99facab73266f662$export$5add1d006293d136, x as DropdownMenuSubContent, xt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, y as DropdownMenuSeparator, yt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, z as $01b77f81d0f07f68$export$b04be29aa201d4f5, zt as $f4e2df6bd15f8569$export$98658e8c59125e6a } from "./types-IRrkdH-H.js";
14
+ import { C as CircleQuestionMark, S as isWasm, _ as appendQueryParams, a as AlertDescription, b as isStaticNotebook, c as toDate, d as millisecondsInHour, f as millisecondsInMinute, g as getRuntimeManager, h as asRemoteURL, i as Alert, l as constructFrom, m as millisecondsInWeek, n as useDeepCompareMemoize, o as AlertTitle, p as millisecondsInSecond, r as dequal, s as isValid$1, t as arrow, u as millisecondsInDay, v as isUrl, x as Deferred, y as require_cuid2 } from "./formats-oddMfm9_.js";
15
15
  import { t as Copy } from "./copy-B9QnP3Mi.js";
16
16
  import { n as clsx_default } from "./clsx-JH8KOlt9.js";
17
17
  import { a as Slot$1, c as composeRefs, d as cn, i as useEventListener, l as useComposedRefs, n as buttonVariants, o as createSlot, r as cva, t as Button, u as Events } from "./button-Hye6-2X8.js";
18
18
  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-C3KM59Ph.js";
19
- import { C as DismissableLayer, E as dispatchDiscreteCustomEvent, O as createContextScope, S as useLayoutEffect2, T as Primitive, _ as Content$3, a as __awaiter, b as useSize, c as withSmartCollisionBoundary, f as useControllableState, g as Arrow, h as Anchor, i as useFocusGuards, k as composeEventHandlers, l as StyleNamespace, m as Portal, n as hideOthers, o as MAX_HEIGHT_OFFSET, p as Presence, r as FocusScope, s as withFullScreenAsRoot, t as Combination_default, u as Root$6, v as Root2$5, w as useCallbackRef, x as useId$10, y as createPopperScope } from "./Combination-BH_L276x.js";
19
+ import { A as composeEventHandlers, C as useLayoutEffect2, D as dispatchDiscreteCustomEvent, E as Primitive, S as useId$10, T as useCallbackRef, _ as Arrow, a as __awaiter, b as createPopperScope, c as withSmartCollisionBoundary, d as Root$6, g as Anchor, h as Portal, i as useFocusGuards, k as createContextScope, 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$5 } from "./Combination-D68fi0fY.js";
20
20
  import { t as require_jsx_runtime } from "./jsx-runtime-Duz3IlLt.js";
21
21
  import { t as require_react_dom } from "./react-dom-DBPBYhx0.js";
22
- import { a as Portal$2, c as Tooltip, d as TooltipProvider, f as TooltipRoot, i as Overlay, l as TooltipContent, m as TooltipProvider$1, n as ErrorBanner, o as Root$7, p as TooltipTrigger, r as Content$4, s as CellNotInitializedError, t as Banner, u as TooltipPortal } from "./error-banner-BqE1uF21.js";
23
- import { a as _extends$5, c as historyField, l as insertTab, n as minimalSetup, o as forEachDiagnostic, r as langs, s as setDiagnostics, t as esm_default, u as CopyClipboardIcon } from "./esm-hR1r0nyt.js";
22
+ import { a as Portal$2, c as Tooltip, d as TooltipProvider, f as TooltipRoot, i as Overlay, l as TooltipContent, m as TooltipProvider$1, n as ErrorBanner, o as Root$7, p as TooltipTrigger, r as Content$4, s as CellNotInitializedError, t as Banner, u as TooltipPortal } from "./error-banner-CPLhCPHA.js";
23
+ import { a as _extends$5, c as historyField, l as insertTab, n as minimalSetup, o as forEachDiagnostic, r as langs, s as setDiagnostics, t as esm_default, u as CopyClipboardIcon } from "./esm-DxgKy8Wv.js";
24
24
  import { t as purify } from "./purify.es-DaeeWvOb.js";
25
- import { C as INTERNAL_getBuildingBlocksRev1, S as INTERNAL_buildStoreRev1, _ as useAtomValue, a as localeAtom, b as atom, c as createDeepEqualAtom, d as waitFor, f as isIslands, g as useAtom, h as Provider, i as getResolvedMarimoConfig, l as store, m as useEvent_default, n as aiEnabledAtom, o as useResolvedMarimoConfig, p as isEqual_default, r as autoInstantiateAtom, s as AppConfigSchema, t as useTheme, u as useJotaiEffect, v as useSetAtom, y as useStore } from "./useTheme-B-2frT0L.js";
25
+ import { C as INTERNAL_getBuildingBlocksRev1, S as INTERNAL_buildStoreRev1, _ as useAtomValue, a as localeAtom, b as atom, c as createDeepEqualAtom, d as waitFor, f as isIslands, g as useAtom, h as Provider, i as getResolvedMarimoConfig, l as store, m as useEvent_default, n as aiEnabledAtom, o as useResolvedMarimoConfig, p as isEqual_default, r as autoInstantiateAtom, s as AppConfigSchema, t as useTheme, u as useJotaiEffect, v as useSetAtom, y as useStore } from "./useTheme-D56Xlrez.js";
26
26
  import { $ as WidgetType, B as tags$1, Ct as EditorSelection, Dt as Prec, E as getIndentUnit, I as syntaxTree, J as parseMixed, L as unfoldAll, Mt as StateField, Nt as Text$2, Pt as Transaction, Q as ViewPlugin, S as foldInside, St as Compartment, Tt as Facet$1, Y as Decoration, Z as EditorView, b as foldAll, ct as hoverTooltip, f as StreamLanguage, ft as placeholder, ht as showPanel, jt as StateEffect, l as LanguageDescription, lt as keymap, u as LanguageSupport, w as foldNodeProp, wt as EditorState } from "./dist-CGV4FD3F.js";
27
27
  import { d as snippet, n as acceptCompletion, o as closeCompletion, r as autocompletion, u as insertCompletionText } from "./dist-Mp_OMc88.js";
28
28
  import { E as _baseRest_default, b as _baseTimes_default, t as isArrayLikeObject_default } from "./isArrayLikeObject-LulrZoeO.js";
@@ -57,7 +57,7 @@ import { t as marked } from "./marked.esm-CqJtK50L.js";
57
57
  import { a as PLSQL, c as SQLite, d as schemaCompletionSource, f as sql, i as MySQL, l as StandardSQL, n as MSSQL, o as PostgreSQL, r as MariaSQL, s as SQLDialect, t as Cassandra, u as keywordCompletionSource } from "./dist-BLj2WRAk.js";
58
58
  import { n as memoize$1, t as isPropValid } from "./emotion-is-prop-valid.esm-CO4NB_FG.js";
59
59
  import { t as require_prop_types } from "./prop-types-DeRYypi2.js";
60
- import { t as useAsyncData } from "./useAsyncData-6gisQ4pR.js";
60
+ import { t as useAsyncData } from "./useAsyncData-CsSW6_Zh.js";
61
61
  import "./dist-fAhDKvae.js";
62
62
  import "./dist-Ci5nvo1A.js";
63
63
  import "./dist-CMgwptRJ.js";
@@ -4925,6 +4925,21 @@ let __tla = (async () => {
4925
4925
  key: "1cv678"
4926
4926
  }
4927
4927
  ]
4928
+ ]), RotateCw = createLucideIcon("rotate-cw", [
4929
+ [
4930
+ "path",
4931
+ {
4932
+ d: "M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",
4933
+ key: "1p45f6"
4934
+ }
4935
+ ],
4936
+ [
4937
+ "path",
4938
+ {
4939
+ d: "M21 3v5h-5",
4940
+ key: "1q7to0"
4941
+ }
4942
+ ]
4928
4943
  ]), Scroll = createLucideIcon("scroll", [
4929
4944
  [
4930
4945
  "path",
@@ -32624,7 +32639,7 @@ ${JSON.stringify(e2, null, 4)}`);
32624
32639
  let r2 = d.get(e2);
32625
32640
  r2 && (g(), l(r2.name), setLatestEngineSelected(r2.name));
32626
32641
  }, r[0] = d, r[1] = l, r[2] = g, r[3] = y) : y = r[3];
32627
- let b = y, S = _temp3$17, w = Select, D;
32642
+ let b = y, S = _temp3$18, w = Select, D;
32628
32643
  r[4] === Symbol.for("react.memo_cache_sentinel") ? (D = (0, import_jsx_runtime.jsx)(SQLSelectTrigger, {
32629
32644
  children: (0, import_jsx_runtime.jsx)(SelectValue, {
32630
32645
  placeholder: "Select an engine"
@@ -32768,7 +32783,7 @@ ${JSON.stringify(e2, null, 4)}`);
32768
32783
  })
32769
32784
  }, e.name);
32770
32785
  }
32771
- function _temp3$17(e) {
32786
+ function _temp3$18(e) {
32772
32787
  return e = e.filter(_temp$37), e.map(_temp2$27);
32773
32788
  }
32774
32789
  function _temp4$10(e) {
@@ -37504,7 +37519,7 @@ ${JSON.stringify(e2, null, 4)}`);
37504
37519
  tagNameCheck: /^(marimo-[A-Za-z][\w-]*|iconify-icon)$/,
37505
37520
  attributeNameCheck: /^[A-Za-z][\w-]*$/
37506
37521
  },
37507
- SAFE_FOR_XML: e.includes("marimo-mermaid")
37522
+ SAFE_FOR_XML: !e.includes("marimo-mermaid")
37508
37523
  };
37509
37524
  return purify.sanitize(e, r);
37510
37525
  }
@@ -38533,8 +38548,8 @@ ${JSON.stringify(e2, null, 4)}`);
38533
38548
  });
38534
38549
  }
38535
38550
  }, NavMenuComponent = (e) => {
38536
- let r = (0, import_compiler_runtime$134.c)(13), { items: c, orientation: l } = e, d = _temp$36, f = _temp2$26, h;
38537
- r[0] === l ? h = r[1] : (h = (e2) => "items" in e2 ? l === "horizontal" ? (0, import_jsx_runtime.jsxs)(NavigationMenuItem, {
38551
+ let r = (0, import_compiler_runtime$134.c)(13), { items: c, orientation: l } = e, d = _temp$36, f = _temp2$26, h = _temp3$17, g;
38552
+ r[0] === l ? g = r[1] : (g = (e2) => "items" in e2 ? l === "horizontal" ? (0, import_jsx_runtime.jsxs)(NavigationMenuItem, {
38538
38553
  children: [
38539
38554
  (0, import_jsx_runtime.jsx)(NavigationMenuTrigger, {
38540
38555
  children: renderHTML({
@@ -38547,7 +38562,7 @@ ${JSON.stringify(e2, null, 4)}`);
38547
38562
  className: "grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2 lg:w-[600px] ",
38548
38563
  children: e2.items.map((e3) => (0, import_jsx_runtime.jsx)(ListItem, {
38549
38564
  label: e3.label,
38550
- href: e3.href,
38565
+ href: h(e3.href),
38551
38566
  target: f(e3.href),
38552
38567
  children: e3.description && renderHTML({
38553
38568
  html: e3.description
@@ -38570,7 +38585,7 @@ ${JSON.stringify(e2, null, 4)}`);
38570
38585
  orientation: l,
38571
38586
  children: e2.items.map((e3) => (0, import_jsx_runtime.jsx)(import_react.Fragment, {
38572
38587
  children: d((0, import_jsx_runtime.jsx)(NavigationMenuLink, {
38573
- href: e3.href,
38588
+ href: h(e3.href),
38574
38589
  target: f(e3.href),
38575
38590
  className: navigationMenuTriggerStyle({
38576
38591
  orientation: l
@@ -38584,7 +38599,7 @@ ${JSON.stringify(e2, null, 4)}`);
38584
38599
  ]
38585
38600
  }, e2.label) : (0, import_jsx_runtime.jsx)(NavigationMenuItem, {
38586
38601
  children: (0, import_jsx_runtime.jsx)(NavigationMenuLink, {
38587
- href: e2.href,
38602
+ href: h(e2.href),
38588
38603
  target: f(e2.href),
38589
38604
  className: navigationMenuTriggerStyle({
38590
38605
  orientation: l
@@ -38593,23 +38608,23 @@ ${JSON.stringify(e2, null, 4)}`);
38593
38608
  html: e2.label
38594
38609
  })
38595
38610
  })
38596
- }, e2.label), r[0] = l, r[1] = h);
38597
- let g = h, _;
38598
- if (r[2] !== c || r[3] !== g) {
38611
+ }, e2.label), r[0] = l, r[1] = g);
38612
+ let _ = g, y;
38613
+ if (r[2] !== c || r[3] !== _) {
38599
38614
  let e2;
38600
- r[5] === g ? e2 = r[6] : (e2 = (e3) => g(e3), r[5] = g, r[6] = e2), _ = c.map(e2), r[2] = c, r[3] = g, r[4] = _;
38601
- } else _ = r[4];
38602
- let y;
38603
- r[7] !== l || r[8] !== _ ? (y = (0, import_jsx_runtime.jsx)(NavigationMenuList, {
38604
- className: "auto-collapse-nav",
38605
- orientation: l,
38606
- children: _
38607
- }), r[7] = l, r[8] = _, r[9] = y) : y = r[9];
38615
+ r[5] === _ ? e2 = r[6] : (e2 = (e3) => _(e3), r[5] = _, r[6] = e2), y = c.map(e2), r[2] = c, r[3] = _, r[4] = y;
38616
+ } else y = r[4];
38608
38617
  let b;
38609
- return r[10] !== l || r[11] !== y ? (b = (0, import_jsx_runtime.jsx)(NavigationMenu, {
38618
+ r[7] !== l || r[8] !== y ? (b = (0, import_jsx_runtime.jsx)(NavigationMenuList, {
38619
+ className: "auto-collapse-nav",
38610
38620
  orientation: l,
38611
38621
  children: y
38612
- }), r[10] = l, r[11] = y, r[12] = b) : b = r[12], b;
38622
+ }), r[7] = l, r[8] = y, r[9] = b) : b = r[9];
38623
+ let S;
38624
+ return r[10] !== l || r[11] !== b ? (S = (0, import_jsx_runtime.jsx)(NavigationMenu, {
38625
+ orientation: l,
38626
+ children: b
38627
+ }), r[10] = l, r[11] = b, r[12] = S) : S = r[12], S;
38613
38628
  }, ListItem = import_react.forwardRef((e, r) => {
38614
38629
  let c = (0, import_compiler_runtime$134.c)(19), l, d, f, h;
38615
38630
  c[0] === e ? (l = c[1], d = c[2], f = c[3], h = c[4]) : ({ className: d, label: f, children: l, ...h } = e, c[0] = e, c[1] = l, c[2] = d, c[3] = f, c[4] = h);
@@ -38658,6 +38673,15 @@ ${JSON.stringify(e2, null, 4)}`);
38658
38673
  function _temp2$26(e) {
38659
38674
  return e.startsWith("http") ? "_blank" : "_self";
38660
38675
  }
38676
+ function _temp3$17(e) {
38677
+ return appendQueryParams({
38678
+ href: e,
38679
+ queryParams: new URL(globalThis.location.href).search,
38680
+ keys: [
38681
+ KnownQueryParams.filePath
38682
+ ]
38683
+ });
38684
+ }
38661
38685
  function defineCustomEvent(e) {
38662
38686
  return () => ({
38663
38687
  TYPE: e,
@@ -49420,7 +49444,7 @@ To suppress this warning, you need to explicitly provide the \`palette.${r}Chann
49420
49444
  children: _
49421
49445
  }), r[7] = d.label, r[8] = g, r[9] = _, r[10] = y) : y = r[10], y;
49422
49446
  };
49423
- const LazyAnyLanguageCodeMirror = (0, import_react.lazy)(() => import("./any-language-editor-YPQMljy9.js"));
49447
+ const LazyAnyLanguageCodeMirror = (0, import_react.lazy)(() => import("./any-language-editor-BS-Z5AY5.js"));
49424
49448
  var import_compiler_runtime$121 = __toESM(require_compiler_runtime(), 1), CodeEditorPlugin = class {
49425
49449
  constructor() {
49426
49450
  __publicField(this, "tagName", "marimo-code-editor");
@@ -60036,7 +60060,7 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
60036
60060
  function isOutputEmpty(e) {
60037
60061
  return e == null || e.data == null || e.data === "";
60038
60062
  }
60039
- const LazyVegaEmbed = import_react.lazy(() => import("./react-vega-BIDT9Ttp.js").then((e) => ({
60063
+ const LazyVegaEmbed = import_react.lazy(() => import("./react-vega-DV2IwPx_.js").then((e) => ({
60040
60064
  default: e.VegaEmbed
60041
60065
  })));
60042
60066
  var import_compiler_runtime$108 = __toESM(require_compiler_runtime(), 1);
@@ -67484,7 +67508,7 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67484
67508
  const prettifyRowColumnCount = (e, r, c) => [
67485
67509
  e === "too_many" ? "Unknown" : prettifyRowCount(e, c),
67486
67510
  `${prettyNumber(r, c)} ${new PluralWord("column").pluralize(r)}`
67487
- ].join(", "), TableActions = ({ enableSearch: e, onSearchQueryChange: r, isSearchEnabled: c, setIsSearchEnabled: l, pagination: d, totalColumns: f, selection: h, onRowSelectionChange: g, table: y, downloadAs: b, getRowIds: S, toggleDisplayHeader: w, showChartBuilder: D, showColumnExplorer: P, showPageSizeSelector: F, togglePanel: R, isPanelOpen: z, tableLoading: H }) => (0, import_jsx_runtime.jsxs)("div", {
67511
+ ].join(", "), TableActions = ({ enableSearch: e, onSearchQueryChange: r, isSearchEnabled: c, setIsSearchEnabled: l, pagination: d, totalColumns: f, selection: h, onRowSelectionChange: g, table: y, downloadAs: b, getRowIds: S, toggleDisplayHeader: w, showChartBuilder: D, showColumnExplorer: P, showRowExplorer: F, showPageSizeSelector: R, togglePanel: z, isPanelOpen: H, tableLoading: Q }) => (0, import_jsx_runtime.jsxs)("div", {
67488
67512
  className: "flex items-center shrink-0 pt-1",
67489
67513
  children: [
67490
67514
  r && e && (0, import_jsx_runtime.jsx)(Tooltip, {
@@ -67511,16 +67535,16 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67511
67535
  })
67512
67536
  })
67513
67537
  }),
67514
- R && z !== void 0 && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
67538
+ z && H !== void 0 && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
67515
67539
  children: [
67516
- (0, import_jsx_runtime.jsx)(Tooltip, {
67540
+ F && (0, import_jsx_runtime.jsx)(Tooltip, {
67517
67541
  content: "Toggle row viewer",
67518
67542
  children: (0, import_jsx_runtime.jsx)(Button, {
67519
67543
  variant: "text",
67520
67544
  size: "xs",
67521
- onClick: () => R("row-viewer"),
67545
+ onClick: () => z("row-viewer"),
67522
67546
  children: (0, import_jsx_runtime.jsx)(PanelRight, {
67523
- className: cn("w-4 h-4 text-muted-foreground", z("row-viewer") && "text-primary")
67547
+ className: cn("w-4 h-4 text-muted-foreground", H("row-viewer") && "text-primary")
67524
67548
  })
67525
67549
  })
67526
67550
  }),
@@ -67529,9 +67553,9 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67529
67553
  children: (0, import_jsx_runtime.jsx)(Button, {
67530
67554
  variant: "text",
67531
67555
  size: "xs",
67532
- onClick: () => R("column-explorer"),
67556
+ onClick: () => z("column-explorer"),
67533
67557
  children: (0, import_jsx_runtime.jsx)(ChartColumnStacked, {
67534
- className: cn("w-4 h-4 text-muted-foreground", z("column-explorer") && "text-primary")
67558
+ className: cn("w-4 h-4 text-muted-foreground", H("column-explorer") && "text-primary")
67535
67559
  })
67536
67560
  })
67537
67561
  })
@@ -67575,8 +67599,8 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67575
67599
  });
67576
67600
  },
67577
67601
  table: y,
67578
- tableLoading: H,
67579
- showPageSizeSelector: F
67602
+ tableLoading: Q,
67603
+ showPageSizeSelector: R
67580
67604
  }),
67581
67605
  (0, import_jsx_runtime.jsx)("div", {
67582
67606
  className: "ml-auto",
@@ -67585,22 +67609,22 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67585
67609
  })
67586
67610
  })
67587
67611
  ]
67588
- }), DataTable = (0, import_react.memo)(({ wrapperClassName: e, className: r, maxHeight: c, columns: l, data: d, selection: f, totalColumns: h, totalRows: g, manualSorting: _ = false, sorting: y, setSorting: b, rowSelection: S, cellSelection: w, cellStyling: D, hoverTemplate: P, cellHoverTexts: F, paginationState: R, setPaginationState: z, downloadAs: H, manualPagination: Q = false, pagination: iX = false, onRowSelectionChange: aX, onCellSelectionChange: oX, getRowIds: sX, enableSearch: cX = false, searchQuery: lX, onSearchQueryChange: uX, showFilters: dX = false, filters: fX, onFiltersChange: pX, reloading: mX, freezeColumnsLeft: hX, freezeColumnsRight: gX, toggleDisplayHeader: _X, showChartBuilder: vX, showPageSizeSelector: yX, showColumnExplorer: bX, togglePanel: xX, isPanelOpen: SX, viewedRowIdx: CX, onViewedRowChange: wX }) => {
67589
- let [TX, EX] = import_react.useState(false), [DX, OX] = import_react.useState(false), { locale: kX } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), { columnPinning: AX, setColumnPinning: jX } = useColumnPinning(hX, gX);
67612
+ }), DataTable = (0, import_react.memo)(({ wrapperClassName: e, className: r, maxHeight: c, columns: l, data: d, selection: f, totalColumns: h, totalRows: g, manualSorting: _ = false, sorting: y, setSorting: b, rowSelection: S, cellSelection: w, cellStyling: D, hoverTemplate: P, cellHoverTexts: F, paginationState: R, setPaginationState: z, downloadAs: H, manualPagination: Q = false, pagination: iX = false, onRowSelectionChange: aX, onCellSelectionChange: oX, getRowIds: sX, enableSearch: cX = false, searchQuery: lX, onSearchQueryChange: uX, showFilters: dX = false, filters: fX, onFiltersChange: pX, reloading: mX, freezeColumnsLeft: hX, freezeColumnsRight: gX, toggleDisplayHeader: _X, showChartBuilder: vX, showPageSizeSelector: yX, showColumnExplorer: bX, showRowExplorer: xX, togglePanel: SX, isPanelOpen: CX, viewedRowIdx: wX, onViewedRowChange: TX }) => {
67613
+ let [EX, DX] = import_react.useState(false), [OX, kX] = import_react.useState(false), { locale: AX } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), { columnPinning: jX, setColumnPinning: MX } = useColumnPinning(hX, gX);
67590
67614
  import_react.useEffect(() => {
67591
67615
  let e2;
67592
67616
  return mX ? e2 = setTimeout(() => {
67593
- OX(true);
67594
- }, 300) : OX(false), () => {
67617
+ kX(true);
67618
+ }, 300) : kX(false), () => {
67595
67619
  e2 && clearTimeout(e2);
67596
67620
  };
67597
67621
  }, [
67598
67622
  mX
67599
67623
  ]);
67600
- function MX(e2, r2) {
67624
+ function NX(e2, r2) {
67601
67625
  return R ? r2 + (Q ? R.pageIndex * R.pageSize : 0) : r2;
67602
67626
  }
67603
- let NX = useReactTable({
67627
+ let PX = useReactTable({
67604
67628
  _features: [
67605
67629
  ColumnPinning,
67606
67630
  ColumnWrappingFeature,
@@ -67621,11 +67645,11 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67621
67645
  getRowId: (e2, r2) => {
67622
67646
  let c2 = getStableRowId(e2);
67623
67647
  if (c2) return c2;
67624
- let l2 = MX(e2, r2);
67648
+ let l2 = NX(e2, r2);
67625
67649
  return String(l2);
67626
67650
  }
67627
67651
  } : {},
67628
- locale: kX,
67652
+ locale: AX,
67629
67653
  manualPagination: Q,
67630
67654
  getPaginationRowModel: getPaginationRowModel(),
67631
67655
  ...b ? {
@@ -67642,9 +67666,9 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67642
67666
  onCellSelectionChange: oX,
67643
67667
  enableCellSelection: f === "single-cell" || f === "multi-cell",
67644
67668
  enableMultiCellSelection: f === "multi-cell",
67645
- onColumnPinningChange: jX,
67669
+ onColumnPinningChange: MX,
67646
67670
  enableFocusRow: true,
67647
- onFocusRowChange: wX,
67671
+ onFocusRowChange: TX,
67648
67672
  state: {
67649
67673
  ...y ? {
67650
67674
  sorting: y
@@ -67661,14 +67685,14 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67661
67685
  rowSelection: S ?? {},
67662
67686
  cellSelection: w ?? [],
67663
67687
  cellStyling: D,
67664
- columnPinning: AX,
67688
+ columnPinning: jX,
67665
67689
  cellHoverTemplate: P,
67666
67690
  cellHoverTexts: F ?? {}
67667
67691
  }
67668
- }), PX = (SX == null ? void 0 : SX("row-viewer")) ?? false, FX = import_react.useRef(null);
67692
+ }), FX = (CX == null ? void 0 : CX("row-viewer")) ?? false, IX = import_react.useRef(null);
67669
67693
  return import_react.useEffect(() => {
67670
- if (!FX.current) return;
67671
- let e2 = FX.current.parentElement;
67694
+ if (!IX.current) return;
67695
+ let e2 = IX.current.parentElement;
67672
67696
  e2 && (c ? (e2.style.maxHeight = `${c}px`, e2.style.overflow || (e2.style.overflow = "auto")) : e2.style.removeProperty("max-height"));
67673
67697
  }, [
67674
67698
  c
@@ -67677,33 +67701,33 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67677
67701
  children: [
67678
67702
  (0, import_jsx_runtime.jsx)(FilterPills, {
67679
67703
  filters: fX,
67680
- table: NX
67704
+ table: PX
67681
67705
  }),
67682
67706
  (0, import_jsx_runtime.jsxs)("div", {
67683
67707
  className: cn(r || "rounded-md border overflow-hidden"),
67684
67708
  children: [
67685
67709
  uX && cX && (0, import_jsx_runtime.jsx)(SearchBar, {
67686
67710
  value: lX || "",
67687
- onHide: () => EX(false),
67711
+ onHide: () => DX(false),
67688
67712
  handleSearch: uX,
67689
- hidden: !TX,
67713
+ hidden: !EX,
67690
67714
  reloading: mX
67691
67715
  }),
67692
67716
  (0, import_jsx_runtime.jsxs)(Table, {
67693
67717
  className: "relative",
67694
- ref: FX,
67718
+ ref: IX,
67695
67719
  children: [
67696
- DX && (0, import_jsx_runtime.jsx)("thead", {
67720
+ OX && (0, import_jsx_runtime.jsx)("thead", {
67697
67721
  className: "absolute top-0 left-0 h-[3px] w-1/2 bg-primary animate-slide"
67698
67722
  }),
67699
- renderTableHeader(NX, !!c),
67723
+ renderTableHeader(PX, !!c),
67700
67724
  (0, import_jsx_runtime.jsx)(CellSelectionProvider, {
67701
67725
  children: (0, import_jsx_runtime.jsx)(DataTableBody, {
67702
- table: NX,
67726
+ table: PX,
67703
67727
  columns: l,
67704
- rowViewerPanelOpen: PX,
67705
- getRowIndex: MX,
67706
- viewedRowIdx: CX
67728
+ rowViewerPanelOpen: FX,
67729
+ getRowIndex: NX,
67730
+ viewedRowIdx: wX
67707
67731
  })
67708
67732
  })
67709
67733
  ]
@@ -67714,20 +67738,21 @@ Database schema: ${c}`), (_a3 = r2.aiFix) == null ? void 0 : _a3.setAiCompletion
67714
67738
  enableSearch: cX,
67715
67739
  totalColumns: h,
67716
67740
  onSearchQueryChange: uX,
67717
- isSearchEnabled: TX,
67718
- setIsSearchEnabled: EX,
67741
+ isSearchEnabled: EX,
67742
+ setIsSearchEnabled: DX,
67719
67743
  pagination: iX,
67720
67744
  selection: f,
67721
67745
  onRowSelectionChange: aX,
67722
- table: NX,
67746
+ table: PX,
67723
67747
  downloadAs: H,
67724
67748
  getRowIds: sX,
67725
67749
  toggleDisplayHeader: _X,
67726
67750
  showChartBuilder: vX,
67727
67751
  showPageSizeSelector: yX,
67728
67752
  showColumnExplorer: bX,
67729
- togglePanel: xX,
67730
- isPanelOpen: SX,
67753
+ showRowExplorer: xX,
67754
+ togglePanel: SX,
67755
+ isPanelOpen: CX,
67731
67756
  tableLoading: mX
67732
67757
  })
67733
67758
  ]
@@ -69971,11 +69996,14 @@ Image URL: ${r.imageUrl}`)), contextToXml({
69971
69996
  })));
69972
69997
  const Chatbot = (e) => {
69973
69998
  var _a2;
69974
- let [r, c] = (0, import_react.useState)(""), [l, d] = (0, import_react.useState)(e.config), [f, h] = (0, import_react.useState)(void 0), g = (0, import_react.useRef)(null), b = (0, import_react.useRef)(null), w = (0, import_react.useRef)(null), D = (0, import_react.useRef)(null), { data: P } = useAsyncData(async () => (await e.get_chat_history({})).messages.map((e2, r2) => ({
69999
+ let [r, c] = (0, import_react.useState)(""), [l, d] = (0, import_react.useState)(e.config), [f, h] = (0, import_react.useState)(void 0), g = (0, import_react.useRef)(null), b = (0, import_react.useRef)(null), w = (0, import_react.useRef)(null), D = (0, import_react.useRef)(null), P = (0, import_react.useRef)({
70000
+ backendMessageId: null,
70001
+ frontendMessageIndex: null
70002
+ }), { data: F } = useAsyncData(async () => (await e.get_chat_history({})).messages.map((e2, r2) => ({
69975
70003
  id: r2.toString(),
69976
70004
  role: e2.role,
69977
70005
  parts: e2.parts ?? []
69978
- })), []), { messages: F, sendMessage: R, setMessages: z, status: H, stop: Q, error: iX, regenerate: aX } = useChat({
70006
+ })), []), { messages: R, sendMessage: z, setMessages: H, status: Q, stop: iX, error: aX, regenerate: oX } = useChat({
69979
70007
  transport: new DefaultChatTransport({
69980
70008
  fetch: async (r2, c2) => {
69981
70009
  if (c2 === void 0) return fetch(r2);
@@ -69988,7 +70016,21 @@ Image URL: ${r.imageUrl}`)), contextToXml({
69988
70016
  content: (_a3 = e2.parts) == null ? void 0 : _a3.map((e3) => "text" in e3 ? e3.text : "").join("\n"),
69989
70017
  parts: e2.parts
69990
70018
  };
69991
- }), c3 = await e.send_prompt({
70019
+ }), c3 = Date.now().toString();
70020
+ H((e2) => [
70021
+ ...e2,
70022
+ {
70023
+ id: c3,
70024
+ role: "assistant",
70025
+ parts: [
70026
+ {
70027
+ type: "text",
70028
+ text: ""
70029
+ }
70030
+ ]
70031
+ }
70032
+ ]);
70033
+ let f2 = await e.send_prompt({
69992
70034
  messages: r3,
69993
70035
  config: {
69994
70036
  max_tokens: l.max_tokens,
@@ -69999,20 +70041,25 @@ Image URL: ${r.imageUrl}`)), contextToXml({
69999
70041
  presence_penalty: l.presence_penalty
70000
70042
  }
70001
70043
  });
70002
- return z((e2) => [
70003
- ...e2,
70004
- {
70005
- id: Date.now().toString(),
70006
- role: "assistant",
70044
+ return P.current.backendMessageId === null && P.current.frontendMessageIndex === null && H((e2) => {
70045
+ let r4 = [
70046
+ ...e2
70047
+ ], l2 = r4.findIndex((e3) => e3.id === c3);
70048
+ return l2 !== -1 && (r4[l2] = {
70049
+ ...r4[l2],
70007
70050
  parts: [
70008
70051
  {
70009
70052
  type: "text",
70010
- text: c3
70053
+ text: f2
70011
70054
  }
70012
70055
  ]
70013
- }
70014
- ]), new Response(c3);
70056
+ }), r4;
70057
+ }), new Response(f2);
70015
70058
  } catch (e2) {
70059
+ P.current = {
70060
+ backendMessageId: null,
70061
+ frontendMessageIndex: null
70062
+ };
70016
70063
  let r3 = e2.message.split("failed with exception ").pop();
70017
70064
  return new Response(r3, {
70018
70065
  status: 400
@@ -70020,19 +70067,67 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70020
70067
  }
70021
70068
  }
70022
70069
  }),
70023
- messages: P,
70070
+ messages: F,
70024
70071
  onFinish: (e2) => {
70025
- h(void 0), g.current && (g.current.value = ""), Logger.debug("Finished streaming message:", e2);
70072
+ h(void 0), g.current && (g.current.value = ""), Logger.debug("Finished streaming message:", e2), P.current = {
70073
+ backendMessageId: null,
70074
+ frontendMessageIndex: null
70075
+ };
70026
70076
  },
70027
70077
  onError: (e2) => {
70028
- Logger.error("An error occurred:", e2);
70078
+ Logger.error("An error occurred:", e2), P.current = {
70079
+ backendMessageId: null,
70080
+ frontendMessageIndex: null
70081
+ };
70029
70082
  }
70030
- }), oX = H === "submitted" || H === "streaming", sX = (r2) => {
70031
- let c2 = F.findIndex((e2) => e2.id === r2);
70083
+ });
70084
+ useEventListener(e.host, MarimoIncomingMessageEvent.TYPE, (e2) => {
70085
+ let r2 = e2.detail.message;
70086
+ if (typeof r2 == "object" && r2 && "type" in r2 && r2.type === "stream_chunk") {
70087
+ let e3 = r2;
70088
+ P.current.backendMessageId === null && H((r3) => {
70089
+ let c3 = [
70090
+ ...r3
70091
+ ];
70092
+ for (let r4 = c3.length - 1; r4 >= 0; r4--) if (c3[r4].role === "assistant") {
70093
+ P.current = {
70094
+ backendMessageId: e3.message_id,
70095
+ frontendMessageIndex: r4
70096
+ };
70097
+ break;
70098
+ }
70099
+ return c3;
70100
+ });
70101
+ let c2 = P.current.frontendMessageIndex;
70102
+ P.current.backendMessageId === e3.message_id && c2 !== null && (H((r3) => {
70103
+ let l2 = [
70104
+ ...r3
70105
+ ], d2 = c2;
70106
+ if (d2 < l2.length) {
70107
+ let r4 = l2[d2];
70108
+ r4.role === "assistant" && (l2[d2] = {
70109
+ ...r4,
70110
+ parts: [
70111
+ {
70112
+ type: "text",
70113
+ text: e3.content
70114
+ }
70115
+ ]
70116
+ });
70117
+ }
70118
+ return l2;
70119
+ }), e3.is_final && (P.current = {
70120
+ backendMessageId: null,
70121
+ frontendMessageIndex: null
70122
+ }));
70123
+ }
70124
+ });
70125
+ let sX = Q === "submitted" || Q === "streaming", cX = (r2) => {
70126
+ let c2 = R.findIndex((e2) => e2.id === r2);
70032
70127
  c2 !== -1 && (e.delete_chat_message({
70033
70128
  index: c2
70034
- }), z((e2) => e2.filter((e3) => e3.id !== r2)));
70035
- }, cX = (e2) => {
70129
+ }), H((e2) => e2.filter((e3) => e3.id !== r2)));
70130
+ }, lX = (e2) => {
70036
70131
  var _a3;
70037
70132
  return ((_a3 = e2.mediaType) == null ? void 0 : _a3.startsWith("image")) ? (0, import_jsx_runtime.jsx)("img", {
70038
70133
  src: e2.url,
@@ -70047,7 +70142,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70047
70142
  className: "text-background hover:underline",
70048
70143
  children: e2.filename || "Attachment"
70049
70144
  });
70050
- }, lX = (e2) => {
70145
+ }, uX = (e2) => {
70051
70146
  var _a3, _b2, _c2;
70052
70147
  let r2 = (_b2 = (_a3 = e2.parts) == null ? void 0 : _a3.filter((e3) => e3.type === "text")) == null ? void 0 : _b2.map((e3) => e3.text).join("\n"), c2 = e2.role === "assistant" ? (0, import_jsx_runtime.jsx)(LazyStreamdown, {
70053
70148
  className: "mo-markdown-renderer",
@@ -70061,7 +70156,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70061
70156
  children: l2.map((e3, r3) => (0, import_jsx_runtime.jsxs)("div", {
70062
70157
  className: "flex items-baseline gap-2 ",
70063
70158
  children: [
70064
- cX(e3),
70159
+ lX(e3),
70065
70160
  (0, import_jsx_runtime.jsx)("a", {
70066
70161
  className: buttonVariants({
70067
70162
  variant: "text",
@@ -70078,14 +70173,14 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70078
70173
  })
70079
70174
  ]
70080
70175
  });
70081
- }, uX = Array.isArray(e.allowAttachments) && e.allowAttachments.length > 0 || e.allowAttachments === true, dX = {
70176
+ }, dX = Array.isArray(e.allowAttachments) && e.allowAttachments.length > 0 || e.allowAttachments === true, fX = {
70082
70177
  triggerCompletionRegex: /^\/(\w+)?/,
70083
70178
  completions: e.prompts.map((e2) => ({
70084
70179
  label: `/${e2}`,
70085
70180
  displayLabel: e2,
70086
70181
  apply: e2
70087
70182
  }))
70088
- }, fX = e.prompts.length > 0 ? "Type your message here, / for prompts" : "Type your message here...";
70183
+ }, pX = e.prompts.length > 0 ? "Type your message here, / for prompts" : "Type your message here...";
70089
70184
  (0, import_react.useEffect)(() => {
70090
70185
  var _a3;
70091
70186
  (_a3 = D.current) == null ? void 0 : _a3.scrollTo({
@@ -70093,13 +70188,13 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70093
70188
  behavior: "smooth"
70094
70189
  });
70095
70190
  }, [
70096
- F.length,
70191
+ R.length,
70097
70192
  D
70098
70193
  ]);
70099
- let pX = (_a2 = w.current) == null ? void 0 : _a2.view, mX = () => {
70100
- if (pX) {
70101
- let e2 = pX.state.doc.length;
70102
- pX.dispatch({
70194
+ let mX = (_a2 = w.current) == null ? void 0 : _a2.view, hX = () => {
70195
+ if (mX) {
70196
+ let e2 = mX.state.doc.length;
70197
+ mX.dispatch({
70103
70198
  changes: {
70104
70199
  from: 0,
70105
70200
  to: e2,
@@ -70120,10 +70215,11 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70120
70215
  children: (0, import_jsx_runtime.jsx)(Button, {
70121
70216
  variant: "text",
70122
70217
  size: "icon",
70218
+ disabled: R.length === 0,
70123
70219
  onClick: () => {
70124
- z([]), e.setValue([]), e.delete_chat_history({});
70220
+ H([]), e.setValue([]), e.delete_chat_history({});
70125
70221
  },
70126
- children: (0, import_jsx_runtime.jsx)(Trash2, {
70222
+ children: (0, import_jsx_runtime.jsx)(RotateCw, {
70127
70223
  className: "h-3 w-3"
70128
70224
  })
70129
70225
  })
@@ -70132,7 +70228,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70132
70228
  className: "grow overflow-y-auto gap-4 pt-8 pb-4 px-2 flex flex-col",
70133
70229
  ref: D,
70134
70230
  children: [
70135
- F.length === 0 && (0, import_jsx_runtime.jsxs)("div", {
70231
+ R.length === 0 && (0, import_jsx_runtime.jsxs)("div", {
70136
70232
  className: "flex flex-col items-center justify-center h-full text-muted-foreground text-center p-4",
70137
70233
  children: [
70138
70234
  (0, import_jsx_runtime.jsx)(BotMessageSquare, {
@@ -70148,7 +70244,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70148
70244
  })
70149
70245
  ]
70150
70246
  }),
70151
- F.map((e2) => {
70247
+ R.map((e2) => {
70152
70248
  var _a3;
70153
70249
  let r2 = (_a3 = e2.parts) == null ? void 0 : _a3.filter((e3) => e3.type === "text").map((e3) => e3.text).join("\n");
70154
70250
  return (0, import_jsx_runtime.jsxs)("div", {
@@ -70156,7 +70252,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70156
70252
  children: [
70157
70253
  (0, import_jsx_runtime.jsx)("div", {
70158
70254
  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)"}`,
70159
- children: lX(e2)
70255
+ children: uX(e2)
70160
70256
  }),
70161
70257
  (0, import_jsx_runtime.jsxs)("div", {
70162
70258
  className: "flex justify-end text-xs gap-2 invisible group-hover:visible",
@@ -70175,7 +70271,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70175
70271
  }),
70176
70272
  (0, import_jsx_runtime.jsx)("button", {
70177
70273
  type: "button",
70178
- onClick: () => sX(e2.id),
70274
+ onClick: () => cX(e2.id),
70179
70275
  className: "text-xs text-(--slate-9) hover:text-(--slate-11)",
70180
70276
  children: (0, import_jsx_runtime.jsx)(Trash2, {
70181
70277
  className: "h-3 w-3 text-(--red-9)"
@@ -70186,7 +70282,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70186
70282
  ]
70187
70283
  }, e2.id);
70188
70284
  }),
70189
- oX && (0, import_jsx_runtime.jsxs)("div", {
70285
+ sX && (0, import_jsx_runtime.jsxs)("div", {
70190
70286
  className: "flex items-center justify-center space-x-2 mb-4",
70191
70287
  children: [
70192
70288
  (0, import_jsx_runtime.jsx)(Spinner, {
@@ -70195,22 +70291,22 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70195
70291
  (0, import_jsx_runtime.jsx)(Button, {
70196
70292
  variant: "link",
70197
70293
  size: "sm",
70198
- onClick: () => Q(),
70294
+ onClick: () => iX(),
70199
70295
  className: "text-(--red-9) hover:text-(--red-11)",
70200
70296
  children: "Stop"
70201
70297
  })
70202
70298
  ]
70203
70299
  }),
70204
- iX && (0, import_jsx_runtime.jsxs)("div", {
70300
+ aX && (0, import_jsx_runtime.jsxs)("div", {
70205
70301
  className: "flex items-center justify-center space-x-2 mb-4",
70206
70302
  children: [
70207
70303
  (0, import_jsx_runtime.jsx)(ErrorBanner, {
70208
- error: iX
70304
+ error: aX
70209
70305
  }),
70210
70306
  (0, import_jsx_runtime.jsx)(Button, {
70211
70307
  variant: "outline",
70212
70308
  size: "sm",
70213
- onClick: () => aX(),
70309
+ onClick: () => oX(),
70214
70310
  children: "Retry"
70215
70311
  })
70216
70312
  ]
@@ -70221,7 +70317,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70221
70317
  onSubmit: async (e2) => {
70222
70318
  e2.preventDefault();
70223
70319
  let c2 = f ? await convertToFileUIPart(f) : void 0;
70224
- R({
70320
+ z({
70225
70321
  role: "user",
70226
70322
  parts: [
70227
70323
  {
@@ -70230,7 +70326,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70230
70326
  },
70231
70327
  ...c2 ?? []
70232
70328
  ]
70233
- }), mX();
70329
+ }), hX();
70234
70330
  },
70235
70331
  ref: b,
70236
70332
  className: "flex w-full border-t border-(--slate-6) px-2 py-1 items-center",
@@ -70243,13 +70339,13 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70243
70339
  prompts: e.prompts,
70244
70340
  onSelect: (e2) => {
70245
70341
  c(e2), requestAnimationFrame(() => {
70246
- pX == null ? void 0 : pX.focus(), moveToEndOfEditor(pX);
70342
+ mX == null ? void 0 : mX.focus(), moveToEndOfEditor(mX);
70247
70343
  });
70248
70344
  }
70249
70345
  }),
70250
70346
  (0, import_jsx_runtime.jsx)(PromptInput, {
70251
70347
  className: "rounded-sm mr-2",
70252
- placeholder: fX,
70348
+ placeholder: pX,
70253
70349
  value: r,
70254
70350
  inputRef: w,
70255
70351
  maxHeight: e.maxHeight ? `${e.maxHeight / 2}px` : void 0,
@@ -70260,7 +70356,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70260
70356
  },
70261
70357
  onClose: () => {
70262
70358
  },
70263
- additionalCompletions: dX
70359
+ additionalCompletions: fX
70264
70360
  }),
70265
70361
  f && f.length === 1 && (0, import_jsx_runtime.jsx)("span", {
70266
70362
  title: f[0].name,
@@ -70288,7 +70384,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70288
70384
  className: "size-3"
70289
70385
  })
70290
70386
  }),
70291
- uX && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
70387
+ dX && (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
70292
70388
  children: [
70293
70389
  (0, import_jsx_runtime.jsx)(Button, {
70294
70390
  type: "button",
@@ -70318,7 +70414,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70318
70414
  }),
70319
70415
  (0, import_jsx_runtime.jsx)(Button, {
70320
70416
  type: "submit",
70321
- disabled: oX || !r,
70417
+ disabled: sX || !r,
70322
70418
  variant: "outline",
70323
70419
  size: "sm",
70324
70420
  className: "text-(--slate-11)",
@@ -70686,7 +70782,8 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70686
70782
  value: ((_a2 = e.value) == null ? void 0 : _a2.messages) || Arrays.EMPTY,
70687
70783
  setValue: (r) => e.setValue({
70688
70784
  messages: r
70689
- })
70785
+ }),
70786
+ host: e.host
70690
70787
  })
70691
70788
  })
70692
70789
  });
@@ -70773,7 +70870,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
70773
70870
  function getVegaFieldTypes(e) {
70774
70871
  return !e || Object.keys(e).length === 0 ? "auto" : Objects.mapValues(e, (e2) => e2 === "date" || e2 === "time" ? "string" : e2 === "datetime" ? "date" : e2);
70775
70872
  }
70776
- var import_compiler_runtime$79 = __toESM(require_compiler_runtime(), 1), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-B26PhZvE.js").then(async (m2) => {
70873
+ var import_compiler_runtime$79 = __toESM(require_compiler_runtime(), 1), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-BFv4VQnc.js").then(async (m2) => {
70777
70874
  await m2.__tla;
70778
70875
  return m2;
70779
70876
  }));
@@ -80992,6 +81089,7 @@ ${c}
80992
81089
  showDataTypes: boolean$2().default(true),
80993
81090
  showPageSizeSelector: boolean$2().default(true),
80994
81091
  showColumnExplorer: boolean$2().default(true),
81092
+ showRowExplorer: boolean$2().default(true),
80995
81093
  showChartBuilder: boolean$2().default(true),
80996
81094
  rowHeaders: columnToFieldTypesSchema,
80997
81095
  freezeColumnsLeft: array$2(string$2()).optional(),
@@ -81311,157 +81409,158 @@ ${c}
81311
81409
  }), r[97] = EX, r[98] = IX, r[99] = LX) : LX = r[99], LX;
81312
81410
  });
81313
81411
  LoadingDataTableComponent.displayName = "LoadingDataTableComponent";
81314
- var DataTableComponent = ({ label: e, data: r, totalRows: c, maxColumns: l, pagination: d, selection: f, value: h, showFilters: g, showDownload: _, showPageSizeSelector: y, showColumnExplorer: b, showChartBuilder: S, showDataTypes: w, rowHeaders: D, fieldTypes: P, paginationState: F, setPaginationState: R, download_as: z, columnSummaries: H, className: Q, setValue: iX, sorting: aX, setSorting: oX, enableSearch: sX, searchQuery: cX, setSearchQuery: lX, filters: uX, setFilters: dX, reloading: fX, freezeColumnsLeft: pX, freezeColumnsRight: mX, textJustifyColumns: hX, wrappedColumns: gX, headerTooltip: _X, totalColumns: vX, get_row_ids: yX, cellStyles: bX, hoverTemplate: xX, cellHoverTexts: SX, toggleDisplayHeader: CX, calculate_top_k_rows: wX, preview_column: TX, getRow: EX, cellId: DX, maxHeight: OX }) => {
81315
- let kX = (0, import_react.useId)(), [AX, jX] = (0, import_react.useState)(0), { isPanelOpen: MX, togglePanel: NX } = usePanelOwnership(kX, DX), PX = (0, import_react.useMemo)(() => {
81316
- if (!H || !P || !H.stats) return ColumnChartSpecModel.EMPTY;
81317
- let e2 = toFieldTypes(P);
81318
- return new ColumnChartSpecModel(H.data || [], e2, H.stats, H.bin_values, H.value_counts, {
81319
- includeCharts: H.show_charts
81412
+ var DataTableComponent = ({ label: e, data: r, totalRows: c, maxColumns: l, pagination: d, selection: f, value: h, showFilters: g, showDownload: _, showPageSizeSelector: y, showColumnExplorer: b, showRowExplorer: S, showChartBuilder: w, showDataTypes: D, rowHeaders: P, fieldTypes: F, paginationState: R, setPaginationState: z, download_as: H, columnSummaries: Q, className: iX, setValue: aX, sorting: oX, setSorting: sX, enableSearch: cX, searchQuery: lX, setSearchQuery: uX, filters: dX, setFilters: fX, reloading: pX, freezeColumnsLeft: mX, freezeColumnsRight: hX, textJustifyColumns: gX, wrappedColumns: _X, headerTooltip: vX, totalColumns: yX, get_row_ids: bX, cellStyles: xX, hoverTemplate: SX, cellHoverTexts: CX, toggleDisplayHeader: wX, calculate_top_k_rows: TX, preview_column: EX, getRow: DX, cellId: OX, maxHeight: kX }) => {
81413
+ let AX = (0, import_react.useId)(), [jX, MX] = (0, import_react.useState)(0), { isPanelOpen: NX, togglePanel: PX } = usePanelOwnership(AX, OX), FX = (0, import_react.useMemo)(() => {
81414
+ if (!Q || !F || !Q.stats) return ColumnChartSpecModel.EMPTY;
81415
+ let e2 = toFieldTypes(F);
81416
+ return new ColumnChartSpecModel(Q.data || [], e2, Q.stats, Q.bin_values, Q.value_counts, {
81417
+ includeCharts: Q.show_charts
81320
81418
  });
81321
81419
  }, [
81322
- P,
81323
- H
81324
- ]), FX = useDeepCompareMemoize(P ?? inferFieldTypes(r)), IX = (0, import_react.useMemo)(() => l === "all" ? FX : FX.slice(0, l), [
81420
+ F,
81421
+ Q
81422
+ ]), IX = useDeepCompareMemoize(F ?? inferFieldTypes(r)), LX = (0, import_react.useMemo)(() => l === "all" ? IX : IX.slice(0, l), [
81325
81423
  l,
81326
- FX
81327
- ]), LX = useDeepCompareMemoize(D), RX = useDeepCompareMemoize(hX), zX = useDeepCompareMemoize(gX), BX = useDeepCompareMemoize(PX), VX = IX.length;
81328
- P || (w = false);
81329
- let HX = (0, import_react.useMemo)(() => generateColumns({
81330
- rowHeaders: LX,
81424
+ IX
81425
+ ]), RX = useDeepCompareMemoize(P), zX = useDeepCompareMemoize(gX), BX = useDeepCompareMemoize(_X), VX = useDeepCompareMemoize(FX), HX = LX.length;
81426
+ F || (D = false);
81427
+ let UX = (0, import_react.useMemo)(() => generateColumns({
81428
+ rowHeaders: RX,
81331
81429
  selection: f,
81332
- chartSpecModel: BX,
81333
- fieldTypes: IX,
81334
- textJustifyColumns: RX,
81335
- wrappedColumns: zX,
81336
- headerTooltip: _X,
81337
- showDataTypes: w,
81338
- calculateTopKRows: wX
81430
+ chartSpecModel: VX,
81431
+ fieldTypes: LX,
81432
+ textJustifyColumns: zX,
81433
+ wrappedColumns: BX,
81434
+ headerTooltip: vX,
81435
+ showDataTypes: D,
81436
+ calculateTopKRows: TX
81339
81437
  }), [
81340
81438
  f,
81341
- w,
81342
- BX,
81343
- LX,
81344
- IX,
81439
+ D,
81440
+ VX,
81345
81441
  RX,
81442
+ LX,
81346
81443
  zX,
81347
- _X,
81348
- wX
81349
- ]), UX = (0, import_react.useMemo)(() => Object.fromEntries((h || []).map((e2) => [
81444
+ BX,
81445
+ vX,
81446
+ TX
81447
+ ]), WX = (0, import_react.useMemo)(() => Object.fromEntries((h || []).map((e2) => [
81350
81448
  e2,
81351
81449
  true
81352
81450
  ])), [
81353
81451
  h
81354
- ]), WX = useEvent_default((e2) => {
81452
+ ]), GX = useEvent_default((e2) => {
81355
81453
  if (f === "single") {
81356
81454
  let r2 = Functions.asUpdater(e2)({});
81357
- iX(Object.keys(r2).slice(0, 1));
81455
+ aX(Object.keys(r2).slice(0, 1));
81358
81456
  }
81359
81457
  if (f === "multi") {
81360
- let r2 = Functions.asUpdater(e2)(UX);
81361
- iX(Object.keys(r2));
81458
+ let r2 = Functions.asUpdater(e2)(WX);
81459
+ aX(Object.keys(r2));
81362
81460
  }
81363
- }), GX = useEvent_default((e2) => {
81364
- if (jX(e2), e2 < 0 || typeof c == "number" && e2 >= c || c === "too_many") return;
81365
- let r2 = getPageIndexForRow(e2, F.pageIndex, F.pageSize);
81366
- r2 !== null && R((e3) => ({
81461
+ }), KX = useEvent_default((e2) => {
81462
+ if (MX(e2), e2 < 0 || typeof c == "number" && e2 >= c || c === "too_many") return;
81463
+ let r2 = getPageIndexForRow(e2, R.pageIndex, R.pageSize);
81464
+ r2 !== null && z((e3) => ({
81367
81465
  ...e3,
81368
81466
  pageIndex: r2
81369
81467
  }));
81370
- }), KX = h.filter((e2) => e2 instanceof Object && e2.columnName !== void 0), qX = useEvent_default((e2) => {
81371
- f === "single-cell" && iX(Functions.asUpdater(e2)(KX).slice(0, 1)), f === "multi-cell" && iX(Functions.asUpdater(e2)(KX));
81372
- }), JX = f === "multi" || f === "single", YX = b && TX && MX("column-explorer");
81468
+ }), qX = h.filter((e2) => e2 instanceof Object && e2.columnName !== void 0), JX = useEvent_default((e2) => {
81469
+ f === "single-cell" && aX(Functions.asUpdater(e2)(qX).slice(0, 1)), f === "multi-cell" && aX(Functions.asUpdater(e2)(qX));
81470
+ }), YX = f === "multi" || f === "single", XX = b && EX && NX("column-explorer"), ZX = isInVscodeExtension();
81373
81471
  return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
81374
81472
  children: [
81375
- c === "too_many" && F.pageSize === r.length && (0, import_jsx_runtime.jsxs)(Banner, {
81473
+ c === "too_many" && R.pageSize === r.length && (0, import_jsx_runtime.jsxs)(Banner, {
81376
81474
  className: "mb-1 rounded",
81377
81475
  children: [
81378
81476
  "Previewing the first ",
81379
- F.pageSize,
81477
+ R.pageSize,
81380
81478
  " rows."
81381
81479
  ]
81382
81480
  }),
81383
- VX < vX && VX > 0 && (0, import_jsx_runtime.jsxs)(Banner, {
81481
+ HX < yX && HX > 0 && (0, import_jsx_runtime.jsxs)(Banner, {
81384
81482
  className: "mb-1 rounded",
81385
81483
  children: [
81386
81484
  "Result clipped. Showing ",
81387
- VX,
81485
+ HX,
81388
81486
  " of ",
81389
- vX,
81487
+ yX,
81390
81488
  " columns."
81391
81489
  ]
81392
81490
  }),
81393
- (H == null ? void 0 : H.is_disabled) && (0, import_jsx_runtime.jsx)(Banner, {
81491
+ (Q == null ? void 0 : Q.is_disabled) && (0, import_jsx_runtime.jsx)(Banner, {
81394
81492
  className: "mb-1 rounded",
81395
81493
  children: "Column summaries are unavailable. Filter your data to fewer than 1,000,000 rows."
81396
81494
  }),
81397
- MX("row-viewer") && (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
81495
+ NX("row-viewer") && (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
81398
81496
  children: (0, import_jsx_runtime.jsx)(RowViewerPanel, {
81399
- getRow: EX,
81400
- fieldTypes: FX,
81497
+ getRow: DX,
81498
+ fieldTypes: IX,
81401
81499
  totalRows: c,
81402
- rowIdx: AX,
81403
- setRowIdx: GX,
81404
- isSelectable: JX,
81405
- isRowSelected: UX[AX],
81406
- handleRowSelectionChange: WX
81500
+ rowIdx: jX,
81501
+ setRowIdx: KX,
81502
+ isSelectable: YX,
81503
+ isRowSelected: WX[jX],
81504
+ handleRowSelectionChange: GX
81407
81505
  })
81408
81506
  }),
81409
- YX && (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
81507
+ XX && (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
81410
81508
  children: (0, import_jsx_runtime.jsx)(ColumnExplorerPanel, {
81411
- previewColumn: TX,
81412
- fieldTypes: FX,
81509
+ previewColumn: EX,
81510
+ fieldTypes: IX,
81413
81511
  totalRows: c,
81414
- totalColumns: vX,
81415
- tableId: kX
81512
+ totalColumns: yX,
81513
+ tableId: AX
81416
81514
  })
81417
81515
  }),
81418
81516
  (0, import_jsx_runtime.jsx)(ColumnChartContext, {
81419
- value: PX,
81517
+ value: FX,
81420
81518
  children: (0, import_jsx_runtime.jsx)(Labeled, {
81421
81519
  label: e,
81422
81520
  align: "top",
81423
81521
  fullWidth: true,
81424
81522
  children: (0, import_jsx_runtime.jsx)(DataTable, {
81425
81523
  data: r,
81426
- columns: HX,
81427
- className: Q,
81428
- maxHeight: OX,
81429
- sorting: aX,
81524
+ columns: UX,
81525
+ className: iX,
81526
+ maxHeight: kX,
81527
+ sorting: oX,
81430
81528
  totalRows: c,
81431
- totalColumns: vX,
81529
+ totalColumns: yX,
81432
81530
  manualSorting: true,
81433
- setSorting: oX,
81531
+ setSorting: sX,
81434
81532
  pagination: d,
81435
81533
  manualPagination: true,
81436
81534
  selection: f,
81437
- paginationState: F,
81438
- setPaginationState: R,
81439
- rowSelection: UX,
81440
- cellSelection: KX,
81441
- cellStyling: bX,
81442
- hoverTemplate: xX,
81443
- cellHoverTexts: SX,
81444
- downloadAs: _ ? z : void 0,
81445
- enableSearch: sX,
81446
- searchQuery: cX,
81447
- onSearchQueryChange: lX,
81535
+ paginationState: R,
81536
+ setPaginationState: z,
81537
+ rowSelection: WX,
81538
+ cellSelection: qX,
81539
+ cellStyling: xX,
81540
+ hoverTemplate: SX,
81541
+ cellHoverTexts: CX,
81542
+ downloadAs: _ ? H : void 0,
81543
+ enableSearch: cX,
81544
+ searchQuery: lX,
81545
+ onSearchQueryChange: uX,
81448
81546
  showFilters: g,
81449
- filters: uX,
81450
- onFiltersChange: dX,
81451
- reloading: fX,
81452
- onRowSelectionChange: WX,
81453
- freezeColumnsLeft: pX,
81454
- freezeColumnsRight: mX,
81455
- onCellSelectionChange: qX,
81456
- getRowIds: yX,
81457
- toggleDisplayHeader: CX,
81458
- showChartBuilder: S,
81547
+ filters: dX,
81548
+ onFiltersChange: fX,
81549
+ reloading: pX,
81550
+ onRowSelectionChange: GX,
81551
+ freezeColumnsLeft: mX,
81552
+ freezeColumnsRight: hX,
81553
+ onCellSelectionChange: JX,
81554
+ getRowIds: bX,
81555
+ toggleDisplayHeader: wX,
81556
+ showChartBuilder: w,
81459
81557
  showPageSizeSelector: y,
81460
- showColumnExplorer: b,
81461
- togglePanel: NX,
81462
- isPanelOpen: MX,
81463
- viewedRowIdx: AX,
81464
- onViewedRowChange: (e2) => jX(e2)
81558
+ showColumnExplorer: b && !ZX,
81559
+ showRowExplorer: S && !ZX,
81560
+ togglePanel: PX,
81561
+ isPanelOpen: NX,
81562
+ viewedRowIdx: jX,
81563
+ onViewedRowChange: (e2) => MX(e2)
81465
81564
  })
81466
81565
  })
81467
81566
  })
@@ -82384,7 +82483,7 @@ ${c}
82384
82483
  fullWidth: g,
82385
82484
  children: F
82386
82485
  }), r[19] = g, r[20] = _, r[21] = c, r[22] = F, r[23] = R) : R = r[23], R;
82387
- }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-WbiFXhKG.js"));
82486
+ }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-BUgUSo2B.js"));
82388
82487
  const DataExplorerPlugin = createPlugin("marimo-data-explorer").withData(object$2({
82389
82488
  label: string$2().nullish(),
82390
82489
  data: string$2()
@@ -84390,6 +84489,7 @@ ${c}
84390
84489
  get_column_summaries: getColumnSummaries,
84391
84490
  showPageSizeSelector: NX,
84392
84491
  showColumnExplorer: false,
84492
+ showRowExplorer: true,
84393
84493
  showChartBuilder: false,
84394
84494
  value: Arrays.EMPTY,
84395
84495
  setValue: Functions.NOOP,
@@ -92644,7 +92744,7 @@ ${c}
92644
92744
  return true;
92645
92745
  }
92646
92746
  }
92647
- var LazyVegaComponent = import_react.lazy(() => import("./vega-component-C-bCSv1b.js")), VegaPlugin = class {
92747
+ var LazyVegaComponent = import_react.lazy(() => import("./vega-component-CLjz4see.js")), VegaPlugin = class {
92648
92748
  constructor() {
92649
92749
  __publicField(this, "tagName", "marimo-vega");
92650
92750
  __publicField(this, "validator", object$2({
@@ -92964,7 +93064,7 @@ ${c}
92964
93064
  diagram: e.data.diagram
92965
93065
  });
92966
93066
  }
92967
- }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-Dl3ywmV2.js")), import_compiler_runtime$15 = __toESM(require_compiler_runtime(), 1);
93067
+ }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-BeGlg1JH.js")), import_compiler_runtime$15 = __toESM(require_compiler_runtime(), 1);
92968
93068
  function getRootScrollableElement() {
92969
93069
  return getInitialAppMode() === "edit" ? document.getElementById("App") : void 0;
92970
93070
  }
@@ -94470,14 +94570,19 @@ Defaulting to \`null\`.`;
94470
94570
  let b = y, S;
94471
94571
  r[3] !== h || r[4] !== d || r[5] !== g || r[6] !== f ? (S = () => {
94472
94572
  let e2 = typeof d == "number" && f != null && d >= f, r2 = [];
94473
- if (g && r2.push((0, import_jsx_runtime.jsxs)("span", {
94573
+ if (g && (g < 1 ? r2.push((0, import_jsx_runtime.jsxs)("span", {
94574
+ children: [
94575
+ prettyTime(1 / g),
94576
+ " per iter"
94577
+ ]
94578
+ }, "rate")) : r2.push((0, import_jsx_runtime.jsxs)("span", {
94474
94579
  children: [
94475
94580
  g,
94476
94581
  " iter/s"
94477
94582
  ]
94478
- }, "rate"), (0, import_jsx_runtime.jsx)("span", {
94583
+ }, "rate")), r2.push((0, import_jsx_runtime.jsx)("span", {
94479
94584
  children: "\xB7"
94480
- }, "spacer-rate")), !e2 && h && r2.push((0, import_jsx_runtime.jsxs)("span", {
94585
+ }, "spacer-rate"))), !e2 && h && r2.push((0, import_jsx_runtime.jsxs)("span", {
94481
94586
  children: [
94482
94587
  "ETA ",
94483
94588
  prettyTime(h)
@@ -94559,7 +94664,7 @@ Defaulting to \`null\`.`;
94559
94664
  language: "shortEn",
94560
94665
  largest: 2,
94561
94666
  spacer: "",
94562
- maxDecimalPoints: 2
94667
+ maxDecimalPoints: e < 10 ? 2 : 0
94563
94668
  });
94564
94669
  }
94565
94670
  var import_dist = __toESM(__commonJSMin(((e) => {
@@ -94818,7 +94923,11 @@ Defaulting to \`null\`.`;
94818
94923
  direction: _enum([
94819
94924
  "increase",
94820
94925
  "decrease"
94821
- ]).optional()
94926
+ ]).optional(),
94927
+ target_direction: _enum([
94928
+ "increase",
94929
+ "decrease"
94930
+ ]).default("increase")
94822
94931
  }));
94823
94932
  }
94824
94933
  render({ data: e }) {
@@ -94828,60 +94937,60 @@ Defaulting to \`null\`.`;
94828
94937
  }
94829
94938
  };
94830
94939
  const StatComponent = (e) => {
94831
- let r = (0, import_compiler_runtime$9.c)(21), { value: c, label: l, caption: d, bordered: f, direction: h } = e, { locale: g } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), _;
94832
- r[0] !== g || r[1] !== c ? (_ = () => c == null ? (0, import_jsx_runtime.jsx)("i", {
94940
+ let r = (0, import_compiler_runtime$9.c)(23), { value: c, label: l, caption: d, bordered: f, direction: h, target_direction: g } = e, { locale: _ } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), y;
94941
+ r[0] !== _ || r[1] !== c ? (y = () => c == null ? (0, import_jsx_runtime.jsx)("i", {
94833
94942
  children: "No value"
94834
- }) : typeof c == "string" ? c : typeof c == "number" ? prettyNumber(c, g) : typeof c == "boolean" ? c ? "True" : "False" : String(c), r[0] = g, r[1] = c, r[2] = _) : _ = r[2];
94835
- let y = _, b = f && "rounded-xl border shadow bg-card", S;
94836
- r[3] === b ? S = r[4] : (S = cn("text-card-foreground", b), r[3] = b, r[4] = S);
94837
- let w;
94838
- r[5] === l ? w = r[6] : (w = l && (0, import_jsx_runtime.jsx)("div", {
94943
+ }) : typeof c == "string" ? c : typeof c == "number" ? prettyNumber(c, _) : typeof c == "boolean" ? c ? "True" : "False" : String(c), r[0] = _, r[1] = c, r[2] = y) : y = r[2];
94944
+ let b = y, S = h === g, w = S ? "var(--grass-8)" : "var(--red-8)", D = S ? "var(--grass-9)" : "var(--red-9)", P = f && "rounded-xl border shadow bg-card", F;
94945
+ r[3] === P ? F = r[4] : (F = cn("text-card-foreground", P), r[3] = P, r[4] = F);
94946
+ let R;
94947
+ r[5] === l ? R = r[6] : (R = l && (0, import_jsx_runtime.jsx)("div", {
94839
94948
  className: "p-6 flex flex-row items-center justify-between space-y-0 pb-2",
94840
94949
  children: (0, import_jsx_runtime.jsx)("h3", {
94841
94950
  className: "tracking-tight text-sm font-medium",
94842
94951
  children: l
94843
94952
  })
94844
- }), r[5] = l, r[6] = w);
94845
- let D;
94846
- r[7] === y ? D = r[8] : (D = y(), r[7] = y, r[8] = D);
94847
- let P;
94848
- r[9] === D ? P = r[10] : (P = (0, import_jsx_runtime.jsx)("div", {
94953
+ }), r[5] = l, r[6] = R);
94954
+ let z;
94955
+ r[7] === b ? z = r[8] : (z = b(), r[7] = b, r[8] = z);
94956
+ let H;
94957
+ r[9] === z ? H = r[10] : (H = (0, import_jsx_runtime.jsx)("div", {
94849
94958
  className: "text-2xl font-bold",
94850
- children: D
94851
- }), r[9] = D, r[10] = P);
94852
- let F;
94853
- r[11] !== d || r[12] !== h ? (F = d && (0, import_jsx_runtime.jsxs)("p", {
94959
+ children: z
94960
+ }), r[9] = z, r[10] = H);
94961
+ let Q;
94962
+ r[11] !== d || r[12] !== h || r[13] !== w || r[14] !== D ? (Q = d && (0, import_jsx_runtime.jsxs)("p", {
94854
94963
  className: "pt-1 text-xs text-muted-foreground flex align-center",
94855
94964
  children: [
94856
94965
  h === "increase" && (0, import_jsx_runtime.jsx)(Triangle, {
94857
94966
  className: "w-4 h-4 mr-1 p-0.5",
94858
- fill: "var(--grass-8)",
94859
- stroke: "var(--grass-9)"
94967
+ fill: w,
94968
+ stroke: D
94860
94969
  }),
94861
94970
  h === "decrease" && (0, import_jsx_runtime.jsx)(Triangle, {
94862
94971
  className: "w-4 h-4 mr-1 p-0.5 transform rotate-180",
94863
- fill: "var(--red-8)",
94864
- stroke: "var(--red-9)"
94972
+ fill: w,
94973
+ stroke: D
94865
94974
  }),
94866
94975
  d
94867
94976
  ]
94868
- }), r[11] = d, r[12] = h, r[13] = F) : F = r[13];
94869
- let R;
94870
- r[14] !== P || r[15] !== F ? (R = (0, import_jsx_runtime.jsxs)("div", {
94977
+ }), r[11] = d, r[12] = h, r[13] = w, r[14] = D, r[15] = Q) : Q = r[15];
94978
+ let iX;
94979
+ r[16] !== H || r[17] !== Q ? (iX = (0, import_jsx_runtime.jsxs)("div", {
94871
94980
  className: "p-6 pt-0",
94872
94981
  children: [
94873
- P,
94874
- F
94982
+ H,
94983
+ Q
94875
94984
  ]
94876
- }), r[14] = P, r[15] = F, r[16] = R) : R = r[16];
94877
- let z;
94878
- return r[17] !== S || r[18] !== w || r[19] !== R ? (z = (0, import_jsx_runtime.jsxs)("div", {
94879
- className: S,
94985
+ }), r[16] = H, r[17] = Q, r[18] = iX) : iX = r[18];
94986
+ let aX;
94987
+ return r[19] !== F || r[20] !== R || r[21] !== iX ? (aX = (0, import_jsx_runtime.jsxs)("div", {
94988
+ className: F,
94880
94989
  children: [
94881
- w,
94882
- R
94990
+ R,
94991
+ iX
94883
94992
  ]
94884
- }), r[17] = S, r[18] = w, r[19] = R, r[20] = z) : z = r[20], z;
94993
+ }), r[19] = F, r[20] = R, r[21] = iX, r[22] = aX) : aX = r[22], aX;
94885
94994
  };
94886
94995
  var import_compiler_runtime$8 = __toESM(require_compiler_runtime(), 1), TexPlugin = class {
94887
94996
  constructor() {
@@ -98860,7 +98969,7 @@ Defaulting to \`null\`.`;
98860
98969
  return Logger.warn("Failed to get version from mount config"), null;
98861
98970
  }
98862
98971
  }
98863
- const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.17.8"), showCodeInRunModeAtom = atom(true);
98972
+ const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.18.0"), showCodeInRunModeAtom = atom(true);
98864
98973
  atom(null);
98865
98974
  var VIRTUAL_FILE_REGEX = /\/@file\/([^\s"&'/]+)\.([\dA-Za-z]+)/g, VirtualFileTracker = class e {
98866
98975
  constructor() {
@@ -99891,7 +100000,7 @@ ${r}
99891
100000
  return c ? parseIslandEditor(c.dataset.initialValue) : "";
99892
100001
  }
99893
100002
  const islandsInitializedAtom = atom(false), userTriedToInteractWithIslandsAtom = atom(false), shouldShowIslandsWarningIndicatorAtom = atom((e) => e(userTriedToInteractWithIslandsAtom) && e(islandsInitializedAtom) === false);
99894
- var worker_default = "/assets/worker-BrDpRi2I.js", IslandsPyodideBridge = class e {
100003
+ var worker_default = "/assets/worker-CiT2i-Vo.js", IslandsPyodideBridge = class e {
99895
100004
  constructor() {
99896
100005
  __publicField(this, "initialized", new Deferred());
99897
100006
  __publicField(this, "sendComponentValues", async (e2) => (await this.putControlRequest(e2), null));