@marimo-team/islands 0.23.9-dev9 → 0.23.10-dev0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/{ConnectedDataExplorerComponent-OzrfMM5L.js → ConnectedDataExplorerComponent-CyV83R2m.js} +4 -4
  2. package/dist/assets/__vite-browser-external-Ci2ZQfXU.js +1 -0
  3. package/dist/assets/{worker-CpBbwbQo.js → worker-ip3AI_sN.js} +2 -2
  4. package/dist/{chat-ui-BDI3FMI8.js → chat-ui-ChD4VvCo.js} +3060 -3033
  5. package/dist/{code-visibility-DgHF4q8X.js → code-visibility-CjGICDxg.js} +1368 -1204
  6. package/dist/{formats-DQ5qjo_Q.js → formats-DHxc-FdY.js} +1 -1
  7. package/dist/{glide-data-editor-DqRY9naW.js → glide-data-editor-BOmK9ETQ.js} +2 -2
  8. package/dist/{html-to-image-CiSinpSR.js → html-to-image-BHv7CEU_.js} +2145 -2153
  9. package/dist/{input-CZD2z6X2.js → input-_2sjvfne.js} +1 -1
  10. package/dist/main.js +680 -705
  11. package/dist/{mermaid-IU93XzmY.js → mermaid-lXOw5Py9.js} +2 -2
  12. package/dist/{process-output-5qJjMRKh.js → process-output-BvySRgli.js} +33 -25
  13. package/dist/{reveal-component-qpHJES_u.js → reveal-component-DVWED--8.js} +312 -291
  14. package/dist/{spec-a6DaqW__.js → spec-B96zNUEA.js} +1 -1
  15. package/dist/style.css +1 -1
  16. package/dist/{toDate-ZVVIBmdk.js → toDate-x-WRDCH7.js} +1 -1
  17. package/dist/{useAsyncData-C008zUPi.js → useAsyncData-iRgKDT5s.js} +1 -1
  18. package/dist/{useDeepCompareMemoize-BrA3_n61.js → useDeepCompareMemoize-CkQ57VS2.js} +1 -1
  19. package/dist/{useLifecycle-BNaoJ5a4.js → useLifecycle-BBO9PIph.js} +1 -1
  20. package/dist/{useTheme-7O0YWlE5.js → useTheme-DHIrRQOe.js} +34 -21
  21. package/dist/{vega-component-DJNmOdUj.js → vega-component-Dq-SH463.js} +5 -5
  22. package/package.json +1 -1
  23. package/src/components/ai/__tests__/ai-utils.test.ts +43 -38
  24. package/src/components/ai/ai-model-dropdown.tsx +2 -2
  25. package/src/components/app-config/ai-config.tsx +147 -16
  26. package/src/components/app-config/user-config-form.tsx +37 -1
  27. package/src/components/chat/__tests__/chat-utils.test.ts +269 -0
  28. package/src/components/chat/chat-panel.tsx +38 -5
  29. package/src/components/chat/chat-utils.ts +14 -58
  30. package/src/components/data-table/TableBottomBar.tsx +5 -8
  31. package/src/components/data-table/__tests__/column-explorer.test.tsx +128 -0
  32. package/src/components/data-table/__tests__/header-items.test.tsx +220 -10
  33. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +95 -29
  34. package/src/components/data-table/column-header.tsx +17 -12
  35. package/src/components/data-table/data-table.tsx +4 -0
  36. package/src/components/data-table/export-actions.tsx +19 -12
  37. package/src/components/data-table/header-items.tsx +40 -16
  38. package/src/components/data-table/hooks/use-column-visibility.ts +14 -0
  39. package/src/components/data-table/schemas.ts +2 -2
  40. package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +16 -6
  41. package/src/components/databases/display.tsx +2 -0
  42. package/src/components/datasources/__tests__/utils.test.ts +82 -0
  43. package/src/components/datasources/utils.ts +16 -15
  44. package/src/components/editor/Disconnected.tsx +1 -60
  45. package/src/components/editor/__tests__/viewer-banner.test.tsx +89 -0
  46. package/src/components/editor/actions/pair-with-agent-modal.tsx +1 -0
  47. package/src/components/editor/actions/useCellActionButton.tsx +3 -3
  48. package/src/components/editor/actions/useNotebookActions.tsx +5 -2
  49. package/src/components/editor/cell/code/cell-editor.tsx +25 -5
  50. package/src/components/editor/chrome/types.ts +13 -6
  51. package/src/components/editor/chrome/wrapper/app-chrome.tsx +6 -4
  52. package/src/components/editor/chrome/wrapper/footer-items/ai-status.tsx +10 -1
  53. package/src/components/editor/chrome/wrapper/sidebar.tsx +7 -5
  54. package/src/components/editor/errors/auto-fix.tsx +3 -3
  55. package/src/components/editor/header/__tests__/status.test.tsx +0 -15
  56. package/src/components/editor/header/app-header.tsx +1 -4
  57. package/src/components/editor/header/status.tsx +4 -13
  58. package/src/components/editor/navigation/__tests__/navigation.test.ts +15 -0
  59. package/src/components/editor/navigation/navigation.ts +5 -0
  60. package/src/components/editor/output/MarimoErrorOutput.tsx +103 -25
  61. package/src/components/editor/output/MarimoTracebackOutput.tsx +28 -39
  62. package/src/components/editor/renderers/cell-array.tsx +27 -24
  63. package/src/components/editor/renderers/slides-layout/__tests__/compute-slide-cells.test.ts +30 -17
  64. package/src/components/editor/renderers/slides-layout/compute-slide-cells.ts +17 -8
  65. package/src/components/editor/renderers/slides-layout/slides-layout.tsx +10 -12
  66. package/src/components/editor/viewer-banner.tsx +82 -0
  67. package/src/components/slides/minimap.tsx +45 -9
  68. package/src/components/slides/reveal-component.tsx +82 -37
  69. package/src/components/slides/slide-cell-view.tsx +12 -1
  70. package/src/components/slides/slide-form.tsx +11 -3
  71. package/src/components/static-html/static-banner.tsx +28 -22
  72. package/src/core/ai/__tests__/model-registry.test.ts +72 -60
  73. package/src/core/ai/model-registry.ts +33 -28
  74. package/src/core/cells/__tests__/actions.test.ts +48 -0
  75. package/src/core/cells/actions.ts +5 -6
  76. package/src/core/codemirror/__tests__/setup.test.ts +29 -0
  77. package/src/core/codemirror/cells/traceback-decorations.ts +1 -1
  78. package/src/core/codemirror/cm.ts +50 -3
  79. package/src/core/codemirror/completion/hints.ts +4 -1
  80. package/src/core/codemirror/format.ts +1 -0
  81. package/src/core/codemirror/keymaps/vim.ts +63 -0
  82. package/src/core/codemirror/language/languages/sql/sql.ts +1 -0
  83. package/src/core/codemirror/language/languages/sql/utils.ts +2 -0
  84. package/src/core/config/__tests__/config-schema.test.ts +4 -0
  85. package/src/core/config/config-schema.ts +4 -0
  86. package/src/core/config/config.ts +16 -0
  87. package/src/core/edit-app.tsx +3 -0
  88. package/src/core/islands/bootstrap.ts +2 -0
  89. package/src/core/kernel/__tests__/handlers.test.ts +5 -0
  90. package/src/core/websocket/__tests__/useMarimoKernelConnection.test.ts +0 -13
  91. package/src/core/websocket/types.ts +0 -6
  92. package/src/core/websocket/useMarimoKernelConnection.tsx +3 -12
  93. package/src/css/app/Cell.css +0 -1
  94. package/src/plugins/impl/DataTablePlugin.tsx +48 -22
  95. package/src/plugins/impl/chat/ChatPlugin.tsx +7 -1
  96. package/src/plugins/impl/chat/__tests__/chat-ui.test.ts +278 -0
  97. package/src/plugins/impl/chat/chat-ui.tsx +106 -59
  98. package/src/plugins/impl/chat/types.ts +5 -0
  99. package/src/utils/__tests__/json-parser.test.ts +1 -69
  100. package/src/utils/json/json-parser.ts +0 -30
  101. package/dist/assets/__vite-browser-external-CAdMKBac.js +0 -1
package/dist/main.js CHANGED
@@ -22,17 +22,17 @@ import { _ as Logger, c as Objects, g as cn, h as Events, i as NOT_SET, l as use
22
22
  import { t as require_react } from "./react-DA-nE2FX.js";
23
23
  import { t as require_compiler_runtime } from "./compiler-runtime-CEbnTgxf.js";
24
24
  import { n as Copy, r as toast, t as copyToClipboard } from "./copy-BuQpJEzp.js";
25
- import { $ as useCellActions, At as DeferredRequestRegistry, B as safeExtractSetUIElementMessageBuffers, Bn as CircleAlert, Bt as getDataTypeColor, C as AccordionContent, Cn as Root2$1, Ct as customPythonLanguageSupport, Dn as Table2, Dt as Paths, E as BorderAllIcon, En as Trash2, Et as PathBuilder, F as base64ToDataView, Fn as Eye, Ft as jotaiJsonStorage, Gt as convertStatsName, H as getMarimoExportContext, J as getCellNames, Jt as useRequestClient, K as createActions, Kt as getRequestClient, L as dataViewToBase64, Ln as Database, Mn as Layers, Nn as Info, Nt as repl, On as PaintRoller, Pn as FileText, Q as reducer, Rn as Columns2, Rt as PluralWords, S as Accordion, Sn as Item$1, St as Checkbox, T as AccordionTrigger, U as hasTrustedExportContext, V as renderHTML, Vn as Braces, Vt as require_client, W as hasRunAnyCellAtom, X as notebookOutline, Y as notebookAtom, Yt as isUninstantiated, Z as numColumnsAtom, _n as atomWithStorage, a as useCellFocusActions, an as parseInitialValue, bt as isInternalCellName, ct as kioskModeAtom, dn as OBJECT_ID_ATTR, dt as outputIsLoading, en as NotebookScopedLocalStorage, et as useCellIds, f as isOutputEmpty, fn as RANDOM_ID_ATTR, ft as outputIsStale, gn as atomWithReducer, i as LazyAnyLanguageCodeMirror, in as parseDataset, jn as LoaderCircle, jt as generateUUID, k as ChevronDownIcon, ln as UIElementId, mt as headingToIdentifier, n as Spinner, nt as createCell, o as useLastFocusedCellId, ot as getInitialAppMode, p as useExpandedConsoleOutput, pn as jsonParseWithSpecialChar, pt as isErrorMime, qt as requestClientAtom, rn as parseAttrValue, s as maybeAddAltairImport, sn as HTMLCellId, st as initialModeAtom, un as findCellId, vn as selectAtom, w as AccordionItem, wn as Trigger2, wt as MarkdownLanguageAdapter, xn as Content2, xt as normalizeName, yt as getValidName, zt as DATA_TYPE_ICON, __tla as __tla_0 } from "./html-to-image-CiSinpSR.js";
25
+ import { $ as useCellActions, An as LoaderCircle, At as DeferredRequestRegistry, B as safeExtractSetUIElementMessageBuffers, Bn as Braces, Bt as getDataTypeColor, C as AccordionContent, Cn as Trigger2, Ct as customPythonLanguageSupport, Dn as PaintRoller, Dt as Paths, E as BorderAllIcon, En as Table2, Et as PathBuilder, F as base64ToDataView, Ft as jotaiJsonStorage, Gt as convertStatsName, H as getMarimoExportContext, In as Database, J as getCellNames, Jt as useRequestClient, K as createActions, Kt as getRequestClient, L as dataViewToBase64, Ln as Columns2, Mn as Info, Nn as FileText, Nt as repl, Pn as Eye, Q as reducer, Rt as PluralWords, S as Accordion, Sn as Root2$1, St as Checkbox, T as AccordionTrigger, Tn as Trash2, U as hasTrustedExportContext, V as renderHTML, Vt as require_client, W as hasRunAnyCellAtom, X as notebookOutline, Y as notebookAtom, Yt as isUninstantiated, Z as numColumnsAtom, _n as selectAtom, a as useCellFocusActions, an as parseInitialValue, bn as Content2, bt as isInternalCellName, ct as kioskModeAtom, dn as OBJECT_ID_ATTR, dt as outputIsLoading, en as NotebookScopedLocalStorage, et as useCellIds, f as isOutputEmpty, fn as RANDOM_ID_ATTR, ft as outputIsStale, gn as atomWithStorage, hn as atomWithReducer, i as LazyAnyLanguageCodeMirror, in as parseDataset, jn as Layers, jt as generateUUID, k as ChevronDownIcon, ln as UIElementId, mt as headingToIdentifier, n as Spinner, nt as createCell, o as useLastFocusedCellId, ot as getInitialAppMode, p as useExpandedConsoleOutput, pn as jsonParseWithSpecialChar, pt as isErrorMime, qt as requestClientAtom, rn as parseAttrValue, s as maybeAddAltairImport, sn as HTMLCellId, st as initialModeAtom, un as findCellId, w as AccordionItem, wt as MarkdownLanguageAdapter, xn as Item$1, xt as normalizeName, yt as getValidName, zn as CircleAlert, zt as DATA_TYPE_ICON, __tla as __tla_0 } from "./html-to-image-BHv7CEU_.js";
26
26
  import { __tla as __tla_1 } from "./chunk-5FQGJX7Z-BNjes6Yx.js";
27
27
  import { o as useSize, s as Root$2, u as createLucideIcon } from "./dist-C1BYNeCR.js";
28
- import { A as SquareFunction, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, O as TIME_UNIT_DESCRIPTIONS, S as DEFAULT_AGGREGATION, T as DEFAULT_TIME_UNIT, _ 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 ChartColumn, 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 } from "./spec-a6DaqW__.js";
29
- import { $ as TableHead, A as Command, At as ChartLoadingState, B as contextAwarePanelType, Bt as GripHorizontal, C as prettifyRowColumnCount, Ct as dateToLocalISOTime, D as DateRangePicker, Dt as TabsTrigger, E as DatePicker, Et as TabsList, F as CommandSeparator, Ft as HtmlOutput, Gt as Download, H as SlotNames, Ht as EyeOff, I as ContextAwarePanelItem, It as EmotionCacheProvider, J as Fill, Jt as ChevronsRight, Kt as Code, L as PANEL_TYPES, Lt as $fae977aafc393c5c$export$588937bcd60ade55, M as CommandInput, Mt as useOverflowDetection, N as CommandItem, Nt as RenderTextWithLinks, O as Combobox, Ot as ChartErrorState, P as CommandList, Pt as Kbd, Q as TableCell, Qt as ArrowDownWideNarrow, R as contextAwarePanelOpen, Rt as $fae977aafc393c5c$export$6b862160d295c8e, S as downloadSizeLimitAtom, St as dateToLocalISODateTime, T as useInternalStateWithSync, Tt as TabsContent, U as slotsController, V as isCellAwareAtom, Vt as Funnel, W as Toggle, Wt as Ellipsis, X as Table, Xt as ChevronsDownUp, Y as Provider$1, Yt as ChevronsLeft, Z as TableBody, Zt as ChevronLeft, _ as downloadBlob, _t as toFieldTypes, at as renderCellValue, b as Progress, bt as Maps, c as Slide, ct as DelayMount, d as JsonOutput, dt as getPageIndexForRow, et as TableHeader, f as OutputArea, ft as loadTableAndRawData, g as ADD_PRINTING_CLASS, gt as TOO_MANY_ROWS, h as InstallPackageButton, ht as SELECT_COLUMN_ID, it as inferFieldTypes, j as CommandEmpty, jt as LazyVegaEmbed, k as ComboboxItem, kt as ChartInfoState, l as RadioGroup, lt as useIntersectionObserver, m as DataTable, mt as INDEX_COLUMN_NAME, n as marimoVersionAtom, nt as NAMELESS_COLUMN_PREFIX, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as ColumnChartContext, p as OutputRenderer, pt as loadTableData, qt as ChevronsUpDown, r as showCodeInRunModeAtom, rt as generateColumns, st as ColumnChartSpecModel, t as useNotebookCodeAvailable, tt as TableRow, u as RadioGroupItem, ut as usePrevious$1, v as downloadByURL, vt as getMimeValues, w as prettifyRowCount, wt as Tabs, x as Filenames, xt as dateToLocalISODate, y as downloadHTMLAsImage, yt as isNullishFilter, z as contextAwarePanelOwner, zt as TextWrap, __tla as __tla_2 } from "./code-visibility-DgHF4q8X.js";
30
- import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, t as useOnMount } from "./useLifecycle-BNaoJ5a4.js";
28
+ import { A as SquareFunction, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, O as TIME_UNIT_DESCRIPTIONS, S as DEFAULT_AGGREGATION, T as DEFAULT_TIME_UNIT, _ 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 ChartColumn, 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 } from "./spec-B96zNUEA.js";
29
+ import { $ as TableBody, $t as ChevronLeft, A as ComboboxItem, At as ChartErrorState, B as contextAwarePanelOpen, Bt as $fae977aafc393c5c$export$6b862160d295c8e, C as prettifyRowColumnCount, Ct as dateToLocalISODate, D as DatePicker, Dt as TabsContent, E as useInternalStateWithSync, Et as Tabs, F as CommandList, Ft as RenderTextWithLinks, G as slotsController, H as contextAwarePanelType, Ht as GripHorizontal, I as CommandSeparator, It as Kbd, Jt as Code, K as Toggle, Kt as Ellipsis, L as smartMatch, Lt as HtmlOutput, M as CommandEmpty, Mt as ChartLoadingState, N as CommandInput, Nt as LazyVegaEmbed, O as DateRangePicker, Ot as TabsList, P as CommandItem, Pt as useOverflowDetection, Q as Table, Qt as ChevronsDownUp, R as ContextAwarePanelItem, Rt as EmotionCacheProvider, S as downloadSizeLimitAtom, St as Maps, T as getColumnCountForDisplay, Tt as dateToLocalISOTime, U as isCellAwareAtom, Ut as Funnel, V as contextAwarePanelOwner, Vt as TextWrap, W as SlotNames, Wt as EyeOff, X as Fill, Xt as ChevronsRight, Yt as ChevronsUpDown, Z as Provider$1, Zt as ChevronsLeft, _ as downloadBlob, _t as SELECT_COLUMN_ID, at as generateColumns, b as Progress, bt as getMimeValues, c as Slide, ct as ColumnChartContext, d as JsonOutput, dt as useIntersectionObserver, en as ArrowDownWideNarrow, et as TableCell, f as OutputArea, ft as usePrevious$1, g as ADD_PRINTING_CLASS, gt as INDEX_COLUMN_NAME, h as InstallPackageButton, ht as loadTableData, it as NAMELESS_COLUMN_PREFIX, j as Command, jt as ChartInfoState, k as Combobox, kt as TabsTrigger, l as RadioGroup, lt as ColumnChartSpecModel, m as DataTable, mt as loadTableAndRawData, n as marimoVersionAtom, nt as TableHeader, o as SLIDE_TYPE_OPTIONS_BY_VALUE, ot as inferFieldTypes, p as OutputRenderer, pt as getPageIndexForRow, qt as Download, r as showCodeInRunModeAtom, rt as TableRow, st as renderCellValue, t as useNotebookCodeAvailable, tt as TableHead, u as RadioGroupItem, ut as DelayMount, v as downloadByURL, vt as TOO_MANY_ROWS, w as prettifyRowCount, wt as dateToLocalISODateTime, x as Filenames, xt as isNullishFilter, y as downloadHTMLAsImage, yt as toFieldTypes, z as PANEL_TYPES, zt as $fae977aafc393c5c$export$588937bcd60ade55, __tla as __tla_2 } from "./code-visibility-CjGICDxg.js";
30
+ import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, t as useOnMount } from "./useLifecycle-BBO9PIph.js";
31
31
  import { t as Check } from "./check-DTbrK0zt.js";
32
32
  import { A as Trigger$1, C as $a916eb452884faea$export$b7a616150fdb9f44, E as $18f2051aff69b9bf$export$a54013f0d02a8f82, F as X, L as ChevronDown, M as usePrevious$2, N as useDirection, P as createCollection, S as logNever, T as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, a as SelectGroup, c as SelectSeparator, d as NativeSelect, i as SelectContent, j as clamp$2, k as Icon, l as SelectTrigger, n as capitalize, o as SelectItem, r as Select, s as SelectLabel, t as Strings, u as SelectValue, x as assertNever } from "./strings-Bu3vlb6W.js";
33
- import { I as $64fa3d84918910a7$export$29f1550f4b0d4415, K as useDebounceControlledState, L as $64fa3d84918910a7$export$4d86445c2cf5e3, Mt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, Nt as $3ef42575df84b30b$export$9d1611c77c2fe928, V as $64fa3d84918910a7$export$df3a06d6289f983e, Vt as $ff5963eb1fccf552$export$e08e3b67e392101e, a as NumberField, b as DropdownMenuTrigger, c as prettyNumber, d as DropdownMenuContent, f as DropdownMenuGroup, fn as Circle, g as DropdownMenuSeparator, i as OnBlurredInput, it as $701a24aa0da5b062$export$ea18c227d4417cc3, l as prettyScientificNumber, m as DropdownMenuLabel, n as DebouncedNumberInput, p as DropdownMenuItem, pn as ChevronRight, q as useDebouncedCallback, r as Input, rt as $f7dceffc5ad7768b$export$4e328f61c538687f, t as DebouncedInput, u as DropdownMenu, ut as $6179b936705e76d3$export$ae780daf29e6d456, vt as $458b0a5536c1a7cf$export$40bfa8c7b0832715 } from "./input-CZD2z6X2.js";
34
- import { _ as isWasm, c as asRemoteURL, d as isStaticNotebook, f as appendQueryParams, g as Deferred, m as require_cuid2, u as getStaticVirtualFiles, v as CircleQuestionMark } from "./toDate-ZVVIBmdk.js";
35
- import { a as MarimoIncomingMessageEvent, c as MarimoValueUpdateEvent, d as File, i as PythonIcon, l as createInputEvent, n as blobToString, o as MarimoValueInputEvent, r as filesToBase64, s as MarimoValueReadyEvent, t as processOutput, u as deserializeBlob } from "./process-output-5qJjMRKh.js";
33
+ import { I as $64fa3d84918910a7$export$29f1550f4b0d4415, K as useDebounceControlledState, L as $64fa3d84918910a7$export$4d86445c2cf5e3, Mt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, Nt as $3ef42575df84b30b$export$9d1611c77c2fe928, V as $64fa3d84918910a7$export$df3a06d6289f983e, Vt as $ff5963eb1fccf552$export$e08e3b67e392101e, a as NumberField, b as DropdownMenuTrigger, c as prettyNumber, d as DropdownMenuContent, f as DropdownMenuGroup, fn as Circle, g as DropdownMenuSeparator, i as OnBlurredInput, it as $701a24aa0da5b062$export$ea18c227d4417cc3, l as prettyScientificNumber, m as DropdownMenuLabel, n as DebouncedNumberInput, p as DropdownMenuItem, pn as ChevronRight, q as useDebouncedCallback, r as Input, rt as $f7dceffc5ad7768b$export$4e328f61c538687f, t as DebouncedInput, u as DropdownMenu, ut as $6179b936705e76d3$export$ae780daf29e6d456, vt as $458b0a5536c1a7cf$export$40bfa8c7b0832715 } from "./input-_2sjvfne.js";
34
+ import { _ as isWasm, c as asRemoteURL, d as isStaticNotebook, f as appendQueryParams, g as Deferred, m as require_cuid2, u as getStaticVirtualFiles, v as CircleQuestionMark } from "./toDate-x-WRDCH7.js";
35
+ import { a as MarimoIncomingMessageEvent, c as MarimoValueUpdateEvent, d as Square, f as File, i as PythonIcon, l as createInputEvent, n as blobToString, o as MarimoValueInputEvent, r as filesToBase64, s as MarimoValueReadyEvent, t as processOutput, u as deserializeBlob } from "./process-output-BvySRgli.js";
36
36
  import { n as Trash, r as Pencil, t as BulkEdit } from "./types-CVvp1fKr.js";
37
37
  import { n as require_prop_types, r as Plus, t as ErrorBoundary } from "./ErrorBoundary-rULOrC_p.js";
38
38
  import { t as require_react_dom } from "./react-dom-BTJzcVJ9.js";
@@ -45,7 +45,7 @@ import { f as CopyClipboardIcon } from "./extends-BgdxCfYu.js";
45
45
  import { a as get_default } from "./hasIn-Deg7jl_j.js";
46
46
  import { n as _baseSet_default, t as pick_default } from "./pick-D1Qo8s2C.js";
47
47
  import { i as debounce_default, r as KnownQueryParams, t as CSSClasses } from "./constants-T20xxyNf.js";
48
- import { C as dequal, c as AppConfigSchema, g as useAtomValue, h as useAtom, i as autoInstantiateAtom, m as Provider, n as useTheme, o as localeAtom, p as isIslands, s as useResolvedMarimoConfig, u as store, w as useEvent_default, y as atom } from "./useTheme-7O0YWlE5.js";
48
+ import { T as useEvent_default, _ as useAtomValue, b as atom, c as useResolvedMarimoConfig, d as store, g as useAtom, h as Provider, i as autoInstantiateAtom, l as AppConfigSchema, m as isIslands, n as useTheme, o as localeAtom, w as dequal } from "./useTheme-DHIrRQOe.js";
49
49
  import { Z as EditorView } from "./dist-DNdhYsgW.js";
50
50
  import { t as invariant } from "./invariant-wRzNXIsJ.js";
51
51
  import { l as clamp, o as arrayShallowEquals, t as Arrays } from "./arrays-sEtDRoG4.js";
@@ -59,13 +59,13 @@ import "./dist-DqAWR3CS.js";
59
59
  import { r as python } from "./dist-BotSqB48.js";
60
60
  import { n as minimalSetup, t as esm_default } from "./esm-BfhQmZjp.js";
61
61
  import "./purify.es-H92eMd9-.js";
62
- import { i as AlertTitle, n as Alert, r as AlertDescription } from "./formats-DQ5qjo_Q.js";
62
+ import { i as AlertTitle, n as Alert, r as AlertDescription } from "./formats-DHxc-FdY.js";
63
63
  import "./vega-loader.browser-CZ-J8Py3.js";
64
64
  import { a as getContainerWidth, n as vegaLoadData, o as getVegaFieldTypes, s as tooltipHandler } from "./loader-BWLPpjKK.js";
65
65
  import "./defaultLocale-u-3osm0P.js";
66
66
  import "./defaultLocale-BoHTsDG6.js";
67
- import { t as useAsyncData } from "./useAsyncData-C008zUPi.js";
68
- import { t as useDeepCompareMemoize } from "./useDeepCompareMemoize-BrA3_n61.js";
67
+ import { t as useAsyncData } from "./useAsyncData-iRgKDT5s.js";
68
+ import { t as useDeepCompareMemoize } from "./useDeepCompareMemoize-CkQ57VS2.js";
69
69
  import "./dist-CLUtPrdy.js";
70
70
  import "./dist-RqXTaiir.js";
71
71
  import "./dist-DgnE8F-r.js";
@@ -2372,18 +2372,6 @@ let __tla = Promise.all([
2372
2372
  key: "napkw2"
2373
2373
  }
2374
2374
  ]
