@marimo-team/islands 0.22.1-dev3 → 0.22.1-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 (325) hide show
  1. package/dist/{ConnectedDataExplorerComponent-Dl1grr8z.js → ConnectedDataExplorerComponent-DTOsfq2x.js} +54 -54
  2. package/dist/_basePickBy-Sow3pJjS.js +41 -0
  3. package/dist/{_baseUniq-B4eL5sTC.js → _baseUniq-C87CckHL.js} +15 -54
  4. package/dist/{any-language-editor-CT_9yBde.js → any-language-editor-BHH_pQ6M.js} +21 -21
  5. package/dist/architecture-7HQA4BMR-BHdkAMvZ.js +6 -0
  6. package/dist/{architectureDiagram-VXUJARFQ-vxgYGIMP.js → architectureDiagram-VXUJARFQ-B3YQo9At.js} +15 -15
  7. package/dist/{arrays-Du-jRBAy.js → arrays-beUWo8RF.js} +1 -1
  8. package/dist/assets/__vite-browser-external-WSlCcXn_.js +1 -0
  9. package/dist/assets/{worker-D10K3OOz.js → worker-DUYMdbtA.js} +2 -2
  10. package/dist/{blockDiagram-VD42YOAC-C7x6YTH7.js → blockDiagram-VD42YOAC-CpQ3TKEN.js} +7 -7
  11. package/dist/{button-qsiIHncQ.js → button-DNlNlZY_.js} +82 -84
  12. package/dist/{c4Diagram-YG6GDRKO-Cx4oseGg.js → c4Diagram-YG6GDRKO-CZSU4uqU.js} +4 -4
  13. package/dist/{capabilities-26mwv03y.js → capabilities-Coe9eM9T.js} +2 -2
  14. package/dist/{channel-C_50jIAn.js → channel-X3JKk8gE.js} +1 -1
  15. package/dist/{chat-ui-CtqUthFR.js → chat-ui-eH46RYWT.js} +147 -146
  16. package/dist/{check-D_YwHEgY.js → check-CWUkiHmb.js} +1 -1
  17. package/dist/{chunk-4F5CHEZ2-Dvo_CFnR.js → chunk-4F5CHEZ2-D5mClyDv.js} +1 -1
  18. package/dist/{chunk-ABZYJK2D-D5YIs71w.js → chunk-ABZYJK2D-CZYCCtLy.js} +1 -1
  19. package/dist/{chunk-ATLVNIR6-CyOjzOcf.js → chunk-ATLVNIR6-DaOzLLgN.js} +1 -1
  20. package/dist/{chunk-B2363JML-BzZqINRO.js → chunk-B2363JML-Br0eA2T3.js} +1 -1
  21. package/dist/{chunk-B4BG7PRW-ZJeV3KdD.js → chunk-B4BG7PRW-4BjV11Br.js} +4 -4
  22. package/dist/{chunk-DI55MBZ5-Dx_wwX6l.js → chunk-DI55MBZ5-DITY3EyP.js} +4 -4
  23. package/dist/{chunk-EXTU4WIE-CgefpSXQ.js → chunk-EXTU4WIE-jUPSAk3i.js} +1 -1
  24. package/dist/{chunk-FRFDVMJY-Derq8UzY.js → chunk-FRFDVMJY-DnEvEFRR.js} +1 -1
  25. package/dist/{chunk-JA3XYJ7Z-CcIOIFpc.js → chunk-JA3XYJ7Z-BcPEfxk_.js} +2 -2
  26. package/dist/{chunk-JZLCHNYA-CgO0GG1p.js → chunk-JZLCHNYA-2bnLL3xL.js} +4 -4
  27. package/dist/{chunk-N4CR4FBY-2qzGzAxT.js → chunk-N4CR4FBY-CpZSuGSU.js} +5 -5
  28. package/dist/{chunk-PL6DKKU2-KoG71Zin.js → chunk-PL6DKKU2-DnId6G-x.js} +1 -1
  29. package/dist/{chunk-QN33PNHL-Dp1qBo28.js → chunk-QN33PNHL-B9p5ojHB.js} +1 -1
  30. package/dist/{chunk-QXUST7PY-BxmmeIwf.js → chunk-QXUST7PY-Ch6F5Obl.js} +5 -5
  31. package/dist/{chunk-S3R3BYOJ-D3Rys9ZW.js → chunk-S3R3BYOJ-B0UOFJwq.js} +3 -3
  32. package/dist/{chunk-SJTYNZTY-Co-DhKAG.js → chunk-SJTYNZTY-BsBZnJUj.js} +1 -1
  33. package/dist/{chunk-TCCFYFTB-BAhzIqBO.js → chunk-TCCFYFTB-Clbl-fTg.js} +8 -7
  34. package/dist/{chunk-TQ3KTPDO-DxYI735Z.js → chunk-TQ3KTPDO-CFkSQ30e.js} +1 -1
  35. package/dist/{chunk-TZMSLE5B-Dxumt0wv.js → chunk-TZMSLE5B-D45397J2.js} +1 -1
  36. package/dist/{chunk-UMXZTB3W-CuahpKin.js → chunk-UMXZTB3W-D-A834Bq.js} +1 -1
  37. package/dist/{classDiagram-v2-WZHVMYZB-CYoFMQKE.js → classDiagram-2ON5EDUG-C8-zE3Zv.js} +10 -10
  38. package/dist/{classDiagram-2ON5EDUG-DkOvXRlx.js → classDiagram-v2-WZHVMYZB-DrmbGANl.js} +10 -10
  39. package/dist/{clone-DDndUqI0.js → clone-DZFQCtFJ.js} +1 -1
  40. package/dist/{constants-D1Am36hX.js → constants-CvyfaCvs.js} +3 -3
  41. package/dist/{copy-CBo9JcJW.js → copy-B7781WJ3.js} +2 -2
  42. package/dist/{dagre-6UL2VRFP-BXBaU8PB.js → dagre-6UL2VRFP-OMItEBnY.js} +12 -12
  43. package/dist/{dagre-D3dlYz-r.js → dagre-QVd-lCXU.js} +13 -23
  44. package/dist/{data-grid-overlay-editor-nZux6_d2.js → data-grid-overlay-editor-lKF301ME.js} +1 -1
  45. package/dist/{diagram-PSM6KHXK-CJxjk4LG.js → diagram-PSM6KHXK-CkKbohWI.js} +16 -16
  46. package/dist/{diagram-QEK2KX5R-IMILPh_p.js → diagram-QEK2KX5R-DjUMpVcx.js} +14 -14
  47. package/dist/{diagram-S2PKOQOG-6O0g6Boj.js → diagram-S2PKOQOG-b-c0d-wZ.js} +14 -14
  48. package/dist/{dist-BkXs8bw0.js → dist--6TSlp8H.js} +1 -1
  49. package/dist/dist-7K5doRvB.js +6 -0
  50. package/dist/{dist-CQidOwep.js → dist-B43sbpd0.js} +3 -3
  51. package/dist/dist-B6I_A2-E.js +8 -0
  52. package/dist/dist-BEQsmaZY.js +5 -0
  53. package/dist/dist-BasY2RHp.js +8 -0
  54. package/dist/{dist-BemtTYzN.js → dist-Bfp1XXWt.js} +5 -5
  55. package/dist/{dist-v-1kgqZ3.js → dist-BjDuO5JW.js} +1 -1
  56. package/dist/dist-Bosc00dY.js +5 -0
  57. package/dist/{dist-DLNKBPsk.js → dist-BrxqmS9Q.js} +4 -4
  58. package/dist/{dist-DBYL08Lu.js → dist-BvhGByxL.js} +4 -4
  59. package/dist/{dist-CVqlhD3M.js → dist-C4bq5Ioy.js} +2 -2
  60. package/dist/{dist-DwmxBUOe.js → dist-CFKdzOIu.js} +2 -2
  61. package/dist/{dist-5nTQE2yt.js → dist-CIB8w0Fl.js} +2 -2
  62. package/dist/{dist-C-EcLtO9.js → dist-CNF0QBLR.js} +1 -1
  63. package/dist/dist-CQMZOn-_.js +8 -0
  64. package/dist/dist-CViQhWZ8.js +5 -0
  65. package/dist/{dist-Dg65j0em.js → dist-CcMfr7jD.js} +1 -1
  66. package/dist/{dist-C0XYIHKJ.js → dist-Ci0CXEFt.js} +1 -1
  67. package/dist/dist-Cz6rLfwY.js +5 -0
  68. package/dist/dist-D8eq8st3.js +6 -0
  69. package/dist/{dist-qoCY8giM.js → dist-DAfcmt-d.js} +2 -2
  70. package/dist/{dist-B6Op2ogv.js → dist-DD_cYHOl.js} +2 -2
  71. package/dist/{dist-BUSLKXcu.js → dist-DFK94vuS.js} +2 -2
  72. package/dist/{dist-DBXPlQ0D.js → dist-DGNtjMZu.js} +1 -1
  73. package/dist/{dist-C9qF7MRB.js → dist-DJ9F1eHs.js} +2 -2
  74. package/dist/{dist-Ci_jEudG.js → dist-DJKubHDd.js} +1 -1
  75. package/dist/{dist-CnFp2Kcl.js → dist-DLafRu9s.js} +2 -2
  76. package/dist/dist-DM1UDXdl.js +5 -0
  77. package/dist/dist-DNrtWPgS.js +5 -0
  78. package/dist/dist-D_UjpfOY.js +1381 -0
  79. package/dist/{dist-DmFS6KZW.js → dist-DbnBiLNH.js} +3 -3
  80. package/dist/{dist-BiZZAo22.js → dist-DlSUOIm9.js} +1 -1
  81. package/dist/{dist-DStU8He1.js → dist-Doy0mQDg.js} +2 -2
  82. package/dist/{dist-CxAX99oC.js → dist-DpkJHKB8.js} +2 -2
  83. package/dist/{dist-DjaZNkZ7.js → dist-LhQNUe5A.js} +3 -3
  84. package/dist/dist-V7q2qnpA.js +5 -0
  85. package/dist/{dist-BJ3fhRYu.js → dist-VqF3W_ue.js} +2 -2
  86. package/dist/dist-a5_hPgu2.js +8 -0
  87. package/dist/{dist-B9KLrfoh.js → dist-ej6AQKaS.js} +1 -1
  88. package/dist/{dist-Brb6VNc4.js → dist-m9tsXsFf.js} +2 -2
  89. package/dist/{dist-CBwMSFDu.js → dist-tGk0aZ--.js} +2 -2
  90. package/dist/dist-uVyZcV1-.js +5 -0
  91. package/dist/{erDiagram-Q2GNP2WA-sho7Cl9f.js → erDiagram-Q2GNP2WA-CDhLaOZ1.js} +10 -10
  92. package/dist/{error-banner-Bx9kIgrs.js → error-banner-Cjf0RU9I.js} +79 -79
  93. package/dist/{esm-CMg2ABu6.js → esm-4wmsH2lp.js} +6 -6
  94. package/dist/{esm-cqK9POGH.js → esm-CD1iby2n.js} +23 -23
  95. package/dist/{flowDiagram-NV44I4VS-C4nY4Fbz.js → flowDiagram-NV44I4VS-BDi4O4CL.js} +10 -10
  96. package/dist/{ganttDiagram-JELNMOA3-CtxNcCM2.js → ganttDiagram-JELNMOA3-BpZE6kVp.js} +3 -3
  97. package/dist/{gitGraph-G5XIXVHT-SL6TDof6.js → gitGraph-G5XIXVHT-B_c6xFJv.js} +3 -3
  98. package/dist/{gitGraphDiagram-V2S2FVAM-D9885mxd.js → gitGraphDiagram-V2S2FVAM-iQnXzbPM.js} +13 -13
  99. package/dist/{glide-data-editor-CkVEV-Gk.js → glide-data-editor-VgPtWvhu.js} +63 -63
  100. package/dist/{graphlib-CxWdvYQt.js → graphlib-BV1_gi0C.js} +4 -3
  101. package/dist/hasIn-DnfJcYpY.js +108 -0
  102. package/dist/{info-VBDWY6EO-6MXPTSmi.js → info-VBDWY6EO-BTyzxmhr.js} +3 -3
  103. package/dist/{infoDiagram-HS3SLOUP-Bw2FlRwF.js → infoDiagram-HS3SLOUP-OYrX6uO3.js} +13 -13
  104. package/dist/{input-BSde8uV4.js → input-CFY9gApZ.js} +5055 -5055
  105. package/dist/{isEmpty-BQtUinxJ.js → isEmpty-B7FX9wKt.js} +1 -1
  106. package/dist/{isSymbol-DFp8040B.js → isSymbol-DCbjQG_U.js} +1 -1
  107. package/dist/{journeyDiagram-XKPGCS4Q-BXlCEth8.js → journeyDiagram-XKPGCS4Q-ClPC94aN.js} +3 -3
  108. package/dist/{kanban-definition-3W4ZIXB7-CorxzSYm.js → kanban-definition-3W4ZIXB7-DHEAKdZt.js} +7 -7
  109. package/dist/{label-DTNqw9tv.js → label-DbZGAoCH.js} +538 -569
  110. package/dist/{loader-3c9hT4kT.js → loader-Bd1kgLn7.js} +19 -16
  111. package/dist/main.js +2602 -2594
  112. package/dist/{memoize-CuHciEBb.js → memoize-CSTI9eOX.js} +1 -1
  113. package/dist/{merge-CA_buyY3.js → merge-CVhG7q_o.js} +1 -1
  114. package/dist/{mermaid-CEKslOkI.js → mermaid-B2HDLx2g.js} +54 -54
  115. package/dist/{mermaid-parser.core-cq4YDee-.js → mermaid-parser.core-ntCgyx0x.js} +8 -8
  116. package/dist/min-Ds3gG0Ff.js +96 -0
  117. package/dist/{mindmap-definition-VGOIOE7T-DRsT8UaN.js → mindmap-definition-VGOIOE7T-CxEUZZvY.js} +9 -9
  118. package/dist/{now-CXAdKY5k.js → now-nrrrOr01.js} +1 -1
  119. package/dist/{once-CZno0h-b.js → once-C_TIu-kR.js} +1 -1
  120. package/dist/{packet-DYOGHKS2-Dw08gMaZ.js → packet-DYOGHKS2-BhvnpoGi.js} +3 -3
  121. package/dist/{pie-VRWISCQL-C5SPSvT8.js → pie-VRWISCQL-dILuA3iG.js} +3 -3
  122. package/dist/{pieDiagram-ADFJNKIX-DhJ1Cx2O.js → pieDiagram-ADFJNKIX-U3LrUqAS.js} +14 -14
  123. package/dist/{process-output-KyzWazB-.js → process-output-BbUNe4iH.js} +3181 -3204
  124. package/dist/{quadrantDiagram-AYHSOK5B-DXUFIWlz.js → quadrantDiagram-AYHSOK5B-BVWuq-3R.js} +2 -2
  125. package/dist/{radar-ZZBFDIW7-BvY0bgSg.js → radar-ZZBFDIW7-DwFrOJDj.js} +3 -3
  126. package/dist/range-fJeId9Ri.js +30 -0
  127. package/dist/{requirementDiagram-UZGBJVZJ-DO_gtQIb.js → requirementDiagram-UZGBJVZJ-D0zpQnKC.js} +9 -9
  128. package/dist/{sankeyDiagram-TZEHDZUN-OZzXEkuG.js → sankeyDiagram-TZEHDZUN-CExy1joT.js} +2 -2
  129. package/dist/{sequenceDiagram-WL72ISMW-K7nZRifV.js → sequenceDiagram-WL72ISMW-D1BJxLjH.js} +4 -4
  130. package/dist/{slides-component-CIcSvFh7.js → slides-component-CX2JC-Ws.js} +2 -2
  131. package/dist/{spec-DYaR1rJh.js → spec-CiHus5Bb.js} +3 -3
  132. package/dist/{stateDiagram-FKZM4ZOC-DzXJZAq7.js → stateDiagram-FKZM4ZOC-B1S8jGMn.js} +12 -12
  133. package/dist/{stateDiagram-v2-4FDKWEC3-BZBPUmyF.js → stateDiagram-v2-4FDKWEC3-BH5ozUbc.js} +10 -10
  134. package/dist/stex-CQDv3aS8.js +4 -0
  135. package/dist/style.css +1 -1
  136. package/dist/{timeline-definition-IT6M3QCI-DNoLAh-i.js → timeline-definition-IT6M3QCI-BDT9JAmn.js} +2 -2
  137. package/dist/{toDate-D6VXexnV.js → toDate-BzYZtEK7.js} +4 -4
  138. package/dist/{toNumber-xFPoy1OI.js → toNumber-55tjPCWr.js} +2 -2
  139. package/dist/tooltip-BXEpXV3R.js +404 -0
  140. package/dist/{treemap-GDKQZRPO-C5OoxpmV.js → treemap-GDKQZRPO-bx2ngsgN.js} +3 -3
  141. package/dist/{types-CQ-RbYxp.js → types-D_ntCXg0.js} +3 -3
  142. package/dist/{useAsyncData-Cd4Urlww.js → useAsyncData-rN1nzPaS.js} +2 -2
  143. package/dist/{useDeepCompareMemoize-X7clcrcQ.js → useDeepCompareMemoize-iM1YNTEF.js} +4 -4
  144. package/dist/{useIframeCapabilities-BVQrlRBd.js → useIframeCapabilities-CqhrVue6.js} +1 -1
  145. package/dist/{useLifecycle-Dids8BPm.js → useLifecycle-DgDTfOLZ.js} +9 -9
  146. package/dist/{useTheme-Dm1WaAGy.js → useTheme-MWfxn4oz.js} +4 -5
  147. package/dist/{vega-component-A6unyUJS.js → vega-component-CkpTXaRx.js} +23 -23
  148. package/dist/{xychartDiagram-PRI3JC2R-ehVeySMW.js → xychartDiagram-PRI3JC2R-CuAZiqHS.js} +5 -5
  149. package/dist/{Combination-B--d1_LV.js → zod-C6UGQ3fz.js} +8085 -8151
  150. package/package.json +8 -41
  151. package/src/__tests__/branded.ts +6 -0
  152. package/src/__tests__/main.test.tsx +12 -14
  153. package/src/components/ai/ai-provider-icon.tsx +3 -2
  154. package/src/components/app-config/user-config-form.tsx +0 -27
  155. package/src/components/chat/acp/agent-docs.tsx +3 -3
  156. package/src/components/chat/acp/agent-panel.tsx +69 -22
  157. package/src/components/chat/acp/agent-selector.tsx +2 -11
  158. package/src/components/chat/acp/state.ts +14 -2
  159. package/src/components/chat/chat-panel.tsx +2 -1
  160. package/src/components/data-table/TableBottomBar.tsx +12 -1
  161. package/src/components/data-table/TableTopBar.tsx +31 -35
  162. package/src/components/data-table/cell-selection/types.ts +3 -2
  163. package/src/components/data-table/charts/charts.tsx +42 -13
  164. package/src/components/data-table/charts/components/chart-items.tsx +1 -1
  165. package/src/components/data-table/column-explorer-panel/column-explorer.tsx +1 -1
  166. package/src/components/data-table/column-formatting/types.ts +3 -2
  167. package/src/components/data-table/column-header.tsx +4 -2
  168. package/src/components/data-table/column-wrapping/types.ts +3 -2
  169. package/src/components/data-table/columns.tsx +4 -1
  170. package/src/components/data-table/copy-column/types.ts +3 -2
  171. package/src/components/data-table/data-table.tsx +6 -1
  172. package/src/components/data-table/focus-row/types.ts +3 -2
  173. package/src/components/data-table/loading-table.tsx +4 -1
  174. package/src/components/data-table/range-focus/__tests__/atoms.test.ts +11 -11
  175. package/src/components/data-table/range-focus/__tests__/use-cell-range-selection.test.ts +9 -11
  176. package/src/components/data-table/range-focus/cell-selection-stats.tsx +3 -1
  177. package/src/components/data-table/row-viewer-panel/row-viewer.tsx +1 -1
  178. package/src/components/data-table/table-explorer-panel/table-explorer-panel.tsx +2 -2
  179. package/src/components/editor/__tests__/data-attributes.test.tsx +93 -94
  180. package/src/components/editor/actions/name-cell-input.tsx +4 -2
  181. package/src/components/editor/actions/useCellActionButton.tsx +4 -2
  182. package/src/components/editor/ai/add-cell-with-ai.tsx +2 -1
  183. package/src/components/editor/cell/CellStatus.tsx +4 -5
  184. package/src/components/editor/cell/cell-context-menu.tsx +4 -2
  185. package/src/components/editor/cell/code/cell-editor.tsx +2 -1
  186. package/src/components/editor/cell/toolbar.tsx +2 -1
  187. package/src/components/editor/chrome/components/contribute-snippet-button.tsx +4 -1
  188. package/src/components/editor/chrome/components/feedback-button.tsx +4 -1
  189. package/src/components/editor/chrome/panels/context-aware-panel/context-aware-panel.tsx +1 -1
  190. package/src/components/editor/chrome/panels/file-explorer-panel.tsx +0 -10
  191. package/src/components/editor/chrome/wrapper/app-chrome.tsx +4 -1
  192. package/src/components/editor/chrome/wrapper/footer-items/lsp-status.tsx +2 -1
  193. package/src/components/editor/header/filename-input.tsx +4 -1
  194. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +11 -12
  195. package/src/components/storage/__tests__/storage-snippets.test.ts +4 -6
  196. package/src/components/tracing/tracing.test.tsx +30 -30
  197. package/src/components/ui/accordion.tsx +1 -1
  198. package/src/components/ui/alert-dialog.tsx +1 -1
  199. package/src/components/ui/badge.tsx +2 -1
  200. package/src/components/ui/button.tsx +4 -3
  201. package/src/components/ui/calendar.tsx +3 -2
  202. package/src/components/ui/checkbox.tsx +1 -1
  203. package/src/components/ui/combobox.tsx +2 -1
  204. package/src/components/ui/command.tsx +4 -1
  205. package/src/components/ui/context-menu.tsx +1 -1
  206. package/src/components/ui/date-input.tsx +7 -6
  207. package/src/components/ui/date-picker.tsx +6 -4
  208. package/src/components/ui/dialog.tsx +1 -1
  209. package/src/components/ui/draggable-popover.tsx +1 -1
  210. package/src/components/ui/dropdown-menu.tsx +2 -1
  211. package/src/components/ui/field.tsx +1 -2
  212. package/src/components/ui/form.tsx +4 -5
  213. package/src/components/ui/fullscreen.tsx +4 -1
  214. package/src/components/ui/label.tsx +1 -1
  215. package/src/components/ui/navigation.tsx +1 -1
  216. package/src/components/ui/popover.tsx +1 -1
  217. package/src/components/ui/progress.tsx +4 -3
  218. package/src/components/ui/query-param-preserving-link.tsx +4 -2
  219. package/src/components/ui/radio-group.tsx +1 -1
  220. package/src/components/ui/range-slider.tsx +1 -1
  221. package/src/components/ui/scroll-area.tsx +1 -1
  222. package/src/components/ui/select.tsx +1 -1
  223. package/src/components/ui/sheet.tsx +3 -2
  224. package/src/components/ui/slider.tsx +1 -1
  225. package/src/components/ui/switch.tsx +1 -1
  226. package/src/components/ui/tabs.tsx +1 -1
  227. package/src/components/ui/textarea.tsx +1 -2
  228. package/src/components/ui/toast.tsx +1 -1
  229. package/src/components/ui/toggle.tsx +1 -1
  230. package/src/components/ui/tooltip.tsx +1 -1
  231. package/src/core/ai/context/providers/cell-output.ts +1 -2
  232. package/src/core/ai/tools/edit-notebook-tool.ts +4 -3
  233. package/src/core/ai/tools/run-cells-tool.ts +4 -3
  234. package/src/core/cells/__tests__/add-missing-import.test.ts +23 -22
  235. package/src/core/cells/__tests__/apply-transaction.test.ts +12 -11
  236. package/src/core/cells/__tests__/cell.test.ts +14 -13
  237. package/src/core/cells/document-changes.ts +9 -9
  238. package/src/core/cells/logs.ts +1 -1
  239. package/src/core/codemirror/cells/__tests__/extensions.test.ts +15 -17
  240. package/src/core/codemirror/copilot/__tests__/transport.test.ts +128 -2
  241. package/src/core/codemirror/copilot/client.ts +9 -2
  242. package/src/core/codemirror/copilot/language-server.ts +11 -0
  243. package/src/core/codemirror/copilot/transport.ts +33 -8
  244. package/src/core/codemirror/language/languages/markdown.ts +1 -3
  245. package/src/core/codemirror/language/languages/python.ts +4 -0
  246. package/src/core/codemirror/language/languages/sql/completion-sources.tsx +4 -6
  247. package/src/core/codemirror/language/languages/sql/sql.ts +1 -3
  248. package/src/core/codemirror/language/panel/sql.tsx +4 -1
  249. package/src/core/codemirror/reactive-references/__tests__/analyzer.test.ts +28 -42
  250. package/src/core/config/__tests__/config-schema.test.ts +2 -6
  251. package/src/core/config/config-schema.ts +0 -1
  252. package/src/core/config/feature-flag.tsx +0 -2
  253. package/src/core/datasets/data-source-connections.ts +4 -2
  254. package/src/core/dom/__tests__/htmlUtils.test.ts +8 -14
  255. package/src/core/dom/__tests__/outline.test.ts +2 -3
  256. package/src/core/edit-app.tsx +4 -1
  257. package/src/core/islands/__tests__/bridge.test.ts +20 -10
  258. package/src/core/islands/__tests__/parse.test.ts +8 -7
  259. package/src/core/network/__tests__/requests-lazy.test.ts +30 -14
  260. package/src/core/saving/__tests__/filename.test.ts +7 -6
  261. package/src/core/static/__tests__/download-html.test.ts +16 -15
  262. package/src/core/static/__tests__/files.test.ts +30 -28
  263. package/src/core/websocket/useMarimoKernelConnection.tsx +5 -11
  264. package/src/core/websocket/useWebSocket.tsx +3 -1
  265. package/src/css/app/Cell.css +25 -1
  266. package/src/css/globals.css +40 -14
  267. package/src/css/table.css +17 -0
  268. package/src/plugins/core/BadPlugin.tsx +7 -6
  269. package/src/plugins/impl/CheckboxPlugin.tsx +4 -1
  270. package/src/plugins/impl/DataEditorPlugin.tsx +8 -3
  271. package/src/plugins/impl/DataTablePlugin.tsx +5 -1
  272. package/src/plugins/impl/FormPlugin.tsx +1 -2
  273. package/src/plugins/impl/__tests__/DataTablePlugin.test.tsx +4 -1
  274. package/src/plugins/impl/__tests__/SliderPlugin.test.tsx +43 -15
  275. package/src/plugins/impl/anywidget/AnyWidgetPlugin.tsx +2 -11
  276. package/src/plugins/impl/chat/chat-ui.tsx +4 -1
  277. package/src/plugins/impl/data-frames/forms/__tests__/form.test.tsx +7 -9
  278. package/src/plugins/impl/plotly/PlotlyPlugin.tsx +12 -68
  279. package/src/plugins/impl/plotly/__tests__/selection.test.ts +237 -0
  280. package/src/plugins/impl/plotly/selection.ts +118 -0
  281. package/src/plugins/impl/vega/__tests__/make-selectable.test.ts +13 -14
  282. package/src/plugins/impl/vega/__tests__/utils.test.ts +68 -0
  283. package/src/plugins/impl/vega/utils.ts +14 -5
  284. package/src/plugins/impl/vega/vega.css +2 -1
  285. package/src/plugins/layout/ImageComparisonPlugin.tsx +1 -3
  286. package/src/plugins/stateless-plugin.ts +4 -2
  287. package/src/utils/__tests__/cell-urls.test.ts +24 -21
  288. package/src/utils/__tests__/filenames.test.ts +15 -14
  289. package/src/utils/__tests__/json-parser.test.ts +14 -21
  290. package/src/utils/__tests__/path.test.ts +34 -31
  291. package/src/utils/__tests__/urls.test.ts +19 -18
  292. package/src/utils/json/base64.ts +2 -5
  293. package/src/utils/time.ts +4 -2
  294. package/src/utils/tracer.ts +1 -0
  295. package/src/utils/typed.ts +2 -2
  296. package/dist/_basePickBy-QjOmBDRE.js +0 -110
  297. package/dist/_baseSet-xgn1IbGV.js +0 -27
  298. package/dist/architecture-7HQA4BMR-BRyVh_Za.js +0 -6
  299. package/dist/assets/__vite-browser-external-Us1ds95c.js +0 -1
  300. package/dist/dist-B0R_ZM4-.js +0 -6
  301. package/dist/dist-B4a9_9pj.js +0 -5
  302. package/dist/dist-BCSUKEwO.js +0 -5
  303. package/dist/dist-BONIDQq6.js +0 -5
  304. package/dist/dist-BYeRx2hb.js +0 -5
  305. package/dist/dist-D2Rk1j4R.js +0 -1381
  306. package/dist/dist-DZjX5TYv.js +0 -5
  307. package/dist/dist-Dkw9x6kc.js +0 -5
  308. package/dist/dist-Ds6UaXGR.js +0 -6
  309. package/dist/dist-KuEJ1Q53.js +0 -8
  310. package/dist/dist-S72WNyTZ.js +0 -5
  311. package/dist/dist-bTG-yssT.js +0 -5
  312. package/dist/dist-diF0sguc.js +0 -8
  313. package/dist/dist-mJ84BIgu.js +0 -8
  314. package/dist/dist-wSIhFWQz.js +0 -8
  315. package/dist/get-CqrzlV1v.js +0 -68
  316. package/dist/range-CYz5jI--.js +0 -17
  317. package/dist/stex-CZyTRGVB.js +0 -4
  318. package/dist/tooltip-DGHTbHl5.js +0 -404
  319. /package/dist/{dist-KZI_BHqV.js → dist-CxZvoNao.js} +0 -0
  320. /package/dist/{invariant-D4hPsZFI.js → invariant-e8eBgdux.js} +0 -0
  321. /package/dist/{isArrayLikeObject-C-hFPChh.js → isArrayLikeObject-LXbTYiBa.js} +0 -0
  322. /package/dist/{main-CvkAPtaq.js → main-XimWhSi_.js} +0 -0
  323. /package/dist/{purify.es-ukiMXY-F.js → purify.es-hTCfRGdl.js} +0 -0
  324. /package/dist/{react-dom-BKwCWYPW.js → react-dom-BSUuJjCR.js} +0 -0
  325. /package/dist/{stex-Ze8D4R_5.js → stex-D887Ylhf.js} +0 -0
