@marimo-team/islands 0.19.5-dev4 → 0.19.5-dev43

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 (55) hide show
  1. package/dist/{ConnectedDataExplorerComponent-D5KcOOzu.js → ConnectedDataExplorerComponent-DjQ_E5BA.js} +3 -3
  2. package/dist/assets/__vite-browser-external-DRa9CT_O.js +1 -0
  3. package/dist/assets/{worker-BR7KVExK.js → worker-SqntmiwV.js} +2 -2
  4. package/dist/{glide-data-editor-DsVDCmV2.js → glide-data-editor-zEomQJ3U.js} +2 -2
  5. package/dist/main.js +290 -244
  6. package/dist/{mermaid-DZjjc-kI.js → mermaid-D7wtYc6C.js} +2 -2
  7. package/dist/{spec-B1PGDiGh.js → spec-Cif4tBMJ.js} +1 -1
  8. package/dist/style.css +1 -1
  9. package/dist/{types-CbQF8CBX.js → types-BQOP2pRy.js} +1 -1
  10. package/dist/{useAsyncData-TLXJC7yx.js → useAsyncData-kqbhbSuf.js} +1 -1
  11. package/dist/{useDeepCompareMemoize-DVnEG7jx.js → useDeepCompareMemoize-B2QEm3jo.js} +1 -1
  12. package/dist/{useTheme-BllQjRdW.js → useTheme-CVr6Gb_R.js} +4 -1
  13. package/dist/{vega-component-B2QrGnW8.js → vega-component-DAeU1_cV.js} +3 -3
  14. package/package.json +1 -1
  15. package/src/__mocks__/requests.ts +1 -0
  16. package/src/components/ai/__tests__/ai-utils.test.ts +276 -0
  17. package/src/components/ai/ai-utils.ts +101 -0
  18. package/src/components/app-config/ai-config.tsx +56 -16
  19. package/src/components/app-config/user-config-form.tsx +63 -1
  20. package/src/components/chat/chat-panel.tsx +4 -4
  21. package/src/components/data-table/cell-utils.ts +10 -0
  22. package/src/components/editor/Output.tsx +21 -14
  23. package/src/components/editor/actions/useCellActionButton.tsx +2 -2
  24. package/src/components/editor/actions/useNotebookActions.tsx +61 -21
  25. package/src/components/editor/cell/cell-actions.tsx +6 -1
  26. package/src/components/editor/controls/Controls.tsx +1 -8
  27. package/src/components/editor/file-tree/file-explorer.tsx +4 -2
  28. package/src/components/editor/file-tree/file-viewer.tsx +9 -6
  29. package/src/components/editor/navigation/navigation.ts +39 -1
  30. package/src/components/editor/renderMimeIcon.tsx +2 -0
  31. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  32. package/src/core/ai/model-registry.ts +21 -3
  33. package/src/core/codemirror/language/panel/panel.tsx +3 -0
  34. package/src/core/codemirror/language/panel/sql.tsx +6 -2
  35. package/src/core/config/config-schema.ts +5 -1
  36. package/src/core/config/config.ts +4 -0
  37. package/src/core/config/feature-flag.tsx +2 -0
  38. package/src/core/export/__tests__/hooks.test.ts +120 -1
  39. package/src/core/export/hooks.ts +48 -18
  40. package/src/core/islands/bridge.ts +1 -0
  41. package/src/core/lsp/__tests__/transport.test.ts +149 -0
  42. package/src/core/lsp/transport.ts +48 -0
  43. package/src/core/network/requests-lazy.ts +1 -0
  44. package/src/core/network/requests-network.ts +9 -0
  45. package/src/core/network/requests-static.ts +1 -0
  46. package/src/core/network/requests-toasting.tsx +1 -0
  47. package/src/core/network/types.ts +2 -0
  48. package/src/core/wasm/bridge.ts +1 -0
  49. package/src/css/app/Cell.css +0 -2
  50. package/src/plugins/layout/TexPlugin.tsx +7 -5
  51. package/src/utils/__tests__/download.test.tsx +492 -0
  52. package/src/utils/download.ts +161 -6
  53. package/src/utils/filenames.ts +3 -0
  54. package/dist/assets/__vite-browser-external-CgHmDpAZ.js +0 -1
  55. package/src/components/export/export-output-button.tsx +0 -14
package/dist/main.js CHANGED
@@ -7,11 +7,11 @@ import { t as require_compiler_runtime } from "./compiler-runtime-DHFVbq0b.js";
7
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
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";
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-Cif4tBMJ.js";
11
11
  import { t as Check } from "./check-S8ldILuD.js";
12
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";
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-BQOP2pRy.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-B2QEm3jo.js";
15
15
  import { n as clsx_default } from "./clsx-D2KVTYnW.js";
16
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";
@@ -20,7 +20,7 @@ import { t as require_react_dom } from "./react-dom-DJW8xUDg.js";
20
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
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-BllQjRdW.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-CVr6Gb_R.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-TLXJC7yx.js";
50
+ import { t as useAsyncData } from "./useAsyncData-kqbhbSuf.js";
51
51
  import "./defaultLocale-DZtxSCkJ.js";
52
52
  import "./defaultLocale-DMZFeDB8.js";
53
53
  import "./katex-BTobf3T8.js";
@@ -30411,7 +30411,8 @@ ${c.sqlString}
30411
30411
  performant_table_charts: false,
30412
30412
  chat_modes: false,
30413
30413
  cache_panel: false,
30414
- external_agents: false
30414
+ external_agents: false,
30415
+ server_side_pdf_export: false
30415
30416
  };
30416
30417
  function getFeatureFlag(e) {
30417
30418
  var _a2, _b3;
@@ -32662,6 +32663,7 @@ ${c.sqlString}
32662
32663
  super();
32663
32664
  __publicField(this, "isClosed", false);
32664
32665
  __publicField(this, "hasConnectedBefore", false);
32666
+ __publicField(this, "pendingSubscriptions", []);
32665
32667
  this.options = e, this.delegate = void 0;
32666
32668
  }
32667
32669
  createDelegate() {
@@ -32670,7 +32672,9 @@ ${c.sqlString}
32670
32672
  } catch (e) {
32671
32673
  Logger.warn("Error closing old WebSocket delegate", e);
32672
32674
  }
32673
- return this.delegate = new import_build.WebSocketTransport(this.options.getWsUrl()), this.delegate;
32675
+ this.delegate = new import_build.WebSocketTransport(this.options.getWsUrl());
32676
+ for (let { event: e, handler: r } of this.pendingSubscriptions) this.delegate.subscribe(e, r);
32677
+ return this.delegate;
32674
32678
  }
32675
32679
  isDelegateClosedOrClosing() {
32676
32680
  if (!this.delegate) return true;
@@ -32697,6 +32701,18 @@ ${c.sqlString}
32697
32701
  var _a2;
32698
32702
  this.isClosed = true, (_a2 = this.delegate) == null ? void 0 : _a2.close(), this.delegate = void 0, this.connectionPromise = void 0;
32699
32703
  }
32704
+ subscribe(...e) {
32705
+ super.subscribe(...e);
32706
+ let [r, c] = e;
32707
+ this.pendingSubscriptions.push({
32708
+ event: r,
32709
+ handler: c
32710
+ }), this.delegate && this.delegate.subscribe(r, c);
32711
+ }
32712
+ unsubscribe(...e) {
32713
+ let r = super.unsubscribe(...e), [c, d] = e;
32714
+ return this.pendingSubscriptions = this.pendingSubscriptions.filter((e2) => !(e2.event === c && e2.handler === d)), this.delegate && this.delegate.unsubscribe(c, d), r;
32715
+ }
32700
32716
  async sendData(e, r) {
32701
32717
  var _a2;
32702
32718
  if (this.isDelegateClosedOrClosing()) {
@@ -34689,7 +34705,17 @@ ${c.sqlString}
34689
34705
  })
34690
34706
  ]
34691
34707
  }), e[1] = c) : c = e[1], c;
