@marimo-team/frontend 0.22.1-dev32 → 0.22.1-dev33

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 (125) hide show
  1. package/dist/assets/{CellStatus-DbnxfYhY.js → CellStatus-DKyVv7Zj.js} +1 -1
  2. package/dist/assets/{ImperativeModal-BZqqSMUY.js → ImperativeModal-DSu22ncS.js} +1 -1
  3. package/dist/assets/{JsonOutput-LeC5h8MP.js → JsonOutput-CNt4LxkV.js} +4 -4
  4. package/dist/assets/{MarimoErrorOutput-Dq9zeSH2.js → MarimoErrorOutput-RmM7djc-.js} +1 -1
  5. package/dist/assets/{RenderHTML-C11kWI2X.js → RenderHTML-Bmn77an6.js} +1 -1
  6. package/dist/assets/{VisuallyHidden-CXprQ4B9.js → VisuallyHidden-DVY6OceZ.js} +1 -1
  7. package/dist/assets/{add-cell-with-ai-Dmm_0EEi.js → add-cell-with-ai-RyZ9Xe2b.js} +1 -1
  8. package/dist/assets/{add-connection-dialog-CMjIBIY8.js → add-connection-dialog-Ca1Tc12W.js} +7 -7
  9. package/dist/assets/{agent-panel-COS8BLy0.js → agent-panel-BYAJ_EOf.js} +1 -1
  10. package/dist/assets/{ai-model-dropdown-DXmwokmr.js → ai-model-dropdown-Dnf-CxbP.js} +2 -2
  11. package/dist/assets/{app-config-button-CbHcdSN-.js → app-config-button-D1Z_xsvC.js} +1 -1
  12. package/dist/assets/{arrays-B5sjidyq.js → arrays-DAC2orgH.js} +1 -1
  13. package/dist/assets/{cache-panel-odWopDUF.js → cache-panel-CIkuJR1J.js} +1 -1
  14. package/dist/assets/{capabilities-ZmYlOg9F.js → capabilities-BmGdj50E.js} +1 -1
  15. package/dist/assets/{cell-editor-B3xy42eO.js → cell-editor-CSxVMYfU.js} +2 -2
  16. package/dist/assets/{cell-link-CVq1Spik.js → cell-link-D4UrIH9w.js} +1 -1
  17. package/dist/assets/{cells-CgztvghI.js → cells-ArUhhHls.js} +6 -6
  18. package/dist/assets/{chat-display-DsnXg_ta.js → chat-display-YmFjOXkV.js} +1 -1
  19. package/dist/assets/{chat-panel-B3DihEiS.js → chat-panel-B76rxYTh.js} +1 -1
  20. package/dist/assets/{chat-ui-CJ8BkLf3.js → chat-ui-BitNq1z6.js} +1 -1
  21. package/dist/assets/{column-preview-DHqtWPTK.js → column-preview-B92BXVH1.js} +1 -1
  22. package/dist/assets/{command-D-mHCwqq.js → command-C0h2HiOh.js} +1 -1
  23. package/dist/assets/{command-palette-DIRRfZJn.js → command-palette-BHXQKZ5s.js} +1 -1
  24. package/dist/assets/common-B5GX57h6.js +1 -0
  25. package/dist/assets/{components-Cm0Z0WS0.js → components-BfHGr__b.js} +1 -1
  26. package/dist/assets/{components-8pybQwj3.js → components-DwGcJvMB.js} +1 -1
  27. package/dist/assets/config-CmaJdl9U.js +1 -0
  28. package/dist/assets/{datasource-BkclstbB.js → datasource-D9e37ifa.js} +1 -1
  29. package/dist/assets/{dependency-graph-panel-Dcuc_z1H.js → dependency-graph-panel-CABb99dr.js} +1 -1
  30. package/dist/assets/{documentation-panel-ClcJVCf2.js → documentation-panel-Dm2xtsTq.js} +1 -1
  31. package/dist/assets/{download-t5dlf0C8.js → download-7EtMZf2Y.js} +1 -1
  32. package/dist/assets/{edit-page-TFKoKf0h.js → edit-page-DtYaxOp-.js} +4 -4
  33. package/dist/assets/{error-panel-BpZDYT0j.js → error-panel-C3-vTzaH.js} +1 -1
  34. package/dist/assets/{field-D9oMqqiD.js → field-C6i22m8B.js} +1 -1
  35. package/dist/assets/{file-explorer-panel-BIxcHuNY.js → file-explorer-panel-DJgn_eST.js} +1 -1
  36. package/dist/assets/{file-icons-CH6PLlAQ.js → file-icons-JXAG6vK-.js} +1 -1
  37. package/dist/assets/{floating-outline-C_iFBT1S.js → floating-outline-B6Qyid7Q.js} +1 -1
  38. package/dist/assets/{focus-CM-zeepg.js → focus-DCN0oEe0.js} +1 -1
  39. package/dist/assets/{form-BdN-gGnj.js → form-BFjzbGu5.js} +1 -1
  40. package/dist/assets/{formatting-Dw1UOYgm.js → formatting-7562d1pf.js} +1 -1
  41. package/dist/assets/gallery-page-Bpv4b7kz.js +1 -0
  42. package/dist/assets/{glide-data-editor-CoyImave.js → glide-data-editor-CDqunAkw.js} +2 -2
  43. package/dist/assets/{globals-DAddhPz5.js → globals-DK8gKReW.js} +1 -1
  44. package/dist/assets/{home-page-DBGKQtzB.js → home-page-Bg02jazh.js} +1 -1
  45. package/dist/assets/{hooks-BjBV2Ya4.js → hooks-C2LN7xdC.js} +1 -1
  46. package/dist/assets/{html-to-image-PhtipB5F.js → html-to-image-C5XSE7QT.js} +1 -1
  47. package/dist/assets/{index-CdVQcrze.js → index-BG82ditz.js} +5 -5
  48. package/dist/assets/{input-BIyJeBxh.js → input-DjrybsRY.js} +1 -1
  49. package/dist/assets/{kiosk-mode-BIsGB2bz.js → kiosk-mode-CriCUOI1.js} +1 -1
  50. package/dist/assets/{layout-B_WyZpcV.js → layout-Cb75LpRE.js} +4 -4
  51. package/dist/assets/{logs-panel-UQ4ATgUR.js → logs-panel-CoWO9c8s.js} +1 -1
  52. package/dist/assets/{markdown-renderer-CsSEt6xr.js → markdown-renderer-CyUc0f8D.js} +1 -1
  53. package/dist/assets/{name-cell-input-CjhljYZD.js → name-cell-input-DeM6upjB.js} +1 -1
  54. package/dist/assets/{numbers-CygPEQjl.js → numbers-b0Wn9I4t.js} +1 -1
  55. package/dist/assets/{once-BqL8ujHo.js → once-hq2TLzOp.js} +1 -1
  56. package/dist/assets/{outline-panel-CeVBezl7.js → outline-panel-C4P3wA7Z.js} +1 -1
  57. package/dist/assets/{packages-panel-BIK8BiI8.js → packages-panel-DnrjjQDF.js} +1 -1
  58. package/dist/assets/{panels-y7fSeKKx.js → panels-C-PHvQEf.js} +1 -1
  59. package/dist/assets/{process-output-CMn_Dy8B.js → process-output-e_aMblRk.js} +1 -1
  60. package/dist/assets/{readonly-python-code-CpnBFG08.js → readonly-python-code-CVgh88Tn.js} +1 -1
  61. package/dist/assets/{run-page-RH8OBSIP.js → run-page-BZ-VoP12.js} +1 -1
  62. package/dist/assets/{scratchpad-panel-DpCnByeb.js → scratchpad-panel-CCcUfWUz.js} +1 -1
  63. package/dist/assets/{secrets-panel-zzYf3-bR.js → secrets-panel-CeJzoxCj.js} +1 -1
  64. package/dist/assets/{session-panel-CXp7JlL_.js → session-panel-DaLr35Wc.js} +1 -1
  65. package/dist/assets/{slides-component-BzAdNkd5.js → slides-component-xpT1rEyh.js} +1 -1
  66. package/dist/assets/{snippets-panel-BuIAXUdn.js → snippets-panel-qn7otI-U.js} +1 -1
  67. package/dist/assets/{state-B8b64ALg.js → state-pGNeffyB.js} +1 -1
  68. package/dist/assets/{state-CSzwfw0V.js → state-q7CKuEm6.js} +1 -1
  69. package/dist/assets/{switch-Cojab6Bg.js → switch-DqrqDBdD.js} +1 -1
  70. package/dist/assets/{terminal-D1Yvu9pO.js → terminal-DXod4Bkk.js} +1 -1
  71. package/dist/assets/{textarea-CYczeAo_.js → textarea-DqzNK0s9.js} +1 -1
  72. package/dist/assets/{tracing-B1JBBMQ6.js → tracing-BUFVOmZw.js} +1 -1
  73. package/dist/assets/{tracing-panel-C9D2pbpI.js → tracing-panel-BsLloPWd.js} +2 -2
  74. package/dist/assets/{useAddCell-Dx949Nwo.js → useAddCell-cC7JUC0q.js} +1 -1
  75. package/dist/assets/{useBoolean-CLYY2hZr.js → useBoolean-DN8PHql0.js} +1 -1
  76. package/dist/assets/{useCellActionButton-Dwv-mN2S.js → useCellActionButton-BiYBXHfb.js} +1 -1
  77. package/dist/assets/{useDeleteCell-D77nfE58.js → useDeleteCell-D2p4Dz0U.js} +1 -1
  78. package/dist/assets/{useDependencyPanelTab-CrdJd5fp.js → useDependencyPanelTab-c5-eXlcr.js} +1 -1
  79. package/dist/assets/{useIframeCapabilities-Co6Bg4p6.js → useIframeCapabilities-YemHpw31.js} +1 -1
  80. package/dist/assets/{useNotebookActions-DXMC1QdX.js → useNotebookActions-DB5vGtvM.js} +1 -1
  81. package/dist/assets/{useRunCells-ClEcKsmt.js → useRunCells-DgBY-vh9.js} +1 -1
  82. package/dist/assets/{useSplitCell-DMwGtAvj.js → useSplitCell-SS0kKwVk.js} +1 -1
  83. package/dist/assets/vega-component-CdvEZvzS.js +1 -0
  84. package/dist/assets/write-secret-modal-ZNCQQNxl.js +1 -0
  85. package/dist/index.html +36 -36
  86. package/package.json +1 -1
  87. package/src/components/chat/acp/state.ts +1 -1
  88. package/src/components/chat/chat-history-popover.tsx +1 -1
  89. package/src/components/data-table/pagination.tsx +1 -1
  90. package/src/components/editor/cell/code/cell-editor.tsx +1 -1
  91. package/src/components/editor/chrome/panels/snippets-panel.tsx +1 -1
  92. package/src/components/editor/chrome/panels/write-secret-modal.tsx +1 -1
  93. package/src/components/editor/chrome/wrapper/storage.ts +2 -2
  94. package/src/components/editor/connections/database/as-code.ts +1 -1
  95. package/src/components/editor/connections/form-renderers.tsx +1 -1
  96. package/src/components/editor/connections/storage/as-code.ts +1 -1
  97. package/src/components/editor/links/cell-link-list.tsx +1 -1
  98. package/src/components/editor/navigation/clipboard.ts +1 -1
  99. package/src/components/editor/navigation/multi-cell-action-toolbar.tsx +3 -2
  100. package/src/components/editor/navigation/navigation.ts +2 -2
  101. package/src/components/editor/output/JsonOutput.tsx +2 -2
  102. package/src/components/editor/output/console/ConsoleOutput.tsx +1 -1
  103. package/src/components/editor/renderers/vertical-layout/vertical-layout.tsx +1 -1
  104. package/src/components/pages/gallery-page.tsx +1 -1
  105. package/src/components/variables/variables-table.tsx +1 -1
  106. package/src/core/cells/cells.ts +1 -1
  107. package/src/core/codemirror/cells/traceback-decorations.ts +1 -1
  108. package/src/core/codemirror/copilot/getCodes.ts +1 -1
  109. package/src/core/codemirror/copilot/transport.ts +1 -0
  110. package/src/core/datasets/state.ts +1 -1
  111. package/src/core/network/CachingRequestRegistry.ts +1 -1
  112. package/src/core/runtime/runtime.ts +1 -0
  113. package/src/hooks/__tests__/useDuplicateShortcuts.test.ts +1 -1
  114. package/src/plugins/impl/anywidget/__tests__/model.test.ts +2 -2
  115. package/src/plugins/impl/data-editor/glide-data-editor.tsx +1 -1
  116. package/src/plugins/impl/vega/make-selectable.ts +2 -2
  117. package/src/utils/__tests__/multi-map.test.ts +3 -3
  118. package/src/utils/__tests__/versions.test.ts +5 -5
  119. package/src/utils/arrays.ts +1 -1
  120. package/src/utils/mime-types.ts +1 -1
  121. package/dist/assets/common-C4jQ7Qmf.js +0 -1
  122. package/dist/assets/config-CgKiz3_o.js +0 -1
  123. package/dist/assets/gallery-page-D4AIyP5z.js +0 -1
  124. package/dist/assets/vega-component-BOzdRfM3.js +0 -1
  125. package/dist/assets/write-secret-modal-B3ApxSKF.js +0 -1