@@ -1,7 +1,7 @@
1
- import "./purify.es-ukiMXY-F.js";
1
+ import "./purify.es-hTCfRGdl.js";
2
2
  import { t as arc_default } from "./arc-DLJpPF9M.js";
3
3
  import { i as log, n as __export, r as __name, t as select_default } from "./src-DbP20yFZ.js";
4
- import { G as setupGraphViewbox, Q as is_dark_default, X as darken_default, Z as lighten_default, a as clear, b as getConfig2, o as commonDb_exports } from "./chunk-ABZYJK2D-D5YIs71w.js";
4
+ import { G as setupGraphViewbox, Q as is_dark_default, X as darken_default, Z as lighten_default, a as clear, b as getConfig2, o as commonDb_exports } from "./chunk-ABZYJK2D-CZYCCtLy.js";
5
5
  var parser = (function() {
6
6
  var t = /* @__PURE__ */ __name(function(t2, S2, C2, w) {
7
7
  for (C2 || (C2 = {}), w = t2.length; w--; C2[t2[w]] = S2) ;
@@ -3,10 +3,10 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
3
3
  var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
4
  import { t as __commonJSMin } from "./chunk-BNovOVIE.js";
5
5
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
6
- import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
7
- import { h as Logger } from "./button-qsiIHncQ.js";
8
- import { r as KnownQueryParams } from "./constants-D1Am36hX.js";
9
- import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-Dm1WaAGy.js";
6
+ import { l as createLucideIcon } from "./dist-D_UjpfOY.js";
7
+ import { g as Logger } from "./button-DNlNlZY_.js";
8
+ import { r as KnownQueryParams } from "./constants-CvyfaCvs.js";
9
+ import { f as waitFor, p as isIslands, u as store, y as atom } from "./useTheme-MWfxn4oz.js";
10
10
  var CircleQuestionMark = createLucideIcon("circle-question-mark", [
11
11
  ["circle", {
12
12
  cx: "12",
@@ -1,5 +1,5 @@
1
- import { z as isObject_default } from "./isArrayLikeObject-C-hFPChh.js";
2
- import { t as isSymbol_default } from "./isSymbol-DFp8040B.js";
1
+ import { z as isObject_default } from "./isArrayLikeObject-LXbTYiBa.js";
2
+ import { t as isSymbol_default } from "./isSymbol-DCbjQG_U.js";
3
3
  var reWhitespace = /\s/;
4
4
  function trimmedEndIndex(e) {
5
5
  for (var d = e.length; d-- && reWhitespace.test(e.charAt(d)); ) ;
@@ -0,0 +1,404 @@
1
+ import { s as __toESM } from "./chunk-BNovOVIE.js";
2
+ import { t as require_react } from "./react-Bs6Z0kvn.js";
3
+ import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
+ import { a as createPopperScope, i as Root2, n as Arrow, r as Content, s as Root, t as Anchor } from "./dist-D_UjpfOY.js";
5
+ import { f as createSlottable, m as useComposedRefs, y as cn } from "./button-DNlNlZY_.js";
6
+ import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
+ import { $ as StyleNamespace, X as withFullScreenAsRoot, Z as withSmartCollisionBoundary, ct as useId, ft as composeEventHandlers, ht as Primitive, it as Portal, lt as Presence, mt as createContextScope, ot as DismissableLayer, ut as useControllableState } from "./zod-C6UGQ3fz.js";
8
+ var import_react = /* @__PURE__ */ __toESM(require_react(), 1), import_jsx_runtime = /* @__PURE__ */ __toESM(require_jsx_runtime(), 1), [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [createPopperScope]), usePopperScope = createPopperScope(), PROVIDER_NAME = "TooltipProvider", DEFAULT_DELAY_DURATION = 700, TOOLTIP_OPEN = "tooltip.open", [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME), TooltipProvider$1 = (t) => {
9
+ let { __scopeTooltip: j, delayDuration: M = DEFAULT_DELAY_DURATION, skipDelayDuration: N = 300, disableHoverableContent: P = false, children: F } = t, I = import_react.useRef(true), L = import_react.useRef(false), R = import_react.useRef(0);
10
+ return import_react.useEffect(() => {
11
+ let t2 = R.current;
12
+ return () => window.clearTimeout(t2);
13
+ }, []), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipProviderContextProvider, {
14
+ scope: j,
15
+ isOpenDelayedRef: I,
16
+ delayDuration: M,
17
+ onOpen: import_react.useCallback(() => {
18
+ window.clearTimeout(R.current), I.current = false;
19
+ }, []),
20
+ onClose: import_react.useCallback(() => {
21
+ window.clearTimeout(R.current), R.current = window.setTimeout(() => I.current = true, N);
22
+ }, [N]),
23
+ isPointerInTransitRef: L,
24
+ onPointerInTransitChange: import_react.useCallback((t2) => {
25
+ L.current = t2;
26
+ }, []),
27
+ disableHoverableContent: P,
28
+ children: F
29
+ });
30
+ };
31
+ TooltipProvider$1.displayName = PROVIDER_NAME;
32
+ var TOOLTIP_NAME = "Tooltip", [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME), Tooltip$1 = (t) => {
33
+ let { __scopeTooltip: j, children: M, open: N, defaultOpen: F, onOpenChange: I, disableHoverableContent: L, delayDuration: R } = t, z = useTooltipProviderContext(TOOLTIP_NAME, t.__scopeTooltip), B = usePopperScope(j), [V, H] = import_react.useState(null), U = useId(), W = import_react.useRef(0), G = L ?? z.disableHoverableContent, K = R ?? z.delayDuration, q = import_react.useRef(false), [J, Y] = useControllableState({
34
+ prop: N,
35
+ defaultProp: F ?? false,
36
+ onChange: (t2) => {
37
+ t2 ? (z.onOpen(), document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN))) : z.onClose(), I == null ? void 0 : I(t2);
38
+ },
39
+ caller: TOOLTIP_NAME
40
+ }), X = import_react.useMemo(() => J ? q.current ? "delayed-open" : "instant-open" : "closed", [J]), Z = import_react.useCallback(() => {
41
+ window.clearTimeout(W.current), W.current = 0, q.current = false, Y(true);
42
+ }, [Y]), Q = import_react.useCallback(() => {
43
+ window.clearTimeout(W.current), W.current = 0, Y(false);
44
+ }, [Y]), $ = import_react.useCallback(() => {
45
+ window.clearTimeout(W.current), W.current = window.setTimeout(() => {
46
+ q.current = true, Y(true), W.current = 0;
47
+ }, K);
48
+ }, [K, Y]);
49
+ return import_react.useEffect(() => () => {
50
+ W.current && (W.current = (window.clearTimeout(W.current), 0));
51
+ }, []), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root2, {
52
+ ...B,
53
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContextProvider, {
54
+ scope: j,
55
+ contentId: U,
56
+ open: J,
57
+ stateAttribute: X,
58
+ trigger: V,
59
+ onTriggerChange: H,
60
+ onTriggerEnter: import_react.useCallback(() => {
61
+ z.isOpenDelayedRef.current ? $() : Z();
62
+ }, [
63
+ z.isOpenDelayedRef,
64
+ $,
65
+ Z
66
+ ]),
67
+ onTriggerLeave: import_react.useCallback(() => {
68
+ G ? Q() : (window.clearTimeout(W.current), W.current = 0);
69
+ }, [Q, G]),
70
+ onOpen: Z,
71
+ onClose: Q,
72
+ disableHoverableContent: G,
73
+ children: M
74
+ })
75
+ });
76
+ };
77
+ Tooltip$1.displayName = TOOLTIP_NAME;
78
+ var TRIGGER_NAME = "TooltipTrigger", TooltipTrigger$1 = import_react.forwardRef((t, j) => {
79
+ let { __scopeTooltip: M, ...N } = t, P = useTooltipContext(TRIGGER_NAME, M), F = useTooltipProviderContext(TRIGGER_NAME, M), I = usePopperScope(M), L = useComposedRefs(j, import_react.useRef(null), P.onTriggerChange), z = import_react.useRef(false), V = import_react.useRef(false), H = import_react.useCallback(() => z.current = false, []);
80
+ return import_react.useEffect(() => () => document.removeEventListener("pointerup", H), [H]), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Anchor, {
81
+ asChild: true,
82
+ ...I,
83
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Primitive.button, {
84
+ "aria-describedby": P.open ? P.contentId : void 0,
85
+ "data-state": P.stateAttribute,
86
+ ...N,
87
+ ref: L,
88
+ onPointerMove: composeEventHandlers(t.onPointerMove, (t2) => {
89
+ t2.pointerType !== "touch" && !V.current && !F.isPointerInTransitRef.current && (P.onTriggerEnter(), V.current = true);
90
+ }),
91
+ onPointerLeave: composeEventHandlers(t.onPointerLeave, () => {
92
+ P.onTriggerLeave(), V.current = false;
93
+ }),
94
+ onPointerDown: composeEventHandlers(t.onPointerDown, () => {
95
+ P.open && P.onClose(), z.current = true, document.addEventListener("pointerup", H, { once: true });
96
+ }),
97
+ onFocus: composeEventHandlers(t.onFocus, () => {
98
+ z.current || P.onOpen();
99
+ }),
100
+ onBlur: composeEventHandlers(t.onBlur, P.onClose),
101
+ onClick: composeEventHandlers(t.onClick, P.onClose)
102
+ })
103
+ });
104
+ });
105
+ TooltipTrigger$1.displayName = TRIGGER_NAME;
106
+ var PORTAL_NAME = "TooltipPortal", [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, { forceMount: void 0 }), TooltipPortal$1 = (t) => {
107
+ let { __scopeTooltip: j, forceMount: M, children: N, container: P } = t, F = useTooltipContext(PORTAL_NAME, j);
108
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, {
109
+ scope: j,
110
+ forceMount: M,
111
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
112
+ present: M || F.open,
113
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Portal, {
114
+ asChild: true,
115
+ container: P,
116
+ children: N
117
+ })
118
+ })
119
+ });
120
+ };
121
+ TooltipPortal$1.displayName = PORTAL_NAME;
122
+ var CONTENT_NAME = "TooltipContent", TooltipContent$1 = import_react.forwardRef((t, j) => {
123
+ let M = usePortalContext(CONTENT_NAME, t.__scopeTooltip), { forceMount: N = M.forceMount, side: P = "top", ...F } = t, I = useTooltipContext(CONTENT_NAME, t.__scopeTooltip);
124
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Presence, {
125
+ present: N || I.open,
126
+ children: I.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
127
+ side: P,
128
+ ...F,
129
+ ref: j
130
+ }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentHoverable, {
131
+ side: P,
132
+ ...F,
133
+ ref: j
134
+ })
135
+ });
136
+ }), TooltipContentHoverable = import_react.forwardRef((t, j) => {
137
+ let M = useTooltipContext(CONTENT_NAME, t.__scopeTooltip), N = useTooltipProviderContext(CONTENT_NAME, t.__scopeTooltip), P = import_react.useRef(null), F = useComposedRefs(j, P), [I, L] = import_react.useState(null), { trigger: R, onClose: z } = M, V = P.current, { onPointerInTransitChange: H } = N, U = import_react.useCallback(() => {
138
+ L(null), H(false);
139
+ }, [H]), W = import_react.useCallback((t2, j2) => {
140
+ let M2 = t2.currentTarget, N2 = {
141
+ x: t2.clientX,
142
+ y: t2.clientY
143
+ }, P2 = getPaddedExitPoints(N2, getExitSideFromRect(N2, M2.getBoundingClientRect())), F2 = getPointsFromRect(j2.getBoundingClientRect());
144
+ L(getHull([...P2, ...F2])), H(true);
145
+ }, [H]);
146
+ return import_react.useEffect(() => () => U(), [U]), import_react.useEffect(() => {
147
+ if (R && V) {
148
+ let t2 = (t3) => W(t3, V), j2 = (t3) => W(t3, R);
149
+ return R.addEventListener("pointerleave", t2), V.addEventListener("pointerleave", j2), () => {
150
+ R.removeEventListener("pointerleave", t2), V.removeEventListener("pointerleave", j2);
151
+ };
152
+ }
153
+ }, [
154
+ R,
155
+ V,
156
+ W,
157
+ U
158
+ ]), import_react.useEffect(() => {
159
+ if (I) {
160
+ let t2 = (t3) => {
161
+ let j2 = t3.target, M2 = {
162
+ x: t3.clientX,
163
+ y: t3.clientY
164
+ }, N2 = (R == null ? void 0 : R.contains(j2)) || (V == null ? void 0 : V.contains(j2)), P2 = !isPointInPolygon(M2, I);
165
+ N2 ? U() : P2 && (U(), z());
166
+ };
167
+ return document.addEventListener("pointermove", t2), () => document.removeEventListener("pointermove", t2);
168
+ }
169
+ }, [
170
+ R,
171
+ V,
172
+ I,
173
+ z,
174
+ U
175
+ ]), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, {
176
+ ...t,
177
+ ref: F
178
+ });
179
+ }), [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false }), Slottable = createSlottable("TooltipContent"), TooltipContentImpl = import_react.forwardRef((t, j) => {
180
+ let { __scopeTooltip: M, children: N, "aria-label": P, onEscapeKeyDown: F, onPointerDownOutside: R, ...z } = t, B = useTooltipContext(CONTENT_NAME, M), V = usePopperScope(M), { onClose: H } = B;
181
+ return import_react.useEffect(() => (document.addEventListener(TOOLTIP_OPEN, H), () => document.removeEventListener(TOOLTIP_OPEN, H)), [H]), import_react.useEffect(() => {
182
+ if (B.trigger) {
183
+ let t2 = (t3) => {
184
+ var _a;
185
+ ((_a = t3.target) == null ? void 0 : _a.contains(B.trigger)) && H();
186
+ };
187
+ return window.addEventListener("scroll", t2, { capture: true }), () => window.removeEventListener("scroll", t2, { capture: true });
188
+ }
189
+ }, [B.trigger, H]), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DismissableLayer, {
190
+ asChild: true,
191
+ disableOutsidePointerEvents: false,
192
+ onEscapeKeyDown: F,
193
+ onPointerDownOutside: R,
194
+ onFocusOutside: (t2) => t2.preventDefault(),
195
+ onDismiss: H,
196
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(Content, {
197
+ "data-state": B.stateAttribute,
198
+ ...V,
199
+ ...z,
200
+ ref: j,
201
+ style: {
202
+ ...z.style,
203
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
204
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
205
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
206
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
207
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
208
+ },
209
+ children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)(Slottable, { children: N }), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VisuallyHiddenContentContextProvider, {
210
+ scope: M,
211
+ isInside: true,
212
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Root, {
213
+ id: B.contentId,
214
+ role: "tooltip",
215
+ children: P || N
216
+ })
217
+ })]
218
+ })
219
+ });
220
+ });
221
+ TooltipContent$1.displayName = CONTENT_NAME;
222
+ var ARROW_NAME = "TooltipArrow", TooltipArrow = import_react.forwardRef((t, j) => {
223
+ let { __scopeTooltip: M, ...N } = t, P = usePopperScope(M);
224
+ return useVisuallyHiddenContentContext(ARROW_NAME, M).isInside ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Arrow, {
225
+ ...P,
226
+ ...N,
227
+ ref: j
228
+ });
229
+ });
230
+ TooltipArrow.displayName = ARROW_NAME;
231
+ function getExitSideFromRect(t, j) {
232
+ let M = Math.abs(j.top - t.y), N = Math.abs(j.bottom - t.y), P = Math.abs(j.right - t.x), F = Math.abs(j.left - t.x);
233
+ switch (Math.min(M, N, P, F)) {
234
+ case F:
235
+ return "left";
236
+ case P:
237
+ return "right";
238
+ case M:
239
+ return "top";
240
+ case N:
241
+ return "bottom";
242
+ default:
243
+ throw Error("unreachable");
244
+ }
245
+ }
246
+ function getPaddedExitPoints(t, j, M = 5) {
247
+ let N = [];
248
+ switch (j) {
249
+ case "top":
250
+ N.push({
251
+ x: t.x - M,
252
+ y: t.y + M
253
+ }, {
254
+ x: t.x + M,
255
+ y: t.y + M
256
+ });
257
+ break;
258
+ case "bottom":
259
+ N.push({
260
+ x: t.x - M,
261
+ y: t.y - M
262
+ }, {
263
+ x: t.x + M,
264
+ y: t.y - M
265
+ });
266
+ break;
267
+ case "left":
268
+ N.push({
269
+ x: t.x + M,
270
+ y: t.y - M
271
+ }, {
272
+ x: t.x + M,
273
+ y: t.y + M
274
+ });
275
+ break;
276
+ case "right":
277
+ N.push({
278
+ x: t.x - M,
279
+ y: t.y - M
280
+ }, {
281
+ x: t.x - M,
282
+ y: t.y + M
283
+ });
284
+ break;
285
+ }
286
+ return N;
287
+ }
288
+ function getPointsFromRect(t) {
289
+ let { top: j, right: M, bottom: N, left: P } = t;
290
+ return [
291
+ {
292
+ x: P,
293
+ y: j
294
+ },
295
+ {
296
+ x: M,
297
+ y: j
298
+ },
299
+ {
300
+ x: M,
301
+ y: N
302
+ },
303
+ {
304
+ x: P,
305
+ y: N
306
+ }
307
+ ];
308
+ }
309
+ function isPointInPolygon(t, j) {
310
+ let { x: M, y: N } = t, P = false;
311
+ for (let t2 = 0, F = j.length - 1; t2 < j.length; F = t2++) {
312
+ let I = j[t2], L = j[F], R = I.x, z = I.y, B = L.x, V = L.y;
313
+ z > N != V > N && M < (B - R) * (N - z) / (V - z) + R && (P = !P);
314
+ }
315
+ return P;
316
+ }
317
+ function getHull(t) {
318
+ let j = t.slice();
319
+ return j.sort((t2, j2) => t2.x < j2.x ? -1 : t2.x > j2.x ? 1 : t2.y < j2.y ? -1 : t2.y > j2.y ? 1 : 0), getHullPresorted(j);
320
+ }
321
+ function getHullPresorted(t) {
322
+ if (t.length <= 1) return t.slice();
323
+ let j = [];
324
+ for (let M2 = 0; M2 < t.length; M2++) {
325
+ let N = t[M2];
326
+ for (; j.length >= 2; ) {
327
+ let t2 = j[j.length - 1], M3 = j[j.length - 2];
328
+ if ((t2.x - M3.x) * (N.y - M3.y) >= (t2.y - M3.y) * (N.x - M3.x)) j.pop();
329
+ else break;
330
+ }
331
+ j.push(N);
332
+ }
333
+ j.pop();
334
+ let M = [];
335
+ for (let j2 = t.length - 1; j2 >= 0; j2--) {
336
+ let N = t[j2];
337
+ for (; M.length >= 2; ) {
338
+ let t2 = M[M.length - 1], j3 = M[M.length - 2];
339
+ if ((t2.x - j3.x) * (N.y - j3.y) >= (t2.y - j3.y) * (N.x - j3.x)) M.pop();
340
+ else break;
341
+ }
342
+ M.push(N);
343
+ }
344
+ return M.pop(), j.length === 1 && M.length === 1 && j[0].x === M[0].x && j[0].y === M[0].y ? j : j.concat(M);
345
+ }
346
+ var Provider = TooltipProvider$1, Root3 = Tooltip$1, Trigger = TooltipTrigger$1, Portal$1 = TooltipPortal$1, Content2 = TooltipContent$1, import_compiler_runtime = require_compiler_runtime(), TooltipProvider = (t) => {
347
+ let j = (0, import_compiler_runtime.c)(6), M, N;
348
+ j[0] === t ? (M = j[1], N = j[2]) : ({ delayDuration: N, ...M } = t, j[0] = t, j[1] = M, j[2] = N);
349
+ let P = N === void 0 ? 400 : N, F;
350
+ return j[3] !== P || j[4] !== M ? (F = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Provider, {
351
+ delayDuration: P,
352
+ ...M
353
+ }), j[3] = P, j[4] = M, j[5] = F) : F = j[5], F;
354
+ }, TooltipPortal = withFullScreenAsRoot(Portal$1), TooltipRoot = Root3, InternalTooltipContent = withSmartCollisionBoundary(Content2), TooltipTrigger = Trigger, TooltipContent = import_react.forwardRef((t, j) => {
355
+ let M = (0, import_compiler_runtime.c)(11), N, P, F;
356
+ M[0] === t ? (N = M[1], P = M[2], F = M[3]) : ({ className: N, sideOffset: F, ...P } = t, M[0] = t, M[1] = N, M[2] = P, M[3] = F);
357
+ let I = F === void 0 ? 4 : F, L;
358
+ M[4] === N ? L = M[5] : (L = cn("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-xs data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1", N), M[4] = N, M[5] = L);
359
+ let R;
360
+ return M[6] !== P || M[7] !== j || M[8] !== I || M[9] !== L ? (R = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyleNamespace, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InternalTooltipContent, {
361
+ ref: j,
362
+ sideOffset: I,
363
+ className: L,
364
+ ...P
365
+ }) }), M[6] = P, M[7] = j, M[8] = I, M[9] = L, M[10] = R) : R = M[10], R;
366
+ });
367
+ TooltipContent.displayName = Content2.displayName;
368
+ var Tooltip = (t) => {
369
+ let j = (0, import_compiler_runtime.c)(22), M, N, P, F, I, L, R, z;
370
+ j[0] === t ? (M = j[1], N = j[2], P = j[3], F = j[4], I = j[5], L = j[6], R = j[7], z = j[8]) : ({ content: P, children: N, usePortal: L, asChild: R, tabIndex: z, side: I, align: M, ...F } = t, j[0] = t, j[1] = M, j[2] = N, j[3] = P, j[4] = F, j[5] = I, j[6] = L, j[7] = R, j[8] = z);
371
+ let B = L === void 0 ? true : L, V = R === void 0 ? true : R;
372
+ if (P == null || P === "") return N;
373
+ let H;
374
+ j[9] !== V || j[10] !== N || j[11] !== z ? (H = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipTrigger, {
375
+ asChild: V,
376
+ tabIndex: z,
377
+ children: N
378
+ }), j[9] = V, j[10] = N, j[11] = z, j[12] = H) : H = j[12];
379
+ let U;
380
+ j[13] !== M || j[14] !== P || j[15] !== I || j[16] !== B ? (U = B ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContent, {
381
+ side: I,
382
+ align: M,
383
+ children: P
384
+ }) }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContent, {
385
+ side: I,
386
+ align: M,
387
+ children: P
388
+ }), j[13] = M, j[14] = P, j[15] = I, j[16] = B, j[17] = U) : U = j[17];
389
+ let W;
390
+ return j[18] !== F || j[19] !== H || j[20] !== U ? (W = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(TooltipRoot, {
391
+ disableHoverableContent: true,
392
+ ...F,
393
+ children: [H, U]
394
+ }), j[18] = F, j[19] = H, j[20] = U, j[21] = W) : W = j[21], W;
395
+ };
396
+ export {
397
+ TooltipRoot as a,
398
+ TooltipProvider as i,
399
+ TooltipContent as n,
400
+ TooltipTrigger as o,
401
+ TooltipPortal as r,
402
+ Provider as s,
403
+ Tooltip as t
404
+ };
@@ -1,6 +1,6 @@
1
- import "./chunk-TCCFYFTB-BAhzIqBO.js";
2
- import "./main-CvkAPtaq.js";
3
- import { n as createTreemapServices, t as TreemapModule } from "./chunk-B2363JML-BzZqINRO.js";
1
+ import "./chunk-TCCFYFTB-Clbl-fTg.js";
2
+ import "./main-XimWhSi_.js";
3
+ import { n as createTreemapServices, t as TreemapModule } from "./chunk-B2363JML-Br0eA2T3.js";
4
4
  export {
5
5
  createTreemapServices
6
6
  };
