@lunora/studio 1.0.0-alpha.34 → 1.0.0-alpha.35

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 (81) hide show
  1. package/dist/index.d.ts +5 -1
  2. package/dist/index.js +6 -6
  3. package/dist/mount.js +1 -1
  4. package/dist/packem_chunks/ApiTab.js +1 -1
  5. package/dist/packem_chunks/AuditPanel.js +1 -1
  6. package/dist/packem_chunks/ExportImportPanel.js +1 -1
  7. package/dist/packem_chunks/FileBrowser.js +1 -1
  8. package/dist/packem_chunks/FunctionRunner.js +1 -1
  9. package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
  10. package/dist/packem_chunks/HealthPanel.js +1 -1
  11. package/dist/packem_chunks/InsightsPanel.js +1 -1
  12. package/dist/packem_chunks/LogsPanel.js +1 -1
  13. package/dist/packem_chunks/MailPanel.js +3 -91
  14. package/dist/packem_chunks/MetricsPanel.js +1 -1
  15. package/dist/packem_chunks/MigrationsPanel.js +1 -1
  16. package/dist/packem_chunks/PitrPanel.js +1 -1
  17. package/dist/packem_chunks/SchemaViewer.js +1 -1
  18. package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
  19. package/dist/packem_chunks/SettingsPanel.js +1 -1
  20. package/dist/packem_chunks/SqlEditorPanel.js +1 -1
  21. package/dist/packem_chunks/TableEditor.js +1 -1
  22. package/dist/packem_chunks/containers-panel.js +1 -1
  23. package/dist/packem_chunks/dashboards-panel.js +1 -1
  24. package/dist/packem_chunks/fanout-panel.js +1 -1
  25. package/dist/packem_chunks/flags-panel.js +1 -1
  26. package/dist/packem_chunks/kv-browser.js +1 -1
  27. package/dist/packem_chunks/payments-panel.js +1 -1
  28. package/dist/packem_chunks/permissions-panel.js +1 -1
  29. package/dist/packem_chunks/queues-panel.js +975 -71
  30. package/dist/packem_chunks/rls-panel.js +1 -1
  31. package/dist/packem_chunks/storage-rules-panel.js +1 -1
  32. package/dist/packem_chunks/subscriptions-panel.js +1 -1
  33. package/dist/packem_chunks/workflows-panel.js +1 -1
  34. package/dist/packem_shared/{ADMIN_FUNCTIONS-CdaxLGkE.js → ADMIN_FUNCTIONS-BHHJi3Gb.js} +4 -0
  35. package/dist/packem_shared/{ApiDocsPanel-Cu6mD4u7.js → ApiDocsPanel-D4CJf2ad.js} +1 -1
  36. package/dist/packem_shared/{DataBrowser-DSNK1tPg.js → DataBrowser-BeVNxSVm.js} +1 -1
  37. package/dist/packem_shared/{HomePanel-DQk3P8xX.js → HomePanel-D9MQk8I7.js} +2 -2
  38. package/dist/packem_shared/{Studio-Biu37c3O.js → Studio-C48P1K5W.js} +2 -2
  39. package/dist/packem_shared/{StudioApp-D6a2ZmXS.js → StudioApp-Cqh-SYm2.js} +1 -1
  40. package/dist/packem_shared/{home-panel-Bo-Mgrkn.js → home-panel-CoGxi-oj.js} +1 -1
  41. package/dist/packem_shared/scroll-area-DLhcy-ml.js +93 -0
  42. package/dist/packem_shared/{studio-C4sgu0F7.js → studio-CPHA_-3I.js} +1 -1
  43. package/dist/standalone/{chunk-YM6BBZDN.js → chunk-46K3NKPA.js} +1 -1
  44. package/dist/standalone/{chunk-DFP2DADO.js → chunk-474C2O7W.js} +1 -1
  45. package/dist/standalone/{chunk-JIDZFLTB.js → chunk-6UGM5IHN.js} +1 -1
  46. package/dist/standalone/{chunk-T5HRXUSY.js → chunk-6WRZP62V.js} +1 -1
  47. package/dist/standalone/{chunk-EVPLBWUT.js → chunk-7WNJ4Q7Z.js} +1 -1
  48. package/dist/standalone/{chunk-PA3LN4XJ.js → chunk-BI35RXKQ.js} +1 -1
  49. package/dist/standalone/chunk-BOXSWNXZ.js +1 -0
  50. package/dist/standalone/{chunk-K4ZDRTQM.js → chunk-DVC6YWVP.js} +1 -1
  51. package/dist/standalone/{chunk-G2ICR3DL.js → chunk-DWTBY343.js} +1 -1
  52. package/dist/standalone/{chunk-KTK3V4DC.js → chunk-EIQW6ACH.js} +1 -1
  53. package/dist/standalone/chunk-EUIHTPKI.js +1 -0
  54. package/dist/standalone/{chunk-E6WUCLSI.js → chunk-ILCTSAOB.js} +1 -1
  55. package/dist/standalone/{chunk-GZDWDDXN.js → chunk-IODYGARQ.js} +1 -1
  56. package/dist/standalone/{chunk-XIGIWZLO.js → chunk-JE2YOAB7.js} +1 -1
  57. package/dist/standalone/{chunk-SGDQIWAR.js → chunk-JFSZIUZT.js} +1 -1
  58. package/dist/standalone/{chunk-QHIIRFG7.js → chunk-LD2R263D.js} +1 -1
  59. package/dist/standalone/{chunk-ISJAJWYI.js → chunk-M55U7NHO.js} +1 -1
  60. package/dist/standalone/{chunk-VEZO7G5Q.js → chunk-MPTM7ZU3.js} +1 -1
  61. package/dist/standalone/{chunk-5PQMXK24.js → chunk-NJFMWO6P.js} +1 -1
  62. package/dist/standalone/{chunk-BET2625I.js → chunk-OCHNCAXJ.js} +1 -1
  63. package/dist/standalone/{chunk-7M3F6U4L.js → chunk-PACH5AHG.js} +1 -1
  64. package/dist/standalone/chunk-QLM6FYZW.js +2 -0
  65. package/dist/standalone/{chunk-X72PYOEW.js → chunk-RRAFQ5G2.js} +1 -1
  66. package/dist/standalone/{chunk-SYEIXTEU.js → chunk-SLKF2L74.js} +1 -1
  67. package/dist/standalone/{chunk-DCECRP45.js → chunk-TO4JQX7W.js} +1 -1
  68. package/dist/standalone/{chunk-TM7CMA7X.js → chunk-VTGBPW24.js} +1 -1
  69. package/dist/standalone/{chunk-MFPTVCJ6.js → chunk-X6F22DBL.js} +1 -1
  70. package/dist/standalone/{chunk-E7WLF6IU.js → chunk-XGMIDFUK.js} +1 -1
  71. package/dist/standalone/{chunk-VYMCCC6O.js → chunk-XZE2RNDA.js} +1 -1
  72. package/dist/standalone/chunk-YAECF5LW.js +1 -0
  73. package/dist/standalone/{chunk-GJ6PGSES.js → chunk-YEVCU7TB.js} +1 -1
  74. package/dist/standalone/{chunk-TY7L2V4E.js → chunk-YV43BOP7.js} +1 -1
  75. package/dist/standalone/{chunk-4MLAVZP4.js → chunk-ZU4DZ6NK.js} +1 -1
  76. package/dist/standalone/studio.js +1 -1
  77. package/dist/styles.css +1 -1
  78. package/package.json +2 -2
  79. package/dist/standalone/chunk-AQGOX5DK.js +0 -1
  80. package/dist/standalone/chunk-GVRM4U6W.js +0 -2
  81. package/dist/standalone/chunk-UDSVXA42.js +0 -1