@@ -1 +1 @@
1
- import{d as k,n as i,p as v}from"./useEvent-D91BmmQi.js";import{An as w,E as y,Ir as F,Mr as b,ft as _,h as d}from"./cells-CgztvghI.js";import{t as x}from"./compiler-runtime-B3qBwwSJ.js";import{_ as A}from"./useEventListener-DGjKht0c.js";import{o as D}from"./dist-BNTOYRCs.js";import{r as E}from"./requests-9-v2bhoi.js";var u=x();const I=v(!1);function H(){let r=(0,u.c)(2),n=f(),t;return r[0]===n?t=r[1]:(t=()=>n(F(d())),r[0]=n,r[1]=t),i(t)}function M(r){let n=(0,u.c)(3),t=f(),o;return n[0]!==r||n[1]!==t?(o=()=>{r!==void 0&&t([r])},n[0]=r,n[1]=t,n[2]=o):o=n[2],i(o)}function V(){let r=(0,u.c)(2),n=f(),t;return r[0]===n?t=r[1]:(t=()=>n(b(d())),r[0]=n,r[1]=t),i(t)}function f(){let r=(0,u.c)(4),{prepareForRun:n}=y(),{sendRun:t}=E(),o=k(I),e;return r[0]!==n||r[1]!==t||r[2]!==o?(e=async s=>{if(s.length===0)return;let c=d();return o(!0),g({cellIds:s,sendRun:t,prepareForRun:n,notebook:c})},r[0]=n,r[1]=t,r[2]=o,r[3]=e):e=r[3],i(e)}async function g({cellIds:r,sendRun:n,prepareForRun:t,notebook:o}){var m,h,R;if(r.length===0)return;let{cellHandles:e,cellData:s}=o,c=[];for(let a of r){let l=(h=(m=e[a])==null?void 0:m.current)==null?void 0:h.editorView,p;l?(w(l)!=="markdown"&&D(l),p=_(l)):p=((R=s[a])==null?void 0:R.code)||"",c.push(p),t({cellId:a})}await n({cellIds:r,codes:c}).catch(a=>{A.error(a)})}export{f as a,M as i,g as n,H as o,V as r,I as t};
1
+ import{d as k,n as i,p as v}from"./useEvent-D91BmmQi.js";import{An as w,E as y,Ir as F,Mr as b,ft as _,h as d}from"./cells-ArUhhHls.js";import{t as x}from"./compiler-runtime-B3qBwwSJ.js";import{_ as A}from"./useEventListener-DGjKht0c.js";import{o as D}from"./dist-BNTOYRCs.js";import{r as E}from"./requests-9-v2bhoi.js";var u=x();const I=v(!1);function H(){let r=(0,u.c)(2),n=f(),t;return r[0]===n?t=r[1]:(t=()=>n(F(d())),r[0]=n,r[1]=t),i(t)}function M(r){let n=(0,u.c)(3),t=f(),o;return n[0]!==r||n[1]!==t?(o=()=>{r!==void 0&&t([r])},n[0]=r,n[1]=t,n[2]=o):o=n[2],i(o)}function V(){let r=(0,u.c)(2),n=f(),t;return r[0]===n?t=r[1]:(t=()=>n(b(d())),r[0]=n,r[1]=t),i(t)}function f(){let r=(0,u.c)(4),{prepareForRun:n}=y(),{sendRun:t}=E(),o=k(I),e;return r[0]!==n||r[1]!==t||r[2]!==o?(e=async s=>{if(s.length===0)return;let c=d();return o(!0),g({cellIds:s,sendRun:t,prepareForRun:n,notebook:c})},r[0]=n,r[1]=t,r[2]=o,r[3]=e):e=r[3],i(e)}async function g({cellIds:r,sendRun:n,prepareForRun:t,notebook:o}){var m,h,R;if(r.length===0)return;let{cellHandles:e,cellData:s}=o,c=[];for(let a of r){let l=(h=(m=e[a])==null?void 0:m.current)==null?void 0:h.editorView,p;l?(w(l)!=="markdown"&&D(l),p=_(l)):p=((R=s[a])==null?void 0:R.code)||"",c.push(p),t({cellId:a})}await n({cellIds:r,codes:c}).catch(a=>{A.error(a)})}export{f as a,M as i,g as n,H as o,V as r,I as t};
@@ -1 +1 @@
1
- import{s as m}from"./chunk-LvLJmgfZ.js";import{n as p}from"./useEvent-D91BmmQi.js";import{E as d,f,ft as u}from"./cells-CgztvghI.js";import{t as c}from"./compiler-runtime-B3qBwwSJ.js";import{t as C}from"./jsx-runtime-Blw4afVn.js";import{t as h}from"./use-toast-T0_cQDma.js";import{r as v}from"./useDeleteCell-D77nfE58.js";var x=c(),b=m(C(),1);function j(){let t=(0,x.c)(3),{splitCell:i,undoSplitCell:r}=d(),o;return t[0]!==i||t[1]!==r?(o=s=>{let l=f(s.cellId);if(!l)return;let a=u(l);i(s);let{dismiss:n}=h({title:"Cell split",action:(0,b.jsx)(v,{"data-testid":"undo-split-button",size:"sm",variant:"outline",onClick:()=>{r({...s,snapshot:a}),e()},children:"Undo"})}),e=n},t[0]=i,t[1]=r,t[2]=o):o=t[2],p(o)}export{j as t};
1
+ import{s as m}from"./chunk-LvLJmgfZ.js";import{n as p}from"./useEvent-D91BmmQi.js";import{E as d,f,ft as u}from"./cells-ArUhhHls.js";import{t as c}from"./compiler-runtime-B3qBwwSJ.js";import{t as C}from"./jsx-runtime-Blw4afVn.js";import{t as h}from"./use-toast-T0_cQDma.js";import{r as v}from"./useDeleteCell-D2p4Dz0U.js";var x=c(),b=m(C(),1);function j(){let t=(0,x.c)(3),{splitCell:i,undoSplitCell:r}=d(),o;return t[0]!==i||t[1]!==r?(o=s=>{let l=f(s.cellId);if(!l)return;let a=u(l);i(s);let{dismiss:n}=h({title:"Cell split",action:(0,b.jsx)(v,{"data-testid":"undo-split-button",size:"sm",variant:"outline",onClick:()=>{r({...s,snapshot:a}),e()},children:"Undo"})}),e=n},t[0]=i,t[1]=r,t[2]=o):o=t[2],p(o)}export{j as t};
@@ -0,0 +1 @@
1
+ import{s as z}from"./chunk-LvLJmgfZ.js";import{n as C}from"./useEvent-D91BmmQi.js";import{t as Y}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import{t as tt}from"./compiler-runtime-B3qBwwSJ.js";import{t as et}from"./debounce-BbSyBDA8.js";import{_,d as T}from"./useEventListener-DGjKht0c.js";import{n as V}from"./config-CmaJdl9U.js";import{t as nt}from"./cn-DYvqRARy.js";import{t as rt}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-k58KVlT-.js";import{t as at}from"./tooltip-DmqhBBs6.js";import{r as it}from"./button-BKVLeSTX.js";import{d as N}from"./arrays-DAC2orgH.js";import{u as ot}from"./toDate-BGIVWsZ9.js";import"./session-DDorezMU.js";import{r as lt}from"./useTheme-wMq5x3Hi.js";import{t as ct}from"./isValid-CtiDIjiD.js";import{a as st,r as mt,t as pt}from"./utils-COwZ1qVI.js";import{n as ut}from"./vega-loader.browser-CRZ52CKf.js";import{t as ft}from"./react-vega-o-uiEUqD.js";import"./defaultLocale-D_rSvXvJ.js";import"./defaultLocale-C92Rrpmf.js";import{r as dt,t as ht}from"./alert-DrrhKX67.js";import{n as gt}from"./error-banner-B3Vr5jH0.js";import{n as yt}from"./useAsyncData-BPlezez1.js";import{t as vt}from"./formats-Cl4zm1Jf.js";import{t as H}from"./useDeepCompareMemoize-Bj2wGMJg.js";var kt=tt(),S=z(Y(),1);function bt(t){return t.data&&"url"in t.data&&(t.data.url=V(t.data.url).href),t}const u={arc:"arc",area:"area",bar:"bar",image:"image",line:"line",point:"point",rect:"rect",rule:"rule",text:"text",tick:"tick",trail:"trail",circle:"circle",square:"square",geoshape:"geoshape"};var F=new Set(["boxplot","errorband","errorbar"]);const x={getMarkType(t){let e=typeof t=="string"?t:t.type;if(F.has(e))throw Error("Not supported");return e},isInteractive(t){let e=typeof t=="string"?t:t.type;return!F.has(e)},makeClickable(t){let e=typeof t=="string"?t:t.type;return e in u?typeof t=="string"?{type:t,cursor:"pointer",tooltip:!0}:{...t,type:e,cursor:"pointer",tooltip:!0}:t},getOpacity(t){return typeof t=="string"?null:"opacity"in t&&typeof t.opacity=="number"?t.opacity:null}},y={point(t){return t==null?"select_point":`select_point_${t}`},interval(t){return t==null?"select_interval":`select_interval_${t}`},legendSelection(t){return`legend_selection_${t}`},binColoring(t){return t==null?"bin_coloring":`bin_coloring_${t}`},HIGHLIGHT:"highlight",PAN_ZOOM:"pan_zoom",hasPoint(t){return t.some(e=>e.startsWith("select_point"))},hasInterval(t){return t.some(e=>e.startsWith("select_interval"))},hasLegend(t){return t.some(e=>e.startsWith("legend_selection"))},hasPanZoom(t){return t.some(e=>e.startsWith("pan_zoom"))},isBinColoring(t){return t.startsWith("bin_coloring")}},j={highlight(){return{name:y.HIGHLIGHT,select:{type:"point",on:"mouseover"}}},interval(t,e){return{name:y.interval(e),select:{type:"interval",encodings:W(t),mark:{fill:"#669EFF",fillOpacity:.07,stroke:"#669EFF",strokeOpacity:.4},on:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]",translate:"[mousedown[!event.metaKey], mouseup] > mousemove[!event.metaKey]"}}},point(t,e){return{name:y.point(e),select:{type:"point",encodings:W(t),on:"click[!event.metaKey]"}}},binColoring(t){return{name:y.binColoring(t),select:{type:"point",on:"click[!event.metaKey]"}}},legend(t){return{name:y.legendSelection(t),select:{type:"point",fields:[t]},bind:"legend"}},panZoom(){return{name:y.PAN_ZOOM,bind:"scales",select:{type:"interval",on:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",translate:"[mousedown[event.metaKey], window:mouseup] > window:mousemove!",zoom:"wheel![event.metaKey]"}}}};function W(t){switch(x.getMarkType(t.mark)){case u.image:case u.trail:return;case u.area:case u.arc:return["color"];case u.bar:{let e=wt(t);return e==="horizontal"?["y"]:e==="vertical"?["x"]:void 0}case u.circle:case u.geoshape:case u.line:case u.point:case u.rect:case u.rule:case u.square:case u.text:case u.tick:return["x","y"]}}function P(t){return"params"in t&&t.params&&t.params.length>0?N(t.params.filter(e=>e==null?!1:"select"in e&&e.select!==void 0).map(e=>e.name)):"layer"in t?N(t.layer.flatMap(P)):"vconcat"in t?N(t.vconcat.flatMap(P)):"hconcat"in t?N(t.hconcat.flatMap(P)):[]}function wt(t){var a,r;if(!t||!("mark"in t))return;let e=(a=t.encoding)==null?void 0:a.x,n=(r=t.encoding)==null?void 0:r.y;if(e&&"type"in e&&e.type==="nominal")return"vertical";if(n&&"type"in n&&n.type==="nominal"||e&&"aggregate"in e)return"horizontal";if(n&&"aggregate"in n)return"vertical"}function St(t){if(!t.encoding)return[];let e=[];for(let n of Object.values(t.encoding))n&&typeof n=="object"&&"bin"in n&&n.bin&&"field"in n&&typeof n.field=="string"&&e.push(n.field);return e}function D(t){if(!t||!("encoding"in t))return[];let{encoding:e}=t;return e?Object.entries(e).flatMap(n=>{let[a,r]=n;return!r||!xt.has(a)?[]:"field"in r&&typeof r.field=="string"?[r.field]:"condition"in r&&r.condition&&typeof r.condition=="object"&&"field"in r.condition&&r.condition.field&&typeof r.condition.field=="string"?[r.condition.field]:[]}):[]}var xt=new Set(["color","fill","fillOpacity","opacity","shape","size"]);function G(t,e,n,a){let r=n.filter(o=>y.isBinColoring(o)),i={and:(r.length>0?r:n).map(o=>({param:o}))};if(t==="opacity"){let o=x.getOpacity(a)||1;return{...e,opacity:{condition:{test:i,value:o},value:o/5}}}else return e}function At(t){if(!("select"in t)||!t.select)return JSON.stringify(t);let e=t.select;if(typeof e=="string")return JSON.stringify({type:e,bind:t.bind});let n={type:e.type,encodings:"encodings"in e&&e.encodings?[...e.encodings].toSorted():void 0,fields:"fields"in e&&e.fields?[...e.fields].toSorted():void 0,bind:t.bind};return JSON.stringify(n)}function $(t){let e=E(t);if(e.length===0)return t;let n=_t(e);return n.length===0?t:{...L(K(t,new Set(n.map(a=>a.name))),n.map(a=>a.name)),params:[...t.params||[],...n]}}function E(t){let e=[];if("vconcat"in t&&Array.isArray(t.vconcat))for(let n of t.vconcat)e.push(...E(n));else if("hconcat"in t&&Array.isArray(t.hconcat))for(let n of t.hconcat)e.push(...E(n));else{if("layer"in t)return[];"mark"in t&&"params"in t&&t.params&&t.params.length>0&&e.push({params:t.params})}return e}function _t(t){if(t.length===0)return[];let e=new Map,n=t.length;for(let{params:r}of t){let i=new Set;for(let o of r){let l=At(o);i.has(l)||(i.add(l),e.has(l)||e.set(l,{count:0,param:o}),e.get(l).count++)}}let a=[];for(let[,{count:r,param:i}]of e)r===n&&a.push(i);return a}function K(t,e){if("vconcat"in t&&Array.isArray(t.vconcat))return{...t,vconcat:t.vconcat.map(n=>K(n,e))};if("hconcat"in t&&Array.isArray(t.hconcat))return{...t,hconcat:t.hconcat.map(n=>K(n,e))};if("mark"in t&&"params"in t&&t.params){let n=t.params,a=[];for(let r of n){if(!r||typeof r!="object"||!("name"in r)){a.push(r);continue}e.has(r.name)||a.push(r)}if(a.length===0){let{params:r,...i}=t;return i}return{...t,params:a}}return t}function L(t,e){return"vconcat"in t&&Array.isArray(t.vconcat)?{...t,vconcat:t.vconcat.map(n=>L(n,e))}:"hconcat"in t&&Array.isArray(t.hconcat)?{...t,hconcat:t.hconcat.map(n=>L(n,e))}:"layer"in t?t:"mark"in t&&x.isInteractive(t.mark)?{...t,mark:x.makeClickable(t.mark),encoding:G("opacity",t.encoding||{},e,t.mark)}:t}function Z(t,e){var l,k;let{chartSelection:n=!0,fieldSelection:a=!0}=e;if(!n&&!a)return t;(l=t.params)!=null&&l.some(s=>s.bind==="legend")&&(a=!1);let r=(k=t.params)==null?void 0:k.some(s=>!s.bind);r&&(n=!1);let i="vconcat"in t||"hconcat"in t;if(r&&i)return t;if("vconcat"in t){let s=t.vconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,vconcat:s})}if("hconcat"in t){let s=t.hconcat.map(m=>"mark"in m?Z(m,{chartSelection:n,fieldSelection:a}):m);return $({...t,hconcat:s})}if("layer"in t){let s=t.params&&t.params.length>0,m=a!==!1&&!s,v=[];if(m){let p=t.layer.flatMap(f=>"mark"in f?D(f):[]);v=[...new Set(p)],Array.isArray(a)&&(v=v.filter(f=>a.includes(f)))}let w=t.layer.map((p,f)=>{if(!("mark"in p))return p;let h=p;if(f===0&&v.length>0){let O=v.map(M=>j.legend(M));h={...h,params:[...h.params||[],...O]}}return h=q(h,n,f),h=R(h),f===0&&(h=J(h)),h});return{...t,layer:w}}if(!("mark"in t)||!x.isInteractive(t.mark))return t;let o=t;return o=jt(o,a),o=q(o,n,void 0),o=R(o),o=J(o),o}function jt(t,e){if(e===!1)return t;let n=D(t);Array.isArray(e)&&(n=n.filter(i=>e.includes(i)));let a=n.map(i=>j.legend(i)),r=[...t.params||[],...a];return{...t,params:r}}function q(t,e,n){if(e===!1)return t;let a;try{a=x.getMarkType(t.mark)}catch{return t}if(a==="geoshape")return t;let r=St(t),i=e===!0?r.length>0?["point"]:Ot(a):[e];if(!i||i.length===0)return t;let o=i.map(k=>k==="interval"?j.interval(t,n):j.point(t,n)),l=[...t.params||[],...o];return r.length>0&&i.includes("point")&&l.push(j.binColoring(n)),{...t,params:l}}function J(t){let e;try{e=x.getMarkType(t.mark)}catch{}if(e==="geoshape")return t;let n=t.params||[];return n.some(a=>a.bind==="scales")?t:{...t,params:[...n,j.panZoom()]}}function R(t){let e="encoding"in t?t.encoding:void 0,n=t.params||[],a=n.map(r=>r.name);return n.length===0||!x.isInteractive(t.mark)?t:{...t,mark:x.makeClickable(t.mark),encoding:G("opacity",e||{},a,t.mark)}}function Ot(t){switch(t){case"arc":case"area":return["point"];case"text":case"bar":return["point","interval"];case"line":return;default:return["point","interval"]}}async function Mt(t){if(!t)return t;let e="datasets"in t?{...t.datasets}:{},n=async r=>{if(!r)return r;if("layer"in r){let l=await Promise.all(r.layer.map(n));r={...r,layer:l}}if("hconcat"in r){let l=await Promise.all(r.hconcat.map(n));r={...r,hconcat:l}}if("vconcat"in r){let l=await Promise.all(r.vconcat.map(n));r={...r,vconcat:l}}if("spec"in r&&(r={...r,spec:await n(r.spec)}),!r.data||!("url"in r.data))return r;let i;try{i=V(r.data.url)}catch{return r}let o=await st(i.href,r.data.format);return e[i.pathname]=o,{...r,data:{name:i.pathname}}},a=await n(t);return Object.keys(e).length===0?a:{...a,datasets:e}}var d=z(rt(),1);ut("arrow",vt);var Nt=t=>{let e=(0,kt.c)(12),{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:o,embedOptions:l}=t,k,s;e[0]===o?(k=e[1],s=e[2]):(k=async()=>Mt(o),s=[o],e[0]=o,e[1]=k,e[2]=s);let{data:m,error:v}=yt(k,s);if(v){let p;return e[3]===v?p=e[4]:(p=(0,d.jsx)(gt,{error:v}),e[3]=v,e[4]=p),p}if(!m)return null;let w;return e[5]!==r||e[6]!==l||e[7]!==i||e[8]!==m||e[9]!==a||e[10]!==n?(w=(0,d.jsx)(Pt,{value:n,setValue:a,chartSelection:r,fieldSelection:i,spec:m,embedOptions:l}),e[5]=r,e[6]=l,e[7]=i,e[8]=m,e[9]=a,e[10]=n,e[11]=w):w=e[11],w},Pt=({value:t,setValue:e,chartSelection:n,fieldSelection:a,spec:r,embedOptions:i})=>{let{theme:o}=lt(),l=(0,S.useRef)(null),k=(0,S.useRef)(void 0),[s,m]=(0,S.useState)(),v=(0,S.useMemo)(()=>i&&"actions"in i?i.actions:{source:!1,compiled:!1},[i]),w=H(r),p=(0,S.useMemo)(()=>Z(bt(w),{chartSelection:n,fieldSelection:a}),[w,n,a]),f=(0,S.useMemo)(()=>P(p),[p]),h=C(c=>{e({...t,...c})}),O=(0,S.useMemo)(()=>et((c,g)=>{_.debug("[Vega signal]",c,g);let b=T.mapValues(g,Ct);b=T.mapValues(b,It),h({[c]:b})},100),[h]),M=H(f),I=(0,S.useMemo)(()=>M.reduce((c,g)=>(y.PAN_ZOOM===g||y.isBinColoring(g)||c.push({signalName:g,handler:(b,X)=>O(b,X)}),c),[]),[M,O]),B=C(c=>{_.error(c),_.debug(p),m(c)}),Q=C(c=>{_.debug("[Vega view] created",c),k.current=c,m(void 0)}),U=()=>{let c=[];return y.hasPoint(f)&&c.push(["Point selection","click to select a point; hold shift for multi-select"]),y.hasInterval(f)&&c.push(["Interval selection","click and drag to select an interval"]),y.hasLegend(f)&&c.push(["Legend selection","click to select a legend item; hold shift for multi-select"]),y.hasPanZoom(f)&&c.push(["Pan","hold the meta key and drag"],["Zoom","hold the meta key and scroll"]),c.length===0?null:(0,d.jsx)(at,{delayDuration:300,side:"left",content:(0,d.jsx)("div",{className:"text-xs flex flex-col",children:c.map((g,b)=>(0,d.jsxs)("div",{children:[(0,d.jsxs)("span",{className:"font-bold tracking-wide",children:[g[0],":"]})," ",g[1]]},b))}),children:(0,d.jsx)(ot,{className:"absolute bottom-1 right-0 m-2 h-4 w-4 cursor-help text-muted-foreground hover:text-foreground"})})},A=ft({ref:l,spec:p,options:{theme:o==="dark"?"dark":void 0,actions:v,mode:"vega-lite",tooltip:mt.call,renderer:"canvas"},onError:B,onEmbed:Q});return(0,S.useEffect)(()=>(I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.addSignalListener(c,g)}catch(b){_.error(b)}}),()=>{I.forEach(({signalName:c,handler:g})=>{try{A==null||A.view.removeSignalListener(c,g)}catch(b){_.error(b)}})}),[A,I]),(0,d.jsxs)(d.Fragment,{children:[s&&(0,d.jsxs)(ht,{variant:"destructive",children:[(0,d.jsx)(dt,{children:s.message}),(0,d.jsx)("div",{className:"text-md",children:s.stack})]}),(0,d.jsxs)("div",{className:nt("relative"),onPointerDown:it.stopPropagation(),children:[(0,d.jsx)("div",{ref:l,"data-container-width":pt(p)}),U()]})]})};function It(t){return t instanceof Set?[...t]:t}function Ct(t){return Array.isArray(t)?t.map(e=>e instanceof Date&&ct(e)?new Date(e).getTime():e):t}var Et=Nt;export{Et as default};
@@ -0,0 +1 @@
1
+ import{s as V}from"./chunk-LvLJmgfZ.js";import{t as B}from"./react-Bj1aDYRI.js";import{t as G}from"./compiler-runtime-B3qBwwSJ.js";import{t as H}from"./jsx-runtime-Blw4afVn.js";import{c as I,i as J,n as O,s as Q,t as U}from"./select--zcABebs.js";import{t as P}from"./label-C89F4v17.js";import{t as W}from"./button-BKVLeSTX.js";import{r as X}from"./requests-9-v2bhoi.js";import{r as D}from"./input-DjrybsRY.js";import{t as E}from"./use-toast-T0_cQDma.js";import{a as Z,c as $,i as ee,n as te,r as re}from"./dialog-CognbQV_.js";import{t as ae}from"./links-NCBzUApL.js";import{r as L}from"./field-C6i22m8B.js";var oe=G(),T=V(B(),1),t=V(H(),1);function ne(a){return a.toSorted((e,r)=>e.provider==="env"?1:r.provider==="env"?-1:0)}const le=a=>{let e=(0,oe.c)(43),{providerNames:r,onClose:A,onSuccess:F}=a,{writeSecret:Y}=X(),[o,M]=T.useState(""),[l,R]=T.useState(""),[n,z]=T.useState(r[0]),g;e[0]!==o||e[1]!==n||e[2]!==F||e[3]!==l||e[4]!==Y?(g=async i=>{if(i.preventDefault(),!n){E({title:"Error",description:"No location selected for the secret.",variant:"danger"});return}if(!o||!l||!n){E({title:"Error",description:"Please fill in all fields.",variant:"danger"});return}try{await Y({key:o,value:l,provider:"dotenv",name:n}),E({title:"Secret created",description:"The secret has been created successfully."}),F(o)}catch{E({title:"Error",description:"Failed to create secret. Please try again.",variant:"danger"})}},e[0]=o,e[1]=n,e[2]=F,e[3]=l,e[4]=Y,e[5]=g):g=e[5];let q=g,j;e[6]===Symbol.for("react.memo_cache_sentinel")?(j=(0,t.jsxs)(Z,{children:[(0,t.jsx)($,{children:"Add Secret"}),(0,t.jsx)(re,{children:"Add a new secret to your environment variables."})]}),e[6]=j):j=e[6];let y;e[7]===Symbol.for("react.memo_cache_sentinel")?(y=(0,t.jsx)(P,{htmlFor:"key",children:"Key"}),e[7]=y):y=e[7];let S;e[8]===Symbol.for("react.memo_cache_sentinel")?(S=i=>{M(ie(i.target.value))},e[8]=S):S=e[8];let s;e[9]===o?s=e[10]:(s=(0,t.jsxs)("div",{className:"grid gap-2",children:[y,(0,t.jsx)(D,{id:"key",value:o,onChange:S,placeholder:"MY_SECRET_KEY",required:!0})]}),e[9]=o,e[10]=s);let _;e[11]===Symbol.for("react.memo_cache_sentinel")?(_=(0,t.jsx)(P,{htmlFor:"value",children:"Value"}),e[11]=_):_=e[11];let b;e[12]===Symbol.for("react.memo_cache_sentinel")?(b=i=>R(i.target.value),e[12]=b):b=e[12];let c;e[13]===l?c=e[14]:(c=(0,t.jsx)(D,{id:"value",type:"password",value:l,onChange:b,required:!0,autoComplete:"off"}),e[13]=l,e[14]=c);let C;e[15]===Symbol.for("react.memo_cache_sentinel")?(C=se()&&(0,t.jsx)(L,{children:"Note: You are sending this key over http."}),e[15]=C):C=e[15];let d;e[16]===c?d=e[17]:(d=(0,t.jsxs)("div",{className:"grid gap-2",children:[_,c,C]}),e[16]=c,e[17]=d);let N;e[18]===Symbol.for("react.memo_cache_sentinel")?(N=(0,t.jsx)(P,{htmlFor:"location",children:"Location"}),e[18]=N):N=e[18];let m;e[19]===r.length?m=e[20]:(m=r.length===0&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:"No dotenv locations configured."}),e[19]=r.length,e[20]=m);let h;e[21]!==n||e[22]!==r?(h=r.length>0&&(0,t.jsxs)(U,{value:n,onValueChange:i=>z(i),children:[(0,t.jsx)(Q,{children:(0,t.jsx)(I,{placeholder:"Select a provider"})}),(0,t.jsx)(O,{children:r.map(ce)})]}),e[21]=n,e[22]=r,e[23]=h):h=e[23];let k;e[24]===Symbol.for("react.memo_cache_sentinel")?(k=(0,t.jsxs)(L,{children:["You can configure the location by setting the"," ",(0,t.jsx)(ae,{href:"https://links.marimo.app/dotenv",children:"dotenv configuration"}),"."]}),e[24]=k):k=e[24];let p;e[25]!==m||e[26]!==h?(p=(0,t.jsxs)("div",{className:"grid gap-2",children:[N,m,h,k]}),e[25]=m,e[26]=h,e[27]=p):p=e[27];let u;e[28]!==d||e[29]!==p||e[30]!==s?(u=(0,t.jsxs)("div",{className:"grid gap-4 py-4",children:[s,d,p]}),e[28]=d,e[29]=p,e[30]=s,e[31]=u):u=e[31];let f;e[32]===A?f=e[33]:(f=(0,t.jsx)(W,{type:"button",variant:"outline",onClick:A,children:"Cancel"}),e[32]=A,e[33]=f);let K=!o||!l||!n,v;e[34]===K?v=e[35]:(v=(0,t.jsx)(W,{type:"submit",disabled:K,children:"Add Secret"}),e[34]=K,e[35]=v);let x;e[36]!==f||e[37]!==v?(x=(0,t.jsxs)(ee,{children:[f,v]}),e[36]=f,e[37]=v,e[38]=x):x=e[38];let w;return e[39]!==q||e[40]!==u||e[41]!==x?(w=(0,t.jsx)(te,{children:(0,t.jsxs)("form",{onSubmit:q,children:[j,u,x]})}),e[39]=q,e[40]=u,e[41]=x,e[42]=w):w=e[42],w};function ie(a){return a.replaceAll(/\W/g,"_")}function se(){return window.location.href.startsWith("http://")}function ce(a){return(0,t.jsx)(J,{value:a,children:a},a)}export{ne as n,le as t};
package/dist/index.html CHANGED
@@ -66,7 +66,7 @@
66
66
  <marimo-server-token data-token="{{ server_token }}" hidden></marimo-server-token>