34692
- };
34708
+ }, DATA_CELL_ID = "data-cell-id";
34709
+ function getCellDomProps(e) {
34710
+ return {
34711
+ [DATA_CELL_ID]: e
34712
+ };
34713
+ }
34714
+ function getCellForDomProps(e) {
34715
+ return {
34716
+ "data-for-cell-id": e
34717
+ };
34718
+ }
34693
34719
  var clickhouse_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClickHouse%3c/title%3e%3cpath%20d='M21.333%2010H24v4h-2.667ZM16%201.335h2.667v21.33H16Zm-5.333%200h2.666v21.33h-2.666ZM0%2022.665V1.335h2.667v21.33zm5.333-21.33H8v21.33H5.333Z'/%3e%3c/svg%3e", databricks_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDatabricks%3c/title%3e%3cpath%20d='M.95%2014.184L12%2020.403l9.919-5.55v2.21L12%2022.662l-10.484-5.96-.565.308v.77L12%2024l11.05-6.218v-4.317l-.515-.309L12%2019.118l-9.867-5.653v-2.21L12%2016.805l11.05-6.218V6.32l-.515-.308L12%2011.974%202.647%206.681%2012%201.388l7.76%204.368.668-.411v-.566L12%200%20.95%206.27v.72L12%2013.207l9.919-5.55v2.26L12%2015.52%201.516%209.56l-.565.308Z'/%3e%3c/svg%3e", datafusion_default = "data:image/png;base64,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", duckdb_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eDuckDB%3c/title%3e%3cpath%20d='M12%200C5.363%200%200%205.363%200%2012s5.363%2012%2012%2012%2012-5.363%2012-12S18.637%200%2012%200zM9.502%207.03a4.974%204.974%200%200%201%204.97%204.97%204.974%204.974%200%200%201-4.97%204.97A4.974%204.974%200%200%201%204.532%2012a4.974%204.974%200%200%201%204.97-4.97zm6.563%203.183h2.351c.98%200%201.787.782%201.787%201.762s-.807%201.789-1.787%201.789h-2.351v-3.551z'/%3e%3c/svg%3e", googlebigquery_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eGoogle%20BigQuery%3c/title%3e%3cpath%20d='M5.676%2010.595h2.052v5.244a5.892%205.892%200%200%201-2.052-2.088v-3.156zm18.179%2010.836a.504.504%200%200%201%200%20.708l-1.716%201.716a.504.504%200%200%201-.708%200l-4.248-4.248a.206.206%200%200%201-.007-.007c-.02-.02-.028-.045-.043-.066a10.736%2010.736%200%200%201-6.334%202.065C4.835%2021.599%200%2016.764%200%2010.799S4.835%200%2010.8%200s10.799%204.835%2010.799%2010.8c0%202.369-.772%204.553-2.066%206.333.025.017.052.028.074.05l4.248%204.248zm-5.028-10.632a8.015%208.015%200%201%200-8.028%208.028h.024a8.016%208.016%200%200%200%208.004-8.028zm-4.86%204.98a6.002%206.002%200%200%200%202.04-2.184v-1.764h-2.04v3.948zm-4.5.948c.442.057.887.08%201.332.072.4.025.8.025%201.2%200V7.692H9.468v9.035z'/%3e%3c/svg%3e", iceberg_default = "data:image/png;base64,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", motherduck_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMotherDuck%3c/title%3e%3cg%20transform='scale(0.85)%20translate(0,%202)'%3e%3cpath%20fill='%23ff9538'%20d='M1.71%2015.86s7.45%205.32%207.89%205.59c.44.27%201.08.33%201.64.11.56-.22.98-.71%201.11-1.21s1.85-9.49%201.85-9.49c.02-.12.07-.48-.13-.83-.27-.47-.86-.71-1.38-.57-.42.12-.64.44-.7.55-.09.17-.26.45-.57.7-.24.19-.47.3-.58.34-.96.38-2.02.06-2.61-.72-.38-.48-1.04-.67-1.64-.43-.6.24-.94.84-.89%201.45.11.98-.44%201.94-1.4%202.32-.51.21-1.06.21-1.54.05-.12-.03-.51-.12-.89.09-.48.26-.74.84-.61%201.37.09.39.38.62.48.69z'%20/%3e%3cpath%20fill='%23ff9538'%20d='M14.12%204.21s2.65%208.76%202.83%209.24c.19.48.66.92%201.23%201.09.58.16%201.21.03%201.62-.28.41-.31%207.25-6.39%207.25-6.39.09-.08.35-.34.4-.74.07-.53-.25-1.09-.75-1.29-.4-.16-.78-.04-.89%200-.18.08-.48.2-.88.2-.3.01-.55-.05-.67-.08-.99-.28-1.64-1.18-1.63-2.16-.01-.61-.42-1.17-1.04-1.35-.62-.18-1.26.09-1.59.6-.51.84-1.53%201.27-2.52.99-.53-.15-.96-.48-1.25-.91-.07-.09-.33-.4-.76-.48-.54-.09-1.1.22-1.32.71-.16.37-.08.72-.04.84z'%20/%3e%3c/g%3e%3c/svg%3e", mysql_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eMySQL%3c/title%3e%3cpath%20d='M16.405%205.501c-.115%200-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77%2018.695h-.927a50.854%2050.854%200%2000-.27-4.41h-.008l-1.41%204.41H2.45l-1.4-4.41h-.01a72.892%2072.892%200%2000-.195%204.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335%204.064h.008l1.347-4.064h1.095c.242%202.015.384%203.86.428%205.53zm4.017-4.08c-.378%202.045-.876%203.533-1.492%204.46-.482.716-1.01%201.073-1.583%201.073-.153%200-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268%200%20.483-.075.647-.222.197-.18.295-.382.295-.605%200-.155-.077-.47-.23-.944L6.23%2014.615h.91l.727%202.36c.164.536.233.91.205%201.123.4-1.064.678-2.227.835-3.483zm12.325%204.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253%200-1.83-.718-2.746-2.155-2.746-.704%200-1.254.232-1.65.697-.43.508-.646%201.256-.646%202.245%200%20.972.19%201.686.574%202.14.35.41.877.615%201.583.615.264%200%20.506-.033.725-.098l1.325.772.36-.622zM15.5%2017.588c-.225-.36-.337-.94-.337-1.736%200-1.393.424-2.09%201.27-2.09.443%200%20.77.167.977.5.224.362.336.936.336%201.723%200%201.404-.424%202.108-1.27%202.108-.445%200-.77-.167-.978-.5zm-1.658-.425c0%20.47-.172.856-.516%201.156-.344.3-.803.45-1.384.45-.543%200-1.064-.172-1.573-.515l.237-.476c.438.22.833.328%201.19.328.332%200%20.593-.073.783-.22a.754.754%200%2000.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177%200-.45.157-.81.47-1.085.315-.278.72-.415%201.22-.415.512%200%20.98.136%201.4.41l-.213.476a2.726%202.726%200%2000-1.064-.23c-.283%200-.502.068-.654.206a.685.685%200%2000-.248.524c0%20.328.234.61.666.85.393.215%201.187.67%201.187.67.433.305.648.63.648%201.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223%203.223%200%2000-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867%208.867%200%2000-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69%2017.69%200%2001-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422%201.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146%201.693.194%202.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445%203.445%200%2001-.35-.4%208.76%208.76%200%2001-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188%201.01-.027.007-.014%200-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478%202.478%200%2001-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953%205.953%200%20012.085%202.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z'/%3e%3c/svg%3e", postgresql_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3ePostgreSQL%3c/title%3e%3cpath%20d='M23.5594%2014.7228a.5269.5269%200%200%200-.0563-.1191c-.139-.2632-.4768-.3418-1.0074-.2321-1.6533.3411-2.2935.1312-2.5256-.0191%201.342-2.0482%202.445-4.522%203.0411-6.8297.2714-1.0507.7982-3.5237.1222-4.7316a1.5641%201.5641%200%200%200-.1509-.235C21.6931.9086%2019.8007.0248%2017.5099.0005c-1.4947-.0158-2.7705.3461-3.1161.4794a9.449%209.449%200%200%200-.5159-.0816%208.044%208.044%200%200%200-1.3114-.1278c-1.1822-.0184-2.2038.2642-3.0498.8406-.8573-.3211-4.7888-1.645-7.2219.0788C.9359%202.1526.3086%203.8733.4302%206.3043c.0409.818.5069%203.334%201.2423%205.7436.4598%201.5065.9387%202.7019%201.4334%203.582.553.9942%201.1259%201.5933%201.7143%201.7895.4474.1491%201.1327.1441%201.8581-.7279.8012-.9635%201.5903-1.8258%201.9446-2.2069.4351.2355.9064.3625%201.39.3772a.0569.0569%200%200%200%20.0004.0041%2011.0312%2011.0312%200%200%200-.2472.3054c-.3389.4302-.4094.5197-1.5002.7443-.3102.064-1.1344.2339-1.1464.8115-.0025.1224.0329.2309.0919.3268.2269.4231.9216.6097%201.015.6331%201.3345.3335%202.5044.092%203.3714-.6787-.017%202.231.0775%204.4174.3454%205.0874.2212.5529.7618%201.9045%202.4692%201.9043.2505%200%20.5263-.0291.8296-.0941%201.7819-.3821%202.5557-1.1696%202.855-2.9059.1503-.8707.4016-2.8753.5388-4.1012.0169-.0703.0357-.1207.057-.1362.0007-.0005.0697-.0471.4272.0307a.3673.3673%200%200%200%20.0443.0068l.2539.0223.0149.001c.8468.0384%201.9114-.1426%202.5312-.4308.6438-.2988%201.8057-1.0323%201.5951-1.6698zM2.371%2011.8765c-.7435-2.4358-1.1779-4.8851-1.2123-5.5719-.1086-2.1714.4171-3.6829%201.5623-4.4927%201.8367-1.2986%204.8398-.5408%206.108-.13-.0032.0032-.0066.0061-.0098.0094-2.0238%202.044-1.9758%205.536-1.9708%205.7495-.0002.0823.0066.1989.0162.3593.0348.5873.0996%201.6804-.0735%202.9184-.1609%201.1504.1937%202.2764.9728%203.0892.0806.0841.1648.1631.2518.2374-.3468.3714-1.1004%201.1926-1.9025%202.1576-.5677.6825-.9597.5517-1.0886.5087-.3919-.1307-.813-.5871-1.2381-1.3223-.4796-.839-.9635-2.0317-1.4155-3.5126zm6.0072%205.0871c-.1711-.0428-.3271-.1132-.4322-.1772.0889-.0394.2374-.0902.4833-.1409%201.2833-.2641%201.4815-.4506%201.9143-1.0002.0992-.126.2116-.2687.3673-.4426a.3549.3549%200%200%200%20.0737-.1298c.1708-.1513.2724-.1099.4369-.0417.156.0646.3078.26.3695.4752.0291.1016.0619.2945-.0452.4444-.9043%201.2658-2.2216%201.2494-3.1676%201.0128zm2.094-3.988-.0525.141c-.133.3566-.2567.6881-.3334%201.003-.6674-.0021-1.3168-.2872-1.8105-.8024-.6279-.6551-.9131-1.5664-.7825-2.5004.1828-1.3079.1153-2.4468.079-3.0586-.005-.0857-.0095-.1607-.0122-.2199.2957-.2621%201.6659-.9962%202.6429-.7724.4459.1022.7176.4057.8305.928.5846%202.7038.0774%203.8307-.3302%204.7363-.084.1866-.1633.3629-.2311.5454zm7.3637%204.5725c-.0169.1768-.0358.376-.0618.5959l-.146.4383a.3547.3547%200%200%200-.0182.1077c-.0059.4747-.054.6489-.115.8693-.0634.2292-.1353.4891-.1794%201.0575-.11%201.4143-.8782%202.2267-2.4172%202.5565-1.5155.3251-1.7843-.4968-2.0212-1.2217a6.5824%206.5824%200%200%200-.0769-.2266c-.2154-.5858-.1911-1.4119-.1574-2.5551.0165-.5612-.0249-1.9013-.3302-2.6462.0044-.2932.0106-.5909.019-.8918a.3529.3529%200%200%200-.0153-.1126%201.4927%201.4927%200%200%200-.0439-.208c-.1226-.4283-.4213-.7866-.7797-.9351-.1424-.059-.4038-.1672-.7178-.0869.067-.276.1831-.5875.309-.9249l.0529-.142c.0595-.16.134-.3257.213-.5012.4265-.9476%201.0106-2.2453.3766-5.1772-.2374-1.0981-1.0304-1.6343-2.2324-1.5098-.7207.0746-1.3799.3654-1.7088.5321a5.6716%205.6716%200%200%200-.1958.1041c.0918-1.1064.4386-3.1741%201.7357-4.4823a4.0306%204.0306%200%200%201%20.3033-.276.3532.3532%200%200%200%20.1447-.0644c.7524-.5706%201.6945-.8506%202.802-.8325.4091.0067.8017.0339%201.1742.081%201.939.3544%203.2439%201.4468%204.0359%202.3827.8143.9623%201.2552%201.9315%201.4312%202.4543-1.3232-.1346-2.2234.1268-2.6797.779-.9926%201.4189.543%204.1729%201.2811%205.4964.1353.2426.2522.4522.2889.5413.2403.5825.5515.9713.7787%201.2552.0696.087.1372.1714.1885.245-.4008.1155-1.1208.3825-1.0552%201.717-.0123.1563-.0423.4469-.0834.8148-.0461.2077-.0702.4603-.0994.7662zm.8905-1.6211c-.0405-.8316.2691-.9185.5967-1.0105a2.8566%202.8566%200%200%200%20.135-.0406%201.202%201.202%200%200%200%20.1342.103c.5703.3765%201.5823.4213%203.0068.1344-.2016.1769-.5189.3994-.9533.6011-.4098.1903-1.0957.333-1.7473.3636-.7197.0336-1.0859-.0807-1.1721-.151zm.5695-9.2712c-.0059.3508-.0542.6692-.1054%201.0017-.055.3576-.112.7274-.1264%201.1762-.0142.4368.0404.8909.0932%201.3301.1066.887.216%201.8003-.2075%202.7014a3.5272%203.5272%200%200%201-.1876-.3856c-.0527-.1276-.1669-.3326-.3251-.6162-.6156-1.1041-2.0574-3.6896-1.3193-4.7446.3795-.5427%201.3408-.5661%202.1781-.463zm.2284%207.0137a12.3762%2012.3762%200%200%200-.0853-.1074l-.0355-.0444c.7262-1.1995.5842-2.3862.4578-3.4385-.0519-.4318-.1009-.8396-.0885-1.2226.0129-.4061.0666-.7543.1185-1.0911.0639-.415.1288-.8443.1109-1.3505.0134-.0531.0188-.1158.0118-.1902-.0457-.4855-.5999-1.938-1.7294-3.253-.6076-.7073-1.4896-1.4972-2.6889-2.0395.5251-.1066%201.2328-.2035%202.0244-.1859%202.0515.0456%203.6746.8135%204.8242%202.2824a.908.908%200%200%201%20.0667.1002c.7231%201.3556-.2762%206.2751-2.9867%2010.5405zm-8.8166-6.1162c-.025.1794-.3089.4225-.6211.4225a.5821.5821%200%200%201-.0809-.0056c-.1873-.026-.3765-.144-.5059-.3156-.0458-.0605-.1203-.178-.1055-.2844.0055-.0401.0261-.0985.0925-.1488.1182-.0894.3518-.1226.6096-.0867.3163.0441.6426.1938.6113.4186zm7.9305-.4114c.0111.0792-.049.201-.1531.3102-.0683.0717-.212.1961-.4079.2232a.5456.5456%200%200%201-.075.0052c-.2935%200-.5414-.2344-.5607-.3717-.024-.1765.2641-.3106.5611-.352.297-.0414.6111.0088.6356.1851z'/%3e%3c/svg%3e", redshift_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eAmazon%20Redshift%3c/title%3e%3cpath%20d='M16.639%209.932a.822.822%200%200%201-.822-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.823.82m-2.086%204.994a.823.823%200%200%201-.822-.822.822.822%200%200%201%201.645%200%20.822.822%200%200%201-.823.822m-5.004-.833a.822.822%200%201%201%20.002-1.644.822.822%200%200%201-.002%201.644m-2.083%204.578a.823.823%200%200%201-.823-.82.823.823%200%200%201%201.645%200c0%20.452-.37.82-.822.82m9.173-11.236a1.68%201.68%200%200%200-1.68%201.676c0%20.566.285%201.066.718%201.37l-.782%201.982a1.674%201.674%200%200%200-1.923%201.104l-1.753-.398a1.675%201.675%200%200%200-3.348.103c0%20.432.169.823.438%201.12l-.764%201.79c-.028-.001-.053-.008-.08-.008a1.68%201.68%200%200%200-1.68%201.676%201.68%201.68%200%200%200%203.36%200c0-.593-.312-1.112-.778-1.41l.674-1.579c.161.052.33.088.508.088.661%200%201.228-.386%201.502-.94l1.856.42a1.68%201.68%200%200%200%203.327-.325c0-.5-.224-.943-.574-1.25l.822-2.083c.053.005.104.016.157.016a1.68%201.68%200%200%200%201.68-1.676%201.68%201.68%200%200%200-1.68-1.676M12%2023.145c-4.17%200-7.286-1.252-7.286-2.37V4.79C6.14%205.938%209.131%206.547%2012%206.547c2.869%200%205.86-.609%207.286-1.756v15.983c0%201.12-3.116%202.37-7.286%202.37M12%20.856c4.293%200%207.286%201.274%207.286%202.419%200%201.143-2.993%202.418-7.286%202.418-4.293%200-7.286-1.275-7.286-2.418C4.714%202.129%207.707.855%2012%20.855m8.143%202.419C20.143%201.147%2015.947%200%2012%200%208.052%200%203.857%201.147%203.857%203.274l.002.01h-.002v17.49C3.857%2022.87%208.052%2024%2012%2024c3.947%200%208.143-1.13%208.143-3.226V3.284h-.002l.002-.01'/%3e%3c/svg%3e", snowflake_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSnowflake%3c/title%3e%3cpath%20d='M24%203.459c0%20.646-.418%201.18-1.141%201.18-.723%200-1.142-.534-1.142-1.18%200-.647.419-1.18%201.142-1.18.723%200%201.141.533%201.141%201.18zm-.228%200c0-.533-.38-.951-.913-.951s-.913.38-.913.95c0%20.533.38.952.913.952.57%200%20.913-.419.913-.951zm-1.37-.533h.495c.266%200%20.456.152.456.38%200%20.153-.076.229-.19.305l.19.266v.038h-.266l-.19-.266h-.229v.266h-.266zm.495.228h-.229v.267h.229c.114%200%20.152-.038.152-.114.038-.077-.038-.153-.152-.153zM7.602%2012.4c.038-.151.076-.304.076-.456%200-.114-.038-.228-.038-.342-.114-.343-.304-.647-.646-.838l-4.87-2.777c-.685-.38-1.56-.152-1.94.533-.381.685-.153%201.56.532%201.94l2.701%201.56-2.701%201.56c-.685.38-.913%201.256-.533%201.94.38.685%201.256.914%201.94.533l4.832-2.777c.343-.267.571-.533.647-.876zm1.332%202.626c-.266-.038-.57.038-.837.19l-4.832%202.777c-.685.38-.913%201.256-.532%201.94.38.686%201.255.914%201.94.533l2.701-1.56v3.12c0%20.8.647%201.408%201.446%201.408.799%200%201.407-.647%201.407-1.408v-5.592c0-.761-.57-1.37-1.293-1.408zm4.946-6.088c.266.038.57-.038.837-.19l4.832-2.777c.685-.38.913-1.256.532-1.94-.38-.686-1.255-.914-1.94-.533l-2.701%201.56V1.975c0-.799-.647-1.408-1.446-1.408-.799%200-1.446.609-1.446%201.408V7.53c0%20.76.609%201.37%201.332%201.407zM3.265%205.97l4.832%202.777c.266.152.533.19.837.19.723-.038%201.331-.684%201.331-1.407V1.975c0-.799-.646-1.408-1.407-1.408-.799%200-1.446.647-1.446%201.408v3.12l-2.701-1.56c-.685-.38-1.56-.152-1.94.533-.419.646-.19%201.521.494%201.902zm9.093%206.011a.412.412%200%2000-.114-.266l-.57-.571a.346.346%200%2000-.267-.114.412.412%200%2000-.266.114l-.571.57a.411.411%200%2000-.114.267c0%20.076.038.19.114.267l.57.57a.345.345%200%2000.267.114c.076%200%20.19-.038.266-.114l.571-.57a.412.412%200%2000.114-.267zm1.598.533L11.94%2014.53c-.039.038-.153.114-.229.114h-.608a.411.411%200%2001-.267-.114L8.82%2012.514a.408.408%200%2001-.076-.229v-.608c0-.076.038-.19.114-.267l2.016-2.016a.41.41%200%2001.267-.114h.608a.41.41%200%2001.267.114l2.016%202.016a.347.347%200%2001.114.267v.608c-.076.077-.114.19-.19.229zm5.593%205.44l-4.832-2.777c-.266-.152-.57-.19-.837-.152-.723.038-1.332.684-1.332%201.408v5.554c0%20.8.647%201.408%201.408%201.408.799%200%201.446-.647%201.446-1.408v-3.12l2.7%201.56c.686.38%201.561.152%201.941-.533.419-.646.19-1.521-.494-1.94zm2.549-7.533l-2.701%201.56%202.7%201.56c.686.38.914%201.256.533%201.94-.38.685-1.255.913-1.94.533l-4.832-2.778a1.644%201.644%200%2001-.647-.798c-.037-.153-.076-.305-.076-.457%200-.114.039-.228.039-.342.114-.343.342-.647.646-.837l4.832-2.778c.685-.38%201.56-.152%201.94.533.457.609.19%201.484-.494%201.864'/%3e%3c/svg%3e", spark_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eApache%20Spark%3c/title%3e%3cpath%20d='M10.812%200c-.425.013-.845.215-1.196.605a3.593%203.593%200%2000-.493.722c-.355.667-.425%201.415-.556%202.143a551.9%20551.9%200%2000-.726%204.087c-.027.16-.096.227-.244.273C5.83%208.386%204.06%208.94%202.3%209.514c-.387.125-.773.289-1.114.506-1.042.665-1.196%201.753-.415%202.71.346.422.79.715%201.284.936%201.1.49%202.202.976%203.3%201.47.019.01.036.013.053.019h-.004l1.306.535c0%20.023.002.045%200%20.073-.2%202.03-.39%204.063-.58%206.095-.04.419-.012.831.134%201.23.317.87%201.065%201.148%201.881.701.372-.204.666-.497.937-.818%201.372-1.623%202.746-3.244%204.113-4.872.111-.133.205-.15.363-.098.349.117.697.231%201.045.347h.001c.02.012.045.02.073.03l.142.042c1.248.416%202.68.775%203.929%201.19.4.132.622.164%201.045.098.311-.048.592-.062.828-.236.602-.33.995-.957.988-1.682-.005-.427-.154-.813-.35-1.186-.82-1.556-1.637-3.113-2.461-4.666-.078-.148-.076-.243.037-.375%201.381-1.615%202.756-3.236%204.133-4.855.272-.32.513-.658.653-1.058.308-.878-.09-1.57-1-1.741a2.783%202.783%200%2000-1.235.069c-1.974.521-3.947%201.041-5.918%201.57-.175.047-.26.015-.355-.144a353.08%20353.08%200%2000-2.421-4.018%204.61%204.61%200%2000-.652-.849c-.371-.37-.802-.549-1.227-.536zm.172%203.703a.592.592%200%2001.189.211c.87%201.446%201.742%202.89%202.609%204.338.07.118.135.16.277.121%201.525-.41%203.052-.813%204.579-1.217.367-.098.735-.193%201.103-.289a.399.399%200%2001-.1.2c-1.259%201.48-2.516%202.962-3.779%204.438-.11.13-.12.22-.04.37.937%201.803%201.768%203.309%202.498%204.76l-3.696-1.019c-.538-.18-1.077-.358-1.615-.539-.163-.055-.25-.03-.36.1-1.248%201.488-2.504%202.97-3.759%204.454a.398.398%200%2001-.18.132c.035-.378.068-.757.104-1.136.149-1.572.297-3.144.451-4.716-.03-.318.117-.405-.322-.545-1.493-.593-3.346-1.321-4.816-1.905a.595.595%200%2001.24-.134c1.797-.57%203.595-1.14%205.394-1.705.127-.04.199-.092.211-.233.013-.148.05-.294.076-.441.241-1.363.483-2.726.726-4.088.068-.386.14-.771.21-1.157z'/%3e%3c/svg%3e", sqlite_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSQLite%3c/title%3e%3cpath%20d='M21.678.521c-1.032-.92-2.28-.55-3.513.544a8.71%208.71%200%200%200-.547.535c-2.109%202.237-4.066%206.38-4.674%209.544.237.48.422%201.093.544%201.561a13.044%2013.044%200%200%201%20.164.703s-.019-.071-.096-.296l-.05-.146a1.689%201.689%200%200%200-.033-.08c-.138-.32-.518-.995-.686-1.289-.143.423-.27.818-.376%201.176.484.884.778%202.4.778%202.4s-.025-.099-.147-.442c-.107-.303-.644-1.244-.772-1.464-.217.804-.304%201.346-.226%201.478.152.256.296.698.422%201.186.286%201.1.485%202.44.485%202.44l.017.224a22.41%2022.41%200%200%200%20.056%202.748c.095%201.146.273%202.13.5%202.657l.155-.084c-.334-1.038-.47-2.399-.41-3.967.09-2.398.642-5.29%201.661-8.304%201.723-4.55%204.113-8.201%206.3-9.945-1.993%201.8-4.692%207.63-5.5%209.788-.904%202.416-1.545%204.684-1.931%206.857.666-2.037%202.821-2.912%202.821-2.912s1.057-1.304%202.292-3.166c-.74.169-1.955.458-2.362.629-.6.251-.762.337-.762.337s1.945-1.184%203.613-1.72C21.695%207.9%2024.195%202.767%2021.678.521m-18.573.543A1.842%201.842%200%200%200%201.27%202.9v16.608a1.84%201.84%200%200%200%201.835%201.834h9.418a22.953%2022.953%200%200%201-.052-2.707c-.006-.062-.011-.141-.016-.2a27.01%2027.01%200%200%200-.473-2.378c-.121-.47-.275-.898-.369-1.057-.116-.197-.098-.31-.097-.432%200-.12.015-.245.037-.386a9.98%209.98%200%200%201%20.234-1.045l.217-.028c-.017-.035-.014-.065-.031-.097l-.041-.381a32.8%2032.8%200%200%201%20.382-1.194l.2-.019c-.008-.016-.01-.038-.018-.053l-.043-.316c.63-3.28%202.587-7.443%204.8-9.791.066-.069.133-.128.198-.194Z'/%3e%3c/svg%3e", supabase_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eSupabase%3c/title%3e%3cpath%20d='M11.9%201.036c-.015-.986-1.26-1.41-1.874-.637L.764%2012.05C-.33%2013.427.65%2015.455%202.409%2015.455h9.579l.113%207.51c.014.985%201.259%201.408%201.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z'/%3e%3c/svg%3e", timeplus_default = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Generated%20by%20Pixelmator%20Pro%203.6.17%20--%3e%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20id='Option2SymbolB'%3e%3cg%20id='Layer1-2'%3e%3cg%20id='Group'%20opacity='0.4'%3e%3cpath%20id='Path'%20fill='%23d53c97'%20stroke='none'%20d='M%2017.016802%2012.188573%20C%2017.016802%209.607646%2015.86018%207.293022%2014.039526%205.731081%20C%2013.942595%205.70038%2013.844628%205.671406%2013.745972%205.645189%20C%2013.131133%205.809095%2012.54265%206.059378%2011.998103%206.388559%20C%2013.964327%207.575191%2015.281006%209.730104%2015.281006%2012.188573%20C%2015.279476%2014.563734%2014.033739%2016.764488%2011.998103%2017.988243%20C%2012.542634%2018.317537%2013.131119%2018.567936%2013.745972%2018.731958%20C%2013.844628%2018.705742%2013.942595%2018.67642%2014.039526%2018.645721%20C%2015.86018%2017.084126%2017.016802%2014.769501%2017.016802%2012.188573%20Z'/%3e%3cpath%20id='path1'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.897406%205.609659%20L%2013.894991%205.60759%20C%2013.844973%205.619663%2013.7953%205.631737%2013.745972%205.645189%20C%2013.79599%205.631737%2013.847043%205.622078%2013.897406%205.609659%20Z'/%3e%3cpath%20id='path2'%20fill='%23d53c97'%20stroke='none'%20d='M%201.735796%2012.188573%20C%201.735796%209.164728%203.728925%206.59622%206.470945%205.729357%20C%207.554634%204.797861%208.856011%204.155121%2010.254373%203.860756%20C%209.680216%203.740549%209.095179%203.679977%208.508574%203.68%20C%203.816888%203.68%20-0%207.496887%20-0%2012.188573%20C%20-0%2016.880259%203.816888%2020.697147%208.508574%2020.697147%20C%209.0952%2020.697229%209.680255%2020.636539%2010.254373%2020.516048%20C%208.855971%2020.221794%207.554568%2019.579041%206.470945%2018.647446%20C%203.728925%2017.780582%201.735796%2015.213453%201.735796%2012.188573%20Z'/%3e%3cpath%20id='path3'%20fill='%23d53c97'%20stroke='none'%20d='M%2013.745972%2018.731958%20C%2013.7953%2018.745068%2013.844973%2018.757484%2013.894991%2018.769558%20C%2013.894991%2018.769558%2013.896715%2018.769558%2013.897406%2018.767488%20C%2013.847043%2018.754379%2013.79599%2018.745411%2013.745972%2018.731958%20Z'/%3e%3c/g%3e%3cpath%20id='path4'%20fill='%23ff3b65'%20stroke='none'%20d='M%2020.508402%2012.188573%20C%2020.508402%209.606611%2019.351088%207.290262%2017.5294%205.729357%20C%2016.301817%205.342468%2014.989366%205.313629%2013.745972%205.646223%20C%2016.636665%206.418224%2018.772606%209.058484%2018.772606%2012.189609%20C%2018.772606%2015.320732%2016.636665%2017.960991%2013.745972%2018.731958%20C%2014.98947%2019.064316%2016.301983%2019.034998%2017.5294%2018.647446%20C%2019.419907%2017.034296%2020.508638%2014.673781%2020.508402%2012.188573%20Z'/%3e%3cpath%20id='path5'%20fill='%23ff3b65'%20stroke='none'%20d='M%209.962543%2018.647446%20C%207.220525%2017.780582%205.227395%2015.213453%205.227395%2012.188573%20C%205.227395%209.163693%207.220525%206.59622%209.962543%205.729357%20C%2011.046233%204.797861%2012.34761%204.155121%2013.745972%203.860756%20C%2013.171818%203.74053%2012.586779%203.679956%2012.000173%203.68%20C%207.308832%203.68%203.491599%207.496887%203.491599%2012.188573%20C%203.491599%2016.880259%207.308487%2020.697147%2012.000173%2020.697147%20C%2012.586799%2020.697247%2013.171857%2020.636557%2013.745972%2020.516048%20C%2012.34757%2020.221794%2011.046167%2019.579041%209.962543%2018.647446%20Z'/%3e%3cpath%20id='path6'%20fill='%23383838'%20stroke='none'%20d='M%2015.491772%203.68%20C%2010.800431%203.68%206.983198%207.496887%206.983198%2012.188573%20C%206.983198%2016.880259%2010.800086%2020.697147%2015.491772%2020.697147%20C%2020.183456%2020.697147%2024%2016.880259%2024%2012.188573%20C%2024%207.496887%2020.183456%203.68%2015.491772%203.68%20Z%20M%2022.264549%2012.188573%20C%2022.264549%2015.923018%2019.226215%2018.961351%2015.491772%2018.961351%20C%2011.757326%2018.961351%208.718994%2015.923018%208.718994%2012.188573%20C%208.718994%208.454128%2011.757326%205.415796%2015.491772%205.415796%20C%2019.226215%205.415796%2022.264549%208.454128%2022.264549%2012.188573%20Z'/%3e%3c/g%3e%3c/g%3e%3c/svg%3e", trino_default = "data:image/svg+xml,%3csvg%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eTrino%3c/title%3e%3cpath%20d='M14.124%2016.8529a.1615.1615%200%201%201%20.1576.1614.1577.1577%200%200%201-.1576-.1614zm-5.607-.1576a.1614.1614%200%201%200%200%20.3228.1614.1614%200%200%200%200-.3228zm10.1341-.6648v1.9869c-.031.5788-.524%201.0237-1.1029.9954h-.3843a5.0596%205.0596%200%200%201-1.1298%201.7178.3192.3192%200%200%200%200%20.465l.2382.2191a.3036.3036%200%200%201%20.0385.4304c-1.126%201.3835-2.9669%202.1521-5.0498%202.1521a6.575%206.575%200%200%201-4.8192-1.8985c-.0029-.0032-.0059-.0063-.0087-.0096a.6302.6302%200%200%201%20.0548-.8896c.137-.1265.1371-.3462%200-.4727a4.944%204.944%200%200%201-1.126-1.714h-.3497c-.5797.0284-1.0737-.416-1.1068-.9954v-1.9869c.0351-.5779.5286-1.02%201.1068-.9915h.2728a5.7648%205.7648%200%200%201%202.0791-3.0936c-.4227-1.0991-1.1529-3.2551-1.226-5.0075C6.0229%204.4705%206.2189.078%207.8253.001c1.6064-.0768%201.3719%204.0275%201.0991%206.6946a32.732%2032.732%200%200%200-.123%204.4503%206.994%206.994%200%200%201%202.4826-.4304%207.2414%207.2414%200%200%201%201.7371.2075c.2614-1.2682.8762-3.574%202.0292-5.1958%201.6717-2.352%203.4357-4.7808%204.6116-4.1006%201.176.6802-.3074%203.1398-1.3297%204.4272-1.0222%201.2874-2.7862%203.2089-3.3742%204.2274-.2114.3843-.4304.8032-.5956%201.1529a5.7375%205.7375%200%200%201%202.9169%203.6125h.073v-2.3058a.3075.3075%200%200%200-.1806-.2844.9148.9148%200%200%201-.5573-.8148%201.0184%201.0184%200%200%201%20.9045-.9044c.5593-.0598%201.061.3452%201.1208.9044a.9187.9187%200%200%201-.5534.8148.3074.3074%200%200%200-.1691.2844v2.1522a.3113.3113%200%200%200%20.1691.2805.9724.9724%200%200%201%20.5648.857zm-1.0222-3.9737a.4345.4345%200%200%200%20.4612-.4151.4151.4151%200%201%200-.4612.4151zm-.4227%203.4779c.0978.4794.148.9672.1498%201.4565v.3651h.4113a.3228.3228%200%200%200%20.3228-.319v-1.0069c-.0111-.2967-.2733-.5256-.5688-.4957h-.3151zm-3.7278-4.481.611.2383a36.6046%2036.6046%200%200%201%202.3828-3.8661c1.2874-1.7255%202.3365-3.5817%201.8715-3.8699-.465-.2883-1.6179%201.2297-2.7708%203.109a34.8978%2034.8978%200%200%200-2.0945%204.3887zm-4.0544.6726.0154%201.3335c-.0039.2007.1881.3587.3843.3152a6.4317%206.4317%200%200%201%201.4565-.1653%205.995%205.995%200%200%201%201.4527.1729c.1956.0398.3853-.1153.3843-.3151v-1.3412a.319.319%200%200%200-.2421-.3113%206.664%206.664%200%200%200-1.6026-.1845%206.7093%206.7093%200%200%200-1.6025.1845.3188.3188%200%200%200-.246.3113zm1.7063%206.8637v.3843a.6878.6878%200%200%201-.4996.269c-.3074%200-.538-.4189-.538-.4189a.073.073%200%200%200-.1-.0307l-.0024.0013a.0693.0693%200%200%200-.0245.0947c.0115.0231.2806.4957.6649.4957a.7144.7144%200%200%200%20.3843-.1268.3267.3267%200%200%201%20.3612%200%20.8332.8332%200%200%200%20.4727.1345.957.957%200%200%200%20.6572-.4803.0692.0692%200%200%200-.0269-.0961.0692.0692%200%200%200-.0999.0269c0%20.0231-.2191.3843-.5419.4074a.8036.8036%200%200%201-.5765-.269v-.3843a.3154.3154%200%200%201%20.1268-.2537c.196-.1499.415-.3958.415-.4919a.538.538%200%200%200-.5764-.4189c-.3766%200-.6533.2498-.6533.4573%200%20.1345.2536.3382.4227.4612a.3226.3226%200%200%201%20.1346.2383zM7.783%2011.6455l.5765-.3074c-.0192-1.126-.0346-3.1436%200-4.5425.0538-2.0368.1537-4.5732-.5226-4.5463S6.6877%204.2285%206.949%207.007a33.0562%2033.0562%200%200%200%20.834%204.6385zm-3.305%205.3919a.319.319%200%200%200%20.319.319h.3997a3.046%203.046%200%200%201%200-.3651%207.546%207.546%200%200%201%20.1461-1.4565c-.0493.0002-.34.0005-.3866-.0021a.4881.4881%200%200%200-.4781.4979v1.0068zm.9184%201.4718a5.3254%205.3254%200%200%201-.123-.5573.3228.3228%200%200%200-.319-.2728h-.4957c.0007.0163-.0015.34.0009.355a.5188.5188%200%200%200%20.5526.4827l.3842-.0076zm10.1265%202.917-.0884-.0807a.3229.3229%200%200%200-.3843-.0269%206.9823%206.9823%200%200%201-3.8046%201.0068%206.995%206.995%200%200%201-3.7932-1.0068.3228.3228%200%200%200-.3843.0269l-.0884.0807a.3154.3154%200%200%200%200%20.4573%206.0305%206.0305%200%200%200%204.2927%201.5988%206.0453%206.0453%200%200%200%204.2889-1.5988.315.315%200%200%200-.0384-.4573zm1.4488-4.4158c0-2.4557-1.1529-4.3273-3.0245-5.2266-.2081-.1022-.4673.0594-.465.2921v1.3297a.3269.3269%200%200%200%20.2037.296c1.7332.7109%202.9284%202.1866%202.9284%203.8776%200%202.2712-2.1559%203.8085-5.3419%203.8085-3.1859%200-5.3419-1.5411-5.3419-3.8085%200-1.691%201.1952-3.1667%202.9284-3.8776a.319.319%200%200%200%20.2037-.296v-1.322c.0048-.2315-.2536-.3963-.4612-.2921-1.887.8839-3.0399%202.767-3.0399%205.2073%200%202.9899%202.2866%204.996%205.7108%204.996%203.4282.0001%205.6994-2.0098%205.6994-4.9844zm-8.6084-.538h-.0038a.5842.5842%200%201%200%20.0038%200zm5.1614.5919c.0063.3226.2615.5789.584.5725a.5842.5842%200%201%200-.584-.5725zm4.5692.6225h-.4996a.3227.3227%200%200%200-.3151.2728c-.0346.173-.0768.3766-.1268.5573.0163.0007.3861-.0014.4012.0009a.5188.5188%200%200%200%20.5366-.5004l.0037-.3306z'/%3e%3c/svg%3e", import_compiler_runtime$149 = require_compiler_runtime(), URLS = {