2375
- ]), Square = createLucideIcon("square", [
2376
- [
2377
- "rect",
2378
- {
2379
- width: "18",
2380
- height: "18",
2381
- x: "3",
2382
- y: "3",
2383
- rx: "2",
2384
- key: "afitv7"
2385
- }
2386
- ]
2387
2375
  ]), TriangleAlert = createLucideIcon("triangle-alert", [
2388
2376
  [
2389
2377
  "path",
@@ -3951,8 +3939,8 @@ let __tla = Promise.all([
3951
3939
  }
3952
3940
  }
3953
3941
  repl(MODEL_MANAGER, "MODEL_MANAGER");
3954
- var import_compiler_runtime$90 = require_compiler_runtime(), NavigationMenu = import_react.forwardRef((e, r) => {
3955
- let c = (0, import_compiler_runtime$90.c)(16), l, u, d, f;
3942
+ var import_compiler_runtime$88 = require_compiler_runtime(), NavigationMenu = import_react.forwardRef((e, r) => {
3943
+ let c = (0, import_compiler_runtime$88.c)(16), l, u, d, f;
3956
3944
  c[0] === e ? (l = c[1], u = c[2], d = c[3], f = c[4]) : ({ className: u, children: l, orientation: d, ...f } = e, c[0] = e, c[1] = l, c[2] = u, c[3] = d, c[4] = f);
3957
3945
  let m = d === "horizontal" && "max-w-max flex-1 items-center justify-center", h = d === "vertical" && "", g;
3958
3946
  c[5] !== u || c[6] !== m || c[7] !== h ? (g = cn(m, h, "relative z-10", u), c[5] = u, c[6] = m, c[7] = h, c[8] = g) : g = c[8];
@@ -3982,7 +3970,7 @@ let __tla = Promise.all([
3982
3970
  orientation: "horizontal"
3983
3971
  }
3984
3972
  }), NavigationMenuList = import_react.forwardRef((e, r) => {
3985
- let c = (0, import_compiler_runtime$90.c)(11), l, u, d;
3973
+ let c = (0, import_compiler_runtime$88.c)(11), l, u, d;
3986
3974
  c[0] === e ? (l = c[1], u = c[2], d = c[3]) : ({ className: l, orientation: u, ...d } = e, c[0] = e, c[1] = l, c[2] = u, c[3] = d);
3987
3975
  let f;
3988
3976
  c[4] !== l || c[5] !== u ? (f = cn(navigationMenuListStyle({
@@ -4007,7 +3995,7 @@ let __tla = Promise.all([
4007
3995
  orientation: "horizontal"
4008
3996
  }
4009
3997
  }), NavigationMenuTrigger = import_react.forwardRef((e, r) => {
4010
- let c = (0, import_compiler_runtime$90.c)(12), l, u, d;
3998
+ let c = (0, import_compiler_runtime$88.c)(12), l, u, d;
4011
3999
  c[0] === e ? (l = c[1], u = c[2], d = c[3]) : ({ className: u, children: l, ...d } = e, c[0] = e, c[1] = l, c[2] = u, c[3] = d);
4012
4000
  let f;
4013
4001
  c[4] === u ? f = c[5] : (f = cn(navigationMenuTriggerStyle(), "group", u), c[4] = u, c[5] = f);
@@ -4030,7 +4018,7 @@ let __tla = Promise.all([
4030
4018
  });
4031
4019
  NavigationMenuTrigger.displayName = Trigger.displayName;
4032
4020
  var NavigationMenuContent = import_react.forwardRef((e, r) => {
4033
- let c = (0, import_compiler_runtime$90.c)(9), l, u;
4021
+ let c = (0, import_compiler_runtime$88.c)(9), l, u;
4034
4022
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
4035
4023
  let d;
4036
4024
  c[3] === l ? d = c[4] : (d = cn("left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto ", l), c[3] = l, c[4] = d);
@@ -4043,7 +4031,7 @@ let __tla = Promise.all([
4043
4031
  });
4044
4032
  NavigationMenuContent.displayName = Content.displayName;
4045
4033
  var NavigationMenuLink = Link, NavigationMenuViewport = import_react.forwardRef((e, r) => {
4046
- let c = (0, import_compiler_runtime$90.c)(10), l, u;
4034
+ let c = (0, import_compiler_runtime$88.c)(10), l, u;
4047
4035
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
4048
4036
  let d;
4049
4037
  c[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = cn("absolute left-0 top-full flex justify-center"), c[3] = d) : d = c[3];
@@ -4061,7 +4049,7 @@ let __tla = Promise.all([
4061
4049
  });
4062
4050
  NavigationMenuViewport.displayName = Viewport.displayName;
4063
4051
  var NavigationMenuIndicator = import_react.forwardRef((e, r) => {
4064
- let c = (0, import_compiler_runtime$90.c)(10), l, u;
4052
+ let c = (0, import_compiler_runtime$88.c)(10), l, u;
4065
4053
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
4066
4054
  let d;
4067
4055
  c[3] === l ? d = c[4] : (d = cn("top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in", l), c[3] = l, c[4] = d);
@@ -4078,7 +4066,7 @@ let __tla = Promise.all([
4078
4066
  }), c[6] = u, c[7] = r, c[8] = d, c[9] = m) : m = c[9], m;
4079
4067
  });
4080
4068
  NavigationMenuIndicator.displayName = Indicator.displayName;
4081
- var import_compiler_runtime$89 = require_compiler_runtime(), NavigationMenuPlugin = class {
4069
+ var import_compiler_runtime$87 = require_compiler_runtime(), NavigationMenuPlugin = class {
4082
4070
  constructor() {
4083
4071
  __publicField(this, "tagName", "marimo-nav-menu");
4084
4072
  __publicField(this, "menuItemValidator", object({
@@ -4107,7 +4095,7 @@ let __tla = Promise.all([
4107
4095
  });
4108
4096
  }
4109
4097
  }, NavMenuComponent = (e) => {
4110
- let r = (0, import_compiler_runtime$89.c)(13), { items: c, orientation: l } = e, u = _temp$28, d = _temp2$18, f = _temp3$14, p;
4098
+ let r = (0, import_compiler_runtime$87.c)(13), { items: c, orientation: l } = e, u = _temp$27, d = _temp2$17, f = _temp3$14, p;
4111
4099
  r[0] === l ? p = r[1] : (p = (e2) => "items" in e2 ? l === "horizontal" ? (0, import_jsx_runtime.jsx)(NavigationMenu, {
4112
4100
  orientation: "horizontal",
4113
4101
  children: (0, import_jsx_runtime.jsx)(NavigationMenuList, {
@@ -4188,7 +4176,7 @@ let __tla = Promise.all([
4188
4176
  children: g
4189
4177
  }), r[10] = l, r[11] = g, r[12] = _) : _ = r[12], _;
4190
4178
  }, ListItem = import_react.forwardRef((e, r) => {
4191
- let c = (0, import_compiler_runtime$89.c)(19), l, u, d, f;
4179
+ let c = (0, import_compiler_runtime$87.c)(19), l, u, d, f;
4192
4180
  c[0] === e ? (l = c[1], u = c[2], d = c[3], f = c[4]) : ({ className: u, label: d, children: l, ...f } = e, c[0] = e, c[1] = l, c[2] = u, c[3] = d, c[4] = f);
4193
4181
  let m;
4194
4182
  c[5] === u ? m = c[6] : (m = cn("block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-hidden transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground", u), c[5] = u, c[6] = m);
@@ -4223,7 +4211,7 @@ let __tla = Promise.all([
4223
4211
  }), c[13] = f, c[14] = r, c[15] = m, c[16] = g, c[17] = _, c[18] = v) : v = c[18], v;
4224
4212
  });
4225
4213
  ListItem.displayName = "ListItem";
4226
- function _temp$28(e, r) {
4214
+ function _temp$27(e, r) {
4227
4215
  return r ? (0, import_jsx_runtime.jsx)(Tooltip, {
4228
4216
  delayDuration: 200,
4229
4217
  content: renderHTML({
@@ -4232,7 +4220,7 @@ let __tla = Promise.all([
4232
4220
  children: e
4233
4221
  }) : e;
4234
4222
  }
4235
- function _temp2$18(e) {
4223
+ function _temp2$17(e) {
4236
4224
  return e.startsWith("http") ? "_blank" : "_self";
4237
4225
  }
4238
4226
  function _temp3$14(e) {
@@ -4397,9 +4385,9 @@ let __tla = Promise.all([
4397
4385
  isSelected: f
4398
4386
  }
4399
4387
  }, y.children));
4400
- }), import_compiler_runtime$88 = require_compiler_runtime();
4388
+ }), import_compiler_runtime$86 = require_compiler_runtime();
4401
4389
  const LocaleProvider = (e) => {
4402
- let r = (0, import_compiler_runtime$88.c)(5), { children: c } = e, l = useAtomValue(localeAtom), u;
4390
+ let r = (0, import_compiler_runtime$86.c)(5), { children: c } = e, l = useAtomValue(localeAtom), u;
4403
4391
  r[0] === l ? u = r[1] : (u = safeLocale(l), r[0] = l, r[1] = u);
4404
4392
  let d;
4405
4393
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)($18f2051aff69b9bf$export$a54013f0d02a8f82, {
@@ -4588,16 +4576,16 @@ let __tla = Promise.all([
4588
4576
  negate: false
4589
4577
  };
4590
4578
  }
4591
- var import_compiler_runtime$87 = require_compiler_runtime(), Accordion$1 = Root2$1, AccordionContent$1 = Content2, AccordionItem$1 = Item$1, AccordionTrigger$1 = Trigger2;
4579
+ var import_compiler_runtime$85 = require_compiler_runtime(), Accordion$1 = Root2$1, AccordionContent$1 = Content2, AccordionItem$1 = Item$1, AccordionTrigger$1 = Trigger2;
4592
4580
  const BadPluginData = (e) => {
4593
- let r = (0, import_compiler_runtime$87.c)(16), { error: c, badData: l, shadowRoot: u } = e;
4581
+ let r = (0, import_compiler_runtime$85.c)(16), { error: c, badData: l, shadowRoot: u } = e;
4594
4582
  if (c instanceof ZodError) {
4595
4583
  let e2;
4596
4584
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)(AlertTitle, {
4597
4585
  children: "Bad Data"
4598
4586
  }), r[0] = e2) : e2 = r[0];
4599
4587
  let d2;
4600
- r[1] === c.issues ? d2 = r[2] : (d2 = c.issues.map(_temp$27), r[1] = c.issues, r[2] = d2);
4588
+ r[1] === c.issues ? d2 = r[2] : (d2 = c.issues.map(_temp$26), r[1] = c.issues, r[2] = d2);
4601
4589
  let f;
4602
4590
  r[3] === d2 ? f = r[4] : (f = (0, import_jsx_runtime.jsx)("div", {
4603
4591
  className: "text-md prose dark:prose-invert",
@@ -4655,7 +4643,7 @@ let __tla = Promise.all([
4655
4643
  shadowRoot: c
4656
4644
  });
4657
4645
  }
4658
- function _temp$27(e) {
4646
+ function _temp$26(e) {
4659
4647
  let r = e.path.join(".");
4660
4648
  return (0, import_jsx_runtime.jsxs)("li", {
4661
4649
  children: [
@@ -5070,9 +5058,9 @@ let __tla = Promise.all([
5070
5058
  }
5071
5059
  };
5072
5060
  }
5073
- var import_compiler_runtime$86 = require_compiler_runtime();
5061
+ var import_compiler_runtime$84 = require_compiler_runtime();
5074
5062
  function useAnyWidgetModule(e) {
5075
- let r = (0, import_compiler_runtime$86.c)(16), { jsUrl: c, jsHash: l } = e, u;
5063
+ let r = (0, import_compiler_runtime$84.c)(16), { jsUrl: c, jsHash: l } = e, u;
5076
5064
  r[0] !== l || r[1] !== c ? (u = async () => await WIDGET_DEF_REGISTRY.getModule(c, l), r[0] = l, r[1] = c, r[2] = u) : u = r[2];
5077
5065
  let d;
5078
5066
  r[3] === l ? d = r[4] : (d = [
@@ -5126,7 +5114,7 @@ let __tla = Promise.all([
5126
5114
  ...e
5127
5115
  }));
5128
5116
  var AnyWidgetSlot = (e) => {
5129
- let r = (0, import_compiler_runtime$86.c)(14), { jsUrl: c, jsHash: l, modelId: u } = e.data, d = e.host, f;
5117
+ let r = (0, import_compiler_runtime$84.c)(14), { jsUrl: c, jsHash: l, modelId: u } = e.data, d = e.host, f;
5130
5118
  r[0] !== l || r[1] !== c ? (f = {
5131
5119
  jsUrl: c,
5132
5120
  jsHash: l
@@ -5167,7 +5155,7 @@ let __tla = Promise.all([
5167
5155
  return e.default ? typeof e.default == "function" || typeof ((_a3 = e.default) == null ? void 0 : _a3.render) == "function" || typeof ((_b3 = e.default) == null ? void 0 : _b3.initialize) == "function" : false;
5168
5156
  }
5169
5157
  var LoadedSlot = (e) => {
5170
- let r = (0, import_compiler_runtime$86.c)(9), { widget: c, modelId: l, host: u } = e, f = (0, import_react.useRef)(null), p, m;
5158
+ let r = (0, import_compiler_runtime$84.c)(9), { widget: c, modelId: l, host: u } = e, f = (0, import_react.useRef)(null), p, m;
5171
5159
  r[0] === l ? (p = r[1], m = r[2]) : (p = MODEL_MANAGER.getSync(l), p || Logger.error("Model not found for modelId", l), m = p == null ? void 0 : p.get("_css"), r[0] = l, r[1] = p, r[2] = m), useMountCss(m, u);
5172
5160
  let h, g;
5173
5161
  r[3] !== p || r[4] !== l || r[5] !== c ? (h = () => {
@@ -5183,9 +5171,9 @@ let __tla = Promise.all([
5183
5171
  return r[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (_ = (0, import_jsx_runtime.jsx)("div", {
5184
5172
  ref: f
5185
5173
  }), r[8] = _) : _ = r[8], _;
5186
- }, import_compiler_runtime$85 = require_compiler_runtime();
5174
+ }, import_compiler_runtime$83 = require_compiler_runtime();
5187
5175
  const KeyboardHotkeys = (e) => {
5188
- let r = (0, import_compiler_runtime$85.c)(10), { shortcut: c, className: l } = e;
5176
+ let r = (0, import_compiler_runtime$83.c)(10), { shortcut: c, className: l } = e;
5189
5177
  if (c === NOT_SET || c === "") {
5190
5178
  let e2;
5191
5179
  return r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)("span", {}), r[0] = e2) : e2 = r[0], e2;
@@ -5193,7 +5181,7 @@ let __tla = Promise.all([
5193
5181
  let u, d;
5194
5182
  if (r[1] !== l || r[2] !== c) {
5195
5183
  let e2 = c.split("-");
5196
- r[5] === l ? u = r[6] : (u = cn("flex gap-1", l), r[5] = l, r[6] = u), d = e2.map(prettyPrintHotkey).map(_temp$26), r[1] = l, r[2] = c, r[3] = u, r[4] = d;
5184
+ r[5] === l ? u = r[6] : (u = cn("flex gap-1", l), r[5] = l, r[6] = u), d = e2.map(prettyPrintHotkey).map(_temp$25), r[1] = l, r[2] = c, r[3] = u, r[4] = d;
5197
5185
  } else u = r[3], d = r[4];
5198
5186
  let f;
5199
5187
  return r[7] !== u || r[8] !== d ? (f = (0, import_jsx_runtime.jsx)("div", {
@@ -5347,7 +5335,7 @@ let __tla = Promise.all([
5347
5335
  function capitalize$1(e) {
5348
5336
  return e.charAt(0).toUpperCase() + e.slice(1);
5349
5337
  }
5350
- function _temp$26(e) {
5338
+ function _temp$25(e) {
5351
5339
  let [r, c] = e;
5352
5340
  return c ? (0, import_jsx_runtime.jsx)(Tooltip, {
5353
5341
  asChild: false,
@@ -5421,9 +5409,9 @@ let __tla = Promise.all([
5421
5409
  return "success";
5422
5410
  }
5423
5411
  }
5424
- var import_compiler_runtime$84 = require_compiler_runtime();
5412
+ var import_compiler_runtime$82 = require_compiler_runtime();
5425
5413
  const Labeled = (e) => {
5426
- let r = (0, import_compiler_runtime$84.c)(27), { label: c, children: l, align: u, className: d, labelClassName: f, fullWidth: m, id: h } = e, g = u === void 0 ? "left" : u;
5414
+ let r = (0, import_compiler_runtime$82.c)(27), { label: c, children: l, align: u, className: d, labelClassName: f, fullWidth: m, id: h } = e, g = u === void 0 ? "left" : u;
5427
5415
  if (m && (g = "top"), !c) {
5428
5416
  if (g === "top") {
5429
5417
  let e3;
@@ -5467,7 +5455,7 @@ let __tla = Promise.all([
5467
5455
  ]
5468
5456
  }), r[23] = l, r[24] = b, r[25] = j, r[26] = M) : M = r[26], M;
5469
5457
  };
5470
- var import_compiler_runtime$83 = require_compiler_runtime(), CheckboxPlugin = class {
5458
+ var import_compiler_runtime$81 = require_compiler_runtime(), CheckboxPlugin = class {
5471
5459
  constructor() {
5472
5460
  __publicField(this, "tagName", "marimo-checkbox");
5473
5461
  __publicField(this, "validator", object({
@@ -5482,7 +5470,7 @@ let __tla = Promise.all([
5482
5470
  });
5483
5471
  }
5484
5472
  }, CheckboxComponent = (e) => {
5485
- let r = (0, import_compiler_runtime$83.c)(11), { value: c, setValue: l, data: u } = e, d;
5473
+ let r = (0, import_compiler_runtime$81.c)(11), { value: c, setValue: l, data: u } = e, d;
5486
5474
  r[0] === l ? d = r[1] : (d = (e2) => {
5487
5475
  e2 !== "indeterminate" && l(e2);
5488
5476
  }, r[0] = l, r[1] = d);
@@ -5501,7 +5489,7 @@ let __tla = Promise.all([
5501
5489
  id: p,
5502
5490
  children: m
5503
5491
  }), r[7] = u.label, r[8] = p, r[9] = m, r[10] = h) : h = r[10], h;
5504
- }, import_compiler_runtime$82 = require_compiler_runtime(), CodeEditorPlugin = class {
5492
+ }, import_compiler_runtime$80 = require_compiler_runtime(), CodeEditorPlugin = class {
5505
5493
  constructor() {
5506
5494
  __publicField(this, "tagName", "marimo-code-editor");
5507
5495
  __publicField(this, "validator", object({
@@ -5531,7 +5519,7 @@ let __tla = Promise.all([
5531
5519
  });
5532
5520
  }
5533
5521
  }, CodeEditorComponent = (e) => {
5534
- let r = (0, import_compiler_runtime$82.c)(34), { theme: c } = useTheme(), l = e.theme || c, u = e.minHeight ? `${e.minHeight}px` : "70px", d = e.maxHeight ? `${e.maxHeight}px` : void 0, [f, p] = (0, import_react.useState)(e.value), m = Number.isFinite(e.debounce) ? e.debounce : 0, h = !Number.isFinite(e.debounce), g;
5522
+ let r = (0, import_compiler_runtime$80.c)(34), { theme: c } = useTheme(), l = e.theme || c, u = e.minHeight ? `${e.minHeight}px` : "70px", d = e.maxHeight ? `${e.maxHeight}px` : void 0, [f, p] = (0, import_react.useState)(e.value), m = Number.isFinite(e.debounce) ? e.debounce : 0, h = !Number.isFinite(e.debounce), g;
5535
5523
  r[0] !== e.setValue || r[1] !== e.value || r[2] !== m || r[3] !== h ? (g = {
5536
5524
  initialValue: e.value,
5537
5525
  delay: m,
@@ -5602,7 +5590,7 @@ let __tla = Promise.all([
5602
5590
  };
5603
5591
  }
5604
5592
  };
5605
- var LazyChatbot = import_react.lazy(() => import("./chat-ui-BDI3FMI8.js").then((e) => ({
5593
+ var LazyChatbot = import_react.lazy(() => import("./chat-ui-ChD4VvCo.js").then((e) => ({
5606
5594
  default: e.Chatbot
5607
5595
  }))), messageSchema = array(object({
5608
5596
  id: string(),
@@ -5641,9 +5629,13 @@ let __tla = Promise.all([
5641
5629
  index: number()
5642
5630
  })).output(_null()),
5643
5631
  send_prompt: rpc.input(object({
5632
+ request_id: string(),
5644
5633
  messages: messageSchema,
5645
5634
  config: configSchema
5646
- })).output(unknown())
5635
+ })).output(unknown()),
5636
+ cancel_prompt: rpc.input(object({
5637
+ request_id: string()
5638
+ })).output(_null())
5647
5639
  }).renderer((e) => {
5648
5640
  var _a3;
5649
5641
  return (0, import_jsx_runtime.jsx)(import_react.Suspense, {
@@ -5658,6 +5650,7 @@ let __tla = Promise.all([
5658
5650
  delete_chat_history: e.functions.delete_chat_history,
5659
5651
  delete_chat_message: e.functions.delete_chat_message,
5660
5652
  send_prompt: e.functions.send_prompt,
5653
+ cancel_prompt: e.functions.cancel_prompt,
5661
5654
  value: ((_a3 = e.value) == null ? void 0 : _a3.messages) || Arrays.EMPTY,
5662
5655
  setValue: (r) => e.setValue({
5663
5656
  messages: r
@@ -5666,9 +5659,9 @@ let __tla = Promise.all([
5666
5659
  })
5667
5660
  });
5668
5661
  });
5669
- var dist_default = '.marimo .gdg-r17m35ur{background-color:var(--gdg-bg-header-has-focus);box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);font:var(--gdg-header-font-style)var(--gdg-font-family);min-height:var(--r17m35ur-0);border:none;border-radius:9px;outline:none;flex-grow:1;padding:0 8px}.marimo .gdg-c1tqibwd{background-color:var(--gdg-bg-header);align-items:center;padding:0 8px}.marimo .gdg-c1tqibwd,.marimo .gdg-d19meir1{display:flex}.marimo .gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);left:var(--d19meir1-1);max-height:calc(100vh - var(--d19meir1-4));max-width:400px;min-height:var(--d19meir1-3);min-width:var(--d19meir1-2);text-align:start;top:var(--d19meir1-0);flex-direction:column;width:max-content;position:absolute;overflow:hidden}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0}to{opacity:1}}.marimo .gdg-d19meir1.gdg-style{background-color:var(--gdg-bg-cell);box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626;border-radius:2px;animation:60ms glide_fade_in-gdg-d19meir1}.marimo .gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5)8.5px 3px}.marimo .gdg-d19meir1 .gdg-clip-region{border-radius:2px;flex-direction:column;flex-grow:1;display:flex;overflow:hidden auto}.marimo .gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.marimo .gdg-d19meir1 .gdg-clip-region input.gdg-input{border:0;outline:none;width:100%}.marimo .gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:0;outline:none}.marimo .gdg-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto}.marimo .gdg-b1ygi5by,.marimo .gdg-b1ygi5by .boe-bubble{display:flex}.marimo .gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,10px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:20px;margin:2px;padding:0 8px}.marimo .gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-u1rrojo{align-items:center;min-height:21px;display:flex}.marimo .gdg-u1rrojo,.marimo .gdg-u1rrojo .gdg-link-area{flex-grow:1}.marimo .gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;text-decoration:underline!important}.marimo .gdg-u1rrojo .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex}.marimo .gdg-u1rrojo .gdg-edit-icon>*{width:24px;height:24px}.marimo .gdg-u1rrojo textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-n15fjm3e{color:var(--gdg-text-dark);margin:6px 0 3px;display:flex}.marimo .gdg-n15fjm3e>input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.marimo .gdg-i2iowwq,.marimo .gdg-i2iowwq .gdg-centering-container{height:100%;display:flex}.marimo .gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center}.marimo .gdg-i2iowwq .gdg-centering-container canvas,.marimo .gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;user-select:none}.marimo .gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.marimo .gdg-i2iowwq .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:absolute;top:12px;right:0}.marimo .gdg-i2iowwq .gdg-edit-icon>*{width:24px;height:24px}.marimo .gdg-i2iowwq textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-m1pnx84e{min-width:var(--m1pnx84e-0);-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;width:100%;color:var(--gdg-text-dark);justify-content:space-between;align-items:flex-start;display:flex;position:relative}.marimo .gdg-m1pnx84e .gdg-g1y0xocz{flex-shrink:1;min-width:0}.marimo .gdg-m1pnx84e .gdg-spacer{flex:1}.marimo .gdg-m1pnx84e .gdg-edit-icon{cursor:pointer;color:var(--gdg-accent-color);width:24px;height:24px;-webkit-transition:all "0.125s ease";transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.marimo .gdg-m1pnx84e .gdg-edit-icon>*{width:16px;height:16px}.marimo .gdg-m1pnx84e .gdg-edit-hover:hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.marimo .gdg-m1pnx84e .gdg-checkmark-hover:hover{background-color:var(--gdg-accent-color);color:#fff}.marimo .gdg-m1pnx84e .gdg-md-edit-textarea{opacity:0;width:0;height:0;margin-top:25px;padding:0;position:relative;top:0;left:0}.marimo .gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.marimo .gdg-d4zsq0x{flex-wrap:wrap}.marimo .gdg-d4zsq0x,.marimo .gdg-d4zsq0x .doe-bubble{display:flex}.marimo .gdg-d4zsq0x .doe-bubble{background-color:var(--gdg-bg-cell);border-radius:var(--gdg-rounding-radius,6px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:24px;margin:2px;padding:0 8px;box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666}.marimo .gdg-d4zsq0x .doe-bubble img{object-fit:contain;height:16px;margin-right:4px}.marimo .gdg-d4zsq0x textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);transform:translateZ(0)}.marimo .gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.marimo .gdg-s1dgczr6 .dvn-scroll-inner{pointer-events:none;display:flex}.marimo .gdg-s1dgczr6 .dvn-scroll-inner>*{flex-shrink:0}.marimo .gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.marimo .gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{flex-direction:column;display:flex}.marimo .gdg-s1dgczr6 .dvn-underlay>*{position:absolute;top:0;left:0}.marimo .gdg-s1dgczr6 canvas{outline:none}.marimo .gdg-s1dgczr6 canvas *{height:0}.marimo .gdg-izpuzkl{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);resize:none;white-space:pre-wrap;-webkit-text-fill-color:var(--gdg-text-dark);width:100%;min-width:100%;height:100%;color:var(--gdg-text-dark);background-color:#0000;border:0;border-radius:0;margin:0;padding:0;line-height:16px;position:absolute;inset:0;overflow:hidden}.marimo .gdg-izpuzkl::-webkit-input-placeholder{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl:-ms-placeholder-shown{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.marimo .gdg-invalid .gdg-izpuzkl{text-decoration:underline #d60606}.marimo .gdg-s69h75o{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);width:max-content;min-width:100%;max-width:100%;margin:0;padding:0 0 2px;line-height:16px}.marimo .gdg-g1y0xocz{margin-top:6px;position:relative}.marimo .gdg-wmyidgi{height:var(--wmyidgi-1);min-width:10px;max-width:100%;min-height:10px;max-height:100%;width:var(--wmyidgi-0);direction:ltr;position:relative;overflow:clip}.marimo .gdg-wmyidgi>:first-child{width:100%;height:100%;position:absolute;top:0;left:0}.marimo .gdg-seveqep{background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);border-radius:6px;padding:8px;animation:.15s forwards gdg-search-fadein-gdg-seveqep;position:absolute;top:4px;right:20px}.marimo .gdg-seveqep.out{animation:.15s forwards gdg-search-fadeout-gdg-seveqep}.marimo .gdg-seveqep .gdg-search-bar-inner{display:flex}.marimo .gdg-seveqep .gdg-search-status{padding-top:4px;font-size:11px}.marimo .gdg-seveqep .gdg-search-progress{background-color:var(--gdg-text-light);height:4px;position:absolute;bottom:0;left:0}.marimo .gdg-seveqep input{background-color:var(--gdg-bg-cell);color:var(--gdg-textDark);border:0;outline:none;width:220px}.marimo .gdg-seveqep button{width:24px;height:24px;color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:0;display:flex}.marimo .gdg-seveqep button:hover{color:var(--gdg-text-dark)}.marimo .gdg-seveqep button .button-icon{width:16px;height:16px}.marimo .gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@keyframes gdg-search-fadeout-gdg-seveqep{0%{transform:translate(0)}to{transform:translate(400px)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{transform:translate(400px)}to{transform:translate(0)}}.marimo .gdg-mnuv029{word-break:break-word;-webkit-touch-callout:default;padding-top:6px}.marimo .gdg-mnuv029>*{margin:0}.marimo .gdg-mnuv029 :last-child{margin-bottom:0}.marimo .gdg-mnuv029 p img{width:100%}', import_compiler_runtime$81 = require_compiler_runtime();
5662
+ var dist_default = '.marimo .gdg-r17m35ur{background-color:var(--gdg-bg-header-has-focus);box-shadow:0 0 0 1px var(--gdg-border-color);color:var(--gdg-text-group-header);font:var(--gdg-header-font-style)var(--gdg-font-family);min-height:var(--r17m35ur-0);border:none;border-radius:9px;outline:none;flex-grow:1;padding:0 8px}.marimo .gdg-c1tqibwd{background-color:var(--gdg-bg-header);align-items:center;padding:0 8px}.marimo .gdg-c1tqibwd,.marimo .gdg-d19meir1{display:flex}.marimo .gdg-d19meir1{box-sizing:border-box;--overlay-top:var(--d19meir1-0);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);left:var(--d19meir1-1);max-height:calc(100vh - var(--d19meir1-4));max-width:400px;min-height:var(--d19meir1-3);min-width:var(--d19meir1-2);text-align:start;top:var(--d19meir1-0);flex-direction:column;width:max-content;position:absolute;overflow:hidden}@keyframes glide_fade_in-gdg-d19meir1{0%{opacity:0}to{opacity:1}}.marimo .gdg-d19meir1.gdg-style{background-color:var(--gdg-bg-cell);box-shadow:0 0 0 1px var(--gdg-accent-color),0 0 1px #3e415666,0 6px 12px #3e415626;border-radius:2px;animation:60ms glide_fade_in-gdg-d19meir1}.marimo .gdg-d19meir1.gdg-pad{padding:var(--d19meir1-5)8.5px 3px}.marimo .gdg-d19meir1 .gdg-clip-region{border-radius:2px;flex-direction:column;flex-grow:1;display:flex;overflow:hidden auto}.marimo .gdg-d19meir1 .gdg-clip-region .gdg-growing-entry{height:100%}.marimo .gdg-d19meir1 .gdg-clip-region input.gdg-input{border:0;outline:none;width:100%}.marimo .gdg-d19meir1 .gdg-clip-region textarea.gdg-input{border:0;outline:none}.marimo .gdg-b1ygi5by{flex-wrap:wrap;margin-top:auto;margin-bottom:auto}.marimo .gdg-b1ygi5by,.marimo .gdg-b1ygi5by .boe-bubble{display:flex}.marimo .gdg-b1ygi5by .boe-bubble{background-color:var(--gdg-bg-bubble);border-radius:var(--gdg-rounding-radius,10px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:20px;margin:2px;padding:0 8px}.marimo .gdg-b1ygi5by textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-u1rrojo{align-items:center;min-height:21px;display:flex}.marimo .gdg-u1rrojo,.marimo .gdg-u1rrojo .gdg-link-area{flex-grow:1}.marimo .gdg-u1rrojo .gdg-link-area{color:var(--gdg-link-color);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;margin-right:8px;overflow:hidden;-webkit-text-decoration:underline!important;text-decoration:underline!important}.marimo .gdg-u1rrojo .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:32px;display:flex}.marimo .gdg-u1rrojo .gdg-edit-icon>*{width:24px;height:24px}.marimo .gdg-u1rrojo textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-n15fjm3e{color:var(--gdg-text-dark);margin:6px 0 3px;display:flex}.marimo .gdg-n15fjm3e>input{background-color:var(--gdg-bg-cell);color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);padding:0}.marimo .gdg-i2iowwq,.marimo .gdg-i2iowwq .gdg-centering-container{height:100%;display:flex}.marimo .gdg-i2iowwq .gdg-centering-container{justify-content:center;align-items:center}.marimo .gdg-i2iowwq .gdg-centering-container canvas,.marimo .gdg-i2iowwq .gdg-centering-container img{max-height:calc(100vh - var(--overlay-top) - 20px);object-fit:contain;user-select:none}.marimo .gdg-i2iowwq .gdg-centering-container canvas{max-width:380px}.marimo .gdg-i2iowwq .gdg-edit-icon{color:var(--gdg-accent-color);cursor:pointer;justify-content:center;align-items:center;width:48px;height:48px;display:flex;position:absolute;top:12px;right:0}.marimo .gdg-i2iowwq .gdg-edit-icon>*{width:24px;height:24px}.marimo .gdg-i2iowwq textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-m1pnx84e{min-width:var(--m1pnx84e-0);-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;width:100%;color:var(--gdg-text-dark);justify-content:space-between;align-items:flex-start;display:flex;position:relative}.marimo .gdg-m1pnx84e .gdg-g1y0xocz{flex-shrink:1;min-width:0}.marimo .gdg-m1pnx84e .gdg-spacer{flex:1}.marimo .gdg-m1pnx84e .gdg-edit-icon{cursor:pointer;color:var(--gdg-accent-color);width:24px;height:24px;-webkit-transition:all "0.125s ease";transition:all "0.125s ease";border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative}.marimo .gdg-m1pnx84e .gdg-edit-icon>*{width:16px;height:16px}.marimo .gdg-m1pnx84e .gdg-edit-hover:hover{background-color:var(--gdg-accent-light);transition:background-color .15s}.marimo .gdg-m1pnx84e .gdg-checkmark-hover:hover{background-color:var(--gdg-accent-color);color:#fff}.marimo .gdg-m1pnx84e .gdg-md-edit-textarea{opacity:0;width:0;height:0;margin-top:25px;padding:0;position:relative;top:0;left:0}.marimo .gdg-m1pnx84e .gdg-ml-6{margin-left:6px}.marimo .gdg-d4zsq0x{flex-wrap:wrap}.marimo .gdg-d4zsq0x,.marimo .gdg-d4zsq0x .doe-bubble{display:flex}.marimo .gdg-d4zsq0x .doe-bubble{background-color:var(--gdg-bg-cell);border-radius:var(--gdg-rounding-radius,6px);color:var(--gdg-text-dark);justify-content:center;align-items:center;height:24px;margin:2px;padding:0 8px;box-shadow:0 0 1px #3e415666,0 1px 3px #3e415666}.marimo .gdg-d4zsq0x .doe-bubble img{object-fit:contain;height:16px;margin-right:4px}.marimo .gdg-d4zsq0x textarea{opacity:0;width:0;height:0;position:absolute;top:0;left:0}.marimo .gdg-s1dgczr6 .dvn-scroller{overflow:var(--s1dgczr6-0);transform:translateZ(0)}.marimo .gdg-s1dgczr6 .dvn-hidden{visibility:hidden}.marimo .gdg-s1dgczr6 .dvn-scroll-inner{pointer-events:none;display:flex}.marimo .gdg-s1dgczr6 .dvn-scroll-inner>*{flex-shrink:0}.marimo .gdg-s1dgczr6 .dvn-scroll-inner .dvn-spacer{flex-grow:1}.marimo .gdg-s1dgczr6 .dvn-scroll-inner .dvn-stack{flex-direction:column;display:flex}.marimo .gdg-s1dgczr6 .dvn-underlay>*{position:absolute;top:0;left:0}.marimo .gdg-s1dgczr6 canvas{outline:none}.marimo .gdg-s1dgczr6 canvas *{height:0}.marimo .gdg-izpuzkl{font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);resize:none;white-space:pre-wrap;-webkit-text-fill-color:var(--gdg-text-dark);width:100%;min-width:100%;height:100%;color:var(--gdg-text-dark);background-color:#0000;border:0;border-radius:0;margin:0;padding:0;line-height:16px;position:absolute;inset:0;overflow:hidden}.marimo .gdg-izpuzkl::-webkit-input-placeholder{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl:-ms-placeholder-shown{color:var(--gdg-text-light)}.marimo .gdg-izpuzkl::placeholder{color:var(--gdg-text-light)}.marimo .gdg-invalid .gdg-izpuzkl{text-decoration:underline #d60606}.marimo .gdg-s69h75o{visibility:hidden;white-space:pre-wrap;word-wrap:break-word;color:var(--gdg-text-dark);font-family:var(--gdg-font-family);font-size:var(--gdg-editor-font-size);width:max-content;min-width:100%;max-width:100%;margin:0;padding:0 0 2px;line-height:16px}.marimo .gdg-g1y0xocz{margin-top:6px;position:relative}.marimo .gdg-wmyidgi{height:var(--wmyidgi-1);min-width:10px;max-width:100%;min-height:10px;max-height:100%;width:var(--wmyidgi-0);direction:ltr;position:relative;overflow:clip}.marimo .gdg-wmyidgi>:first-child{width:100%;height:100%;position:absolute;top:0;left:0}.marimo .gdg-seveqep{background-color:var(--gdg-bg-cell);border:1px solid var(--gdg-border-color);color:var(--gdg-text-dark);font-size:var(--gdg-editor-font-size);border-radius:6px;padding:8px;animation:.15s forwards gdg-search-fadein-gdg-seveqep;position:absolute;top:4px;right:20px}.marimo .gdg-seveqep.out{animation:.15s forwards gdg-search-fadeout-gdg-seveqep}.marimo .gdg-seveqep .gdg-search-bar-inner{display:flex}.marimo .gdg-seveqep .gdg-search-status{padding-top:4px;font-size:11px}.marimo .gdg-seveqep .gdg-search-progress{background-color:var(--gdg-text-light);height:4px;position:absolute;bottom:0;left:0}.marimo .gdg-seveqep input{background-color:var(--gdg-bg-cell);color:var(--gdg-textDark);border:0;outline:none;width:220px}.marimo .gdg-seveqep button{width:24px;height:24px;color:var(--gdg-text-medium);cursor:pointer;background:0 0;border:none;outline:none;justify-content:center;align-items:center;padding:0;display:flex}.marimo .gdg-seveqep button:hover{color:var(--gdg-text-dark)}.marimo .gdg-seveqep button .button-icon{width:16px;height:16px}.marimo .gdg-seveqep button:disabled{opacity:.4;pointer-events:none}@keyframes gdg-search-fadeout-gdg-seveqep{0%{transform:translate(0)}to{transform:translate(400px)}}@keyframes gdg-search-fadein-gdg-seveqep{0%{transform:translate(400px)}to{transform:translate(0)}}.marimo .gdg-mnuv029{word-break:break-word;-webkit-touch-callout:default;padding-top:6px}.marimo .gdg-mnuv029>*{margin:0}.marimo .gdg-mnuv029 :last-child{margin-bottom:0}.marimo .gdg-mnuv029 p img{width:100%}', import_compiler_runtime$79 = require_compiler_runtime();
5670
5663
  const LoadingTable = (e) => {
5671
- let r = (0, import_compiler_runtime$81.c)(14), { wrapperClassName: c, className: l, pageSize: u } = e, d = u === void 0 ? 10 : u, f;
5664
+ let r = (0, import_compiler_runtime$79.c)(14), { wrapperClassName: c, className: l, pageSize: u } = e, d = u === void 0 ? 10 : u, f;
5672
5665
  r[0] === c ? f = r[1] : (f = cn(c, "flex flex-col space-y-2"), r[0] = c, r[1] = f);
5673
5666
  let m = l || "rounded-md border", h;
5674
5667
  r[2] === m ? h = r[3] : (h = cn(m), r[2] = m, r[3] = h);
@@ -5676,7 +5669,7 @@ let __tla = Promise.all([
5676
5669
  r[4] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (g = (0, import_jsx_runtime.jsx)(TableHeader, {
5677
5670
  children: Array.from({
5678
5671
  length: 1
5679
- }).map(_temp2$17)
5672
+ }).map(_temp2$16)
5680
5673
  }), r[4] = g) : g = r[4];
5681
5674
  let _;
5682
5675
  r[5] === d ? _ = r[6] : (_ = (0, import_jsx_runtime.jsxs)(Table, {
@@ -5708,18 +5701,18 @@ let __tla = Promise.all([
5708
5701
  ]
5709
5702
  }), r[11] = f, r[12] = v, r[13] = b) : b = r[13], b;
5710
5703
  };
5711
- function _temp$25(e, r) {
5704
+ function _temp$24(e, r) {
5712
5705
  return (0, import_jsx_runtime.jsx)(TableHead, {
5713
5706
  children: (0, import_jsx_runtime.jsx)("div", {
5714
5707
  className: "h-4 bg-(--slate-5) animate-pulse rounded-md w-[70%]"
5715
5708
  })
5716
5709
  }, r);
5717
5710
  }
5718
- function _temp2$17(e, r) {
5711
+ function _temp2$16(e, r) {
5719
5712
  return (0, import_jsx_runtime.jsx)(TableRow, {
5720
5713
  children: Array.from({
5721
5714
  length: 8
5722
- }).map(_temp$25)
5715
+ }).map(_temp$24)
5723
5716
  }, r);
5724
5717
  }
5725
5718
  function _temp3$13(e, r) {
@@ -5746,7 +5739,7 @@ let __tla = Promise.all([
5746
5739
  "time",
5747
5740
  "unknown"
5748
5741
  ];
5749
- var import_compiler_runtime$80 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-DqRY9naW.js").then(async (m) => {
5742
+ var import_compiler_runtime$78 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-BOmK9ETQ.js").then(async (m) => {
5750
5743
  await m.__tla;
5751
5744
  return m;
5752
5745
  }));
@@ -5791,7 +5784,7 @@ let __tla = Promise.all([
5791
5784
  editableColumns: e.data.editableColumns
5792
5785
  }));
5793
5786
  var LoadingDataEditor = (e) => {
5794
- let r = (0, import_compiler_runtime$80.c)(31), c;
5787
+ let r = (0, import_compiler_runtime$78.c)(31), c;
5795
5788
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = [], r[0] = c) : c = r[0];
5796
5789
  let [l, u] = (0, import_react.useState)(c), d;
5797
5790
  r[1] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = /* @__PURE__ */ new Map(), r[1] = d) : d = r[1];
@@ -5867,7 +5860,7 @@ let __tla = Promise.all([
5867
5860
  let y, b, S, w;
5868
5861
  r[15] === e ? (y = r[16], b = r[17], S = r[18], w = r[19]) : (y = (r2) => {
5869
5862
  e.onEdits((e2) => {
5870
- let c2 = r2.map(_temp$24);
5863
+ let c2 = r2.map(_temp$23);
5871
5864
  return {
5872
5865
  ...e2,
5873
5866
  edits: [
@@ -5928,7 +5921,7 @@ let __tla = Promise.all([
5928
5921
  onAddColumn: w
5929
5922
  }), r[20] = f, r[21] = l, r[22] = e.editableColumns, r[23] = e.edits.edits, r[24] = _, r[25] = v, r[26] = y, r[27] = b, r[28] = S, r[29] = w, r[30] = T) : T = r[30], T;
5930
5923
  };
5931
- function _temp$24(e, r) {
5924
+ function _temp$23(e, r) {
5932
5925
  return {
5933
5926
  rowIdx: e - r,
5934
5927
  type: BulkEdit.Remove
@@ -7466,8 +7459,8 @@ let __tla = Promise.all([
7466
7459
  f.height
7467
7460
  ]);
7468
7461
  }
7469
- var import_compiler_runtime$79 = require_compiler_runtime(), Form$1 = FormProvider, FormFieldContext = import_react.createContext({}), FormField = (e) => {
7470
- let r = (0, import_compiler_runtime$79.c)(10), c;
7462
+ var import_compiler_runtime$77 = require_compiler_runtime(), Form$1 = FormProvider, FormFieldContext = import_react.createContext({}), FormField = (e) => {
7463
+ let r = (0, import_compiler_runtime$77.c)(10), c;
7471
7464
  r[0] === e ? c = r[1] : ({ ...c } = e, r[0] = e, r[1] = c);
7472
7465
  let l;
7473
7466
  r[2] === c.name ? l = r[3] : (l = {
@@ -7483,7 +7476,7 @@ let __tla = Promise.all([
7483
7476
  children: u
7484
7477
  }, c.name), r[6] = c.name, r[7] = l, r[8] = u, r[9] = d) : d = r[9], d;
7485
7478
  }, useFormField = () => {
7486
- let e = (0, import_compiler_runtime$79.c)(11), r = import_react.use(FormFieldContext), c = import_react.use(FormItemContext), { getFieldState: l, formState: u } = useFormContext(), d;
7479
+ let e = (0, import_compiler_runtime$77.c)(11), r = import_react.use(FormFieldContext), c = import_react.use(FormItemContext), { getFieldState: l, formState: u } = useFormContext(), d;
7487
7480
  e[0] !== r.name || e[1] !== u || e[2] !== l ? (d = l(r.name, u), e[0] = r.name, e[1] = u, e[2] = l, e[3] = d) : d = e[3];
7488
7481
  let f = d;
7489
7482
  if (!r) throw Error("useFormField should be used within <FormField>");
@@ -7497,7 +7490,7 @@ let __tla = Promise.all([
7497
7490
  ...f
7498
7491
  }, e[4] = r.name, e[5] = f, e[6] = p, e[7] = m, e[8] = h, e[9] = g, e[10] = _) : _ = e[10], _;
7499
7492
  }, FormItemContext = import_react.createContext({}), FormItem = import_react.forwardRef((e, r) => {
7500
- let c = (0, import_compiler_runtime$79.c)(14), l, u;
7493
+ let c = (0, import_compiler_runtime$77.c)(14), l, u;
7501
7494
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
7502
7495
  let d = import_react.useId(), f;
7503
7496
  c[3] === d ? f = c[4] : (f = {
@@ -7519,7 +7512,7 @@ let __tla = Promise.all([
7519
7512
  });
7520
7513
  FormItem.displayName = "FormItem";
7521
7514
  var FormLabel = import_react.forwardRef((e, r) => {
7522
- let c = (0, import_compiler_runtime$79.c)(11), l, u;
7515
+ let c = (0, import_compiler_runtime$77.c)(11), l, u;
7523
7516
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
7524
7517
  let { error: d, formItemId: f } = useFormField();
7525
7518
  if (!u.children) return;
@@ -7535,7 +7528,7 @@ let __tla = Promise.all([
7535
7528
  });
7536
7529
  FormLabel.displayName = "FormLabel";
7537
7530
  var FormControl = import_react.forwardRef((e, r) => {
7538
- let c = (0, import_compiler_runtime$79.c)(8), l;
7531
+ let c = (0, import_compiler_runtime$77.c)(8), l;
7539
7532
  c[0] === e ? l = c[1] : ({ ...l } = e, c[0] = e, c[1] = l);
7540
7533
  let { error: u, formItemId: d, formDescriptionId: f, formMessageId: p } = useFormField(), m = u ? `${f} ${p}` : f, h = !!u, g;
7541
7534
  return c[2] !== d || c[3] !== l || c[4] !== r || c[5] !== m || c[6] !== h ? (g = (0, import_jsx_runtime.jsx)(Slot, {
@@ -7548,7 +7541,7 @@ let __tla = Promise.all([
7548
7541
  });
7549
7542
  FormControl.displayName = "FormControl";
7550
7543
  var FormDescription = import_react.forwardRef((e, r) => {
7551
- let c = (0, import_compiler_runtime$79.c)(10), l, u;
7544
+ let c = (0, import_compiler_runtime$77.c)(10), l, u;
7552
7545
  c[0] === e ? (l = c[1], u = c[2]) : ({ className: l, ...u } = e, c[0] = e, c[1] = l, c[2] = u);
7553
7546
  let { formDescriptionId: d } = useFormField();
7554
7547
  if (!u.children) return null;
@@ -7564,7 +7557,7 @@ let __tla = Promise.all([
7564
7557
  });
7565
7558
  FormDescription.displayName = "FormDescription";
7566
7559
  var FormMessage = import_react.forwardRef((e, r) => {
7567
- let c = (0, import_compiler_runtime$79.c)(12), l, u, d;
7560
+ let c = (0, import_compiler_runtime$77.c)(12), l, u, d;
7568
7561
  c[0] === e ? (l = c[1], u = c[2], d = c[3]) : ({ className: u, children: l, ...d } = e, c[0] = e, c[1] = l, c[2] = u, c[3] = d);
7569
7562
  let { error: f, formMessageId: m } = useFormField(), h = (f == null ? void 0 : f.message) ? String(f == null ? void 0 : f.message) : l;
7570
7563
  if (!h) return null;
@@ -7581,7 +7574,7 @@ let __tla = Promise.all([
7581
7574
  });
7582
7575
  FormMessage.displayName = "FormMessage";
7583
7576
  var FormMessageTooltip = (e) => {
7584
- let r = (0, import_compiler_runtime$79.c)(7), { className: c } = e, { error: l } = useFormField(), u = (l == null ? void 0 : l.message) ? String(l == null ? void 0 : l.message) : null;
7577
+ let r = (0, import_compiler_runtime$77.c)(7), { className: c } = e, { error: l } = useFormField(), u = (l == null ? void 0 : l.message) ? String(l == null ? void 0 : l.message) : null;
7585
7578
  if (!u) return null;
7586
7579
  let d;
7587
7580
  r[0] === c ? d = r[1] : (d = cn("stroke-[1.8px]", c), r[0] = c, r[1] = d);
@@ -7739,9 +7732,9 @@ ${c}
7739
7732
  saveForm: Functions.NOOP,
7740
7733
  chartType: ChartType.LINE
7741
7734
  }), useChartFormContext = () => (0, import_react.use)(ChartFormContext);
7742
- var import_compiler_runtime$78 = require_compiler_runtime();
7735
+ var import_compiler_runtime$76 = require_compiler_runtime();
7743
7736
  function useBoolean(e) {
7744
- let r = (0, import_compiler_runtime$78.c)(6), [c, l] = (0, import_react.useState)(e), u;
7737
+ let r = (0, import_compiler_runtime$76.c)(6), [c, l] = (0, import_react.useState)(e), u;
7745
7738
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = (e2) => {
7746
7739
  var _a3;
7747
7740
  (_a3 = e2 == null ? void 0 : e2.stopPropagation) == null ? void 0 : _a3.call(e2), l(true);
@@ -7754,7 +7747,7 @@ ${c}
7754
7747
  let f;
7755
7748
  r[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = (e2) => {
7756
7749
  var _a3;
7757
- (_a3 = e2 == null ? void 0 : e2.stopPropagation) == null ? void 0 : _a3.call(e2), l(_temp$23);
7750
+ (_a3 = e2 == null ? void 0 : e2.stopPropagation) == null ? void 0 : _a3.call(e2), l(_temp$22);
7758
7751
  }, r[2] = f) : f = r[2];
7759
7752
  let p;
7760
7753
  r[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (p = {
@@ -7768,11 +7761,11 @@ ${c}
7768
7761
  p
7769
7762
  ], r[4] = c, r[5] = m), m;
7770
7763
  }
7771
- function _temp$23(e) {
7764
+ function _temp$22(e) {
7772
7765
  return !e;
7773
7766
  }
7774
- var import_compiler_runtime$77 = require_compiler_runtime(), Slider = import_react.forwardRef((e, r) => {
7775
- let c = (0, import_compiler_runtime$77.c)(25), { className: l, valueMap: u, ...d } = e, [f, m] = useBoolean(false), { locale: h } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), g = dist_exports$1, _;
7767
+ var import_compiler_runtime$75 = require_compiler_runtime(), Slider = import_react.forwardRef((e, r) => {
7768
+ let c = (0, import_compiler_runtime$75.c)(25), { className: l, valueMap: u, ...d } = e, [f, m] = useBoolean(false), { locale: h } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), g = dist_exports$1, _;
7776
7769
  c[0] === l ? _ = c[1] : (_ = cn("relative flex touch-none select-none hover:cursor-pointer", "data-[orientation=horizontal]:w-full data-[orientation=horizontal]:items-center", "data-[orientation=vertical]:h-full data-[orientation=vertical]:justify-center", "data-disabled:cursor-not-allowed", l), c[0] = l, c[1] = _);
7777
7770
  let v;
7778
7771
  c[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (v = cn("relative grow overflow-hidden rounded-full bg-slate-200 dark:bg-accent/60", "data-[orientation=horizontal]:h-2 data-[orientation=horizontal]:w-full", "data-[orientation=vertical]:h-full data-[orientation=vertical]:w-2"), c[2] = v) : v = c[2];
@@ -10676,7 +10669,7 @@ ${c}
10676
10669
  function multiselectFilterFn(e, r) {
10677
10670
  return r.split(/\s+/).every((r2) => e.toLowerCase().includes(r2.toLowerCase())) ? 1 : 0;
10678
10671
  }
10679
- var import_compiler_runtime$76 = require_compiler_runtime(), MultiselectPlugin = class {
10672
+ var import_compiler_runtime$74 = require_compiler_runtime(), MultiselectPlugin = class {
10680
10673
  constructor() {
10681
10674
  __publicField(this, "tagName", "marimo-multiselect");
10682
10675
  __publicField(this, "validator", object({
@@ -10697,7 +10690,7 @@ ${c}
10697
10690
  }
10698
10691
  }, SELECT_ALL_KEY = "__select_all__", DESELECT_ALL_KEY = "__deselect_all__";
10699
10692
  const Multiselect = (e) => {
10700
- let r = (0, import_compiler_runtime$76.c)(46), { options: c, label: l, value: u, setValue: d, fullWidth: f, maxSelections: m, disabled: h } = e, g = (0, import_react.useId)(), [_, v] = (0, import_react.useState)(""), y;
10693
+ let r = (0, import_compiler_runtime$74.c)(46), { options: c, label: l, value: u, setValue: d, fullWidth: f, maxSelections: m, disabled: h } = e, g = (0, import_react.useId)(), [_, v] = (0, import_react.useState)(""), y;
10701
10694
  bb0: {
10702
10695
  if (!_) {
10703
10696
  y = c;
@@ -10716,7 +10709,7 @@ ${c}
10716
10709
  d([]);
10717
10710
  return;
10718
10711
  }
10719
- if (e2 = e2.filter(_temp$22), m === 1) {
10712
+ if (e2 = e2.filter(_temp$21), m === 1) {
10720
10713
  d([
10721
10714
  e2[e2.length - 1]
10722
10715
  ]);
@@ -10779,7 +10772,7 @@ ${c}
10779
10772
  }) : r2;
10780
10773
  }
10781
10774
  });
10782
- let e2 = b.map(_temp2$16);
10775
+ let e2 = b.map(_temp2$15);
10783
10776
  return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
10784
10777
  children: [
10785
10778
  M,
@@ -10815,10 +10808,10 @@ ${c}
10815
10808
  children: B
10816
10809
  }), r[41] = f, r[42] = g, r[43] = l, r[44] = B, r[45] = H) : H = r[45], H;
10817
10810
  };
10818
- function _temp$22(e) {
10811
+ function _temp$21(e) {
10819
10812
  return e !== SELECT_ALL_KEY && e !== DESELECT_ALL_KEY;
10820
10813
  }
10821
- function _temp2$16(e) {
10814
+ function _temp2$15(e) {
10822
10815
  return (0, import_jsx_runtime.jsx)(ComboboxItem, {
10823
10816
  value: e,
10824
10817
  children: e
@@ -10827,9 +10820,9 @@ ${c}
10827
10820
  function _temp3$12(e) {
10828
10821
  return e;
10829
10822
  }
10830
- var import_compiler_runtime$75 = require_compiler_runtime();
10823
+ var import_compiler_runtime$73 = require_compiler_runtime();
10831
10824
  function useAddCodeToNewCell() {
10832
- let e = (0, import_compiler_runtime$75.c)(4), r = useAtomValue(autoInstantiateAtom), c = useLastFocusedCellId(), { createNewCell: l } = useCellActions(), u;
10825
+ let e = (0, import_compiler_runtime$73.c)(4), r = useAtomValue(autoInstantiateAtom), c = useLastFocusedCellId(), { createNewCell: l } = useCellActions(), u;
10833
10826
  return e[0] !== r || e[1] !== l || e[2] !== c ? (u = (e2) => {
10834
10827
  e2.includes("alt") && maybeAddAltairImport({
10835
10828
  autoInstantiate: r,
@@ -10842,7 +10835,7 @@ ${c}
10842
10835
  });
10843
10836
  }, e[0] = r, e[1] = l, e[2] = c, e[3] = u) : u = e[3], u;
10844
10837
  }
10845
- var import_compiler_runtime$74 = require_compiler_runtime(), pythonExtensions = [
10838
+ var import_compiler_runtime$72 = require_compiler_runtime(), pythonExtensions = [
10846
10839
  customPythonLanguageSupport(),
10847
10840
  EditorView.lineWrapping
10848
10841
  ], sqlExtensions = [
@@ -10850,7 +10843,7 @@ ${c}
10850
10843
  EditorView.lineWrapping
10851
10844
  ];
10852
10845
  const ReadonlyCode = (0, import_react.memo)((e) => {
10853
- let r = (0, import_compiler_runtime$74.c)(41), { theme: c } = useTheme(), l, u, d, f, m, h, g, _;
10846
+ let r = (0, import_compiler_runtime$72.c)(41), { theme: c } = useTheme(), l, u, d, f, m, h, g, _;
10854
10847
  r[0] === e ? (l = r[1], u = r[2], d = r[3], f = r[4], m = r[5], h = r[6], g = r[7], _ = r[8]) : ({ code: u, className: l, initiallyHideCode: d, showHideCode: h, showCopyCode: g, insertNewCell: f, language: _, ...m } = e, r[0] = e, r[1] = l, r[2] = u, r[3] = d, r[4] = f, r[5] = m, r[6] = h, r[7] = g, r[8] = _);
10855
10848
  let v = h === void 0 ? true : h, y = g === void 0 ? true : g, b = _ === void 0 ? "python" : _, [S, w] = (0, import_react.useState)(d), T;
10856
10849
  r[9] === l ? T = r[10] : (T = cn("relative hover-actions-parent w-full overflow-hidden", l), r[9] = l, r[10] = T);
@@ -10905,7 +10898,7 @@ ${c}
10905
10898
  });
10906
10899
  ReadonlyCode.displayName = "ReadonlyCode";
10907
10900
  var CopyButton = (e) => {
10908
- let r = (0, import_compiler_runtime$74.c)(5), c;
10901
+ let r = (0, import_compiler_runtime$72.c)(5), c;
10909
10902
  r[0] === e.text ? c = r[1] : (c = Events.stopPropagation(async () => {
10910
10903
  await copyToClipboard(e.text), toast({
10911
10904
  title: "Copied to clipboard"
@@ -10929,7 +10922,7 @@ ${c}
10929
10922
  })
10930
10923
  }), r[3] = l, r[4] = d), d;
10931
10924
  }, EyeCloseButton = (e) => {
10932
- let r = (0, import_compiler_runtime$74.c)(3), c;
10925
+ let r = (0, import_compiler_runtime$72.c)(3), c;
10933
10926
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (0, import_jsx_runtime.jsx)(EyeOff, {
10934
10927
  size: 14,
10935
10928
  strokeWidth: 1.5
@@ -10948,7 +10941,7 @@ ${c}
10948
10941
  }), r[1] = e.onClick, r[2] = l), l;
10949
10942
  };
10950
10943
  const HideCodeButton = (e) => {
10951
- let r = (0, import_compiler_runtime$74.c)(7), c;
10944
+ let r = (0, import_compiler_runtime$72.c)(7), c;
10952
10945
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (0, import_jsx_runtime.jsx)(Eye, {
10953
10946
  className: "hover-action w-5 h-5 text-muted-foreground cursor-pointer absolute left-1/2 top-1/2 transform -translate-x-1/2 -translate-y-1/2 opacity-80 hover:opacity-100 z-20"
10954
10947
  }), r[0] = c) : c = r[0];
@@ -10966,7 +10959,7 @@ ${c}
10966
10959
  }), r[3] = e.className, r[4] = e.onClick, r[5] = l, r[6] = u) : u = r[6], u;
10967
10960
  };
10968
10961
  var InsertNewCell = (e) => {
10969
- let r = (0, import_compiler_runtime$74.c)(6), c = useAddCodeToNewCell(), l;
10962
+ let r = (0, import_compiler_runtime$72.c)(6), c = useAddCodeToNewCell(), l;
10970
10963
  r[0] !== c || r[1] !== e.code ? (l = () => {
10971
10964
  c(e.code);
10972
10965
  }, r[0] = c, r[1] = e.code, r[2] = l) : l = r[2];
@@ -10987,9 +10980,9 @@ ${c}
10987
10980
  children: d
10988
10981
  })
10989
10982
  }), r[4] = u, r[5] = f), f;
10990
- }, import_compiler_runtime$73 = require_compiler_runtime();
10983
+ }, import_compiler_runtime$71 = require_compiler_runtime();
10991
10984
  const Title = (e) => {
10992
- let r = (0, import_compiler_runtime$73.c)(5), { text: c, tooltip: l } = e, u;
10985
+ let r = (0, import_compiler_runtime$71.c)(5), { text: c, tooltip: l } = e, u;
10993
10986
  r[0] === l ? u = r[1] : (u = l && (0, import_jsx_runtime.jsx)(Tooltip, {
10994
10987
  content: l,
10995
10988
  children: (0, import_jsx_runtime.jsx)(Info, {
@@ -11005,7 +10998,7 @@ ${c}
11005
10998
  ]
11006
10999
  }), r[2] = u, r[3] = c, r[4] = d) : d = r[4], d;
11007
11000
  }, TabContainer = (e) => {
11008
- let r = (0, import_compiler_runtime$73.c)(5), { children: c, className: l } = e, u;
11001
+ let r = (0, import_compiler_runtime$71.c)(5), { children: c, className: l } = e, u;
11009
11002
  r[0] === l ? u = r[1] : (u = cn("flex flex-col gap-2", l), r[0] = l, r[1] = u);
11010
11003
  let d;
11011
11004
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)("div", {
@@ -11013,14 +11006,14 @@ ${c}
11013
11006
  children: c
11014
11007
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
11015
11008
  }, FormSectionHorizontalRule = (e) => {
11016
- let r = (0, import_compiler_runtime$73.c)(4), { className: c } = e, l;
11009
+ let r = (0, import_compiler_runtime$71.c)(4), { className: c } = e, l;
11017
11010
  r[0] === c ? l = r[1] : (l = cn("my-1", c), r[0] = c, r[1] = l);
11018
11011
  let u;
11019
11012
  return r[2] === l ? u = r[3] : (u = (0, import_jsx_runtime.jsx)("hr", {
11020
11013
  className: l
11021
11014
  }), r[2] = l, r[3] = u), u;
11022
11015
  }, FieldSection = (e) => {
11023
- let r = (0, import_compiler_runtime$73.c)(5), { children: c, className: l } = e, u;
11016
+ let r = (0, import_compiler_runtime$71.c)(5), { children: c, className: l } = e, u;
11024
11017
  r[0] === l ? u = r[1] : (u = cn("flex flex-col gap-1.5", l), r[0] = l, r[1] = u);
11025
11018
  let d;
11026
11019
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)("section", {
@@ -11028,7 +11021,7 @@ ${c}
11028
11021
  children: c
11029
11022
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
11030
11023
  }, IconWithText = (e) => {
11031
- let r = (0, import_compiler_runtime$73.c)(7), { Icon: c, text: l } = e, u;
11024
+ let r = (0, import_compiler_runtime$71.c)(7), { Icon: c, text: l } = e, u;
11032
11025
  r[0] === c ? u = r[1] : (u = (0, import_jsx_runtime.jsx)(c, {
11033
11026
  className: "w-3 h-3 mr-2"
11034
11027
  }), r[0] = c, r[1] = u);
@@ -11045,7 +11038,7 @@ ${c}
11045
11038
  ]
11046
11039
  }), r[4] = u, r[5] = d, r[6] = f) : f = r[6], f;
11047
11040
  }, AccordionFormTrigger = (e) => {
11048
- let r = (0, import_compiler_runtime$73.c)(5), { children: c, className: l } = e, u;
11041
+ let r = (0, import_compiler_runtime$71.c)(5), { children: c, className: l } = e, u;
11049
11042
  r[0] === l ? u = r[1] : (u = cn("py-1", l), r[0] = l, r[1] = u);
11050
11043
  let d;
11051
11044
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)(AccordionTrigger, {
@@ -11053,14 +11046,14 @@ ${c}
11053
11046
  children: c
11054
11047
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
11055
11048
  }, AccordionFormItem = (e) => {
11056
- let r = (0, import_compiler_runtime$73.c)(3), { children: c, value: l } = e, u;
11049
+ let r = (0, import_compiler_runtime$71.c)(3), { children: c, value: l } = e, u;
11057
11050
  return r[0] !== c || r[1] !== l ? (u = (0, import_jsx_runtime.jsx)(AccordionItem, {
11058
11051
  value: l,
11059
11052
  className: "border-none",
11060
11053
  children: c
11061
11054
  }), r[0] = c, r[1] = l, r[2] = u) : u = r[2], u;
11062
11055
  }, AccordionFormContent = (e) => {
11063
- let r = (0, import_compiler_runtime$73.c)(5), { children: c, wrapperClassName: l } = e, u;
11056
+ let r = (0, import_compiler_runtime$71.c)(5), { children: c, wrapperClassName: l } = e, u;
11064
11057
  r[0] === l ? u = r[1] : (u = cn("pb-2 flex flex-col gap-2", l), r[0] = l, r[1] = u);
11065
11058
  let d;
11066
11059
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)(AccordionContent, {
@@ -11068,7 +11061,7 @@ ${c}
11068
11061
  children: c
11069
11062
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
11070
11063
  }, CodeSnippet = (e) => {
11071
- let r = (0, import_compiler_runtime$73.c)(4), { code: c, insertNewCell: l, language: u } = e, d;
11064
+ let r = (0, import_compiler_runtime$71.c)(4), { code: c, insertNewCell: l, language: u } = e, d;
11072
11065
  return r[0] !== c || r[1] !== l || r[2] !== u ? (d = (0, import_jsx_runtime.jsx)(ReadonlyCode, {
11073
11066
  minHeight: "330px",
11074
11067
  maxHeight: "330px",
@@ -11079,9 +11072,9 @@ ${c}
11079
11072
  insertNewCell: l
11080
11073
  }), r[0] = c, r[1] = l, r[2] = u, r[3] = d) : d = r[3], d;
11081
11074
  };
11082
- var import_compiler_runtime$72 = require_compiler_runtime(), CLEAR_VALUE = "__clear__";
11075
+ var import_compiler_runtime$70 = require_compiler_runtime(), CLEAR_VALUE = "__clear__";
11083
11076
  const ColumnSelector = (e) => {
11084
- let r = (0, import_compiler_runtime$72.c)(23), { fieldName: c, columns: l, onValueChange: u, includeCountField: d } = e, f = d === void 0 ? true : d, p = useFormContext(), m;
11077
+ let r = (0, import_compiler_runtime$70.c)(23), { fieldName: c, columns: l, onValueChange: u, includeCountField: d } = e, f = d === void 0 ? true : d, p = useFormContext(), m;
11085
11078
  r[0] === c ? m = r[1] : (m = c.replace(".field", ".type"), r[0] = c, r[1] = m);
11086
11079
  let h = m, g;
11087
11080
  r[2] === c ? g = r[3] : (g = c.replace(".field", ".selectedDataType"), r[2] = c, r[3] = g);
@@ -11148,7 +11141,7 @@ ${c}
11148
11141
  (0, import_jsx_runtime.jsx)(SelectSeparator, {})
11149
11142
  ]
11150
11143
  }),
11151
- l.map(_temp$21)
11144
+ l.map(_temp$20)
11152
11145
  ]
11153
11146
  })
11154
11147
  ]
@@ -11163,7 +11156,7 @@ ${c}
11163
11156
  render: b
11164
11157
  }), r[19] = c, r[20] = p.control, r[21] = b, r[22] = S) : S = r[22], S;
11165
11158
  }, SelectField = (e) => {
11166
- let r = (0, import_compiler_runtime$72.c)(8), { fieldName: c, label: l, options: u, defaultValue: d } = e, f = useFormContext(), p;
11159
+ let r = (0, import_compiler_runtime$70.c)(8), { fieldName: c, label: l, options: u, defaultValue: d } = e, f = useFormContext(), p;
11167
11160
  r[0] !== d || r[1] !== l || r[2] !== u ? (p = (e2) => {
11168
11161
  let { field: r2 } = e2;
11169
11162
  return (0, import_jsx_runtime.jsxs)(FormItem, {
@@ -11186,7 +11179,7 @@ ${c}
11186
11179
  }),
11187
11180
  (0, import_jsx_runtime.jsx)(SelectContent, {
11188
11181
  children: (0, import_jsx_runtime.jsx)(SelectGroup, {
11189
- children: u.filter(_temp2$15).map(_temp3$11)
11182
+ children: u.filter(_temp2$14).map(_temp3$11)
11190
11183
  })
11191
11184
  })
11192
11185
  ]
@@ -11202,7 +11195,7 @@ ${c}
11202
11195
  render: p
11203
11196
  }), r[4] = c, r[5] = f.control, r[6] = p, r[7] = m) : m = r[7], m;
11204
11197
  }, InputField = (e) => {
11205
- let r = (0, import_compiler_runtime$72.c)(6), { fieldName: c, label: l } = e, u = useFormContext(), d;
11198
+ let r = (0, import_compiler_runtime$70.c)(6), { fieldName: c, label: l } = e, u = useFormContext(), d;
11206
11199
  r[0] === l ? d = r[1] : (d = (e2) => {
11207
11200
  let { field: r2 } = e2;
11208
11201
  return (0, import_jsx_runtime.jsxs)(FormItem, {
@@ -11229,7 +11222,7 @@ ${c}
11229
11222
  render: d
11230
11223
  }), r[2] = c, r[3] = u.control, r[4] = d, r[5] = f) : f = r[5], f;
11231
11224
  }, NumberField$1 = (e) => {
11232
- let r = (0, import_compiler_runtime$72.c)(17), c, l, u, d, f, m;
11225
+ let r = (0, import_compiler_runtime$70.c)(17), c, l, u, d, f, m;
11233
11226
  r[0] === e ? (c = r[1], l = r[2], u = r[3], d = r[4], f = r[5], m = r[6]) : ({ fieldName: l, label: f, className: c, inputClassName: u, isDisabled: d, ...m } = e, r[0] = e, r[1] = c, r[2] = l, r[3] = u, r[4] = d, r[5] = f, r[6] = m);
11234
11227
  let h = useFormContext(), g;
11235
11228
  r[7] !== c || r[8] !== u || r[9] !== d || r[10] !== f || r[11] !== m ? (g = (e2) => {
@@ -11263,7 +11256,7 @@ ${c}
11263
11256
  render: g
11264
11257
  }), r[13] = l, r[14] = h.control, r[15] = g, r[16] = _) : _ = r[16], _;
11265
11258
  }, BooleanField = (e) => {
11266
- let r = (0, import_compiler_runtime$72.c)(8), { fieldName: c, label: l, className: u, defaultValue: d } = e, f = useFormContext(), m;
11259
+ let r = (0, import_compiler_runtime$70.c)(8), { fieldName: c, label: l, className: u, defaultValue: d } = e, f = useFormContext(), m;
11267
11260
  r[0] !== u || r[1] !== d || r[2] !== l ? (m = (e2) => {
11268
11261
  let { field: r2 } = e2;
11269
11262
  return (0, import_jsx_runtime.jsxs)(FormItem, {
@@ -11289,7 +11282,7 @@ ${c}
11289
11282
  render: m
11290
11283
  }), r[4] = c, r[5] = f.control, r[6] = m, r[7] = h) : h = r[7], h;
11291
11284
  }, SliderField = (e) => {
11292
- let r = (0, import_compiler_runtime$72.c)(12), { fieldName: c, label: l, defaultValue: u, start: d, stop: f, step: m, className: h } = e, g = useFormContext(), _;
11285
+ let r = (0, import_compiler_runtime$70.c)(12), { fieldName: c, label: l, defaultValue: u, start: d, stop: f, step: m, className: h } = e, g = useFormContext(), _;
11293
11286
  r[0] !== h || r[1] !== u || r[2] !== c || r[3] !== l || r[4] !== d || r[5] !== m || r[6] !== f ? (_ = (e2) => {
11294
11287
  let { field: r2 } = e2, g2 = r2.value ?? u, _2 = Number(g2), v2 = (e3) => {
11295
11288
  typeof e3 == "string" && (e3 = Number(e3)), r2.onChange(e3);
@@ -11332,7 +11325,7 @@ ${c}
11332
11325
  render: _
11333
11326
  }), r[8] = c, r[9] = g.control, r[10] = _, r[11] = v) : v = r[11], v;
11334
11327
  }, ColorArrayField = (e) => {
11335
- let r = (0, import_compiler_runtime$72.c)(28), { fieldName: c, label: l, className: u } = e, d = useFormContext(), f;
11328
+ let r = (0, import_compiler_runtime$70.c)(28), { fieldName: c, label: l, className: u } = e, d = useFormContext(), f;
11336
11329
  r[0] !== c || r[1] !== d ? (f = d.watch(c), r[0] = c, r[1] = d, r[2] = f) : f = r[2];
11337
11330
  let m = f, h;
11338
11331
  r[3] === m ? h = r[4] : (h = m ?? [], r[3] = m, r[4] = h);
@@ -11413,7 +11406,7 @@ ${c}
11413
11406
  render: O
11414
11407
  }), r[24] = c, r[25] = d.control, r[26] = O, r[27] = j) : j = r[27], j;
11415
11408
  }, TimeUnitSelect = (e) => {
11416
- let r = (0, import_compiler_runtime$72.c)(10), { fieldName: c, label: l } = e, u = useFormContext(), d;
11409
+ let r = (0, import_compiler_runtime$70.c)(10), { fieldName: c, label: l } = e, u = useFormContext(), d;
11417
11410
  r[0] !== c || r[1] !== u ? (d = () => {
11418
11411
  u.setValue(c, "");
11419
11412
  }, r[0] = c, r[1] = u, r[2] = d) : d = r[2];
@@ -11482,7 +11475,7 @@ ${c}
11482
11475
  render: m
11483
11476
  }), r[6] = c, r[7] = u.control, r[8] = m, r[9] = h) : h = r[9], h;
11484
11477
  }, DataTypeSelect = (e) => {
11485
- let r = (0, import_compiler_runtime$72.c)(9), { fieldName: c, label: l, defaultValue: u, onValueChange: d } = e, [f, p] = import_react.useState(false), m = useFormContext(), h;
11478
+ let r = (0, import_compiler_runtime$70.c)(9), { fieldName: c, label: l, defaultValue: u, onValueChange: d } = e, [f, p] = import_react.useState(false), m = useFormContext(), h;
11486
11479
  r[0] !== u || r[1] !== f || r[2] !== l || r[3] !== d ? (h = (e2) => {
11487
11480
  let { field: r2 } = e2;
11488
11481
  return (0, import_jsx_runtime.jsxs)(FormItem, {
@@ -11538,7 +11531,7 @@ ${c}
11538
11531
  render: h
11539
11532
  }), r[5] = c, r[6] = m.control, r[7] = h, r[8] = g) : g = r[8], g;
11540
11533
  }, AggregationSelect = (e) => {
11541
- let r = (0, import_compiler_runtime$72.c)(12), { fieldName: c, selectedDataType: l, binFieldName: u, defaultAggregation: d } = e, f = useFormContext(), p = l === "string" ? STRING_AGGREGATION_FNS : AGGREGATION_FNS$1, { chartType: m } = useChartFormContext(), h = m !== ChartType.HEATMAP, g = _temp6$1, _ = _temp7, v;
11534
+ let r = (0, import_compiler_runtime$70.c)(12), { fieldName: c, selectedDataType: l, binFieldName: u, defaultAggregation: d } = e, f = useFormContext(), p = l === "string" ? STRING_AGGREGATION_FNS : AGGREGATION_FNS$1, { chartType: m } = useChartFormContext(), h = m !== ChartType.HEATMAP, g = _temp6$1, _ = _temp7, v;
11542
11535
  r[0] !== u || r[1] !== f ? (v = (e2) => {
11543
11536
  let { value: r2, previousValue: c2, onChange: l2 } = e2;
11544
11537
  r2 === "bin" ? f.setValue(u, true) : c2 === "bin" && f.setValue(u, false), l2(r2);
@@ -11597,7 +11590,7 @@ ${c}
11597
11590
  render: b
11598
11591
  }), r[8] = c, r[9] = f.control, r[10] = b, r[11] = S) : S = r[11], S;
11599
11592
  }, TooltipSelect = (e) => {
11600
- let r = (0, import_compiler_runtime$72.c)(7), { fieldName: c, saveFunction: l } = e, u = useFormContext(), { fields: d } = useChartFormContext(), f = _temp8, p;
11593
+ let r = (0, import_compiler_runtime$70.c)(7), { fieldName: c, saveFunction: l } = e, u = useFormContext(), { fields: d } = useChartFormContext(), f = _temp8, p;
11601
11594
  r[0] !== d || r[1] !== l ? (p = (e2) => {
11602
11595
  var _a3;
11603
11596
  let { field: r2 } = e2, c2 = ((_a3 = r2.value) == null ? void 0 : _a3.map(_temp9)) ?? [];
@@ -11624,7 +11617,7 @@ ${c}
11624
11617
  render: p
11625
11618
  }), r[3] = c, r[4] = u.control, r[5] = p, r[6] = m) : m = r[6], m;
11626
11619
  }, SortField = (e) => {
11627
- let r = (0, import_compiler_runtime$72.c)(5), { fieldName: c, label: l, defaultValue: u } = e, d;
11620
+ let r = (0, import_compiler_runtime$70.c)(5), { fieldName: c, label: l, defaultValue: u } = e, d;
11628
11621
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = SORT_TYPES.map(_temp1), r[0] = d) : d = r[0];
11629
11622
  let f = u ?? "ascending", p;
11630
11623
  return r[1] !== c || r[2] !== l || r[3] !== f ? (p = (0, import_jsx_runtime.jsx)(SelectField, {
@@ -11635,7 +11628,7 @@ ${c}
11635
11628
  }), r[1] = c, r[2] = l, r[3] = f, r[4] = p) : p = r[4], p;
11636
11629
  }, BinFields = (e) => {
11637
11630
  var _a3, _b3, _c3, _d3;
11638
- let r = (0, import_compiler_runtime$72.c)(10), { fieldName: c } = e, l = useFormContext(), u;
11631
+ let r = (0, import_compiler_runtime$70.c)(10), { fieldName: c } = e, l = useFormContext(), u;
11639
11632
  r[0] === l.control ? u = r[1] : (u = {
11640
11633
  control: l.control
11641
11634
  }, r[0] = l.control, r[1] = u);
@@ -11665,7 +11658,7 @@ ${c}
11665
11658
  ]
11666
11659
  }), r[7] = m, r[8] = g, r[9] = _) : _ = r[9], _;
11667
11660
  };
11668
- function _temp$21(e) {
11661
+ function _temp$20(e) {
11669
11662
  if (e.name.trim() === "") return null;
11670
11663
  let r = DATA_TYPE_ICON[e.type];
11671
11664
  return (0, import_jsx_runtime.jsx)(SelectItem, {
@@ -11681,7 +11674,7 @@ ${c}
11681
11674
  })
11682
11675
  }, e.name);
11683
11676
  }
11684
- function _temp2$15(e) {
11677
+ function _temp2$14(e) {
11685
11678
  return e.value !== "";
11686
11679
  }
11687
11680
  function _temp3$11(e) {
@@ -11750,7 +11743,7 @@ ${c}
11750
11743
  value: e
11751
11744
  };
11752
11745
  }
11753
- var import_compiler_runtime$71 = require_compiler_runtime();
11746
+ var import_compiler_runtime$69 = require_compiler_runtime();
11754
11747
  function isNonCountField(e) {
11755
11748
  return isFieldSet(e == null ? void 0 : e.field) && (e == null ? void 0 : e.field) !== "__count__";
11756
11749
  }
@@ -11774,7 +11767,7 @@ ${c}
11774
11767
  };
11775
11768
  }
11776
11769
  var ColumnSelectorWithAggregation = (e) => {
11777
- let r = (0, import_compiler_runtime$71.c)(14), { columnFieldName: c, column: l, columns: u, binFieldName: d, defaultAggregation: f } = e, p;
11770
+ let r = (0, import_compiler_runtime$69.c)(14), { columnFieldName: c, column: l, columns: u, binFieldName: d, defaultAggregation: f } = e, p;
11778
11771
  r[0] === l ? p = r[1] : (p = getColumnDataTypes(l), r[0] = l, r[1] = p);
11779
11772
  let { selectedDataType: m } = p, h;
11780
11773
  r[2] !== c || r[3] !== u ? (h = (0, import_jsx_runtime.jsx)(ColumnSelector, {
@@ -11798,7 +11791,7 @@ ${c}
11798
11791
  }), r[11] = h, r[12] = g, r[13] = _) : _ = r[13], _;
11799
11792
  };
11800
11793
  const ChartTypeSelect = (e) => {
11801
- let r = (0, import_compiler_runtime$71.c)(7), { value: c, onValueChange: l } = e, u, d;
11794
+ let r = (0, import_compiler_runtime$69.c)(7), { value: c, onValueChange: l } = e, u, d;
11802
11795
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (u = buttonVariants({
11803
11796
  variant: "outline",
11804
11797
  className: "user-select-none w-full justify-between px-3"
@@ -11822,7 +11815,7 @@ ${c}
11822
11815
  children: [
11823
11816
  f,
11824
11817
  (0, import_jsx_runtime.jsx)(SelectContent, {
11825
- children: CHART_TYPES.map(_temp$20)
11818
+ children: CHART_TYPES.map(_temp$19)
11826
11819
  })
11827
11820
  ]
11828
11821
  }), r[3] = p) : p = r[3];
@@ -11834,7 +11827,7 @@ ${c}
11834
11827
  }), r[4] = l, r[5] = c, r[6] = m) : m = r[6], m;
11835
11828
  };
11836
11829
  var ChartSelectItem = (e) => {
11837
- let r = (0, import_compiler_runtime$71.c)(10), { chartType: c } = e, l = CHART_TYPE_ICON[c], u;
11830
+ let r = (0, import_compiler_runtime$69.c)(10), { chartType: c } = e, l = CHART_TYPE_ICON[c], u;
11838
11831
  r[0] === l ? u = r[1] : (u = (0, import_jsx_runtime.jsx)(l, {
11839
11832
  className: "w-4 h-4 mr-2"
11840
11833
  }), r[0] = l, r[1] = u);
@@ -11857,7 +11850,7 @@ ${c}
11857
11850
  };
11858
11851
  const XAxis = () => {
11859
11852
  var _a3, _b3, _c3, _d3, _e9, _f3, _g3;
11860
- let e = (0, import_compiler_runtime$71.c)(22), r = useFormContext(), c;
11853
+ let e = (0, import_compiler_runtime$69.c)(22), r = useFormContext(), c;
11861
11854
  e[0] === r.control ? c = e[1] : (c = {
11862
11855
  control: r.control
11863
11856
  }, e[0] = r.control, e[1] = c);
@@ -11910,7 +11903,7 @@ ${c}
11910
11903
  }), e[17] = g, e[18] = _, e[19] = v, e[20] = y, e[21] = b) : b = e[21], b;
11911
11904
  }, YAxis = () => {
11912
11905
  var _a3, _b3, _c3;
11913
- let e = (0, import_compiler_runtime$71.c)(29), r = useFormContext(), c;
11906
+ let e = (0, import_compiler_runtime$69.c)(29), r = useFormContext(), c;
11914
11907
  e[0] === r.control ? c = e[1] : (c = {
11915
11908
  control: r.control
11916
11909
  }, e[0] = r.control, e[1] = c);
@@ -11967,7 +11960,7 @@ ${c}
11967
11960
  }), e[23] = O, e[24] = j, e[25] = w, e[26] = T, e[27] = E, e[28] = M) : M = e[28], M;
11968
11961
  }, ColorByAxis = () => {
11969
11962
  var _a3;
11970
- let e = (0, import_compiler_runtime$71.c)(13), { fields: r } = useChartFormContext(), c = useFormContext(), l;
11963
+ let e = (0, import_compiler_runtime$69.c)(13), { fields: r } = useChartFormContext(), c = useFormContext(), l;
11971
11964
  e[0] === c.control ? l = e[1] : (l = {
11972
11965
  control: c.control
11973
11966
  }, e[0] = c.control, e[1] = l);
@@ -11998,7 +11991,7 @@ ${c}
11998
11991
  }), e[10] = m, e[11] = h, e[12] = g) : g = e[12], g;
11999
11992
  }, Facet = () => {
12000
11993
  var _a3, _b3;
12001
- let e = (0, import_compiler_runtime$71.c)(7), r = useChartFormContext().fields, c = useFormContext(), l;
11994
+ let e = (0, import_compiler_runtime$69.c)(7), r = useChartFormContext().fields, c = useFormContext(), l;
12002
11995
  e[0] === c.control ? l = e[1] : (l = {
12003
11996
  control: c.control
12004
11997
  }, e[0] = c.control, e[1] = l);
@@ -12072,15 +12065,15 @@ ${c}
12072
12065
  ]
12073
12066
  }), e[5] = f, e[6] = p), p;
12074
12067
  };
12075
- function _temp$20(e) {
12068
+ function _temp$19(e) {
12076
12069
  return (0, import_jsx_runtime.jsx)(ChartSelectItem, {
12077
12070
  chartType: e
12078
12071
  }, e);
12079
12072
  }
12080
- var import_compiler_runtime$70 = require_compiler_runtime();
12073
+ var import_compiler_runtime$68 = require_compiler_runtime();
12081
12074
  const CommonChartForm = () => {
12082
12075
  var _a3, _b3;
12083
- let e = (0, import_compiler_runtime$70.c)(17), r = useFormContext(), c;
12076
+ let e = (0, import_compiler_runtime$68.c)(17), r = useFormContext(), c;
12084
12077
  e[0] === r.control ? c = e[1] : (c = {
12085
12078
  control: r.control
12086
12079
  }, e[0] = r.control, e[1] = c);
@@ -12132,7 +12125,7 @@ ${c}
12132
12125
  ]
12133
12126
  }), e[15] = S, e[16] = E), E;
12134
12127
  }, StyleForm = () => {
12135
- let e = (0, import_compiler_runtime$70.c)(15), { chartType: r } = useChartFormContext(), c;
12128
+ let e = (0, import_compiler_runtime$68.c)(15), { chartType: r } = useChartFormContext(), c;
12136
12129
  e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (c = (0, import_jsx_runtime.jsx)(AccordionFormTrigger, {
12137
12130
  className: "pt-0",
12138
12131
  children: (0, import_jsx_runtime.jsx)(Title, {
@@ -12227,7 +12220,7 @@ ${c}
12227
12220
  e[9] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (_ = (0, import_jsx_runtime.jsx)(SelectField, {
12228
12221
  fieldName: "color.field",
12229
12222
  label: "Field",
12230
- options: COLOR_BY_FIELDS.map(_temp$19),
12223
+ options: COLOR_BY_FIELDS.map(_temp$18),
12231
12224
  defaultValue: NONE_VALUE
12232
12225
  }), e[9] = _) : _ = e[9];
12233
12226
  let v, y;
@@ -12235,7 +12228,7 @@ ${c}
12235
12228
  fieldName: "color.scheme",
12236
12229
  label: "Color scheme",
12237
12230
  defaultValue: DEFAULT_COLOR_SCHEME,
12238
- options: COLOR_SCHEMES.map(_temp2$14)
12231
+ options: COLOR_SCHEMES.map(_temp2$13)
12239
12232
  }), y = (0, import_jsx_runtime.jsx)(ColorArrayField, {
12240
12233
  fieldName: "color.range",
12241
12234
  label: "Color range"
@@ -12275,7 +12268,7 @@ ${c}
12275
12268
  }), e[13] = d, e[14] = S), S;
12276
12269
  }, OtherOptions = () => {
12277
12270
  var _a3;
12278
- let e = (0, import_compiler_runtime$70.c)(11), { saveForm: r } = useChartFormContext(), c = useFormContext(), l;
12271
+ let e = (0, import_compiler_runtime$68.c)(11), { saveForm: r } = useChartFormContext(), c = useFormContext(), l;
12279
12272
  e[0] === c.control ? l = e[1] : (l = {
12280
12273
  control: c.control
12281
12274
  }, e[0] = c.control, e[1] = l);
@@ -12334,22 +12327,22 @@ ${c}
12334
12327
  ]
12335
12328
  }), e[9] = h, e[10] = g), g;
12336
12329
  };
12337
- function _temp$19(e) {
12330
+ function _temp$18(e) {
12338
12331
  return {
12339
12332
  display: capitalize(e),
12340
12333
  value: e
12341
12334
  };
12342
12335
  }
12343
- function _temp2$14(e) {
12336
+ function _temp2$13(e) {
12344
12337
  return {
12345
12338
  display: capitalize(e),
12346
12339
  value: e
12347
12340
  };
12348
12341
  }
12349
- var import_compiler_runtime$69 = require_compiler_runtime();
12342
+ var import_compiler_runtime$67 = require_compiler_runtime();
12350
12343
  const HeatmapForm = () => {
12351
12344
  var _a3, _b3, _c3, _d3;
12352
- let e = (0, import_compiler_runtime$69.c)(17), r = useFormContext(), c;
12345
+ let e = (0, import_compiler_runtime$67.c)(17), r = useFormContext(), c;
12353
12346
  e[0] === r.control ? c = e[1] : (c = {
12354
12347
  control: r.control
12355
12348
  }, e[0] = r.control, e[1] = c);
@@ -12392,10 +12385,10 @@ ${c}
12392
12385
  ]
12393
12386
  }), e[14] = _, e[15] = y, e[16] = w) : w = e[16], w;
12394
12387
  };
12395
- var import_compiler_runtime$68 = require_compiler_runtime();
12388
+ var import_compiler_runtime$66 = require_compiler_runtime();
12396
12389
  const PieForm = () => {
12397
12390
  var _a3, _b3, _c3;
12398
- let e = (0, import_compiler_runtime$68.c)(25), r = useFormContext(), { fields: c } = useChartFormContext(), l;
12391
+ let e = (0, import_compiler_runtime$66.c)(25), r = useFormContext(), { fields: c } = useChartFormContext(), l;
12399
12392
  e[0] === r.control ? l = e[1] : (l = {
12400
12393
  control: r.control
12401
12394
  }, e[0] = r.control, e[1] = l);
@@ -12462,9 +12455,9 @@ ${c}
12462
12455
  ]
12463
12456
  }), e[21] = g, e[22] = _, e[23] = S, e[24] = O) : O = e[24], O;
12464
12457
  };
12465
- var import_compiler_runtime$67 = require_compiler_runtime();
12458
+ var import_compiler_runtime$65 = require_compiler_runtime();
12466
12459
  const LazyChart = (e) => {
12467
- let r = (0, import_compiler_runtime$67.c)(8), { baseSpec: c, data: l, height: u } = e, { theme: d } = useTheme();
12460
+ let r = (0, import_compiler_runtime$65.c)(8), { baseSpec: c, data: l, height: u } = e, { theme: d } = useTheme();
12468
12461
  if (!l) {
12469
12462
  let e2;
12470
12463
  return r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)("div", {
@@ -12505,7 +12498,7 @@ ${c}
12505
12498
  }), r[5] = c, r[6] = p, r[7] = m) : m = r[7], m;
12506
12499
  };
12507
12500
  var LoadingChart$1 = () => {
12508
- let e = (0, import_compiler_runtime$67.c)(1), r;
12501
+ let e = (0, import_compiler_runtime$65.c)(1), r;
12509
12502
  return e[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (r = (0, import_jsx_runtime.jsx)(ChartInfoState, {
12510
12503
  className: "mt-14",
12511
12504
  children: "Loading chart..."
@@ -12649,7 +12642,7 @@ ${c}
12649
12642
  let r = initialStorageValue.get(e);
12650
12643
  return r ? r.length > 0 : false;
12651
12644
  }
12652
- var import_compiler_runtime$66 = require_compiler_runtime(), NEW_CHART_TYPE = "bar", DEFAULT_TAB_NAME = "table", CHART_HEIGHT = 290, CHART_MAX_ROWS = 5e4, CHART_MAX_COLUMNS = 50;
12645
+ var import_compiler_runtime$64 = require_compiler_runtime(), NEW_CHART_TYPE = "bar", DEFAULT_TAB_NAME = "table", CHART_HEIGHT = 290, CHART_MAX_ROWS = 5e4, CHART_MAX_COLUMNS = 50;
12653
12646
  const TablePanel = ({ cellId: e, data: r, dataTable: c, totalRows: l, columns: u, getDataUrl: d, fieldTypes: f, displayHeader: p, onCloseChartBuilder: m }) => {
12654
12647
  let [h, g] = useAtom(tabsStorageAtom), _ = e ? h.get(e) ?? [] : [], [v, y] = (0, import_react.useState)(DEFAULT_TAB_NAME), [b, S] = (0, import_react.useState)(_.length), T = (0, import_react.useRef)(p);
12655
12648
  if (p && !T.current && _.length === 0 && e) {
@@ -12915,12 +12908,12 @@ ${c}
12915
12908
  });
12916
12909
  };
12917
12910
  var ChartFormContainer = (e) => {
12918
- let r = (0, import_compiler_runtime$66.c)(28), { form: c, saveChart: l, fieldTypes: u, chartType: d } = e, f;
12911
+ let r = (0, import_compiler_runtime$64.c)(28), { form: c, saveChart: l, fieldTypes: u, chartType: d } = e, f;
12919
12912
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (f = [], r[0] = f) : f = r[0];
12920
12913
  let p = f;
12921
12914
  if (u) {
12922
12915
  let e2;
12923
- r[1] === u ? e2 = r[2] : (e2 = u.map(_temp2$13), r[1] = u, r[2] = e2), p = e2;
12916
+ r[1] === u ? e2 = r[2] : (e2 = u.map(_temp2$12), r[1] = u, r[2] = e2), p = e2;
12924
12917
  }
12925
12918
  let m;
12926
12919
  r[3] !== c || r[4] !== l ? (m = () => {
@@ -13016,7 +13009,7 @@ ${c}
13016
13009
  children: j
13017
13010
  }), r[25] = j, r[26] = _, r[27] = M) : M = r[27], M;
13018
13011
  };
13019
- function _temp2$13(e) {
13012
+ function _temp2$12(e) {
13020
13013
  return {
13021
13014
  name: e[0],
13022
13015
  type: e[1][0]
@@ -13025,9 +13018,9 @@ ${c}
13025
13018
  function _temp3$10(e) {
13026
13019
  return e.preventDefault();
13027
13020
  }
13028
- var import_compiler_runtime$65 = require_compiler_runtime();
13021
+ var import_compiler_runtime$63 = require_compiler_runtime();
13029
13022
  function usePanelOwnership(e, r) {
13030
- let c = (0, import_compiler_runtime$65.c)(16), l = useAtomValue(isCellAwareAtom), { focusCell: u } = useCellFocusActions(), f = useLastFocusedCellId(), [p, m] = useAtom(contextAwarePanelType), [h, g] = useAtom(contextAwarePanelOwner), [_, v] = useAtom(contextAwarePanelOpen), y = getPanelId(e, r);
13023
+ let c = (0, import_compiler_runtime$63.c)(16), l = useAtomValue(isCellAwareAtom), { focusCell: u } = useCellFocusActions(), f = useLastFocusedCellId(), [p, m] = useAtom(contextAwarePanelType), [h, g] = useAtom(contextAwarePanelOwner), [_, v] = useAtom(contextAwarePanelOpen), y = getPanelId(e, r);
13031
13024
  !r && l && (Logger.error("CellId is not found, defaulting to fixed mode"), l = false);
13032
13025
  let b = (e2) => h === y && _ && e2 === p, S = f === r, w = h && isPanelOwner(h, r);
13033
13026
  l && S && h !== y && !w && g(y);
@@ -13056,7 +13049,8 @@ ${c}
13056
13049
  format: zod_default.enum([
13057
13050
  "csv",
13058
13051
  "json",
13059
- "parquet"
13052
+ "parquet",
13053
+ "tsv"
13060
13054
  ])
13061
13055
  })).output(zod_default.object({
13062
13056
  url: zod_default.string(),
@@ -13064,9 +13058,9 @@ ${c}
13064
13058
  error: zod_default.string().nullish(),
13065
13059
  missing_packages: zod_default.array(zod_default.string()).nullish()
13066
13060
  }));
13067
- var import_compiler_runtime$64 = require_compiler_runtime();
13061
+ var import_compiler_runtime$62 = require_compiler_runtime();
13068
13062
  const EmptyState = (e) => {
13069
- let r = (0, import_compiler_runtime$64.c)(5), { content: c, className: l } = e, u;
13063
+ let r = (0, import_compiler_runtime$62.c)(5), { content: c, className: l } = e, u;
13070
13064
  r[0] === l ? u = r[1] : (u = cn("text-sm text-muted-foreground py-1", l), r[0] = l, r[1] = u);
13071
13065
  let d;
13072
13066
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)("div", {
@@ -13074,7 +13068,7 @@ ${c}
13074
13068
  children: c
13075
13069
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
13076
13070
  }, ErrorState = (e) => {
13077
- let r = (0, import_compiler_runtime$64.c)(9), { error: c, style: l, className: u, showIcon: d } = e, f = d === void 0 ? true : d, m;
13071
+ let r = (0, import_compiler_runtime$62.c)(9), { error: c, style: l, className: u, showIcon: d } = e, f = d === void 0 ? true : d, m;
13078
13072
  r[0] === u ? m = r[1] : (m = cn("text-sm bg-red-50 dark:bg-red-900 text-red-600 dark:text-red-50 flex items-center gap-2 p-2 h-8", u), r[0] = u, r[1] = m);
13079
13073
  let h;
13080
13074
  r[2] === f ? h = r[3] : (h = f && (0, import_jsx_runtime.jsx)(X, {
@@ -13090,7 +13084,7 @@ ${c}
13090
13084
  ]
13091
13085
  }), r[4] = c.message, r[5] = l, r[6] = m, r[7] = h, r[8] = g) : g = r[8], g;
13092
13086
  }, LoadingState = (e) => {
13093
- let r = (0, import_compiler_runtime$64.c)(6), { message: c, className: l } = e, u;
13087
+ let r = (0, import_compiler_runtime$62.c)(6), { message: c, className: l } = e, u;
13094
13088
  r[0] === l ? u = r[1] : (u = cn("text-sm bg-blue-50 dark:bg-(--accent) text-blue-500 dark:text-blue-50 flex items-center gap-2 p-2 h-8", l), r[0] = l, r[1] = u);
13095
13089
  let d;
13096
13090
  r[2] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d = (0, import_jsx_runtime.jsx)(LoaderCircle, {
@@ -13105,7 +13099,7 @@ ${c}
13105
13099
  ]
13106
13100
  }), r[3] = c, r[4] = u, r[5] = f) : f = r[5], f;
13107
13101
  }, ColumnPreviewContainer = (e) => {
13108
- let r = (0, import_compiler_runtime$64.c)(5), { children: c, className: l } = e, u;
13102
+ let r = (0, import_compiler_runtime$62.c)(5), { children: c, className: l } = e, u;
13109
13103
  r[0] === l ? u = r[1] : (u = cn("flex flex-col gap-2 relative", l), r[0] = l, r[1] = u);
13110
13104
  let d;
13111
13105
  return r[2] !== c || r[3] !== u ? (d = (0, import_jsx_runtime.jsx)("div", {
@@ -13113,7 +13107,7 @@ ${c}
13113
13107
  children: c
13114
13108
  }), r[2] = c, r[3] = u, r[4] = d) : d = r[4], d;
13115
13109
  }, ColumnName = (e) => {
13116
- let r = (0, import_compiler_runtime$64.c)(6), { columnName: c, dataType: l } = e, u = DATA_TYPE_ICON[l], d = `w-4 h-4 p-0.5 rounded-sm stroke-card-foreground ${getDataTypeColor(l)}`, f;
13110
+ let r = (0, import_compiler_runtime$62.c)(6), { columnName: c, dataType: l } = e, u = DATA_TYPE_ICON[l], d = `w-4 h-4 p-0.5 rounded-sm stroke-card-foreground ${getDataTypeColor(l)}`, f;
13117
13111
  r[0] !== u || r[1] !== d ? (f = (0, import_jsx_runtime.jsx)(u, {
13118
13112
  className: d
13119
13113
  }), r[0] = u, r[1] = d, r[2] = f) : f = r[2];
@@ -13126,7 +13120,7 @@ ${c}
13126
13120
  ]
13127
13121
  }), r[3] = c, r[4] = f, r[5] = p) : p = r[5], p;
13128
13122
  };
13129
- var import_compiler_runtime$63 = require_compiler_runtime();
13123
+ var import_compiler_runtime$61 = require_compiler_runtime();
13130
13124
  function renderPreviewError({ error: e, missingPackages: r, refetchPreview: c }) {
13131
13125
  return (0, import_jsx_runtime.jsxs)("div", {
13132
13126
  className: "text-xs text-muted-foreground p-2 border border-border rounded flex items-center justify-between",
@@ -13196,7 +13190,7 @@ ${c}
13196
13190
  });
13197
13191
  }
13198
13192
  const AddDataframeChart = (e) => {
13199
- let r = (0, import_compiler_runtime$63.c)(10), { chartCode: c } = e, l = useAtomValue(autoInstantiateAtom), u = useLastFocusedCellId(), { createNewCell: d } = useCellActions(), f;
13193
+ let r = (0, import_compiler_runtime$61.c)(10), { chartCode: c } = e, l = useAtomValue(autoInstantiateAtom), u = useLastFocusedCellId(), { createNewCell: d } = useCellActions(), f;
13200
13194
  r[0] !== l || r[1] !== d || r[2] !== u ? (f = (e2) => {
13201
13195
  e2.includes("alt") && maybeAddAltairImport({
13202
13196
  autoInstantiate: l,
@@ -13227,212 +13221,171 @@ ${c}
13227
13221
  })
13228
13222
  }), r[8] = h, r[9] = _), _;
13229
13223
  };
13230
- var import_compiler_runtime$62 = require_compiler_runtime();
13231
- const ColumnExplorerPanel = (e) => {
13232
- let r = (0, import_compiler_runtime$62.c)(40), { previewColumn: c, fieldTypes: l, totalRows: u, totalColumns: d, tableId: f } = e, [p, m] = (0, import_react.useState)(""), { locale: h } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), g, _, v, y, b, S, w, T, E, O;
13233
- if (r[0] !== l || r[1] !== h || r[2] !== c || r[3] !== p || r[4] !== f || r[5] !== d || r[6] !== u) {
13234
- let e2 = l == null ? void 0 : l.filter(_temp$18), j2 = e2 == null ? void 0 : e2.filter((e3) => {
13235
- let [r2] = e3;
13236
- return r2.toLowerCase().includes(p.toLowerCase());
13237
- }), M2;
13238
- r[17] !== h || r[18] !== d || r[19] !== u ? (M2 = prettifyRowColumnCount({
13239
- numRows: u,
13240
- totalColumns: d,
13241
- locale: h
13242
- }), r[17] = h, r[18] = d, r[19] = u, r[20] = M2) : M2 = r[20];
13243
- let I2 = M2.rowsAndColumns;
13244
- E = "mb-3", O = (0, import_jsx_runtime.jsxs)("span", {
13245
- className: "text-xs font-semibold ml-2 flex",
13246
- children: [
13247
- I2,
13248
- (0, import_jsx_runtime.jsx)(CopyClipboardIcon, {
13249
- tooltip: "Copy column names",
13250
- value: (e2 == null ? void 0 : e2.map(_temp2$12).join(",\n")) || "",
13251
- className: "h-3 w-3 ml-1 mt-0.5"
13252
- })
13253
- ]
13254
- }), _ = Command, S = "h-5/6 bg-background", w = false;
13255
- let L;
13256
- r[21] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (L = (e3) => m(e3), r[21] = L) : L = r[21], r[22] === p ? T = r[23] : (T = (0, import_jsx_runtime.jsx)(CommandInput, {
13257
- placeholder: "Search columns...",
13258
- value: p,
13259
- onValueChange: L
13260
- }), r[22] = p, r[23] = T), g = CommandList, v = "max-h-full", r[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (y = (0, import_jsx_runtime.jsx)(CommandEmpty, {
13261
- children: "No results."
13262
- }), r[24] = y) : y = r[24], b = j2 == null ? void 0 : j2.map((e3, r2) => {
13263
- let [l2, u2] = e3, [d2, p2] = u2;
13264
- return (0, import_jsx_runtime.jsx)(ColumnItem, {
13265
- columnName: l2,
13266
- dataType: d2,
13267
- externalType: p2,
13268
- previewColumn: c,
13269
- defaultExpanded: r2 === 0
13270
- }, `${f}-${l2}`);
13271
- }), r[0] = l, r[1] = h, r[2] = c, r[3] = p, r[4] = f, r[5] = d, r[6] = u, r[7] = g, r[8] = _, r[9] = v, r[10] = y, r[11] = b, r[12] = S, r[13] = w, r[14] = T, r[15] = E, r[16] = O;
13272
- } else g = r[7], _ = r[8], v = r[9], y = r[10], b = r[11], S = r[12], w = r[13], T = r[14], E = r[15], O = r[16];
13273
- let j;
13274
- r[25] !== g || r[26] !== v || r[27] !== y || r[28] !== b ? (j = (0, import_jsx_runtime.jsxs)(g, {
13275
- className: v,
13276
- children: [
13277
- y,
13278
- b
13279
- ]
13280
- }), r[25] = g, r[26] = v, r[27] = y, r[28] = b, r[29] = j) : j = r[29];
13281
- let M;
13282
- r[30] !== _ || r[31] !== S || r[32] !== w || r[33] !== T || r[34] !== j ? (M = (0, import_jsx_runtime.jsxs)(_, {
13283
- className: S,
13284
- shouldFilter: w,
13285
- children: [
13286
- T,
13287
- j
13288
- ]
13289
- }), r[30] = _, r[31] = S, r[32] = w, r[33] = T, r[34] = j, r[35] = M) : M = r[35];
13290
- let I;
13291
- return r[36] !== M || r[37] !== E || r[38] !== O ? (I = (0, import_jsx_runtime.jsxs)("div", {
13292
- className: E,
13224
+ function ColumnExplorerPanel({ previewColumn: e, fieldTypes: r, totalRows: c, totalColumns: l, tableId: u, table: d }) {
13225
+ let [f, p] = (0, import_react.useState)(""), { locale: m } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), h = r == null ? void 0 : r.filter(([e2]) => !(e2 === "__select__" || e2 === "_marimo_row_id" || e2.startsWith("__m_column__"))), g = h == null ? void 0 : h.filter(([e2]) => smartMatch(f, e2)), { totalColumns: _, hiddenColumns: v } = getColumnCountForDisplay(d, l), { rowsAndColumns: y, hiddenSuffix: b } = prettifyRowColumnCount({
13226
+ numRows: c,
13227
+ totalColumns: _,
13228
+ locale: m,
13229
+ hiddenColumns: v
13230
+ });
13231
+ return (0, import_jsx_runtime.jsxs)("div", {
13232
+ className: "mb-3",
13293
13233
  children: [
13294
- O,
13295
- M
13296
- ]
13297
- }), r[36] = M, r[37] = E, r[38] = O, r[39] = I) : I = r[39], I;
13298
- };
13299
- var ColumnItem = (e) => {
13300
- let r = (0, import_compiler_runtime$62.c)(31), { columnName: c, dataType: l, externalType: u, previewColumn: d, defaultExpanded: f } = e, [p, m] = (0, import_react.useState)(f === void 0 ? false : f), h = p ? "font-semibold" : "", g;
13301
- r[0] !== c || r[1] !== h ? (g = (0, import_jsx_runtime.jsx)("span", {
13302
- className: h,
13303
- children: c
13304
- }), r[0] = c, r[1] = h, r[2] = g) : g = r[2];
13305
- let _ = g, v;
13306
- r[3] === p ? v = r[4] : (v = () => m(!p), r[3] = p, r[4] = v);
13307
- let y;
13308
- r[5] === p ? y = r[6] : (y = p ? (0, import_jsx_runtime.jsx)(ChevronDown, {
13309
- className: "w-3 h-3 shrink-0 text-muted-foreground"
13310
- }) : (0, import_jsx_runtime.jsx)(ChevronRight, {
13311
- className: "w-3 h-3 shrink-0 text-muted-foreground"
13312
- }), r[5] = p, r[6] = y);
13313
- let b;
13314
- r[7] !== _ || r[8] !== l ? (b = (0, import_jsx_runtime.jsx)(ColumnName, {
13315
- columnName: _,
13316
- dataType: l
13317
- }), r[7] = _, r[8] = l, r[9] = b) : b = r[9];
13318
- let S;
13319
- r[10] === c ? S = r[11] : (S = (0, import_jsx_runtime.jsx)(Tooltip, {
13320
- content: "Copy column name",
13321
- delayDuration: 400,
13322
- children: (0, import_jsx_runtime.jsx)(Button, {
13323
- variant: "text",
13324
- size: "icon",
13325
- className: "group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground",
13326
- children: (0, import_jsx_runtime.jsx)(CopyClipboardIcon, {
13327
- tooltip: false,
13328
- value: c,
13329
- className: "h-3 w-3"
13234
+ (0, import_jsx_runtime.jsxs)("div", {
13235
+ className: "text-xs font-semibold ml-2 flex items-center gap-1",
13236
+ children: [
13237
+ y,
13238
+ v > 0 && (0, import_jsx_runtime.jsx)("span", {
13239
+ children: b
13240
+ }),
13241
+ (0, import_jsx_runtime.jsx)(CopyClipboardIcon, {
13242
+ tooltip: "Copy column names",
13243
+ value: (h == null ? void 0 : h.map(([e2]) => e2).join(",\n")) || "",
13244
+ className: "h-3 w-3"
13245
+ }),
13246
+ v > 0 && (0, import_jsx_runtime.jsx)(Button, {
13247
+ type: "button",
13248
+ variant: "link",
13249
+ size: "xs",
13250
+ className: "h-auto p-0",
13251
+ onClick: () => d.resetColumnVisibility(true),
13252
+ children: "Unhide all"
13253
+ })
13254
+ ]
13255
+ }),
13256
+ (0, import_jsx_runtime.jsxs)(Command, {
13257
+ className: "h-5/6 bg-background",
13258
+ shouldFilter: false,
13259
+ children: [
13260
+ (0, import_jsx_runtime.jsx)(CommandInput, {
13261
+ placeholder: "Search columns...",
13262
+ value: f,
13263
+ onValueChange: (e2) => p(e2)
13264
+ }),
13265
+ (0, import_jsx_runtime.jsxs)(CommandList, {
13266
+ className: "max-h-full",
13267
+ children: [
13268
+ (0, import_jsx_runtime.jsx)(CommandEmpty, {
13269
+ children: "No results."
13270
+ }),
13271
+ g == null ? void 0 : g.map(([r2, [c2, l2]], f2) => (0, import_jsx_runtime.jsx)(ColumnItem, {
13272
+ columnName: r2,
13273
+ column: d.getColumn(r2),
13274
+ dataType: c2,
13275
+ externalType: l2,
13276
+ previewColumn: e,
13277
+ defaultExpanded: f2 === 0
13278
+ }, `${u}-${r2}`))
13279
+ ]
13280
+ })
13281
+ ]
13330
13282
  })
13331
- })
13332
- }), r[10] = c, r[11] = S);
13333
- let T;
13334
- r[12] === u ? T = r[13] : (T = (0, import_jsx_runtime.jsx)("span", {
13335
- className: "text-xs text-muted-foreground",
13336
- children: u
13337
- }), r[12] = u, r[13] = T);
13338
- let E;
13339
- r[14] !== S || r[15] !== T ? (E = (0, import_jsx_runtime.jsxs)("div", {
13340
- className: "ml-auto",
13341
- children: [
13342
- S,
13343
- T
13344
- ]
13345
- }), r[14] = S, r[15] = T, r[16] = E) : E = r[16];
13346
- let O;
13347
- r[17] !== c || r[18] !== v || r[19] !== y || r[20] !== b || r[21] !== E ? (O = (0, import_jsx_runtime.jsxs)(CommandItem, {
13348
- onSelect: v,
13349
- className: "flex flex-row items-center gap-1.5 group w-full cursor-pointer",
13350
- children: [
13351
- y,
13352
- b,
13353
- E
13354
13283
  ]
13355
- }, c), r[17] = c, r[18] = v, r[19] = y, r[20] = b, r[21] = E, r[22] = O) : O = r[22];
13356
- let j;
13357
- r[23] !== c || r[24] !== l || r[25] !== p || r[26] !== d ? (j = p && (0, import_jsx_runtime.jsx)(ErrorBoundary, {
13358
- children: (0, import_jsx_runtime.jsx)(ColumnPreview, {
13359
- previewColumn: d,
13360
- columnName: c,
13361
- dataType: l
13362
- })
13363
- }), r[23] = c, r[24] = l, r[25] = p, r[26] = d, r[27] = j) : j = r[27];
13364
- let M;
13365
- return r[28] !== O || r[29] !== j ? (M = (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
13284
+ });
13285
+ }
13286
+ function ColumnItem({ columnName: e, column: r, dataType: c, externalType: l, previewColumn: u, defaultExpanded: d = false }) {
13287
+ let [f, m] = (0, import_react.useState)(d);
13288
+ return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
13366
13289
  children: [
13367
- O,
13368
- j
13290
+ (0, import_jsx_runtime.jsxs)(CommandItem, {
13291
+ onSelect: () => m(!f),
13292
+ className: "flex flex-row items-center gap-1.5 group w-full cursor-pointer",
13293
+ children: [
13294
+ f ? (0, import_jsx_runtime.jsx)(ChevronDown, {
13295
+ className: "w-3 h-3 shrink-0 text-muted-foreground"
13296
+ }) : (0, import_jsx_runtime.jsx)(ChevronRight, {
13297
+ className: "w-3 h-3 shrink-0 text-muted-foreground"
13298
+ }),
13299
+ (0, import_jsx_runtime.jsx)(ColumnName, {
13300
+ columnName: (0, import_jsx_runtime.jsx)("span", {
13301
+ className: f ? "font-semibold" : "",
13302
+ children: e
13303
+ }),
13304
+ dataType: c
13305
+ }),
13306
+ (0, import_jsx_runtime.jsxs)("div", {
13307
+ className: "ml-auto flex items-center gap-0.5",
13308
+ children: [
13309
+ (0, import_jsx_runtime.jsx)(CopyClipboardIcon, {
13310
+ tooltip: "Copy column name",
13311
+ value: e,
13312
+ className: "h-3 w-3",
13313
+ buttonClassName: cn("inline-flex items-center justify-center rounded-md h-6 w-6", "group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-primary")
13314
+ }),
13315
+ (r == null ? void 0 : r.getCanHide()) && (0, import_jsx_runtime.jsx)(Tooltip, {
13316
+ content: r.getIsVisible() ? "Hide column" : "Show column",
13317
+ delayDuration: 400,
13318
+ children: (0, import_jsx_runtime.jsx)(Button, {
13319
+ type: "button",
13320
+ variant: "text",
13321
+ size: "icon",
13322
+ "aria-label": r.getIsVisible() ? "Hide column" : "Show column",
13323
+ className: cn("hover:bg-muted text-muted-foreground hover:text-primary", r.getIsVisible() ? "group-hover:opacity-100 opacity-0" : "opacity-100"),
13324
+ onClick: (e2) => {
13325
+ e2.preventDefault(), e2.stopPropagation(), r.toggleVisibility(!r.getIsVisible());
13326
+ },
13327
+ children: r.getIsVisible() ? (0, import_jsx_runtime.jsx)(Eye, {
13328
+ className: "h-3 w-3",
13329
+ strokeWidth: 2.5
13330
+ }) : (0, import_jsx_runtime.jsx)(EyeOff, {
13331
+ className: "h-3 w-3",
13332
+ strokeWidth: 2.5
13333
+ })
13334
+ })
13335
+ }),
13336
+ (0, import_jsx_runtime.jsx)("span", {
13337
+ className: "text-xs text-muted-foreground",
13338
+ children: l
13339
+ })
13340
+ ]
13341
+ })
13342
+ ]
13343
+ }, e),
13344
+ f && (0, import_jsx_runtime.jsx)(ErrorBoundary, {
13345
+ children: (0, import_jsx_runtime.jsx)(ColumnPreview, {
13346
+ previewColumn: u,
13347
+ columnName: e,
13348
+ dataType: c
13349
+ })
13350
+ })
13369
13351
  ]
13370
- }), r[28] = O, r[29] = j, r[30] = M) : M = r[30], M;
13371
- }, ColumnPreview = (e) => {
13372
- let r = (0, import_compiler_runtime$62.c)(26), { previewColumn: c, columnName: l, dataType: u } = e, { theme: d } = useTheme(), { locale: f } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), p;
13373
- r[0] !== l || r[1] !== c ? (p = async () => await c({
13374
- column: l
13375
- }), r[0] = l, r[1] = c, r[2] = p) : p = r[2];
13376
- let m;
13377
- r[3] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (m = [], r[3] = m) : m = r[3];
13378
- let { data: h, error: g, isPending: _, refetch: v } = useAsyncData(p, m);
13379
- if (g) {
13380
- let e2;
13381
- return r[4] === g ? e2 = r[5] : (e2 = (0, import_jsx_runtime.jsx)(ErrorState, {
13382
- error: g
13383
- }), r[4] = g, r[5] = e2), e2;
13384
- }
13385
- if (_) {
13386
- let e2;
13387
- return r[6] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)(LoadingState, {
13388
- message: "Loading..."
13389
- }), r[6] = e2) : e2 = r[6], e2;
13390
- }
13391
- if (!h) {
13392
- let e2;
13393
- return r[7] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (e2 = (0, import_jsx_runtime.jsx)(EmptyState, {
13394
- content: "No data",
13395
- className: "pl-4"
13396
- }), r[7] = e2) : e2 = r[7], e2;
13397
- }
13398
- let { chart_spec: y, chart_code: b, error: S, missing_packages: w, stats: T } = h, E;
13399
- r[8] !== w || r[9] !== S || r[10] !== v ? (E = S && renderPreviewError({
13400
- error: S,
13401
- missingPackages: w,
13402
- refetchPreview: v
13403
- }), r[8] = w, r[9] = S, r[10] = v, r[11] = E) : E = r[11];
13404
- let O = E, j;
13405
- r[12] !== u || r[13] !== f || r[14] !== T ? (j = T && renderStats({
13406
- stats: T,
13407
- dataType: u,
13408
- locale: f
13409
- }), r[12] = u, r[13] = f, r[14] = T, r[15] = j) : j = r[15];
13410
- let M = j, I;
13411
- r[16] !== y || r[17] !== d ? (I = y && renderChart(y, d), r[16] = y, r[17] = d, r[18] = I) : I = r[18];
13412
- let L = I, R;
13413
- r[19] === b ? R = r[20] : (R = b && (0, import_jsx_runtime.jsx)(AddDataframeChart, {
13414
- chartCode: b
13415
- }), r[19] = b, r[20] = R);
13416
- let z = R, B;
13417
- return r[21] !== z || r[22] !== L || r[23] !== O || r[24] !== M ? (B = (0, import_jsx_runtime.jsxs)(ColumnPreviewContainer, {
13352
+ });
13353
+ }
13354
+ var ColumnPreview = ({ previewColumn: e, columnName: r, dataType: c }) => {
13355
+ let { theme: l } = useTheme(), { locale: u } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), { data: d, error: f, isPending: p, refetch: m } = useAsyncData(async () => await e({
13356
+ column: r
13357
+ }), []);
13358
+ if (f) return (0, import_jsx_runtime.jsx)(ErrorState, {
13359
+ error: f
13360
+ });
13361
+ if (p) return (0, import_jsx_runtime.jsx)(LoadingState, {
13362
+ message: "Loading..."
13363
+ });
13364
+ if (!d) return (0, import_jsx_runtime.jsx)(EmptyState, {
13365
+ content: "No data",
13366
+ className: "pl-4"
13367
+ });
13368
+ let { chart_spec: h, chart_code: g, error: _, missing_packages: v, stats: y } = d, b = _ && renderPreviewError({
13369
+ error: _,
13370
+ missingPackages: v,
13371
+ refetchPreview: m
13372
+ }), S = y && renderStats({
13373
+ stats: y,
13374
+ dataType: c,
13375
+ locale: u
13376
+ }), w = h && renderChart(h, l);
13377
+ return (0, import_jsx_runtime.jsxs)(ColumnPreviewContainer, {
13418
13378
  className: "px-2 py-1",
13419
13379
  children: [
13420
- O,
13421
- z,
13422
- L,
13423
- M
13380
+ b,
13381
+ g && (0, import_jsx_runtime.jsx)(AddDataframeChart, {
13382
+ chartCode: g
13383
+ }),
13384
+ w,
13385
+ S
13424
13386
  ]
13425
- }), r[21] = z, r[22] = L, r[23] = O, r[24] = M, r[25] = B) : B = r[25], B;
13426
- };
13427
- function _temp$18(e) {
13428
- let [r] = e;
13429
- return !(r === "__select__" || r === "_marimo_row_id" || r.startsWith("__m_column__"));
13430
- }
13431
- function _temp2$12(e) {
13432
- let [r] = e;
13433
- return r;
13434
- }
13435
- var import_compiler_runtime$61 = require_compiler_runtime();
13387
+ });
13388
+ }, import_compiler_runtime$60 = require_compiler_runtime();
13436
13389
  const RowViewerPanel = ({ rowIdx: e, setRowIdx: r, totalRows: c, fieldTypes: l, getRow: u, isSelectable: d, isRowSelected: f, handleRowSelectionChange: p }) => {
13437
13390
  let [m, h] = (0, import_react.useState)(""), g = (0, import_react.useRef)(null), _ = (0, import_react.useId)(), { locale: v } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), y = c === TOO_MANY_ROWS, { data: b, error: S } = useAsyncData(async () => (await u(e)).rows, [
13438
13391
  u,
@@ -13664,7 +13617,7 @@ ${c}
13664
13617
  return d = d.toLowerCase(), l.includes(u) || d.includes(u);
13665
13618
  }
13666
13619
  var SimpleBanner = (e) => {
13667
- let r = (0, import_compiler_runtime$61.c)(8), { kind: c, Icon: l, message: u } = e, d;
13620
+ let r = (0, import_compiler_runtime$60.c)(8), { kind: c, Icon: l, message: u } = e, d;
13668
13621
  r[0] === l ? d = r[1] : (d = (0, import_jsx_runtime.jsx)(l, {
13669
13622
  className: "w-5 h-5"
13670
13623
  }), r[0] = l, r[1] = d);
@@ -13681,96 +13634,71 @@ ${c}
13681
13634
  f
13682
13635
  ]
13683
13636
  }), r[4] = c, r[5] = d, r[6] = f, r[7] = p) : p = r[7], p;
13684
- }, import_compiler_runtime$60 = require_compiler_runtime(), tabTriggerClassName = "text-[13px] uppercase tracking-wide font-semibold cursor-pointer transition-colors", activeClassName = "text-primary", inactiveClassName = "hover:text-foreground";
13685
- const TableExplorerPanel = (e) => {
13686
- let r = (0, import_compiler_runtime$60.c)(45), { rowIdx: c, setRowIdx: l, totalRows: u, fieldTypes: d, getRow: f, isSelectable: m, isRowSelected: h, handleRowSelectionChange: g, previewColumn: _, totalColumns: v, tableId: y, showRowExplorer: b, showColumnExplorer: S, activeTab: T, onTabChange: E } = e, O = b && S, j;
13687
- r[0] !== d || r[1] !== f || r[2] !== g || r[3] !== h || r[4] !== m || r[5] !== c || r[6] !== l || r[7] !== u ? (j = (0, import_jsx_runtime.jsx)(RowViewerPanel, {
13688
- rowIdx: c,
13689
- setRowIdx: l,
13690
- totalRows: u,
13691
- fieldTypes: d,
13692
- getRow: f,
13693
- isSelectable: m,
13694
- isRowSelected: h,
13695
- handleRowSelectionChange: g
13696
- }), r[0] = d, r[1] = f, r[2] = g, r[3] = h, r[4] = m, r[5] = c, r[6] = l, r[7] = u, r[8] = j) : j = r[8];
13697
- let M = j, I;
13698
- r[9] !== d || r[10] !== _ || r[11] !== y || r[12] !== v || r[13] !== u ? (I = _ && (0, import_jsx_runtime.jsx)(ColumnExplorerPanel, {
13699
- previewColumn: _,
13700
- fieldTypes: d,
13701
- totalRows: u,
13702
- totalColumns: v,
13703
- tableId: y
13704
- }), r[9] = d, r[10] = _, r[11] = y, r[12] = v, r[13] = u, r[14] = I) : I = r[14];
13705
- let L = I;
13706
- if (!O) return b ? M : S ? L : null;
13707
- let R = T ?? PANEL_TYPES.ROW_VIEWER, z;
13708
- r[15] === E ? z = r[16] : (z = (e2) => E(e2), r[15] = E, r[16] = z);
13709
- let B;
13710
- r[17] === E ? B = r[18] : (B = () => E(PANEL_TYPES.ROW_VIEWER), r[17] = E, r[18] = B);
13711
- let H = R === PANEL_TYPES.ROW_VIEWER ? activeClassName : inactiveClassName, W;
13712
- r[19] === H ? W = r[20] : (W = cn(tabTriggerClassName, H), r[19] = H, r[20] = W);
13713
- let UU;
13714
- r[21] !== B || r[22] !== W ? (UU = (0, import_jsx_runtime.jsx)(Button, {
13715
- variant: "text",
13716
- size: "xs",
13717
- onClick: B,
13718
- className: W,
13719
- children: "Rows"
13720
- }), r[21] = B, r[22] = W, r[23] = UU) : UU = r[23];
13721
- let G;
13722
- r[24] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (G = (0, import_jsx_runtime.jsx)("span", {
13723
- className: "text-muted-foreground text-xs",
13724
- children: "|"
13725
- }), r[24] = G) : G = r[24];
13726
- let WU;
13727
- r[25] === E ? WU = r[26] : (WU = () => E(PANEL_TYPES.COLUMN_EXPLORER), r[25] = E, r[26] = WU);
13728
- let q = R === PANEL_TYPES.COLUMN_EXPLORER ? activeClassName : inactiveClassName, Z;
13729
- r[27] === q ? Z = r[28] : (Z = cn(tabTriggerClassName, q), r[27] = q, r[28] = Z);
13730
- let GU;
13731
- r[29] !== Z || r[30] !== WU ? (GU = (0, import_jsx_runtime.jsx)(Button, {
13732
- variant: "text",
13733
- size: "xs",
13734
- onClick: WU,
13735
- className: Z,
13736
- children: "Columns"
13737
- }), r[29] = Z, r[30] = WU, r[31] = GU) : GU = r[31];
13738
- let KU;
13739
- r[32] !== GU || r[33] !== UU ? (KU = (0, import_jsx_runtime.jsx)(Fill, {
13740
- name: SlotNames.CONTEXT_AWARE_PANEL_HEADER,
13741
- children: (0, import_jsx_runtime.jsxs)("div", {
13742
- className: "flex items-center gap-1",
13743
- children: [
13744
- UU,
13745
- G,
13746
- GU
13747
- ]
13748
- })
13749
- }), r[32] = GU, r[33] = UU, r[34] = KU) : KU = r[34];
13750
- let qU;
13751
- r[35] === M ? qU = r[36] : (qU = (0, import_jsx_runtime.jsx)(TabsContent, {
13752
- value: PANEL_TYPES.ROW_VIEWER,
13753
- className: "flex-1 overflow-auto",
13754
- children: M
13755
- }), r[35] = M, r[36] = qU);
13756
- let JU;
13757
- r[37] === L ? JU = r[38] : (JU = (0, import_jsx_runtime.jsx)(TabsContent, {
13758
- value: PANEL_TYPES.COLUMN_EXPLORER,
13759
- className: "flex-1 overflow-auto",
13760
- children: L
13761
- }), r[37] = L, r[38] = JU);
13762
- let YU;
13763
- return r[39] !== R || r[40] !== KU || r[41] !== qU || r[42] !== JU || r[43] !== z ? (YU = (0, import_jsx_runtime.jsxs)(Tabs, {
13764
- value: R,
13765
- onValueChange: z,
13637
+ }, tabTriggerClassName = "text-[13px] uppercase tracking-wide font-semibold cursor-pointer transition-colors", activeClassName = "text-primary", inactiveClassName = "hover:text-foreground";
13638
+ function TableExplorerPanel({ rowIdx: e, setRowIdx: r, totalRows: c, fieldTypes: l, getRow: u, isSelectable: d, isRowSelected: f, handleRowSelectionChange: m, previewColumn: h, totalColumns: g, tableId: _, table: v, showRowExplorer: y, showColumnExplorer: b, activeTab: S, onTabChange: T }) {
13639
+ let E = y && b, O = (0, import_jsx_runtime.jsx)(RowViewerPanel, {
13640
+ rowIdx: e,
13641
+ setRowIdx: r,
13642
+ totalRows: c,
13643
+ fieldTypes: l,
13644
+ getRow: u,
13645
+ isSelectable: d,
13646
+ isRowSelected: f,
13647
+ handleRowSelectionChange: m
13648
+ }), j = h && (0, import_jsx_runtime.jsx)(ColumnExplorerPanel, {
13649
+ previewColumn: h,
13650
+ fieldTypes: l,
13651
+ totalRows: c,
13652
+ totalColumns: g,
13653
+ tableId: _,
13654
+ table: v
13655
+ });
13656
+ if (!E) return y ? O : b ? j : null;
13657
+ let M = S ?? PANEL_TYPES.ROW_VIEWER;
13658
+ return (0, import_jsx_runtime.jsxs)(Tabs, {
13659
+ value: M,
13660
+ onValueChange: (e2) => T(e2),
13766
13661
  className: "flex flex-col min-w-[350px]",
13767
13662
  children: [
13768
- KU,
13769
- qU,
13770
- JU
13663
+ (0, import_jsx_runtime.jsx)(Fill, {
13664
+ name: SlotNames.CONTEXT_AWARE_PANEL_HEADER,
13665
+ children: (0, import_jsx_runtime.jsxs)("div", {
13666
+ className: "flex items-center gap-1",
13667
+ children: [
13668
+ (0, import_jsx_runtime.jsx)(Button, {
13669
+ variant: "text",
13670
+ size: "xs",
13671
+ onClick: () => T(PANEL_TYPES.ROW_VIEWER),
13672
+ className: cn(tabTriggerClassName, M === PANEL_TYPES.ROW_VIEWER ? activeClassName : inactiveClassName),
13673
+ children: "Rows"
13674
+ }),
13675
+ (0, import_jsx_runtime.jsx)("span", {
13676
+ className: "text-muted-foreground text-xs",
13677
+ children: "|"
13678
+ }),
13679
+ (0, import_jsx_runtime.jsx)(Button, {
13680
+ variant: "text",
13681
+ size: "xs",
13682
+ onClick: () => T(PANEL_TYPES.COLUMN_EXPLORER),
13683
+ className: cn(tabTriggerClassName, M === PANEL_TYPES.COLUMN_EXPLORER ? activeClassName : inactiveClassName),
13684
+ children: "Columns"
13685
+ })
13686
+ ]
13687
+ })
13688
+ }),
13689
+ (0, import_jsx_runtime.jsx)(TabsContent, {
13690
+ value: PANEL_TYPES.ROW_VIEWER,
13691
+ className: "flex-1 overflow-auto",
13692
+ children: O
13693
+ }),
13694
+ (0, import_jsx_runtime.jsx)(TabsContent, {
13695
+ value: PANEL_TYPES.COLUMN_EXPLORER,
13696
+ className: "flex-1 overflow-auto",
13697
+ children: j
13698
+ })
13771
13699
  ]
13772
- }), r[39] = R, r[40] = KU, r[41] = qU, r[42] = JU, r[43] = z, r[44] = YU) : YU = r[44], YU;
13773
- };
13700
+ });
13701
+ }
13774
13702
  var import_compiler_runtime$59 = require_compiler_runtime();
13775
13703
  function useEffectSkipFirstRender(e, r) {
13776
13704
  let c = (0, import_compiler_runtime$59.c)(2), l = (0, import_react.useRef)(false), u;
@@ -14709,7 +14637,46 @@ ${c}
14709
14637
  }));
14710
14638
  }), jW = h.filter((e2) => e2 instanceof Object && e2.columnName !== void 0), MW = useEvent_default((e2) => {
14711
14639
  m === "single-cell" && z(Functions.asUpdater(e2)(jW).slice(0, 1)), m === "multi-cell" && z(Functions.asUpdater(e2)(jW));
14712
- }), NW = m === "multi" || m === "single", PW = y && !!aW, FW = isInVscodeExtension(), IW = isIslands();
14640
+ }), NW = m === "multi" || m === "single", PW = y && !!aW, FW = isInVscodeExtension(), IW = isIslands(), LW = (0, import_react.useMemo)(() => {
14641
+ if (!(!pW || !(b || PW))) return (e2) => (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
14642
+ children: (0, import_jsx_runtime.jsx)(TableExplorerPanel, {
14643
+ rowIdx: uW,
14644
+ setRowIdx: AW,
14645
+ totalRows: l,
14646
+ fieldTypes: vW,
14647
+ getRow: oW,
14648
+ isSelectable: NW,
14649
+ isRowSelected: !!OW[uW],
14650
+ handleRowSelectionChange: kW,
14651
+ previewColumn: aW,
14652
+ totalColumns: ZU,
14653
+ tableId: lW,
14654
+ table: e2,
14655
+ showRowExplorer: b && !FW,
14656
+ showColumnExplorer: PW && !FW,
14657
+ activeTab: hW,
14658
+ onTabChange: gW
14659
+ })
14660
+ });
14661
+ }, [
14662
+ pW,
14663
+ b,
14664
+ PW,
14665
+ uW,
14666
+ AW,
14667
+ l,
14668
+ vW,
14669
+ oW,
14670
+ NW,
14671
+ OW,
14672
+ kW,
14673
+ aW,
14674
+ ZU,
14675
+ lW,
14676
+ FW,
14677
+ hW,
14678
+ gW
14679
+ ]);
14713
14680
  return (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, {
14714
14681
  children: [
14715
14682
  l === "too_many" && j.pageSize === r.length && (0, import_jsx_runtime.jsxs)(Banner, {
@@ -14734,25 +14701,6 @@ ${c}
14734
14701
  className: "mb-1 rounded",
14735
14702
  children: "Column summaries are unavailable. Filter your data to fewer than 1,000,000 rows."
14736
14703
  }),
14737
- pW && (b || PW) && (0, import_jsx_runtime.jsx)(ContextAwarePanelItem, {
14738
- children: (0, import_jsx_runtime.jsx)(TableExplorerPanel, {
14739
- rowIdx: uW,
14740
- setRowIdx: AW,
14741
- totalRows: l,
14742
- fieldTypes: vW,
14743
- getRow: oW,
14744
- isSelectable: NW,
14745
- isRowSelected: !!OW[uW],
14746
- handleRowSelectionChange: kW,
14747
- previewColumn: aW,
14748
- totalColumns: ZU,
14749
- tableId: lW,
14750
- showRowExplorer: b && !FW,
14751
- showColumnExplorer: PW && !FW,
14752
- activeTab: hW,
14753
- onTabChange: gW
14754
- })
14755
- }),
14756
14704
  (0, import_jsx_runtime.jsx)(ColumnChartContext, {
14757
14705
  value: _W,
14758
14706
  children: (0, import_jsx_runtime.jsx)(Labeled, {
@@ -14806,7 +14754,8 @@ ${c}
14806
14754
  isPanelOpen: fW,
14807
14755
  isAnyPanelOpen: pW,
14808
14756
  viewedRowIdx: uW,
14809
- onViewedRowChange: (e2) => dW(e2)
14757
+ onViewedRowChange: (e2) => dW(e2),
14758
+ renderTableExplorerPanel: LW
14810
14759
  })
14811
14760
  })
14812
14761
  })
@@ -15216,7 +15165,7 @@ ${c}
15216
15165
  fullWidth: m,
15217
15166
  children: T
15218
15167
  }), r[20] = m, r[21] = g, r[22] = c, r[23] = T, r[24] = E) : E = r[24], E;
15219
- }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-OzrfMM5L.js"));
15168
+ }, LazyDataExplorerComponent = import_react.lazy(() => import("./ConnectedDataExplorerComponent-CyV83R2m.js"));
15220
15169
  const DataExplorerPlugin = createPlugin("marimo-data-explorer").withData(object({
15221
15170
  label: string().nullish(),
15222
15171
  data: string()
@@ -16963,51 +16912,51 @@ ${c}
16963
16912
  "SQL Code"
16964
16913
  ]
16965
16914
  }), r[20] = W, r[21] = $U);
16966
- let eW;
16967
- r[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (eW = (0, import_jsx_runtime.jsx)("div", {
16968
- className: "grow"
16969
- }), r[22] = eW) : eW = r[22];
16970
16915
  let tW;
16971
- r[23] !== QU || r[24] !== $U ? (tW = (0, import_jsx_runtime.jsxs)(TabsList, {
16916
+ r[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (tW = (0, import_jsx_runtime.jsx)("div", {
16917
+ className: "grow"
16918
+ }), r[22] = tW) : tW = r[22];
16919
+ let nW;
16920
+ r[23] !== QU || r[24] !== $U ? (nW = (0, import_jsx_runtime.jsxs)(TabsList, {
16972
16921
  className: "h-8",
16973
16922
  children: [
16974
16923
  ZU,
16975
16924
  QU,
16976
16925
  $U,
16977
- eW
16926
+ tW
16978
16927
  ]
16979
- }), r[23] = QU, r[24] = $U, r[25] = tW) : tW = r[25];
16980
- let nW;
16981
- r[26] === j ? nW = r[27] : (nW = j && (0, import_jsx_runtime.jsx)(Spinner, {
16982
- size: "small"
16983
- }), r[26] = j, r[27] = nW);
16928
+ }), r[23] = QU, r[24] = $U, r[25] = nW) : nW = r[25];
16984
16929
  let rW;
16985
- r[28] !== tW || r[29] !== nW ? (rW = (0, import_jsx_runtime.jsxs)("div", {
16930
+ r[26] === j ? rW = r[27] : (rW = j && (0, import_jsx_runtime.jsx)(Spinner, {
16931
+ size: "small"
16932
+ }), r[26] = j, r[27] = rW);
16933
+ let iW;
16934
+ r[28] !== nW || r[29] !== rW ? (iW = (0, import_jsx_runtime.jsxs)("div", {
16986
16935
  className: "flex items-center gap-2",
16987
16936
  children: [
16988
- tW,
16989
- nW
16937
+ nW,
16938
+ rW
16990
16939
  ]
16991
- }), r[28] = tW, r[29] = nW, r[30] = rW) : rW = r[30];
16992
- let iW;
16993
- r[31] !== p || r[32] !== f ? (iW = (e2) => {
16940
+ }), r[28] = nW, r[29] = rW, r[30] = iW) : iW = r[30];
16941
+ let aW;
16942
+ r[31] !== p || r[32] !== f ? (aW = (e2) => {
16994
16943
  dequal(e2, f) || (p(e2), WU(e2));
16995
- }, r[31] = p, r[32] = f, r[33] = iW) : iW = r[33];
16944
+ }, r[31] = p, r[32] = f, r[33] = aW) : aW = r[33];
16996
16945
  let oW;
16997
- r[34] !== B || r[35] !== c || r[36] !== h || r[37] !== G || r[38] !== d || r[39] !== iW ? (oW = (0, import_jsx_runtime.jsx)(TabsContent, {
16946
+ r[34] !== B || r[35] !== c || r[36] !== h || r[37] !== G || r[38] !== d || r[39] !== aW ? (oW = (0, import_jsx_runtime.jsx)(TabsContent, {
16998
16947
  value: "transform",
16999
16948
  className: "mt-1 border rounded-t overflow-hidden",
17000
16949
  children: (0, import_jsx_runtime.jsx)(TransformPanel, {
17001
16950
  ref: q,
17002
16951
  initialValue: G,
17003
16952
  columns: c,
17004
- onChange: iW,
16953
+ onChange: aW,
17005
16954
  onInvalidChange: WU,
17006
16955
  getColumnValues: h,
17007
16956
  columnTypesPerStep: B,
17008
16957
  lazy: d
17009
16958
  })
17010
- }), r[34] = B, r[35] = c, r[36] = h, r[37] = G, r[38] = d, r[39] = iW, r[40] = oW) : oW = r[40];
16959
+ }), r[34] = B, r[35] = c, r[36] = h, r[37] = G, r[38] = d, r[39] = aW, r[40] = oW) : oW = r[40];
17011
16960
  let sW;
17012
16961
  r[41] === H ? sW = r[42] : (sW = H && (0, import_jsx_runtime.jsx)(TabsContent, {
17013
16962
  value: "python-code",
@@ -17031,16 +16980,16 @@ ${c}
17031
16980
  })
17032
16981
  }), r[43] = W, r[44] = cW);
17033
16982
  let lW;
17034
- r[45] !== GU || r[46] !== rW || r[47] !== oW || r[48] !== sW || r[49] !== cW ? (lW = (0, import_jsx_runtime.jsxs)(Tabs, {
16983
+ r[45] !== GU || r[46] !== iW || r[47] !== oW || r[48] !== sW || r[49] !== cW ? (lW = (0, import_jsx_runtime.jsxs)(Tabs, {
17035
16984
  defaultValue: "transform",
17036
16985
  onValueChange: GU,
17037
16986
  children: [
17038
- rW,
16987
+ iW,
17039
16988
  oW,
17040
16989
  sW,
17041
16990
  cW
17042
16991
  ]
17043
- }), r[45] = GU, r[46] = rW, r[47] = oW, r[48] = sW, r[49] = cW, r[50] = lW) : lW = r[50];
16992
+ }), r[45] = GU, r[46] = iW, r[47] = oW, r[48] = sW, r[49] = cW, r[50] = lW) : lW = r[50];
17044
16993
  let uW;
17045
16994
  r[51] === O ? uW = r[52] : (uW = O && (0, import_jsx_runtime.jsx)(ErrorBanner, {
17046
16995
  error: O
@@ -17272,7 +17221,7 @@ ${c}
17272
17221
  }, W = [
17273
17222
  B
17274
17223
  ], r[8] = B, r[9] = H, r[10] = W), (0, import_react.useEffect)(H, W);
17275
- let UU, G, WU, q, Z, KU, qU, YU, XU;
17224
+ let UU, G, WU, q, Z, GU, qU, JU, XU;
17276
17225
  if (r[11] !== R || r[12] !== z || r[13] !== u || r[14] !== b || r[15] !== f || r[16] !== v || r[17] !== h || r[18] !== d || r[19] !== y || r[20] !== l || r[21] !== c) {
17277
17226
  XU = /* @__PURE__ */ Symbol.for("react.early_return_sentinel");
17278
17227
  bb0: {
@@ -17314,7 +17263,7 @@ ${c}
17314
17263
  return;
17315
17264
  }
17316
17265
  y(e3), S(false);
17317
- }, r[42] = G, r[43] = u, r[44] = b, r[45] = v, r[46] = h, r[47] = y, r[48] = j2) : j2 = r[48], YU = j2;
17266
+ }, r[42] = G, r[43] = u, r[44] = b, r[45] = v, r[46] = h, r[47] = y, r[48] = j2) : j2 = r[48], JU = j2;
17318
17267
  let M2;
17319
17268
  r[49] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (M2 = function(e3) {
17320
17269
  let { path: r2, name: c2, isDirectory: l2 } = e3;
@@ -17342,7 +17291,7 @@ ${c}
17342
17291
  let H2 = B2, W2;
17343
17292
  r[55] !== v || r[56] !== l || r[57] !== c ? (W2 = function() {
17344
17293
  l(c.filter((e3) => Paths.dirname(e3.path) !== v));
17345
- }, r[55] = v, r[56] = l, r[57] = c, r[58] = W2) : W2 = r[58], WU = W2, KU = function() {
17294
+ }, r[55] = v, r[56] = l, r[57] = c, r[58] = W2) : W2 = r[58], WU = W2, GU = function() {
17346
17295
  let e3 = [];
17347
17296
  for (let r2 of Z) {
17348
17297
  if (!g2 && r2.is_directory || m2.has(r2.path)) continue;
@@ -17359,7 +17308,7 @@ ${c}
17359
17308
  ]);
17360
17309
  }, q = [];
17361
17310
  let ZU2;
17362
- r[59] === YU ? ZU2 = r[60] : (ZU2 = () => YU(PARENT_DIRECTORY), r[59] = YU, r[60] = ZU2);
17311
+ r[59] === JU ? ZU2 = r[60] : (ZU2 = () => JU(PARENT_DIRECTORY), r[59] = JU, r[60] = ZU2);
17363
17312
  let QU2, $U2;
17364
17313
  r[61] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (QU2 = (0, import_jsx_runtime.jsx)(TableCell, {
17365
17314
  className: "w-[50px] pl-4",
@@ -17383,7 +17332,7 @@ ${c}
17383
17332
  r2.startsWith("//") && (r2 = r2.slice(1));
17384
17333
  let c2 = e3.is_directory ? (e4) => {
17385
17334
  let { path: r3 } = e4;
17386
- return YU(r3);
17335
+ return JU(r3);
17387
17336
  } : H2, l2 = FILE_ICON[e3.is_directory ? "directory" : guessFileIconType(e3.name)], u2 = m2.has(r2);
17388
17337
  q.push((0, import_jsx_runtime.jsxs)(TableRow, {
17389
17338
  className: cn("hover:bg-accent group select-none", {
@@ -17415,11 +17364,11 @@ ${c}
17415
17364
  }, e3.id));
17416
17365
  }
17417
17366
  }
17418
- r[11] = R, r[12] = z, r[13] = u, r[14] = b, r[15] = f, r[16] = v, r[17] = h, r[18] = d, r[19] = y, r[20] = l, r[21] = c, r[22] = UU, r[23] = G, r[24] = WU, r[25] = q, r[26] = Z, r[27] = KU, r[28] = qU, r[29] = YU, r[30] = XU;
17419
- } else UU = r[22], G = r[23], WU = r[24], q = r[25], Z = r[26], KU = r[27], qU = r[28], YU = r[29], XU = r[30];
17367
+ r[11] = R, r[12] = z, r[13] = u, r[14] = b, r[15] = f, r[16] = v, r[17] = h, r[18] = d, r[19] = y, r[20] = l, r[21] = c, r[22] = UU, r[23] = G, r[24] = WU, r[25] = q, r[26] = Z, r[27] = GU, r[28] = qU, r[29] = JU, r[30] = XU;
17368
+ } else UU = r[22], G = r[23], WU = r[24], q = r[25], Z = r[26], GU = r[27], qU = r[28], JU = r[29], XU = r[30];
17420
17369
  if (XU !== /* @__PURE__ */ Symbol.for("react.early_return_sentinel")) return XU;
17421
17370
  let ZU, QU, $U, eW, tW, nW, rW;
17422
- if (r[65] !== UU || r[66] !== R || r[67] !== G || r[68] !== WU || r[69] !== z || r[70] !== q || r[71] !== Z || r[72] !== u || r[73] !== B || r[74] !== m || r[75] !== f || r[76] !== v || r[77] !== h || r[78] !== KU || r[79] !== qU || r[80] !== d || r[81] !== YU || r[82] !== l || r[83] !== T || r[84] !== c.length) {
17371
+ if (r[65] !== UU || r[66] !== R || r[67] !== G || r[68] !== WU || r[69] !== z || r[70] !== q || r[71] !== Z || r[72] !== u || r[73] !== B || r[74] !== m || r[75] !== f || r[76] !== v || r[77] !== h || r[78] !== GU || r[79] !== qU || r[80] !== d || r[81] !== JU || r[82] !== l || r[83] !== T || r[84] !== c.length) {
17423
17372
  let { parentDirectories: e2 } = getProtocolAndParentDirectories({
17424
17373
  path: v,
17425
17374
  delimiter: G,
@@ -17446,7 +17395,7 @@ ${c}
17446
17395
  children: (0, import_jsx_runtime.jsx)(Button, {
17447
17396
  size: "xs",
17448
17397
  variant: "link",
17449
- onClick: UU ? WU : KU,
17398
+ onClick: UU ? WU : GU,
17450
17399
  children: UU ? "Deselect all" : "Select all"
17451
17400
  })
17452
17401
  })
@@ -17454,7 +17403,7 @@ ${c}
17454
17403
  }) : e3;
17455
17404
  })();
17456
17405
  let _2;
17457
- r[94] === YU ? _2 = r[95] : (_2 = (e3) => YU(e3.target.value), r[94] = YU, r[95] = _2);
17406
+ r[94] === JU ? _2 = r[95] : (_2 = (e3) => JU(e3.target.value), r[94] = JU, r[95] = _2);
17458
17407
  let y2 = e2.map(_temp3$5);
17459
17408
  r[96] !== v || r[97] !== _2 || r[98] !== y2 ? (QU = (0, import_jsx_runtime.jsx)(NativeSelect, {
17460
17409
  className: "mt-2 w-full",
@@ -17532,7 +17481,7 @@ ${c}
17532
17481
  })
17533
17482
  })
17534
17483
  ]
17535
- }), r[65] = UU, r[66] = R, r[67] = G, r[68] = WU, r[69] = z, r[70] = q, r[71] = Z, r[72] = u, r[73] = B, r[74] = m, r[75] = f, r[76] = v, r[77] = h, r[78] = KU, r[79] = qU, r[80] = d, r[81] = YU, r[82] = l, r[83] = T, r[84] = c.length, r[85] = ZU, r[86] = QU, r[87] = $U, r[88] = eW, r[89] = tW, r[90] = nW, r[91] = rW;
17484
+ }), r[65] = UU, r[66] = R, r[67] = G, r[68] = WU, r[69] = z, r[70] = q, r[71] = Z, r[72] = u, r[73] = B, r[74] = m, r[75] = f, r[76] = v, r[77] = h, r[78] = GU, r[79] = qU, r[80] = d, r[81] = JU, r[82] = l, r[83] = T, r[84] = c.length, r[85] = ZU, r[86] = QU, r[87] = $U, r[88] = eW, r[89] = tW, r[90] = nW, r[91] = rW;
17536
17485
  } else ZU = r[85], QU = r[86], $U = r[87], eW = r[88], tW = r[89], nW = r[90], rW = r[91];