67
67
  <!-- /TODO -->
68
68
  <title>{{ title }}</title>
69
- <script type="module" crossorigin src="./assets/index-CdVQcrze.js"></script>
69
+ <script type="module" crossorigin src="./assets/index-BG82ditz.js"></script>
70
70
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-DItdS47A.js">
71
71
  <link rel="modulepreload" crossorigin href="./assets/chunk-LvLJmgfZ.js">
72
72
  <link rel="modulepreload" crossorigin href="./assets/react-Bj1aDYRI.js">
@@ -104,15 +104,15 @@
104
104
  <link rel="modulepreload" crossorigin href="./assets/DeferredRequestRegistry-KOgQgaJP.js">
105
105
  <link rel="modulepreload" crossorigin href="./assets/constants-tOPFFcLZ.js">
106
106
  <link rel="modulepreload" crossorigin href="./assets/session-DDorezMU.js">
107
- <link rel="modulepreload" crossorigin href="./assets/config-CgKiz3_o.js">
107
+ <link rel="modulepreload" crossorigin href="./assets/config-CmaJdl9U.js">
108
108
  <link rel="modulepreload" crossorigin href="./assets/requests-9-v2bhoi.js">
109
109
  <link rel="modulepreload" crossorigin href="./assets/useLifecycle-D202VvPd.js">
