@marimo-team/islands 0.23.2-dev3 → 0.23.2-dev30

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 (98) hide show
  1. package/dist/_basePickBy-C-mod5Dp.js +34 -0
  2. package/dist/{_baseUniq-C87CckHL.js → _baseUniq-Be_p_Ty6.js} +2 -2
  3. package/dist/{architecture-7HQA4BMR-BHdkAMvZ.js → architecture-7HQA4BMR-kNyKQXbB.js} +2 -2
  4. package/dist/{architectureDiagram-VXUJARFQ-B3YQo9At.js → architectureDiagram-VXUJARFQ-Dx_Dniiw.js} +11 -11
  5. package/dist/{blockDiagram-VD42YOAC-CpQ3TKEN.js → blockDiagram-VD42YOAC-D3hGPvEt.js} +4 -4
  6. package/dist/{c4Diagram-YG6GDRKO-CZSU4uqU.js → c4Diagram-YG6GDRKO-CtY1WMbV.js} +1 -1
  7. package/dist/{chat-ui-CNHw9Osh.js → chat-ui-CQtPb6Dj.js} +4 -4
  8. package/dist/{chunk-4F5CHEZ2-D5mClyDv.js → chunk-4F5CHEZ2-oWcaQSBe.js} +1 -1
  9. package/dist/{chunk-B2363JML-Br0eA2T3.js → chunk-B2363JML-72CRxZbk.js} +1 -1
  10. package/dist/{chunk-B4BG7PRW-4BjV11Br.js → chunk-B4BG7PRW-ChYfc4rf.js} +2 -2
  11. package/dist/{chunk-DI55MBZ5-DITY3EyP.js → chunk-DI55MBZ5-CYNE3N2j.js} +2 -2
  12. package/dist/{chunk-FRFDVMJY-DnEvEFRR.js → chunk-FRFDVMJY-Dgl-7l0K.js} +1 -1
  13. package/dist/{chunk-JA3XYJ7Z-BcPEfxk_.js → chunk-JA3XYJ7Z-B2BoMdpr.js} +1 -1
  14. package/dist/{chunk-JZLCHNYA-2bnLL3xL.js → chunk-JZLCHNYA-CkHD9mQU.js} +2 -2
  15. package/dist/{chunk-N4CR4FBY-CpZSuGSU.js → chunk-N4CR4FBY-DDeXUk3y.js} +4 -4
  16. package/dist/{chunk-PL6DKKU2-DnId6G-x.js → chunk-PL6DKKU2-CpBHhdj8.js} +1 -1
  17. package/dist/{chunk-QXUST7PY-Ch6F5Obl.js → chunk-QXUST7PY-BnSZbSK7.js} +3 -3
  18. package/dist/{chunk-S3R3BYOJ-B0UOFJwq.js → chunk-S3R3BYOJ-DVdRer7T.js} +1 -1
  19. package/dist/{chunk-SJTYNZTY-BsBZnJUj.js → chunk-SJTYNZTY-DPOwAZc-.js} +1 -1
  20. package/dist/{chunk-TCCFYFTB-Clbl-fTg.js → chunk-TCCFYFTB-BdE6BTq1.js} +6 -6
  21. package/dist/{chunk-TQ3KTPDO-CFkSQ30e.js → chunk-TQ3KTPDO-BCXCq8f2.js} +1 -1
  22. package/dist/{chunk-UMXZTB3W-D-A834Bq.js → chunk-UMXZTB3W-C5Hu2atA.js} +1 -1
  23. package/dist/{classDiagram-v2-WZHVMYZB-DrmbGANl.js → classDiagram-2ON5EDUG-sUXB0Obe.js} +6 -6
  24. package/dist/{classDiagram-2ON5EDUG-C8-zE3Zv.js → classDiagram-v2-WZHVMYZB-JeF9-idj.js} +6 -6
  25. package/dist/{clone-DZFQCtFJ.js → clone-B48LSK6I.js} +1 -1
  26. package/dist/{constants-CvyfaCvs.js → constants-CcdcOQyC.js} +2 -1
  27. package/dist/{dagre-6UL2VRFP-OMItEBnY.js → dagre-6UL2VRFP-Bs_DhCUk.js} +9 -9
  28. package/dist/{dagre-QVd-lCXU.js → dagre-BLW2E2fh.js} +19 -8
  29. package/dist/{diagram-PSM6KHXK-CkKbohWI.js → diagram-PSM6KHXK-VB3japmQ.js} +10 -10
  30. package/dist/{diagram-QEK2KX5R-DjUMpVcx.js → diagram-QEK2KX5R-B8nm2JL9.js} +10 -10
  31. package/dist/{diagram-S2PKOQOG-b-c0d-wZ.js → diagram-S2PKOQOG-D6PR_2iv.js} +10 -10
  32. package/dist/{erDiagram-Q2GNP2WA-CDhLaOZ1.js → erDiagram-Q2GNP2WA-gjAse7Jb.js} +5 -5
  33. package/dist/{flowDiagram-NV44I4VS-BDi4O4CL.js → flowDiagram-NV44I4VS-CQTSZWcI.js} +5 -5
  34. package/dist/{ganttDiagram-JELNMOA3-BpZE6kVp.js → ganttDiagram-JELNMOA3-aktqk_om.js} +1 -1
  35. package/dist/{gitGraph-G5XIXVHT-B_c6xFJv.js → gitGraph-G5XIXVHT-Cy06nzLg.js} +2 -2
  36. package/dist/{gitGraphDiagram-V2S2FVAM-iQnXzbPM.js → gitGraphDiagram-V2S2FVAM-C1ntKO33.js} +10 -10
  37. package/dist/{glide-data-editor-BFqEJGJW.js → glide-data-editor-DBgJAMqf.js} +2 -2
  38. package/dist/{graphlib-BV1_gi0C.js → graphlib-Cr691-na.js} +3 -3
  39. package/dist/{hasIn-DnfJcYpY.js → hasIn-BDDmuo1w.js} +1 -1
  40. package/dist/{info-VBDWY6EO-BTyzxmhr.js → info-VBDWY6EO-BIO6A8nW.js} +2 -2
  41. package/dist/{infoDiagram-HS3SLOUP-OYrX6uO3.js → infoDiagram-HS3SLOUP-CtfUf0g_.js} +9 -9
  42. package/dist/{input-CSVEkmaZ.js → input-Czatnqbz.js} +1 -1
  43. package/dist/{kanban-definition-3W4ZIXB7-DHEAKdZt.js → kanban-definition-3W4ZIXB7-C5FK4v7x.js} +3 -3
  44. package/dist/main.js +329 -179
  45. package/dist/{mermaid-BbhZNQeB.js → mermaid-CcM8GHeT.js} +29 -29
  46. package/dist/{mermaid-parser.core-ntCgyx0x.js → mermaid-parser.core-fZdPSYor.js} +8 -8
  47. package/dist/min-DAIOAwWK.js +102 -0
  48. package/dist/{mindmap-definition-VGOIOE7T-CxEUZZvY.js → mindmap-definition-VGOIOE7T-BvrQf8XZ.js} +5 -5
  49. package/dist/{packet-DYOGHKS2-BhvnpoGi.js → packet-DYOGHKS2-DDx1z7B-.js} +2 -2
  50. package/dist/pick-DfX21dj2.js +18 -0
  51. package/dist/{pie-VRWISCQL-dILuA3iG.js → pie-VRWISCQL-BgRtyDMT.js} +2 -2
  52. package/dist/{pieDiagram-ADFJNKIX-U3LrUqAS.js → pieDiagram-ADFJNKIX-DAhjFwJD.js} +10 -10
  53. package/dist/{process-output-Bekznt_B.js → process-output-CzeGyEyz.js} +2138 -2124
  54. package/dist/{radar-ZZBFDIW7-DwFrOJDj.js → radar-ZZBFDIW7-xwh47Yzn.js} +2 -2
  55. package/dist/{requirementDiagram-UZGBJVZJ-D0zpQnKC.js → requirementDiagram-UZGBJVZJ-B3nnp0VG.js} +5 -5
  56. package/dist/{sequenceDiagram-WL72ISMW-D1BJxLjH.js → sequenceDiagram-WL72ISMW-D2mpRRG2.js} +1 -1
  57. package/dist/{stateDiagram-FKZM4ZOC-B1S8jGMn.js → stateDiagram-FKZM4ZOC-QD9Wuca0.js} +8 -8
  58. package/dist/{stateDiagram-v2-4FDKWEC3-BH5ozUbc.js → stateDiagram-v2-4FDKWEC3-DnUhJ525.js} +6 -6
  59. package/dist/{toDate-B1AzlBoW.js → toDate-BxaMtnNb.js} +1 -1
  60. package/dist/{treemap-GDKQZRPO-bx2ngsgN.js → treemap-GDKQZRPO-5ZsmvXgc.js} +2 -2
  61. package/dist/{types-pwjdK009.js → types-DZvw9zQT.js} +1 -1
  62. package/dist/{useDeepCompareMemoize-CsyOnnjc.js → useDeepCompareMemoize-BOrrcIxj.js} +1 -1
  63. package/dist/{vega-component-KBJXEDZz.js → vega-component-CrVeizNZ.js} +3 -3
  64. package/dist/{xychartDiagram-PRI3JC2R-CuAZiqHS.js → xychartDiagram-PRI3JC2R-BMsB7VdF.js} +2 -2
  65. package/package.json +2 -2
  66. package/src/components/data-table/TableBottomBar.tsx +5 -1
  67. package/src/components/data-table/__tests__/filters.test.ts +304 -0
  68. package/src/components/data-table/__tests__/pagination.test.tsx +46 -132
  69. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  70. package/src/components/data-table/filters.ts +87 -33
  71. package/src/components/data-table/pagination.tsx +189 -76
  72. package/src/components/data-table/types.ts +0 -4
  73. package/src/components/editor/Output.tsx +1 -1
  74. package/src/components/editor/actions/useNotebookActions.tsx +12 -0
  75. package/src/components/editor/cell/code/cell-editor.tsx +1 -0
  76. package/src/core/cells/__tests__/apply-transaction.test.ts +42 -0
  77. package/src/core/cells/__tests__/logs.test.ts +101 -0
  78. package/src/core/cells/logs.ts +9 -1
  79. package/src/core/codemirror/__tests__/__snapshots__/setup.test.ts.snap +4 -14
  80. package/src/core/codemirror/cells/extensions.ts +0 -4
  81. package/src/core/codemirror/keymaps/keymaps.ts +69 -2
  82. package/src/core/codemirror/language/languages/python.ts +9 -9
  83. package/src/core/codemirror/lsp/__tests__/notebook-lsp.test.ts +8 -1
  84. package/src/core/codemirror/lsp/federated-lsp.ts +2 -2
  85. package/src/core/codemirror/lsp/notebook-lsp.ts +2 -2
  86. package/src/core/codemirror/lsp/utils.ts +21 -6
  87. package/src/core/constants.ts +1 -0
  88. package/src/plugins/impl/DataTablePlugin.tsx +7 -20
  89. package/src/plugins/impl/TabsPlugin.tsx +18 -12
  90. package/src/plugins/impl/data-frames/DataFramePlugin.tsx +4 -4
  91. package/src/plugins/impl/data-frames/schema.ts +41 -9
  92. package/src/plugins/impl/data-frames/utils/operators.ts +2 -0
  93. package/src/plugins/impl/matplotlib/matplotlib-renderer.ts +16 -0
  94. package/dist/_basePickBy-Sow3pJjS.js +0 -41
  95. package/dist/min-Ds3gG0Ff.js +0 -96
  96. package/dist/range-fJeId9Ri.js +0 -30
  97. /package/dist/{isEmpty-B7FX9wKt.js → isEmpty-D3lf6gH3.js} +0 -0
  98. /package/dist/{memoize-CSTI9eOX.js → memoize-DEvRzlwP.js} +0 -0