17537
17486
  let iW;
17538
17487
  r[112] !== tW || r[113] !== nW ? (iW = (0, import_jsx_runtime.jsx)("div", {
@@ -23643,8 +23592,8 @@ ${c}
23643
23592
  r[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (z = () => {
23644
23593
  j.current && clearInputs(j.current);
23645
23594
  }, r[0] = z) : z = r[0];
23646
- let B = z, H;
23647
- r[1] !== y || r[2] !== u || r[3] !== d || r[4] !== O || r[5] !== E ? (H = async (e2) => {
23595
+ let H = z, W;
23596
+ r[1] !== y || r[2] !== u || r[3] !== d || r[4] !== O || r[5] !== E ? (W = async (e2) => {
23648
23597
  if (e2.preventDefault(), O) {
23649
23598
  let e3 = await E({
23650
23599
  value: u
@@ -23656,86 +23605,86 @@ ${c}
23656
23605
  return;
23657
23606
  }
23658
23607
  }
23659
- R(null), d(u), y && B();
23660
- }, r[1] = y, r[2] = u, r[3] = d, r[4] = O, r[5] = E, r[6] = H) : H = r[6];
23661
- let W = !M && m, UU;
23662
- r[7] !== m || r[8] !== W ? (UU = cn("flex flex-col gap-4 rounded-lg py-4 px-8", {
23608
+ R(null), d(u), y && H();
23609
+ }, r[1] = y, r[2] = u, r[3] = d, r[4] = O, r[5] = E, r[6] = W) : W = r[6];
23610
+ let UU = !M && m, G;
23611
+ r[7] !== m || r[8] !== UU ? (G = cn("flex flex-col gap-4 rounded-lg py-4 px-8", {
23663
23612
  "bg-(--gray-1) shadow-md border border-input": m,
23664
- "bg-(--amber-1) border-(--amber-7)": W
23665
- }), r[7] = m, r[8] = W, r[9] = UU) : UU = r[9];
23666
- let G;
23667
- r[10] !== u || r[11] !== d ? (G = (e2) => {
23668
- e2.key === "Enter" && (e2.ctrlKey || e2.metaKey) && (e2.preventDefault(), e2.stopPropagation(), d(u));
23669
- }, r[10] = u, r[11] = d, r[12] = G) : G = r[12];
23613
+ "bg-(--amber-1) border-(--amber-7)": UU
23614
+ }), r[7] = m, r[8] = UU, r[9] = G) : G = r[9];
23670
23615
  let WU;
23671
- r[13] === f ? WU = r[14] : (WU = f === null ? null : (0, import_jsx_runtime.jsx)("div", {
23616
+ r[10] !== u || r[11] !== d ? (WU = (e2) => {
23617
+ e2.key === "Enter" && (e2.ctrlKey || e2.metaKey) && (e2.preventDefault(), e2.stopPropagation(), d(u));
23618
+ }, r[10] = u, r[11] = d, r[12] = WU) : WU = r[12];
23619
+ let q;
23620
+ r[13] === f ? q = r[14] : (q = f === null ? null : (0, import_jsx_runtime.jsx)("div", {
23672
23621
  className: "text-center",
23673
23622
  children: renderHTML({
23674
23623
  html: f
23675
23624
  })
23676
- }), r[13] = f, r[14] = WU);
23677
- let q;
23678
- r[15] === L ? q = r[16] : (q = L != null && (0, import_jsx_runtime.jsx)(Banner, {
23625
+ }), r[13] = f, r[14] = q);
23626
+ let Z;
23627
+ r[15] === L ? Z = r[16] : (Z = L != null && (0, import_jsx_runtime.jsx)(Banner, {
23679
23628
  kind: "danger",
23680
23629
  className: "rounded",
23681
23630
  children: L ?? "Invalid input"
23682
- }), r[15] = L, r[16] = q);
23683
- let Z;
23684
- r[17] === c ? Z = r[18] : (Z = (0, import_jsx_runtime.jsx)("div", {
23685
- children: c
23686
- }), r[17] = c, r[18] = Z);
23631
+ }), r[15] = L, r[16] = Z);
23687
23632
  let GU;
23688
- r[19] !== S || r[20] !== T || r[21] !== b ? (GU = b && withTooltip((0, import_jsx_runtime.jsx)(Button, {
23633
+ r[17] === c ? GU = r[18] : (GU = (0, import_jsx_runtime.jsx)("div", {
23634
+ children: c
23635
+ }), r[17] = c, r[18] = GU);
23636
+ let KU;
23637
+ r[19] !== S || r[20] !== T || r[21] !== b ? (KU = b && withTooltip((0, import_jsx_runtime.jsx)(Button, {
23689
23638
  "data-testid": "marimo-plugin-form-clear-button",
23690
23639
  variant: "text",
23691
23640
  onClick: (e2) => {
23692
- e2.preventDefault(), B();
23641
+ e2.preventDefault(), H();
23693
23642
  },
23694
23643
  children: S
23695
- }), T), r[19] = S, r[20] = T, r[21] = b, r[22] = GU) : GU = r[22];
23696
- let KU = v || h, qU;
23697
- r[23] === h ? qU = r[24] : (qU = h && (0, import_jsx_runtime.jsx)(LoaderCircle, {
23644
+ }), T), r[19] = S, r[20] = T, r[21] = b, r[22] = KU) : KU = r[22];
23645
+ let qU = v || h, JU;
23646
+ r[23] === h ? JU = r[24] : (JU = h && (0, import_jsx_runtime.jsx)(LoaderCircle, {
23698
23647
  className: "h-4 w-4 mr-2 animate-spin"
23699
- }), r[23] = h, r[24] = qU);
23700
- let JU;
23701
- r[25] !== g || r[26] !== KU || r[27] !== qU || r[28] !== I ? (JU = (0, import_jsx_runtime.jsxs)(Button, {
23648
+ }), r[23] = h, r[24] = JU);
23649
+ let YU;
23650
+ r[25] !== g || r[26] !== qU || r[27] !== JU || r[28] !== I ? (YU = (0, import_jsx_runtime.jsxs)(Button, {
23702
23651
  "data-testid": "marimo-plugin-form-submit-button",
23703
23652
  variant: I,
23704
- disabled: KU,
23653
+ disabled: qU,
23705
23654
  type: "submit",
23706
23655
  children: [
23707
- qU,
23656
+ JU,
23708
23657
  g
23709
23658
  ]
23710
- }), r[25] = g, r[26] = KU, r[27] = qU, r[28] = I, r[29] = JU) : JU = r[29];
23711
- let YU;
23712
- r[30] !== _ || r[31] !== JU ? (YU = withTooltip(JU, _), r[30] = _, r[31] = JU, r[32] = YU) : YU = r[32];
23659
+ }), r[25] = g, r[26] = qU, r[27] = JU, r[28] = I, r[29] = YU) : YU = r[29];
23713
23660
  let XU;
23714
- r[33] !== YU || r[34] !== GU ? (XU = (0, import_jsx_runtime.jsxs)("div", {
23661
+ r[30] !== _ || r[31] !== YU ? (XU = withTooltip(YU, _), r[30] = _, r[31] = YU, r[32] = XU) : XU = r[32];
23662
+ let ZU;
23663
+ r[33] !== XU || r[34] !== KU ? (ZU = (0, import_jsx_runtime.jsxs)("div", {
23715
23664
  className: "flex justify-end gap-2 font-code",
23716
23665
  children: [
23717
- GU,
23718
- YU
23666
+ KU,
23667
+ XU
23719
23668
  ]
23720
- }), r[33] = YU, r[34] = GU, r[35] = XU) : XU = r[35];
23721
- let ZU;
23722
- r[36] !== XU || r[37] !== UU || r[38] !== G || r[39] !== WU || r[40] !== q || r[41] !== Z ? (ZU = (0, import_jsx_runtime.jsxs)("div", {
23723
- className: UU,
23724
- onKeyDown: G,
23669
+ }), r[33] = XU, r[34] = KU, r[35] = ZU) : ZU = r[35];
23670
+ let QU;
23671
+ r[36] !== ZU || r[37] !== G || r[38] !== WU || r[39] !== q || r[40] !== Z || r[41] !== GU ? (QU = (0, import_jsx_runtime.jsxs)("div", {
23672
+ className: G,
23673
+ onKeyDown: WU,
23725
23674
  children: [
23726
- WU,
23727
23675
  q,
23728
23676
  Z,
23729
- XU
23677
+ GU,
23678
+ ZU
23730
23679
  ]
23731
- }), r[36] = XU, r[37] = UU, r[38] = G, r[39] = WU, r[40] = q, r[41] = Z, r[42] = ZU) : ZU = r[42];
23732
- let QU;
23733
- return r[43] !== ZU || r[44] !== H ? (QU = (0, import_jsx_runtime.jsx)("form", {
23680
+ }), r[36] = ZU, r[37] = G, r[38] = WU, r[39] = q, r[40] = Z, r[41] = GU, r[42] = QU) : QU = r[42];
23681
+ let $U;
23682
+ return r[43] !== QU || r[44] !== W ? ($U = (0, import_jsx_runtime.jsx)("form", {
23734
23683
  className: "contents",
23735
23684
  ref: j,
23736
- onSubmit: H,
23737
- children: ZU
23738
- }), r[43] = ZU, r[44] = H, r[45] = QU) : QU = r[45], QU;
23685
+ onSubmit: W,
23686
+ children: QU
23687
+ }), r[43] = QU, r[44] = W, r[45] = $U) : $U = r[45], $U;
23739
23688
  };
23740
23689
  var Form = (e) => {
23741
23690
  let r = (0, import_compiler_runtime$42.c)(24), c, l, u, d, f, p;
@@ -26571,7 +26520,7 @@ ${c}
26571
26520
  return true;
26572
26521
  }
26573
26522
  }
26574
- var LazyVegaComponent = import_react.lazy(() => import("./vega-component-DJNmOdUj.js")), VegaPlugin = class {
26523
+ var LazyVegaComponent = import_react.lazy(() => import("./vega-component-Dq-SH463.js")), VegaPlugin = class {
26575
26524
  constructor() {
26576
26525
  __publicField(this, "tagName", "marimo-vega");
26577
26526
  __publicField(this, "validator", object({
@@ -26901,7 +26850,7 @@ ${c}
26901
26850
  themeVariables: e.data.theme_variables
26902
26851
  });
26903
26852
  }
26904
- }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-IU93XzmY.js").then(async (m) => {
26853
+ }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-lXOw5Py9.js").then(async (m) => {
26905
26854
  await m.__tla;
26906
26855
  return m;
26907
26856
  })), import_compiler_runtime$20 = require_compiler_runtime();
@@ -33010,18 +32959,24 @@ ${c}
33010
32959
  cells: []
33011
32960
  })