110
110
  <link rel="modulepreload" crossorigin href="./assets/useNonce-CbdaHKzX.js">
111
111
  <link rel="modulepreload" crossorigin href="./assets/useTheme-wMq5x3Hi.js">
112
- <link rel="modulepreload" crossorigin href="./assets/arrays-B5sjidyq.js">
112
+ <link rel="modulepreload" crossorigin href="./assets/arrays-DAC2orgH.js">
113
113
  <link rel="modulepreload" crossorigin href="./assets/strings-pfr2N700.js">
114
- <link rel="modulepreload" crossorigin href="./assets/once-BqL8ujHo.js">
115
- <link rel="modulepreload" crossorigin href="./assets/capabilities-ZmYlOg9F.js">
114
+ <link rel="modulepreload" crossorigin href="./assets/once-hq2TLzOp.js">
115
+ <link rel="modulepreload" crossorigin href="./assets/capabilities-BmGdj50E.js">
116
116
  <link rel="modulepreload" crossorigin href="./assets/createReducer-CYlwteGD.js">
117
117
  <link rel="modulepreload" crossorigin href="./assets/paths-Dfii2bN8.js">
118
118
  <link rel="modulepreload" crossorigin href="./assets/dist-VwkX7yeV.js">
@@ -134,49 +134,49 @@
134
134
  <link rel="modulepreload" crossorigin href="./assets/debounce-BbSyBDA8.js">