34694
34720
  sqlite: sqlite_default,
34695
34721
  duckdb: duckdb_default,
@@ -34730,29 +34756,36 @@ ${c.sqlString}
34730
34756
  };
34731
34757
  var import_compiler_runtime$148 = require_compiler_runtime();
34732
34758
  const SQLEngineSelect = (e) => {
34733
- let r = (0, import_compiler_runtime$148.c)(27), { selectedEngine: c, onChange: d } = e, f = useAtomValue(dataConnectionsMapAtom), h = [], _ = [];
34734
- for (let [e2, r2] of f.entries()) INTERNAL_SQL_ENGINES.has(e2) ? h.push(r2) : _.push(r2);
34735
- let v = useNonce(), y = c && !f.has(c), S;
34736
- r[0] !== f || r[1] !== d || r[2] !== v ? (S = (e2) => {
34759
+ let r = (0, import_compiler_runtime$148.c)(34), { selectedEngine: c, onChange: d, cellId: f } = e, h = useAtomValue(dataConnectionsMapAtom), _ = [], v = [];
34760
+ for (let [e2, r2] of h.entries()) INTERNAL_SQL_ENGINES.has(e2) ? _.push(r2) : v.push(r2);
34761
+ let y = useNonce(), S = c && !h.has(c), w;
34762
+ r[0] !== h || r[1] !== d || r[2] !== y ? (w = (e2) => {
34737
34763
  if (e2 === HELP_KEY) {
34738
34764
  window.open(HELP_URL, "_blank");
34739
34765
  return;
34740
34766
  }
34741
- let r2 = f.get(e2);
34742
- r2 && (v(), d(r2.name), setLatestEngineSelected(r2.name));
34743
- }, r[0] = f, r[1] = d, r[2] = v, r[3] = S) : S = r[3];
34744
- let w = S, E = _temp3$19, O = Select, M;
34745
- r[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M = (0, import_jsx_runtime.jsx)(SQLSelectTrigger, {
34746
- children: (0, import_jsx_runtime.jsx)(SelectValue, {
34747
- placeholder: "Select an engine"
34748
- })
34749
- }), r[4] = M) : M = r[4];
34750
- let I = SelectContent, z = SelectGroup, G;
34751
- r[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (G = (0, import_jsx_runtime.jsx)(SelectLabel, {
34767
+ let r2 = h.get(e2);
34768
+ r2 && (y(), d(r2.name), setLatestEngineSelected(r2.name));
34769
+ }, r[0] = h, r[1] = d, r[2] = y, r[3] = w) : w = r[3];
34770
+ let E = w, O = _temp3$19, M = Select, I;
34771
+ r[4] === f ? I = r[5] : (I = getCellForDomProps(f), r[4] = f, r[5] = I);
34772
+ let z;
34773
+ r[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (z = (0, import_jsx_runtime.jsx)(SelectValue, {
34774
+ placeholder: "Select an engine"
34775
+ }), r[6] = z) : z = r[6];
34776
+ let G;
34777
+ r[7] === I ? G = r[8] : (G = (0, import_jsx_runtime.jsx)(SQLSelectTrigger, {
34778
+ ...I,
34779
+ children: z
34780
+ }), r[7] = I, r[8] = G);
34781
+ let q = SelectContent, LY;
34782
+ r[9] === f ? LY = r[10] : (LY = getCellForDomProps(f), r[9] = f, r[10] = LY);
34783
+ let RY = SelectGroup, zY;
34784
+ r[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (zY = (0, import_jsx_runtime.jsx)(SelectLabel, {
34752
34785
  children: "Database connections"
34753
- }), r[5] = G) : G = r[5];
34754
- let q;
34755
- r[6] !== y || r[7] !== c ? (q = y && (0, import_jsx_runtime.jsx)(SelectItem, {
34786
+ }), r[11] = zY) : zY = r[11];
34787
+ let BY;
34788
+ r[12] !== S || r[13] !== c ? (BY = S && (0, import_jsx_runtime.jsx)(SelectItem, {
34756
34789
  value: c,
34757
34790
  children: (0, import_jsx_runtime.jsxs)("div", {
34758
34791
  className: "flex items-center gap-1 opacity-50",
@@ -34766,11 +34799,11 @@ ${c.sqlString}
34766
34799
  })
34767
34800
  ]
34768
34801
  })
34769
- }, c), r[6] = y, r[7] = c, r[8] = q) : q = r[8];
34770
- let LY = E(_), RY = _.length > 0 && (0, import_jsx_runtime.jsx)(SelectSeparator, {}), zY = E(h), BY;
34771
- r[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (BY = (0, import_jsx_runtime.jsx)(SelectSeparator, {}), r[9] = BY) : BY = r[9];
34772
- let VY;
34773
- r[10] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (VY = (0, import_jsx_runtime.jsx)(SelectItem, {
34802
+ }, c), r[12] = S, r[13] = c, r[14] = BY) : BY = r[14];
34803
+ let VY = O(v), HY = v.length > 0 && (0, import_jsx_runtime.jsx)(SelectSeparator, {}), UY = O(_), WY;
34804
+ r[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (WY = (0, import_jsx_runtime.jsx)(SelectSeparator, {}), r[15] = WY) : WY = r[15];
34805
+ let GY;
34806
+ r[16] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (GY = (0, import_jsx_runtime.jsx)(SelectItem, {
34774
34807
  className: "text-muted-foreground",
34775
34808
  value: HELP_KEY,
34776
34809
  children: (0, import_jsx_runtime.jsxs)("a", {
@@ -34787,35 +34820,36 @@ ${c.sqlString}
34787
34820
  })
34788
34821
  ]
34789
34822
  })
34790
- }), r[10] = VY) : VY = r[10];
34791
- let HY;
34792
- r[11] !== z || r[12] !== G || r[13] !== q || r[14] !== LY || r[15] !== RY || r[16] !== zY ? (HY = (0, import_jsx_runtime.jsxs)(z, {
34823
+ }), r[16] = GY) : GY = r[16];
34824
+ let KY;
34825
+ r[17] !== RY || r[18] !== HY || r[19] !== UY || r[20] !== zY || r[21] !== BY || r[22] !== VY ? (KY = (0, import_jsx_runtime.jsxs)(RY, {
34793
34826
  children: [
34794
- G,
34795
- q,
34796
- LY,
34797
- RY,
34798
34827
  zY,
34799
34828
  BY,
34800
- VY
34829
+ VY,
34830
+ HY,
34831
+ UY,
34832
+ WY,
34833
+ GY
34801
34834
  ]
34802
- }), r[11] = z, r[12] = G, r[13] = q, r[14] = LY, r[15] = RY, r[16] = zY, r[17] = HY) : HY = r[17];
34803
- let UY;
34804
- r[18] !== I || r[19] !== HY ? (UY = (0, import_jsx_runtime.jsx)(I, {
34805
- children: HY
34806
- }), r[18] = I, r[19] = HY, r[20] = UY) : UY = r[20];
34807
- let WY;
34808
- return r[21] !== O || r[22] !== w || r[23] !== c || r[24] !== UY || r[25] !== M ? (WY = (0, import_jsx_runtime.jsx)("div", {
34835
+ }), r[17] = RY, r[18] = HY, r[19] = UY, r[20] = zY, r[21] = BY, r[22] = VY, r[23] = KY) : KY = r[23];
34836
+ let qY;
34837
+ r[24] !== q || r[25] !== KY || r[26] !== LY ? (qY = (0, import_jsx_runtime.jsx)(q, {
34838
+ ...LY,
34839
+ children: KY
34840
+ }), r[24] = q, r[25] = KY, r[26] = LY, r[27] = qY) : qY = r[27];
34841
+ let JY;
34842
+ return r[28] !== M || r[29] !== E || r[30] !== c || r[31] !== qY || r[32] !== G ? (JY = (0, import_jsx_runtime.jsx)("div", {
34809
34843
  className: "flex flex-row gap-1 items-center",
34810
- children: (0, import_jsx_runtime.jsxs)(O, {
34844
+ children: (0, import_jsx_runtime.jsxs)(M, {
34811
34845
  value: c,
34812
- onValueChange: w,
34846
+ onValueChange: E,
34813
34847
  children: [
34814
- M,
34815
- UY
34848
+ G,
34849
+ qY
34816
34850
  ]
34817
34851
  })
34818
- }), r[21] = O, r[22] = w, r[23] = c, r[24] = UY, r[25] = M, r[26] = WY) : WY = r[26], WY;
34852
+ }), r[28] = M, r[29] = E, r[30] = c, r[31] = qY, r[32] = G, r[33] = JY) : JY = r[33], JY;
34819
34853
  };
34820
34854
  var HELP_KEY = "__help__", HELP_URL = "http://docs.marimo.io/guides/working_with_data/sql/#connecting-to-a-custom-database";
34821
34855
  const SQLModeSelect = () => {
@@ -34937,16 +34971,18 @@ ${c.sqlString}
34937
34971
  }), e[0] = r) : r = e[0], r;