@@ -1,2 +0,0 @@
1
- "use client";import{a as Ue,b as Vt,c as Ce,f as ut}from"./chunk-DWDILV2E.js";import{a as ft}from"./chunk-QAFAJBAW.js";import{a as Lt}from"./chunk-J6J54MBP.js";import{a as Ht,b as $e}from"./chunk-5OIBXYZM.js";import{a as zt}from"./chunk-AJIUI7DD.js";import"./chunk-XNJNSCLM.js";import{C as ye,R as Xt,e as Tt,i as Mt,p as De,q as Yt}from"./chunk-3CJW6NWG.js";import{c as Ne}from"./chunk-UK64ZSUW.js";import{a as ve,c as xe}from"./chunk-O3NAGRTR.js";import"./chunk-HV7G6DFP.js";import{a as Fe}from"./chunk-AQGOX5DK.js";import{a as Pt}from"./chunk-TAD43CG5.js";import{b as It}from"./chunk-DVKPRFIJ.js";import{b as Ot}from"./chunk-ZPP2KOR4.js";import{j as Z}from"./chunk-CKSHCYGC.js";import{f as Ct}from"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import{a as lt}from"./chunk-3OA7PECS.js";import{d as At,e as st,f as at,g as it,k as ct,l as Wt,n as dt}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a as r,d as tr,e as L,f as ee,g as rr,h as or,j as ke}from"./chunk-RRCPZMC2.js";var se=L(ee(),1);var Gt=L(rr(),1);var fe={};tr(fe,{Content:()=>xt,Corner:()=>St,Root:()=>ht,Scrollbar:()=>vt,Thumb:()=>gt,Viewport:()=>pt});var d=L(ee(),1);var je=L(ee(),1);var Be=je.createContext(void 0);Be.displayName="ScrollAreaRootContext";function te(){let e=je.useContext(Be);if(e===void 0)throw new Error("Base UI: ScrollAreaRootContext is missing. ScrollArea parts must be placed within <ScrollArea.Root>.");return e}r(te,"useScrollAreaRootContext");var Ae=(function(e){return e.scrollAreaCornerHeight="--scroll-area-corner-height",e.scrollAreaCornerWidth="--scroll-area-corner-width",e})({});function V(e,t,n){if(!e)return 0;let N=getComputedStyle(e),A=n==="x"?"Inline":"Block";return n==="x"&&t==="margin"?parseFloat(N[`${t}InlineStart`])*2:parseFloat(N[`${t}${A}Start`])+parseFloat(N[`${t}${A}End`])}r(V,"getOffset");var _t=(function(e){return e.orientation="data-orientation",e.hovering="data-hovering",e.scrolling="data-scrolling",e.hasOverflowX="data-has-overflow-x",e.hasOverflowY="data-has-overflow-y",e.overflowXStart="data-overflow-x-start",e.overflowXEnd="data-overflow-x-end",e.overflowYStart="data-overflow-y-start",e.overflowYEnd="data-overflow-y-end",e})({});var ge=(function(e){return e.scrolling="data-scrolling",e.hasOverflowX="data-has-overflow-x",e.hasOverflowY="data-has-overflow-y",e.overflowXStart="data-overflow-x-start",e.overflowXEnd="data-overflow-x-end",e.overflowYStart="data-overflow-y-start",e.overflowYEnd="data-overflow-y-end",e})({});var ce={hasOverflowX:r(e=>e?{[ge.hasOverflowX]:""}:null,"hasOverflowX"),hasOverflowY:r(e=>e?{[ge.hasOverflowY]:""}:null,"hasOverflowY"),overflowXStart:r(e=>e?{[ge.overflowXStart]:""}:null,"overflowXStart"),overflowXEnd:r(e=>e?{[ge.overflowXEnd]:""}:null,"overflowXEnd"),overflowYStart:r(e=>e?{[ge.overflowYStart]:""}:null,"overflowYStart"),overflowYEnd:r(e=>e?{[ge.overflowYEnd]:""}:null,"overflowYEnd"),cornerHidden:r(()=>null,"cornerHidden")};var Dt=L(lt(),1);var nr={x:0,y:0},kt={width:0,height:0},lr={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},sr={x:!0,y:!0,corner:!0},ht=d.forwardRef(r(function(t,n){let{render:N,className:A,overflowEdgeThreshold:f,style:E,...c}=t,{xStart:w,xEnd:S,yStart:T,yEnd:D}=ar(f),C=Tt(),M=ye(),b=ye(),{nonce:W,disableStyleElements:u}=Vt(),[y,g]=d.useState(!1),[$,_]=d.useState(!1),[I,F]=d.useState(!1),[U,k]=d.useState(!1),[re,G]=d.useState(!1),[X,p]=d.useState(kt),[H,ue]=d.useState(kt),[z,l]=d.useState(lr),[s,oe]=d.useState(sr),Q=d.useRef(null),x=d.useRef(null),O=d.useRef(null),a=d.useRef(null),m=d.useRef(null),h=d.useRef(null),R=d.useRef(null),Y=d.useRef(!1),B=d.useRef(0),q=d.useRef(0),P=d.useRef(0),ae=d.useRef(0),j=d.useRef("vertical"),Se=d.useRef(nr),be=xe(i=>{let ne=i.x-Se.current.x,Xe=i.y-Se.current.y;Se.current=i,Xe!==0&&(F(!0),M.start(500,()=>{F(!1)})),ne!==0&&(_(!0),b.start(500,()=>{_(!1)}))}),ie=xe(i=>{i.button===0&&(Y.current=!0,B.current=i.clientY,q.current=i.clientX,j.current=i.currentTarget.getAttribute(_t.orientation),x.current&&(P.current=x.current.scrollTop,ae.current=x.current.scrollLeft),m.current&&j.current==="vertical"&&m.current.setPointerCapture(i.pointerId),h.current&&j.current==="horizontal"&&h.current.setPointerCapture(i.pointerId))}),Le=xe(i=>{if(!Y.current)return;let ne=i.clientY-B.current,Xe=i.clientX-q.current;if(x.current){let He=x.current.scrollHeight,Ve=x.current.clientHeight,et=x.current.scrollWidth,tt=x.current.clientWidth;if(m.current&&O.current&&j.current==="vertical"){let me=V(O.current,"padding","y"),he=V(m.current,"margin","y"),Ee=m.current.offsetHeight,Pe=O.current.offsetHeight-Ee-me-he,We=ne/Pe;x.current.scrollTop=P.current+We*(He-Ve),i.preventDefault(),F(!0),M.start(500,()=>{F(!1)})}if(h.current&&a.current&&j.current==="horizontal"){let me=V(a.current,"padding","x"),he=V(h.current,"margin","x"),Ee=h.current.offsetWidth,Pe=a.current.offsetWidth-Ee-me-he,We=Xe/Pe;x.current.scrollLeft=ae.current+We*(et-tt),i.preventDefault(),_(!0),b.start(500,()=>{_(!1)})}}}),we=xe(i=>{Y.current=!1,m.current&&j.current==="vertical"&&m.current.hasPointerCapture(i.pointerId)&&m.current.releasePointerCapture(i.pointerId),h.current&&j.current==="horizontal"&&h.current.hasPointerCapture(i.pointerId)&&h.current.releasePointerCapture(i.pointerId)});function K(i){k(i.pointerType==="touch")}r(K,"handleTouchModalityChange");function J(i){if(K(i),i.pointerType!=="touch"){let ne=De(Q.current,i.target);g(ne)}}r(J,"handlePointerEnterOrMove");let Me=d.useMemo(()=>({scrolling:$||I,hasOverflowX:!s.x,hasOverflowY:!s.y,overflowXStart:z.xStart,overflowXEnd:z.xEnd,overflowYStart:z.yStart,overflowYEnd:z.yEnd,cornerHidden:s.corner}),[$,I,s.x,s.y,s.corner,z]),Je={role:"presentation",onPointerEnter:J,onPointerMove:J,onPointerDown:K,onPointerLeave(){g(!1)},style:{position:"relative",[Ae.scrollAreaCornerHeight]:`${X.height}px`,[Ae.scrollAreaCornerWidth]:`${X.width}px`}},Re=Z("div",t,{state:Me,ref:[n,Q],props:[Je,c],stateAttributesMapping:ce}),Ye=d.useMemo(()=>({handlePointerDown:ie,handlePointerMove:Le,handlePointerUp:we,handleScroll:be,cornerSize:X,setCornerSize:p,thumbSize:H,setThumbSize:ue,hasMeasuredScrollbar:re,setHasMeasuredScrollbar:G,touchModality:U,cornerRef:R,scrollingX:$,setScrollingX:_,scrollingY:I,setScrollingY:F,hovering:y,setHovering:g,viewportRef:x,rootRef:Q,scrollbarYRef:O,scrollbarXRef:a,thumbYRef:m,thumbXRef:h,rootId:C,hiddenState:s,setHiddenState:oe,overflowEdges:z,setOverflowEdges:l,viewportState:Me,overflowEdgeThreshold:{xStart:w,xEnd:S,yStart:T,yEnd:D}}),[ie,Le,we,be,X,H,re,U,$,_,I,F,y,g,C,s,z,Me,w,S,T,D]);return(0,Dt.jsxs)(Be.Provider,{value:Ye,children:[!u&&Ue.getElement(W),Re]})},"ScrollAreaRoot"));ht.displayName="ScrollAreaRoot";function ar(e){if(typeof e=="number"){let t=Math.max(0,e);return{xStart:t,xEnd:t,yStart:t,yEnd:t}}return{xStart:Math.max(0,e?.xStart||0),xEnd:Math.max(0,e?.xEnd||0),yStart:Math.max(0,e?.yStart||0),yEnd:Math.max(0,e?.yEnd||0)}}r(ar,"normalizeOverflowEdgeThreshold");var de=L(ee(),1);var qe=L(ee(),1);var Ke=qe.createContext(void 0);Ke.displayName="ScrollAreaViewportContext";function $t(){let e=qe.useContext(Ke);if(e===void 0)throw new Error("Base UI: ScrollAreaViewportContext missing. ScrollAreaViewport parts must be placed within <ScrollArea.Viewport>.");return e}r($t,"useScrollAreaViewportContext");var le=(function(e){return e.scrollAreaOverflowXStart="--scroll-area-overflow-x-start",e.scrollAreaOverflowXEnd="--scroll-area-overflow-x-end",e.scrollAreaOverflowYStart="--scroll-area-overflow-y-start",e.scrollAreaOverflowYEnd="--scroll-area-overflow-y-end",e})({});var Ut=L(lt(),1);var Ft=!1;function cr(){Ft||Mt.engine.webkit||(typeof CSS<"u"&&"registerProperty"in CSS&&[le.scrollAreaOverflowXStart,le.scrollAreaOverflowXEnd,le.scrollAreaOverflowYStart,le.scrollAreaOverflowYEnd].forEach(e=>{try{CSS.registerProperty({name:e,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),Ft=!0)}r(cr,"removeCSSVariableInheritance");var pt=de.forwardRef(r(function(t,n){let{render:N,className:A,style:f,...E}=t,{viewportRef:c,scrollbarYRef:w,scrollbarXRef:S,thumbYRef:T,thumbXRef:D,cornerRef:C,cornerSize:M,setCornerSize:b,setThumbSize:W,rootId:u,setHiddenState:y,hiddenState:g,setHasMeasuredScrollbar:$,handleScroll:_,setHovering:I,setOverflowEdges:F,overflowEdges:U,overflowEdgeThreshold:k,scrollingX:re,scrollingY:G}=te(),X=$e(),p=de.useRef(!0),H=de.useRef([NaN,NaN,NaN,NaN]),ue=ye(),z=ye(),l=xe(()=>{let a=c.current,m=w.current,h=S.current,R=T.current,Y=D.current,B=C.current;if(!a)return;let q=a.scrollHeight,P=a.scrollWidth,ae=a.clientHeight,j=a.clientWidth,Se=a.scrollTop,be=a.scrollLeft,ie=H.current,Le=Number.isNaN(ie[0]);if(ie[0]=ae,ie[1]=q,ie[2]=j,ie[3]=P,Le&&$(!0),q===0||P===0)return;let we=dr(a),K=we.y,J=we.x,Me=j/P,Je=ae/q,Re=Math.max(0,P-j),Ye=Math.max(0,q-ae),i=0,ne=0;if(!J){let v=0;X==="rtl"?v=Ce(-be,0,Re):v=Ce(be,0,Re),i=ut(v,Re),ne=Re-i}let Xe=K?0:Ce(Se,0,Ye),He=K?0:ut(Xe,Ye),Ve=K?0:Ye-He,et=J?0:j,tt=K?0:ae,me=0,he=0;!J&&!K&&(me=m?.offsetWidth||0,he=h?.offsetHeight||0);let Ee=M.width===0&&M.height===0,Pe=Ee?me:0,We=Ee?he:0,bt=V(h,"padding","x"),wt=V(m,"padding","y"),Rt=V(Y,"margin","x"),Et=V(R,"margin","y"),yt=et-bt-Rt,Nt=tt-wt-Et,Qt=h?Math.min(h.offsetWidth-Pe,yt):yt,Jt=m?Math.min(m.offsetHeight-We,Nt):Nt,rt=Math.max(16,Qt*Me),ot=Math.max(16,Jt*Je);if(W(v=>v.height===ot&&v.width===rt?v:{width:rt,height:ot}),m&&R){let v=m.offsetHeight-ot-wt-Et,pe=q-ae,_e=pe===0?0:Se/pe,nt=Math.min(v,Math.max(0,_e*v));R.style.transform=`translate3d(0,${nt}px,0)`}if(h&&Y){let v=h.offsetWidth-rt-bt-Rt,pe=P-j,_e=pe===0?0:be/pe,nt=X==="rtl"?Ce(_e*v,-v,0):Ce(_e*v,0,v);Y.style.transform=`translate3d(${nt}px,0,0)`}let er=[[le.scrollAreaOverflowXStart,i],[le.scrollAreaOverflowXEnd,ne],[le.scrollAreaOverflowYStart,He],[le.scrollAreaOverflowYEnd,Ve]];for(let[v,pe]of er)a.style.setProperty(v,`${pe}px`);B&&(J||K?b({width:0,height:0}):!J&&!K&&b({width:me,height:he})),y(v=>fr(v,we));let Ie={xStart:!J&&i>k.xStart,xEnd:!J&&ne>k.xEnd,yStart:!K&&He>k.yStart,yEnd:!K&&Ve>k.yEnd};F(v=>v.xStart===Ie.xStart&&v.xEnd===Ie.xEnd&&v.yStart===Ie.yStart&&v.yEnd===Ie.yEnd?v:Ie)});ve(()=>{c.current&&cr()},[c]),ve(()=>{queueMicrotask(l)},[l,g,X,k.xStart,k.xEnd,k.yStart,k.yEnd]),ve(()=>{c.current?.matches(":hover")&&I(!0)},[c,I]),ve(()=>{let a=c.current;if(typeof ResizeObserver>"u"||!a)return;let m=!1,h=new ResizeObserver(()=>{if(!m){m=!0;let R=H.current;if(R[0]===a.clientHeight&&R[1]===a.scrollHeight&&R[2]===a.clientWidth&&R[3]===a.scrollWidth)return}l()});return h.observe(a),z.start(0,()=>{let R=a.getAnimations({subtree:!0});R.length!==0&&Promise.allSettled(R.map(Y=>Y.finished)).then(l).catch(()=>{})}),()=>{h.disconnect(),z.clear()}},[l,c,z]);function s(){p.current=!1}r(s,"handleUserInteraction");let oe={role:"presentation",...u&&{"data-id":`${u}-viewport`},tabIndex:g.x&&g.y?-1:0,className:Ue.className,style:{overflow:"scroll"},onScroll(){c.current&&(l(),p.current||_({x:c.current.scrollLeft,y:c.current.scrollTop}),ue.start(100,()=>{p.current=!0}))},onWheel:s,onTouchMove:s,onPointerMove:s,onPointerEnter:s,onKeyDown:s},Q=de.useMemo(()=>({scrolling:re||G,hasOverflowX:!g.x,hasOverflowY:!g.y,overflowXStart:U.xStart,overflowXEnd:U.xEnd,overflowYStart:U.yStart,overflowYEnd:U.yEnd,cornerHidden:g.corner}),[re,G,g.x,g.y,g.corner,U]),x=Z("div",t,{ref:[n,c],state:Q,props:[oe,E],stateAttributesMapping:ce}),O=de.useMemo(()=>({computeThumbPosition:l}),[l]);return(0,Ut.jsx)(Ke.Provider,{value:O,children:x})},"ScrollAreaViewport"));pt.displayName="ScrollAreaViewport";function dr(e){let t=e.clientHeight>=e.scrollHeight,n=e.clientWidth>=e.scrollWidth;return{y:t,x:n,corner:t||n}}r(dr,"getHiddenState");function fr(e,t){return e.y===t.y&&e.x===t.x&&e.corner===t.corner?e:t}r(fr,"mergeHiddenState");var Te=L(ee(),1);var Ze=L(ee(),1);var Ge=Ze.createContext(void 0);Ge.displayName="ScrollAreaScrollbarContext";function jt(){let e=Ze.useContext(Ge);if(e===void 0)throw new Error("Base UI: ScrollAreaScrollbarContext is missing. ScrollAreaScrollbar parts must be placed within <ScrollArea.Scrollbar>.");return e}r(jt,"useScrollAreaScrollbarContext");var Oe=(function(e){return e.scrollAreaThumbHeight="--scroll-area-thumb-height",e.scrollAreaThumbWidth="--scroll-area-thumb-width",e})({});var Bt=L(lt(),1);var vt=Te.forwardRef(r(function(t,n){let{render:N,className:A,orientation:f="vertical",keepMounted:E=!1,style:c,...w}=t,{hovering:S,scrollingX:T,scrollingY:D,hiddenState:C,overflowEdges:M,scrollbarYRef:b,scrollbarXRef:W,viewportRef:u,thumbYRef:y,thumbXRef:g,handlePointerDown:$,handlePointerUp:_,handleScroll:I,rootId:F,thumbSize:U,hasMeasuredScrollbar:k}=te(),re={hovering:S,scrolling:{horizontal:T,vertical:D}[f],orientation:f,hasOverflowX:!C.x,hasOverflowY:!C.y,overflowXStart:M.xStart,overflowXEnd:M.xEnd,overflowYStart:M.yStart,overflowYEnd:M.yEnd,cornerHidden:C.corner},G=$e(),X=!k&&!E,p=f==="vertical"?C.y:C.x,H=E||!p;Te.useEffect(()=>{if(!H)return;let s=u.current,oe=f==="vertical"?b.current:W.current;if(!oe)return;function Q(x){if(!s||!oe||x.ctrlKey)return;let O=f==="horizontal",a=O?"scrollLeft":"scrollTop",m=O?x.deltaX:x.deltaY;if(m===0)return;let h=O?s.scrollWidth-s.clientWidth:s.scrollHeight-s.clientHeight,R=O&&G==="rtl"?-h:0,Y=O&&G==="rtl"?0:h,B=s[a];B<=R&&m<0||B>=Y&&m>0||(x.preventDefault(),s[a]=Math.min(Y,Math.max(R,B+m)),I({x:s.scrollLeft,y:s.scrollTop}))}return r(Q,"handleWheel"),Ht(oe,"wheel",Q,{passive:!1})},[G,I,f,W,b,H,u]);let ue={...F&&{"data-id":`${F}-scrollbar`},onPointerDown(s){if(s.button!==0)return;let oe=Yt(s.nativeEvent),Q=f==="vertical"?y.current:g.current;if(!(Q&&De(Q,oe))&&u.current){if(y.current&&b.current&&f==="vertical"){let x=V(y.current,"margin","y"),O=V(b.current,"padding","y"),a=y.current.offsetHeight,m=b.current.getBoundingClientRect(),h=s.clientY-m.top-a/2-O+x/2,R=u.current.scrollHeight,Y=u.current.clientHeight,B=b.current.offsetHeight-a-O-x,P=h/B*(R-Y);u.current.scrollTop=P}if(g.current&&W.current&&f==="horizontal"){let x=V(g.current,"margin","x"),O=V(W.current,"padding","x"),a=g.current.offsetWidth,m=W.current.getBoundingClientRect(),h=s.clientX-m.left-a/2-O+x/2,R=u.current.scrollWidth,Y=u.current.clientWidth,B=W.current.offsetWidth-a-O-x,q=h/B,P;G==="rtl"?(P=(1-q)*(R-Y),u.current.scrollLeft<=0&&(P=-P)):P=q*(R-Y),u.current.scrollLeft=P}I({x:u.current.scrollLeft,y:u.current.scrollTop}),$(s)}},onPointerUp:_,onPointerCancel:_,style:{position:"absolute",touchAction:"none",WebkitUserSelect:"none",userSelect:"none",visibility:X?"hidden":void 0,...f==="vertical"&&{top:0,bottom:`var(${Ae.scrollAreaCornerHeight})`,insetInlineEnd:0,[Oe.scrollAreaThumbHeight]:`${U.height}px`},...f==="horizontal"&&{insetInlineStart:0,insetInlineEnd:`var(${Ae.scrollAreaCornerWidth})`,bottom:0,[Oe.scrollAreaThumbWidth]:`${U.width}px`}}},z=Z("div",t,{ref:[n,f==="vertical"?b:W],state:re,props:[ue,w],stateAttributesMapping:ce}),l=Te.useMemo(()=>({orientation:f}),[f]);return H?(0,Bt.jsx)(Ge.Provider,{value:l,children:z}):null},"ScrollAreaScrollbar"));vt.displayName="ScrollAreaScrollbar";var ze=L(ee(),1);var xt=ze.forwardRef(r(function(t,n){let{render:N,className:A,style:f,...E}=t,{computeThumbPosition:c}=$t(),{hasMeasuredScrollbar:w,viewportState:S}=te(),T=ze.useRef(null),D=ze.useRef(w);return ve(()=>{if(typeof ResizeObserver>"u")return;let M=!1,b=new ResizeObserver(()=>{!M&&(M=!0,!D.current)||c()});return T.current&&b.observe(T.current),()=>{b.disconnect()}},[c]),Z("div",t,{ref:[n,T],state:S,stateAttributesMapping:ce,props:[{role:"presentation",style:{minWidth:"fit-content"}},E]})},"ScrollAreaContent"));xt.displayName="ScrollAreaContent";var qt=L(ee(),1);var gt=qt.forwardRef(r(function(t,n){let{render:N,className:A,style:f,...E}=t,{thumbYRef:c,thumbXRef:w,handlePointerDown:S,handlePointerMove:T,handlePointerUp:D,setScrollingX:C,setScrollingY:M,scrollingX:b,scrollingY:W,hasMeasuredScrollbar:u}=te(),{orientation:y}=jt(),g={scrolling:y==="horizontal"?b:W,orientation:y};function $(I){y==="vertical"&&M(!1),y==="horizontal"&&C(!1),D(I)}return r($,"endDrag"),Z("div",t,{ref:[n,y==="vertical"?c:w],state:g,props:[{onPointerDown:S,onPointerMove:T,onPointerUp:$,onPointerCancel:$,style:{visibility:u?void 0:"hidden",...y==="vertical"&&{height:`var(${Oe.scrollAreaThumbHeight})`},...y==="horizontal"&&{width:`var(${Oe.scrollAreaThumbWidth})`}}},E]})},"ScrollAreaThumb"));gt.displayName="ScrollAreaThumb";var Kt=L(ee(),1);var St=Kt.forwardRef(r(function(t,n){let{render:N,className:A,style:f,...E}=t,{cornerRef:c,cornerSize:w,hiddenState:S}=te(),T=Z("div",t,{ref:[n,c],props:[{style:{position:"absolute",bottom:0,insetInlineEnd:0,width:w.width,height:w.height}},E]});return S.corner?null:T},"ScrollAreaCorner"));St.displayName="ScrollAreaCorner";var o=L(or(),1);function ur({className:e,orientation:t="horizontal",...n}){return(0,o.jsxDEV)(ft,{"data-slot":"separator",orientation:t,className:ke("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",e),...n},void 0,!1)}r(ur,"Separator");function mr(e){let t=(0,Gt.c)(14),n,N,A;t[0]!==e?({className:N,children:n,...A}=e,t[0]=e,t[1]=n,t[2]=N,t[3]=A):(n=t[1],N=t[2],A=t[3]);let f;t[4]!==N?(f=ke("relative",N),t[4]=N,t[5]=f):f=t[5];let E;t[6]!==n?(E=(0,o.jsxDEV)(fe.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",children:n},void 0,!1),t[6]=n,t[7]=E):E=t[7];let c,w;t[8]===Symbol.for("react.memo_cache_sentinel")?(c=(0,o.jsxDEV)(hr,{},void 0,!1),w=(0,o.jsxDEV)(fe.Corner,{},void 0,!1),t[8]=c,t[9]=w):(c=t[8],w=t[9]);let S;return t[10]!==A||t[11]!==f||t[12]!==E?(S=(0,o.jsxDEV)(fe.Root,{"data-slot":"scroll-area",className:f,...A,children:[E,c,w]},void 0,!0),t[10]=A,t[11]=f,t[12]=E,t[13]=S):S=t[13],S}r(mr,"ScrollArea");function hr({className:e,orientation:t="vertical",...n}){return(0,o.jsxDEV)(fe.Scrollbar,{"data-slot":"scroll-area-scrollbar","data-orientation":t,orientation:t,className:ke("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-s data-vertical:border-s-transparent",e),...n,children:(0,o.jsxDEV)(fe.Thumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-md bg-border"},void 0,!1)},void 0,!1)}r(hr,"ScrollBar");var pr=st(Fe.clearCapturedMail),vr=st(Fe.sendTestMail),xr=/https?:\/\/[^\s"'<>)]+/i,Zt=r(e=>e===void 0?void 0:xr.exec(e)?.[0],"firstLink"),gr=r(e=>{if(e!==void 0)return Zt(e.html)??Zt(e.text)},"selectedLink"),Sr=`<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src data:; style-src 'unsafe-inline'; font-src data:">`,br=r(e=>`${Sr}${e}`,"withPreviewCsp"),Qe=r(e=>e===void 0?"":Array.isArray(e)?e.join(", "):e,"recipientText"),mn=r(({limit:e=100})=>{let t=Ct(),n=At(),{data:N,error:A,errorSource:f,isLoading:E,refetch:c}=It(Fe.getCapturedMail,{limit:e}),[w,S]=(0,se.useState)(null),[T,D]=(0,se.useState)(null),[C,M]=(0,se.useState)("html"),[b,W]=(0,se.useState)(""),u=(0,se.useMemo)(()=>N?.entries??[],[N]),y=A??w,g=A===null?w:f,$=r(async()=>{S(null);try{await t.query(pr,{},at("")),D(null),c()}catch(l){S(it(l))}},"clearInbox"),_=r(async()=>{S(null);try{await t.query(vr,{},at("")),c()}catch(l){S(it(l))}},"sendTest");Lt(()=>{c()},!0);let I=r(()=>{ct($())},"onClear"),F=r(()=>{ct(_())},"onSendTest"),U=r(l=>{W(l.currentTarget.value)},"onFilterChange"),k=r(l=>{let{id:s}=l.currentTarget.dataset;s!==void 0&&D(s)},"onSelectMessage"),re=r(l=>{let s=l.currentTarget.dataset.tab;(s==="headers"||s==="html"||s==="text")&&M(s)},"onSelectTab"),G=r(l=>n(l==="html"?"HTML":l==="text"?"Plain text":"Headers"),"tabTitle"),X=(0,se.useMemo)(()=>{let l=b.trim().toLowerCase();return l===""?u:u.filter(s=>`${s.subject} ${Qe(s.to)}`.toLowerCase().includes(l))},[u,b]),p=(0,se.useMemo)(()=>{if(X.length!==0)return X.find(l=>l.id===T)??X[0]},[X,T]),H=gr(p),ue=r(()=>{H!==void 0&&Wt(H)},"onCopyLink"),z=r(()=>{H!==void 0&&"window"in globalThis&&globalThis.window.open(H,"_blank","noopener")},"onOpenLink");return(0,o.jsxDEV)("div",{className:"flex flex-col gap-4","data-testid":"mail-panel",children:[(0,o.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,o.jsxDEV)(Ne,{"data-testid":"mail-send-test",onClick:F,size:"sm",type:"button",variant:"outline",children:n("Send test")},void 0,!1),(0,o.jsxDEV)(Ne,{"data-testid":"mail-clear",disabled:u.length===0,onClick:I,size:"sm",type:"button",variant:"outline",children:n("Clear inbox")},void 0,!1),u.length>0&&(0,o.jsxDEV)(Ot,{className:"ml-auto","data-testid":"mail-count",variant:"secondary",children:n("{count} messages",{count:u.length})},void 0,!1)]},void 0,!0),y!==null&&(0,o.jsxDEV)(zt,{error:g,testId:"mail-error"},void 0,!1),y===null&&!E&&u.length===0&&(0,o.jsxDEV)(Pt,{description:n("Email your app sends in dev is captured here \u2014 nothing is delivered."),icon:(0,o.jsxDEV)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,o.jsxDEV)("path",{d:"M4 5h16v14H4z"},void 0,!1),(0,o.jsxDEV)("path",{d:"m4 6 8 6 8-6"},void 0,!1)]},void 0,!0),testId:"mail-empty",title:n("No captured email.")},void 0,!1),u.length>0&&(0,o.jsxDEV)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-[minmax(0,22rem)_1fr]","data-testid":"mail-reader",children:[(0,o.jsxDEV)("div",{className:"flex flex-col gap-2",children:[(0,o.jsxDEV)(Xt,{"aria-label":n("Search messages"),"data-testid":"mail-search",onChange:U,placeholder:n("Filter messages"),type:"search",value:b},void 0,!1),(0,o.jsxDEV)(mr,{className:"max-h-[32rem] rounded-xl border border-border bg-card shadow-xs","data-testid":"mail-list",children:(0,o.jsxDEV)("ul",{className:"divide-y",children:X.map(l=>{let s=l.id===p?.id;return(0,o.jsxDEV)("li",{children:(0,o.jsxDEV)("button",{className:`flex w-full flex-col items-start gap-0.5 px-3 py-2 text-left text-sm hover:bg-muted/60 ${s?"bg-muted":""}`,"data-active":s,"data-id":l.id,"data-testid":"mail-list-item",onClick:k,type:"button",children:[(0,o.jsxDEV)("span",{className:"w-full truncate font-medium",children:l.subject||n("(no subject)")},void 0,!1),(0,o.jsxDEV)("span",{className:"w-full truncate text-xs text-muted-foreground",children:Qe(l.to)},void 0,!1),(0,o.jsxDEV)("span",{className:"text-xs text-muted-foreground tabular-nums",children:dt(l.capturedAt,"\u2014")},void 0,!1)]},void 0,!0)},l.id,!1)})},void 0,!1)},void 0,!1)]},void 0,!0),p!==void 0&&(0,o.jsxDEV)("div",{className:"flex min-w-0 flex-col gap-3 rounded-xl border border-border bg-card p-4 shadow-xs","data-testid":"mail-detail",children:[(0,o.jsxDEV)("div",{className:"flex flex-col gap-1",children:[(0,o.jsxDEV)("h2",{className:"truncate text-base font-semibold","data-testid":"mail-subject",children:p.subject||n("(no subject)")},void 0,!1),(0,o.jsxDEV)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-0.5 text-xs text-muted-foreground",children:[(0,o.jsxDEV)("dt",{children:n("From")},void 0,!1),(0,o.jsxDEV)("dd",{className:"truncate font-mono",children:p.from??"\u2014"},void 0,!1),(0,o.jsxDEV)("dt",{children:n("To")},void 0,!1),(0,o.jsxDEV)("dd",{className:"truncate font-mono",children:Qe(p.to)},void 0,!1),p.cc!==void 0&&p.cc.length>0&&(0,o.jsxDEV)(o.Fragment,{children:[(0,o.jsxDEV)("dt",{children:n("Cc")},void 0,!1),(0,o.jsxDEV)("dd",{className:"truncate font-mono",children:Qe(p.cc)},void 0,!1)]},void 0,!0),(0,o.jsxDEV)("dt",{children:n("Sent")},void 0,!1),(0,o.jsxDEV)("dd",{className:"tabular-nums",children:dt(p.capturedAt,"\u2014")},void 0,!1)]},void 0,!0)]},void 0,!0),(0,o.jsxDEV)("div",{className:"flex flex-wrap items-center gap-2","data-testid":"mail-actions",children:[(0,o.jsxDEV)(Ne,{"data-testid":"mail-copy-link",disabled:H===void 0,onClick:ue,size:"sm",type:"button",variant:"outline",children:n("Copy link")},void 0,!1),(0,o.jsxDEV)(Ne,{"data-testid":"mail-open-link",disabled:H===void 0,onClick:z,size:"sm",type:"button",variant:"outline",children:n("Open in new tab")},void 0,!1)]},void 0,!0),(0,o.jsxDEV)(ur,{},void 0,!1),(0,o.jsxDEV)("div",{className:"flex items-center gap-1","data-testid":"mail-tabs",role:"tablist",children:["html","text","headers"].map(l=>(0,o.jsxDEV)(Ne,{"aria-selected":C===l,"data-tab":l,"data-testid":`mail-tab-${l}`,onClick:re,role:"tab",size:"sm",type:"button",variant:C===l?"secondary":"ghost",children:G(l)},l,!1))},void 0,!1),(0,o.jsxDEV)("div",{className:"min-h-[12rem]",children:[C==="html"&&(p.html===void 0?(0,o.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:n("No HTML body.")},void 0,!1):(0,o.jsxDEV)("iframe",{className:"h-[24rem] w-full rounded-md border bg-white","data-testid":"mail-preview-html",sandbox:"",srcDoc:br(p.html),title:n("Email preview")},void 0,!1)),C==="text"&&(p.text===void 0?(0,o.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:n("No text body.")},void 0,!1):(0,o.jsxDEV)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-text",children:p.text},void 0,!1)),C==="headers"&&(p.headers===void 0||Object.keys(p.headers).length===0?(0,o.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:n("No headers.")},void 0,!1):(0,o.jsxDEV)("pre",{className:"overflow-auto whitespace-pre-wrap rounded-md border bg-muted/30 p-3 text-xs","data-testid":"mail-preview-headers",children:Object.entries(p.headers).map(([l,s])=>`${l}: ${s}`).join(`
2
- `)},void 0,!1))]},void 0,!0)]},void 0,!0)]},void 0,!0)]},void 0,!0)},"MailPanel");export{mn as MailPanel};
@@ -1 +0,0 @@
1
- import{a as E}from"./chunk-AJIUI7DD.js";import"./chunk-XNJNSCLM.js";import{a as q,b as A,c as S,d as b,e as l,f as i}from"./chunk-GTM65MVX.js";import{a as w}from"./chunk-AQGOX5DK.js";import{a as T}from"./chunk-TAD43CG5.js";import{b as C}from"./chunk-DVKPRFIJ.js";import{a as g,e as Q}from"./chunk-SEU5V7I6.js";import"./chunk-X7MMBSNW.js";import"./chunk-ZHVTQ37P.js";import"./chunk-3OA7PECS.js";import{d as y}from"./chunk-PVZI3CXP.js";import"./chunk-GMSGZDDH.js";import{a as p,e as N,f as I,g as D,h as k}from"./chunk-RRCPZMC2.js";var _=N(D(),1),M=N(I(),1);var t=N(k(),1);var U=p(()=>{let e=(0,_.c)(18),o=y(),m;e[0]===Symbol.for("react.memo_cache_sentinel")?(m={},e[0]=m):m=e[0];let{data:n,error:h,errorSource:x}=C(w.listQueues,m),v=n!==void 0,u;e[1]!==n?(u=Array.isArray(n?.queues)?[...n.queues].toSorted(B):[],e[1]=n,e[2]=u):u=e[2];let f=u,r;e[3]!==h||e[4]!==x?(r=h!==null&&(0,t.jsxDEV)(E,{error:x,testId:"queues-error"},void 0,!1),e[3]=h,e[4]=x,e[5]=r):r=e[5];let a;e[6]!==o?(a=o("Queues are declared in code with defineQueue. Enqueue from a mutation or action with ctx.queues.<name>.send(...); push consumers process batches in the worker."),e[6]=o,e[7]=a):a=e[7];let s;e[8]!==a?(s=(0,t.jsxDEV)("p",{className:"text-sm text-muted-foreground",children:a},void 0,!1),e[8]=a,e[9]=s):s=e[9];let d;e[10]!==v||e[11]!==f||e[12]!==o?(d=v&&f.length===0?(0,t.jsxDEV)(T,{description:o("No defineQueue is declared in lunora/queues.ts in this deployment. Add one to offload async work to a Cloudflare Queue."),testId:"queues-empty",title:o("No queues defined")},void 0,!1):(0,t.jsxDEV)(g,{className:"overflow-hidden py-0",children:(0,t.jsxDEV)(Q,{className:"px-0",children:(0,t.jsxDEV)(q,{"data-testid":"queues-table",children:[(0,t.jsxDEV)(A,{children:(0,t.jsxDEV)(b,{children:[(0,t.jsxDEV)(l,{children:o("Export")},void 0,!1),(0,t.jsxDEV)(l,{children:o("Queue")},void 0,!1),(0,t.jsxDEV)(l,{children:o("Mode")},void 0,!1),(0,t.jsxDEV)(l,{children:o("Binding")},void 0,!1),(0,t.jsxDEV)(l,{children:o("Dead-letter")},void 0,!1)]},void 0,!0)},void 0,!1),(0,t.jsxDEV)(S,{children:f.map(H)},void 0,!1)]},void 0,!0)},void 0,!1)},void 0,!1),e[10]=v,e[11]=f,e[12]=o,e[13]=d):d=e[13];let c;return e[14]!==r||e[15]!==s||e[16]!==d?(c=(0,t.jsxDEV)("div",{className:"flex flex-col gap-6","data-testid":"lunora-queues-panel",children:[r,s,d]},void 0,!0),e[14]=r,e[15]=s,e[16]=d,e[17]=c):c=e[17],c},"QueuesPanel");function B(e,o){return e.exportName.localeCompare(o.exportName)}p(B,"_temp");function H(e){return(0,t.jsxDEV)(b,{"data-testid":`queues-row-${e.exportName}`,children:[(0,t.jsxDEV)(i,{className:"font-mono text-xs",children:e.exportName},void 0,!1),(0,t.jsxDEV)(i,{className:"font-mono text-xs text-muted-foreground",children:e.name},void 0,!1),(0,t.jsxDEV)(i,{className:"font-mono text-xs text-muted-foreground",children:e.mode},void 0,!1),(0,t.jsxDEV)(i,{className:"font-mono text-xs text-muted-foreground",children:e.binding},void 0,!1),(0,t.jsxDEV)(i,{className:"font-mono text-xs text-muted-foreground",children:e.deadLetterQueue??"\u2014"},void 0,!1)]},e.exportName,!0)}p(H,"_temp2");export{U as default};