135
135
  <link rel="modulepreload" crossorigin href="./assets/database-zap-BxfYZ6ML.js">
136
136
  <link rel="modulepreload" crossorigin href="./assets/main-BNL5rxQw.js">
137
- <link rel="modulepreload" crossorigin href="./assets/cells-CgztvghI.js">
137
+ <link rel="modulepreload" crossorigin href="./assets/cells-ArUhhHls.js">
138
138
  <link rel="modulepreload" crossorigin href="./assets/ErrorBoundary-dxChUL02.js">
139
139
  <link rel="modulepreload" crossorigin href="./assets/kbd-BbX-cXm5.js">
140
140
  <link rel="modulepreload" crossorigin href="./assets/useInstallPackage-EEg9LCNy.js">
141
141
  <link rel="modulepreload" crossorigin href="./assets/alert-dialog-CXspBRlP.js">
142
142
  <link rel="modulepreload" crossorigin href="./assets/dialog-CognbQV_.js">
143
143
  <link rel="modulepreload" crossorigin href="./assets/useDebounce-CnN5Ul9t.js">
144
- <link rel="modulepreload" crossorigin href="./assets/numbers-CygPEQjl.js">
144
+ <link rel="modulepreload" crossorigin href="./assets/numbers-b0Wn9I4t.js">
145
145
  <link rel="modulepreload" crossorigin href="./assets/SSRProvider-kyGHZp36.js">