@@ -1,10 +1,10 @@
1
1
  import { s as __toESM, t as __commonJSMin } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
5
- import { t as Button } from "./button-qsiIHncQ.js";
4
+ import { l as createLucideIcon } from "./dist-D_UjpfOY.js";
5
+ import { t as Button } from "./button-DNlNlZY_.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { n as Constants } from "./constants-D1Am36hX.js";
7
+ import { n as Constants } from "./constants-CvyfaCvs.js";
8
8
  var Pencil = createLucideIcon("pencil", [["path", {
9
9
  d: "M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",
10
10
  key: "1a8usu"
@@ -1,8 +1,8 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { w as useEvent_default } from "./useTheme-Dm1WaAGy.js";
5
- import { t as invariant } from "./invariant-D4hPsZFI.js";
4
+ import { w as useEvent_default } from "./useTheme-MWfxn4oz.js";
5
+ import { t as invariant } from "./invariant-e8eBgdux.js";
6
6
  var import_compiler_runtime = require_compiler_runtime(), import_react = /* @__PURE__ */ __toESM(require_react(), 1), Result = {
7
7
  error(e, s) {
8
8
  return {
@@ -1,11 +1,11 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { t as toDate } from "./toDate-D6VXexnV.js";
5
- import { a as cva, v as cn } from "./button-qsiIHncQ.js";
4
+ import { t as toDate } from "./toDate-BzYZtEK7.js";
5
+ import { r as cva, y as cn } from "./button-DNlNlZY_.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { C as dequal } from "./useTheme-Dm1WaAGy.js";
8
- import { i as tableFromIPC } from "./loader-3c9hT4kT.js";
7
+ import { C as dequal } from "./useTheme-MWfxn4oz.js";
8
+ import { i as tableFromIPC } from "./loader-Bd1kgLn7.js";
9
9
  function isDate(t) {
10
10
  return t instanceof Date || typeof t == "object" && Object.prototype.toString.call(t) === "[object Date]";
11
11
  }
@@ -1,7 +1,7 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { t as getIframeCapabilities } from "./capabilities-26mwv03y.js";
4
+ import { t as getIframeCapabilities } from "./capabilities-Coe9eM9T.js";
5
5
  var import_compiler_runtime = require_compiler_runtime();
6
6
  require_react();
7
7
  function useIframeCapabilities() {
@@ -1,10 +1,10 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { l as createLucideIcon } from "./dist-D2Rk1j4R.js";
5
- import { a as cva, h as Logger, v as cn } from "./button-qsiIHncQ.js";
4
+ import { l as createLucideIcon } from "./dist-D_UjpfOY.js";
5
+ import { g as Logger, r as cva, y as cn } from "./button-DNlNlZY_.js";
6
6
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
7
- import { _ as useSetAtom, y as atom } from "./useTheme-Dm1WaAGy.js";
7
+ import { _ as useSetAtom, y as atom } from "./useTheme-MWfxn4oz.js";
8
8
  var Calendar = createLucideIcon("calendar", [
9
9
  ["path", {
10
10
  d: "M8 2v4",
@@ -97,13 +97,13 @@ function createReducer(e, p) {
97
97
  };
98
98
  }
99
99
  function createReducerAndAtoms(e, p, m) {
100
- let h = [...m ?? []], g = (e2) => {
100
+ let h = [...m ?? []], _ = (e2) => {
101
101
  h.push(e2);
102
102
  }, { reducer: v, createActions: y } = createReducer(e, p), b = (e2, p2) => {
103
103
  try {
104
104
  let m2 = v(e2, p2);
105
- for (let g2 of h) try {
106
- g2(e2, m2, p2);
105
+ for (let _2 of h) try {
106
+ _2(e2, m2, p2);
107
107
  } catch (e3) {
108
108
  Logger.error(`Error in middleware for action ${p2.type}:`, e3);
109
109
  }
@@ -123,12 +123,12 @@ function createReducerAndAtoms(e, p, m) {
123
123
  S.has(h2) || S.set(h2, y((e3) => {
124
124
  h2((p3) => b(p3, e3));
125
125
  }));
126
- let g2;
127
- return p2[2] === h2 ? g2 = p2[3] : (g2 = S.get(h2), p2[2] = h2, p2[3] = g2), g2;
126
+ let g;
127
+ return p2[2] === h2 ? g = p2[3] : (g = S.get(h2), p2[2] = h2, p2[3] = g), g;
128
128
  }
129
129
  return {
130
130
  reducer: b,
131
- addMiddleware: g,
131
+ addMiddleware: _,
132
132
  createActions: y,
133
133
  valueAtom: x,
134
134
  useActions: C
@@ -1,9 +1,9 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { h as Logger, l as resolvePlatform, s as OverridingHotkeyProvider } from "./button-qsiIHncQ.js";
5
- import { B as record, H as string, L as number, O as array, P as looseObject, R as object, W as union, k as boolean, w as _enum } from "./Combination-B--d1_LV.js";
6
- import { t as merge_default } from "./merge-CA_buyY3.js";
4
+ import { a as OverridingHotkeyProvider, g as Logger, s as resolvePlatform } from "./button-DNlNlZY_.js";
5
+ import { A as looseObject, B as union, I as record, N as number, P as object, R as string, T as boolean, b as _enum, w as array } from "./zod-C6UGQ3fz.js";
6
+ import { t as merge_default } from "./merge-CVhG7q_o.js";
7
7
  var import_react = /* @__PURE__ */ __toESM(require_react()), useInsertionEffect = typeof window < "u" ? import_react.useInsertionEffect || import_react.useLayoutEffect : () => {
8
8
  };
9
9
  function useEvent(e) {
@@ -629,8 +629,7 @@ const UserConfigSchema = looseObject({
629
629
  }).prefault({}),
630
630
  experimental: looseObject({
631
631
  markdown: boolean().optional(),
632
- rtc: boolean().optional(),
633
- storage_inspector: boolean().prefault(true)
632
+ rtc: boolean().optional()
634
633
  }).prefault(() => ({})),
635
634
  server: looseObject({ disable_file_downloads: boolean().optional() }).prefault(() => ({})),
636
635
  diagnostics: looseObject({
@@ -1,20 +1,20 @@
1
1
  import { s as __toESM } from "./chunk-BNovOVIE.js";
2
2
  import { t as require_react } from "./react-Bs6Z0kvn.js";
3
3
  import { t as require_compiler_runtime } from "./compiler-runtime-B_OLMU9S.js";
4
- import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-D6VXexnV.js";
5
- import { h as Logger, m as Events, u as Objects, v as cn } from "./button-qsiIHncQ.js";
6
- import "./Combination-B--d1_LV.js";
4
+ import { c as asRemoteURL, g as CircleQuestionMark } from "./toDate-BzYZtEK7.js";
5
+ import { c as Objects, g as Logger, h as Events, y as cn } from "./button-DNlNlZY_.js";
6
+ import "./react-dom-BSUuJjCR.js";
7
7
  import { t as require_jsx_runtime } from "./jsx-runtime-9hcJiI23.js";
8
- import "./react-dom-BKwCWYPW.js";
9
- import { t as Tooltip } from "./tooltip-DGHTbHl5.js";
10
- import { i as debounce_default } from "./constants-D1Am36hX.js";
11
- import { n as useTheme, w as useEvent_default } from "./useTheme-Dm1WaAGy.js";
12
- import { s as uniq } from "./arrays-Du-jRBAy.js";
13
- import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-X7clcrcQ.js";
14
- import { n as ErrorBanner } from "./error-banner-Bx9kIgrs.js";
8
+ import "./zod-C6UGQ3fz.js";
9
+ import { n as ErrorBanner } from "./error-banner-Cjf0RU9I.js";
10
+ import { t as Tooltip } from "./tooltip-BXEpXV3R.js";
11
+ import { i as debounce_default } from "./constants-CvyfaCvs.js";
12
+ import { n as useTheme, w as useEvent_default } from "./useTheme-MWfxn4oz.js";
13
+ import { s as uniq } from "./arrays-beUWo8RF.js";
14
+ import { a as AlertTitle, n as arrow, o as isValid, r as Alert, t as useDeepCompareMemoize } from "./useDeepCompareMemoize-iM1YNTEF.js";
15
15
  import { n as formats } from "./vega-loader.browser-DqEcFOPD.js";
16
- import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-3c9hT4kT.js";
17
- import { t as useAsyncData } from "./useAsyncData-Cd4Urlww.js";
16
+ import { a as getContainerWidth, n as vegaLoadData, s as tooltipHandler } from "./loader-Bd1kgLn7.js";
17
+ import { t as useAsyncData } from "./useAsyncData-rN1nzPaS.js";
18
18
  import { t as j } from "./react-vega-CzRAIHrv.js";
19
19
  import "./defaultLocale-qS7DaAmi.js";
20
20
  import "./defaultLocale-Bxoo2-30.js";
@@ -505,26 +505,26 @@ formats("arrow", arrow);
505
505
  var VegaComponent = (e) => {
506
506
  let C = (0, import_compiler_runtime.c)(12), { value: w, setValue: T, chartSelection: E, fieldSelection: D, spec: O, embedOptions: k } = e, A, M;
507
507
  C[0] === O ? (A = C[1], M = C[2]) : (A = async () => resolveVegaSpecData(O), M = [O], C[0] = O, C[1] = A, C[2] = M);
508
- let { data: N, error: P } = useAsyncData(A, M);
509
- if (P) {
508
+ let { data: P, error: F } = useAsyncData(A, M);
509
+ if (F) {
510
510
  let e2;
511
- return C[3] === P ? e2 = C[4] : (e2 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorBanner, { error: P }), C[3] = P, C[4] = e2), e2;
511
+ return C[3] === F ? e2 = C[4] : (e2 = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ErrorBanner, { error: F }), C[3] = F, C[4] = e2), e2;
512
512
  }
513
- if (!N) return null;
514
- let F;
515
- return C[5] !== E || C[6] !== k || C[7] !== D || C[8] !== N || C[9] !== T || C[10] !== w ? (F = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadedVegaComponent, {
513
+ if (!P) return null;
514
+ let I;
515
+ return C[5] !== E || C[6] !== k || C[7] !== D || C[8] !== P || C[9] !== T || C[10] !== w ? (I = /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadedVegaComponent, {
516
516
  value: w,
517
517
  setValue: T,
518
518
  chartSelection: E,
519
519
  fieldSelection: D,
520
- spec: N,
520
+ spec: P,
521
521
  embedOptions: k
522
- }), C[5] = E, C[6] = k, C[7] = D, C[8] = N, C[9] = T, C[10] = w, C[11] = F) : F = C[11], F;
523
- }, LoadedVegaComponent = ({ value: e, setValue: C, chartSelection: w, fieldSelection: T, spec: M, embedOptions: I }) => {
524
- let { theme: L } = useTheme(), R = (0, import_react.useRef)(null), z = (0, import_react.useRef)(void 0), [B, V] = (0, import_react.useState)(), H = (0, import_react.useMemo)(() => I && "actions" in I ? I.actions : {
522
+ }), C[5] = E, C[6] = k, C[7] = D, C[8] = P, C[9] = T, C[10] = w, C[11] = I) : I = C[11], I;
523
+ }, LoadedVegaComponent = ({ value: e, setValue: C, chartSelection: w, fieldSelection: T, spec: M, embedOptions: N }) => {
524
+ let { theme: L } = useTheme(), R = (0, import_react.useRef)(null), z = (0, import_react.useRef)(void 0), [B, V] = (0, import_react.useState)(), H = (0, import_react.useMemo)(() => N && "actions" in N ? N.actions : {
525
525
  source: false,
526
526
  compiled: false
527
- }, [I]), U = useDeepCompareMemoize(M), W = (0, import_react.useMemo)(() => makeSelectable(fixRelativeUrl(U), {
527
+ }, [N]), U = useDeepCompareMemoize(M), W = (0, import_react.useMemo)(() => makeSelectable(fixRelativeUrl(U), {
528
528
  chartSelection: w,
529
529
  fieldSelection: T
530
530
  }), [