package/dist/main.js CHANGED
@@ -22,27 +22,27 @@ 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-Bp6CK_Fg.js";
25
- import { $ as createActions, $t as isUninstantiated, A as MarimoIncomingMessageEvent, An as Trash2, At as PathBuilder, B as DotFilledIcon, Bn as Database, Ct as getValidName, D as AccordionContent, Dn as Root2$4, Dt as customPythonLanguageSupport, E as Accordion, En as Item$1, Et as Checkbox, F as BorderAllIcon, Fn as Layers, Ft as generateUUID, G as base64ToDataView, Gn as esm_default$1, Gt as require_client, H as PinRightIcon, Hn as CircleX, Ht as PluralWords, In as Info, It as useChromeActions, J as extractBase64FromDataURL, K as base64ToUint8Array, Kn as import_lib, L as CheckIcon, Ln as File, Lt as repl, M as MarimoValueReadyEvent, Mn as PaintRoller, N as MarimoValueUpdateEvent, Nn as NotebookPen, Nt as goToCellLine, O as AccordionItem, On as Trigger2, Ot as MarkdownLanguageAdapter, P as createInputEvent, Pn as LoaderCircle, Pt as DeferredRequestRegistry, Qt as useRequestClient, R as ChevronDownIcon, Rn as FileText, Rt as adaptForLocalStorage, Sn as selectAtom, St as displayCellName, Tn as Content2$1, Tt as normalizeName, U as deserializeBlob, Un as CircleAlert, Ut as DATA_TYPE_ICON, V as PinLeftIcon, Vn as Columns2, Vt as PluralWord, Wn as Braces, Wt as getDataTypeColor, X as safeExtractSetUIElementMessageBuffers, Xt as getRequestClient, Y as isDataURLString, Yt as convertStatsName, Z as renderHTML, Zt as requestClientAtom, _ as useExpandedConsoleOutput, _n as jsonParseWithSpecialChar, _t as isErrorMime, a as toPng, at as reducer, b as getDatasourceContext, bn as atomWithReducer, bt as DATA_CELL_ID, c as useCellFocusActions, cn as parseDataset, ct as useCellNames, d as Spinner, dn as HTMLCellId, dt as getInitialAppMode, et as getCellEditorView, f as Popover$1, fn as SCRATCH_CELL_ID, ft as initialModeAtom, g as isOutputEmpty, gn as RANDOM_ID_ATTR, gt as outputIsStale, h as PopoverTrigger, hn as OBJECT_ID_ATTR, ht as outputIsLoading, i as PythonIcon, in as NotebookScopedLocalStorage, it as numColumnsAtom, j as MarimoValueInputEvent, jn as Table2, jt as Paths, k as AccordionTrigger, kn as Wrench, l as useLastFocusedCellId, ln as parseInitialValue, lt as createCell, m as PopoverContent, mn as findCellId, mt as viewStateAtom, n as blobToString, nn as extractAllTracebackInfo, nt as notebookAtom, o as MarkdownRenderer, on as filenameAtom, ot as useCellActions, p as PopoverClose$1, pn as UIElementId, pt as kioskModeAtom, q as dataViewToBase64, r as filesToBase64, rn as getTracebackInfo, rt as notebookOutline, s as LazyAnyLanguageCodeMirror, sn as parseAttrValue, st as useCellIds, t as processOutput, tn as elementContainsMarimoCellFile, tt as getCellNames, u as maybeAddAltairImport, un as CellOutputId, ut as AnsiUp, v as useExpandedOutput, vn as jsonToMarkdown, vt as headingToIdentifier, wn as Close$1, wt as isInternalCellName, xn as atomWithStorage, xt as getCellDomProps, yn as jsonToTSV, yt as sanitizeHtml, z as ChevronRightIcon, zn as Eye, zt as jotaiJsonStorage, __tla as __tla_0 } from "./process-output-Bekznt_B.js";
25
+ import { $ as createActions, $t as isUninstantiated, A as MarimoIncomingMessageEvent, An as Trash2, At as PathBuilder, B as DotFilledIcon, Bn as Database, Ct as getValidName, D as AccordionContent, Dn as Root2$4, Dt as customPythonLanguageSupport, E as Accordion, En as Item$1, Et as Checkbox, F as BorderAllIcon, Fn as Layers, Ft as generateUUID, G as base64ToDataView, Gn as esm_default$1, Gt as require_client, H as PinRightIcon, Hn as CircleX, Ht as PluralWords, In as Info, It as useChromeActions, J as extractBase64FromDataURL, K as base64ToUint8Array, Kn as import_lib, L as CheckIcon, Ln as File, Lt as repl, M as MarimoValueReadyEvent, Mn as PaintRoller, N as MarimoValueUpdateEvent, Nn as NotebookPen, Nt as goToCellLine, O as AccordionItem, On as Trigger2, Ot as MarkdownLanguageAdapter, P as createInputEvent, Pn as LoaderCircle, Pt as DeferredRequestRegistry, Qt as useRequestClient, R as ChevronDownIcon, Rn as FileText, Rt as adaptForLocalStorage, Sn as selectAtom, St as displayCellName, Tn as Content2$1, Tt as normalizeName, U as deserializeBlob, Un as CircleAlert, Ut as DATA_TYPE_ICON, V as PinLeftIcon, Vn as Columns2, Vt as PluralWord, Wn as Braces, Wt as getDataTypeColor, X as safeExtractSetUIElementMessageBuffers, Xt as getRequestClient, Y as isDataURLString, Yt as convertStatsName, Z as renderHTML, Zt as requestClientAtom, _ as useExpandedConsoleOutput, _n as jsonParseWithSpecialChar, _t as isErrorMime, a as toPng, at as reducer, b as getDatasourceContext, bn as atomWithReducer, bt as DATA_CELL_ID, c as useCellFocusActions, cn as parseDataset, ct as useCellNames, d as Spinner, dn as HTMLCellId, dt as getInitialAppMode, et as getCellEditorView, f as Popover$1, fn as SCRATCH_CELL_ID, ft as initialModeAtom, g as isOutputEmpty, gn as RANDOM_ID_ATTR, gt as outputIsStale, h as PopoverTrigger, hn as OBJECT_ID_ATTR, ht as outputIsLoading, i as PythonIcon, in as NotebookScopedLocalStorage, it as numColumnsAtom, j as MarimoValueInputEvent, jn as Table2, jt as Paths, k as AccordionTrigger, kn as Wrench, l as useLastFocusedCellId, ln as parseInitialValue, lt as createCell, m as PopoverContent, mn as findCellId, mt as viewStateAtom, n as blobToString, nn as extractAllTracebackInfo, nt as notebookAtom, o as MarkdownRenderer, on as filenameAtom, ot as useCellActions, p as PopoverClose$1, pn as UIElementId, pt as kioskModeAtom, q as dataViewToBase64, r as filesToBase64, rn as getTracebackInfo, rt as notebookOutline, s as LazyAnyLanguageCodeMirror, sn as parseAttrValue, st as useCellIds, t as processOutput, tn as elementContainsMarimoCellFile, tt as getCellNames, u as maybeAddAltairImport, un as CellOutputId, ut as AnsiUp, v as useExpandedOutput, vn as jsonToMarkdown, vt as headingToIdentifier, wn as Close$1, wt as isInternalCellName, xn as atomWithStorage, xt as getCellDomProps, yn as jsonToTSV, yt as sanitizeHtml, z as ChevronRightIcon, zn as Eye, zt as jotaiJsonStorage, __tla as __tla_0 } from "./process-output-CzeGyEyz.js";
26
26
  import { __tla as __tla_1 } from "./chunk-5FQGJX7Z-VIref9gx.js";
27
27
  import { o as useSize, s as Root$4, u as createLucideIcon } from "./dist-CTtLBPLZ.js";