146
146
  <link rel="modulepreload" crossorigin href="./assets/context-DaFZ_AD8.js">
147
147
  <link rel="modulepreload" crossorigin href="./assets/useNumberFormatter-P9_gWrHA.js">
148
148
  <link rel="modulepreload" crossorigin href="./assets/usePress-YLit4doY.js">
149
- <link rel="modulepreload" crossorigin href="./assets/input-BIyJeBxh.js">
150
- <link rel="modulepreload" crossorigin href="./assets/ImperativeModal-BZqqSMUY.js">
151
- <link rel="modulepreload" crossorigin href="./assets/cell-link-CVq1Spik.js">
149
+ <link rel="modulepreload" crossorigin href="./assets/input-DjrybsRY.js">
150
+ <link rel="modulepreload" crossorigin href="./assets/ImperativeModal-DSu22ncS.js">
151
+ <link rel="modulepreload" crossorigin href="./assets/cell-link-D4UrIH9w.js">
152
152
  <link rel="modulepreload" crossorigin href="./assets/multi-map-MSuUqmbC.js">
153
153
  <link rel="modulepreload" crossorigin href="./assets/alert-DrrhKX67.js">
154
154
  <link rel="modulepreload" crossorigin href="./assets/chevron-right-CgvDWFE3.js">
155
155
  <link rel="modulepreload" crossorigin href="./assets/dropdown-menu-DrHAuMTb.js">
156
156
  <link rel="modulepreload" crossorigin href="./assets/links-NCBzUApL.js">
157
- <link rel="modulepreload" crossorigin href="./assets/datasource-BkclstbB.js">
158
- <link rel="modulepreload" crossorigin href="./assets/state-B8b64ALg.js">
157
+ <link rel="modulepreload" crossorigin href="./assets/datasource-D9e37ifa.js">
158
+ <link rel="modulepreload" crossorigin href="./assets/state-pGNeffyB.js">
159
159
  <link rel="modulepreload" crossorigin href="./assets/sparkles-DczT6OBt.js">
160
- <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-Dq9zeSH2.js">
160
+ <link rel="modulepreload" crossorigin href="./assets/MarimoErrorOutput-RmM7djc-.js">
161
161
  <link rel="modulepreload" crossorigin href="./assets/copy-C8iWa1qI.js">
162
162
  <link rel="modulepreload" crossorigin href="./assets/copy-DFMsQ6MJ.js">
163
163
  <link rel="modulepreload" crossorigin href="./assets/copy-icon-CG2ao3lW.js">
164
164
  <link rel="modulepreload" crossorigin href="./assets/spinner-AR54Ic3-.js">
165
- <link rel="modulepreload" crossorigin href="./assets/html-to-image-PhtipB5F.js">
166
- <link rel="modulepreload" crossorigin href="./assets/focus-CM-zeepg.js">
165
+ <link rel="modulepreload" crossorigin href="./assets/html-to-image-C5XSE7QT.js">
166
+ <link rel="modulepreload" crossorigin href="./assets/focus-DCN0oEe0.js">
167
167
  <link rel="modulepreload" crossorigin href="./assets/useAsyncData-BPlezez1.js">
168
168
  <link rel="modulepreload" crossorigin href="./assets/LazyAnyLanguageCodeMirror-BEdv0N9X.js">
169
169
  <link rel="modulepreload" crossorigin href="./assets/micromark-factory-space-BygYYKhs.js">
170
170
  <link rel="modulepreload" crossorigin href="./assets/chunk-5FQGJX7Z-OcP0iC1i.js">
171
- <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-CsSEt6xr.js">
172
- <link rel="modulepreload" crossorigin href="./assets/command-D-mHCwqq.js">
171
+ <link rel="modulepreload" crossorigin href="./assets/markdown-renderer-CyUc0f8D.js">
172
+ <link rel="modulepreload" crossorigin href="./assets/command-C0h2HiOh.js">
173
173
  <link rel="modulepreload" crossorigin href="./assets/popover-AtoFZ7i4.js">
174
174
  <link rel="modulepreload" crossorigin href="./assets/errors-DVkmLSXX.js">
175
- <link rel="modulepreload" crossorigin href="./assets/download-t5dlf0C8.js">
176
- <link rel="modulepreload" crossorigin href="./assets/useRunCells-ClEcKsmt.js">
177
- <link rel="modulepreload" crossorigin href="./assets/RenderHTML-C11kWI2X.js">
175
+ <link rel="modulepreload" crossorigin href="./assets/download-7EtMZf2Y.js">
176
+ <link rel="modulepreload" crossorigin href="./assets/useRunCells-DgBY-vh9.js">
177
+ <link rel="modulepreload" crossorigin href="./assets/RenderHTML-Bmn77an6.js">
178
178
  <link rel="modulepreload" crossorigin href="./assets/table-D5iZuBiR.js">
179
- <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-Co6Bg4p6.js">
179
+ <link rel="modulepreload" crossorigin href="./assets/useIframeCapabilities-YemHpw31.js">
180
180
  <link rel="modulepreload" crossorigin href="./assets/error-banner-B3Vr5jH0.js">
181
181
  <link rel="modulepreload" crossorigin href="./assets/formats-Cl4zm1Jf.js">
182
182
  <link rel="modulepreload" crossorigin href="./assets/en-US-BUL7VBfl.js">
@@ -192,44 +192,44 @@
192
192
  <link rel="modulepreload" crossorigin href="./assets/table-qC3alE1r.js">
193
193
  <link rel="modulepreload" crossorigin href="./assets/message-circle-ehj_MdGz.js">
194
194
  <link rel="modulepreload" crossorigin href="./assets/react-resizable-panels.browser.esm-D0qmuH5W.js">
195
- <link rel="modulepreload" crossorigin href="./assets/JsonOutput-LeC5h8MP.js">
195
+ <link rel="modulepreload" crossorigin href="./assets/JsonOutput-CNt4LxkV.js">
196
196
  <link rel="modulepreload" crossorigin href="./assets/chart-no-axes-column-CsXoiEZx.js">
197
197
  <link rel="modulepreload" crossorigin href="./assets/square-function-DIHpmVFo.js">
198
198
  <link rel="modulepreload" crossorigin href="./assets/spec-CBbUxOvL.js">
199
199
  <link rel="modulepreload" crossorigin href="./assets/ellipsis-vertical-DEH0lwkn.js">
200
200
  <link rel="modulepreload" crossorigin href="./assets/refresh-cw-CoFbRtMK.js">
201
- <link rel="modulepreload" crossorigin href="./assets/components-Cm0Z0WS0.js">
202
- <link rel="modulepreload" crossorigin href="./assets/column-preview-DHqtWPTK.js">
201
+ <link rel="modulepreload" crossorigin href="./assets/components-BfHGr__b.js">
202
+ <link rel="modulepreload" crossorigin href="./assets/column-preview-B92BXVH1.js">
203
203
  <link rel="modulepreload" crossorigin href="./assets/icons-UbXYeuXE.js">
204
- <link rel="modulepreload" crossorigin href="./assets/floating-outline-C_iFBT1S.js">
205
- <link rel="modulepreload" crossorigin href="./assets/useAddCell-Dx949Nwo.js">
204
+ <link rel="modulepreload" crossorigin href="./assets/floating-outline-B6Qyid7Q.js">
205
+ <link rel="modulepreload" crossorigin href="./assets/useAddCell-cC7JUC0q.js">
206
206
  <link rel="modulepreload" crossorigin href="./assets/objectWithoutPropertiesLoose-DaPAPabU.js">
207
207
  <link rel="modulepreload" crossorigin href="./assets/esm-BV1ClmM0.js">
208
208
  <link rel="modulepreload" crossorigin href="./assets/eye-off-DgRJ-xBZ.js">
209
209
  <link rel="modulepreload" crossorigin href="./assets/plus-DWrQrVLZ.js">
210
- <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-CpnBFG08.js">
210
+ <link rel="modulepreload" crossorigin href="./assets/readonly-python-code-CVgh88Tn.js">
211
211
  <link rel="modulepreload" crossorigin href="./assets/file-headphone-5_PGMxRL.js">