33012
32961
  };
32962
+ function hasRenderableOutput(e) {
32963
+ return e.output != null && e.output.data !== "";
32964
+ }
33013
32965
  function computeSlideCellsInfo(e, r) {
33014
32966
  var _a3;
33015
- let c = e.filter((e2) => e2.output != null && e2.output.data !== ""), l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Map(), d = null, f = 0;
33016
- for (let [e2, p] of c.entries()) {
33017
- let c2 = (_a3 = r.cells.get(p.id)) == null ? void 0 : _a3.type;
33018
- c2 && u.set(p.id, c2), c2 === "skip" ? l.add(p.id) : d === null && (d = p, f = e2);
32967
+ let c = [
32968
+ ...e
32969
+ ], l = /* @__PURE__ */ new Set(), u = /* @__PURE__ */ new Set(), d = /* @__PURE__ */ new Map(), f = null, p = 0;
32970
+ for (let [e2, m] of c.entries()) {
32971
+ let c2 = (_a3 = r.cells.get(m.id)) == null ? void 0 : _a3.type, h = hasRenderableOutput(m);
32972
+ c2 && d.set(m.id, c2), h || u.add(m.id), c2 === "skip" || !h ? l.add(m.id) : f === null && (f = m, p = e2);
33019
32973
  }
33020
32974
  return {
33021
- cellsWithOutput: c,
32975
+ slideCells: c,
33022
32976
  skippedIds: l,
33023
- slideTypes: u,
33024
- startCellIndex: f
32977
+ noOutputIds: u,
32978
+ slideTypes: d,
32979
+ startCellIndex: p
33025
32980
  };
33026
32981
  }
33027
32982
  function useCombinedRefs() {
@@ -35823,7 +35778,10 @@ ${c}
35823
35778
  Icon: l
35824
35779
  };
35825
35780
  }
