@marimo-team/frontend 0.23.16-dev76 → 0.23.16-dev8

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 (165) hide show
  1. package/dist/assets/{CellStatus-BalYv0pK.js → CellStatus-BwCqFeIT.js} +1 -1
  2. package/dist/assets/{ConnectedDataExplorerComponent-DI7mV-Gw.js → ConnectedDataExplorerComponent-CMaZapRd.js} +1 -1
  3. package/dist/assets/{ErrorBoundary-C7_5jjWi.js → ErrorBoundary-DzTD8LVq.js} +1 -1
  4. package/dist/assets/{ImperativeModal-BIavOiUv.js → ImperativeModal-fY-ZfT0b.js} +1 -1
  5. package/dist/assets/JsonOutput-B0aYK7up.js +53 -0
  6. package/dist/assets/{LazyAnyLanguageCodeMirror-sVm_hz8A.js → LazyAnyLanguageCodeMirror-B2JvSXP-.js} +2 -2
  7. package/dist/assets/{MarimoErrorOutput-DO2k2fA5.js → MarimoErrorOutput-2CXbNUBb.js} +1 -1
  8. package/dist/assets/{RSPContexts-CgC81f0I.js → RSPContexts-WiCgGm__.js} +1 -1
  9. package/dist/assets/{RenderHTML-BCvU9dYz.js → RenderHTML-uBc4LkCP.js} +1 -1
  10. package/dist/assets/{RunButton-BKRupqr7.js → RunButton-DLoWn_Jd.js} +1 -1
  11. package/dist/assets/{add-cell-with-ai-CEZtaZCK.js → add-cell-with-ai-C1L7x0xr.js} +1 -1
  12. package/dist/assets/{add-connection-dialog-CEp3SJR2.js → add-connection-dialog-BgQ7HuWu.js} +1 -1
  13. package/dist/assets/{agent-panel-By4A-Cqr.js → agent-panel-D3_CUvz_.js} +1 -1
  14. package/dist/assets/ai-model-dropdown-C7iiWBqP.js +5 -0
  15. package/dist/assets/{alert-dialog-BXegNC0I.js → alert-dialog-Bb8Lz8ko.js} +1 -1
  16. package/dist/assets/{any-language-editor-DCpZRrpx.js → any-language-editor--tRHs8C_.js} +1 -1
  17. package/dist/assets/{app-config-button-NrM9ywXA.js → app-config-button-DhmeKMjL.js} +1 -1
  18. package/dist/assets/{button-eIihcbUw.js → button-DDGiD1NW.js} +1 -1
  19. package/dist/assets/{cache-panel-wllSTlbM.js → cache-panel-DcQUeUpg.js} +1 -1
  20. package/dist/assets/{capabilities-B09j1Eor.js → capabilities-DoEg0XwL.js} +1 -1
  21. package/dist/assets/{cell-editor-DdofA9oQ.js → cell-editor-DD0zaU_N.js} +10 -10
  22. package/dist/assets/{cell-link-DqBkyAFe.js → cell-link-C0hhYyNu.js} +1 -1
  23. package/dist/assets/{cells-Cf7bHHq3.js → cells-aqfX084m.js} +6 -6
  24. package/dist/assets/{chat-display-BG08ltQ3.js → chat-display-DomMe89U.js} +1 -1
  25. package/dist/assets/{chat-panel-P2CzCtXJ.js → chat-panel-DzLbxcWT.js} +1 -1
  26. package/dist/assets/{chat-ui-fAJZAoTD.js → chat-ui-BpWZ6JeY.js} +1 -1
  27. package/dist/assets/{column-preview-BgZLUEOj.js → column-preview-D5Btj8aG.js} +1 -1
  28. package/dist/assets/{command-CAJLPEBq.js → command-Dqxie4gq.js} +1 -1
  29. package/dist/assets/{command-palette-DrI24FoL.js → command-palette-CNp7T2c5.js} +1 -1
  30. package/dist/assets/{common-CD6Mj8n6.js → common-BrPgvCtD.js} +1 -1
  31. package/dist/assets/{components-BH6gDVv6.js → components-1i9OlkxM.js} +1 -1
  32. package/dist/assets/{config-COUOIPEq.js → config-BJVx3eBW.js} +1 -1
  33. package/dist/assets/{config-BbOTTCYY.js → config-CR3KxW53.js} +1 -1
  34. package/dist/assets/{copy-BtTOqPTS.js → copy-Bxb1_Gtw.js} +1 -1
  35. package/dist/assets/{copy-icon-C2pG0ZNK.js → copy-icon-neDQUo4Q.js} +1 -1
  36. package/dist/assets/{createReducer-C7kZ8zEe.js → createReducer-DGx5Af-C.js} +1 -1
  37. package/dist/assets/{datasource-ySAiC9gr.js → datasource-wn1PTlXA.js} +1 -1
  38. package/dist/assets/{dates-D-kIKDYA.js → dates-C2LWzsCZ.js} +1 -1
  39. package/dist/assets/{dependency-graph-panel-BF23EwcD.js → dependency-graph-panel-B8Q8RQNh.js} +1 -1
  40. package/dist/assets/{dialog-D1DEsRZ2.js → dialog-BCVepWLJ.js} +1 -1
  41. package/dist/assets/{dist-ByVeMWkr.js → dist-BLN8PNJV.js} +1 -1
  42. package/dist/assets/dist-CiVShZKM.js +2 -0
  43. package/dist/assets/{documentation-panel-e9Fi9R7e.js → documentation-panel-hFyikugH.js} +1 -1
  44. package/dist/assets/{download-BomYt3nl.js → download-CkMUlfM3.js} +1 -1
  45. package/dist/assets/{dropdown-menu-BFZLnWeO.js → dropdown-menu-dHmZR8bI.js} +1 -1
  46. package/dist/assets/{edit-page-C37w54dQ.js → edit-page-jUsez4HZ.js} +5 -5
  47. package/dist/assets/{error-banner-B6eIlxzg.js → error-banner-BSxEOIn2.js} +1 -1
  48. package/dist/assets/{error-entries-Birw-8VX.js → error-entries-NXVkubuN.js} +1 -1
  49. package/dist/assets/{error-panel-DdsUL6b7.js → error-panel-DAseRhAS.js} +1 -1
  50. package/dist/assets/{es-1D83cgiu.js → es-gYgfF8y5.js} +1 -1
  51. package/dist/assets/{esm-BL7jQmzn.js → esm-B30N1GS0.js} +1 -1
  52. package/dist/assets/{field-BeZbVzXA.js → field-BsxD35VE.js} +1 -1
  53. package/dist/assets/file-explorer-panel-D7VHUIPp.js +26 -0
  54. package/dist/assets/{file-icons-Cb54mIL8.js → file-icons-Chripuk-.js} +1 -1
  55. package/dist/assets/{file-name-input-BWFcK1ey.js → file-name-input-B1NJd3KY.js} +1 -1
  56. package/dist/assets/{floating-outline-wz-WSRgP.js → floating-outline-BOqWJRw_.js} +1 -1
  57. package/dist/assets/{focus-DiEyfiAG.js → focus-tOmGbv38.js} +1 -1
  58. package/dist/assets/{form-CgWNb44_.js → form-CIXAzTfC.js} +1 -1
  59. package/dist/assets/{formats-ClEFGPy-.js → formats-DzmLpc9A.js} +1 -1
  60. package/dist/assets/{formatting-B_41gSF5.js → formatting-CDf6w1Kt.js} +1 -1
  61. package/dist/assets/{fullscreen-dUjPYOmm.js → fullscreen-CTDqNQr6.js} +1 -1
  62. package/dist/assets/{gallery-page-CWQQAYpa.js → gallery-page-CJ3ms1Hn.js} +1 -1
  63. package/dist/assets/{glide-data-editor-lMARFWHS.js → glide-data-editor-j2igs9Y_.js} +1 -1
  64. package/dist/assets/{home-page-DJ4jJsZj.js → home-page-DO_MqQAB.js} +1 -1
  65. package/dist/assets/{html-to-image-CwmX28T9.js → html-to-image-B-nAUvDC.js} +1 -1
  66. package/dist/assets/index-wLUfvfaV.js +38 -0
  67. package/dist/assets/{index-BjlEpvLC.css → index-xs-zSSrX.css} +1 -1
  68. package/dist/assets/{input-CqrUjynb.js → input-JxFwu-3G.js} +1 -1
  69. package/dist/assets/{kiosk-mode-ABm3oYgq.js → kiosk-mode-QsYGYiC8.js} +1 -1
  70. package/dist/assets/{label-BElwWzf0.js → label-CqjrpwRC.js} +1 -1
  71. package/dist/assets/{layout-BOwE7yok.js → layout-1Z2AhO6k.js} +3 -3
  72. package/dist/assets/{links-CToBjIIj.js → links-CZr5bjvo.js} +1 -1
  73. package/dist/assets/{logs-panel-iFV4ZJ9b.js → logs-panel-B6AfYQb6.js} +1 -1
  74. package/dist/assets/{markdown-renderer-QvXG0CRk.js → markdown-renderer-Cs1sISb9.js} +1 -1
  75. package/dist/assets/{menu-items-DbSLBfXR.js → menu-items-CCi6aOPm.js} +1 -1
  76. package/dist/assets/{mermaid-Bh0flEIb.js → mermaid-CYN0wOyG.js} +1 -1
  77. package/dist/assets/{name-cell-input-C6cukQ9k.js → name-cell-input-2sM8a_OS.js} +1 -1
  78. package/dist/assets/{numbers-CeeaFKqu.js → numbers-rmawRqQP.js} +1 -1
  79. package/dist/assets/{outline-panel-BPlg9_CE.js → outline-panel-BXWCkGu_.js} +1 -1
  80. package/dist/assets/{packages-panel-BzQF60rG.js → packages-panel-CJfHGfax.js} +1 -1
  81. package/dist/assets/{pair-with-agent-modal-CKOYwOYw.js → pair-with-agent-modal-C9nKHvCp.js} +1 -1
  82. package/dist/assets/{panels-CW-PUlv2.js → panels-Ch_sUzTx.js} +1 -1
  83. package/dist/assets/{popover-DrHQ3KEt.js → popover-Bcz1Zikb.js} +1 -1
  84. package/dist/assets/process-output-BFSCpqNt.js +1 -0
  85. package/dist/assets/{radio-group-CLBjGkt5.js → radio-group-PT0_zVHo.js} +1 -1
  86. package/dist/assets/{readonly-code-display-D63oRtBP.js → readonly-code-display-CFbCSGms.js} +1 -1
  87. package/dist/assets/{readonly-python-code-CW_G5e4E.js → readonly-python-code-DB23yd7T.js} +1 -1
  88. package/dist/assets/{renderShortcut-BZLr8D7H.js → renderShortcut-Bl8_FVn8.js} +1 -1
  89. package/dist/assets/{reveal-component-DqMRxmUr.js → reveal-component-fwTDxf5N.js} +57 -57
  90. package/dist/assets/{run-page-s6Mf8p78.js → run-page-D9-9chbw.js} +1 -1
  91. package/dist/assets/{runs-D51Xwrsk.js → runs-DBTXqJHS.js} +1 -1
  92. package/dist/assets/{scratchpad-panel-CXsxdMB-.js → scratchpad-panel-BLC2oQ_3.js} +1 -1
  93. package/dist/assets/{scroll-to-bottom-button-Cgr10kaJ.js → scroll-to-bottom-button-C8yfT4wq.js} +1 -1
  94. package/dist/assets/{secrets-panel-Cc5KDBk6.js → secrets-panel-6J6wcuVR.js} +1 -1
  95. package/dist/assets/{select-B5TFNjmU.js → select-BP75_5jJ.js} +1 -1
  96. package/dist/assets/{session-CEFnN9Cq.js → session-BmukRjSi.js} +1 -1
  97. package/dist/assets/{session-panel-CmHetqAb.js → session-panel-Dz-DQDeV.js} +1 -1
  98. package/dist/assets/{share-CYpcX4N4.js → share-852X_cqy.js} +1 -1
  99. package/dist/assets/{skeleton-B_4CZVEm.js → skeleton-xuR254Kw.js} +1 -1
  100. package/dist/assets/{snippets-panel-CXpGflMO.js → snippets-panel-DwAjNUqR.js} +1 -1
  101. package/dist/assets/{spec-CzqcmYQk.js → spec-C7opZZRp.js} +1 -1
  102. package/dist/assets/{state-BXbiRXZk.js → state-BpkJVsmT.js} +1 -1
  103. package/dist/assets/{state-BvdK8eiw.js → state-D10U2MwA.js} +1 -1
  104. package/dist/assets/{state-WBgc7MiA.js → state-DDag0B_B.js} +1 -1
  105. package/dist/assets/{state-DBzEQtWz.js → state-Tc7pRohh.js} +1 -1
  106. package/dist/assets/{strings-Djnbwmfl.js → strings--BknHX9C.js} +1 -1
  107. package/dist/assets/{swiper-component-DInvCxhI.js → swiper-component-Che9MNs4.js} +1 -1
  108. package/dist/assets/{switch-CvweaCXq.js → switch-DLGijIXN.js} +1 -1
  109. package/dist/assets/{terminal-D3IQBBYo.js → terminal-DaLxAnKx.js} +1 -1
  110. package/dist/assets/{textarea-CpFfEUet.js → textarea-aocYW9hl.js} +1 -1
  111. package/dist/assets/{tooltip-CFX4fYHU.js → tooltip-4bZlU7jl.js} +1 -1
  112. package/dist/assets/{tooltip-HLb6RxVp.js → tooltip-B7U4xkIN.js} +1 -1
  113. package/dist/assets/{tracing-CKn3gWHw.js → tracing-BmBBYynL.js} +1 -1
  114. package/dist/assets/{tracing-panel-BU-o_LCd.js → tracing-panel-AReiFUol.js} +2 -2
  115. package/dist/assets/{tree-actions-CsC2XmGo.js → tree-actions-Bz3fJ7p-.js} +1 -1
  116. package/dist/assets/{useBoolean-D89u30n-.js → useBoolean-CA7K8rap.js} +1 -1
  117. package/dist/assets/{useCellActionButton-CRfIEVB5.js → useCellActionButton-BG7n5b0H.js} +1 -1
  118. package/dist/assets/{useDeleteCell-EPH4kcG7.js → useDeleteCell-DQP-NBq2.js} +1 -1
  119. package/dist/assets/{useDependencyPanelTab-CZnK7N2L.js → useDependencyPanelTab-BrkWlCTP.js} +1 -1
  120. package/dist/assets/useEventListener-C0195JsF.js +1 -0
  121. package/dist/assets/{useHotkey-DIuRH8Wu.js → useHotkey-DLZvrRZT.js} +1 -1
  122. package/dist/assets/{useIframeCapabilities-Ccb4fvKc.js → useIframeCapabilities-j6fR_dBA.js} +1 -1
  123. package/dist/assets/{useInstallPackage-BRbUAUFn.js → useInstallPackage-WiYBwhUO.js} +1 -1
  124. package/dist/assets/{useInterval-CC0vKpWm.js → useInterval-CWBTUy5W.js} +1 -1
  125. package/dist/assets/{useNotebookActions-DJKDd0gM.js → useNotebookActions-COdGI2fR.js} +1 -1
  126. package/dist/assets/{useRunCells-CSSF_mJ0.js → useRunCells-BtSwerrU.js} +1 -1
  127. package/dist/assets/{useSplitCell-9Qz93yPZ.js → useSplitCell-jH70A2Sz.js} +1 -1
  128. package/dist/assets/{useTheme-KXqAyDPC.js → useTheme-Bxv9B31g.js} +1 -1
  129. package/dist/assets/{utils-Z80SV4_d.js → utils-BWBBpCkT.js} +1 -1
  130. package/dist/assets/{vega-component-Cie3ag_T.js → vega-component-DSvWLXIy.js} +1 -1
  131. package/dist/assets/{write-secret-modal-DEEn7sZV.js → write-secret-modal-3-v-dHVj.js} +1 -1
  132. package/dist/index.html +67 -67
  133. package/package.json +1 -1
  134. package/src/components/data-table/column-formatting/feature.ts +2 -1
  135. package/src/components/editor/file-tree/__tests__/file-render-mode.test.ts +27 -0
  136. package/src/components/editor/file-tree/__tests__/file-viewer.test.tsx +150 -0
  137. package/src/components/editor/file-tree/file-preview-metadata.tsx +51 -0
  138. package/src/components/editor/file-tree/file-render-mode.ts +32 -0
  139. package/src/components/editor/file-tree/file-viewer.tsx +76 -50
  140. package/src/components/editor/output/CalloutOutput.tsx +17 -3
  141. package/src/components/slides/__tests__/slide-scroll-hint.test.tsx +198 -0
  142. package/src/components/slides/reveal-component.tsx +3 -2
  143. package/src/components/slides/slide-scroll-hint.tsx +161 -0
  144. package/src/components/ui/input.tsx +1 -1
  145. package/src/core/codemirror/keymaps/__tests__/keymaps.test.ts +31 -2
  146. package/src/core/codemirror/keymaps/keymaps.ts +12 -0
  147. package/src/core/hotkeys/hotkeys.ts +0 -2
  148. package/src/core/i18n/__tests__/locale-provider.test.tsx +54 -118
  149. package/src/core/i18n/__tests__/locale.test.ts +113 -0
  150. package/src/core/i18n/locale-provider.tsx +1 -19
  151. package/src/core/i18n/locale.ts +71 -0
  152. package/src/core/network/types.ts +3 -1
  153. package/src/css/admonition.css +52 -71
  154. package/src/plugins/impl/FormPlugin.tsx +1 -1
  155. package/src/plugins/impl/__tests__/FormPlugin.test.tsx +162 -0
  156. package/src/plugins/layout/CalloutPlugin.tsx +8 -1
  157. package/src/stories/callout.stories.tsx +12 -0
  158. package/dist/assets/JsonOutput-DnGSkLeP.js +0 -53
  159. package/dist/assets/ai-model-dropdown-DXgLphFa.js +0 -5
  160. package/dist/assets/dist-BCMBu0rO.js +0 -2
  161. package/dist/assets/file-explorer-panel-DbdoJbbF.js +0 -26
  162. package/dist/assets/index-D73cl2ti.js +0 -38
  163. package/dist/assets/process-output-BEhIGfkO.js +0 -1
  164. package/dist/assets/useEventListener-B_w3A283.js +0 -1
  165. package/src/components/editor/output/CalloutOutput.styles.ts +0 -22