34938
34972
  };
34939
34973
  const LanguagePanelComponent = (e) => {
34940
- let r = (0, import_compiler_runtime$147.c)(99), { view: c } = e, d;
34974
+ let r = (0, import_compiler_runtime$147.c)(102), { view: c } = e, d;
34941
34975
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = {
34942
34976
  minWidth: 50
34943
34977
  }, r[0] = d) : d = r[0];
34944
34978
  let { spanProps: f, inputProps: h } = useAutoGrowInputProps(d), _;
34945
34979
  r[1] === c.state ? _ = r[2] : (_ = c.state.field(languageAdapterState), r[1] = c.state, r[2] = _);
34946
34980
  let v = _, y;
34947
- r[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = (0, import_jsx_runtime.jsx)("div", {}), r[3] = y) : y = r[3];
34948
- let S = y, w = false, E;
34949
- r[4] === c ? E = r[5] : (E = (e2) => {
34981
+ r[3] === c.state ? y = r[4] : (y = c.state.facet(cellIdState), r[3] = c.state, r[4] = y);
34982
+ let S = y, w;
34983
+ r[5] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (w = (0, import_jsx_runtime.jsx)("div", {}), r[5] = w) : w = r[5];
34984
+ let E = w, O = false, M;
34985
+ r[6] === c ? M = r[7] : (M = (e2) => {
34950
34986
  c.dispatch({
34951
34987
  effects: updateLanguageMetadata.of(e2),
34952
34988
  changes: {
@@ -34955,182 +34991,183 @@ ${c.sqlString}
34955
34991
  insert: c.state.doc.toString()
34956
34992
  }
34957
34993
  });
34958
- }, r[4] = c, r[5] = E);
34959
- let O = E;
34994
+ }, r[6] = c, r[7] = M);
34995
+ let I = M;
34960
34996
  if (v instanceof SQLLanguageAdapter) {
34961
34997
  let e2;
34962
- r[6] === c.state ? e2 = r[7] : (e2 = c.state.field(languageMetadataField), r[6] = c.state, r[7] = e2);
34998
+ r[8] === c.state ? e2 = r[9] : (e2 = c.state.field(languageMetadataField), r[8] = c.state, r[9] = e2);
34963
34999
  let d2 = e2;
34964
- w = true;
35000
+ O = true;
34965
35001
  let _2;
34966
- r[8] === O ? _2 = r[9] : (_2 = (e3) => {
35002
+ r[10] === I ? _2 = r[11] : (_2 = (e3) => {
34967
35003
  let r2 = normalizeName(e3.currentTarget.value, false);
34968
- e3.currentTarget.value = r2, O({
35004
+ e3.currentTarget.value = r2, I({
34969
35005
  dataframeName: r2
34970
35006
  });
34971
- }, r[8] = O, r[9] = _2);
35007
+ }, r[10] = I, r[11] = _2);
34972
35008
  let v2 = _2, y2;
34973
- r[10] !== O || r[11] !== c ? (y2 = (e3) => {
34974
- O({
35009
+ r[12] !== I || r[13] !== c ? (y2 = (e3) => {
35010
+ I({
34975
35011
  engine: e3
34976
35012
  }), updateSQLDialectFromConnection(c, e3);
34977
- }, r[10] = O, r[11] = c, r[12] = y2) : y2 = r[12];
34978
- let E2 = y2, M2;
34979
- r[13] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M2 = (0, import_jsx_runtime.jsx)("span", {
35013
+ }, r[12] = I, r[13] = c, r[14] = y2) : y2 = r[14];
35014
+ let w2 = y2, M2;
35015
+ r[15] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M2 = (0, import_jsx_runtime.jsx)("span", {
34980
35016
  className: "select-none",
34981
35017
  children: "Output variable: "
34982
- }), r[13] = M2) : M2 = r[13];
34983
- let I2;
34984
- r[14] === h ? I2 = r[15] : (I2 = (e3) => {
35018
+ }), r[15] = M2) : M2 = r[15];
35019
+ let z2;
35020
+ r[16] === h ? z2 = r[17] : (z2 = (e3) => {
34985
35021
  var _a2;
34986
35022
  (_a2 = h.onChange) == null ? void 0 : _a2.call(h, e3);
34987
- }, r[14] = h, r[15] = I2);
34988
- let z;
34989
- r[16] === v2 ? z = r[17] : (z = (e3) => {
35023
+ }, r[16] = h, r[17] = z2);
35024
+ let G2;
35025
+ r[18] === v2 ? G2 = r[19] : (G2 = (e3) => {
34990
35026
  e3.key === "Enter" && e3.shiftKey && v2(e3);
34991
- }, r[16] = v2, r[17] = z);
34992
- let G;
34993
- r[18] !== h || r[19] !== d2.dataframeName || r[20] !== v2 || r[21] !== z || r[22] !== I2 ? (G = (0, import_jsx_runtime.jsx)("input", {
35027
+ }, r[18] = v2, r[19] = G2);
35028
+ let q;
35029
+ r[20] !== h || r[21] !== d2.dataframeName || r[22] !== v2 || r[23] !== z2 || r[24] !== G2 ? (q = (0, import_jsx_runtime.jsx)("input", {
34994
35030
  ...h,
34995
35031
  defaultValue: d2.dataframeName,
34996
- onChange: I2,
35032
+ onChange: z2,
34997
35033
  onBlur: v2,
34998
- onKeyDown: z,
35034
+ onKeyDown: G2,
34999
35035
  className: "min-w-14 w-auto border border-border rounded px-1 focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring"
35000
- }), r[18] = h, r[19] = d2.dataframeName, r[20] = v2, r[21] = z, r[22] = I2, r[23] = G) : G = r[23];
35001
- let q;
35002
- r[24] === f ? q = r[25] : (q = (0, import_jsx_runtime.jsx)("span", {
35003
- ...f
35004
- }), r[24] = f, r[25] = q);
35036
+ }), r[20] = h, r[21] = d2.dataframeName, r[22] = v2, r[23] = z2, r[24] = G2, r[25] = q) : q = r[25];
35005
35037
  let LY;
35006
- r[26] !== G || r[27] !== q ? (LY = (0, import_jsx_runtime.jsxs)("label", {
35038
+ r[26] === f ? LY = r[27] : (LY = (0, import_jsx_runtime.jsx)("span", {
35039
+ ...f
35040
+ }), r[26] = f, r[27] = LY);
35041
+ let RY;
35042
+ r[28] !== q || r[29] !== LY ? (RY = (0, import_jsx_runtime.jsxs)("label", {
35007
35043
  className: "flex gap-2 items-center",
35008
35044
  children: [
35009
35045
  M2,
35010
- G,
35011
- q
35046
+ q,
35047
+ LY
35012
35048
  ]
35013
- }), r[26] = G, r[27] = q, r[28] = LY) : LY = r[28];
35014
- let RY;
35015
- r[29] !== d2.engine || r[30] !== E2 ? (RY = (0, import_jsx_runtime.jsx)(SQLEngineSelect, {
35016
- selectedEngine: d2.engine,
35017
- onChange: E2
35018
- }), r[29] = d2.engine, r[30] = E2, r[31] = RY) : RY = r[31];
35049
+ }), r[28] = q, r[29] = LY, r[30] = RY) : RY = r[30];
35019
35050
  let zY;
35020
- r[32] === d2.engine ? zY = r[33] : (zY = d2.engine === "__marimo_duckdb" && (0, import_jsx_runtime.jsx)(SQLModeSelect, {}), r[32] = d2.engine, r[33] = zY);
35051
+ r[31] !== S || r[32] !== d2.engine || r[33] !== w2 ? (zY = (0, import_jsx_runtime.jsx)(SQLEngineSelect, {
35052
+ selectedEngine: d2.engine,
35053
+ onChange: w2,
35054
+ cellId: S
35055
+ }), r[31] = S, r[32] = d2.engine, r[33] = w2, r[34] = zY) : zY = r[34];
35021
35056
  let BY;
35022
- r[34] !== d2.engine || r[35] !== c ? (BY = async () => {
35023
- await formatSQL(c, d2.engine);
35024
- }, r[34] = d2.engine, r[35] = c, r[36] = BY) : BY = r[36];
35057
+ r[35] === d2.engine ? BY = r[36] : (BY = d2.engine === "__marimo_duckdb" && (0, import_jsx_runtime.jsx)(SQLModeSelect, {}), r[35] = d2.engine, r[36] = BY);
35025
35058
  let VY;
35026
- r[37] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (VY = (0, import_jsx_runtime.jsx)(PaintRoller, {
35027
- className: "h-3 w-3"
35028
- }), r[37] = VY) : VY = r[37];
35059
+ r[37] !== d2.engine || r[38] !== c ? (VY = async () => {
35060
+ await formatSQL(c, d2.engine);
35061
+ }, r[37] = d2.engine, r[38] = c, r[39] = VY) : VY = r[39];
35029
35062
  let HY;
35030
- r[38] === BY ? HY = r[39] : (HY = (0, import_jsx_runtime.jsx)(Tooltip, {
35063
+ r[40] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (HY = (0, import_jsx_runtime.jsx)(PaintRoller, {
35064
+ className: "h-3 w-3"
35065
+ }), r[40] = HY) : HY = r[40];
35066
+ let UY;
35067
+ r[41] === VY ? UY = r[42] : (UY = (0, import_jsx_runtime.jsx)(Tooltip, {
35031
35068
  content: "Format SQL",
35032
35069
  children: (0, import_jsx_runtime.jsx)(Button, {
35033
35070
  variant: "text",
35034
35071
  size: "icon",
35035
- onClick: BY,
35036
- children: VY
35072
+ onClick: VY,
35073
+ children: HY
35037
35074
  })
35038
- }), r[38] = BY, r[39] = HY);
35039
- let UY;
35040
- r[40] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (UY = (0, import_jsx_runtime.jsx)(Divider, {}), r[40] = UY) : UY = r[40];
35075
+ }), r[41] = VY, r[42] = UY);
35041
35076
  let WY;
35042
- r[41] === O ? WY = r[42] : (WY = (e3) => {
35043
- O({
35077
+ r[43] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (WY = (0, import_jsx_runtime.jsx)(Divider, {}), r[43] = WY) : WY = r[43];
35078
+ let GY;
35079
+ r[44] === I ? GY = r[45] : (GY = (e3) => {
35080
+ I({
35044
35081
  showOutput: !e3.target.checked
35045
35082
  });
35046
- }, r[41] = O, r[42] = WY);
35047
- let GY = !d2.showOutput, KY;
35048
- r[43] !== WY || r[44] !== GY ? (KY = (0, import_jsx_runtime.jsx)("input", {
35083
+ }, r[44] = I, r[45] = GY);
35084
+ let KY = !d2.showOutput, qY;
35085
+ r[46] !== GY || r[47] !== KY ? (qY = (0, import_jsx_runtime.jsx)("input", {
35049
35086
  type: "checkbox",
35050
- onChange: WY,
35051
- checked: GY
35052
- }), r[43] = WY, r[44] = GY, r[45] = KY) : KY = r[45];
35053
- let qY;
35054
- r[46] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (qY = (0, import_jsx_runtime.jsx)("span", {
35087
+ onChange: GY,
35088
+ checked: KY
35089
+ }), r[46] = GY, r[47] = KY, r[48] = qY) : qY = r[48];
35090
+ let JY;
35091
+ r[49] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (JY = (0, import_jsx_runtime.jsx)("span", {
35055
35092
  className: "select-none",
35056
35093
  children: "Hide output"
35057
- }), r[46] = qY) : qY = r[46];
35058
- let JY;
35059
- r[47] === KY ? JY = r[48] : (JY = (0, import_jsx_runtime.jsxs)("label", {
35094
+ }), r[49] = JY) : JY = r[49];
35095
+ let YY;
35096
+ r[50] === qY ? YY = r[51] : (YY = (0, import_jsx_runtime.jsxs)("label", {
35060
35097
  className: "flex items-center gap-2",
35061
35098
  children: [
35062
- KY,
35063
- qY
35099
+ qY,
35100
+ JY
35064
35101
  ]
35065
- }), r[47] = KY, r[48] = JY);
35066
- let YY;
35067
- r[49] !== zY || r[50] !== HY || r[51] !== JY ? (YY = (0, import_jsx_runtime.jsxs)("div", {
35102
+ }), r[50] = qY, r[51] = YY);
35103
+ let XY;
35104
+ r[52] !== BY || r[53] !== UY || r[54] !== YY ? (XY = (0, import_jsx_runtime.jsxs)("div", {
35068
35105
  className: "flex items-center gap-2 ml-auto",
35069
35106
  children: [
35070
- zY,
35071
- HY,
35107
+ BY,
35072
35108
  UY,
35073
- JY
35109
+ WY,
35110
+ YY
35074
35111
  ]
35075
- }), r[49] = zY, r[50] = HY, r[51] = JY, r[52] = YY) : YY = r[52];
35076
- let XY;
35077
- r[53] !== LY || r[54] !== RY || r[55] !== YY ? (XY = (0, import_jsx_runtime.jsxs)("div", {
35112
+ }), r[52] = BY, r[53] = UY, r[54] = YY, r[55] = XY) : XY = r[55];
35113
+ let ZY;
35114
+ r[56] !== RY || r[57] !== zY || r[58] !== XY ? (ZY = (0, import_jsx_runtime.jsxs)("div", {
35078
35115
  className: "flex flex-1 gap-2 items-center",
35079
35116
  children: [
35080
- LY,
35081
35117
  RY,
35082
- YY
35118
+ zY,
35119
+ XY
35083
35120
  ]
35084
- }), r[53] = LY, r[54] = RY, r[55] = YY, r[56] = XY) : XY = r[56], S = XY;
35121
+ }), r[56] = RY, r[57] = zY, r[58] = XY, r[59] = ZY) : ZY = r[59], E = ZY;
35085
35122
  }
35086
35123
  if (v instanceof MarkdownLanguageAdapter) {
35087
- w = true;
35088
- let e2, d2, f2, h2, _2, v2, y2, E2, M2, I2;
35089
- if (r[57] !== O || r[58] !== c.state) {
35090
- let { quotePrefix: S2 } = c.state.field(languageMetadataField);
35091
- d2 = S2, d2 === void 0 && (d2 = "r", O({
35124
+ O = true;
35125
+ let e2, d2, f2, h2, _2, v2, y2, S2, w2, M2;
35126
+ if (r[60] !== I || r[61] !== c.state) {
35127
+ let { quotePrefix: E2 } = c.state.field(languageMetadataField);
35128
+ d2 = E2, d2 === void 0 && (d2 = "r", I({
35092
35129
  quotePrefix: d2
35093
- })), I2 = (e3, r2) => {
35094
- typeof r2 == "boolean" && O({
35130
+ })), M2 = (e3, r2) => {
35131
+ typeof r2 == "boolean" && I({
35095
35132
  quotePrefix: getQuotePrefix({
35096
35133
  currentQuotePrefix: d2,
35097
35134
  checked: r2,
35098
35135
  prefix: e3
35099
35136
  })
35100
35137
  });
35101
- }, f2 = "flex flex-row w-full justify-end gap-1.5 items-center", E2 = "flex items-center gap-1.5", r[69] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M2 = (0, import_jsx_runtime.jsx)("span", {
35138
+ }, h2 = "flex flex-row w-full justify-end gap-1.5 items-center", w2 = "flex items-center gap-1.5", r[72] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f2 = (0, import_jsx_runtime.jsx)("span", {
35102
35139
  children: "r"
35103
- }), r[69] = M2) : M2 = r[69], e2 = Checkbox, _2 = "Toggle raw string", v2 = "w-3 h-3", y2 = d2.includes("r"), h2 = (e3) => {
35104
- I2("r", e3);
35105
- }, r[57] = O, r[58] = c.state, r[59] = e2, r[60] = d2, r[61] = f2, r[62] = h2, r[63] = _2, r[64] = v2, r[65] = y2, r[66] = E2, r[67] = M2, r[68] = I2;
35106
- } else e2 = r[59], d2 = r[60], f2 = r[61], h2 = r[62], _2 = r[63], v2 = r[64], y2 = r[65], E2 = r[66], M2 = r[67], I2 = r[68];
35107
- let z;
35108
- r[70] !== e2 || r[71] !== h2 || r[72] !== _2 || r[73] !== v2 || r[74] !== y2 ? (z = (0, import_jsx_runtime.jsx)(e2, {
35109
- "aria-label": _2,
35110
- className: v2,
35111
- checked: y2,
35112
- onCheckedChange: h2
35113
- }), r[70] = e2, r[71] = h2, r[72] = _2, r[73] = v2, r[74] = y2, r[75] = z) : z = r[75];
35114
- let G;
35115
- r[76] !== z || r[77] !== E2 || r[78] !== M2 ? (G = (0, import_jsx_runtime.jsxs)("div", {
35116
- className: E2,
35140
+ }), r[72] = f2) : f2 = r[72], e2 = Checkbox, v2 = "Toggle raw string", y2 = "w-3 h-3", S2 = d2.includes("r"), _2 = (e3) => {
35141
+ M2("r", e3);
35142
+ }, r[60] = I, r[61] = c.state, r[62] = e2, r[63] = d2, r[64] = f2, r[65] = h2, r[66] = _2, r[67] = v2, r[68] = y2, r[69] = S2, r[70] = w2, r[71] = M2;
35143
+ } else e2 = r[62], d2 = r[63], f2 = r[64], h2 = r[65], _2 = r[66], v2 = r[67], y2 = r[68], S2 = r[69], w2 = r[70], M2 = r[71];
35144
+ let z2;
35145
+ r[73] !== e2 || r[74] !== _2 || r[75] !== v2 || r[76] !== y2 || r[77] !== S2 ? (z2 = (0, import_jsx_runtime.jsx)(e2, {
35146
+ "aria-label": v2,
35147
+ className: y2,
35148
+ checked: S2,
35149
+ onCheckedChange: _2
35150
+ }), r[73] = e2, r[74] = _2, r[75] = v2, r[76] = y2, r[77] = S2, r[78] = z2) : z2 = r[78];
35151
+ let G2;
35152
+ r[79] !== f2 || r[80] !== z2 || r[81] !== w2 ? (G2 = (0, import_jsx_runtime.jsxs)("div", {
35153
+ className: w2,
35117
35154
  children: [
35118
- M2,
35119
- z
35155
+ f2,
35156
+ z2
35120
35157
  ]
35121
- }), r[76] = z, r[77] = E2, r[78] = M2, r[79] = G) : G = r[79];
35158
+ }), r[79] = f2, r[80] = z2, r[81] = w2, r[82] = G2) : G2 = r[82];
35122
35159
  let q;
35123
- r[80] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (q = (0, import_jsx_runtime.jsx)("span", {
35160
+ r[83] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (q = (0, import_jsx_runtime.jsx)("span", {
35124
35161
  children: "f"
35125
- }), r[80] = q) : q = r[80];
35162
+ }), r[83] = q) : q = r[83];
35126
35163
  let LY;
35127
- r[81] === d2 ? LY = r[82] : (LY = d2.includes("f"), r[81] = d2, r[82] = LY);
35164
+ r[84] === d2 ? LY = r[85] : (LY = d2.includes("f"), r[84] = d2, r[85] = LY);
35128
35165
  let RY;
35129
- r[83] === I2 ? RY = r[84] : (RY = (e3) => {
35130
- I2("f", e3);
35131
- }, r[83] = I2, r[84] = RY);
35166
+ r[86] === M2 ? RY = r[87] : (RY = (e3) => {
35167
+ M2("f", e3);
35168
+ }, r[86] = M2, r[87] = RY);
35132
35169
  let zY;
35133
- r[85] !== LY || r[86] !== RY ? (zY = (0, import_jsx_runtime.jsxs)("div", {
35170
+ r[88] !== LY || r[89] !== RY ? (zY = (0, import_jsx_runtime.jsxs)("div", {
35134
35171
  className: "flex items-center gap-1.5",
35135
35172
  children: [
35136
35173
  q,
@@ -35141,37 +35178,37 @@ ${c.sqlString}
35141
35178
  onCheckedChange: RY
35142
35179
  })
35143
35180
  ]
35144
- }), r[85] = LY, r[86] = RY, r[87] = zY) : zY = r[87];
35181
+ }), r[88] = LY, r[89] = RY, r[90] = zY) : zY = r[90];
35145
35182
  let BY;
35146
- r[88] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (BY = (0, import_jsx_runtime.jsx)(Tooltip, {
35183
+ r[91] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (BY = (0, import_jsx_runtime.jsx)(Tooltip, {
35147
35184
  content: (0, import_jsx_runtime.jsx)(MarkdownQuotePrefixTooltip, {}),
35148
35185
  children: (0, import_jsx_runtime.jsx)(Info, {
35149
35186
  className: "w-3 h-3"
35150
35187
  })
35151
- }), r[88] = BY) : BY = r[88];
35188
+ }), r[91] = BY) : BY = r[91];
35152
35189
  let VY;
35153
- r[89] !== f2 || r[90] !== G || r[91] !== zY ? (VY = (0, import_jsx_runtime.jsxs)("div", {
35154
- className: f2,
35190
+ r[92] !== h2 || r[93] !== G2 || r[94] !== zY ? (VY = (0, import_jsx_runtime.jsxs)("div", {
35191
+ className: h2,
35155
35192
  children: [
35156
- G,
35193
+ G2,
35157
35194
  zY,
35158
35195
  BY
35159
35196
  ]
35160
- }), r[89] = f2, r[90] = G, r[91] = zY, r[92] = VY) : VY = r[92], S = VY;
35197
+ }), r[92] = h2, r[93] = G2, r[94] = zY, r[95] = VY) : VY = r[95], E = VY;
35161
35198
  }
35162
- let M;
35163
- r[93] === w ? M = r[94] : (M = w && (0, import_jsx_runtime.jsx)(Divider, {}), r[93] = w, r[94] = M);
35164
- let I;
35165
- return r[95] !== S || r[96] !== v.type || r[97] !== M ? (I = (0, import_jsx_runtime.jsx)(TooltipProvider, {
35199
+ let z;
35200
+ r[96] === O ? z = r[97] : (z = O && (0, import_jsx_runtime.jsx)(Divider, {}), r[96] = O, r[97] = z);
35201
+ let G;
35202
+ return r[98] !== E || r[99] !== v.type || r[100] !== z ? (G = (0, import_jsx_runtime.jsx)(TooltipProvider, {
35166
35203
  children: (0, import_jsx_runtime.jsxs)("div", {
35167
35204
  className: "flex justify-between items-center gap-4 pl-2 pt-2",
35168
35205
  children: [
35169
- S,
35170
- M,
35206
+ E,
35207
+ z,
35171
35208
  v.type
35172
35209
  ]
35173
35210
  })
35174
- }), r[95] = S, r[96] = v.type, r[97] = M, r[98] = I) : I = r[98], I;
35211
+ }), r[98] = E, r[99] = v.type, r[100] = z, r[101] = G) : G = r[101], G;
35175
35212
  };
35176
35213
  new Compartment();
35177
35214
  const setLanguageAdapter = StateEffect.define(), languageAdapterState = StateField.define({
@@ -40002,11 +40039,10 @@ ${c.sqlString}
40002
40039
  let e = store.get(initialModeAtom);
40003
40040
  return assertExists(e, "internal-error: initial mode not found"), invariant(e !== "present", "internal-error: initial mode cannot be 'present'"), e;
40004
40041
  }
40005
- atom({
40042
+ const viewStateAtom = atom({
40006
40043
  mode: isIslands() ? "read" : "not-set",
40007
40044
  cellAnchor: null
40008
- });
40009
- const initialModeAtom = atom(void 0), kioskModeAtom = atom(false);
40045
+ }), initialModeAtom = atom(void 0), kioskModeAtom = atom(false);
40010
40046
  var sanitizeHtmlAtom = atom((e) => {
40011
40047
  let r = e(hasRunAnyCellAtom), c = e(autoInstantiateAtom);
40012
40048
  if (r || c) return false;
@@ -59480,12 +59516,7 @@ ${r}
59480
59516
  atoms: d,
59481
59517
  children: c
59482
59518
  }), r[1] = c, r[2] = f), f;
59483
- }, DATA_CELL_ID = "data-cell-id";
59484
- function getCellDomProps(e) {
59485
- return {
59486
- [DATA_CELL_ID]: e
59487
- };
59488
- }
59519
+ };
59489
59520
  var CONTEXT_MENU_NAME = "ContextMenu", [createContextMenuContext, createContextMenuScope] = createContextScope$1(CONTEXT_MENU_NAME, [
59490
59521
  createMenuScope
59491
59522
  ]), useMenuScope = createMenuScope(), [ContextMenuProvider, useContextMenuContext] = createContextMenuContext(CONTEXT_MENU_NAME), ContextMenu$1 = (e) => {
@@ -60751,6 +60782,7 @@ ${r}
60751
60782
  toMarkdown: (e) => Filenames.replace(e, "md"),
60752
60783
  toHTML: (e) => Filenames.replace(e, "html"),
60753
60784
  toPNG: (e) => Filenames.replace(e, "png"),
60785
+ toPDF: (e) => Filenames.replace(e, "pdf"),
60754
60786
  toPY: (e) => Filenames.replace(e, "py"),
60755
60787
  withoutExtension: (e) => {
60756
60788
  let r = e.split(".");
@@ -60758,11 +60790,11 @@ ${r}
60758
60790
  },
60759
60791
  replace: (e, r) => e.endsWith(`.${r}`) ? e : `${Filenames.withoutExtension(e)}.${r}`
60760
60792
  };