212
212
  <link rel="modulepreload" crossorigin href="./assets/file-DaJ4JeZH.js">
213
213
  <link rel="modulepreload" crossorigin href="./assets/image-CpSydGUq.js">
214
- <link rel="modulepreload" crossorigin href="./assets/file-icons-CH6PLlAQ.js">
215
- <link rel="modulepreload" crossorigin href="./assets/switch-Cojab6Bg.js">
214
+ <link rel="modulepreload" crossorigin href="./assets/file-icons-JXAG6vK-.js">
215
+ <link rel="modulepreload" crossorigin href="./assets/switch-DqrqDBdD.js">
216
216
  <link rel="modulepreload" crossorigin href="./assets/events-BRAWQiYK.js">
217
- <link rel="modulepreload" crossorigin href="./assets/globals-DAddhPz5.js">
217
+ <link rel="modulepreload" crossorigin href="./assets/globals-DK8gKReW.js">
218
218
  <link rel="modulepreload" crossorigin href="./assets/share-DkQqqFqC.js">
219
219
  <link rel="modulepreload" crossorigin href="./assets/blob-CpeNXBj-.js">
220
220
  <link rel="modulepreload" crossorigin href="./assets/memoize-BwAF2XN5.js">
221
221
  <link rel="modulepreload" crossorigin href="./assets/get-D7jeR2wg.js">
222
222
  <link rel="modulepreload" crossorigin href="./assets/_baseSet-49dbm-yb.js">
223
- <link rel="modulepreload" crossorigin href="./assets/state-CSzwfw0V.js">
223
+ <link rel="modulepreload" crossorigin href="./assets/state-q7CKuEm6.js">
224
224
  <link rel="modulepreload" crossorigin href="./assets/label-C89F4v17.js">
225
- <link rel="modulepreload" crossorigin href="./assets/textarea-CYczeAo_.js">
225
+ <link rel="modulepreload" crossorigin href="./assets/textarea-DqzNK0s9.js">
226
226
  <link rel="modulepreload" crossorigin href="./assets/refresh-ccw-DxvV30QW.js">
227
227
  <link rel="modulepreload" crossorigin href="./assets/trash-2-CwDX6_Ac.js">
228
- <link rel="modulepreload" crossorigin href="./assets/form-BdN-gGnj.js">
228
+ <link rel="modulepreload" crossorigin href="./assets/form-BFjzbGu5.js">
229
229
  <link rel="modulepreload" crossorigin href="./assets/renderShortcut-Bjt8kSBs.js">
230
- <link rel="modulepreload" crossorigin href="./assets/field-D9oMqqiD.js">
231
- <link rel="modulepreload" crossorigin href="./assets/VisuallyHidden-CXprQ4B9.js">
232
- <link rel="modulepreload" crossorigin href="./assets/useBoolean-CLYY2hZr.js">
230
+ <link rel="modulepreload" crossorigin href="./assets/field-C6i22m8B.js">
231
+ <link rel="modulepreload" crossorigin href="./assets/VisuallyHidden-DVY6OceZ.js">
232
+ <link rel="modulepreload" crossorigin href="./assets/useBoolean-DN8PHql0.js">
233
233
  <link rel="modulepreload" crossorigin href="./assets/useDeepCompareMemoize-Bj2wGMJg.js">
234
234
  <link rel="modulepreload" crossorigin href="./assets/types-BUmn6Kar.js">
235
235
  <link rel="modulepreload" crossorigin href="./assets/fileToBase64-D7Ur9Qxq.js">
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marimo-team/frontend",
3
- "version": "0.22.1-dev32",
3
+ "version": "0.22.1-dev33",
4
4
  "main": "dist/main.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",
@@ -226,7 +226,7 @@ export function getSessionsByAgent(
226
226
  ): AgentSession[] {
227
227
  return sessions
228
228
  .filter((session) => session.agentId === agentId)
229
- .sort((a, b) => b.lastUsedAt - a.lastUsedAt);
229
+ .toSorted((a, b) => b.lastUsedAt - a.lastUsedAt);
230
230
  }
231
231
 