28
28
  import { A as $896ba0a80a8f4d36$export$85fd5fdf27bacc79, C as DEFAULT_COLOR_SCHEME, D as SCALE_TYPE_DESCRIPTIONS, E as EMPTY_VALUE$1, F as ListFilter, I as ChartPie, L as ChartColumn, M as $5a387cc49350e6db$export$722debc0e56fea39, N as Table$1, O as TIME_UNIT_DESCRIPTIONS, P as SquareFunction, 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 $fb18d541ea1ad717$export$ad991b66133851cf, 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-3EPbPQZH.js";
29
29
  import { c as Calendar, i as createReducerAndAtoms, n as useOnUnmount, o as ToggleLeft, r as Badge, t as useOnMount } from "./useLifecycle-DrGGIsgp.js";
30
30
  import { t as Check } from "./check-BgrdTLuv.js";
31
31
  import { A as Icon, C as logNever, D as $18f2051aff69b9bf$export$a54013f0d02a8f82, E as $18f2051aff69b9bf$export$43bb16f9c6d9e3f7, F as createCollection, I as X, M as clamp$3, N as usePrevious$2, O as $b5e257d569688ac6$export$535bd6ca7f90a273, P as useDirection, R as ChevronDown, S as assertNever, T as $488c6ddbf4ef74c2$export$cc77c4ff7e8673c5, _ as menuControlVariants, a as SelectContent, b as menuSeparatorVariants, c as SelectLabel, d as SelectValue, f as NativeSelect, g as menuControlCheckVariants, h as menuContentCommon, i as Select, j as Trigger$3, l as SelectSeparator, m as MENU_ITEM_DISABLED, n as Strings, o as SelectGroup, p as selectStyles, r as capitalize, s as SelectItem, t as Label, u as SelectTrigger, v as menuItemVariants, w as $a916eb452884faea$export$b7a616150fdb9f44, x as menuSubTriggerVariants, y as menuLabelVariants } from "./label-BebYlsDV.js";
32
- import { $ as $e5be200c675c3b3a$export$aca958c65c314e6c, $t as Portal, A as $d2b4bc8c273e7be6$export$24d547caef80ccd1, At as $c87311424ea30a05$export$fedb369cb70207f1, B as $64fa3d84918910a7$export$c62b8e45d58ddad9, Bt as $431fbd86ca7dc216$export$f21a1ffae260145a, C as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, Ct as $8ae05eaa5c114e9c$export$7f54fc3180508a52, D as $ee014567cb39d3f0$export$ff05c3ac10437e03, Dt as $c87311424ea30a05$export$78551043582a6a98, E as $ee014567cb39d3f0$export$f551688fc98f2e09, Et as $c87311424ea30a05$export$6446a186d09e379e, F as $64fa3d84918910a7$export$2881499e37b75b9a, Ft as $d4ee10de306f2510$export$b4f377a2b6254582, G as marked, Gt as Anchor2, H as $64fa3d84918910a7$export$ef03459518577ad4, Ht as $bdb11010cef70236$export$b4cc09c592e8fdb8, I as $64fa3d84918910a7$export$29f1550f4b0d4415, It as $d4ee10de306f2510$export$cd4e5573fbe2b576, J as $d2e8511e6f209edf$export$e908e06f4b8e3402, Jt as Content2$2, K as useDebounceControlledState, Kt as Arrow2, L as $64fa3d84918910a7$export$4d86445c2cf5e3, Lt as $d4ee10de306f2510$export$e58f029f0fbfdb29, M as $01b77f81d0f07f68$export$75b6ee27786ba447, Mt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, N as $01b77f81d0f07f68$export$b04be29aa201d4f5, Nt as $3ef42575df84b30b$export$9d1611c77c2fe928, O as $514c0188e459b4c0$export$5f1af8db9871e1d6, Ot as $c87311424ea30a05$export$9ac100e40613ea10, P as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, Pt as $d4ee10de306f2510$export$4282f70798064fe0, Q as $e5be200c675c3b3a$export$a763b9476acd3eb, Qt as Label$2, R as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, Rt as $f4e2df6bd15f8569$export$98658e8c59125e6a, S as $3985021b0ad6602f$export$f5b8910cec6cf069, St as $e9faafb641e167db$export$90fc3a17d93f704c, T as $d3e0e05bdfcf66bd$export$c24727297075ec6a, Tt as $313b98861ee5dd6c$export$d6875122194c7b44, U as $64fa3d84918910a7$export$fabf2dc03a41866e, Ut as $bdb11010cef70236$export$f680877a34711e37, V as $64fa3d84918910a7$export$df3a06d6289f983e, Vt as $ff5963eb1fccf552$export$e08e3b67e392101e, Wt as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, X as $e93e671b31057976$export$b8473d3665f3a75a, Xt as Item2$2, Y as $2baaea4c71418dea$export$294aa081a6c6f55d, Yt as Group$1, Z as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, Zt as ItemIndicator, _ as DropdownMenuSub, _t as $9446cca9a3875146$export$7d15b64cf5a3a4c4, a as NumberField, an as SubContent, at as $6c7bd7858deea686$export$cd11ab140839f11d, b as DropdownMenuTrigger, bt as $b4b717babfbb907b$export$bebd5a1431fec25d, c as prettyNumber, cn as Item$2, ct as $6db58dc88e78b024$export$2f817fcdc4b89ae0, d as DropdownMenuContent, dn as Search, dt as $9ab94262bd0047c7$export$420e68273165f4ec, en as RadioGroup$2, et as $e5be200c675c3b3a$export$dad6ae84456c676a, f as DropdownMenuGroup, fn as Circle, ft as $3ad3f6e1647bc98d$export$80f3e147d781571c, g as DropdownMenuSeparator, gt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, h as DropdownMenuPortal, ht as _class_private_field_init, i as OnBlurredInput, in as Sub, it as $701a24aa0da5b062$export$ea18c227d4417cc3, j as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, jt as $7215afc6de606d6b$export$de79e2c695e052f3, k as $514c0188e459b4c0$export$9afb8bc826b033ea, kt as $c87311424ea30a05$export$a11b0059900ceec8, l as prettyScientificNumber, ln as Root$5, lt as $5b160d28a433310d$export$c17fa47878dc55b6, m as DropdownMenuLabel, mt as $f6c31cce2adf654f$export$45712eceda6fad21, n as DebouncedNumberInput, nn as Root3, nt as $319e236875307eab$export$a9b970dcc4ae71a9, o as maxFractionalDigits, on as SubTrigger, ot as $fca6afa0e843324b$export$87b761675e8eaa10, p as DropdownMenuItem, pn as ChevronRight, pt as $507fabe10e71c6fb$export$630ff653c5ada6a9, q as useDebouncedCallback, qt as CheckboxItem, r as Input, rn as Separator, rt as $f7dceffc5ad7768b$export$4e328f61c538687f, s as prettyEngineeringNumber, sn as createMenuScope, st as $fca6afa0e843324b$export$f12b703ca79dfbb1, t as DebouncedInput, tn as RadioItem, tt as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, u as DropdownMenu, un as createRovingFocusGroupScope, ut as $6179b936705e76d3$export$ae780daf29e6d456, v as DropdownMenuSubContent, vt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, w as $a049562f99e7db0e$export$f9c6924e160136d1, wt as $df56164dff5785e2$export$4338b53315abf666, x as $3985021b0ad6602f$export$37fb8590cf2c088c, xt as $99facab73266f662$export$5add1d006293d136, y as DropdownMenuSubTrigger, yt as $b4b717babfbb907b$export$4c063cf1350e6fed, z as $64fa3d84918910a7$export$c245e6201fed2f75, zt as $431fbd86ca7dc216$export$b204af158042fbac } from "./input-CSVEkmaZ.js";
33
- import { a as millisecondsInMinute, c as asRemoteURL, d as isUrl, f as require_cuid2, g as CircleQuestionMark, h as isWasm, i as millisecondsInHour, m as Deferred, n as constructFrom, o as millisecondsInSecond, r as millisecondsInDay, s as millisecondsInWeek, t as toDate, u as appendQueryParams } from "./toDate-B1AzlBoW.js";
34
- import { a as Plus, i as Trash, n as ErrorBoundary, o as Pencil, r as require_prop_types, t as BulkEdit } from "./types-pwjdK009.js";
32
+ import { $ as $e5be200c675c3b3a$export$aca958c65c314e6c, $t as Portal, A as $d2b4bc8c273e7be6$export$24d547caef80ccd1, At as $c87311424ea30a05$export$fedb369cb70207f1, B as $64fa3d84918910a7$export$c62b8e45d58ddad9, Bt as $431fbd86ca7dc216$export$f21a1ffae260145a, C as $a049562f99e7db0e$export$eb2fcfdbd7ba97d4, Ct as $8ae05eaa5c114e9c$export$7f54fc3180508a52, D as $ee014567cb39d3f0$export$ff05c3ac10437e03, Dt as $c87311424ea30a05$export$78551043582a6a98, E as $ee014567cb39d3f0$export$f551688fc98f2e09, Et as $c87311424ea30a05$export$6446a186d09e379e, F as $64fa3d84918910a7$export$2881499e37b75b9a, Ft as $d4ee10de306f2510$export$b4f377a2b6254582, G as marked, Gt as Anchor2, H as $64fa3d84918910a7$export$ef03459518577ad4, Ht as $bdb11010cef70236$export$b4cc09c592e8fdb8, I as $64fa3d84918910a7$export$29f1550f4b0d4415, It as $d4ee10de306f2510$export$cd4e5573fbe2b576, J as $d2e8511e6f209edf$export$e908e06f4b8e3402, Jt as Content2$2, K as useDebounceControlledState, Kt as Arrow2, L as $64fa3d84918910a7$export$4d86445c2cf5e3, Lt as $d4ee10de306f2510$export$e58f029f0fbfdb29, M as $01b77f81d0f07f68$export$75b6ee27786ba447, Mt as $65484d02dcb7eb3e$export$457c3d6518dd4c6f, N as $01b77f81d0f07f68$export$b04be29aa201d4f5, Nt as $3ef42575df84b30b$export$9d1611c77c2fe928, O as $514c0188e459b4c0$export$5f1af8db9871e1d6, Ot as $c87311424ea30a05$export$9ac100e40613ea10, P as $f39a9eba43920ace$export$b5d7cc18bb8d2b59, Pt as $d4ee10de306f2510$export$4282f70798064fe0, Q as $e5be200c675c3b3a$export$a763b9476acd3eb, Qt as Label$2, R as $64fa3d84918910a7$export$9d4c57ee4c6ffdd8, Rt as $f4e2df6bd15f8569$export$98658e8c59125e6a, S as $3985021b0ad6602f$export$f5b8910cec6cf069, St as $e9faafb641e167db$export$90fc3a17d93f704c, T as $d3e0e05bdfcf66bd$export$c24727297075ec6a, Tt as $313b98861ee5dd6c$export$d6875122194c7b44, U as $64fa3d84918910a7$export$fabf2dc03a41866e, Ut as $bdb11010cef70236$export$f680877a34711e37, V as $64fa3d84918910a7$export$df3a06d6289f983e, Vt as $ff5963eb1fccf552$export$e08e3b67e392101e, Wt as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c, X as $e93e671b31057976$export$b8473d3665f3a75a, Xt as Item2$2, Y as $2baaea4c71418dea$export$294aa081a6c6f55d, Yt as Group$1, Z as $e5be200c675c3b3a$export$75ee7c75d68f5b0e, Zt as ItemIndicator, _ as DropdownMenuSub, _t as $9446cca9a3875146$export$7d15b64cf5a3a4c4, a as NumberField, an as SubContent, at as $6c7bd7858deea686$export$cd11ab140839f11d, b as DropdownMenuTrigger, bt as $b4b717babfbb907b$export$bebd5a1431fec25d, c as prettyNumber, cn as Item$2, ct as $6db58dc88e78b024$export$2f817fcdc4b89ae0, d as DropdownMenuContent, dn as Search, dt as $9ab94262bd0047c7$export$420e68273165f4ec, en as RadioGroup$2, et as $e5be200c675c3b3a$export$dad6ae84456c676a, f as DropdownMenuGroup, fn as Circle, ft as $3ad3f6e1647bc98d$export$80f3e147d781571c, g as DropdownMenuSeparator, gt as $ae1eeba8b9eafd08$export$5165eccb35aaadb5, h as DropdownMenuPortal, ht as _class_private_field_init, i as OnBlurredInput, in as Sub, it as $701a24aa0da5b062$export$ea18c227d4417cc3, j as $d2b4bc8c273e7be6$export$353f5b6fc5456de1, jt as $7215afc6de606d6b$export$de79e2c695e052f3, k as $514c0188e459b4c0$export$9afb8bc826b033ea, kt as $c87311424ea30a05$export$a11b0059900ceec8, l as prettyScientificNumber, ln as Root$5, lt as $5b160d28a433310d$export$c17fa47878dc55b6, m as DropdownMenuLabel, mt as $f6c31cce2adf654f$export$45712eceda6fad21, n as DebouncedNumberInput, nn as Root3, nt as $319e236875307eab$export$a9b970dcc4ae71a9, o as maxFractionalDigits, on as SubTrigger, ot as $fca6afa0e843324b$export$87b761675e8eaa10, p as DropdownMenuItem, pn as ChevronRight, pt as $507fabe10e71c6fb$export$630ff653c5ada6a9, q as useDebouncedCallback, qt as CheckboxItem, r as Input, rn as Separator, rt as $f7dceffc5ad7768b$export$4e328f61c538687f, s as prettyEngineeringNumber, sn as createMenuScope, st as $fca6afa0e843324b$export$f12b703ca79dfbb1, t as DebouncedInput, tn as RadioItem, tt as $e5be200c675c3b3a$export$fc1a364ae1f3ff10, u as DropdownMenu, un as createRovingFocusGroupScope, ut as $6179b936705e76d3$export$ae780daf29e6d456, v as DropdownMenuSubContent, vt as $458b0a5536c1a7cf$export$40bfa8c7b0832715, w as $a049562f99e7db0e$export$f9c6924e160136d1, wt as $df56164dff5785e2$export$4338b53315abf666, x as $3985021b0ad6602f$export$37fb8590cf2c088c, xt as $99facab73266f662$export$5add1d006293d136, y as DropdownMenuSubTrigger, yt as $b4b717babfbb907b$export$4c063cf1350e6fed, z as $64fa3d84918910a7$export$c245e6201fed2f75, zt as $431fbd86ca7dc216$export$b204af158042fbac } from "./input-Czatnqbz.js";
33
+ import { a as millisecondsInMinute, c as asRemoteURL, d as isUrl, f as require_cuid2, g as CircleQuestionMark, h as isWasm, i as millisecondsInHour, m as Deferred, n as constructFrom, o as millisecondsInSecond, r as millisecondsInDay, s as millisecondsInWeek, t as toDate, u as appendQueryParams } from "./toDate-BxaMtnNb.js";
34
+ import { a as Plus, i as Trash, n as ErrorBoundary, o as Pencil, r as require_prop_types, t as BulkEdit } from "./types-DZvw9zQT.js";
35
35
  import { n as clsx_default } from "./clsx-CwTY0BxM.js";
36
36
  import { t as require_react_dom } from "./react-dom-D5FDLRUB.js";
37
37
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
38
- import { $ as StyleNamespace, A as looseObject, B as union, C as any, F as optional, G as parse$3, I as record, J as prettifyError, K as parseAsync, N as number, P as object, Q as isInVscodeExtension, R as string, S as _null, T as boolean, U as ZodError, V as unknown, X as withFullScreenAsRoot, Y as MAX_HEIGHT_OFFSET, Z as withSmartCollisionBoundary, _ as ZodString, _t as Primitive$1, a as ZodIssueCode, b as _enum, c as ZodBoolean, d as ZodDiscriminatedUnion, dt as Presence, f as ZodEnum, ft as useControllableState, g as ZodOptional, gt as createContextScope, h as ZodObject, i as string$1, j as nan, k as literal, l as ZodDate, lt as useCallbackRef, m as ZodNumber, mt as composeEventHandlers$1, n as date, nt as __awaiter, o as ZodAny, p as ZodLiteral, pt as useLayoutEffect2, q as $ZodError, r as number$1, s as ZodArray, st as DismissableLayer, t as zod_default, u as ZodDefault, ut as useId$12, v as ZodType, vt as dispatchDiscreteCustomEvent, w as array, x as _instanceof, y as ZodUnion, z as tuple } from "./zod-W5ZEjzaE.js";
38
+ import { $ as StyleNamespace, A as looseObject, B as union, C as any, F as optional, G as parse$3, I as record, J as prettifyError, K as parseAsync, N as number, O as lazy$2, P as object, Q as isInVscodeExtension, R as string, S as _null, T as boolean, U as ZodError, V as unknown, X as withFullScreenAsRoot, Y as MAX_HEIGHT_OFFSET, Z as withSmartCollisionBoundary, _ as ZodString, _t as Primitive$1, a as ZodIssueCode, b as _enum, c as ZodBoolean, d as ZodDiscriminatedUnion, dt as Presence, f as ZodEnum, ft as useControllableState, g as ZodOptional, gt as createContextScope, h as ZodObject, i as string$1, j as nan, k as literal, l as ZodDate, lt as useCallbackRef, m as ZodNumber, mt as composeEventHandlers$1, n as date, nt as __awaiter, o as ZodAny, p as ZodLiteral, pt as useLayoutEffect2, q as $ZodError, r as number$1, s as ZodArray, st as DismissableLayer, t as zod_default, u as ZodDefault, ut as useId$12, v as ZodType, vt as dispatchDiscreteCustomEvent, w as array, x as _instanceof, y as ZodUnion, z as tuple } from "./zod-W5ZEjzaE.js";
39
39
  import { a as Content$2, c as Root$6, i as prettyError, n as ErrorBanner, o as Overlay, r as CellNotInitializedError, s as Portal$1, t as Banner } from "./error-banner-B_ioHva3.js";
40
40
  import { a as TooltipRoot, i as TooltipProvider, n as TooltipContent, o as TooltipTrigger, r as TooltipPortal, t as Tooltip } from "./tooltip-DwNnFsxZ.js";
41
41
  import { n as minimalSetup, r as _extends$5, t as esm_default, u as CopyClipboardIcon } from "./esm-CDHI9cuO.js";
42
- import { a as get_default } from "./hasIn-DnfJcYpY.js";
43
- import { n as _baseSet_default } from "./_basePickBy-Sow3pJjS.js";
44
- import { n as pick_default, t as range_default } from "./range-fJeId9Ri.js";
45
- import { i as debounce_default, r as KnownQueryParams, t as CSSClasses } from "./constants-CvyfaCvs.js";
42
+ import { a as get_default } from "./hasIn-BDDmuo1w.js";
43
+ import { n as _baseSet_default } from "./_basePickBy-C-mod5Dp.js";
44
+ import { t as pick_default } from "./pick-DfX21dj2.js";
45
+ import { i as debounce_default, r as KnownQueryParams, t as CSSClasses } from "./constants-CcdcOQyC.js";
46
46
  import { C as dequal, S as getBuildingBlocks, _ as useSetAtom, c as AppConfigSchema, d as useJotaiEffect, g as useAtomValue, h as useAtom, i as autoInstantiateAtom, m as Provider, n as useTheme, o as localeAtom, p as isIslands, r as aiEnabledAtom, s as useResolvedMarimoConfig, u as store, v as useStore, w as useEvent_default, x as buildStore, y as atom } from "./useTheme-CzwDokKe.js";
47
47
  import { Z as EditorView } from "./dist-CxZvoNao.js";
48
48
  import { t as invariant } from "./invariant-e8eBgdux.js";
@@ -56,7 +56,7 @@ import "./dist-Ci0CXEFt.js";
56
56
  import "./dist-DJ9F1eHs.js";
57
57
  import { a as parser, r as python } from "./dist-DAfcmt-d.js";
58
58
  import "./purify.es-hTCfRGdl.js";
59
- import { a as AlertTitle, i as AlertDescription, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-CsyOnnjc.js";
59
+ import { a as AlertTitle, i as AlertDescription, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-BOrrcIxj.js";
60
60
  import { n as memoize$1, t as isPropValid } from "./emotion-is-prop-valid.esm-CJVjyntJ.js";
61
61
  import { n as formats } from "./vega-loader.browser-DqEcFOPD.js";
62
62
  import { a as getContainerWidth, n as vegaLoadData, o as getVegaFieldTypes, r as createBatchedLoader, s as tooltipHandler, t as parseCsvData } from "./loader-ZFbGsMN1.js";
@@ -23789,10 +23789,10 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
23789
23789
  else if (c.some(_temp2$24)) _ = "An internal error occurred";
23790
23790
  else if (c.some(_temp3$16)) _ = "Ancestor prevented from running", y = "default", S = "text-secondary-foreground";
23791
23791
  else if (c.some(_temp4$9)) _ = "Ancestor stopped", y = "default", S = "text-secondary-foreground";
23792
- else if (c.some(_temp5$6)) _ = "SQL error";
23792
+ else if (c.some(_temp5$5)) _ = "SQL error";
23793
23793
  else {
23794
23794
  let e2;
23795
- r[0] === c ? e2 = r[1] : (e2 = c.find(_temp6$6), r[0] = c, r[1] = e2);
23795
+ r[0] === c ? e2 = r[1] : (e2 = c.find(_temp6$5), r[0] = c, r[1] = e2);
23796
23796
  let d2 = e2;
23797
23797
  d2 && "exception_type" in d2 && (_ = d2.exception_type);
23798
23798
  }
@@ -24164,10 +24164,10 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
24164
24164
  function _temp4$9(e) {
24165
24165
  return e.type === "ancestor-stopped";
24166
24166
  }
24167
- function _temp5$6(e) {
24167
+ function _temp5$5(e) {
24168
24168
  return e.type === "sql-error";
24169
24169
  }
24170
- function _temp6$6(e) {
24170
+ function _temp6$5(e) {
24171
24171
  return e.type === "exception";
24172
24172
  }
24173
24173
  function _temp7$2(e) {
@@ -25715,40 +25715,56 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
25715
25715
  function filterToFilterCondition(e, r) {
25716
25716
  if (!r) return [];
25717
25717
  let c = e;
25718
- if (r.operator === "is_null" || r.operator === "is_not_null") return {
25719
- column_id: c,
25720
- operator: r.operator,
25721
- value: void 0
25722
- };
25718
+ if (r.operator === "is_null" || r.operator === "is_not_null") return [
25719
+ {
25720
+ column_id: c,
25721
+ operator: r.operator,
25722
+ value: void 0,
25723
+ type: "condition",
25724
+ negate: false
25725
+ }
25726
+ ];
25723
25727
  switch (r.type) {
25724
25728
  case "number": {
25725
25729
  let e2 = [];
25726
25730
  return r.min !== void 0 && e2.push({
25727
25731
  column_id: c,
25728
25732
  operator: ">=",
25729
- value: r.min
25733
+ value: r.min,
25734
+ type: "condition",
25735
+ negate: false
25730
25736
  }), r.max !== void 0 && e2.push({
25731
25737
  column_id: c,
25732
25738
  operator: "<=",
25733
- value: r.max
25739
+ value: r.max,
25740
+ type: "condition",
25741
+ negate: false
25734
25742
  }), e2;
25735
25743
  }
25736
25744
  case "text":
25737
- return {
25738
- column_id: c,
25739
- operator: r.operator,
25740
- value: r.text
25741
- };
25745
+ return [
25746
+ {
25747
+ column_id: c,
25748
+ operator: r.operator,
25749
+ value: r.text,
25750
+ type: "condition",
25751
+ negate: false
25752
+ }
25753
+ ];
25742
25754
  case "datetime": {
25743
25755
  let e2 = [];
25744
25756
  return r.min !== void 0 && e2.push({
25745
25757
  column_id: c,
25746
25758
  operator: ">=",
25747
- value: r.min.toISOString()
25759
+ value: r.min.toISOString(),
25760
+ type: "condition",
25761
+ negate: false
25748
25762
  }), r.max !== void 0 && e2.push({
25749
25763
  column_id: c,
25750
25764
  operator: "<=",
25751
- value: r.max.toISOString()
25765
+ value: r.max.toISOString(),
25766
+ type: "condition",
25767
+ negate: false
25752
25768
  }), e2;
25753
25769
  }
25754
25770
  case "date": {
@@ -25756,11 +25772,15 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
25756
25772
  return r.min !== void 0 && e2.push({
25757
25773
  column_id: c,
25758
25774
  operator: ">=",
25759
- value: r.min.toISOString()
25775
+ value: r.min.toISOString(),
25776
+ type: "condition",
25777
+ negate: false
25760
25778
  }), r.max !== void 0 && e2.push({
25761
25779
  column_id: c,
25762
25780
  operator: "<=",
25763
- value: r.max.toISOString()
25781
+ value: r.max.toISOString(),
25782
+ type: "condition",
25783
+ negate: false
25764
25784
  }), e2;
25765
25785
  }
25766
25786
  case "time": {
@@ -25768,37 +25788,61 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
25768
25788
  return r.min !== void 0 && e2.push({
25769
25789
  column_id: c,
25770
25790
  operator: ">=",
25771
- value: r.min.toISOString()
25791
+ value: r.min.toISOString(),
25792
+ type: "condition",
25793
+ negate: false
25772
25794
  }), r.max !== void 0 && e2.push({
25773
25795
  column_id: c,
25774
25796
  operator: "<=",
25775
- value: r.max.toISOString()
25797
+ value: r.max.toISOString(),
25798
+ type: "condition",
25799
+ negate: false
25776
25800
  }), e2;
25777
25801
  }
25778
25802
  case "boolean":
25779
- return r.value ? {
25780
- column_id: c,
25781
- operator: "is_true",
25782
- value: void 0
25783
- } : r.value ? [] : {
25784
- column_id: c,
25785
- operator: "is_false",
25786
- value: void 0
25787
- };
25803
+ return r.value ? [
25804
+ {
25805
+ column_id: c,
25806
+ operator: "is_true",
25807
+ value: void 0,
25808
+ type: "condition",
25809
+ negate: false
25810
+ }
25811
+ ] : r.value ? [] : [
25812
+ {
25813
+ column_id: c,
25814
+ operator: "is_false",
25815
+ value: void 0,
25816
+ type: "condition",
25817
+ negate: false
25818
+ }
25819
+ ];
25788
25820
  case "select": {
25789
25821
  let e2 = r.operator;
25790
25822
  return r.operator !== "in" && r.operator !== "not_in" && (Logger.warn("Invalid operator for select filter", {
25791
25823
  operator: r.operator
25792
- }), e2 = "in"), {
25793
- column_id: c,
25794
- operator: e2,
25795
- value: r.options
25796
- };
25824
+ }), e2 = "in"), [
25825
+ {
25826
+ column_id: c,
25827
+ operator: e2,
25828
+ value: r.options,
25829
+ type: "condition",
25830
+ negate: false
25831
+ }
25832
+ ];
25797
25833
  }
25798
25834
  default:
25799
25835
  assertNever(r);
25800
25836
  }
25801
25837
  }
25838
+ function filtersToFilterGroup(e) {
25839
+ return {
25840
+ type: "group",
25841
+ operator: "and",
25842
+ children: e.flatMap((e2) => filterToFilterCondition(e2.id, e2.value)),
25843
+ negate: false
25844
+ };
25845
+ }
25802
25846
  function functionalUpdate(e, r) {
25803
25847
  return typeof e == "function" ? e(r) : e;
25804
25848
  }
@@ -34080,7 +34124,6 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34080
34124
  [r.id]: d
34081
34125
  }));