35826
- var SLIDE_ASPECT_RATIO = 16 / 9, SLIDE_BASE_WIDTH = 960;
35781
+ var NO_OUTPUT_VISUAL = {
35782
+ label: "No output",
35783
+ description: "Hidden because this cell has no output."
35784
+ }, SLIDE_ASPECT_RATIO = 16 / 9, SLIDE_BASE_WIDTH = 520;
35827
35785
  function computeThumbnailDimensions(e) {
35828
35786
  return {
35829
35787
  width: e,
@@ -35875,26 +35833,26 @@ ${c}
35875
35833
  function _temp$4() {
35876
35834
  return /* @__PURE__ */ new Set();
35877
35835
  }
35878
- const SlidesMinimap = ({ cells: e, thumbnailWidth: r, canReorder: c, activeCellId: l, skippedIds: u, slideTypes: f, onSlideClick: p }) => {
35879
- let m = useCellIds(), { moveCellToIndex: h } = useCellActions(), g = (0, import_react.useRef)(null), _ = useVisibleCellIds(g), [v, y] = (0, import_react.useState)(null), [b, S] = (0, import_react.useState)(null), w = computeThumbnailDimensions(r);
35836
+ const SlidesMinimap = ({ cells: e, thumbnailWidth: r, canReorder: c, activeCellId: l, skippedIds: u, noOutputIds: f, slideTypes: p, onSlideClick: m }) => {
35837
+ let h = useCellIds(), { moveCellToIndex: g } = useCellActions(), _ = (0, import_react.useRef)(null), v = useVisibleCellIds(_), [y, b] = (0, import_react.useState)(null), [S, w] = (0, import_react.useState)(null), T = computeThumbnailDimensions(r);
35880
35838
  (0, import_react.useEffect)(() => {
35881
35839
  var _a3;
35882
- !l || !g.current || ((_a3 = g.current.querySelector(`[data-cell-id="${l}"]`)) == null ? void 0 : _a3.scrollIntoView({
35840
+ !l || !_.current || ((_a3 = _.current.querySelector(`[data-cell-id="${l}"]`)) == null ? void 0 : _a3.scrollIntoView({
35883
35841
  block: "nearest",
35884
35842
  behavior: "instant"
35885
35843
  }));
35886
35844
  }, [
35887
35845
  l
35888
35846
  ]);
35889
- let T = useSensors(useSensor(PointerSensor, {
35847
+ let E = useSensors(useSensor(PointerSensor, {
35890
35848
  activationConstraint: {
35891
35849
  distance: 8
35892
35850
  }
35893
- })), E = v ? e.find((e2) => e2.id === v) ?? null : null, O = () => {
35894
- y(null), S(null);
35895
- }, j = (e2) => {
35851
+ })), O = y ? e.find((e2) => e2.id === y) ?? null : null, j = () => {
35852
+ b(null), w(null);
35853
+ }, M = (e2) => {
35896
35854
  let r2 = projectDropTarget(e2);
35897
- S((e3) => (e3 == null ? void 0 : e3.overId) === (r2 == null ? void 0 : r2.overId) && (e3 == null ? void 0 : e3.position) === (r2 == null ? void 0 : r2.position) ? e3 : r2);
35855
+ w((e3) => (e3 == null ? void 0 : e3.overId) === (r2 == null ? void 0 : r2.overId) && (e3 == null ? void 0 : e3.position) === (r2 == null ? void 0 : r2.position) ? e3 : r2);
35898
35856
  };
35899
35857
  return c ? (0, import_jsx_runtime.jsxs)(DndContext, {
35900
35858
  autoScroll: MINIMAP_AUTO_SCROLL,
@@ -35902,64 +35860,66 @@ ${c}
35902
35860
  modifiers: [
35903
35861
  restrictToVerticalAxis
35904
35862
  ],
35905
- sensors: T,
35863
+ sensors: E,
35906
35864
  onDragStart: (e2) => {
35907
- S(null);
35865
+ w(null);
35908
35866
  let r2 = asCellId(e2.active.id);
35909
- r2 && y(r2);
35867
+ r2 && b(r2);
35910
35868
  },
35911
- onDragMove: j,
35912
- onDragOver: j,
35869
+ onDragMove: M,
35870
+ onDragOver: M,
35913
35871
  onDragEnd: (e2) => {
35914
35872
  try {
35915
- if (v && b) {
35873
+ if (y && S) {
35916
35874
  let e3 = resolveDropTarget({
35917
- cellIds: m,
35918
- activeId: v,
35919
- target: b
35875
+ cellIds: h,
35876
+ activeId: y,
35877
+ target: S
35920
35878
  });
35921
- e3 && h(e3);
35879
+ e3 && g(e3);
35922
35880
  }
35923
35881
  } catch (e3) {
35924
35882
  Logger.warn("Drop failed", e3);
35925
35883
  } finally {
35926
- O();
35884
+ j();
35927
35885
  }
35928
35886
  },
35929
- onDragCancel: O,
35887
+ onDragCancel: j,
35930
35888
  children: [
35931
35889
  (0, import_jsx_runtime.jsx)(SlideThumbnailsContainer, {
35932
- ref: g,
35890
+ ref: _,
35933
35891
  children: (0, import_jsx_runtime.jsx)(SortableContext, {
35934
35892
  items: e.map((e2) => e2.id),
35935
35893
  strategy: verticalListSortingStrategy,
35936
35894
  children: e.map((e2, r2) => (0, import_jsx_runtime.jsx)(SortableSlideThumbnail, {
35937
35895
  cell: e2,
35938
- dimensions: w,
35939
- isActive: v === e2.id,
35896
+ dimensions: T,
35897
+ isActive: y === e2.id,
35940
35898
  isActiveSlide: e2.id === l,
35941
- isVisible: _.has(e2.id),
35899
+ isVisible: v.has(e2.id),
35900
+ isNoOutput: f == null ? void 0 : f.has(e2.id),
35942
35901
  slideType: resolveSlideType({
35943
35902
  cellId: e2.id,
35944
- slideTypes: f,
35903
+ slideTypes: p,
35945
35904
  skippedIds: u
35946
35905
  }),
35947
- dropIndicator: (b == null ? void 0 : b.overId) === e2.id && v !== e2.id ? b.position : null,
35948
- onClick: () => p(r2)
35906
+ dropIndicator: (S == null ? void 0 : S.overId) === e2.id && y !== e2.id ? S.position : null,
35907
+ onClick: () => m(r2)
35949
35908
  }, e2.id))
35950
35909
  })
35951
35910
  }),
35952
35911
  (0, import_jsx_runtime.jsx)(DragOverlay, {
35953
- children: E && (0, import_jsx_runtime.jsx)(SlideThumbnailCard, {
35954
- cell: E,
35955
- dimensions: w,
35912
+ children: O && (0, import_jsx_runtime.jsx)(SlideThumbnailCard, {
35913
+ cell: O,
35914
+ dimensions: T,
35956
35915
  isOverlay: true,
35957
- isActiveDragSource: true
35916
+ isActiveDragSource: true,
35917
+ isNoOutput: f == null ? void 0 : f.has(O.id)
35958
35918
  })
35959
35919
  })
35960
35920
  ]
35961
35921
  }) : (0, import_jsx_runtime.jsxs)(SlideThumbnailsContainer, {
35962
- ref: g,
35922
+ ref: _,
35963
35923
  children: [
35964
35924
  (0, import_jsx_runtime.jsxs)("div", {
35965
35925
  className: "text-xs text-gray-500 flex items-center gap-0.5",
@@ -35972,15 +35932,16 @@ ${c}
35972
35932
  }),
35973
35933
  e.map((e2, r2) => (0, import_jsx_runtime.jsx)(SlideThumbnailRow, {
35974
35934
  cell: e2,
35975
- dimensions: w,
35935
+ dimensions: T,
35976
35936
  isActiveSlide: e2.id === l,
35977
- isVisible: _.has(e2.id),
35937
+ isVisible: v.has(e2.id),
35938
+ isNoOutput: f == null ? void 0 : f.has(e2.id),
35978
35939
  slideType: resolveSlideType({
35979
35940
  cellId: e2.id,
35980
- slideTypes: f,
35941
+ slideTypes: p,
35981
35942
  skippedIds: u
35982
35943
  }),
35983
- onClick: () => p(r2)
35944
+ onClick: () => m(r2)
35984
35945
  }, e2.id))
35985
35946
  ]
35986
35947
  });
@@ -35993,128 +35954,138 @@ ${c}
35993
35954
  children: c
35994
35955
  }), r[0] = c, r[1] = l, r[2] = u) : u = r[2], u;
35995
35956
  }, SortableSlideThumbnail = (e) => {
35996
- let r = (0, import_compiler_runtime$10.c)(14), { cell: c, dimensions: l, dropIndicator: u, isActive: d, isActiveSlide: f, isVisible: p, slideType: m, onClick: h } = e, g;
35997
- r[0] === c.id ? g = r[1] : (g = {
35957
+ let r = (0, import_compiler_runtime$10.c)(15), { cell: c, dimensions: l, dropIndicator: u, isActive: d, isActiveSlide: f, isVisible: p, isNoOutput: m, slideType: h, onClick: g } = e, _;
35958
+ r[0] === c.id ? _ = r[1] : (_ = {
35998
35959
  id: c.id
35999
- }, r[0] = c.id, r[1] = g);
36000
- let { attributes: _, listeners: v, setNodeRef: y } = useSortable(g), b;
36001
- return r[2] !== _ || r[3] !== c || r[4] !== l || r[5] !== u || r[6] !== d || r[7] !== f || r[8] !== p || r[9] !== v || r[10] !== h || r[11] !== y || r[12] !== m ? (b = (0, import_jsx_runtime.jsx)(SlideThumbnailRow, {
36002
- ref: y,
35960
+ }, r[0] = c.id, r[1] = _);
35961
+ let { attributes: v, listeners: y, setNodeRef: b } = useSortable(_), S;
35962
+ return r[2] !== v || r[3] !== c || r[4] !== l || r[5] !== u || r[6] !== d || r[7] !== f || r[8] !== m || r[9] !== p || r[10] !== y || r[11] !== g || r[12] !== b || r[13] !== h ? (S = (0, import_jsx_runtime.jsx)(SlideThumbnailRow, {
35963
+ ref: b,
36003
35964
  cell: c,
36004
35965
  dimensions: l,
36005
35966
  dropIndicator: u,
36006
35967
  isActiveDragSource: d,
36007
35968
  isActiveSlide: f,
36008
35969
  isVisible: p,
36009
- slideType: m,
36010
- onClick: h,
36011
- ..._,
36012
- ...v
36013
- }), r[2] = _, r[3] = c, r[4] = l, r[5] = u, r[6] = d, r[7] = f, r[8] = p, r[9] = v, r[10] = h, r[11] = y, r[12] = m, r[13] = b) : b = r[13], b;
35970
+ isNoOutput: m,
35971
+ slideType: h,
35972
+ onClick: g,
35973
+ ...v,
35974
+ ...y
35975
+ }), r[2] = v, r[3] = c, r[4] = l, r[5] = u, r[6] = d, r[7] = f, r[8] = m, r[9] = p, r[10] = y, r[11] = g, r[12] = b, r[13] = h, r[14] = S) : S = r[14], S;
36014
35976
  }, SlideThumbnailRow = (e) => {
36015
- let r = (0, import_compiler_runtime$10.c)(35), c, l, u, d, f, m, h, g, _, v, y, b;
36016
- r[0] === e ? (c = r[1], l = r[2], u = r[3], d = r[4], f = r[5], m = r[6], h = r[7], g = r[8], _ = r[9], v = r[10], y = r[11], b = r[12]) : ({ cell: c, dimensions: u, className: l, style: v, dropIndicator: d, isActiveSlide: y, isActiveDragSource: b, isVisible: f, slideType: _, onClick: m, ref: g, ...h } = e, r[0] = e, r[1] = c, r[2] = l, r[3] = u, r[4] = d, r[5] = f, r[6] = m, r[7] = h, r[8] = g, r[9] = _, r[10] = v, r[11] = y, r[12] = b);
36017
- let S = y === void 0 ? false : y, w = b === void 0 ? false : b, T;
36018
- r[13] === v ? T = r[14] : (T = {
35977
+ let r = (0, import_compiler_runtime$10.c)(37), c, l, u, d, f, m, h, g, _, v, y, b, S;
35978
+ r[0] === e ? (c = r[1], l = r[2], u = r[3], d = r[4], f = r[5], m = r[6], h = r[7], g = r[8], _ = r[9], v = r[10], y = r[11], b = r[12], S = r[13]) : ({ cell: c, dimensions: u, className: l, style: y, dropIndicator: d, isActiveSlide: b, isActiveDragSource: S, isVisible: m, isNoOutput: f, slideType: v, onClick: h, ref: _, ...g } = e, r[0] = e, r[1] = c, r[2] = l, r[3] = u, r[4] = d, r[5] = f, r[6] = m, r[7] = h, r[8] = g, r[9] = _, r[10] = v, r[11] = y, r[12] = b, r[13] = S);
35979
+ let w = b === void 0 ? false : b, T = S === void 0 ? false : S, E;
35980
+ r[14] === y ? E = r[15] : (E = {
36019
35981
  paddingTop: MINIMAP_GAP,
36020
35982
  paddingBottom: MINIMAP_GAP,
36021
- ...v
36022
- }, r[13] = v, r[14] = T);
36023
- let E = T, O = c.id, j;
36024
- r[15] === l ? j = r[16] : (j = cn("relative shrink-0 appearance-none text-left p-0 bg-transparent outline-none", l), r[15] = l, r[16] = j);
36025
- let M;
36026
- r[17] === d ? M = r[18] : (M = d && (0, import_jsx_runtime.jsx)("div", {
36027
- className: cn("absolute left-2 right-2 h-0.5 rounded-full bg-blue-500 z-20 pointer-events-none", d === "after" ? "bottom-0 translate-y-1/2" : "top-0 -translate-y-1/2")
36028
- }), r[17] = d, r[18] = M);
35983
+ ...y
35984
+ }, r[14] = y, r[15] = E);
35985
+ let O = E, j = c.id, M;
35986
+ r[16] === l ? M = r[17] : (M = cn("relative shrink-0 appearance-none text-left p-0 bg-transparent outline-none", l), r[16] = l, r[17] = M);
36029
35987
  let I;
36030
- r[19] !== c || r[20] !== u || r[21] !== w || r[22] !== S || r[23] !== f || r[24] !== _ ? (I = (0, import_jsx_runtime.jsx)(SlideThumbnailCard, {
35988
+ r[18] === d ? I = r[19] : (I = d && (0, import_jsx_runtime.jsx)("div", {
35989
+ className: cn("absolute left-2 right-2 h-0.5 rounded-full bg-blue-500 z-20 pointer-events-none", d === "after" ? "bottom-0 translate-y-1/2" : "top-0 -translate-y-1/2")
35990
+ }), r[18] = d, r[19] = I);
35991
+ let L;
35992
+ r[20] !== c || r[21] !== u || r[22] !== T || r[23] !== w || r[24] !== f || r[25] !== m || r[26] !== v ? (L = (0, import_jsx_runtime.jsx)(SlideThumbnailCard, {
36031
35993
  cell: c,
36032
35994
  dimensions: u,
36033
- isActiveSlide: S,
36034
- isActiveDragSource: w,
36035
- isVisible: f,
36036
- slideType: _
36037
- }), r[19] = c, r[20] = u, r[21] = w, r[22] = S, r[23] = f, r[24] = _, r[25] = I) : I = r[25];
36038
- let L;
36039
- return r[26] !== c.id || r[27] !== m || r[28] !== h || r[29] !== g || r[30] !== E || r[31] !== j || r[32] !== M || r[33] !== I ? (L = (0, import_jsx_runtime.jsxs)("button", {
36040
- ref: g,
35995
+ isActiveSlide: w,
35996
+ isActiveDragSource: T,
35997
+ isVisible: m,
35998
+ isNoOutput: f,
35999
+ slideType: v
36000
+ }), r[20] = c, r[21] = u, r[22] = T, r[23] = w, r[24] = f, r[25] = m, r[26] = v, r[27] = L) : L = r[27];
36001
+ let R;
36002
+ return r[28] !== c.id || r[29] !== h || r[30] !== g || r[31] !== _ || r[32] !== O || r[33] !== M || r[34] !== I || r[35] !== L ? (R = (0, import_jsx_runtime.jsxs)("button", {
36003
+ ref: _,
36041
36004
  type: "button",
36042
- "data-cell-id": O,
36043
- className: j,
36044
- style: E,
36045
- onClick: m,
36046
- ...h,
36005
+ "data-cell-id": j,
36006
+ className: M,
36007
+ style: O,
36008
+ onClick: h,
36009
+ ...g,
36047
36010
  children: [
36048
- M,
36049
- I
36011
+ I,
36012
+ L
36050
36013
  ]
36051
- }), r[26] = c.id, r[27] = m, r[28] = h, r[29] = g, r[30] = E, r[31] = j, r[32] = M, r[33] = I, r[34] = L) : L = r[34], L;
36014
+ }), r[28] = c.id, r[29] = h, r[30] = g, r[31] = _, r[32] = O, r[33] = M, r[34] = I, r[35] = L, r[36] = R) : R = r[36], R;
36052
36015
  }, SlideThumbnailCard = (e) => {
36053
- let r = (0, import_compiler_runtime$10.c)(47), c, l, u, d, f, m, h, g, _, v, y;
36054
- r[0] === e ? (c = r[1], l = r[2], u = r[3], d = r[4], f = r[5], m = r[6], h = r[7], g = r[8], _ = r[9], v = r[10], y = r[11]) : ({ cell: c, dimensions: u, className: l, style: h, isActiveSlide: g, isActiveDragSource: _, isOverlay: v, isVisible: y, slideType: m, ref: f, ...d } = e, r[0] = e, r[1] = c, r[2] = l, r[3] = u, r[4] = d, r[5] = f, r[6] = m, r[7] = h, r[8] = g, r[9] = _, r[10] = v, r[11] = y);
36055
- let b = g === void 0 ? false : g, S = _ === void 0 ? false : _, w = v === void 0 ? false : v, T = y === void 0 ? false : y, { width: E, height: O, scale: j } = u, M;
36056
- r[12] === m ? M = r[13] : (M = getSlideTypeVisual(m), r[12] = m, r[13] = M);
36057
- let I = M, L = m === "skip", R;
36058
- r[14] !== O || r[15] !== w || r[16] !== E ? (R = w ? null : {
36016
+ let r = (0, import_compiler_runtime$10.c)(50), c, l, u, d, f, m, h, g, _, v, y, b;
36017
+ r[0] === e ? (c = r[1], l = r[2], u = r[3], d = r[4], f = r[5], m = r[6], h = r[7], g = r[8], _ = r[9], v = r[10], y = r[11], b = r[12]) : ({ cell: c, dimensions: u, className: l, style: h, isActiveSlide: g, isActiveDragSource: _, isOverlay: v, isVisible: y, isNoOutput: b, slideType: m, ref: f, ...d } = e, r[0] = e, r[1] = c, r[2] = l, r[3] = u, r[4] = d, r[5] = f, r[6] = m, r[7] = h, r[8] = g, r[9] = _, r[10] = v, r[11] = y, r[12] = b);
36018
+ let S = g === void 0 ? false : g, w = _ === void 0 ? false : _, T = v === void 0 ? false : v, E = y === void 0 ? false : y, O = b === void 0 ? false : b, { width: j, height: M, scale: I } = u, L;
36019
+ r[13] !== O || r[14] !== m ? (L = O ? NO_OUTPUT_VISUAL : getSlideTypeVisual(m), r[13] = O, r[14] = m, r[15] = L) : L = r[15];
36020
+ let R = L, z = O || m === "skip", B;
36021
+ r[16] !== M || r[17] !== T || r[18] !== j ? (B = T ? null : {
36059
36022
  contentVisibility: "auto",
36060
- containIntrinsicSize: `${E}px ${O}px`
36061
- }, r[14] = O, r[15] = w, r[16] = E, r[17] = R) : R = r[17];
36062
- let z;
36063
- r[18] !== O || r[19] !== h || r[20] !== R || r[21] !== E ? (z = {
36064
- width: E,
36065
- height: O,
36023
+ containIntrinsicSize: `${j}px ${M}px`
36024
+ }, r[16] = M, r[17] = T, r[18] = j, r[19] = B) : B = r[19];
36025
+ let H;
36026
+ r[20] !== M || r[21] !== h || r[22] !== B || r[23] !== j ? (H = {
36027
+ width: j,
36028
+ height: M,
36066
36029
  contain: "strict",
36067
- ...R,
36030
+ ...B,
36068
36031
  ...h
36069
- }, r[18] = O, r[19] = h, r[20] = R, r[21] = E, r[22] = z) : z = r[22];
36070
- let B = z, H = T || w, W = b || S || w ? "border-blue-500" : "border-border", UU = S && !w && "opacity-35", G = w && "opacity-95 shadow-lg", WU;
36071
- r[23] !== l || r[24] !== G || r[25] !== W || r[26] !== UU ? (WU = cn("border-2 shrink-0 rounded-md relative select-none bg-background cursor-pointer active:cursor-grabbing overflow-hidden", W, UU, G, l), r[23] = l, r[24] = G, r[25] = W, r[26] = UU, r[27] = WU) : WU = r[27];
36072
- let q;
36073
- r[28] !== c || r[29] !== O || r[30] !== j || r[31] !== H || r[32] !== E ? (q = H && (0, import_jsx_runtime.jsx)("div", {
36032
+ }, r[20] = M, r[21] = h, r[22] = B, r[23] = j, r[24] = H) : H = r[24];
36033
+ let W = H, UU = E || T, G = S || w || T ? "border-blue-500" : "border-border", WU = w && !T && "opacity-35", q = T && "opacity-95 shadow-lg", Z;
36034
+ r[25] !== l || r[26] !== WU || r[27] !== q || r[28] !== G ? (Z = cn("border-2 shrink-0 rounded-md relative select-none bg-background cursor-pointer active:cursor-grabbing overflow-hidden", G, WU, q, l), r[25] = l, r[26] = WU, r[27] = q, r[28] = G, r[29] = Z) : Z = r[29];
36035
+ let GU;
36036
+ r[30] !== c || r[31] !== M || r[32] !== O || r[33] !== I || r[34] !== UU || r[35] !== j ? (GU = UU && (0, import_jsx_runtime.jsx)("div", {
36074
36037
  className: "flex p-6 box-border pointer-events-none mo-slide-content overflow-hidden",
36075
36038
  style: {
36076
- transform: `scale(${j})`,
36039
+ transform: `scale(${I})`,
36077
36040
  transformOrigin: "top left",
36078
- width: E / j,
36079
- height: O / j
36041
+ width: j / I,
36042
+ height: M / I
36080
36043
  },
36081
- children: (0, import_jsx_runtime.jsx)(Slide, {
36044
+ children: O ? (0, import_jsx_runtime.jsx)(MiniCodePreview, {
36045
+ code: c.code
36046
+ }) : (0, import_jsx_runtime.jsx)(Slide, {
36082
36047
  cellId: c.id,
36083
36048
  status: c.status,
36084
36049
  output: c.output
36085
36050
  })
36086
- }), r[28] = c, r[29] = O, r[30] = j, r[31] = H, r[32] = E, r[33] = q) : q = r[33];
36087
- let Z;
36088
- r[34] === L ? Z = r[35] : (Z = L && (0, import_jsx_runtime.jsx)("div", {
36089
- className: "absolute inset-0 bg-muted/60 pointer-events-none",
36051
+ }), r[30] = c, r[31] = M, r[32] = O, r[33] = I, r[34] = UU, r[35] = j, r[36] = GU) : GU = r[36];
36052
+ let KU;
36053
+ r[37] === z ? KU = r[38] : (KU = z && (0, import_jsx_runtime.jsx)("div", {
36054
+ className: "absolute inset-0 bg-muted/50 pointer-events-none",
36090
36055
  "aria-hidden": true
36091
- }), r[34] = L, r[35] = Z);
36092
- let GU;
36093
- r[36] !== L || r[37] !== I ? (GU = I && (0, import_jsx_runtime.jsx)(Tooltip, {
36056
+ }), r[37] = z, r[38] = KU);
36057
+ let qU;
36058
+ r[39] !== z || r[40] !== R ? (qU = (R == null ? void 0 : R.Icon) && (0, import_jsx_runtime.jsx)(Tooltip, {
36094
36059
  content: (0, import_jsx_runtime.jsx)("span", {
36095
36060
  className: "text-xs opacity-80",
36096
- children: I.description
36061
+ children: R.description
36097
36062
  }),
36098
36063
  children: (0, import_jsx_runtime.jsx)("span", {
36099
- className: cn("absolute top-1 right-1 flex items-center gap-1 rounded-full border p-0.5 font-medium leading-none shadow-xs cursor-help", L ? "bg-background/90 border-border text-muted-foreground" : "bg-background/95 border-border text-foreground/80"),
36100
- "aria-label": I.label,
36101
- children: (0, import_jsx_runtime.jsx)(I.Icon, {
36064
+ className: cn("absolute top-1 right-1 flex items-center gap-1 rounded-full border p-0.5 font-medium leading-none shadow-xs cursor-help", z ? "bg-background/90 border-border text-muted-foreground" : "bg-background/95 border-border text-foreground/80"),
36065
+ "aria-label": R.label,
36066
+ children: (0, import_jsx_runtime.jsx)(R.Icon, {
36102
36067
  className: "h-3.5 w-3.5"
36103
36068
  })
36104
36069
  })
36105
- }), r[36] = L, r[37] = I, r[38] = GU) : GU = r[38];
36106
- let KU;
36107
- return r[39] !== B || r[40] !== d || r[41] !== f || r[42] !== WU || r[43] !== q || r[44] !== Z || r[45] !== GU ? (KU = (0, import_jsx_runtime.jsxs)("div", {
36070
+ }), r[39] = z, r[40] = R, r[41] = qU) : qU = r[41];
36071
+ let JU;
36072
+ return r[42] !== W || r[43] !== d || r[44] !== f || r[45] !== Z || r[46] !== GU || r[47] !== KU || r[48] !== qU ? (JU = (0, import_jsx_runtime.jsxs)("div", {
36108
36073
  ref: f,
36109
- className: WU,
36110
- style: B,
36074
+ className: Z,
36075
+ style: W,
36111
36076
  ...d,
36112
36077
  children: [
36113
- q,
36114
- Z,
36115
- GU
36078
+ GU,
36079
+ KU,
36080
+ qU
36116
36081
  ]
36117
- }), r[39] = B, r[40] = d, r[41] = f, r[42] = WU, r[43] = q, r[44] = Z, r[45] = GU, r[46] = KU) : KU = r[46], KU;
36082
+ }), r[42] = W, r[43] = d, r[44] = f, r[45] = Z, r[46] = GU, r[47] = KU, r[48] = qU, r[49] = JU) : JU = r[49], JU;
36083
+ }, MiniCodePreview = (e) => {
36084
+ let r = (0, import_compiler_runtime$10.c)(2), { code: c } = e, l;
36085
+ return r[0] === c ? l = r[1] : (l = (0, import_jsx_runtime.jsx)("pre", {
36086
+ className: "my-auto w-full overflow-hidden whitespace-pre-wrap wrap-break-word text-lg",
36087
+ children: c
36088
+ }), r[0] = c, r[1] = l), l;
36118
36089
  };
36119
36090
  function projectDropTarget(e) {
36120
36091
  let { active: r, over: c } = e;
@@ -36145,33 +36116,34 @@ ${c}
36145
36116
  if (l && l !== "slide") return l;
36146
36117
  if (c == null ? void 0 : c.has(e)) return "skip";
36147
36118
  }
36148
- var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-qpHJES_u.js"));
36119
+ var LazySlidesComponent = import_react.lazy(() => import("./reveal-component-DVWED--8.js"));
36149
36120
  const SlidesLayoutRenderer = ({ layout: e, setLayout: r, cells: c, mode: l }) => {
36150
36121
  var _a3;
36151
- let u = useAtomValue(kioskModeAtom), d = l === "read" || u, f = useAtomValue(numColumnsAtom) > 1, [p, m] = (0, import_react.useState)(null), { cellsWithOutput: h, skippedIds: g, slideTypes: _, startCellIndex: v } = (0, import_react.useMemo)(() => computeSlideCellsInfo(c, e), [
36122
+ let u = useAtomValue(kioskModeAtom), d = l === "read" || u, f = useAtomValue(numColumnsAtom) > 1, [p, m] = (0, import_react.useState)(null), { slideCells: h, skippedIds: g, noOutputIds: _, slideTypes: v, startCellIndex: y } = (0, import_react.useMemo)(() => computeSlideCellsInfo(c, e), [
36152
36123
  c,
36153
36124
  e
36154
- ]), y = p ? h.findIndex((e2) => e2.id === p) : v, b = y === -1 ? v : y, S = useEvent_default((e2) => {
36125
+ ]), b = p ? h.findIndex((e2) => e2.id === p) : y, S = b === -1 ? y : b, w = useEvent_default((e2) => {
36155
36126
  let r2 = h[e2];
36156
36127
  r2 && m(r2.id);
36157
- }), w = (0, import_jsx_runtime.jsx)(LazySlidesComponent, {
36158
- cellsWithOutput: h,
36128
+ }), T = (0, import_jsx_runtime.jsx)(LazySlidesComponent, {
36129
+ slideCells: h,
36159
36130
  layout: e,
36160
36131
  setLayout: r,
36161
- activeIndex: b,
36162
- onSlideChange: S,
36163
- configWidth: 300,
36132
+ noOutputIds: _,
36133
+ activeIndex: S,
36134
+ onSlideChange: w,
36135
+ configWidth: 280,
36164
36136
  mode: d ? "read" : l,
36165
36137
  isEditable: !d
36166
36138
  });
36167
36139
  return d ? u ? (0, import_jsx_runtime.jsx)("div", {
36168
36140
  className: "flex h-dvh w-dvw overflow-hidden bg-background",
36169
- children: w
36141
+ children: T
36170
36142
  }) : (0, import_jsx_runtime.jsx)("div", {
36171
36143
  className: "p-4 flex flex-1 items-center justify-center min-h-0",
36172
36144
  children: (0, import_jsx_runtime.jsx)("div", {
36173
36145
  className: "h-full max-h-[95vh] aspect-video max-w-full flex",
36174
- children: w
36146
+ children: T
36175
36147
  })
36176
36148
  }) : (0, import_jsx_runtime.jsxs)("div", {
36177
36149
  className: "flex-1 pr-18 pb-2 flex flex-row gap-2 min-h-0",
@@ -36180,12 +36152,13 @@ ${c}
36180
36152
  cells: h,
36181
36153
  thumbnailWidth: 220,
36182
36154
  canReorder: !f,
36183
- activeCellId: p ?? ((_a3 = h[v]) == null ? void 0 : _a3.id) ?? null,
36155
+ activeCellId: p ?? ((_a3 = h[y]) == null ? void 0 : _a3.id) ?? null,
36184
36156
  skippedIds: g,
36185
- slideTypes: _,
36186
- onSlideClick: S
36157
+ noOutputIds: _,
36158
+ slideTypes: v,
36159
+ onSlideClick: w
36187
36160
  }),
36188
- w
36161
+ T
36189
36162
  ]
36190
36163
  });
36191
36164
  };
@@ -36889,18 +36862,18 @@ ${c}
36889
36862
  showCode: b,
36890
36863
  onToggleShowCode: () => S(_temp$1)
36891
36864
  }), r[23] = w, r[24] = u, r[25] = b, r[26] = z) : z = r[26];
36892
- let B;
36893
- r[27] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (B = (0, import_jsx_runtime.jsx)(FloatingOutline, {}), r[27] = B) : B = r[27];
36894
36865
  let H;
36895
- return r[28] !== l || r[29] !== d || r[30] !== R || r[31] !== z ? (H = (0, import_jsx_runtime.jsxs)(VerticalLayoutWrapper, {
36866
+ r[27] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (H = (0, import_jsx_runtime.jsx)(FloatingOutline, {}), r[27] = H) : H = r[27];
36867
+ let W;
36868
+ return r[28] !== l || r[29] !== d || r[30] !== R || r[31] !== z ? (W = (0, import_jsx_runtime.jsxs)(VerticalLayoutWrapper, {
36896
36869
  invisible: d,
36897
36870
  appConfig: l,
36898
36871
  children: [
36899
36872
  R,
36900
36873
  z,
36901
- B
36874
+ H
36902
36875
  ]
36903
- }), r[28] = l, r[29] = d, r[30] = R, r[31] = z, r[32] = H) : H = r[32], H;
36876
+ }), r[28] = l, r[29] = d, r[30] = R, r[31] = z, r[32] = W) : W = r[32], W;
36904
36877
  }, ActionButtons = (e) => {
36905
36878
  let r = (0, import_compiler_runtime$3.c)(26), { canShowCode: c, showCode: l, onToggleShowCode: u } = e, { readCode: d } = useRequestClient(), f = _temp2, m = _temp3, h;
36906
36879
  r[0] === d ? h = r[1] : (h = async () => {
@@ -37795,6 +37768,8 @@ ${r}
37795
37768
  case "model-lifecycle":
37796
37769
  handleWidgetMessage(MODEL_MANAGER, c.data);
37797
37770
  return;
37771
+ case "consumer-capabilities":
37772
+ return;
37798
37773
  default:
37799
37774
  logNever(c);
37800
37775
  return;
@@ -38028,7 +38003,7 @@ ${r}
38028
38003
  });
38029
38004
  }
38030
38005
  const getMarimoVersion = () => store.get(marimoVersionAtom);
38031
- var worker_default = "/assets/worker-CpBbwbQo.js", DefaultWorkerFactory = class {
38006
+ var worker_default = "/assets/worker-ip3AI_sN.js", DefaultWorkerFactory = class {
38032
38007
  constructor(e = {}) {
38033
38008
  this.url = e.workerUrl || this.getDefaultWorkerUrl(), this.name = e.workerName || getMarimoVersion();
38034
38009
  }