232
232
  export function getAllAgentIds(): ExternalAgentId[] {
@@ -33,7 +33,7 @@ export const ChatHistoryPopover: React.FC<ChatHistoryPopoverProps> = ({
33
33
  const [searchQuery, setSearchQuery] = useState("");
34
34
 
35
35
  const chats = useMemo(() => {
36
- return [...chatState.chats.values()].sort(
36
+ return [...chatState.chats.values()].toSorted(
37
37
  (a, b) => b.updatedAt - a.updatedAt,
38
38
  );
39
39
  }, [chatState.chats]);
@@ -71,7 +71,7 @@ export const DataTablePagination = <TData,>({
71
71
 
72
72
  // Ensure unique page sizes
73
73
  const pageSizeSet = new Set([5, 10, 25, 50, 100, pageSize]);
74
- const pageSizes = [...pageSizeSet].sort((a, b) => a - b);
74
+ const pageSizes = [...pageSizeSet].toSorted((a, b) => a - b);
75
75
 
76
76
  const renderPageSizeSelector = () => {
77
77
  return (
@@ -186,7 +186,7 @@ const CellEditorInternal = ({
186
186
  deleteCell: handleDelete,
187
187
  saveNotebook: saveOrNameNotebook,
188
188
  createManyBelow: (cells) => {
189
- for (const code of [...cells].reverse()) {
189
+ for (const code of [...cells].toReversed()) {
190
190
  cellActions.createNewCell({
191
191
  code,
192
192
  before: false,
@@ -125,7 +125,7 @@ const SnippetViewer: React.FC<{ snippet: Snippet; onClose: () => void }> = ({
125
125
 
126
126
  const handleInsertSnippet = () => {
127
127
  // Add below last focused cell in reverse order
128
- for (const section of [...snippet.sections].reverse()) {
128
+ for (const section of [...snippet.sections].toReversed()) {
129
129
  if (section.code) {
130
130
  createNewCell({
131
131
  code: section.code,
@@ -25,7 +25,7 @@ import type { ListSecretKeysResponse } from "@/core/network/types";
25
25
 
26
26
  // dotenv providers should be at the top
27
27
  export function sortProviders(providers: ListSecretKeysResponse["keys"]) {
28
- return providers.sort((a, b) => {
28
+ return providers.toSorted((a, b) => {
29
29
  if (a.provider === "env") {
30
30
  return 1;
31
31
  }
@@ -28,7 +28,7 @@ export function createStorage(location: "left" | "bottom"): PanelGroupStorage {
28
28
  const parsed = schema.parse(JSON.parse(storedValue));
29
29
  return JSON.stringify(
30
30
  Objects.mapValues(parsed, (value) => {
31
- return value.reverse();
31
+ return value.toReversed();
32
32
  }),
33
33
  );
34
34
  } catch {
@@ -42,7 +42,7 @@ export function createStorage(location: "left" | "bottom"): PanelGroupStorage {
42
42
  const parsed = schema.parse(JSON.parse(value));
43
43
  value = JSON.stringify(
44
44
  Objects.mapValues(parsed, (value) => {
45
- return value.reverse();
45
+ return value.toReversed();
46
46
  }),
47
47
  );
48
48
  } catch {
@@ -964,7 +964,7 @@ export function generateDatabaseCode(
964
964
  ...generator.imports,
965
965
  ]);
966
966
 
967
- const lines = [...imports].sort();
967
+ const lines = [...imports].toSorted();
968
968
  lines.push("");
969
969
  const secrets = secretsContainer.formatSecrets();
970
970
  if (secrets) {
@@ -72,7 +72,7 @@ export const SecretsProvider = ({ children }: SecretsProviderProps) => {
72
72
  .map((provider) => provider.name);
73
73
 
74
74
  return {
75
- secretKeys: result.secrets.flatMap((secret) => secret.keys).sort(),
75
+ secretKeys: result.secrets.flatMap((secret) => secret.keys).toSorted(),
76
76
  providerNames: providerNames,
77
77
  };
78
78
  }, []);
@@ -214,7 +214,7 @@ export function generateStorageCode(
214
214
  }
215
215
 
216
216
  const allImports = new Set([...secrets.imports, ...result.imports]);
217
- const lines = [...allImports].sort();
217
+ const lines = [...allImports].toSorted();
218
218
  lines.push("");
219
219
  const secretsStr = secrets.formatSecrets();
220
220
  if (secretsStr) {
@@ -24,7 +24,7 @@ export const CellLinkList: React.FC<Props> = ({
24
24
  skipScroll,
25
25
  }) => {
26
26
  const cellIndex = useCellIds();
27
- const sortedCellIds = [...cellIds].sort((a, b) => {
27
+ const sortedCellIds = [...cellIds].toSorted((a, b) => {
28
28
  return cellIndex.inOrderIds.indexOf(a) - cellIndex.inOrderIds.indexOf(b);
29
29
  });
30
30
 
@@ -106,7 +106,7 @@ export function useCellClipboard() {
106
106
 
107
107
  // Create new cells with the copied data before/after the current cell
108
108
  const currentCellId = cellId;
109
- const reversedCells = clipboardData.cells.reverse();
109
+ const reversedCells = clipboardData.cells.toReversed();
110
110
  for (const cell of reversedCells) {
111
111
  actions.createNewCell({
112
112
  cellId: currentCellId,
@@ -167,7 +167,8 @@ export function useMultiCellActionButtons(cellIds: CellId[]) {
167
167
  }
168
168
 
169
169
  // Move cells in the appropriate order to maintain relative positions
170
- const sortedCells = direction === "up" ? cellIds : [...cellIds].reverse();
170
+ const sortedCells =
171
+ direction === "up" ? cellIds : [...cellIds].toReversed();
171
172
  sortedCells.forEach((cellId) => {
172
173
  moveCell({ cellId, before: direction === "up" });
173
174
  });
@@ -176,7 +177,7 @@ export function useMultiCellActionButtons(cellIds: CellId[]) {
176
177
 
177
178
  const sendSelectedCellsToTop = useEvent((cellIds: CellId[]) => {
178
179
  // Send in reverse order to maintain relative positions
179
- [...cellIds].reverse().forEach((cellId) => {
180
+ [...cellIds].toReversed().forEach((cellId) => {
180
181
  sendToTop({ cellId });
181
182
  });
182
183
  });
@@ -401,7 +401,7 @@ export function useCellNavigationProps(
401
401
  }
402
402
 
403
403
  // Move cells in the appropriate order to maintain relative positions
404
- [...cellIds].reverse().forEach((cellId) => {
404
+ [...cellIds].toReversed().forEach((cellId) => {
405
405
  actions.moveCell({ cellId, before: false });
406
406
  });
407
407
  return true;
@@ -480,7 +480,7 @@ export function useCellNavigationProps(
480
480
  }),
481
481
  "cell.sendToTop": addSingleHandler((cellIds) => {
482
482
  // Send in reverse order to maintain relative positions
483
- [...cellIds].reverse().forEach((cellId) => {
483
+ [...cellIds].toReversed().forEach((cellId) => {
484
484
  actions.sendToTop({ cellId });
485
485
  });
486
486
  return true;
@@ -329,7 +329,7 @@ const PYTHON_VALUE_TYPES = [
329
329
  URL_TYPE,
330
330
  OBJECT_TYPE,
331
331
  FALLBACK_RENDERER,
332
- ].reverse();
332
+ ].toReversed();
333
333
  // Last one wins, so we reverse the array.
334
334
 
335
335
  const JSON_VALUE_TYPES = [
@@ -339,7 +339,7 @@ const JSON_VALUE_TYPES = [
339
339
  JSON_NONE_TYPE,
340
340
  JSON_OBJECT_TYPE,
341
341
  JSON_FALLBACK_RENDERER,
342
- ].reverse();
342
+ ].toReversed();
343
343
 
344
344
  function leafData(leaf: string): string {
345
345
  return leafDataAndMimeType(leaf)[0];
@@ -167,7 +167,7 @@ const ConsoleOutputInternal = (props: Props): React.ReactNode => {
167
167
  return null;
168
168
  }
169
169
 
170
- const reversedOutputs = [...consoleOutputs].reverse();
170
+ const reversedOutputs = [...consoleOutputs].toReversed();
171
171
  const isPdb = reversedOutputs.some(
172
172
  (output) =>
173
173
  typeof output.data === "string" && output.data.includes("(Pdb)"),
@@ -482,7 +482,7 @@ export function groupCellsByColumn(
482
482
  });
483
483
 
484
484
  // Sort columns by index
485
- return [...cellsByColumn.entries()].sort(([a], [b]) => a - b);
485
+ return [...cellsByColumn.entries()].toSorted(([a], [b]) => a - b);
486
486
  }
487
487
 
488
488
  /**
@@ -83,7 +83,7 @@ const GalleryPage: React.FC = () => {
83
83
  thumbnailUrl,
84
84
  };
85
85
  })
86
- .sort((a, b) => a.relativePath.localeCompare(b.relativePath));
86
+ .toSorted((a, b) => a.relativePath.localeCompare(b.relativePath));
87
87
  }, [workspace?.files, workspace?.root]);
88
88
 
89
89
  const filteredFiles = useMemo(() => {
@@ -226,7 +226,7 @@ function sortData({
226
226
  break;
227
227
  }
228
228
 
229
- return sort.desc ? sortedVariables.reverse() : sortedVariables;
229
+ return sort.desc ? sortedVariables.toReversed() : sortedVariables;
230
230
  }
231
231
 
232
232
  export const VariableTable: React.FC<Props> = memo(
@@ -1226,7 +1226,7 @@ const {
1226
1226
  i--;
1227
1227
  }
1228
1228
 
1229
- const collapseRanges = reversedCollapseRanges.reverse();
1229
+ const collapseRanges = reversedCollapseRanges.toReversed();
1230
1230
  return column.collapseAll(collapseRanges);
1231
1231
  }),
1232
1232
  };
@@ -32,7 +32,7 @@ function createErrorDecorations(state: EditorState, errors: TracebackInfos) {
32
32
  // Filter and sort errors by line number to ensure they're added in order
33
33
  const relevantErrors = errors
34
34
  .filter((error) => error.kind === "cell" && error.cellId === cellId)
35
- .sort((a, b) => a.lineNumber - b.lineNumber);
35
+ .toSorted((a, b) => a.lineNumber - b.lineNumber);
36
36
 
37
37
  for (const error of relevantErrors) {
38
38
  try {
@@ -27,7 +27,7 @@ export function getOtherCellsCode(otherCode: string) {
27
27
  return code;
28
28
  })
29
29
  .filter(Boolean)
30
- .sort((a, b) => {
30
+ .toSorted((a, b) => {
31
31
  if (a.startsWith("import") && !b.startsWith("import")) {
32
32
  return -1;
33
33
  }
@@ -209,6 +209,7 @@ export class LazyWebsocketTransport extends Transport {
209
209
  Logger.error("Copilot#sendData: Failed to reconnect transport", error);
210
210
  throw new Error(
211
211
  "Unable to connect to GitHub Copilot. Please check your settings and try again.",
212
+ { cause: error },
212
213
  );
213
214
  }
214
215
 
@@ -66,7 +66,7 @@ const {
66
66
  return true;
67
67
  });
68
68
 
69
- const sortedTables = dedupedTables.sort((a, b) => {
69
+ const sortedTables = dedupedTables.toSorted((a, b) => {
70
70
  return a.name.localeCompare(b.name);
71
71
  });
72
72
 
@@ -27,7 +27,7 @@ export class CachingRequestRegistry<REQ, RES> {
27
27
  if (typeof o !== "object" || o === null) {
28
28
  return String(o);
29
29
  }
30
- return JSON.stringify(o, Object.keys(o).sort(), 2);
30
+ return JSON.stringify(o, Object.keys(o).toSorted(), 2);
31
31
  };
32
32
  }
33
33
 
@@ -22,6 +22,7 @@ export class RuntimeManager {
22
22
  } catch (error) {
23
23
  throw new Error(
24
24
  `Invalid runtime URL: ${this.config.url}. ${error instanceof Error ? error.message : "Unknown error"}`,
25
+ { cause: error },
25
26
  );
26
27
  }
27
28
 
@@ -145,7 +145,7 @@ describe("findDuplicateShortcuts", () => {
145
145
  expect(result.duplicates).toHaveLength(2);
146
146
 
147
147
  // Check that both duplicate groups are detected
148
- const duplicateKeys = result.duplicates.map((d) => d.key).sort();
148
+ const duplicateKeys = result.duplicates.map((d) => d.key).toSorted();
149
149
  expect(duplicateKeys).toEqual(["cmd-b", "cmd-enter"]);
150
150
 
151
151
  expect(result.hasDuplicate("cell.format")).toBe(true);
@@ -58,13 +58,13 @@ describe("Model", () => {
58
58
  describe("public API", () => {
59
59
  it("should only expose AFM-compliant interface", () => {
60
60
  // Get all enumerable own properties
61
- const ownProperties = Object.keys(model).sort();
61
+ const ownProperties = Object.keys(model).toSorted();
62
62
  // Get prototype methods (excluding constructor)
63
63
  const prototypeMethods = Object.getOwnPropertyNames(
64
64
  Object.getPrototypeOf(model),
65
65
  )
66
66
  .filter((name) => name !== "constructor")
67
- .sort();
67
+ .toSorted();
68
68
 
69
69
  // Snapshot the public API to catch accidental leaks of internal methods
70
70
  expect({ ownProperties, prototypeMethods }).toMatchInlineSnapshot(`
@@ -218,7 +218,7 @@ export const GlideDataEditor = <T,>({
218
218
 
219
219
  // Add new rows in order
220
220
  const sortedNewRows = [...newRows.entries()]
221
- .sort(([a], [b]) => a - b)
221
+ .toSorted(([a], [b]) => a - b)
222
222
  .map(([, row]) => row);
223
223
 
224
224
  if (sortedNewRows.length > 0) {
@@ -40,11 +40,11 @@ function getParamSignature(param: TParams): string {
40
40
  type: select.type,
41
41
  encodings:
42
42
  "encodings" in select && select.encodings
43
- ? [...select.encodings].sort()
43
+ ? [...select.encodings].toSorted()
44
44
  : undefined,
45
45
  fields:
46
46
  "fields" in select && select.fields
47
- ? [...select.fields].sort()
47
+ ? [...select.fields].toSorted()
48
48
  : undefined,
49
49
  bind: param.bind,
50
50
  };