@@ -1,4 +1,4 @@
1
- import{s as E}from"./chunk-LvLJmgfZ.js";import{t as $e}from"./react-Bj1aDYRI.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{i as ke,o as N,r as Te}from"./useEventListener-B_w3A283.js";import{t as p}from"./cn-DYvqRARy.js";import{t as ze}from"./jsx-runtime-Blw4afVn.js";import{C as M,S as Be,_ as R,c as He,d as We,f as qe,m as Ke,o as Le,r as Ue,s as Ve,u as Ye,v as b,w as h,x as v,y as Ze}from"./fullscreen-dUjPYOmm.js";import{n as w}from"./button-eIihcbUw.js";var i=E($e(),1),l=E(ze(),1),j="Dialog",[S,$]=M(j),[Ge,f]=S(j),k=t=>{let{__scopeDialog:r,children:e,open:a,defaultOpen:o,onOpenChange:n,modal:s=!0}=t,c=i.useRef(null),d=i.useRef(null),[u,x]=Ze({prop:a,defaultProp:o??!1,onChange:n,caller:j});return(0,l.jsx)(Ge,{scope:r,triggerRef:c,contentRef:d,contentId:R(),titleId:R(),descriptionId:R(),open:u,onOpenChange:x,onOpenToggle:i.useCallback(()=>x(Se=>!Se),[x]),modal:s,children:e})};k.displayName=j;var T="DialogTrigger",z=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(T,e),n=N(r,o.triggerRef);return(0,l.jsx)(h.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":O(o.open),...a,ref:n,onClick:v(t.onClick,o.onOpenToggle)})});z.displayName=T;var A="DialogPortal",[Je,B]=S(A,{forceMount:void 0}),H=t=>{let{__scopeDialog:r,forceMount:e,children:a,container:o}=t,n=f(A,r);return(0,l.jsx)(Je,{scope:r,forceMount:e,children:i.Children.map(a,s=>(0,l.jsx)(b,{present:e||n.open,children:(0,l.jsx)(We,{asChild:!0,container:o,children:s})}))})};H.displayName=A;var _="DialogOverlay",W=i.forwardRef((t,r)=>{let e=B(_,t.__scopeDialog),{forceMount:a=e.forceMount,...o}=t,n=f(_,t.__scopeDialog);return n.modal?(0,l.jsx)(b,{present:a||n.open,children:(0,l.jsx)(Xe,{...o,ref:r})}):null});W.displayName=_;var Qe=Te("DialogOverlay.RemoveScroll"),Xe=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(_,e);return(0,l.jsx)(He,{as:Qe,allowPinchZoom:!0,shards:[o.contentRef],children:(0,l.jsx)(h.div,{"data-state":O(o.open),...a,ref:r,style:{pointerEvents:"auto",...a.style}})})}),y="DialogContent",q=i.forwardRef((t,r)=>{let e=B(y,t.__scopeDialog),{forceMount:a=e.forceMount,...o}=t,n=f(y,t.__scopeDialog);return(0,l.jsx)(b,{present:a||n.open,children:n.modal?(0,l.jsx)(er,{...o,ref:r}):(0,l.jsx)(rr,{...o,ref:r})})});q.displayName=y;var er=i.forwardRef((t,r)=>{let e=f(y,t.__scopeDialog),a=i.useRef(null),o=N(r,e.contentRef,a);return i.useEffect(()=>{let n=a.current;if(n)return Ve(n)},[]),(0,l.jsx)(K,{...t,ref:o,trapFocus:e.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:v(t.onCloseAutoFocus,n=>{var s;n.preventDefault(),(s=e.triggerRef.current)==null||s.focus()}),onPointerDownOutside:v(t.onPointerDownOutside,n=>{let s=n.detail.originalEvent,c=s.button===0&&s.ctrlKey===!0;(s.button===2||c)&&n.preventDefault()}),onFocusOutside:v(t.onFocusOutside,n=>n.preventDefault())})}),rr=i.forwardRef((t,r)=>{let e=f(y,t.__scopeDialog),a=i.useRef(!1),o=i.useRef(!1);return(0,l.jsx)(K,{...t,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var s,c;(s=t.onCloseAutoFocus)==null||s.call(t,n),n.defaultPrevented||(a.current||((c=e.triggerRef.current)==null||c.focus()),n.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:n=>{var c,d;(c=t.onInteractOutside)==null||c.call(t,n),n.defaultPrevented||(a.current=!0,n.detail.originalEvent.type==="pointerdown"&&(o.current=!0));let s=n.target;(d=e.triggerRef.current)!=null&&d.contains(s)&&n.preventDefault(),n.detail.originalEvent.type==="focusin"&&o.current&&n.preventDefault()}})}),K=i.forwardRef((t,r)=>{let{__scopeDialog:e,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:n,...s}=t,c=f(y,e),d=i.useRef(null),u=N(r,d);return Ye(),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(qe,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:o,onUnmountAutoFocus:n,children:(0,l.jsx)(Ke,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":O(c.open),...s,ref:u,onDismiss:()=>c.onOpenChange(!1)})}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(ar,{titleId:c.titleId}),(0,l.jsx)(nr,{contentRef:d,descriptionId:c.descriptionId})]})]})}),C="DialogTitle",L=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(C,e);return(0,l.jsx)(h.h2,{id:o.titleId,...a,ref:r})});L.displayName=C;var U="DialogDescription",V=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(U,e);return(0,l.jsx)(h.p,{id:o.descriptionId,...a,ref:r})});V.displayName=U;var Y="DialogClose",Z=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(Y,e);return(0,l.jsx)(h.button,{type:"button",...a,ref:r,onClick:v(t.onClick,()=>o.onOpenChange(!1))})});Z.displayName=Y;function O(t){return t?"open":"closed"}var G="DialogTitleWarning",[tr,J]=Be(G,{contentName:y,titleName:C,docsSlug:"dialog"}),ar=({titleId:t})=>{let r=J(G),e=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
1
+ import{s as E}from"./chunk-LvLJmgfZ.js";import{t as $e}from"./react-Bj1aDYRI.js";import{t as P}from"./compiler-runtime-B3qBwwSJ.js";import{i as ke,o as N,r as Te}from"./useEventListener-C0195JsF.js";import{t as p}from"./cn-DYvqRARy.js";import{t as ze}from"./jsx-runtime-Blw4afVn.js";import{C as M,S as Be,_ as R,c as He,d as We,f as qe,m as Ke,o as Le,r as Ue,s as Ve,u as Ye,v as b,w as h,x as v,y as Ze}from"./fullscreen-CTDqNQr6.js";import{n as w}from"./button-DDGiD1NW.js";var i=E($e(),1),l=E(ze(),1),j="Dialog",[S,$]=M(j),[Ge,f]=S(j),k=t=>{let{__scopeDialog:r,children:e,open:a,defaultOpen:o,onOpenChange:n,modal:s=!0}=t,c=i.useRef(null),d=i.useRef(null),[u,x]=Ze({prop:a,defaultProp:o??!1,onChange:n,caller:j});return(0,l.jsx)(Ge,{scope:r,triggerRef:c,contentRef:d,contentId:R(),titleId:R(),descriptionId:R(),open:u,onOpenChange:x,onOpenToggle:i.useCallback(()=>x(Se=>!Se),[x]),modal:s,children:e})};k.displayName=j;var T="DialogTrigger",z=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(T,e),n=N(r,o.triggerRef);return(0,l.jsx)(h.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":O(o.open),...a,ref:n,onClick:v(t.onClick,o.onOpenToggle)})});z.displayName=T;var A="DialogPortal",[Je,B]=S(A,{forceMount:void 0}),H=t=>{let{__scopeDialog:r,forceMount:e,children:a,container:o}=t,n=f(A,r);return(0,l.jsx)(Je,{scope:r,forceMount:e,children:i.Children.map(a,s=>(0,l.jsx)(b,{present:e||n.open,children:(0,l.jsx)(We,{asChild:!0,container:o,children:s})}))})};H.displayName=A;var _="DialogOverlay",W=i.forwardRef((t,r)=>{let e=B(_,t.__scopeDialog),{forceMount:a=e.forceMount,...o}=t,n=f(_,t.__scopeDialog);return n.modal?(0,l.jsx)(b,{present:a||n.open,children:(0,l.jsx)(Xe,{...o,ref:r})}):null});W.displayName=_;var Qe=Te("DialogOverlay.RemoveScroll"),Xe=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(_,e);return(0,l.jsx)(He,{as:Qe,allowPinchZoom:!0,shards:[o.contentRef],children:(0,l.jsx)(h.div,{"data-state":O(o.open),...a,ref:r,style:{pointerEvents:"auto",...a.style}})})}),y="DialogContent",q=i.forwardRef((t,r)=>{let e=B(y,t.__scopeDialog),{forceMount:a=e.forceMount,...o}=t,n=f(y,t.__scopeDialog);return(0,l.jsx)(b,{present:a||n.open,children:n.modal?(0,l.jsx)(er,{...o,ref:r}):(0,l.jsx)(rr,{...o,ref:r})})});q.displayName=y;var er=i.forwardRef((t,r)=>{let e=f(y,t.__scopeDialog),a=i.useRef(null),o=N(r,e.contentRef,a);return i.useEffect(()=>{let n=a.current;if(n)return Ve(n)},[]),(0,l.jsx)(K,{...t,ref:o,trapFocus:e.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:v(t.onCloseAutoFocus,n=>{var s;n.preventDefault(),(s=e.triggerRef.current)==null||s.focus()}),onPointerDownOutside:v(t.onPointerDownOutside,n=>{let s=n.detail.originalEvent,c=s.button===0&&s.ctrlKey===!0;(s.button===2||c)&&n.preventDefault()}),onFocusOutside:v(t.onFocusOutside,n=>n.preventDefault())})}),rr=i.forwardRef((t,r)=>{let e=f(y,t.__scopeDialog),a=i.useRef(!1),o=i.useRef(!1);return(0,l.jsx)(K,{...t,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{var s,c;(s=t.onCloseAutoFocus)==null||s.call(t,n),n.defaultPrevented||(a.current||((c=e.triggerRef.current)==null||c.focus()),n.preventDefault()),a.current=!1,o.current=!1},onInteractOutside:n=>{var c,d;(c=t.onInteractOutside)==null||c.call(t,n),n.defaultPrevented||(a.current=!0,n.detail.originalEvent.type==="pointerdown"&&(o.current=!0));let s=n.target;(d=e.triggerRef.current)!=null&&d.contains(s)&&n.preventDefault(),n.detail.originalEvent.type==="focusin"&&o.current&&n.preventDefault()}})}),K=i.forwardRef((t,r)=>{let{__scopeDialog:e,trapFocus:a,onOpenAutoFocus:o,onCloseAutoFocus:n,...s}=t,c=f(y,e),d=i.useRef(null),u=N(r,d);return Ye(),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(qe,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:o,onUnmountAutoFocus:n,children:(0,l.jsx)(Ke,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":O(c.open),...s,ref:u,onDismiss:()=>c.onOpenChange(!1)})}),(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(ar,{titleId:c.titleId}),(0,l.jsx)(nr,{contentRef:d,descriptionId:c.descriptionId})]})]})}),C="DialogTitle",L=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(C,e);return(0,l.jsx)(h.h2,{id:o.titleId,...a,ref:r})});L.displayName=C;var U="DialogDescription",V=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(U,e);return(0,l.jsx)(h.p,{id:o.descriptionId,...a,ref:r})});V.displayName=U;var Y="DialogClose",Z=i.forwardRef((t,r)=>{let{__scopeDialog:e,...a}=t,o=f(Y,e);return(0,l.jsx)(h.button,{type:"button",...a,ref:r,onClick:v(t.onClick,()=>o.onOpenChange(!1))})});Z.displayName=Y;function O(t){return t?"open":"closed"}var G="DialogTitleWarning",[tr,J]=Be(G,{contentName:y,titleName:C,docsSlug:"dialog"}),ar=({titleId:t})=>{let r=J(G),e=`\`${r.contentName}\` requires a \`${r.titleName}\` for the component to be accessible for screen reader users.
2
2
 
3
3
  If you want to hide the \`${r.titleName}\`, you can wrap it with our VisuallyHidden component.
4
4
 
@@ -1 +1 @@
1
- import{s as a}from"./chunk-LvLJmgfZ.js";import{t as d}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import"./compiler-runtime-B3qBwwSJ.js";import{g as f}from"./useEventListener-B_w3A283.js";import{t as g}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-dUjPYOmm.js";import"./dist-12S8I4CH.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import{t as h}from"./copy-icon-C2pG0ZNK.js";import{n as c}from"./error-banner-B6eIlxzg.js";import{t as x}from"./esm-BL7jQmzn.js";import"./dist-D5ToCtv8.js";import"./dist-D35OyUMQ.js";import"./dist-ByK00N0T.js";import"./dist-C5kf6g-d.js";import"./dist-BaKJ0-Tb.js";import"./dist-DNGKAtWk.js";import"./dist-56ul6-mm.js";import"./dist-3N7-WLqi.js";import"./dist-CM-lWxt3.js";import{n as v,t as p}from"./esm-Cmv0Nuxi.js";var j=a(d(),1),o=a(g(),1);const e={python:"py",python3:"py",javascript:"js",typescript:"ts",shell:"sh",bash:"sh",unknown:"text",undefined:"text"};function m(t){return t?t in p:!1}var y=({language:t,hideUnsupportedLanguageErrors:n,showCopyButton:u,extensions:r=[],...s})=>{t=e[t||""]||t;let i=m(t);i||f.warn(`Language ${t} not found in CodeMirror.`);let l=(0,j.useMemo)(()=>m(t)?[v(t),...r].filter(Boolean):r,[t,r]);return(0,o.jsxs)("div",{className:"relative w-full group hover-actions-parent",children:[!i&&!n&&(0,o.jsx)(c,{className:"mb-1 rounded-sm",error:`Language ${t} not supported. Supported languages are: ${Object.keys(p).join(", ")}`}),u&&i&&(0,o.jsx)(h,{tooltip:!1,buttonClassName:"absolute top-2 right-2 z-10 hover-action",className:"h-4 w-4 text-muted-foreground",value:s.value||"",toastTitle:"Copied to clipboard"}),(0,o.jsx)(x,{...s,extensions:l})]})};export{e as LANGUAGE_MAP,y as default};
1
+ import{s as a}from"./chunk-LvLJmgfZ.js";import{t as d}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import"./compiler-runtime-B3qBwwSJ.js";import{g as f}from"./useEventListener-C0195JsF.js";import{t as g}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import"./dist-12S8I4CH.js";import"./dist-DcwTQG1A.js";import"./dist-DnjsPBRJ.js";import"./dist-BJZAIIze.js";import"./dist-aRc_dRed.js";import"./dist-CPjTeT8p.js";import{t as h}from"./copy-icon-neDQUo4Q.js";import{n as c}from"./error-banner-BSxEOIn2.js";import{t as x}from"./esm-B30N1GS0.js";import"./dist-D5ToCtv8.js";import"./dist-D35OyUMQ.js";import"./dist-ByK00N0T.js";import"./dist-C5kf6g-d.js";import"./dist-BaKJ0-Tb.js";import"./dist-DNGKAtWk.js";import"./dist-56ul6-mm.js";import"./dist-3N7-WLqi.js";import"./dist-CM-lWxt3.js";import{n as v,t as p}from"./esm-Cmv0Nuxi.js";var j=a(d(),1),o=a(g(),1);const e={python:"py",python3:"py",javascript:"js",typescript:"ts",shell:"sh",bash:"sh",unknown:"text",undefined:"text"};function m(t){return t?t in p:!1}var y=({language:t,hideUnsupportedLanguageErrors:n,showCopyButton:u,extensions:r=[],...s})=>{t=e[t||""]||t;let i=m(t);i||f.warn(`Language ${t} not found in CodeMirror.`);let l=(0,j.useMemo)(()=>m(t)?[v(t),...r].filter(Boolean):r,[t,r]);return(0,o.jsxs)("div",{className:"relative w-full group hover-actions-parent",children:[!i&&!n&&(0,o.jsx)(c,{className:"mb-1 rounded-sm",error:`Language ${t} not supported. Supported languages are: ${Object.keys(p).join(", ")}`}),u&&i&&(0,o.jsx)(h,{tooltip:!1,buttonClassName:"absolute top-2 right-2 z-10 hover-action",className:"h-4 w-4 text-muted-foreground",value:s.value||"",toastTitle:"Copied to clipboard"}),(0,o.jsx)(x,{...s,extensions:l})]})};export{e as LANGUAGE_MAP,y as default};
@@ -1 +1 @@
1
- import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{Lt as I}from"./cells-Cf7bHHq3.js";import{t as F}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-DXgLphFa.js";import{D as oe,O as Q,S as ne}from"./utils-Z80SV4_d.js";import{T as re}from"./config-BbOTTCYY.js";import{t as ie}from"./jsx-runtime-Blw4afVn.js";import{o as ce}from"./alert-dialog-BXegNC0I.js";import{i as de,r as he,t as me}from"./popover-DrHQ3KEt.js";import{l as R}from"./select-B5TFNjmU.js";import{t as U}from"./tooltip-CFX4fYHU.js";import{t as xe}from"./button-eIihcbUw.js";import{s as B}from"./arrays-DbOq36rN.js";import{r as Y}from"./requests-9-v2bhoi.js";import{t as pe}from"./createLucideIcon-w-Qo9n0R.js";import{t as fe}from"./x-C-Eq0ag8.js";import{r as H}from"./input-CqrUjynb.js";import{t as K}from"./settings-D_PiwXwo.js";import{a as M,c as L,d as A,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-CpFfEUet.js";import{t as ge}from"./use-toast-BwJoaaDM.js";import{i as be}from"./RSPContexts-CgC81f0I.js";import{n as we}from"./useDebounce-JDKr83KO.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-D1DEsRZ2.js";import{n as ke}from"./ImperativeModal-BIavOiUv.js";import{t as O}from"./kbd-C5HnBH5U.js";import{t as _e}from"./links-wcQA1Np1.js";import{t as G}from"./Inputs-B8-VCb_j.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=F(),s=z(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Le,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Le(){window.close()}var J=F(),W=z(Z(),1),Ae=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(E,{title:"Display",children:[(0,s.jsx)(L,{control:l.control,name:"width",render:Ee}),(0,s.jsx)(L,{control:l.control,name:"app_title",render:Fe})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(E,{title:"Custom Files",children:[(0,s.jsx)(L,{control:l.control,name:"css_file",render:He}),(0,s.jsx)(L,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(E,{title:"Data",children:(0,s.jsx)(L,{control:l.control,name:"sql_output",render:ze})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(E,{title:"Exporting outputs",children:(0,s.jsx)(L,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var E=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function De(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Ee(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(De)})}),(0,s.jsx)(A,{})]})}function Fe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=F();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let D;return e[10]!==o||e[11]!==l||e[12]!==T?(D=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=D):D=e[13],D}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
1
+ import{s as z}from"./chunk-LvLJmgfZ.js";import{l as X}from"./useEvent-D91BmmQi.js";import{t as Z}from"./react-Bj1aDYRI.js";import{Lt as I}from"./cells-aqfX084m.js";import{t as F}from"./compiler-runtime-B3qBwwSJ.js";import{S as $,c as ee,i as te,l as se,n as le,u as ae}from"./ai-model-dropdown-C7iiWBqP.js";import{D as oe,O as Q,S as ne}from"./utils-BWBBpCkT.js";import{T as re}from"./config-CR3KxW53.js";import{t as ie}from"./jsx-runtime-Blw4afVn.js";import{o as ce}from"./alert-dialog-Bb8Lz8ko.js";import{i as de,r as he,t as me}from"./popover-Bcz1Zikb.js";import{l as R}from"./select-BP75_5jJ.js";import{t as U}from"./tooltip-4bZlU7jl.js";import{t as xe}from"./button-DDGiD1NW.js";import{s as B}from"./arrays-DbOq36rN.js";import{r as Y}from"./requests-9-v2bhoi.js";import{t as pe}from"./createLucideIcon-w-Qo9n0R.js";import{t as fe}from"./x-C-Eq0ag8.js";import{r as H}from"./input-JxFwu-3G.js";import{t as K}from"./settings-D_PiwXwo.js";import{a as M,c as L,d as A,g as ue,i as je,l as P,o as q,p as ve,u as S}from"./textarea-aocYW9hl.js";import{t as ge}from"./use-toast-BwJoaaDM.js";import{i as be}from"./RSPContexts-WiCgGm__.js";import{n as we}from"./useDebounce-JDKr83KO.js";import{c as ye,l as Ne,n as Ce,t as V}from"./dialog-BCVepWLJ.js";import{n as ke}from"./ImperativeModal-fY-ZfT0b.js";import{t as O}from"./kbd-C5HnBH5U.js";import{t as _e}from"./links-wcQA1Np1.js";import{t as G}from"./Inputs-B8-VCb_j.js";var Se=pe("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),Te=F(),s=z(ie(),1);const Me=t=>{let e=(0,Te.c)(15),{description:a,disabled:f,tooltip:r}=t,i=f===void 0?!1:f,u=r===void 0?"Shutdown":r,{openConfirm:b,closeModal:l}=ke(),{sendShutdown:o}=Y(),w;e[0]===o?w=e[1]:(w=()=>{o(),setTimeout(Le,200)},e[0]=o,e[1]=w);let j=w;if(re())return null;let m=i?"disabled":"red",c;e[2]!==l||e[3]!==a||e[4]!==j||e[5]!==b?(c=h=>{h.stopPropagation(),b({title:"Shutdown",description:a,variant:"destructive",confirmAction:(0,s.jsx)(ce,{onClick:()=>{j(),l()},"aria-label":"Confirm Shutdown",children:"Shutdown"})})},e[2]=l,e[3]=a,e[4]=j,e[5]=b,e[6]=c):c=e[6];let n;e[7]===Symbol.for("react.memo_cache_sentinel")?(n=(0,s.jsx)(fe,{strokeWidth:1}),e[7]=n):n=e[7];let d;e[8]!==i||e[9]!==m||e[10]!==c?(d=(0,s.jsx)(G,{"aria-label":"Shutdown","data-testid":"shutdown-button",shape:"circle",size:"small",color:m,className:"h-[27px] w-[27px]",disabled:i,onClick:c,children:n}),e[8]=i,e[9]=m,e[10]=c,e[11]=d):d=e[11];let x;return e[12]!==d||e[13]!==u?(x=(0,s.jsx)(U,{content:u,children:d}),e[12]=d,e[13]=u,e[14]=x):x=e[14],x};function Le(){window.close()}var J=F(),W=z(Z(),1),Ae=100;const Pe=()=>{let t=(0,J.c)(37),[e,a]=ne(),{saveAppConfig:f}=Y(),r=(0,W.useId)(),i=(0,W.useId)(),u;t[0]===Symbol.for("react.memo_cache_sentinel")?(u=ve(oe),t[0]=u):u=t[0];let b;t[1]===e?b=t[2]:(b={resolver:u,defaultValues:e},t[1]=e,t[2]=b);let l=ue(b),o;t[3]!==f||t[4]!==a?(o=async p=>{await f({config:p}).then(()=>{a(p)}).catch(()=>{a(p)})},t[3]=f,t[4]=a,t[5]=o):o=t[5];let w=o,j;t[6]===w?j=t[7]:(j=p=>{w(p)},t[6]=w,t[7]=j);let m=we(j,Ae),c;t[8]===e.width?c=t[9]:(c=[e.width],t[8]=e.width,t[9]=c),(0,W.useEffect)(qe,c);let n;t[10]!==m||t[11]!==l?(n=l.handleSubmit(m),t[10]=m,t[11]=l,t[12]=n):n=t[12];let d;t[13]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)("div",{children:[(0,s.jsx)(ae,{children:"Notebook Settings"}),(0,s.jsx)(se,{children:"Configure how your notebook or application looks and behaves."})]}),t[13]=d):d=t[13];let x;t[14]===l.control?x=t[15]:(x=(0,s.jsxs)(E,{title:"Display",children:[(0,s.jsx)(L,{control:l.control,name:"width",render:Ee}),(0,s.jsx)(L,{control:l.control,name:"app_title",render:Fe})]}),t[14]=l.control,t[15]=x);let h;t[16]===l.control?h=t[17]:(h=(0,s.jsxs)(E,{title:"Custom Files",children:[(0,s.jsx)(L,{control:l.control,name:"css_file",render:He}),(0,s.jsx)(L,{control:l.control,name:"html_head_file",render:Oe})]}),t[16]=l.control,t[17]=h);let y;t[18]===l.control?y=t[19]:(y=(0,s.jsx)(E,{title:"Data",children:(0,s.jsx)(L,{control:l.control,name:"sql_output",render:ze})}),t[18]=l.control,t[19]=y);let N;t[20]!==r||t[21]!==i?(N=p=>{let{field:_}=p;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-col gap-2",children:[(0,s.jsx)(M,{children:(0,s.jsxs)("div",{className:"flex gap-4",children:[(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:r,"data-testid":"html-checkbox",checked:_.value.includes("html"),onCheckedChange:()=>{_.onChange(B(_.value,"html"))}}),(0,s.jsx)(S,{htmlFor:r,children:"HTML"})]}),(0,s.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,s.jsx)(I,{id:i,"data-testid":"ipynb-checkbox",checked:_.value.includes("ipynb"),onCheckedChange:()=>{_.onChange(B(_.value,"ipynb"))}}),(0,s.jsx)(S,{htmlFor:i,children:"IPYNB"})]})]})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["When enabled, marimo will periodically save this notebook in your selected formats (HTML, IPYNB) to a folder named"," ",(0,s.jsx)(O,{className:"inline",children:"__marimo__"})," next to your notebook file."]})]})},t[20]=r,t[21]=i,t[22]=N):N=t[22];let v;t[23]!==l.control||t[24]!==N?(v=(0,s.jsx)(E,{title:"Exporting outputs",children:(0,s.jsx)(L,{control:l.control,name:"auto_download",render:N})}),t[23]=l.control,t[24]=N,t[25]=v):v=t[25];let C;t[26]!==v||t[27]!==x||t[28]!==h||t[29]!==y?(C=(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-x-8 gap-y-4",children:[x,h,y,v]}),t[26]=v,t[27]=x,t[28]=h,t[29]=y,t[30]=C):C=t[30];let g;t[31]!==C||t[32]!==n?(g=(0,s.jsxs)("form",{onChange:n,className:"flex flex-col gap-6",children:[d,C]}),t[31]=C,t[32]=n,t[33]=g):g=t[33];let k;return t[34]!==l||t[35]!==g?(k=(0,s.jsx)(je,{...l,children:g}),t[34]=l,t[35]=g,t[36]=k):k=t[36],k};var E=t=>{let e=(0,J.c)(5),{title:a,children:f}=t,r;e[0]===a?r=e[1]:(r=(0,s.jsx)("h3",{className:"text-base font-semibold mb-1",children:a}),e[0]=a,e[1]=r);let i;return e[2]!==f||e[3]!==r?(i=(0,s.jsxs)("div",{className:"flex flex-col gap-y-2",children:[r,f]}),e[2]=f,e[3]=r,e[4]=i):i=e[4],i};function qe(){window.dispatchEvent(new Event("resize"))}function De(t){return(0,s.jsx)("option",{value:t,children:t},t)}function Ee(t){let{field:e}=t;return(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"Width"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"app-width-select",onChange:a=>e.onChange(a.target.value),value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:$().map(De)})}),(0,s.jsx)(A,{})]})}function Fe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"App title"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"The application title is put in the title tag in the HTML code and typically displayed in the title bar of the browser window."})]})}function He(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"Custom CSS"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",placeholder:"custom.css",onChange:a=>{e.onChange(a.target.value),Q.safeParse(a.target.value).success&&(document.title=a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsx)(q,{children:"A filepath to a custom css file to be injected into the notebook."})]})}function Oe(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{className:"shrink-0",children:"HTML Head"}),(0,s.jsx)(M,{children:(0,s.jsx)(H,{...e,value:e.value??"",placeholder:"head.html",onChange:a=>{e.onChange(a.target.value)}})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["A filepath to an HTML file to be injected into the"," ",(0,s.jsx)(O,{className:"inline",children:"<head/>"})," section of the notebook. Use this to add analytics, custom fonts, meta tags, or external scripts."]})]})}function We(t){return(0,s.jsx)("option",{value:t.value,children:t.label},t.value)}function ze(t){let{field:e}=t;return(0,s.jsxs)("div",{className:"flex flex-col gap-y-1",children:[(0,s.jsxs)(P,{className:"flex flex-row items-center space-x-1 space-y-0",children:[(0,s.jsx)(S,{children:"SQL Output Type"}),(0,s.jsx)(M,{children:(0,s.jsx)(R,{"data-testid":"sql-output-select",onChange:a=>{e.onChange(a.target.value),ge({title:"Kernel Restart Required",description:"This change requires a kernel restart to take effect."})},value:e.value,disabled:e.disabled,className:"inline-flex mr-2",children:ee.map(We)})}),(0,s.jsx)(A,{})]}),(0,s.jsxs)(q,{children:["The Python type returned by a SQL cell. For best performance with large datasets, we recommend using"," ",(0,s.jsx)(O,{className:"inline",children:"native"}),". See the"," ",(0,s.jsx)(_e,{href:"https://docs.marimo.io/guides/working_with_data/sql",children:"SQL guide"})," ","for more information."]})]})}var Ie=F();const Qe=t=>{let e=(0,Ie.c)(32),{showAppConfig:a,disabled:f,tooltip:r}=t,i=a===void 0?!0:a,u=f===void 0?!1:f,b=r===void 0?"Settings":r,[l,o]=X(le),w=u?"disabled":"hint-green",j;e[0]===Symbol.for("react.memo_cache_sentinel")?(j=(0,s.jsx)(K,{strokeWidth:1.8}),e[0]=j):j=e[0];let m;e[1]===b?m=e[2]:(m=(0,s.jsx)(U,{content:b,children:j}),e[1]=b,e[2]=m);let c;e[3]!==u||e[4]!==w||e[5]!==m?(c=(0,s.jsx)(G,{"aria-label":"Config","data-testid":"app-config-button",shape:"circle",size:"small",className:"h-[27px] w-[27px]",disabled:u,color:w,children:m}),e[3]=u,e[4]=w,e[5]=m,e[6]=c):c=e[6];let n=c,d;e[7]===Symbol.for("react.memo_cache_sentinel")?(d=(0,s.jsxs)(Ce,{className:"w-[90vw] h-[90vh] overflow-hidden sm:max-w-5xl top-[5vh] p-0",children:[(0,s.jsx)(be,{children:(0,s.jsx)(ye,{children:"User settings"})}),(0,s.jsx)(te,{})]}),e[7]=d):d=e[7];let x=d;if(!i){let T;e[8]===n?T=e[9]:(T=(0,s.jsx)(Ne,{children:n}),e[8]=n,e[9]=T);let D;return e[10]!==o||e[11]!==l||e[12]!==T?(D=(0,s.jsxs)(V,{open:l,onOpenChange:o,children:[T,x]}),e[10]=o,e[11]=l,e[12]=T,e[13]=D):D=e[13],D}let h;e[14]===n?h=e[15]:(h=(0,s.jsx)(de,{asChild:!0,children:n}),e[14]=n,e[15]=h);let y,N;e[16]===Symbol.for("react.memo_cache_sentinel")?(y=(0,s.jsx)(Pe,{}),N=(0,s.jsx)("div",{className:"h-px bg-border my-2"}),e[16]=y,e[17]=N):(y=e[16],N=e[17]);let v;e[18]===o?v=e[19]:(v=()=>o(!0),e[18]=o,e[19]=v);let C;e[20]===Symbol.for("react.memo_cache_sentinel")?(C=(0,s.jsx)(K,{strokeWidth:1.8,className:"w-4 h-4 mr-2"}),e[20]=C):C=e[20];let g;e[21]===v?g=e[22]:(g=(0,s.jsxs)(he,{className:"w-[650px] overflow-auto max-h-[80vh] max-w-[80vw]",align:"end",side:"bottom",onFocusOutside:Re,children:[y,N,(0,s.jsxs)(xe,{onClick:v,variant:"link",className:"px-0",children:[C,"User settings"]})]}),e[21]=v,e[22]=g);let k;e[23]!==g||e[24]!==h?(k=(0,s.jsxs)(me,{children:[h,g]}),e[23]=g,e[24]=h,e[25]=k):k=e[25];let p;e[26]!==o||e[27]!==l?(p=(0,s.jsx)(V,{open:l,onOpenChange:o,children:x}),e[26]=o,e[27]=l,e[28]=p):p=e[28];let _;return e[29]!==k||e[30]!==p?(_=(0,s.jsxs)(s.Fragment,{children:[k,p]}),e[29]=k,e[30]=p,e[31]=_):_=e[31],_};function Re(t){return t.preventDefault()}export{Me as n,Se as r,Qe as t};
@@ -1 +1 @@
1
- import{s as p}from"./chunk-LvLJmgfZ.js";import{t as E}from"./react-Bj1aDYRI.js";import{t as M}from"./compiler-runtime-B3qBwwSJ.js";import{m as N,n as C,t as K}from"./useEventListener-B_w3A283.js";import{n as P,t as o}from"./cn-DYvqRARy.js";import{t as I}from"./jsx-runtime-Blw4afVn.js";const n={stopPropagation:e=>r=>{r.stopPropagation(),e&&e(r)},onEnter:e=>r=>{r.key==="Enter"&&e&&e(r)},preventFocus:e=>{e.preventDefault()},fromInput:e=>{let r=n.composedTarget(e);return r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.tagName.startsWith("MARIMO")||r.isContentEditable||n.fromCodeMirror(r)},fromCodeMirror:e=>e.closest(".cm-editor")!==null,shouldIgnoreKeyboardEvent(e){let r=n.composedTarget(e);return r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||r instanceof HTMLSelectElement||r instanceof HTMLElement&&(r.isContentEditable||r.tagName==="BUTTON"||r.closest("[role='textbox']")!==null||r.closest("[contenteditable='true']")!==null||n.fromCodeMirror(r))},composedTarget(e){return"composedPath"in e&&typeof e.composedPath=="function"?e.composedPath()[0]??e.target:e.target},hasModifier:e=>e.ctrlKey||e.metaKey||e.altKey||e.shiftKey,isMetaOrCtrl:e=>e.metaKey||e.ctrlKey};var H=M(),f=p(E(),1),S=p(I(),1),a="active:shadow-none",x=P(o("disabled:opacity-50 disabled:pointer-events-none","inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background"),{variants:{variant:{default:o("bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs border border-primary",a),destructive:o("border shadow-xs","bg-(--red-9) hover:bg-(--red-10) dark:bg-(--red-6) dark:hover:bg-(--red-7)","text-(--red-1) dark:text-(--red-12)","border-(--red-11)",a),success:o("border shadow-xs","bg-(--grass-9) hover:bg-(--grass-10) dark:bg-(--grass-6) dark:hover:bg-(--grass-7)","text-(--grass-1) dark:text-(--grass-12)","border-(--grass-11)",a),warn:o("border shadow-xs","bg-(--yellow-9) hover:bg-(--yellow-10) dark:bg-(--yellow-6) dark:hover:bg-(--yellow-7)","text-(--yellow-12)","border-(--yellow-11)",a),action:o("bg-action text-action-foreground shadow-xs","hover:bg-action-hover border border-action",a),outline:o("border border-slate-300 shadow-xs","hover:bg-accent hover:text-accent-foreground","hover:border-primary","aria-selected:text-accent-foreground aria-selected:border-primary",a),secondary:o("bg-secondary text-secondary-foreground hover:bg-secondary/80","border border-input shadow-xs",a),text:o("opacity-80 hover:opacity-100","active:opacity-100"),ghost:o("border border-transparent","hover:bg-accent hover:text-accent-foreground hover:shadow-xs",a,"active:text-accent-foreground"),link:"underline-offset-4 hover:underline text-link",linkDestructive:"underline-offset-4 hover:underline text-destructive underline-destructive",outlineDestructive:"border border-destructive text-destructive hover:bg-destructive/10"},size:{default:"h-10 py-2 px-4",xs:"h-7 px-2 rounded-md text-xs",sm:"h-9 px-3 rounded-md",lg:"h-11 px-8 rounded-md",icon:"h-6 w-6 mb-0"},disabled:{true:"opacity-50 pointer-events-none"}},defaultVariants:{variant:"default",size:"sm"}}),y=f.forwardRef((e,r)=>{let t=(0,H.c)(7),{className:v,variant:w,size:k,asChild:h,keyboardShortcut:i,...l}=e,T=h===void 0?!1:h,s=f.useRef(null),c;t[0]===Symbol.for("react.memo_cache_sentinel")?(c=()=>s.current,t[0]=c):c=t[0],f.useImperativeHandle(r,c);let u;t[1]===i?u=t[2]:(u=d=>{!i||d.defaultPrevented||n.shouldIgnoreKeyboardEvent(d)||N(i)(d)&&(d.preventDefault(),d.stopPropagation(),s!=null&&s.current&&!s.current.disabled&&s.current.click())},t[1]=i,t[2]=u),K(document,"keydown",u);let m=T?C:"button",g=o(x({variant:w,size:k,className:v,disabled:l.disabled}),v),b;return t[3]!==m||t[4]!==l||t[5]!==g?(b=(0,S.jsx)(m,{className:g,ref:s,...l}),t[3]=m,t[4]=l,t[5]=g,t[6]=b):b=t[6],b});y.displayName="Button";export{x as n,n as r,y as t};
1
+ import{s as p}from"./chunk-LvLJmgfZ.js";import{t as E}from"./react-Bj1aDYRI.js";import{t as M}from"./compiler-runtime-B3qBwwSJ.js";import{m as N,n as C,t as K}from"./useEventListener-C0195JsF.js";import{n as P,t as o}from"./cn-DYvqRARy.js";import{t as I}from"./jsx-runtime-Blw4afVn.js";const n={stopPropagation:e=>r=>{r.stopPropagation(),e&&e(r)},onEnter:e=>r=>{r.key==="Enter"&&e&&e(r)},preventFocus:e=>{e.preventDefault()},fromInput:e=>{let r=n.composedTarget(e);return r.tagName==="INPUT"||r.tagName==="TEXTAREA"||r.tagName.startsWith("MARIMO")||r.isContentEditable||n.fromCodeMirror(r)},fromCodeMirror:e=>e.closest(".cm-editor")!==null,shouldIgnoreKeyboardEvent(e){let r=n.composedTarget(e);return r instanceof HTMLInputElement||r instanceof HTMLTextAreaElement||r instanceof HTMLSelectElement||r instanceof HTMLElement&&(r.isContentEditable||r.tagName==="BUTTON"||r.closest("[role='textbox']")!==null||r.closest("[contenteditable='true']")!==null||n.fromCodeMirror(r))},composedTarget(e){return"composedPath"in e&&typeof e.composedPath=="function"?e.composedPath()[0]??e.target:e.target},hasModifier:e=>e.ctrlKey||e.metaKey||e.altKey||e.shiftKey,isMetaOrCtrl:e=>e.metaKey||e.ctrlKey};var H=M(),f=p(E(),1),S=p(I(),1),a="active:shadow-none",x=P(o("disabled:opacity-50 disabled:pointer-events-none","inline-flex items-center justify-center rounded-md text-sm font-medium focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background"),{variants:{variant:{default:o("bg-primary text-primary-foreground hover:bg-primary/90 shadow-xs border border-primary",a),destructive:o("border shadow-xs","bg-(--red-9) hover:bg-(--red-10) dark:bg-(--red-6) dark:hover:bg-(--red-7)","text-(--red-1) dark:text-(--red-12)","border-(--red-11)",a),success:o("border shadow-xs","bg-(--grass-9) hover:bg-(--grass-10) dark:bg-(--grass-6) dark:hover:bg-(--grass-7)","text-(--grass-1) dark:text-(--grass-12)","border-(--grass-11)",a),warn:o("border shadow-xs","bg-(--yellow-9) hover:bg-(--yellow-10) dark:bg-(--yellow-6) dark:hover:bg-(--yellow-7)","text-(--yellow-12)","border-(--yellow-11)",a),action:o("bg-action text-action-foreground shadow-xs","hover:bg-action-hover border border-action",a),outline:o("border border-slate-300 shadow-xs","hover:bg-accent hover:text-accent-foreground","hover:border-primary","aria-selected:text-accent-foreground aria-selected:border-primary",a),secondary:o("bg-secondary text-secondary-foreground hover:bg-secondary/80","border border-input shadow-xs",a),text:o("opacity-80 hover:opacity-100","active:opacity-100"),ghost:o("border border-transparent","hover:bg-accent hover:text-accent-foreground hover:shadow-xs",a,"active:text-accent-foreground"),link:"underline-offset-4 hover:underline text-link",linkDestructive:"underline-offset-4 hover:underline text-destructive underline-destructive",outlineDestructive:"border border-destructive text-destructive hover:bg-destructive/10"},size:{default:"h-10 py-2 px-4",xs:"h-7 px-2 rounded-md text-xs",sm:"h-9 px-3 rounded-md",lg:"h-11 px-8 rounded-md",icon:"h-6 w-6 mb-0"},disabled:{true:"opacity-50 pointer-events-none"}},defaultVariants:{variant:"default",size:"sm"}}),y=f.forwardRef((e,r)=>{let t=(0,H.c)(7),{className:v,variant:w,size:k,asChild:h,keyboardShortcut:i,...l}=e,T=h===void 0?!1:h,s=f.useRef(null),c;t[0]===Symbol.for("react.memo_cache_sentinel")?(c=()=>s.current,t[0]=c):c=t[0],f.useImperativeHandle(r,c);let u;t[1]===i?u=t[2]:(u=d=>{!i||d.defaultPrevented||n.shouldIgnoreKeyboardEvent(d)||N(i)(d)&&(d.preventDefault(),d.stopPropagation(),s!=null&&s.current&&!s.current.disabled&&s.current.click())},t[1]=i,t[2]=u),K(document,"keydown",u);let m=T?C:"button",g=o(x({variant:w,size:k,className:v,disabled:l.disabled}),v),b;return t[3]!==m||t[4]!==l||t[5]!==g?(b=(0,S.jsx)(m,{className:g,ref:s,...l}),t[3]=m,t[4]=l,t[5]=g,t[6]=b):b=t[6],b});y.displayName="Button";export{x as n,n as r,y as t};
@@ -1 +1 @@
1
- import{s as F}from"./chunk-LvLJmgfZ.js";import{u as R}from"./useEvent-D91BmmQi.js";import{t as H}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import{t as D}from"./compiler-runtime-B3qBwwSJ.js";import{t as M}from"./cn-DYvqRARy.js";import{t as q}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-dUjPYOmm.js";import{a as B,c as G,i as J,l as K,n as Q,o as U,r as V,s as W,t as X,u as Y}from"./alert-dialog-BXegNC0I.js";import{t as z}from"./button-eIihcbUw.js";import{r as Z}from"./requests-9-v2bhoi.js";import{t as E}from"./database-zap-CKO8g4BU.js";import{t as _}from"./spinner-D-V4psAa.js";import{t as $}from"./refresh-cw-CYq4mK5a.js";import{t as ee}from"./trash-2-72W0TZ3L.js";import{t as A}from"./use-toast-BwJoaaDM.js";import{t as se}from"./context-BFPaAUK_.js";import{i as T}from"./numbers-CeeaFKqu.js";import{n as te}from"./useAsyncData-Bg5iAViP.js";import{t as I}from"./empty-state-CqJvEFRk.js";import{t as ae}from"./requests-DYeT4CEe.js";import{n as ie,t as L}from"./formatting-B_41gSF5.js";var re=D(),O=F(H(),1),s=F(q(),1);const le=w=>{let e=(0,re.c)(27),{children:a,title:n,description:r,onConfirm:t,confirmText:l,cancelText:i,destructive:o}=w,y=l===void 0?"Continue":l,x=i===void 0?"Cancel":i,f=o===void 0?!1:o,[p,P]=O.useState(!1),h;e[0]===t?h=e[1]:(h=()=>{t(),P(!1)},e[0]=t,e[1]=h);let u=h,d=f?U:Q,m;e[2]===a?m=e[3]:(m=(0,s.jsx)(Y,{asChild:!0,children:a}),e[2]=a,e[3]=m);let c;e[4]===n?c=e[5]:(c=(0,s.jsx)(K,{children:n}),e[4]=n,e[5]=c);let j;e[6]===r?j=e[7]:(j=(0,s.jsx)(B,{children:r}),e[6]=r,e[7]=j);let v;e[8]!==c||e[9]!==j?(v=(0,s.jsxs)(G,{children:[c,j]}),e[8]=c,e[9]=j,e[10]=v):v=e[10];let g;e[11]===x?g=e[12]:(g=(0,s.jsx)(V,{children:x}),e[11]=x,e[12]=g);let N;e[13]!==d||e[14]!==y||e[15]!==u?(N=(0,s.jsx)(d,{onClick:u,children:y}),e[13]=d,e[14]=y,e[15]=u,e[16]=N):N=e[16];let b;e[17]!==N||e[18]!==g?(b=(0,s.jsxs)(W,{children:[g,N]}),e[17]=N,e[18]=g,e[19]=b):b=e[19];let C;e[20]!==b||e[21]!==v?(C=(0,s.jsxs)(J,{children:[v,b]}),e[20]=b,e[21]=v,e[22]=C):C=e[22];let S;return e[23]!==p||e[24]!==C||e[25]!==m?(S=(0,s.jsxs)(X,{open:p,onOpenChange:P,children:[m,C]}),e[23]=p,e[24]=C,e[25]=m,e[26]=S):S=e[26],S};var oe=D(),ce=()=>{let{clearCache:w,getCacheInfo:e}=Z(),a=R(ae),[n,r]=(0,O.useState)(!1),{locale:t}=se(),{isPending:l,isFetching:i,refetch:o}=te(async()=>{await e(),await new Promise(c=>setTimeout(c,500))},[]),y=async()=>{try{r(!0),await w(),A({title:"Cache purged",description:"All cached data has been cleared"}),o()}catch(c){A({title:"Error",description:c instanceof Error?c.message:"Failed to purge cache",variant:"danger"})}finally{r(!1)}};if(l&&!a)return(0,s.jsx)(_,{size:"medium",centered:!0});let x=(0,s.jsxs)(z,{variant:"outline",size:"sm",onClick:o,disabled:i,children:[i?(0,s.jsx)(_,{size:"small",className:"w-4 h-4 mr-2"}):(0,s.jsx)($,{className:"w-4 h-4 mr-2"}),"Refresh"]});if(!a)return(0,s.jsx)(I,{title:"No cache data",description:"Cache information is not available.",icon:(0,s.jsx)(E,{}),action:x});let f=a.hits,p=a.misses,P=a.time,h=a.disk_total,u=a.disk_to_free,d=f+p,m=d>0?f/d*100:0;return d===0?(0,s.jsx)(I,{title:"No cache activity",description:"The cache has not been used yet. Cached functions will appear here once they are executed.",icon:(0,s.jsx)(E,{}),action:x}):(0,s.jsx)("div",{className:"flex flex-col h-full overflow-auto",children:(0,s.jsxs)("div",{className:"flex flex-col gap-4 p-4 h-full",children:[(0,s.jsx)("div",{className:"flex items-center justify-end",children:(0,s.jsx)(z,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:o,disabled:i,children:(0,s.jsx)($,{className:M("h-4 w-4 text-muted-foreground hover:text-foreground",i&&"animate-[spin_0.5s]")})})}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Statistics"}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(k,{label:"Time saved",value:ie(P,t),description:"Total execution time saved"}),(0,s.jsx)(k,{label:"Hit rate",value:d>0?`${T(m,t)}%`:"\u2014",description:`${T(f,t)} hits / ${T(d,t)} total`}),(0,s.jsx)(k,{label:"Cache hits",value:T(f,t),description:"Successful cache retrievals"}),(0,s.jsx)(k,{label:"Cache misses",value:T(p,t),description:"Cache not found"})]})]}),h>0&&(0,s.jsxs)("div",{className:"space-y-3 pt-2 border-t",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Storage"}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-3",children:(0,s.jsx)(k,{label:"Disk usage",value:L(h,t),description:u>0?`${L(u,t)} can be freed`:"Cache storage on disk"})})]}),(0,s.jsx)("div",{className:"my-auto"}),(0,s.jsx)("div",{className:"pt-2 border-t",children:(0,s.jsx)(le,{title:"Purge cache?",description:"This will permanently delete all cached data. This action cannot be undone.",confirmText:"Purge",destructive:!0,onConfirm:y,children:(0,s.jsxs)(z,{variant:"outlineDestructive",size:"xs",disabled:n,className:"w-full",children:[n?(0,s.jsx)(_,{size:"small",className:"w-3 h-3 mr-2"}):(0,s.jsx)(ee,{className:"w-3 h-3 mr-2"}),"Purge Cache"]})})})]})})},k=w=>{let e=(0,oe.c)(10),{label:a,value:n,description:r}=w,t;e[0]===a?t=e[1]:(t=(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),e[0]=a,e[1]=t);let l;e[2]===n?l=e[3]:(l=(0,s.jsx)("span",{className:"text-lg font-semibold",children:n}),e[2]=n,e[3]=l);let i;e[4]===r?i=e[5]:(i=r&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:r}),e[4]=r,e[5]=i);let o;return e[6]!==t||e[7]!==l||e[8]!==i?(o=(0,s.jsxs)("div",{className:"flex flex-col gap-1 p-3 rounded-lg border bg-card",children:[t,l,i]}),e[6]=t,e[7]=l,e[8]=i,e[9]=o):o=e[9],o},ne=ce;export{ne as default};
1
+ import{s as F}from"./chunk-LvLJmgfZ.js";import{u as R}from"./useEvent-D91BmmQi.js";import{t as H}from"./react-Bj1aDYRI.js";import"./react-dom-CSu739Rf.js";import{t as D}from"./compiler-runtime-B3qBwwSJ.js";import{t as M}from"./cn-DYvqRARy.js";import{t as q}from"./jsx-runtime-Blw4afVn.js";import"./fullscreen-CTDqNQr6.js";import{a as B,c as G,i as J,l as K,n as Q,o as U,r as V,s as W,t as X,u as Y}from"./alert-dialog-Bb8Lz8ko.js";import{t as z}from"./button-DDGiD1NW.js";import{r as Z}from"./requests-9-v2bhoi.js";import{t as E}from"./database-zap-CKO8g4BU.js";import{t as _}from"./spinner-D-V4psAa.js";import{t as $}from"./refresh-cw-CYq4mK5a.js";import{t as ee}from"./trash-2-72W0TZ3L.js";import{t as A}from"./use-toast-BwJoaaDM.js";import{t as se}from"./context-BFPaAUK_.js";import{i as T}from"./numbers-rmawRqQP.js";import{n as te}from"./useAsyncData-Bg5iAViP.js";import{t as I}from"./empty-state-CqJvEFRk.js";import{t as ae}from"./requests-DYeT4CEe.js";import{n as ie,t as L}from"./formatting-CDf6w1Kt.js";var re=D(),O=F(H(),1),s=F(q(),1);const le=w=>{let e=(0,re.c)(27),{children:a,title:n,description:r,onConfirm:t,confirmText:l,cancelText:i,destructive:o}=w,y=l===void 0?"Continue":l,x=i===void 0?"Cancel":i,f=o===void 0?!1:o,[p,P]=O.useState(!1),h;e[0]===t?h=e[1]:(h=()=>{t(),P(!1)},e[0]=t,e[1]=h);let u=h,d=f?U:Q,m;e[2]===a?m=e[3]:(m=(0,s.jsx)(Y,{asChild:!0,children:a}),e[2]=a,e[3]=m);let c;e[4]===n?c=e[5]:(c=(0,s.jsx)(K,{children:n}),e[4]=n,e[5]=c);let j;e[6]===r?j=e[7]:(j=(0,s.jsx)(B,{children:r}),e[6]=r,e[7]=j);let v;e[8]!==c||e[9]!==j?(v=(0,s.jsxs)(G,{children:[c,j]}),e[8]=c,e[9]=j,e[10]=v):v=e[10];let g;e[11]===x?g=e[12]:(g=(0,s.jsx)(V,{children:x}),e[11]=x,e[12]=g);let N;e[13]!==d||e[14]!==y||e[15]!==u?(N=(0,s.jsx)(d,{onClick:u,children:y}),e[13]=d,e[14]=y,e[15]=u,e[16]=N):N=e[16];let b;e[17]!==N||e[18]!==g?(b=(0,s.jsxs)(W,{children:[g,N]}),e[17]=N,e[18]=g,e[19]=b):b=e[19];let C;e[20]!==b||e[21]!==v?(C=(0,s.jsxs)(J,{children:[v,b]}),e[20]=b,e[21]=v,e[22]=C):C=e[22];let S;return e[23]!==p||e[24]!==C||e[25]!==m?(S=(0,s.jsxs)(X,{open:p,onOpenChange:P,children:[m,C]}),e[23]=p,e[24]=C,e[25]=m,e[26]=S):S=e[26],S};var oe=D(),ce=()=>{let{clearCache:w,getCacheInfo:e}=Z(),a=R(ae),[n,r]=(0,O.useState)(!1),{locale:t}=se(),{isPending:l,isFetching:i,refetch:o}=te(async()=>{await e(),await new Promise(c=>setTimeout(c,500))},[]),y=async()=>{try{r(!0),await w(),A({title:"Cache purged",description:"All cached data has been cleared"}),o()}catch(c){A({title:"Error",description:c instanceof Error?c.message:"Failed to purge cache",variant:"danger"})}finally{r(!1)}};if(l&&!a)return(0,s.jsx)(_,{size:"medium",centered:!0});let x=(0,s.jsxs)(z,{variant:"outline",size:"sm",onClick:o,disabled:i,children:[i?(0,s.jsx)(_,{size:"small",className:"w-4 h-4 mr-2"}):(0,s.jsx)($,{className:"w-4 h-4 mr-2"}),"Refresh"]});if(!a)return(0,s.jsx)(I,{title:"No cache data",description:"Cache information is not available.",icon:(0,s.jsx)(E,{}),action:x});let f=a.hits,p=a.misses,P=a.time,h=a.disk_total,u=a.disk_to_free,d=f+p,m=d>0?f/d*100:0;return d===0?(0,s.jsx)(I,{title:"No cache activity",description:"The cache has not been used yet. Cached functions will appear here once they are executed.",icon:(0,s.jsx)(E,{}),action:x}):(0,s.jsx)("div",{className:"flex flex-col h-full overflow-auto",children:(0,s.jsxs)("div",{className:"flex flex-col gap-4 p-4 h-full",children:[(0,s.jsx)("div",{className:"flex items-center justify-end",children:(0,s.jsx)(z,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:o,disabled:i,children:(0,s.jsx)($,{className:M("h-4 w-4 text-muted-foreground hover:text-foreground",i&&"animate-[spin_0.5s]")})})}),(0,s.jsxs)("div",{className:"space-y-3",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Statistics"}),(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,s.jsx)(k,{label:"Time saved",value:ie(P,t),description:"Total execution time saved"}),(0,s.jsx)(k,{label:"Hit rate",value:d>0?`${T(m,t)}%`:"\u2014",description:`${T(f,t)} hits / ${T(d,t)} total`}),(0,s.jsx)(k,{label:"Cache hits",value:T(f,t),description:"Successful cache retrievals"}),(0,s.jsx)(k,{label:"Cache misses",value:T(p,t),description:"Cache not found"})]})]}),h>0&&(0,s.jsxs)("div",{className:"space-y-3 pt-2 border-t",children:[(0,s.jsx)("h3",{className:"text-sm font-semibold text-foreground",children:"Storage"}),(0,s.jsx)("div",{className:"grid grid-cols-1 gap-3",children:(0,s.jsx)(k,{label:"Disk usage",value:L(h,t),description:u>0?`${L(u,t)} can be freed`:"Cache storage on disk"})})]}),(0,s.jsx)("div",{className:"my-auto"}),(0,s.jsx)("div",{className:"pt-2 border-t",children:(0,s.jsx)(le,{title:"Purge cache?",description:"This will permanently delete all cached data. This action cannot be undone.",confirmText:"Purge",destructive:!0,onConfirm:y,children:(0,s.jsxs)(z,{variant:"outlineDestructive",size:"xs",disabled:n,className:"w-full",children:[n?(0,s.jsx)(_,{size:"small",className:"w-3 h-3 mr-2"}):(0,s.jsx)(ee,{className:"w-3 h-3 mr-2"}),"Purge Cache"]})})})]})})},k=w=>{let e=(0,oe.c)(10),{label:a,value:n,description:r}=w,t;e[0]===a?t=e[1]:(t=(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:a}),e[0]=a,e[1]=t);let l;e[2]===n?l=e[3]:(l=(0,s.jsx)("span",{className:"text-lg font-semibold",children:n}),e[2]=n,e[3]=l);let i;e[4]===r?i=e[5]:(i=r&&(0,s.jsx)("span",{className:"text-xs text-muted-foreground",children:r}),e[4]=r,e[5]=i);let o;return e[6]!==t||e[7]!==l||e[8]!==i?(o=(0,s.jsxs)("div",{className:"flex flex-col gap-1 p-3 rounded-lg border bg-card",children:[t,l,i]}),e[6]=t,e[7]=l,e[8]=i,e[9]=o):o=e[9],o},ne=ce;export{ne as default};
@@ -1 +1 @@
1
- import{g as a}from"./useEventListener-B_w3A283.js";import{n as l}from"./once-CGKw_kwj.js";function i(n){try{let e=window[n],r="__storage_test__",t="test";if(!e)return!1;e.setItem(r,t);let o=e.getItem(r);return e.removeItem(r),o===t}catch{return!1}}function s(){try{return"download"in document.createElement("a")}catch{return!1}}function d(){let n=window.parent!==window,e={isEmbedded:n,hasLocalStorage:i("localStorage"),hasSessionStorage:i("sessionStorage"),hasClipboard:navigator.clipboard!==void 0,hasDownloads:s(),hasFullscreen:document.fullscreenEnabled!==void 0&&document.fullscreenEnabled,hasMediaDevices:navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getUserMedia=="function"};return n&&(a.log("[iframe] Running in embedded context"),e.hasLocalStorage||a.warn("[iframe] localStorage unavailable - using fallback storage"),e.hasClipboard||a.warn("[iframe] Clipboard API unavailable"),e.hasDownloads||a.warn("[iframe] Download capability may be restricted"),e.hasFullscreen||a.warn("[iframe] Fullscreen API unavailable"),e.hasMediaDevices||a.warn("[iframe] Media devices API unavailable")),e}const c=l(()=>d());export{c as t};
1
+ import{g as a}from"./useEventListener-C0195JsF.js";import{n as l}from"./once-CGKw_kwj.js";function i(n){try{let e=window[n],r="__storage_test__",t="test";if(!e)return!1;e.setItem(r,t);let o=e.getItem(r);return e.removeItem(r),o===t}catch{return!1}}function s(){try{return"download"in document.createElement("a")}catch{return!1}}function d(){let n=window.parent!==window,e={isEmbedded:n,hasLocalStorage:i("localStorage"),hasSessionStorage:i("sessionStorage"),hasClipboard:navigator.clipboard!==void 0,hasDownloads:s(),hasFullscreen:document.fullscreenEnabled!==void 0&&document.fullscreenEnabled,hasMediaDevices:navigator.mediaDevices!==void 0&&typeof navigator.mediaDevices.getUserMedia=="function"};return n&&(a.log("[iframe] Running in embedded context"),e.hasLocalStorage||a.warn("[iframe] localStorage unavailable - using fallback storage"),e.hasClipboard||a.warn("[iframe] Clipboard API unavailable"),e.hasDownloads||a.warn("[iframe] Download capability may be restricted"),e.hasFullscreen||a.warn("[iframe] Fullscreen API unavailable"),e.hasMediaDevices||a.warn("[iframe] Media devices API unavailable")),e}const c=l(()=>d());export{c as t};