60761
- async function downloadHTMLAsImage(e, r) {
60762
- let c = document.getElementById("App"), d = (c == null ? void 0 : c.scrollTop) ?? 0;
60763
- document.body.classList.add("printing");
60793
+ async function downloadHTMLAsImage(e) {
60794
+ let { element: r, filename: c, prepare: d } = e, f = document.getElementById("App"), h = (f == null ? void 0 : f.scrollTop) ?? 0, _;
60795
+ d ? _ = d(r) : document.body.classList.add("printing");
60764
60796
  try {
60765
- downloadByURL(await toPng(e), Filenames.toPNG(r));
60797
+ downloadByURL(await toPng(r), Filenames.toPNG(c));
60766
60798
  } catch {
60767
60799
  toast({
60768
60800
  title: "Error",
@@ -60770,8 +60802,8 @@ ${r}
60770
60802
  variant: "danger"
60771
60803
  });
60772
60804
  } finally {
60773
- document.body.classList.remove("printing"), requestAnimationFrame(() => {
60774
- c == null ? void 0 : c.scrollTo(0, d);
60805
+ _ == null ? void 0 : _(), document.body.classList.contains("printing") && document.body.classList.remove("printing"), requestAnimationFrame(() => {
60806
+ f == null ? void 0 : f.scrollTo(0, h);
60775
60807
  });
60776
60808
  }
60777
60809
  }
@@ -61813,6 +61845,8 @@ ${E}`,
61813
61845
  return "\u{1F4DD}";
61814
61846
  case "application/vnd.vegalite.v5+json":
61815
61847
  case "application/vnd.vega.v5+json":
61848
+ case "application/vnd.vegalite.v6+json":
61849
+ case "application/vnd.vega.v6+json":
61816
61850
  return "\u{1F4CA}";
61817
61851
  case "application/vnd.marimo+mimebundle":
61818
61852
  return "\u{1F4E6}";
@@ -61829,7 +61863,9 @@ ${E}`,
61829
61863
  case "application/json":
61830
61864
  case "application/vnd.marimo+mimebundle":
61831
61865
  case "application/vnd.vegalite.v5+json":
61832
- case "application/vnd.vega.v5+json": {
61866
+ case "application/vnd.vega.v5+json":
61867
+ case "application/vnd.vegalite.v6+json":
61868
+ case "application/vnd.vega.v6+json": {
61833
61869
  let c2;
61834
61870
  r[0] === e2 ? c2 = r[1] : (c2 = typeof e2 == "string" ? JSON.parse(e2) : e2, r[0] = e2, r[1] = c2), S = c2;
61835
61871
  break bb0;
@@ -61935,7 +61971,9 @@ ${E}`,
61935
61971
  }), r[31] = E, r[32] = O, r[33] = e2) : e2 = r[33], e2;
61936
61972
  }
61937
61973
  case "application/vnd.vegalite.v5+json":
61938
- case "application/vnd.vega.v5+json": {
61974
+ case "application/vnd.vega.v5+json":
61975
+ case "application/vnd.vegalite.v6+json":
61976
+ case "application/vnd.vega.v6+json": {
61939
61977
  let e2;
61940
61978
  r[34] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)(ChartLoadingState, {}), r[34] = e2) : e2 = r[34];
61941
61979
  let c2 = w, d2 = y === "dark" ? "dark" : void 0, f2;
@@ -62007,33 +62045,35 @@ ${E}`,
62007
62045
  OutputRenderer.displayName = "OutputRenderer";
62008
62046
  var MimeBundleOutputRenderer = (0, import_react.memo)((e) => {
62009
62047
  var _a2;
62010
- let r = (0, import_compiler_runtime$99.c)(28), { data: c, channel: d, cellId: f } = e, h = Array.isArray(c) ? c[0] : c, _ = h[METADATA_KEY], v, y, S, w, E, O, M, I;
62011
- if (r[0] !== f || r[1] !== d || r[2] !== _ || r[3] !== h) {
62012
- I = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
62048
+ let r = (0, import_compiler_runtime$99.c)(31), { data: c, channel: d, cellId: f } = e, h = Array.isArray(c) ? c[0] : c, { mode: _ } = useAtomValue(viewStateAtom), v = _ === "present" || _ === "read", y = h[METADATA_KEY], S, w, E, O, M, I, z, G;
62049
+ if (r[0] !== v || r[1] !== f || r[2] !== d || r[3] !== y || r[4] !== h) {
62050
+ G = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
62013
62051
  bb0: {
62014
62052
  let e2 = Objects.entries(h).filter(_temp$32).map(_temp2$23), c2 = (_a2 = e2[0]) == null ? void 0 : _a2[0];
62015
62053
  if (!c2) {
62016
- I = null;
62054
+ G = null;
62017
62055
  break bb0;
62018
62056
  }
62019
62057
  if (e2.length === 1) {
62020
- I = (0, import_jsx_runtime.jsx)(OutputRenderer, {
62058
+ G = (0, import_jsx_runtime.jsx)(OutputRenderer, {
62021
62059
  cellId: f,
62022
62060
  message: {
62023
62061
  channel: d,
62024
62062
  data: h[c2],
62025
62063
  mimetype: c2
62026
62064
  },
62027
- metadata: _ == null ? void 0 : _[c2]
62065
+ metadata: y == null ? void 0 : y[c2]
62028
62066
  });
62029
62067
  break bb0;
62030
62068
  }
62031
- e2.sort(_temp3$16), v = Tabs, O = c2, M = "vertical", w = "flex", E = (0, import_jsx_runtime.jsx)(TabsList, {
62032
- className: "self-start max-h-none flex flex-col gap-2 mr-4 shrink-0",
62069
+ e2.sort(_temp3$16), S = Tabs, I = c2, z = "vertical", O = "flex";
62070
+ let _2 = v && "mt-4", q2;
62071
+ r[13] === _2 ? q2 = r[14] : (q2 = cn("self-start max-h-none flex flex-col gap-2 mr-3 shrink-0", _2), r[13] = _2, r[14] = q2), M = (0, import_jsx_runtime.jsx)(TabsList, {
62072
+ className: q2,
62033
62073
  children: e2.map(_temp4$9)
62034
- }), y = "flex-1";
62035
- let z2;
62036
- r[12] !== f || r[13] !== d || r[14] !== _ ? (z2 = (e3) => {
62074
+ }), w = "flex-1 w-full";
62075
+ let LY2;
62076
+ r[15] !== f || r[16] !== d || r[17] !== y ? (LY2 = (e3) => {
62037
62077
  let [r2, c3] = e3;
62038
62078
  return (0, import_jsx_runtime.jsx)(TabsContent, {
62039
62079
  value: r2,
@@ -62045,34 +62085,34 @@ ${E}`,
62045
62085
  data: c3,
62046
62086
  mimetype: r2
62047
62087
  },
62048
- metadata: _ == null ? void 0 : _[r2]
62088
+ metadata: y == null ? void 0 : y[r2]
62049
62089
  })
62050
62090
  })
62051
62091
  }, r2);
62052
- }, r[12] = f, r[13] = d, r[14] = _, r[15] = z2) : z2 = r[15], S = e2.map(z2);
62092
+ }, r[15] = f, r[16] = d, r[17] = y, r[18] = LY2) : LY2 = r[18], E = e2.map(LY2);
62053
62093
  }
62054
- r[0] = f, r[1] = d, r[2] = _, r[3] = h, r[4] = v, r[5] = y, r[6] = S, r[7] = w, r[8] = E, r[9] = O, r[10] = M, r[11] = I;
62055
- } else v = r[4], y = r[5], S = r[6], w = r[7], E = r[8], O = r[9], M = r[10], I = r[11];
62056
- if (I !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel")) return I;
62057
- let z;
62058
- r[16] !== y || r[17] !== S ? (z = (0, import_jsx_runtime.jsx)("div", {
62059
- className: y,
62060
- children: S
62061
- }), r[16] = y, r[17] = S, r[18] = z) : z = r[18];
62062
- let G;
62063
- r[19] !== w || r[20] !== E || r[21] !== z ? (G = (0, import_jsx_runtime.jsxs)("div", {
62094
+ r[0] = v, r[1] = f, r[2] = d, r[3] = y, r[4] = h, r[5] = S, r[6] = w, r[7] = E, r[8] = O, r[9] = M, r[10] = I, r[11] = z, r[12] = G;
62095
+ } else S = r[5], w = r[6], E = r[7], O = r[8], M = r[9], I = r[10], z = r[11], G = r[12];
62096
+ if (G !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel")) return G;
62097
+ let q;
62098
+ r[19] !== w || r[20] !== E ? (q = (0, import_jsx_runtime.jsx)("div", {
62064
62099
  className: w,
62100
+ children: E
62101
+ }), r[19] = w, r[20] = E, r[21] = q) : q = r[21];
62102
+ let LY;
62103
+ r[22] !== O || r[23] !== M || r[24] !== q ? (LY = (0, import_jsx_runtime.jsxs)("div", {
62104
+ className: O,
62065
62105
  children: [
62066
- E,
62067
- z
62106
+ M,
62107
+ q
62068
62108
  ]
62069
- }), r[19] = w, r[20] = E, r[21] = z, r[22] = G) : G = r[22];
62070
- let q;
62071
- return r[23] !== v || r[24] !== O || r[25] !== M || r[26] !== G ? (q = (0, import_jsx_runtime.jsx)(v, {
62072
- defaultValue: O,
62073
- orientation: M,
62074
- children: G
62075
- }), r[23] = v, r[24] = O, r[25] = M, r[26] = G, r[27] = q) : q = r[27], q;
62109
+ }), r[22] = O, r[23] = M, r[24] = q, r[25] = LY) : LY = r[25];
62110
+ let RY;
62111
+ return r[26] !== S || r[27] !== I || r[28] !== z || r[29] !== LY ? (RY = (0, import_jsx_runtime.jsx)(S, {
62112
+ defaultValue: I,
62113
+ orientation: z,
62114
+ children: LY
62115
+ }), r[26] = S, r[27] = I, r[28] = z, r[29] = LY, r[30] = RY) : RY = r[30], RY;
62076
62116
  });
62077
62117
  MimeBundleOutputRenderer.displayName = "MimeBundleOutputRenderer";
62078
62118
  const OutputArea = import_react.memo((e) => {
@@ -72006,7 +72046,7 @@ Image URL: ${r.imageUrl}`)), contextToXml({
72006
72046
  function getVegaFieldTypes(e) {
72007
72047
  return !e || Object.keys(e).length === 0 ? "auto" : Objects.mapValues(e, (e2) => e2 === "date" || e2 === "time" ? "string" : e2 === "datetime" ? "date" : e2);
72008
72048
  }
72009
- var import_compiler_runtime$84 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-DsVDCmV2.js").then(async (m2) => {
72049
+ var import_compiler_runtime$84 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-zEomQJ3U.js").then(async (m2) => {
72010
72050
  await m2.__tla;
72011
72051
  return m2;
72012
72052
  }));
@@ -83664,7 +83704,7 @@ ${c}
83664
83704
  fullWidth: v,
83665
83705
  children: z
83666
83706
  }), r[19] = v, r[20] = y, r[21] = c, r[22] = z, r[23] = G) : G = r[23], G;
83667
- }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-D5KcOOzu.js"));
83707
+ }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-DjQ_E5BA.js"));
83668
83708
  const DataExplorerPlugin = createPlugin("marimo-data-explorer").withData(object$1({
83669
83709
  label: string$2().nullish(),
83670
83710
  data: string$2()
@@ -93984,7 +94024,7 @@ ${c}
93984
94024
  return true;
93985
94025
  }
93986
94026
  }
93987
- var LazyVegaComponent = import_react.lazy(() => import("./vega-component-B2QrGnW8.js")), VegaPlugin = class {
94027
+ var LazyVegaComponent = import_react.lazy(() => import("./vega-component-DAeU1_cV.js")), VegaPlugin = class {
93988
94028
  constructor() {
93989
94029
  __publicField(this, "tagName", "marimo-vega");
93990
94030
  __publicField(this, "validator", object$1({
@@ -94306,7 +94346,7 @@ ${c}
94306
94346
  diagram: e.data.diagram
94307
94347
  });
94308
94348
  }
94309
- }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-DZjjc-kI.js")), import_compiler_runtime$19 = require_compiler_runtime();
94349
+ }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-D7wtYc6C.js")), import_compiler_runtime$19 = require_compiler_runtime();
94310
94350
  function getRootScrollableElement() {
94311
94351
  return getInitialAppMode() === "edit" ? document.getElementById("App") : void 0;
94312
94352
  }
@@ -96521,7 +96561,8 @@ Defaulting to \`null\`.`;
96521
96561
  });
96522
96562
  }
96523
96563
  var TexComponent = (e) => {
96524
- let r = (0, import_compiler_runtime$12.c)(7), { host: c, tex: d } = e, f = (0, import_react.useRef)(null), [h, _] = (0, import_react.useState)(d), v, y;
96564
+ var _a2;
96565
+ let r = (0, import_compiler_runtime$12.c)(8), { host: c, tex: d } = e, f = (0, import_react.useRef)(null), [h, _] = (0, import_react.useState)(d), v, y;
96525
96566
  r[0] === c ? (v = r[1], y = r[2]) : (v = () => {
96526
96567
  let e2 = new MutationObserver(() => {
96527
96568
  _(c.textContent || c.innerHTML);
@@ -96536,16 +96577,17 @@ Defaulting to \`null\`.`;
96536
96577
  }, y = [
96537
96578
  c
96538
96579
  ], r[0] = c, r[1] = v, r[2] = y), (0, import_react.useLayoutEffect)(v, y);
96539
- let S, w;
96540
- r[3] === h ? (S = r[4], w = r[5]) : (S = () => {
96541
- f.current && renderLatex(f.current, h);
96542
- }, w = [
96543
- h
96544
- ], r[3] = h, r[4] = S, r[5] = w), (0, import_react.useLayoutEffect)(S, w);
96545
- let E;
96546
- return r[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (E = (0, import_jsx_runtime.jsx)("span", {
96580
+ let S = ((_a2 = c.parentElement) == null ? void 0 : _a2.tagName.toLowerCase()) === "marimo-tex", w, E;
96581
+ r[3] !== h || r[4] !== S ? (w = () => {
96582
+ f.current && !S && renderLatex(f.current, h);
96583
+ }, E = [
96584
+ h,
96585
+ S
96586
+ ], r[3] = h, r[4] = S, r[5] = w, r[6] = E) : (w = r[5], E = r[6]), (0, import_react.useLayoutEffect)(w, E);
96587
+ let O;
96588
+ return r[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (O = (0, import_jsx_runtime.jsx)("span", {
96547
96589
  ref: f
96548
- }), r[6] = E) : E = r[6], E;
96590
+ }), r[7] = O) : O = r[7], O;
96549
96591
  };
96550
96592
  const UI_PLUGINS = [
96551
96593
  new ButtonPlugin(),
@@ -101061,7 +101103,7 @@ Defaulting to \`null\`.`;
101061
101103
  return Logger.warn("Failed to get version from mount config"), null;
101062
101104
  }
101063
101105
  }
101064
- const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.19.5-dev4"), showCodeInRunModeAtom = atom(true);
101106
+ const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.19.5-dev43"), showCodeInRunModeAtom = atom(true);
101065
101107
  atom(null);
101066
101108
  var VIRTUAL_FILE_REGEX = /\/@file\/([^\s"&'/]+)\.([\dA-Za-z]+)/g, VirtualFileTracker = class e {
101067
101109
  constructor() {
@@ -101482,7 +101524,10 @@ Defaulting to \`null\`.`;
101482
101524
  }
101483
101525
  async function _temp3() {
101484
101526
  let e = document.getElementById("App");
101485
- e && await downloadHTMLAsImage(e, document.title);
101527
+ e && await downloadHTMLAsImage({
101528
+ element: e,
101529
+ filename: document.title
101530
+ });
101486
101531
  }
101487
101532
  async function _temp4() {
101488
101533
  document.getElementById("App") && await downloadAsHTML({
@@ -102147,7 +102192,7 @@ ${r}
102147
102192
  return c ? parseIslandEditor(c.dataset.initialValue) : "";
102148
102193
  }
102149
102194
  const islandsInitializedAtom = atom(false), userTriedToInteractWithIslandsAtom = atom(false), shouldShowIslandsWarningIndicatorAtom = atom((e) => e(userTriedToInteractWithIslandsAtom) && e(islandsInitializedAtom) === false);
102150
- var worker_default = "/assets/worker-BR7KVExK.js", IslandsPyodideBridge = class e {
102195
+ var worker_default = "/assets/worker-SqntmiwV.js", IslandsPyodideBridge = class e {
102151
102196
  constructor() {
102152
102197
  __publicField(this, "initialized", new Deferred());
102153
102198
  __publicField(this, "sendComponentValues", async (e2) => (await this.putControlRequest(e2), null));
@@ -102191,6 +102236,7 @@ ${r}
102191
102236
  __publicField(this, "openTutorial", throwNotImplemented);
102192
102237
  __publicField(this, "exportAsHTML", throwNotImplemented);
102193
102238
  __publicField(this, "exportAsMarkdown", throwNotImplemented);
102239
+ __publicField(this, "exportAsPDF", throwNotImplemented);
102194
102240
  __publicField(this, "autoExportAsHTML", throwNotImplemented);
102195
102241
  __publicField(this, "autoExportAsMarkdown", throwNotImplemented);
102196
102242
  __publicField(this, "autoExportAsIPYNB", throwNotImplemented);