34082
34126
  }
34083
- var MAX_PAGES_BEFORE_CLAMPING = 100;
34084
34127
  const DataTablePagination = ({ table: e, tableLoading: r, showPageSizeSelector: c }) => {
34085
34128
  let { locale: d } = $18f2051aff69b9bf$export$43bb16f9c6d9e3f7(), f = Math.min(e.getState().pagination.pageIndex + 1, e.getPageCount()), h = e.getPageCount(), _ = e.getState().pagination.pageSize, S = (e2) => {
34086
34129
  r || e2();
@@ -34226,16 +34269,62 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34226
34269
  })
34227
34270
  ]
34228
34271
  });
34229
- }, PageSelector = ({ currentPage: e, totalPages: r, onPageChange: c }) => {
34230
- let [d, f] = import_react.useState(false), h = import_react.useMemo(() => getPageRanges(e, r), [
34231
- e,
34232
- r
34233
- ]), _ = (e2) => {
34234
- c(e2 - 1), f(false);
34272
+ };
34273
+ var PAGE_ITEM_HEIGHT = 32;
34274
+ function matchingPageRanges(e, r) {
34275
+ let c = Number.parseInt(e, 10);
34276
+ if (Number.isNaN(c) || c <= 0 || String(c) !== e) return [];
34277
+ let d = [], f = 1;
34278
+ for (; c * f <= r; ) {
34279
+ let e2 = c * f, h = Math.min((c + 1) * f - 1, r);
34280
+ d.push([
34281
+ e2,
34282
+ h
34283
+ ]), f *= 10;
34284
+ }
34285
+ return d;
34286
+ }
34287
+ function createPageMapping(e, r) {
34288
+ if (e === "") return {
34289
+ count: r,
34290
+ pageAtIndex: (e2) => e2 + 1,
34291
+ indexOfPage: (e2) => e2 - 1
34292
+ };
34293
+ let c = matchingPageRanges(e, r), d = 0;
34294
+ for (let [e2, r2] of c) d += r2 - e2 + 1;
34295
+ return {
34296
+ count: d,
34297
+ pageAtIndex: (e2) => {
34298
+ let r2 = 0;
34299
+ for (let [d2, f] of c) {
34300
+ let c2 = f - d2 + 1;
34301
+ if (e2 < r2 + c2) return d2 + (e2 - r2);
34302
+ r2 += c2;
34303
+ }
34304
+ return -1;
34305
+ },
34306
+ indexOfPage: (e2) => {
34307
+ let r2 = 0;
34308
+ for (let [d2, f] of c) {
34309
+ if (e2 >= d2 && e2 <= f) return r2 + (e2 - d2);
34310
+ r2 += f - d2 + 1;
34311
+ }
34312
+ return -1;
34313
+ }
34235
34314
  };
34315
+ }
34316
+ const PageSelector = ({ currentPage: e, totalPages: r, onPageChange: c }) => {
34317
+ let [d, f] = import_react.useState(false), [h, _] = import_react.useState(""), y = import_react.useMemo(() => createPageMapping(h, r), [
34318
+ h,
34319
+ r
34320
+ ]), S = (e2) => {
34321
+ c(e2 - 1), _(""), f(false);
34322
+ }, w = Math.min(y.count * PAGE_ITEM_HEIGHT, 240);
34236
34323
  return (0, import_jsx_runtime.jsxs)(Popover$1, {
34237
34324
  open: r > 1 ? d : false,
34238
- onOpenChange: f,
34325
+ onOpenChange: (e2) => {
34326
+ f(e2), e2 || _("");
34327
+ },
34239
34328
  children: [
34240
34329
  (0, import_jsx_runtime.jsx)(PopoverTrigger, {
34241
34330
  asChild: true,
@@ -34258,8 +34347,8 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34258
34347
  align: "center",
34259
34348
  sideOffset: 6,
34260
34349
  children: (0, import_jsx_runtime.jsxs)(Command, {
34261
- shouldFilter: true,
34262
- filter: (e2, r2) => e2.startsWith(r2) ? 1 : 0,
34350
+ shouldFilter: false,
34351
+ value: String(e),
34263
34352
  children: [
34264
34353
  (0, import_jsx_runtime.jsx)(CommandInput, {
34265
34354
  placeholder: `Page (1\u2013${r})`,
@@ -34267,34 +34356,33 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34267
34356
  className: "text-xs h-8",
34268
34357
  autoFocus: true,
34269
34358
  icon: null,
34359
+ value: h,
34360
+ onValueChange: _,
34270
34361
  onKeyDown: (e2) => {
34271
34362
  ![
34272
34363
  "Backspace",
34273
34364
  "Delete",
34274
34365
  "ArrowLeft",
34275
34366
  "ArrowRight",
34367
+ "ArrowUp",
34368
+ "ArrowDown",
34276
34369
  "Tab",
34277
34370
  "Enter",
34278
34371
  "Escape"
34279
34372
  ].includes(e2.key) && !/^\d$/.test(e2.key) && e2.preventDefault();
34280
34373
  }
34281
34374
  }),
34282
- (0, import_jsx_runtime.jsxs)(CommandList, {
34283
- className: "max-h-60",
34284
- children: [
34285
- h.map((r2) => r2.type === "ellipsis" ? null : (0, import_jsx_runtime.jsx)(CommandItem, {
34286
- value: String(r2.page),
34287
- "data-testid": "page-option",
34288
- className: cn("text-xs cursor-pointer", r2.page === e && "font-semibold bg-accent"),
34289
- onSelect: () => _(r2.page),
34290
- onMouseDown: Events.preventFocus,
34291
- children: r2.page
34292
- }, r2.page)),
34293
- (0, import_jsx_runtime.jsx)(CommandEmpty, {
34294
- className: "py-2 text-center text-xs text-muted-foreground",
34295
- children: "No matching page"
34296
- })
34297
- ]
34375
+ (0, import_jsx_runtime.jsx)(CommandList, {
34376
+ className: "max-h-60 overflow-hidden",
34377
+ children: y.count === 0 ? (0, import_jsx_runtime.jsx)(CommandEmpty, {
34378
+ className: "py-2 text-center text-xs text-muted-foreground",
34379
+ children: "No matching page"
34380
+ }) : (0, import_jsx_runtime.jsx)(VirtualizedPageList, {
34381
+ mapping: y,
34382
+ currentPage: e,
34383
+ listHeight: w,
34384
+ onSelect: S
34385
+ })
34298
34386
  })
34299
34387
  ]
34300
34388
  })
@@ -34302,41 +34390,58 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34302
34390
  ]
34303
34391
  });
34304
34392
  };
34305
- function getPageRanges(e, r) {
34306
- if (r <= MAX_PAGES_BEFORE_CLAMPING) return range_default(r).map((e2) => ({
34307
- type: "page",
34308
- page: e2 + 1
34309
- }));
34310
- let c = Math.floor(r / 2), d = [], f = (e2, r2) => {
34311
- for (let c2 = 0; c2 < r2; c2++) d.push({
34312
- type: "page",
34313
- page: e2 + c2
34314
- });
34315
- };
34316
- return f(1, 10), d.push({
34317
- type: "ellipsis",
34318
- key: "e1"
34319
- }), e > 10 && e <= c - 5 && d.push({
34320
- type: "page",
34321
- page: e
34322
- }, {
34323
- type: "ellipsis",
34324
- key: "e1b"
34325
- }), f(c - 4, 10), d.push({
34326
- type: "ellipsis",
34327
- key: "e2"
34328
- }), e > c + 5 && e <= r - 10 && d.push({
34329
- type: "page",
34330
- page: e
34331
- }, {
34332
- type: "ellipsis",
34333
- key: "e2b"
34334
- }), f(r - 9, 10), d;
34335
- }
34393
+ var VirtualizedPageList = ({ mapping: e, currentPage: r, listHeight: c, onSelect: d }) => {
34394
+ let f = import_react.useRef(null), h = e.indexOfPage(r), _ = useVirtualizer({
34395
+ count: e.count,
34396
+ getScrollElement: () => f.current,
34397
+ estimateSize: () => PAGE_ITEM_HEIGHT,
34398
+ overscan: 10,
34399
+ initialOffset: h > 0 ? Math.max(0, h * PAGE_ITEM_HEIGHT - c / 2) : 0
34400
+ }), S = import_react.useRef(e.count);
34401
+ return import_react.useEffect(() => {
34402
+ e.count !== S.current && (_.scrollToIndex(0), S.current = e.count);
34403
+ }, [
34404
+ e.count,
34405
+ _
34406
+ ]), (0, import_jsx_runtime.jsx)("div", {
34407
+ ref: f,
34408
+ style: {
34409
+ height: c,
34410
+ overflow: "auto"
34411
+ },
34412
+ children: (0, import_jsx_runtime.jsx)("div", {
34413
+ style: {
34414
+ height: _.getTotalSize(),
34415
+ width: "100%",
34416
+ position: "relative"
34417
+ },
34418
+ children: _.getVirtualItems().map((c2) => {
34419
+ let f2 = e.pageAtIndex(c2.index);
34420
+ return (0, import_jsx_runtime.jsx)(CommandItem, {
34421
+ value: String(f2),
34422
+ "data-testid": "page-option",
34423
+ "aria-selected": f2 === r,
34424
+ className: cn("text-xs cursor-pointer", f2 === r && "font-semibold bg-accent"),
34425
+ style: {
34426
+ position: "absolute",
34427
+ top: 0,
34428
+ left: 0,
34429
+ width: "100%",
34430
+ height: c2.size,
34431
+ transform: `translateY(${c2.start}px)`
34432
+ },
34433
+ onSelect: () => d(f2),
34434
+ onMouseDown: Events.preventFocus,
34435
+ children: f2
34436
+ }, f2);
34437
+ })
34438
+ })
34439
+ });
34440
+ };
34336
34441
  function prettifyRowCount(e, r) {
34337
34442
  return `${prettyNumber(e, r)} ${new PluralWord("row").pluralize(e)}`;
34338
34443
  }
34339
- const prettifyRowColumnCount = (e, r, c) => [
34444
+ const prettifyRowColumnCount = ({ numRows: e, totalColumns: r, locale: c }) => [
34340
34445
  e === "too_many" ? "Unknown" : prettifyRowCount(e, c),
34341
34446
  `${prettyNumber(r, c)} ${new PluralWord("column").pluralize(r)}`
34342
34447
  ].join(", ");
@@ -34522,7 +34627,11 @@ Database schema: ${c}`), (_a4 = r2.aiFix) == null ? void 0 : _a4.setAiCompletion
34522
34627
  })
34523
34628
  ]
34524
34629
  }) : (0, import_jsx_runtime.jsx)("span", {
34525
- children: prettifyRowColumnCount(f.getRowCount(), r, O)
34630
+ children: prettifyRowColumnCount({
34631
+ numRows: f.getRowCount(),
34632
+ totalColumns: r,
34633
+ locale: O
34634
+ })
34526
34635
  });
34527
34636
  })()
34528
34637
  }),
@@ -37143,7 +37252,7 @@ ${w}`,
37143
37252
  };
37144
37253
  }
37145
37254
  };
37146
- var LazyChatbot = import_react.lazy(() => import("./chat-ui-CNHw9Osh.js").then((e) => ({
37255
+ var LazyChatbot = import_react.lazy(() => import("./chat-ui-CQtPb6Dj.js").then((e) => ({
37147
37256
  default: e.Chatbot
37148
37257
  }))), messageSchema = array(object({
37149
37258
  id: string(),
@@ -37287,7 +37396,7 @@ ${w}`,
37287
37396
  "time",
37288
37397
  "unknown"
37289
37398
  ];
37290
- var import_compiler_runtime$89 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-BFqEJGJW.js").then(async (m2) => {
37399
+ var import_compiler_runtime$89 = require_compiler_runtime(), LazyDataEditor = import_react.lazy(() => import("./glide-data-editor-DBgJAMqf.js").then(async (m2) => {
37291
37400
  await m2.__tla;
37292
37401
  return m2;
37293
37402
  }));
@@ -43129,7 +43238,7 @@ ${c}
43129
43238
  r[0] !== c || r[1] !== f ? (h = () => {
43130
43239
  f.setValue(c, "");
43131
43240
  }, r[0] = c, r[1] = f, r[2] = h) : h = r[2];
43132
- let _ = h, v = _temp5$5, y;
43241
+ let _ = h, v = _temp5$4, y;
43133
43242
  r[3] !== _ || r[4] !== d ? (y = (e2) => {
43134
43243
  let { field: r2 } = e2;
43135
43244
  return (0, import_jsx_runtime.jsxs)(FormItem, {
@@ -43250,7 +43359,7 @@ ${c}
43250
43359
  render: S
43251
43360
  }), r[5] = c, r[6] = y.control, r[7] = S, r[8] = w) : w = r[8], w;
43252
43361
  }, AggregationSelect = (e) => {
43253
- let r = (0, import_compiler_runtime$80.c)(12), { fieldName: c, selectedDataType: d, binFieldName: f, defaultAggregation: h } = e, _ = useFormContext(), v = d === "string" ? STRING_AGGREGATION_FNS : AGGREGATION_FNS$1, { chartType: y } = useChartFormContext(), S = y !== ChartType.HEATMAP, w = _temp6$5, E = _temp7$1, O;
43362
+ let r = (0, import_compiler_runtime$80.c)(12), { fieldName: c, selectedDataType: d, binFieldName: f, defaultAggregation: h } = e, _ = useFormContext(), v = d === "string" ? STRING_AGGREGATION_FNS : AGGREGATION_FNS$1, { chartType: y } = useChartFormContext(), S = y !== ChartType.HEATMAP, w = _temp6$4, E = _temp7$1, O;
43254
43363
  r[0] !== f || r[1] !== _ ? (O = (e2) => {
43255
43364
  let { value: r2, previousValue: c2, onChange: d2 } = e2;
43256
43365
  r2 === "bin" ? _.setValue(f, true) : c2 === "bin" && _.setValue(f, false), d2(r2);
@@ -43404,7 +43513,7 @@ ${c}
43404
43513
  function _temp4$7(e) {
43405
43514
  return e;
43406
43515
  }
43407
- function _temp5$5(e) {
43516
+ function _temp5$4(e) {
43408
43517
  let [r, c] = TIME_UNIT_DESCRIPTIONS[e];
43409
43518
  return (0, import_jsx_runtime.jsx)(SelectItem, {
43410
43519
  value: e,
@@ -43416,7 +43525,7 @@ ${c}
43416
43525
  children: r
43417
43526
  }, e);
43418
43527
  }
43419
- function _temp6$5(e) {
43528
+ function _temp6$4(e) {
43420
43529
  return (0, import_jsx_runtime.jsx)("span", {
43421
43530
  className: "text-xs text-muted-foreground pr-10",
43422
43531
  children: e
@@ -44971,7 +45080,11 @@ ${c}
44971
45080
  });
44972
45081
  q = "mb-3";
44973
45082
  let Q72;
44974
- r[17] !== S || r[18] !== h || r[19] !== f ? (Q72 = prettifyRowColumnCount(f, h, S), r[17] = S, r[18] = h, r[19] = f, r[20] = Q72) : Q72 = r[20], X7 = (0, import_jsx_runtime.jsxs)("span", {
45083
+ r[17] !== S || r[18] !== h || r[19] !== f ? (Q72 = prettifyRowColumnCount({
45084
+ numRows: f,
45085
+ totalColumns: h,
45086
+ locale: S
45087
+ }), r[17] = S, r[18] = h, r[19] = f, r[20] = Q72) : Q72 = r[20], X7 = (0, import_jsx_runtime.jsxs)("span", {
44975
45088
  className: "text-xs font-semibold ml-2 flex",
44976
45089
  children: [
44977
45090
  Q72,
@@ -45609,6 +45722,12 @@ ${c}
45609
45722
  "<=": [
45610
45723
  e
45611
45724
  ],
45725
+ between: [
45726
+ object({
45727
+ min: e,
45728
+ max: e
45729
+ })
45730
+ ],
45612
45731
  is_null: [],
45613
45732
  is_not_null: []
45614
45733
  });
@@ -45637,6 +45756,7 @@ ${c}
45637
45756
  not_in: [
45638
45757
  Schema.stringMultiColumnValues
45639
45758
  ],
45759
+ is_empty: [],
45640
45760
  is_null: [],
45641
45761
  is_not_null: []
45642
45762
  }, ALL_OPERATORS = {
@@ -45753,17 +45873,30 @@ ${c}
45753
45873
  special: "radio_group"
45754
45874
  })).default("last")
45755
45875
  });
45756
- const ConditionSchema = object({
45876
+ const FilterConditionSchema = object({
45757
45877
  column_id,
45758
45878
  operator: _enum(Object.keys(ALL_OPERATORS)).describe(FieldOptions.of({
45759
45879
  label: " "
45760
45880
  })),
45881
+ type: literal("condition").default("condition"),
45761
45882
  value: any().describe(FieldOptions.of({
45762
45883
  label: "Value"
45763
- }))
45884
+ })),
45885
+ negate: boolean().default(false)
45764
45886
  }).describe(FieldOptions.of({
45765
45887
  direction: "row",
45766
45888
  special: "column_filter"
45889
+ })), FilterGroupSchema = lazy$2(() => object({
45890
+ type: literal("group").default("group"),
45891
+ operator: _enum([
45892
+ "and",
45893
+ "or"
45894
+ ]).default("and"),
45895
+ children: array(union([
45896
+ FilterConditionSchema,
45897
+ FilterGroupSchema
45898
+ ])).default([]),
45899
+ negate: boolean().default(false)
45767
45900
  }));
45768
45901
  var FilterRowsTransformSchema = object({
45769
45902
  type: literal("filter_rows"),
@@ -45773,16 +45906,23 @@ ${c}
45773
45906
  ]).default("keep_rows").describe(FieldOptions.of({
45774
45907
  special: "radio_group"
45775
45908
  })),
45776
- where: array(ConditionSchema).min(1).describe(FieldOptions.of({
45909
+ where: array(FilterConditionSchema).min(1).describe(FieldOptions.of({
45777
45910
  label: "Value",
45778
45911
  minLength: 1
45779
- })).transform((e) => e.filter((e2) => isConditionValueValid(e2.operator, e2.value))).default(() => [
45912
+ })).default(() => [
45780
45913
  {
45781
45914
  column_id: "",
45782
45915
  operator: "==",
45783
- value: ""
45784
- }
45785
- ])
45916
+ value: "",
45917
+ type: "condition",
45918
+ negate: false
45919
+ }
45920
+ ]).transform((e) => ({
45921
+ type: "group",
45922
+ operator: "and",
45923
+ children: e.filter((e2) => isConditionValueValid(e2.operator, e2.value)),
45924
+ negate: false
45925
+ }))
45786
45926
  }), GroupByTransformSchema = object({
45787
45927
  type: literal("group_by"),
45788
45928
  column_ids: array(column_id.describe(FieldOptions.of({
@@ -46008,7 +46148,7 @@ ${c}
46008
46148
  descending: boolean()
46009
46149
  })).optional(),
46010
46150
  query: string().optional(),
46011
- filters: array(ConditionSchema).optional(),
46151
+ filters: FilterGroupSchema.optional(),
46012
46152
  page_number: number(),
46013
46153
  page_size: number(),
46014
46154
  max_columns: number().nullable().optional()
@@ -46166,9 +46306,9 @@ ${c}
46166
46306
  query: M,
46167
46307
  page_number: E.pageIndex,
46168
46308
  page_size: E.pageSize,
46169
- filters: Y7.flatMap(_temp2$15)
46309
+ filters: filtersToFilterGroup(Y7)
46170
46310
  });
46171
- if (S2) w2.catch(_temp3$10);
46311
+ if (S2) w2.catch(_temp2$15);
46172
46312
  else {
46173
46313
  let e2 = await w2;
46174
46314
  r2 = e2.data, c2 = e2.raw_data, d2 = e2.total_rows, h = e2.cell_styles || {}, _2 = e2.cell_hover_texts || {};
@@ -46202,15 +46342,15 @@ ${c}
46202
46342
  rows: await loadTableData((await f({
46203
46343
  page_number: e2,
46204
46344
  page_size: 1,
46205
- sort: y.length > 0 ? y.map(_temp4$6) : void 0,
46345
+ sort: y.length > 0 ? y.map(_temp3$10) : void 0,
46206
46346
  query: M,
46207
- filters: Y7.flatMap(_temp5$4),
46347
+ filters: filtersToFilterGroup(Y7),
46208
46348
  max_columns: null
46209
46349
  })).data)
46210
46350
  }), r[48] = Y7, r[49] = f, r[50] = M, r[51] = y, r[52] = l9) : l9 = r[52];
46211
46351
  let u9 = l9, d9;
46212
46352
  r[53] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (d9 = () => {
46213
- O(_temp6$4);
46353
+ O(_temp4$6);
46214
46354
  }, r[53] = d9) : d9 = r[53];
46215
46355
  let f9 = a9 == null ? void 0 : a9.totalRows, p9;
46216
46356
  r[54] === f9 ? p9 = r[55] : (p9 = [
@@ -46512,21 +46652,15 @@ ${c}
46512
46652
  };
46513
46653
  }
46514
46654
  function _temp2$15(e) {
46515
- return filterToFilterCondition(e.id, e.value);
46516
- }
46517
- function _temp3$10(e) {
46518
46655
  Logger.error(e);
46519
46656
  }
46520
- function _temp4$6(e) {
46657
+ function _temp3$10(e) {
46521
46658
  return {
46522
46659
  by: e.id,
46523
46660
  descending: e.desc
46524
46661
  };
46525
46662
  }
46526
- function _temp5$4(e) {
46527
- return filterToFilterCondition(e.id, e.value);
46528
- }
46529
- function _temp6$4(e) {
46663
+ function _temp4$6(e) {
46530
46664
  return e.pageIndex === 0 ? e : {
46531
46665
  ...e,
46532
46666
  pageIndex: 0
@@ -49109,7 +49243,7 @@ ${c}
49109
49243
  descending: boolean()
49110
49244
  })).optional(),
49111
49245
  query: string().optional(),
49112
- filters: array(ConditionSchema).optional(),
49246
+ filters: FilterGroupSchema.optional(),
49113
49247
  page_number: number(),
49114
49248
  page_size: number()
49115
49249
  })).output(object({
@@ -56517,31 +56651,35 @@ ${c}
56517
56651
  __privateGet(this, _e8).style.cursor = "crosshair";
56518
56652
  });
56519
56653
  __privateAdd(this, _b2, (e) => {
56520
- if (!(!e || !("has_selection" in e) || !e.has_selection)) {
56521
- if (e.type === "box") {
56522
- let r = e.data;
56523
- __privateSet(this, _r2, {
56524
- type: "box",
56525
- start: dataToPixel({
56526
- x: r.x_min,
56527
- y: r.y_min
56528
- }, __privateGet(this, _n4)),
56529
- end: dataToPixel({
56530
- x: r.x_max,
56531
- y: r.y_max
56532
- }, __privateGet(this, _n4)),
56533
- action: null
56534
- });
56535
- } else e.type === "lasso" && __privateSet(this, _r2, {
56536
- type: "lasso",
56537
- points: e.data.map(([e2, r]) => dataToPixel({
56538
- x: e2,
56539
- y: r
56540
- }, __privateGet(this, _n4))),
56654
+ if (!e || !("has_selection" in e) || !e.has_selection) {
56655
+ __privateGet(this, _r2).type !== "idle" && (__privateSet(this, _r2, {
56656
+ type: "idle"
56657
+ }), __privateGet(this, _f2).call(this));
56658
+ return;
56659
+ }
56660
+ if (e.type === "box") {
56661
+ let r = e.data;
56662
+ __privateSet(this, _r2, {
56663
+ type: "box",
56664
+ start: dataToPixel({
56665
+ x: r.x_min,
56666
+ y: r.y_min
56667
+ }, __privateGet(this, _n4)),
56668
+ end: dataToPixel({
56669
+ x: r.x_max,
56670
+ y: r.y_max
56671
+ }, __privateGet(this, _n4)),
56541
56672
  action: null
56542
56673
  });
56543
- __privateGet(this, _f2).call(this);
56544
- }
56674
+ } else e.type === "lasso" && __privateSet(this, _r2, {
56675
+ type: "lasso",
56676
+ points: e.data.map(([e2, r]) => dataToPixel({
56677
+ x: e2,
56678
+ y: r
56679
+ }, __privateGet(this, _n4))),
56680
+ action: null
56681
+ });
56682
+ __privateGet(this, _f2).call(this);
56545
56683
  });
56546
56684
  __privateAdd(this, _x, (e) => {
56547
56685
  __privateGet(this, _e8).setPointerCapture(e.pointerId), __privateGet(this, _t5).focus();
@@ -56706,6 +56844,11 @@ ${c}
56706
56844
  __privateMethod(this, _MatplotlibRenderer_instances, u_fn).call(this, e.chartBase64);
56707
56845
  return;
56708
56846
  }
56847
+ let d = __privateGet(this, _r2).type !== "idle" && __privateGet(this, _r2).action !== null;
56848
+ if (e.value !== r.value && !d) {
56849
+ __privateGet(this, _b2).call(this, e.value);
56850
+ return;
56851
+ }
56709
56852
  (c || e.selectionColor !== r.selectionColor || e.selectionOpacity !== r.selectionOpacity || e.strokeWidth !== r.strokeWidth) && __privateGet(this, _d2).call(this);
56710
56853
  }
56711
56854
  }, _e8 = new WeakMap(), _t5 = new WeakMap(), _n4 = new WeakMap(), _r2 = new WeakMap(), _i2 = new WeakMap(), _a2 = new WeakMap(), _o2 = new WeakMap(), _s = new WeakMap(), _MatplotlibRenderer_instances = new WeakSet(), c_fn = function(e = __privateGet(this, _e8)) {
@@ -58361,7 +58504,8 @@ ${c}
58361
58504
  constructor() {
58362
58505
  __publicField(this, "tagName", "marimo-tabs");
58363
58506
  __publicField(this, "validator", object({
58364
- tabs: array(string())
58507
+ tabs: array(string()),
58508
+ label: string().nullable()
58365
58509
  }));
58366
58510
  }
58367
58511
  render(e) {
@@ -58373,29 +58517,35 @@ ${c}
58373
58517
  });
58374
58518
  }
58375
58519
  }, TabComponent = (e) => {
58376
- let r = (0, import_compiler_runtime$28.c)(13), { tabs: c, value: d, setValue: f, children: h } = e, [_, v] = import_react.useState(d || "0"), y;
58377
- r[0] === f ? y = r[1] : (y = (e2) => {
58378
- v(e2), f(e2);
58379
- }, r[0] = f, r[1] = y);
58380
- let S = y;
58381
- d !== _ && d && v(d);
58382
- let w;
58383
- r[2] === c ? w = r[3] : (w = c.map(_temp$8), r[2] = c, r[3] = w);
58520
+ let r = (0, import_compiler_runtime$28.c)(16), { tabs: c, label: d, value: f, setValue: h, children: _ } = e, [v, y] = import_react.useState(f || "0"), S;
58521
+ r[0] === h ? S = r[1] : (S = (e2) => {
58522
+ y(e2), h(e2);
58523
+ }, r[0] = h, r[1] = S);
58524
+ let w = S;
58525
+ f !== v && f && y(f);
58384
58526
  let E;
58385
- r[4] === w ? E = r[5] : (E = (0, import_jsx_runtime.jsx)(TabsList, {
58386
- children: w
58387
- }), r[4] = w, r[5] = E);
58527
+ r[2] === c ? E = r[3] : (E = c.map(_temp$8), r[2] = c, r[3] = E);
58388
58528
  let O;
58389
- r[6] === h ? O = r[7] : (O = import_react.Children.map(h, _temp2$4), r[6] = h, r[7] = O);
58529
+ r[4] === E ? O = r[5] : (O = (0, import_jsx_runtime.jsx)(TabsList, {
58530
+ children: E
58531
+ }), r[4] = E, r[5] = O);
58390
58532
  let M;
58391
- return r[8] !== S || r[9] !== _ || r[10] !== E || r[11] !== O ? (M = (0, import_jsx_runtime.jsxs)(Tabs, {
58392
- value: _,
58393
- onValueChange: S,
58533
+ r[6] === _ ? M = r[7] : (M = import_react.Children.map(_, _temp2$4), r[6] = _, r[7] = M);
58534
+ let I;
58535
+ r[8] !== w || r[9] !== v || r[10] !== O || r[11] !== M ? (I = (0, import_jsx_runtime.jsxs)(Tabs, {
58536
+ value: v,
58537
+ onValueChange: w,
58394
58538
  children: [
58395
- E,
58396
- O
58539
+ O,
58540
+ M
58397
58541
  ]
58398
- }), r[8] = S, r[9] = _, r[10] = E, r[11] = O, r[12] = M) : M = r[12], M;
58542
+ }), r[8] = w, r[9] = v, r[10] = O, r[11] = M, r[12] = I) : I = r[12];
58543
+ let z;
58544
+ return r[13] !== d || r[14] !== I ? (z = (0, import_jsx_runtime.jsx)(Labeled, {
58545
+ label: d,
58546
+ align: "top",
58547
+ children: I
58548
+ }), r[13] = d, r[14] = I, r[15] = z) : z = r[15], z;
58399
58549
  };
58400
58550
  function _temp$8(e, r) {
58401
58551
  return (0, import_jsx_runtime.jsx)(TabsTrigger, {
@@ -58678,7 +58828,7 @@ ${c}
58678
58828
  return true;
58679
58829
  }
58680
58830
  }
58681
- var LazyVegaComponent = import_react.lazy(() => import("./vega-component-KBJXEDZz.js")), VegaPlugin = class {
58831
+ var LazyVegaComponent = import_react.lazy(() => import("./vega-component-CrVeizNZ.js")), VegaPlugin = class {
58682
58832
  constructor() {
58683
58833
  __publicField(this, "tagName", "marimo-vega");
58684
58834
  __publicField(this, "validator", object({
@@ -58999,7 +59149,7 @@ ${c}
58999
59149
  diagram: e.data.diagram
59000
59150
  });
59001
59151
  }
59002
- }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-BbhZNQeB.js").then(async (m2) => {
59152
+ }, LazyMermaid = (0, import_react.lazy)(() => import("./mermaid-CcM8GHeT.js").then(async (m2) => {
59003
59153
  await m2.__tla;
59004
59154
  return m2;
59005
59155
  })), import_compiler_runtime$22 = require_compiler_runtime();
@@ -68770,7 +68920,7 @@ ${c}
68770
68920
  return Logger.warn("Failed to get version from mount config"), null;
68771
68921
  }
68772
68922
  }
68773
- const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.2-dev3"), showCodeInRunModeAtom = atom(true);
68923
+ const marimoVersionAtom = atom(getVersionFromMountConfig() || "0.23.2-dev30"), showCodeInRunModeAtom = atom(true);
68774
68924
  atom(null);
68775
68925
  var VIRTUAL_FILE_REGEX = /\/@file\/([^\s"&'/]+)\.([\dA-Za-z]+)/g, VirtualFileTracker = class e {
68776
68926
  constructor() {