@lunora/studio 1.0.0-alpha.80 → 1.0.0-alpha.82
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.
- package/dist/index.d.ts +35 -6
- package/dist/index.js +1 -1
- package/dist/mount.js +1 -1
- package/dist/packem_chunks/AdvisorHealthPanel.js +1 -0
- package/dist/packem_chunks/ApiTab.js +1 -1
- package/dist/packem_chunks/AuditPanel.js +1 -1
- package/dist/packem_chunks/ExportImportPanel.js +1 -1
- package/dist/packem_chunks/FileBrowser.js +1 -1
- package/dist/packem_chunks/FunctionRunner.js +1 -1
- package/dist/packem_chunks/FunctionStatsPanel.js +1 -1
- package/dist/packem_chunks/HealthPanel.js +1 -1
- package/dist/packem_chunks/InsightsPanel.js +1 -1
- package/dist/packem_chunks/LogsPanel.js +1 -1
- package/dist/packem_chunks/MailPanel.js +2 -2
- package/dist/packem_chunks/MetricsPanel.js +1 -1
- package/dist/packem_chunks/NotificationsPanel.js +1 -1
- package/dist/packem_chunks/PitrPanel.js +1 -1
- package/dist/packem_chunks/SchemaViewer.js +1 -1
- package/dist/packem_chunks/SecurityAdvisorPanel.js +1 -1
- package/dist/packem_chunks/SettingsPanel.js +1 -1
- package/dist/packem_chunks/SqlEditorPanel.js +6 -6
- package/dist/packem_chunks/TableEditor.js +1 -1
- package/dist/packem_chunks/agents-panel.js +1 -1
- package/dist/packem_chunks/auth-audit-panel.js +1 -1
- package/dist/packem_chunks/containers-panel.js +1 -1
- package/dist/packem_chunks/dashboards-panel.js +1 -1
- package/dist/packem_chunks/fanout-panel.js +1 -1
- package/dist/packem_chunks/flags-panel.js +1 -1
- package/dist/packem_chunks/issues-panel.js +1 -1
- package/dist/packem_chunks/kv-browser.js +1 -1
- package/dist/packem_chunks/log-drains-panel.js +1 -1
- package/dist/packem_chunks/migrations-route.js +1 -1
- package/dist/packem_chunks/organizations-panel.js +1 -1
- package/dist/packem_chunks/payments-panel.js +1 -1
- package/dist/packem_chunks/permissions-panel.js +1 -1
- package/dist/packem_chunks/queues-panel.js +1 -1
- package/dist/packem_chunks/rls-panel.js +1 -1
- package/dist/packem_chunks/storage-rules-panel.js +1 -1
- package/dist/packem_chunks/subscriptions-panel.js +1 -1
- package/dist/packem_chunks/traces-panel.js +1 -1
- package/dist/packem_chunks/workflows-panel.js +1 -1
- package/dist/packem_shared/ADMIN_FUNCTIONS-CZESgd10.js +1 -0
- package/dist/packem_shared/{ApiDocsPanel-DfUQ1ZAF.js → ApiDocsPanel-fYS9NiLg.js} +1 -1
- package/dist/packem_shared/DataBrowser-C4J4gVUu.js +1 -0
- package/dist/packem_shared/GlobalDataBrowser-CSttudUx.js +1 -0
- package/dist/packem_shared/{HomePanel-Dcs4a3Ax.js → HomePanel-BYsfMhKh.js} +1 -1
- package/dist/packem_shared/{MigrationsPanel-C2OnsqRb.js → MigrationsPanel-2JbQ2HwG.js} +1 -1
- package/dist/packem_shared/{Studio-B26_pT8J.js → Studio-Ba9x0dG_.js} +1 -1
- package/dist/packem_shared/{StudioApp-bXhJeLlZ.js → StudioApp-B_PRdg4h.js} +1 -1
- package/dist/packem_shared/{cf-links-gbDy51nR.js → cf-links-Dmg86v1D.js} +1 -1
- package/dist/packem_shared/{home-panel-CU6MWLHG.js → home-panel-B60-5YfI.js} +1 -1
- package/dist/packem_shared/stat-card-fm_TF1mo.js +1 -0
- package/dist/packem_shared/studio-CPuoAmjh.js +2 -0
- package/dist/packem_shared/table-list-sidebar-BRv3hTLX.js +1 -0
- package/dist/packem_shared/{use-sql-assistant-CHEu2-Rk.js → use-sql-assistant-BLG9unQN.js} +1 -1
- package/dist/standalone/{chunk-RQ7AFLIV.js → chunk-2QSHLBCO.js} +1 -1
- package/dist/standalone/{chunk-33CL6OHR.js → chunk-5SQRE3VR.js} +1 -1
- package/dist/standalone/{chunk-5CVJS7ON.js → chunk-6QP5N57V.js} +1 -1
- package/dist/standalone/chunk-73GRNONE.js +1 -0
- package/dist/standalone/{chunk-JRMMYIAF.js → chunk-74DN6HIE.js} +1 -1
- package/dist/standalone/{chunk-KZ3ALMMP.js → chunk-7H7LZRLP.js} +1 -1
- package/dist/standalone/{chunk-FOBRNWBG.js → chunk-7YKWP4QK.js} +1 -1
- package/dist/standalone/{chunk-T7IUZIF4.js → chunk-7ZUQE3KU.js} +1 -1
- package/dist/standalone/{chunk-P4YLIBCN.js → chunk-A3KUNMU6.js} +1 -1
- package/dist/standalone/{chunk-S2VVR7HI.js → chunk-B2H5DK55.js} +1 -1
- package/dist/standalone/{chunk-FNPJ7GJZ.js → chunk-BDJCCVB6.js} +1 -1
- package/dist/standalone/{chunk-KJB7YAKB.js → chunk-C7EOC2WS.js} +1 -1
- package/dist/standalone/{chunk-KLQYC6CC.js → chunk-CGLS2ILT.js} +1 -1
- package/dist/standalone/chunk-CPSGJSHY.js +1 -0
- package/dist/standalone/{chunk-RJP3WBZ4.js → chunk-CU6SCYQ7.js} +1 -1
- package/dist/standalone/chunk-DGBJE7YF.js +4 -0
- package/dist/standalone/{chunk-G6PSMGLD.js → chunk-DOZAODYC.js} +1 -1
- package/dist/standalone/chunk-EQZTSISX.js +1 -0
- package/dist/standalone/chunk-ERMTJYQF.js +1 -0
- package/dist/standalone/{chunk-QZGTH6WH.js → chunk-GB6LP6UJ.js} +1 -1
- package/dist/standalone/{chunk-GYKVBKT5.js → chunk-GM67EQJU.js} +1 -1
- package/dist/standalone/chunk-GN567L2T.js +1 -0
- package/dist/standalone/{chunk-L7R74G63.js → chunk-GWHM4C4N.js} +1 -1
- package/dist/standalone/{chunk-JLOWAJRR.js → chunk-GWQIPIYA.js} +1 -1
- package/dist/standalone/{chunk-6YTSSIEJ.js → chunk-HEB6GQQ6.js} +1 -1
- package/dist/standalone/chunk-HOR3JLUY.js +6 -0
- package/dist/standalone/{chunk-7LWMHTJ3.js → chunk-I6A5C46N.js} +1 -1
- package/dist/standalone/{chunk-H6YOWRFB.js → chunk-KAPSM6AI.js} +1 -1
- package/dist/standalone/{chunk-6NY7SPDL.js → chunk-KSRP7GZV.js} +1 -1
- package/dist/standalone/chunk-LLF5KWDZ.js +2 -0
- package/dist/standalone/chunk-NRCXRCJX.js +1 -0
- package/dist/standalone/chunk-OE465DVY.js +1 -0
- package/dist/standalone/{chunk-HJ3E4YF5.js → chunk-PXYWCZ7T.js} +1 -1
- package/dist/standalone/{chunk-PZVU2QMX.js → chunk-Q7QTRX2E.js} +1 -1
- package/dist/standalone/{chunk-E3NMX2VU.js → chunk-S4ILMYP5.js} +1 -1
- package/dist/standalone/{chunk-KC44QCN6.js → chunk-SDQBPFLO.js} +1 -1
- package/dist/standalone/chunk-SV52HB7D.js +1 -0
- package/dist/standalone/{chunk-WBYSSCV2.js → chunk-T242WITF.js} +1 -1
- package/dist/standalone/{chunk-VHWOCPRK.js → chunk-TBRZQICB.js} +1 -1
- package/dist/standalone/{chunk-6LNCYDZO.js → chunk-TQXZ7LG4.js} +1 -1
- package/dist/standalone/chunk-U457LHCO.js +1 -0
- package/dist/standalone/chunk-UBPYN4DU.js +1 -0
- package/dist/standalone/{chunk-34D36UCW.js → chunk-UDVB4URN.js} +1 -1
- package/dist/standalone/{chunk-6IKEW5LG.js → chunk-UETNCBWU.js} +1 -1
- package/dist/standalone/{chunk-OY2RVUZL.js → chunk-UU2QJMGJ.js} +1 -1
- package/dist/standalone/chunk-VC5SSRUP.js +1 -0
- package/dist/standalone/{chunk-GXSZH7VJ.js → chunk-VCXH5V3Z.js} +1 -1
- package/dist/standalone/{chunk-RNRJKBY3.js → chunk-VTLYN3CX.js} +1 -1
- package/dist/standalone/{chunk-3O3HAXW7.js → chunk-WDG4WFUV.js} +1 -1
- package/dist/standalone/{chunk-3STOIE7Q.js → chunk-WJGOI3FZ.js} +1 -1
- package/dist/standalone/{chunk-W6SAOXGH.js → chunk-WLZ7YPBH.js} +1 -1
- package/dist/standalone/{chunk-2VDFV5TD.js → chunk-WQVVA5NB.js} +1 -1
- package/dist/standalone/{chunk-TTGOOYLF.js → chunk-WZ3B3MEV.js} +1 -1
- package/dist/standalone/{chunk-SKW6J4VW.js → chunk-Y7A5NCXT.js} +1 -1
- package/dist/standalone/{chunk-IHQC7J35.js → chunk-YSRW5RNU.js} +1 -1
- package/dist/standalone/{chunk-GAX5IZYG.js → chunk-YTA2HGRD.js} +1 -1
- package/dist/standalone/chunk-ZHBIKP5G.js +1 -0
- package/dist/standalone/{chunk-CCVXYYPJ.js → chunk-ZK3XKFCI.js} +1 -1
- package/dist/standalone/studio.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +5 -5
- package/dist/packem_shared/ADMIN_FUNCTIONS-BnD4aovm.js +0 -1
- package/dist/packem_shared/DataBrowser-CuRlztBz.js +0 -1
- package/dist/packem_shared/GlobalDataBrowser-DB-vQ2_H.js +0 -1
- package/dist/packem_shared/studio-q-C-acL7.js +0 -2
- package/dist/packem_shared/table-list-sidebar-BFkSQwlB.js +0 -1
- package/dist/standalone/chunk-2GA4SHO7.js +0 -1
- package/dist/standalone/chunk-2WOIRKEI.js +0 -1
- package/dist/standalone/chunk-6PNPIW6I.js +0 -2
- package/dist/standalone/chunk-6YI4WJO4.js +0 -1
- package/dist/standalone/chunk-A74VSSA2.js +0 -4
- package/dist/standalone/chunk-CT5MMH4O.js +0 -1
- package/dist/standalone/chunk-GB6U2BPU.js +0 -1
- package/dist/standalone/chunk-GEDMLM4A.js +0 -6
- package/dist/standalone/chunk-S252DAFP.js +0 -1
- package/dist/standalone/chunk-XS5LDR52.js +0 -1
- package/dist/standalone/chunk-YJYTMQJI.js +0 -1
- package/dist/standalone/chunk-Z2V42P7J.js +0 -1
- /package/dist/standalone/{chunk-SKHEGARW.js → chunk-XF2B7P5A.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as R}from"./chunk-54MMVNPT.js";import{a as E}from"./chunk-
|
|
1
|
+
import{a as R}from"./chunk-54MMVNPT.js";import{a as E}from"./chunk-HEB6GQQ6.js";import"./chunk-SFDOII3B.js";import"./chunk-SMIESS7P.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as x}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as T}from"./chunk-53WEPGUD.js";import"./chunk-XXQUMVWH.js";import"./chunk-RNL6BSFM.js";import"./chunk-QLQADHFE.js";import{a as v}from"./chunk-ERMTJYQF.js";import{c as b}from"./chunk-XDAT7LHC.js";import"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as w}from"./chunk-XQCVZAGU.js";import{a as A,b as j,c as I,d as g,e as c,f as a}from"./chunk-MIQTKZAR.js";import{a as y,e as N}from"./chunk-UZERI5YC.js";import{d as _,q as S}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as m,e as M,h as G}from"./chunk-3XIESWL4.js";var e=M(G(),1);var H=["subscriptions","events"],L={},k=new Set(["active","trialing"]),U=new Set(["past_due","unpaid"]),n=m((s,t)=>{if(s[t]!==void 0)return s[t];let p=s.__doc__;if(typeof p=="string")try{let o=JSON.parse(p);if(o!==null&&typeof o=="object"&&!Array.isArray(o))return o[t]}catch{}},"s"),i=m(s=>typeof s=="string"?s:typeof s=="number"||typeof s=="bigint"||typeof s=="boolean"?String(s):"","i"),$=m(s=>k.has(s)?"default":U.has(s)?"destructive":"outline","J"),te=m(({limit:s=100})=>{let t=_(),p=E(),{data:o}=b(v.listTables,L,{live:!0}),D=o!==void 0,O=Array.isArray(o)&&H.every(r=>o.some(l=>l.name===r)),f=p.payments&&O,d=b(v.readTablePage,{filters:[],limit:s,offset:0,orderBy:[],search:"",table:"subscriptions"},{enabled:f}),h=b(v.readTablePage,{filters:[],limit:25,offset:0,orderBy:[],search:"",table:"events"},{enabled:f});R(()=>{f&&(d.refetch(),h.refetch())},!0);let u=d.data?.rows??[],B=h.data?.rows??[],C=d.error??h.error,F=d.error===null?h.errorSource:d.errorSource,P=u.filter(r=>k.has(i(n(r,"state")))).length,J=B.toSorted((r,l)=>Number(n(l,"processedAt")??0)-Number(n(r,"processedAt")??0));return D&&!f?(0,e.jsx)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:(0,e.jsx)(w,{description:t("No @lunora/payment tables found in this deployment. Declare the store tables (subscriptions, events, \u2026) in lunora/schema.ts and wire `payment` on createShardDO() to sync customers and subscriptions."),testId:"payments-unconfigured",title:t("No payments configured")})}):(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"payments-panel",children:[(0,e.jsx)("div",{className:"flex items-center gap-2","data-testid":"payments-summary",children:(0,e.jsxs)(y,{className:"justify-between gap-0 py-0",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-2.5 p-4",children:[(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Subscriptions")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("span",{className:"text-2xl font-semibold tabular-nums text-foreground",children:P}),(0,e.jsx)(x,{variant:"default",children:t("{count} active",{count:P})})]})]}),(0,e.jsx)("div",{className:"border-t border-border bg-muted/50 px-4 py-2.5 text-[11px] text-muted-foreground",children:t("{total} total",{total:u.length})})]})}),C===null?void 0:(0,e.jsx)(T,{error:F}),u.length===0&&!d.isLoading?(0,e.jsx)(w,{testId:"payments-empty",title:t("No subscriptions yet")}):(0,e.jsx)(y,{className:"overflow-hidden py-0",children:(0,e.jsx)(N,{className:"px-0",children:(0,e.jsxs)(A,{children:[(0,e.jsx)(j,{children:(0,e.jsxs)(g,{children:[(0,e.jsx)(c,{children:t("Provider")}),(0,e.jsx)(c,{children:t("Reference")}),(0,e.jsx)(c,{children:t("Plan")}),(0,e.jsx)(c,{children:t("State")}),(0,e.jsx)(c,{children:t("Renews")})]})}),(0,e.jsx)(I,{children:u.map(r=>{let l=i(n(r,"state"));return(0,e.jsxs)(g,{"data-testid":"payment-subscription-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{children:i(n(r,"referenceId"))}),(0,e.jsx)(a,{children:i(n(r,"priceId"))}),(0,e.jsx)(a,{children:(0,e.jsx)(x,{variant:$(l),children:l})}),(0,e.jsx)(a,{children:S(n(r,"currentPeriodEnd"))})]},i(n(r,"providerSubscriptionId")))})})]})})}),(0,e.jsxs)(y,{className:"overflow-hidden py-0",children:[(0,e.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,e.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:t("Recent webhook events")})}),(0,e.jsx)(N,{className:"px-0",children:(0,e.jsx)(A,{children:(0,e.jsx)(I,{children:J.map(r=>(0,e.jsxs)(g,{"data-testid":"payment-event-row",children:[(0,e.jsx)(a,{children:i(n(r,"provider"))}),(0,e.jsx)(a,{className:"font-medium",children:i(n(r,"type"))}),(0,e.jsx)(a,{className:"text-muted-foreground",children:i(n(r,"providerEventId"))}),(0,e.jsx)(a,{children:S(n(r,"processedAt"))})]},i(n(r,"providerEventId"))))})})})]})]})},"re");export{te as PaymentsPanel};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Y}from"./chunk-QXXIJAD5.js";import{a as G}from"./chunk-X665E2HU.js";import{b as Q}from"./chunk-GRL5MG3Z.js";import{a as z}from"./chunk-SFDOII3B.js";import{e as P}from"./chunk-SMIESS7P.js";import"./chunk-7T7UOTYK.js";import{a as V}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{b as Z,c as ee}from"./chunk-U457LHCO.js";import{a as F,b as W}from"./chunk-HJD2YUQS.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import"./chunk-53WEPGUD.js";import"./chunk-XXQUMVWH.js";import"./chunk-RNL6BSFM.js";import"./chunk-QLQADHFE.js";import{a as E}from"./chunk-ERMTJYQF.js";import{c as A}from"./chunk-XDAT7LHC.js";import{f as J}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import"./chunk-MIQTKZAR.js";import"./chunk-UZERI5YC.js";import{d as k,f as L,g as _,m as N}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as l,e as K,f as ue,g as fe,h as me}from"./chunk-3XIESWL4.js";var q=K(fe(),1);var c=K(ue(),1);var I=K(me(),1);var he=l(t=>{let{suggestedIndex:e,table:r}=t;return!(typeof r!="string"||r.length===0||typeof e!="object"||e===null||!Array.isArray(e.fields)||e.fields.length===0)},"he"),pe=l((t,e,r)=>{let a=`"${t}"`,n=`"${e}"`,d=r.map(o=>`"${o}"`).join(", ");return`CREATE INDEX IF NOT EXISTS ${n} ON ${a} (${d});`},"pe"),ge=l(t=>{let e=(0,q.c)(19),{fields:r,indexName:a,table:n,testId:d}=t,o=k(),[w,f]=(0,c.useState)(!1),m;e[0]!==r||e[1]!==a||e[2]!==n?(m=l(()=>{let y="navigator"in globalThis?globalThis.navigator.clipboard:void 0;if(y===void 0)return;let x=pe(n,a,r);N(y.writeText(x)),f(!0)},"u"),e[0]=r,e[1]=a,e[2]=n,e[3]=m):m=e[3];let p=m;if(w){let y=`${d}-applied`,x;e[4]!==o?(x=o("CREATE INDEX SQL copied to clipboard."),e[4]=o,e[5]=x):x=e[5];let $;return e[6]!==y||e[7]!==x?($=(0,I.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":y,children:x}),e[6]=y,e[7]=x,e[8]=$):$=e[8],$}let g;e[9]!==o?(g=o("Apply?"),e[9]=o,e[10]=g):g=e[10];let h;e[11]!==o||e[12]!==n?(h=o("Apply index on {table}",{table:n}),e[11]=o,e[12]=n,e[13]=h):h=e[13];let v;return e[14]!==p||e[15]!==g||e[16]!==h||e[17]!==d?(v=(0,I.jsx)(Y,{confirmLabel:g,onConfirm:p,testId:d,children:h}),e[14]=p,e[15]=g,e[16]=h,e[17]=d,e[18]=v):v=e[18],v},"ge"),be=l((t,e)=>{let r=new Map;for(let a of e){let n=`${a.table} ${a.index}`;r.set(n,(r.get(n)??0)+a.reads)}return t.map(a=>({index:a.index,reads:r.get(`${a.table} ${a.index}`)??0,table:a.table}))},"be"),ve=l(t=>{let e=new Map;for(let r of t)for(let a of r.scannedTables??[])e.set(a.table,(e.get(a.table)??0)+a.scans);return[...e].map(([r,a])=>({scans:a,table:r}))},"ve"),xe=l((t,e)=>e.map(r=>({index:r.name,table:t})),"xe"),ye=l(t=>{let e=be(t.declaredIndexes??[],t.indexHits??[]),r=ve(t.functions??[]),a=t.shardTraffic??[],n=t.analyticsMetrics,d=n&&n.indexHits.length>0?n.indexHits:e,o=n&&n.tableScans.length>0?n.tableScans:r,w=n&&n.shardTraffic.length>0?n.shardTraffic:a,f=ee({indexHits:d,schema:{tables:[]},shardTraffic:w,tableScans:o},{lints:Z,source:"runtime"}),m=t.suppressHotScanTables;return(m===void 0?f:f.filter(p=>!(p.metadata.kind==="hot_scan"&&typeof p.metadata.table=="string"&&m.has(p.metadata.table)))).map(p=>F(p))},"ye"),we=L(E.listTables),Se=L(E.listTableIndexes),j=l(t=>`${(t*100).toFixed(1)}%`,"M"),te=l(t=>`${(t/1e3).toFixed(2)}s`,"D"),Te=l(t=>{if(t.length<=1)return t[0]??"";let e=t[t.length-1]??"";return`${t.slice(0,-1).join(", ")} and ${e}`},"Se"),Ie=l((t,e)=>({"high-error-rate":t("High error rate"),"high-evictions":t("High cache eviction rate"),"high-write-contention":t("High write contention"),"low-cache-hit-rate":t("Low cache hit rate"),"missing-index":t("Missing index"),"slow-function":t("Slow function")})[e.kind],"Te"),ae=l((t,e)=>({"high-error-rate":t("{rate} of calls failed.",{rate:j(e.value)}),"high-evictions":t("{count} entries evicted recently.",{count:e.value}),"high-write-contention":t("{rate} of calls hit a write conflict \u2014 consider sharding to cut contention.",{rate:j(e.value)}),"low-cache-hit-rate":t("{rate} hit rate over recent traffic.",{rate:j(e.value)}),"missing-index":t("Slowest call took {duration} \u2014 it full-scanned {tables} with no index.",{duration:te(e.value),tables:Te(e.tables??[])}),"slow-function":t("Slowest call took {duration}.",{duration:te(e.value)})})[e.kind],"X"),$e=l(t=>{let e=(0,q.c)(10),{onJump:r,table:a}=t,n=k(),d;e[0]!==r||e[1]!==a?(d=l(()=>{r(a)},"l"),e[0]=r,e[1]=a,e[2]=d):d=e[2];let o=d,w=`in-add-index-${a}`,f;e[3]!==n||e[4]!==a?(f=n("Add index on {table}",{table:a}),e[3]=n,e[4]=a,e[5]=f):f=e[5];let m;return e[6]!==o||e[7]!==w||e[8]!==f?(m=(0,I.jsx)(U,{"data-testid":w,onClick:o,size:"sm",type:"button",variant:"outline",children:f}),e[6]=o,e[7]=w,e[8]=f,e[9]=m):m=e[9],m},"Ie"),De=l(({initialShardKey:t,loadShardTraffic:e})=>{let r=J(),a=P(),n=k(),[d,o]=(0,c.useState)(t??""),[w,f]=(0,c.useState)(null),[m,p]=(0,c.useState)(null),g=V(d.trim(),400),h=(0,c.useRef)(""),v=A(E.getMetrics,{},{live:!0,shardKey:g}),y=A(E.getFunctionStats,{},{live:!0,shardKey:g}),x=A(E.getAdvisories,{},{live:!0,shardKey:g}),$=v.data??null,R=y.data?.functions??null,D=x.data?.advisories??null,ne=v.data?.indexHits??null,O=v.error!==null&&y.error!==null?v.error:null,re=e??(i=>r.shardTraffic(i)),ie=l(async(i,T)=>{let s=i[0];if(s===void 0||s===""){h.current===T&&p(null);return}try{let S=await re(s);if(h.current!==T)return;let b=new Map;for(let u of S.shards)b.has(u.shardKey)||b.set(u.shardKey,{requests:u.requests,shardKey:u.shardKey});p([...b.values()])}catch{h.current===T&&p(null)}},"V"),H=(0,c.useCallback)(async i=>{h.current=i;let T=[];try{let s=await r.query(we,{},_(i));if(h.current!==i)return;Q(i),T=s.map(u=>u.name);let S=await Promise.allSettled(s.map(async u=>[u.name,await r.query(Se,{table:u.name},_(i))]));if(h.current!==i)return;let b=[];for(let u of S)if(u.status==="fulfilled"){let[C,de]=u.value;b.push(...xe(C,de.indexes))}f(b)}catch{h.current===i&&f(null)}await ie(T,i)},[r]);(0,c.useEffect)(()=>{N(H(g))},[g,H]);let se=(0,c.useEffectEvent)(()=>{v.refetch(),y.refetch(),x.refetch(),N(H(g))});(0,c.useEffect)(()=>{let i=l(()=>{document.visibilityState==="visible"&&se()},"i");return document.addEventListener("visibilitychange",i),()=>{document.removeEventListener("visibilitychange",i)}},[]);let X=(0,c.useCallback)(i=>{N(a({search:{table:i},to:"/schema"}))},[a]),M=z($,R),oe=new Set(M.filter(i=>i.kind==="missing-index").flatMap(i=>i.tables??[])),B=ye({declaredIndexes:w??[],functions:R,indexHits:ne,shardTraffic:m,suppressHotScanTables:oe}),le=(0,c.useMemo)(()=>{let i=M.map(s=>{let S=s.kind==="missing-index"?s.tables??[]:[];return{action:S.length>0?S.map(b=>(0,I.jsx)($e,{onJump:X,table:b},b)):void 0,description:s.message===void 0?ae(n,s):`${ae(n,s)} \u2014 ${s.message}`,entity:s.fn,issueType:Ie(n,s),key:`${s.kind}:${s.fn??""}`,level:s.severity}}),T=new Set(["unindexed_foreign_key","unindexed_relation_target"]);return[...(D??[]).map(s=>{let S=F(s);if(T.has(s.name)&&he(s.metadata)){let{table:b,suggestedIndex:u}=s.metadata,C=`in-apply-index-${b}-${u.name}`;return{...S,action:(0,I.jsx)(ge,{fields:u.fields,indexName:u.name,table:b,testId:C})}}return S}),...B,...i]},[D,M,X,B,n]),ce=(0,I.jsx)(G,{onChange:o,testId:"in-shard-input",value:d});return(0,I.jsx)(W,{error:O,errorSource:O===null?void 0:v.errorSource,rows:le,testId:"lunora-insights",toolbar:ce})},"Be");export{De as InsightsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as de}from"./chunk-D2RKH6JK.js";import"./chunk-CU55Y5TV.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import
|
|
1
|
+
import{a as de}from"./chunk-D2RKH6JK.js";import"./chunk-CU55Y5TV.js";import"./chunk-4UOFSGUS.js";import"./chunk-ILNELDFC.js";import{d as Y,f as ee}from"./chunk-7T7UOTYK.js";import"./chunk-T6VMSOBB.js";import"./chunk-7QIFDWQV.js";import{c as T}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as te}from"./chunk-XXQUMVWH.js";import{a as X}from"./chunk-ERMTJYQF.js";import{f as F}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as H}from"./chunk-XQCVZAGU.js";import{a as Q,b as U,c as D,e as V}from"./chunk-UZERI5YC.js";import{d as A,f as Z,g as G,h as J,m as P}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as k,e as O,f as ae,g as le,h as se}from"./chunk-3XIESWL4.js";var W=O(le(),1),I=O(ae(),1);var s=O(se(),1);var re=Z(X.runSql),ie=k((_,e)=>{let t=(0,W.c)(11),m=F(),[d,a]=(0,I.useState)(void 0),[r,l]=(0,I.useState)(void 0),[o,E]=(0,I.useState)(!0),c;t[0]!==m||t[1]!==e||t[2]!==_?(c=k(async u=>{E(!0);try{let N=await m.query(re,{sql:_},G(e));u.cancelled||(a(N),l(void 0))}catch(N){let $=N;u.cancelled||(a(void 0),l(J($)))}u.cancelled||E(!1)},"n"),t[0]=m,t[1]=e,t[2]=_,t[3]=c):c=t[3];let C=c,y,K;t[4]!==C?(y=k(()=>{let u={cancelled:!1};return P(C(u)),()=>{u.cancelled=!0}},"y"),K=[C],t[4]=C,t[5]=y,t[6]=K):(y=t[5],K=t[6]),(0,I.useEffect)(y,K);let h;return t[7]!==r||t[8]!==o||t[9]!==d?(h={error:r,loading:o,result:d},t[7]=r,t[8]=o,t[9]=d,t[10]=h):h=t[10],h},"re"),oe="lunora-studio-dashboards",B={shardKey:"",sql:"",title:""},ne=k(_=>{let e=(0,W.c)(54),{onEdit:t,onRemove:m,widget:d}=_,a=A(),{error:r,loading:l,result:o}=ie(d.sql,d.shardKey??""),E;e[0]!==t||e[1]!==d.id?(E=k(()=>{t(d.id)},"$"),e[0]=t,e[1]=d.id,e[2]=E):E=e[2];let c=E,C;e[3]!==m||e[4]!==d.id?(C=k(()=>{m(d.id)},"k"),e[3]=m,e[4]=d.id,e[5]=C):C=e[5];let y=C,K=`dashboards-widget-${d.id}`,h;e[6]!==d.title?(h=(0,s.jsx)(D,{className:"min-w-0 truncate",title:d.title,children:d.title}),e[6]=d.title,e[7]=h):h=e[7];let u;e[8]!==a?(u=a("Edit widget"),e[8]=a,e[9]=u):u=e[9];let N=`dashboards-widget-edit-${d.id}`,$;e[10]!==a?($=a("Edit widget"),e[10]=a,e[11]=$):$=e[11];let L;e[12]===Symbol.for("react.memo_cache_sentinel")?(L=(0,s.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,s.jsx)("path",{d:"M4 20h4L18 10l-4-4L4 16v4ZM14 6l4 4"})}),e[12]=L):L=e[12];let S;e[13]!==c||e[14]!==u||e[15]!==N||e[16]!==$?(S=(0,s.jsx)(T,{"aria-label":u,"data-testid":N,onClick:c,size:"icon-xs",title:$,type:"button",variant:"ghost",children:L}),e[13]=c,e[14]=u,e[15]=N,e[16]=$,e[17]=S):S=e[17];let x;e[18]!==a?(x=a("Remove widget"),e[18]=a,e[19]=x):x=e[19];let j=`dashboards-widget-remove-${d.id}`,g;e[20]!==a?(g=a("Remove widget"),e[20]=a,e[21]=g):g=e[21];let w;e[22]===Symbol.for("react.memo_cache_sentinel")?(w=(0,s.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:(0,s.jsx)("path",{d:"M5 7h14M9 7V5h6v2m-1 0v12H10V7M7 7v13h10V7"})}),e[22]=w):w=e[22];let b;e[23]!==y||e[24]!==x||e[25]!==j||e[26]!==g?(b=(0,s.jsx)(T,{"aria-label":x,"data-testid":j,onClick:y,size:"icon-xs",title:g,type:"button",variant:"ghost",children:w}),e[23]=y,e[24]=x,e[25]=j,e[26]=g,e[27]=b):b=e[27];let f;e[28]!==b||e[29]!==S?(f=(0,s.jsxs)("div",{className:"flex shrink-0 items-center gap-1",children:[S,b]}),e[28]=b,e[29]=S,e[30]=f):f=e[30];let p;e[31]!==f||e[32]!==h?(p=(0,s.jsxs)(U,{className:"flex flex-row items-start justify-between gap-2 border-b pb-3",children:[h,f]}),e[31]=f,e[32]=h,e[33]=p):p=e[33];let v;e[34]!==r||e[35]!==d.id?(v=r!==void 0&&(0,s.jsx)(te,{className:"font-mono text-xs",testId:`dashboards-widget-error-${d.id}`,variant:"destructive",children:r}),e[34]=r,e[35]=d.id,e[36]=v):v=e[36];let R;e[37]!==r||e[38]!==l||e[39]!==o||e[40]!==a||e[41]!==d.id?(R=r===void 0&&l&&o===void 0&&(0,s.jsx)("p",{className:"p-4 text-sm text-muted-foreground","data-testid":`dashboards-widget-loading-${d.id}`,children:a("Running\u2026")}),e[37]=r,e[38]=l,e[39]=o,e[40]=a,e[41]=d.id,e[42]=R):R=e[42];let i;e[43]!==r||e[44]!==o?(i=r===void 0&&o!==void 0&&(0,s.jsx)(de,{result:o}),e[43]=r,e[44]=o,e[45]=i):i=e[45];let n;e[46]!==v||e[47]!==R||e[48]!==i?(n=(0,s.jsxs)(V,{className:"min-h-32 py-2",children:[v,R,i]}),e[46]=v,e[47]=R,e[48]=i,e[49]=n):n=e[49];let q;return e[50]!==p||e[51]!==n||e[52]!==K?(q=(0,s.jsxs)(Q,{"data-testid":K,children:[p,n]}),e[50]=p,e[51]=n,e[52]=K,e[53]=q):q=e[53],q},"ie"),ce=k(_=>{let e=(0,W.c)(58),{draft:t,editing:m,onCancel:d,onChange:a,onSubmit:r}=_,l=A(),o;e[0]!==t||e[1]!==a?(o=k(z=>{a({...t,title:z.target.value})},"a"),e[0]=t,e[1]=a,e[2]=o):o=e[2];let E=o,c;e[3]!==t||e[4]!==a?(c=k(z=>{a({...t,sql:z.target.value})},"n"),e[3]=t,e[4]=a,e[5]=c):c=e[5];let C=c,y;e[6]!==t||e[7]!==a?(y=k(z=>{a({...t,shardKey:z.target.value})},"y"),e[6]=t,e[7]=a,e[8]=y):y=e[8];let K=y,h;e[9]!==r?(h=k(()=>{r()},"h"),e[9]=r,e[10]=h):h=e[10];let u=h,N;e[11]!==t.sql||e[12]!==t.title?(N=t.title.trim()!==""&&t.sql.trim()!=="",e[11]=t.sql,e[12]=t.title,e[13]=N):N=e[13];let $=N,L;e[14]!==l?(L=l("Widget title"),e[14]=l,e[15]=L):L=e[15];let S;e[16]!==l?(S=l("Widget title"),e[16]=l,e[17]=S):S=e[17];let x;e[18]!==t.title||e[19]!==E||e[20]!==L||e[21]!==S?(x=(0,s.jsx)("input",{"aria-label":L,className:"h-8 rounded-md border border-border bg-background px-2 text-xs outline-none focus-visible:border-ring","data-testid":"dashboards-form-title",onChange:E,placeholder:S,type:"text",value:t.title}),e[18]=t.title,e[19]=E,e[20]=L,e[21]=S,e[22]=x):x=e[22];let j;e[23]!==l?(j=l("SQL query"),e[23]=l,e[24]=j):j=e[24];let g;e[25]!==t.sql||e[26]!==C||e[27]!==j?(g=(0,s.jsx)("textarea",{"aria-label":j,className:"min-h-24 resize-y rounded-md border border-border bg-background p-2 font-mono text-xs leading-5 outline-none focus-visible:border-ring","data-testid":"dashboards-form-sql",onChange:C,placeholder:"SELECT author, COUNT(*) AS messages FROM \u2026",spellCheck:!1,value:t.sql}),e[25]=t.sql,e[26]=C,e[27]=j,e[28]=g):g=e[28];let w;e[29]!==l?(w=l("Shard key (optional)"),e[29]=l,e[30]=w):w=e[30];let b;e[31]!==l?(b=l("Shard key (optional)"),e[31]=l,e[32]=b):b=e[32];let f;e[33]!==t.shardKey||e[34]!==K||e[35]!==w||e[36]!==b?(f=(0,s.jsx)("input",{"aria-label":w,className:"h-8 rounded-md border border-border bg-background px-2 font-mono text-xs outline-none focus-visible:border-ring","data-testid":"dashboards-form-shard",onChange:K,placeholder:b,type:"text",value:t.shardKey}),e[33]=t.shardKey,e[34]=K,e[35]=w,e[36]=b,e[37]=f):f=e[37];let p;e[38]!==l?(p=l("Cancel"),e[38]=l,e[39]=p):p=e[39];let v;e[40]!==d||e[41]!==p?(v=(0,s.jsx)(T,{"data-testid":"dashboards-form-cancel",onClick:d,size:"sm",type:"button",variant:"outline",children:p}),e[40]=d,e[41]=p,e[42]=v):v=e[42];let R=!$,i;e[43]!==m||e[44]!==l?(i=l(m?"Save widget":"Add widget"),e[43]=m,e[44]=l,e[45]=i):i=e[45];let n;e[46]!==u||e[47]!==R||e[48]!==i?(n=(0,s.jsx)(T,{"data-testid":"dashboards-form-save",disabled:R,onClick:u,size:"sm",type:"button",children:i}),e[46]=u,e[47]=R,e[48]=i,e[49]=n):n=e[49];let q;e[50]!==v||e[51]!==n?(q=(0,s.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[v,n]}),e[50]=v,e[51]=n,e[52]=q):q=e[52];let M;return e[53]!==g||e[54]!==f||e[55]!==q||e[56]!==x?(M=(0,s.jsx)(Q,{"data-testid":"dashboards-form",children:(0,s.jsxs)(V,{className:"flex flex-col gap-3 py-4",children:[x,g,f,q]})}),e[53]=g,e[54]=f,e[55]=q,e[56]=x,e[57]=M):M=e[57],M},"ae"),we=k(_=>{let e=(0,W.c)(39),{initialShardKey:t}=_,m=A(),[d,a]=Y(oe),[r,l]=(0,I.useState)(B),[o,E]=(0,I.useState)(null),[c,C]=(0,I.useState)(!1),y;e[0]!==t?(y=k(()=>{E(null),l({...B,shardKey:t??""}),C(!0)},"y"),e[0]=t,e[1]=y):y=e[1];let K=y,h;e[2]===Symbol.for("react.memo_cache_sentinel")?(h=k(()=>{C(!1),E(null),l(B)},"h"),e[2]=h):h=e[2];let u=h,N;e[3]!==d?(N=k(i=>{let n=d.find(q=>q.id===i);n!==void 0&&(E(i),l({shardKey:n.shardKey??"",sql:n.sql,title:n.title}),C(!0))},"C"),e[3]=d,e[4]=N):N=e[4];let $=N,L;e[5]!==a?(L=k(i=>{a(n=>n.filter(q=>q.id!==i))},"K"),e[5]=a,e[6]=L):L=e[6];let S=L,x;e[7]!==r.shardKey||e[8]!==r.sql||e[9]!==r.title||e[10]!==o||e[11]!==a?(x=k(()=>{let i=r.title.trim(),n=r.sql.trim();if(i===""||n==="")return;let q=r.shardKey.trim();a(o===null?M=>[...M,{id:ee("w"),shardKey:q,sql:n,title:i}]:M=>M.map(z=>z.id===o?{...z,shardKey:q,sql:n,title:i}:z)),u()},"x"),e[7]=r.shardKey,e[8]=r.sql,e[9]=r.title,e[10]=o,e[11]=a,e[12]=x):x=e[12];let j=x,g;e[13]!==m?(g=m("Chart widgets backed by saved read-only SQL queries."),e[13]=m,e[14]=g):g=e[14];let w;e[15]!==g?(w=(0,s.jsx)("p",{className:"text-sm text-muted-foreground",children:g}),e[15]=g,e[16]=w):w=e[16];let b;e[17]!==c||e[18]!==K||e[19]!==m?(b=!c&&(0,s.jsx)(T,{"data-testid":"dashboards-add",onClick:K,size:"sm",type:"button",children:m("Add widget")}),e[17]=c,e[18]=K,e[19]=m,e[20]=b):b=e[20];let f;e[21]!==w||e[22]!==b?(f=(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[w,b]}),e[21]=w,e[22]=b,e[23]=f):f=e[23];let p;e[24]!==r||e[25]!==o||e[26]!==c||e[27]!==j?(p=c&&(0,s.jsx)(ce,{draft:r,editing:o!==null,onCancel:u,onChange:l,onSubmit:j}),e[24]=r,e[25]=o,e[26]=c,e[27]=j,e[28]=p):p=e[28];let v;e[29]!==c||e[30]!==$||e[31]!==S||e[32]!==m||e[33]!==d?(v=d.length===0&&!c?(0,s.jsx)(H,{description:m("Add a widget to chart a saved SQL query on this browser."),testId:"dashboards-empty",title:m("No widgets yet")}):(0,s.jsx)("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3","data-testid":"dashboards-grid",children:d.map(i=>(0,s.jsx)(ne,{onEdit:$,onRemove:S,widget:i},i.id))}),e[29]=c,e[30]=$,e[31]=S,e[32]=m,e[33]=d,e[34]=v):v=e[34];let R;return e[35]!==p||e[36]!==v||e[37]!==f?(R=(0,s.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-dashboards",children:[f,p,v]}),e[35]=p,e[36]=v,e[37]=f,e[38]=R):R=e[38],R},"we");export{we as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as de,c as Wo,d as Xo}from"./chunk-SD4BERSA.js";import{a as qo}from"./chunk-IC4L6G56.js";import{a as So,c as No,d as Do,e as $o}from"./chunk-7LWMHTJ3.js";import{A as lo,D as U,E as mo,F as fo,I as go,K as Ro,L as xo,O as Mo,P as ho,Q as bo,S as Co,T as vo,U as Io,V as Eo,W as yo,Y as Po,_ as Oo,aa as To,ba as at,ca as ko,da as wo,ea as ut,ha as _o,ia as At,ja as He,l as Dt,la as Ao,ma as Vo,n as ro,na as Lo,o as so,oa as Fo,pa as Go,q as io,qa as Uo,r as nt,ra as Ho,s as rt,t as ao,ta as jo,u as st,ua as Yo,v as uo,va as Ko,w as co,x as po,y as it}from"./chunk-RQ7AFLIV.js";import{b as Bo}from"./chunk-BGBLQ563.js";import{i as zo,k as Jo}from"./chunk-QBWRC5YX.js";import{C as Ne,I as Fe,J as no,K as Ge,L as tt,M as ot,O as y,P as W,d as wt,e as oe,h as We,i as oo,p as _t}from"./chunk-CFPZYHPY.js";import{a as ct,b as Ue}from"./chunk-FXCBF4XT.js";import{a as Ee,c as Le,i as Zt,q as eo,t as to}from"./chunk-2OUPA2WJ.js";import{a as he,c as L,d as Qt,e as et,h as Je,i as pe,j as I}from"./chunk-6ST5ECQA.js";import{a as n,d as $n,e as f,f as C,g as zn,h as fe,j as Be}from"./chunk-3XIESWL4.js";var _e=f(zn(),1),Dc=f(C(),1);var ne={};$n(ne,{Arrow:()=>Zo,Backdrop:()=>tn,CheckboxItem:()=>sn,CheckboxItemIndicator:()=>an,Group:()=>pn,GroupLabel:()=>ln,Handle:()=>Qe,Item:()=>fn,LinkItem:()=>gn,Popup:()=>xn,Portal:()=>bn,Positioner:()=>Cn,RadioGroup:()=>In,RadioItem:()=>Pn,RadioItemIndicator:()=>Sn,Root:()=>Ot,Separator:()=>qo,SubmenuRoot:()=>On,SubmenuTrigger:()=>Ln,Trigger:()=>Dn,Viewport:()=>Bn,createHandle:()=>Fn});var Qo=f(C(),1);var pt=f(C(),1);var Vt=pt.createContext(void 0);function X(t){let e=pt.useContext(Vt);if(e===void 0&&!t)throw new Error(L(33));return e}n(X,"useMenuPositionerContext");var dt=f(C(),1);var Bt=dt.createContext(void 0);function O(t){let e=dt.useContext(Bt);if(e===void 0&&!t)throw new Error(L(36));return e}n(O,"useMenuRootContext");var Zo=Qo.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),{arrowRef:r,side:m,align:R,arrowUncentered:g,arrowStyles:x}=X(),v={open:l.useState("open"),side:m,align:R,uncentered:g};return I("div",e,{ref:[r,o],stateAttributesMapping:He,state:v,props:{style:x,"aria-hidden":!0,...d}})},"MenuArrow"));var en=f(C(),1);var lt=f(C(),1);var Jn=lt.createContext(void 0);function be(t=!0){let e=lt.useContext(Jn);if(e===void 0&&!t)throw new Error(L(25));return e}n(be,"useContextMenuRootContext");var Wn={...He,...Fe},tn=en.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),r=l.useState("open"),m=l.useState("mounted"),R=l.useState("transitionStatus"),g=l.useState("lastOpenChangeReason"),x=be(),M={open:r,transitionStatus:R};return I("div",e,{ref:x?.backdropRef?[o,x.backdropRef]:o,state:M,stateAttributesMapping:Wn,props:[{role:"presentation",hidden:!m,style:{pointerEvents:g===y.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},d]})},"MenuBackdrop"));var gt=f(C(),1);var mt=f(C(),1);var Lt=mt.createContext(void 0);function on(){let t=mt.useContext(Lt);if(t===void 0)throw new Error(L(30));return t}n(on,"useMenuCheckboxItemContext");var je=f(C(),1);var nn=f(C(),1);function ft(t){let{closeOnClick:e,highlighted:o,id:i,nodeId:u,store:a,typingRef:d,itemRef:l,itemMetadata:r}=t,{events:m}=a.useState("floatingTreeRoot"),R=a.useState("open"),g=be(!0),x=g!==void 0;return nn.useMemo(()=>({id:i,role:"menuitem",tabIndex:R&&o?0:-1,onKeyDown(M){M.key===" "&&d?.current&&M.preventDefault()},onMouseMove(M){u&&m.emit("itemhover",{nodeId:u,target:M.currentTarget})},onClick(M){e&&m.emit("close",{domEvent:M,reason:y.itemPress})},onMouseUp(M){if(g){let v=g.initialCursorPointRef.current;if(g.initialCursorPointRef.current=null,x&&v&&Math.abs(M.clientX-v.x)<=1&&Math.abs(M.clientY-v.y)<=1||x&&!oo.os.mac&&M.button===2)return}l.current&&a.context.allowMouseUpTriggerRef.current&&(!x||M.button===2)&&(!r||r.type==="regular-item")&&l.current.click()}}),[e,o,i,m,u,R,a,d,l,g,x,r])}n(ft,"useMenuItemCommonProps");var Ye={type:"regular-item"};function Oe(t){let{closeOnClick:e,disabled:o=!1,highlighted:i,id:u,store:a,typingRef:d=a.context.typingRef,nativeButton:l,itemMetadata:r,nodeId:m}=t,R=a.useState("disabled"),g=o||R,x=je.useRef(null),{getButtonProps:M,buttonRef:v}=Ue({disabled:g,focusableWhenDisabled:!0,native:l,composite:!0}),P=ft({closeOnClick:e,highlighted:i,id:u,nodeId:m,store:a,typingRef:d,itemRef:x,itemMetadata:r}),c=je.useCallback(b=>he(P,{onMouseEnter(){r.type==="submenu-trigger"&&r.setActive()}},b,M),[P,M,r]),h=et(x,v);return je.useMemo(()=>({getItemProps:c,itemRef:h}),[c,h])}n(Oe,"useMenuItem");var Ft=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.disabled="data-disabled",t.highlighted="data-highlighted",t})({});var Te={checked(t){return t?{[Ft.checked]:""}:{[Ft.unchecked]:""}},...Fe};var rn=f(fe(),1);var sn=gt.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,checked:R,defaultChecked:g,onCheckedChange:x,style:M,...v}=e,P=de({label:d}),c=X(!0),h=oe(a),{store:b}=O(),p=b.useState("isActive",P.index),T=b.useState("itemProps"),[V,s]=ot({controlled:R,default:g??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:w,itemRef:S}=Oe({closeOnClick:m,disabled:r,highlighted:p,id:h,store:b,nativeButton:l,nodeId:c?.context.nodeId,itemMetadata:Ye}),j=gt.useMemo(()=>({disabled:r,highlighted:p,checked:V}),[r,p,V]);function N(D){let F=W(y.itemPress,D.nativeEvent,void 0,{preventUnmountOnClose(){}});x?.(!V,F),!F.isCanceled&&s($=>!$)}n(N,"handleClick");let _=I("div",e,{state:j,stateAttributesMapping:Te,props:[T,{role:"menuitemcheckbox","aria-checked":V,onClick:N},v,w],ref:[S,o,P.ref]});return(0,rn.jsx)(Lt.Provider,{value:j,children:_})},"MenuCheckboxItem"));var Rt=f(C(),1);var an=Rt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=on(),m=Rt.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,ref:[o,m],stateAttributesMapping:Te,props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuCheckboxItemIndicator"));var Mt=f(C(),1);var xt=f(C(),1);var Xe=xt.createContext(void 0);function un(){let t=xt.useContext(Xe);if(t===void 0)throw new Error(L(31));return t}n(un,"useMenuGroupRootContext");var cn=f(fe(),1);var pn=Mt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,[l,r]=Mt.useState(void 0),m=I("div",e,{ref:o,props:{role:"group","aria-labelledby":l,...d}});return(0,cn.jsx)(Xe.Provider,{value:r,children:m})},"MenuGroup"));var dn=f(C(),1);var ln=dn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,id:d,...l}=e,r=oe(d),m=un();return Ee(()=>(m(r),()=>{m(void 0)}),[m,r]),I("div",e,{ref:o,props:{id:r,role:"presentation",...l}})},"MenuGroupLabel"));var mn=f(C(),1);var fn=mn.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!0,style:R,...g}=e,x=de({label:d}),M=X(!0),v=oe(a),{store:P}=O(),c=P.useState("isActive",x.index),h=P.useState("itemProps"),{getItemProps:b,itemRef:p}=Oe({closeOnClick:m,disabled:r,highlighted:c,id:v,store:P,nativeButton:l,nodeId:M?.context.nodeId,itemMetadata:Ye});return I("div",e,{state:{disabled:r,highlighted:c},props:[h,g,b],ref:[p,o,x.ref]})},"MenuItem"));var ht=f(C(),1);var gn=ht.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,closeOnClick:l=!1,style:r,...m}=e,R=ht.useRef(null),g=de({label:d}),M=X(!0)?.context.nodeId,v=oe(a),{store:P}=O(),c=P.useState("isActive",g.index),h=P.useState("itemProps"),b=P.context.typingRef,{getButtonProps:p,buttonRef:T}=Ue({native:!1,composite:!0}),V=ft({closeOnClick:l,highlighted:c,id:v,nodeId:M,store:P,typingRef:b,itemRef:R});function s(S){return he(V,S,p)}return n(s,"getItemProps"),I("a",e,{state:{highlighted:c},props:[h,m,s],ref:[R,T,o,g.ref]})},"MenuLinkItem"));var Ke=f(C(),1);var Rn=f(fe(),1);var Xn={...He,...Fe},xn=Ke.forwardRef(n(function(e,o){let{render:i,className:u,style:a,finalFocus:d,...l}=e,{store:r}=O(),{side:m,align:R}=X(),g=Ko(!0)!=null,x=r.useState("open"),M=r.useState("transitionStatus"),v=r.useState("popupProps"),P=r.useState("mounted"),c=r.useState("instantType"),h=r.useState("activeTriggerElement"),b=r.useState("parent"),p=r.useState("lastOpenChangeReason"),T=r.useState("rootId"),V=r.useState("floatingRootContext"),s=r.useState("floatingTreeRoot"),w=r.useState("closeDelay"),S=r.useState("activeTriggerElement"),j=r.useState("hoverEnabled"),N=r.useState("disabled"),_=r.useState("openMethod"),D=b.type==="context-menu";Ge({open:x,ref:r.context.popupRef,onComplete(){x&&r.context.onOpenChangeComplete?.(!0)}}),Ke.useEffect(()=>{function K(k){r.setOpen(!1,W(k.reason,k.domEvent))}return n(K,"handleClose"),s.events.on("close",K),()=>{s.events.off("close",K)}},[s.events,r]),To(V,{enabled:j&&!N&&!D&&b.type!=="menubar",closeDelay:w});let F=Ke.useCallback(K=>{r.set("popupElement",K)},[r]),$={transitionStatus:M,side:m,align:R,open:x,nested:b.type==="menu",instant:c},Y=I("div",e,{state:$,ref:[o,r.context.popupRef,F],stateAttributesMapping:Xn,props:[v,{onKeyDown(K){g&&Yo.has(K.key)&&K.stopPropagation()}},Uo(M),l,{"data-rootownerid":T}]}),Q=b.type===void 0||D;return(h||b.type==="menubar"&&p!==y.outsidePress)&&(Q=!0),(0,Rn.jsx)(po,{context:V,openInteractionType:_,modal:D,disabled:!P,returnFocus:d===void 0?Q:d,initialFocus:b.type!=="menu",restoreFocus:!0,externalTree:b.type!=="menubar"?s:void 0,previousFocusableElement:S,nextFocusableElement:b.type===void 0?r.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:b.type===void 0?r.context.beforeContentFocusGuardRef:void 0,children:Y})},"MenuPopup"));var hn=f(C(),1);var bt=f(C(),1);var Gt=bt.createContext(void 0);function Mn(){let t=bt.useContext(Gt);if(t===void 0)throw new Error(L(32));return t}n(Mn,"useMenuPortalContext");var Ut=f(fe(),1);var bn=hn.forwardRef(n(function(e,o){let{keepMounted:i=!1,...u}=e,{store:a}=O();return a.useState("mounted")||i?(0,Ut.jsx)(Gt.Provider,{value:i,children:(0,Ut.jsx)(io,{ref:o,...u})}):null},"MenuPortal"));var Ce=f(C(),1);var $e=f(fe(),1);var Cn=Ce.forwardRef(n(function(e,o){let{anchor:i,positionMethod:u="absolute",className:a,render:d,side:l,align:r,sideOffset:m=0,alignOffset:R=0,collisionBoundary:g="clipping-ancestors",collisionPadding:x=5,arrowPadding:M=5,sticky:v=!1,disableAnchorTracking:P=!1,collisionAvoidance:c=ro,style:h,...b}=e,{store:p}=O(),T=Mn(),V=be(!0),s=p.useState("parent"),w=p.useState("floatingRootContext"),S=p.useState("floatingTreeRoot"),j=p.useState("mounted"),N=p.useState("open"),_=p.useState("modal"),D=p.useState("openMethod"),F=p.useState("activeTriggerElement"),$=p.useState("transitionStatus"),Y=p.useState("positionerElement"),Q=p.useState("instantType"),K=p.useState("hasViewport"),k=p.useState("lastOpenChangeReason"),Z=p.useState("floatingNodeId"),re=p.useState("floatingParentNodeId"),ve=w.useState("domReferenceElement"),le=Ce.useRef(null),ie=no(Y,!1,!1),ge=i,Re=m,Pe=R,z=r,ae=c;s.type==="context-menu"&&(ge=i??s.context?.anchor,z=z??"start",!l&&z!=="center"&&(Pe=e.alignOffset??2,Re=e.sideOffset??-5));let ue=l,xe=z;s.type==="menu"?(ue=ue??"inline-end",xe=xe??"start",ae=e.collisionAvoidance??so):s.type==="menubar"&&(ue=ue??(s.context.orientation==="vertical"?"inline-end":"bottom"),xe=xe??"start");let Me=s.type==="context-menu",se=Fo({anchor:ge,floatingRootContext:w,positionMethod:V?"fixed":u,mounted:j,side:ue,sideOffset:Re,align:xe,alignOffset:Pe,arrowPadding:Me?0:M,collisionBoundary:g,collisionPadding:x,sticky:v,nodeId:Z,keepMounted:T,disableAnchorTracking:P,collisionAvoidance:ae,shiftCrossAxis:Me&&!("side"in ae&&ae.side==="flip"),externalTree:S,adaptiveOrigin:K?Lo:void 0});Ce.useEffect(()=>{function B(A){A.open&&(A.parentNodeId===Z&&p.set("hoverEnabled",!1),A.nodeId!==Z&&A.parentNodeId===p.select("floatingParentNodeId")&&p.setOpen(!1,W(y.siblingOpen)))}return n(B,"onMenuOpenChange"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[p,S.events,Z]),Ce.useEffect(()=>{if(p.select("floatingParentNodeId")==null)return;function B(A){if(A.open||A.nodeId!==p.select("floatingParentNodeId"))return;let Ie=A.reason??y.siblingOpen;p.setOpen(!1,W(Ie))}return n(B,"onParentClose"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[S.events,p]);let ce=Ne();Ce.useEffect(()=>{N||ce.clear()},[N,ce]),Ce.useEffect(()=>{function B(A){if(!(!N||A.nodeId!==p.select("floatingParentNodeId")))if(A.target&&F&&F!==A.target){let Ie=p.select("closeDelay");Ie>0?ce.isStarted()||ce.start(Ie,()=>{p.setOpen(!1,W(y.siblingOpen))}):p.setOpen(!1,W(y.siblingOpen))}else ce.clear()}return n(B,"onItemHover"),S.events.on("itemhover",B),()=>{S.events.off("itemhover",B)}},[S.events,N,F,p,ce]),Ce.useEffect(()=>{let B={open:N,nodeId:Z,parentNodeId:re,reason:p.select("lastOpenChangeReason")};S.events.emit("menuopenchange",B)},[S.events,N,p,Z,re]),Ee(()=>{let B=ve,A=le.current;if(B&&(le.current=B),A&&B&&B!==A){p.set("instantType",void 0);let Ie=new AbortController;return ie(()=>{p.set("instantType","trigger-change")},Ie.signal),()=>{Ie.abort()}}},[ve,ie,p]);let De={open:N,side:se.side,align:se.align,anchorHidden:se.anchorHidden,nested:s.type==="menu",instant:Q},Se=s.type==="menubar"&&s.context.modal,me=_&&k!==y.triggerHover;jo(N&&(Se||me),D==="touch",Y,F);let Ae=Ho(e,De,{styles:se.positionerStyles,transitionStatus:$,props:b,refs:[o,p.useStateSetter("positionerElement")],hidden:!j,inert:!N}),Ve=j&&s.type!=="menu"&&(s.type!=="menubar"&&_&&k!==y.triggerHover||s.type==="menubar"&&s.context.modal),G=null;return s.type==="menubar"?G=s.context.contentElement:s.type===void 0&&(G=F),(0,$e.jsxs)(Vt.Provider,{value:se,children:[Ve&&(0,$e.jsx)(Go,{ref:s.type==="context-menu"||s.type==="nested-context-menu"?s.context.internalBackdropRef:null,inert:Vo(!N),cutout:G}),(0,$e.jsx)(uo,{id:Z,children:(0,$e.jsx)(Wo,{elementsRef:p.context.itemDomElements,labelsRef:p.context.itemLabels,children:Ae})})]})},"MenuPositioner"));var ke=f(C(),1);var Ct=f(C(),1);var Ht=Ct.createContext(void 0);function vn(){let t=Ct.useContext(Ht);if(t===void 0)throw new Error(L(34));return t}n(vn,"useMenuRadioGroupContext");var jt=f(fe(),1);var In=ke.memo(ke.forwardRef(n(function(e,o){let{render:i,className:u,value:a,defaultValue:d,onValueChange:l,disabled:r=!1,style:m,"aria-labelledby":R,...g}=e,[x,M]=ke.useState(void 0),[v,P]=ot({controlled:a,default:d,name:"MenuRadioGroup"}),c=Le((T,V)=>{l?.(T,V),!V.isCanceled&&P(T)}),b=I("div",e,{state:{disabled:r},ref:o,props:{role:"group","aria-labelledby":R??x,"aria-disabled":r||void 0,...g}}),p=ke.useMemo(()=>({value:v,setValue:c,disabled:r}),[v,c,r]);return(0,jt.jsx)(Xe.Provider,{value:M,children:(0,jt.jsx)(Ht.Provider,{value:p,children:b})})},"MenuRadioGroup")));var It=f(C(),1);var vt=f(C(),1);var Yt=vt.createContext(void 0);function En(){let t=vt.useContext(Yt);if(t===void 0)throw new Error(L(35));return t}n(En,"useMenuRadioItemContext");var yn=f(fe(),1);var Pn=It.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,value:R,style:g,...x}=e,M=de({label:d}),v=X(!0),P=oe(a),{store:c}=O(),h=c.useState("isActive",M.index),b=c.useState("itemProps"),{value:p,setValue:T,disabled:V}=vn(),s=V||r,w=p===R,{getItemProps:S,itemRef:j}=Oe({closeOnClick:m,disabled:s,highlighted:h,id:P,store:c,nativeButton:l,nodeId:v?.context.nodeId,itemMetadata:Ye}),N=It.useMemo(()=>({disabled:s,highlighted:h,checked:w}),[s,h,w]);function _(F){let $=W(y.itemPress,F.nativeEvent,void 0,{preventUnmountOnClose(){}});T(R,$)}n(_,"handleClick");let D=I("div",e,{state:N,stateAttributesMapping:Te,props:[b,{role:"menuitemradio","aria-checked":w,onClick:_},x,S],ref:[j,o,M.ref]});return(0,yn.jsx)(Yt.Provider,{value:N,children:D})},"MenuRadioItem"));var Et=f(C(),1);var Sn=Et.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=En(),m=Et.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,stateAttributesMapping:Te,ref:[o,m],props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuRadioItemIndicator"));var H=f(C(),1);var yt=f(C(),1);var qn=yt.createContext(null);function Pt(t){let e=yt.useContext(qn);if(e===null&&!t)throw new Error(L(5));return e}n(Pt,"useMenubarContext");var qe=f(C(),1);var Qn={...No,disabled:U(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:U(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:U(t=>t.openMethod),allowMouseEnter:U(t=>t.allowMouseEnter),highlightItemOnHover:U(t=>t.highlightItemOnHover),stickIfOpen:U(t=>t.stickIfOpen),parent:U(t=>t.parent),rootId:U(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:U(t=>t.activeIndex),isActive:U((t,e)=>t.activeIndex===e),hoverEnabled:U(t=>t.hoverEnabled),instantType:U(t=>t.instantType),lastOpenChangeReason:U(t=>t.openChangeReason),floatingTreeRoot:U(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:U(t=>t.floatingNodeId),floatingParentNodeId:U(t=>t.floatingParentNodeId),itemProps:U(t=>t.itemProps),closeDelay:U(t=>t.closeDelay),hasViewport:U(t=>t.hasViewport),keyboardEventRelay:U(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})},ze=class t extends go{static{n(this,"MenuStore")}constructor(e){super({...Zn(),...e},{positionerRef:qe.createRef(),popupRef:qe.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:qe.createRef(),beforeContentFocusGuardRef:qe.createRef(),onOpenChangeComplete:void 0,triggerElements:new Po},Qn),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let i=o.store.select("rootId"),u=o.store.select("floatingTreeRoot"),a=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{let d=o.store.select("rootId"),l=o.store.select("floatingTreeRoot"),r=o.store.select("keyboardEventRelay");i===d&&u===l&&a===r||(i=d,u=l,a=r,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:e,eventDetails:o})}static useStore(e,o){let i=Qt(()=>new t(o)).current;return e??i}unsubscribeParentListener=null};function Zn(){return{...So(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new nt,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:pe,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}n(Zn,"createInitialState");var St=f(C(),1);var Kt=St.createContext(void 0);function Nt(){return St.useContext(Kt)}n(Nt,"useMenuSubmenuRootContext");var $t=f(fe(),1);var Ot=mo(n(function(e){let{children:o,open:i,onOpenChange:u,onOpenChangeComplete:a,defaultOpen:d=!1,disabled:l=!1,modal:r,loopFocus:m=!0,orientation:R="vertical",actionsRef:g,closeParentOnEsc:x=!1,handle:M,triggerId:v,defaultTriggerId:P=null,highlightItemOnHover:c=!0}=e,h=be(!0),b=O(!0),p=Pt(!0),T=Nt(),V=H.useMemo(()=>T&&b?{type:"menu",store:b.store}:p?{type:"menubar",context:p}:h&&!b?{type:"context-menu",context:h}:{type:void 0},[h,b,p,T]),s=ze.useStore(M?.store,{open:d,openProp:i,activeTriggerId:P,triggerIdProp:v,parent:V});Co(s,i,d,P),s.useControlledProp("openProp",i),s.useControlledProp("triggerIdProp",v),s.useContextCallback("onOpenChangeComplete",a);let w=wt(),S=wt(),j=s.useState("floatingTreeRoot"),N=st(j),_=rt(),D=s.useState("open"),F=s.useState("activeTriggerElement"),$=s.useState("positionerElement"),Y=s.useState("hoverEnabled"),Q=s.useState("disabled"),K=s.useState("lastOpenChangeReason"),k=s.useState("parent"),Z=s.useState("activeIndex"),re=s.useState("payload"),ve=s.useState("floatingParentNodeId"),le=H.useRef(null),ie=H.useRef(k.type!=="context-menu"),ge=Ne(),Re=H.useRef(!0),Pe=Ne(),z=ve!=null,{openMethod:ae,triggerProps:ue}=Ao(D);s.useSyncedValues({disabled:l,highlightItemOnHover:c,modal:k.type===void 0?r:void 0,openMethod:ae,rootId:w}),Io(s);let{forceUnmount:xe}=Eo(D,s,()=>{s.update({allowMouseEnter:!1,stickIfOpen:!0})});Ee(()=>{h&&!b?s.update({parent:{type:"context-menu",context:h},floatingNodeId:N,floatingParentNodeId:_}):b&&s.update({floatingNodeId:N,floatingParentNodeId:_})},[h,b,N,_,s]),H.useEffect(()=>{if(D||(le.current=null),k.type==="context-menu"){if(!D){ge.clear(),ie.current=!1;return}ge.start(500,()=>{ie.current=!0})}},[ge,D,k.type]),Ee(()=>{!D&&!Y&&s.set("hoverEnabled",!0)},[D,Y,s]);let Me=Le((E,J)=>{let te=J.reason;if(D===E&&J.trigger===F&&K===te)return;let Yn=bo(J);if(!E&&J.trigger==null&&(J.trigger=F??void 0),u?.(E,J),J.isCanceled)return;s.state.floatingRootContext.dispatchOpenChange(E,J);let Ze=J.event;if(E===!1&&Ze?.type==="click"&&Ze.pointerType==="touch"&&!Re.current)return;E&&te===y.triggerFocus?(Re.current=!1,Pe.start(300,()=>{Re.current=!0})):(Re.current=!0,Pe.clear());let Xt=(te===y.triggerPress||te===y.itemPress)&&Ze.detail===0&&Ze?.isTrusted,Kn=!E&&(te===y.escapeKey||te==null),qt={open:E,openChangeReason:te};le.current=J.event??null,ho(qt,E,J.trigger,Yn()),s.update(qt),k.type==="menubar"&&(te===y.triggerFocus||te===y.focusOut||te===y.triggerHover||te===y.listNavigation||te===y.siblingOpen)?s.set("instantType","group"):Xt||Kn?s.set("instantType",Xt?"click":"dismiss"):s.set("instantType",void 0)}),se=Ro({popupStore:s,floatingId:S,nested:_!=null,onOpenChange:Me}),ce=se.context.events;H.useEffect(()=>{let E=n(({open:J,eventDetails:te})=>Me(J,te),"handleSetOpenEvent");return ce.on("setOpen",E),()=>{ce?.off("setOpen",E)}},[ce,Me]);let De=H.useCallback(()=>{s.setOpen(!1,W(y.imperativeAction))},[s]);H.useImperativeHandle(g,()=>({unmount:xe,close:De}),[xe,De]);let Se;k.type==="context-menu"&&(Se=k.context),H.useImperativeHandle(Se?.positionerRef,()=>$,[$]),H.useImperativeHandle(Se?.actionsRef,()=>({setOpen:Me}),[Me]);let me=lo(se,{enabled:!Q,bubbles:{escapeKey:x&&k.type==="menu"},outsidePress(){return k.type!=="context-menu"||le.current?.type==="contextmenu"?!0:ie.current},externalTree:z?j:void 0}),Ae=Bo(),Ve=H.useCallback(E=>{s.select("activeIndex")!==E&&s.set("activeIndex",E)},[s]),G=ko(se,{enabled:!Q,listRef:s.context.itemDomElements,activeIndex:Z,nested:k.type!==void 0,loopFocus:m,orientation:R,parentOrientation:k.type==="menubar"?k.context.orientation:void 0,rtl:Ae==="rtl",disabledIndices:Je,onNavigate:Ve,openOnArrowKeyDown:k.type!=="context-menu",externalTree:z?j:void 0,focusItemOnHover:c}),B=H.useCallback(E=>{s.context.typingRef.current=E},[s]),A=wo(se,{enabled:!Q,listRef:s.context.itemLabels,elementsRef:s.context.itemDomElements,activeIndex:Z,resetMs:500,onMatch:n(E=>{D&&E!==Z&&s.set("activeIndex",E)},"onMatch"),onTyping:B}),Ie=H.useMemo(()=>{let E=he(A.reference,G.reference,me.reference,{onMouseMove(){s.set("allowMouseEnter",!0)}},ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=D,E},[s,A.reference,G.reference,me.reference,ue,D]),Gn=H.useMemo(()=>{let E=he(G.trigger,me.trigger,ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=!1,E},[G.trigger,me.trigger,ue]),Un=H.useMemo(()=>he(xo,{id:S,role:"menu","aria-labelledby":F?.id,onMouseMove(){s.set("allowMouseEnter",!0),k.type==="menu"&&s.set("hoverEnabled",!1)},onClick(){s.select("hoverEnabled")&&s.set("hoverEnabled",!1)},onKeyDown(E){let J=s.select("keyboardEventRelay");J&&!E.isPropagationStopped()&&J(E)}},A.floating,G.floating,me.floating),[F,S,k.type,s,A.floating,G.floating,me.floating]),Hn=G.item??pe;yo(s,{floatingRootContext:se,activeTriggerProps:Ie,inactiveTriggerProps:Gn,popupProps:Un,itemProps:Hn});let jn=H.useMemo(()=>({store:s,parent:V}),[s,V]),Wt=(0,$t.jsx)(Bt.Provider,{value:jn,children:typeof o=="function"?o({payload:re}):o});return k.type===void 0||k.type==="context-menu"?(0,$t.jsx)(co,{externalTree:j,children:Wt}):Wt},"MenuRoot"));var Nn=f(C(),1);var zt=f(fe(),1);function On(t){let e=O().store,o=Nn.useMemo(()=>({parentMenu:e}),[e]);return(0,zt.jsx)(Kt.Provider,{value:o,children:(0,zt.jsx)(Ot,{...t})})}n(On,"MenuSubmenuRoot");var q=f(C(),1);var Tn=f(C(),1);function kn(t={}){let{highlightItemOnHover:e,highlightedIndex:o,onHighlightedIndexChange:i}=ct(),{ref:u,index:a}=de(t),d=o===a,l=Tn.useRef(null),r=et(u,l);return{compositeProps:{tabIndex:d?0:-1,onFocus(){i(a)},onMouseMove(){let R=l.current;if(!e||!R)return;let g=R.hasAttribute("disabled")||R.ariaDisabled==="true";!d&&!g&&R.focus()}},compositeRef:r,index:a}}n(kn,"useCompositeItem");function wn(t){let{render:e,className:o,style:i,state:u=pe,props:a=Je,refs:d=Je,metadata:l,stateAttributesMapping:r,tag:m="div",...R}=t,{compositeProps:g,compositeRef:x}=kn({metadata:l});return I(m,t,{state:u,ref:[...d,x],props:[g,...a,R],stateAttributesMapping:r})}n(wn,"CompositeItem");function Jt(t){if(Zt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!eo(t))return Jt(to(t))}n(Jt,"findRootOwnerId");var Tt=f(C(),1);function _n(t){let{enabled:e=!0,mouseDownAction:o,open:i}=t,u=Tt.useRef(!1);return Tt.useMemo(()=>e?{onMouseDown:n(a=>{(o==="open"&&!i||o==="close"&&i)&&(u.current=!0,We(a.currentTarget).addEventListener("click",()=>{u.current=!1},{once:!0}))},"onMouseDown"),onClick:n(a=>{u.current&&(u.current=!1,a.preventBaseUIHandler())},"onClick")}:pe,[e,o,i])}n(_n,"useMixedToggleClickHandler");var we=f(fe(),1);var kt=2,Dn=fo(n(function(e,o){let{render:i,className:u,style:a,disabled:d=!1,nativeButton:l=!0,id:r,openOnHover:m,delay:R=100,closeDelay:g=0,handle:x,payload:M,...v}=e,P=O(!0),c=x?.store??P?.store;if(!c)throw new Error(L(85));let h=oe(r),b=c.useState("isTriggerActive",h),p=c.useState("floatingRootContext"),T=c.useState("isOpenedByTrigger",h),V=c.useState("triggerPopupId",h),s=q.useRef(null),w=tr(),S=ct(!0),j=ao(),N=q.useMemo(()=>j??new nt,[j]),_=st(N),D=rt(),{registerTrigger:F,isMountedByThisTrigger:$}=vo(h,s,c,{payload:M,closeDelay:g,parent:w,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:D,keyboardEventRelay:S?.relayKeyboardEvent}),Y=w.type==="menubar",Q=c.useState("disabled"),K=d||Q||Y&&w.context.disabled,{getButtonProps:k,buttonRef:Z}=Ue({disabled:K,native:l});q.useEffect(()=>{!T&&w.type===void 0&&(c.context.allowMouseUpTriggerRef.current=!1)},[c,T,w.type]);let re=q.useRef(null),ve=Ne(),le=Le(G=>{if(!re.current)return;ve.clear(),c.context.allowMouseUpTriggerRef.current=!1;let B=G.target;if(_t(re.current,B)||_t(c.select("positionerElement"),B)||B===re.current||B!=null&&Jt(B)===c.select("rootId"))return;let A=Xo(re.current);G.clientX>=A.left-kt&&G.clientX<=A.right+kt&&G.clientY>=A.top-kt&&G.clientY<=A.bottom+kt||N.events.emit("close",{domEvent:G,reason:y.cancelOpen})});q.useEffect(()=>{T&&c.select("lastOpenChangeReason")===y.triggerHover&&We(re.current).addEventListener("mouseup",le,{once:!0})},[T,le,c]);let ie=Y&&w.context.hasSubmenuOpen,Re=at(p,{enabled:(m??ie)&&!K&&w.type!=="context-menu"&&(!Y||ie&&!$),handleClose:ut({blockPointerEvents:!Y}),mouseOnly:!0,move:!1,restMs:w.type===void 0?R:void 0,delay:{close:g},triggerElementRef:s,externalTree:N,isActiveTrigger:b,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),Pe=er(T,c.select("lastOpenChangeReason")),z=it(p,{enabled:!K&&w.type!=="context-menu",event:T&&Y?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:w.type===void 0?Pe:!1}),ae=Oo(p,{enabled:!K&&ie}),ue=_n({open:T,enabled:Y,mouseDownAction:"open"}),xe=q.useMemo(()=>he(ae.reference,z.reference),[ae.reference,z.reference]),Me=c.useState("triggerProps",$),{preFocusGuardRef:se,handlePreFocusGuardFocus:ce,handleFocusTargetFocus:De}=Do(c,s),Se={disabled:K,open:T},me=[re,o,Z,F,s],Ae=[xe,Re??pe,Me,{"aria-haspopup":"menu","aria-controls":V,id:h,onMouseDown:n(G=>{if(c.select("open"))return;ve.start(200,()=>{c.context.allowMouseUpTriggerRef.current=!0}),We(G.currentTarget).addEventListener("mouseup",le,{once:!0})},"onMouseDown")},Y?{role:"menuitem"}:{},ue,v,k],Ve=I("button",e,{enabled:!Y,stateAttributesMapping:At,state:Se,ref:me,props:Ae});return Y?(0,we.jsx)(wn,{tag:"button",render:i,className:u,style:a,state:Se,refs:me,props:Ae,stateAttributesMapping:At}):T?(0,we.jsxs)(q.Fragment,{children:[(0,we.jsx)(Dt,{ref:se,onFocus:ce},`${h}-pre-focus-guard`),(0,we.jsx)(q.Fragment,{children:Ve},h),(0,we.jsx)(Dt,{ref:c.context.triggerFocusTargetRef,onFocus:De},`${h}-post-focus-guard`)]}):(0,we.jsx)(q.Fragment,{children:Ve},h)},"MenuTrigger"));function er(t,e){let o=Ne(),[i,u]=q.useState(!1);return Ee(()=>{t&&e==="trigger-hover"?(u(!0),o.start(500,()=>{u(!1)})):t||(o.clear(),u(!1))},[t,e,o]),i}n(er,"useStickIfOpen");function tr(){let t=be(!0),e=O(!0),o=Pt(!0);return q.useMemo(()=>o?{type:"menubar",context:o}:t&&!e?{type:"context-menu",context:t}:{type:void 0},[t,e,o])}n(tr,"useMenuParent");var Vn=f(C(),1);var An=(function(t){return t.popupWidth="--popup-width",t.popupHeight="--popup-height",t})({});var or={activationDirection:n(t=>t?{"data-activation-direction":t}:null,"activationDirection")},Bn=Vn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,children:d,...l}=e,{store:r}=O(),{side:m}=X(),R=r.useState("instantType"),{children:g,state:x}=$o({store:r,side:m,cssVars:An,children:d}),M={activationDirection:x.activationDirection,transitioning:x.transitioning,instant:R};return I("div",e,{state:M,ref:o,props:[l,{children:g}],stateAttributesMapping:or})},"MenuViewport"));var ye=f(C(),1);var Ln=ye.forwardRef(n(function(e,o){let{render:i,className:u,style:a,label:d,id:l,nativeButton:r=!1,openOnHover:m=!0,delay:R=100,closeDelay:g=0,disabled:x=!1,...M}=e,v=de({label:d}),P=X(),{store:c}=O(),h=oe(l),b=c.useState("open"),p=c.useState("floatingRootContext"),T=c.useState("floatingTreeRoot"),V=c.useState("triggerPopupId",h),s=Mo(h,c),w=ye.useCallback(z=>{let ae=s(z);return z!==null&&c.select("open")&&c.select("activeTriggerId")==null&&c.update({activeTriggerId:h,activeTriggerElement:z,closeDelay:g}),ae},[s,g,c,h]),S=ye.useRef(null),j=ye.useCallback(z=>{S.current=z,c.set("activeTriggerElement",z)},[c]),N=Nt();if(!N?.parentMenu)throw new Error(L(37));c.useSyncedValue("closeDelay",g);let _=N.parentMenu,D=c.useState("disabled"),F=_.useState("disabled"),$=x||D||F,Y=_.useState("itemProps"),Q=_.useState("isActive",v.index),K=ye.useMemo(()=>({type:"submenu-trigger",setActive(){_.select("highlightItemOnHover")&&_.set("activeIndex",v.index)}}),[_,v.index]),{getItemProps:k,itemRef:Z}=Oe({closeOnClick:!1,disabled:$,highlighted:Q,id:h,store:c,typingRef:_.context.typingRef,nativeButton:r,itemMetadata:K,nodeId:P?.context.nodeId}),re=c.useState("hoverEnabled"),ve=at(p,{enabled:re&&m&&!$,handleClose:ut({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:R,delay:{open:R,close:g},shouldOpen:R>0?()=>_.select("allowMouseEnter"):void 0,triggerElementRef:S,externalTree:T,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),ie=it(p,{enabled:!$,event:"mousedown",toggle:!m,ignoreMouse:m,stickIfOpen:!1}).reference??pe,ge=c.useState("triggerProps",!0);return delete ge.id,I("div",e,{state:{disabled:$,highlighted:Q,open:b},stateAttributesMapping:_o,props:[ie,ve,ge,Y,{"aria-controls":V,tabIndex:b||Q?0:-1,onBlur(){Q&&_.set("activeIndex",null)}},M,k],ref:[o,v.ref,Z,w,j]})},"MenuSubmenuTrigger"));var Qe=class{static{n(this,"MenuHandle")}constructor(){this.store=new ze}open(e){let o=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!o)throw new Error(L(83,e));this.store.setOpen(!0,W("imperative-action",void 0,o))}close(){this.store.setOpen(!1,W("imperative-action",void 0,void 0))}get isOpen(){return this.store.select("open")}};function Fn(){return new Qe}n(Fn,"createMenuHandle");var ee=f(fe(),1);function Fc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Root,{"data-slot":"dropdown-menu",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Fc,"_");function Gc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Trigger,{"data-slot":"dropdown-menu-trigger",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Gc,"y");function Uc({align:t="start",alignOffset:e=0,side:o="bottom",sideOffset:i=4,className:u,...a}){return(0,ee.jsx)(ne.Portal,{children:(0,ee.jsx)(ne.Positioner,{className:"isolate z-50 outline-none",align:t,alignOffset:e,side:o,sideOffset:i,children:(0,ee.jsx)(ne.Popup,{"data-slot":"dropdown-menu-content",className:Be("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!",u),...a})})})}n(Uc,"I");function Hc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Group,{"data-slot":"dropdown-menu-group",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Hc,"$");function jc(t){let e=(0,_e.c)(10),o,i,u;e[0]!==t?({className:o,inset:i,...u}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u):(o=e[1],i=e[2],u=e[3]);let a;e[4]!==o?(a=Be("px-2 py-2 text-xs text-muted-foreground data-inset:ps-7",o),e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==i||e[7]!==u||e[8]!==a?(d=(0,ee.jsx)(ne.GroupLabel,{"data-slot":"dropdown-menu-label","data-inset":i,className:a,...u}),e[6]=i,e[7]=u,e[8]=a,e[9]=d):d=e[9],d}n(jc,"O");function Yc({className:t,inset:e,variant:o="default",...i}){return(0,ee.jsx)(ne.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":o,className:Be("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...i})}n(Yc,"P");function Kc(t){let e=(0,_e.c)(15),o,i,u,a,d;e[0]!==t?({className:u,children:i,checked:o,inset:a,...d}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u,e[4]=a,e[5]=d):(o=e[1],i=e[2],u=e[3],a=e[4],d=e[5]);let l;e[6]!==u?(l=Be("relative flex cursor-default items-center gap-2 rounded-md py-2 pe-8 ps-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",u),e[6]=u,e[7]=l):l=e[7];let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=(0,ee.jsx)("span",{className:"pointer-events-none absolute end-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:(0,ee.jsx)(ne.CheckboxItemIndicator,{children:(0,ee.jsx)(Jo,{icon:zo,strokeWidth:2})})}),e[8]=r):r=e[8];let m;return e[9]!==o||e[10]!==i||e[11]!==a||e[12]!==d||e[13]!==l?(m=(0,ee.jsxs)(ne.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a,className:l,checked:o,...d,children:[r,i]}),e[9]=o,e[10]=i,e[11]=a,e[12]=d,e[13]=l,e[14]=m):m=e[14],m}n(Kc,"j");function $c(t){let e=(0,_e.c)(8),o,i;e[0]!==t?({className:o,...i}=t,e[0]=t,e[1]=o,e[2]=i):(o=e[1],i=e[2]);let u;e[3]!==o?(u=Be("-mx-1 h-px bg-border",o),e[3]=o,e[4]=u):u=e[4];let a;return e[5]!==i||e[6]!==u?(a=(0,ee.jsx)(ne.Separator,{"data-slot":"dropdown-menu-separator",className:u,...i}),e[5]=i,e[6]=u,e[7]=a):a=e[7],a}n($c,"C");export{Fc as a,Gc as b,Uc as c,Hc as d,jc as e,Yc as f,Kc as g,$c as h};
|
|
1
|
+
import{b as de,c as Wo,d as Xo}from"./chunk-SD4BERSA.js";import{a as qo}from"./chunk-IC4L6G56.js";import{a as So,c as No,d as Do,e as $o}from"./chunk-I6A5C46N.js";import{A as lo,D as U,E as mo,F as fo,I as go,K as Ro,L as xo,O as Mo,P as ho,Q as bo,S as Co,T as vo,U as Io,V as Eo,W as yo,Y as Po,_ as Oo,aa as To,ba as at,ca as ko,da as wo,ea as ut,ha as _o,ia as At,ja as He,l as Dt,la as Ao,ma as Vo,n as ro,na as Lo,o as so,oa as Fo,pa as Go,q as io,qa as Uo,r as nt,ra as Ho,s as rt,t as ao,ta as jo,u as st,ua as Yo,v as uo,va as Ko,w as co,x as po,y as it}from"./chunk-2QSHLBCO.js";import{b as Bo}from"./chunk-BGBLQ563.js";import{i as zo,k as Jo}from"./chunk-QBWRC5YX.js";import{C as Ne,I as Fe,J as no,K as Ge,L as tt,M as ot,O as y,P as W,d as wt,e as oe,h as We,i as oo,p as _t}from"./chunk-CFPZYHPY.js";import{a as ct,b as Ue}from"./chunk-FXCBF4XT.js";import{a as Ee,c as Le,i as Zt,q as eo,t as to}from"./chunk-2OUPA2WJ.js";import{a as he,c as L,d as Qt,e as et,h as Je,i as pe,j as I}from"./chunk-6ST5ECQA.js";import{a as n,d as $n,e as f,f as C,g as zn,h as fe,j as Be}from"./chunk-3XIESWL4.js";var _e=f(zn(),1),Dc=f(C(),1);var ne={};$n(ne,{Arrow:()=>Zo,Backdrop:()=>tn,CheckboxItem:()=>sn,CheckboxItemIndicator:()=>an,Group:()=>pn,GroupLabel:()=>ln,Handle:()=>Qe,Item:()=>fn,LinkItem:()=>gn,Popup:()=>xn,Portal:()=>bn,Positioner:()=>Cn,RadioGroup:()=>In,RadioItem:()=>Pn,RadioItemIndicator:()=>Sn,Root:()=>Ot,Separator:()=>qo,SubmenuRoot:()=>On,SubmenuTrigger:()=>Ln,Trigger:()=>Dn,Viewport:()=>Bn,createHandle:()=>Fn});var Qo=f(C(),1);var pt=f(C(),1);var Vt=pt.createContext(void 0);function X(t){let e=pt.useContext(Vt);if(e===void 0&&!t)throw new Error(L(33));return e}n(X,"useMenuPositionerContext");var dt=f(C(),1);var Bt=dt.createContext(void 0);function O(t){let e=dt.useContext(Bt);if(e===void 0&&!t)throw new Error(L(36));return e}n(O,"useMenuRootContext");var Zo=Qo.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),{arrowRef:r,side:m,align:R,arrowUncentered:g,arrowStyles:x}=X(),v={open:l.useState("open"),side:m,align:R,uncentered:g};return I("div",e,{ref:[r,o],stateAttributesMapping:He,state:v,props:{style:x,"aria-hidden":!0,...d}})},"MenuArrow"));var en=f(C(),1);var lt=f(C(),1);var Jn=lt.createContext(void 0);function be(t=!0){let e=lt.useContext(Jn);if(e===void 0&&!t)throw new Error(L(25));return e}n(be,"useContextMenuRootContext");var Wn={...He,...Fe},tn=en.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,{store:l}=O(),r=l.useState("open"),m=l.useState("mounted"),R=l.useState("transitionStatus"),g=l.useState("lastOpenChangeReason"),x=be(),M={open:r,transitionStatus:R};return I("div",e,{ref:x?.backdropRef?[o,x.backdropRef]:o,state:M,stateAttributesMapping:Wn,props:[{role:"presentation",hidden:!m,style:{pointerEvents:g===y.triggerHover?"none":void 0,userSelect:"none",WebkitUserSelect:"none"}},d]})},"MenuBackdrop"));var gt=f(C(),1);var mt=f(C(),1);var Lt=mt.createContext(void 0);function on(){let t=mt.useContext(Lt);if(t===void 0)throw new Error(L(30));return t}n(on,"useMenuCheckboxItemContext");var je=f(C(),1);var nn=f(C(),1);function ft(t){let{closeOnClick:e,highlighted:o,id:i,nodeId:u,store:a,typingRef:d,itemRef:l,itemMetadata:r}=t,{events:m}=a.useState("floatingTreeRoot"),R=a.useState("open"),g=be(!0),x=g!==void 0;return nn.useMemo(()=>({id:i,role:"menuitem",tabIndex:R&&o?0:-1,onKeyDown(M){M.key===" "&&d?.current&&M.preventDefault()},onMouseMove(M){u&&m.emit("itemhover",{nodeId:u,target:M.currentTarget})},onClick(M){e&&m.emit("close",{domEvent:M,reason:y.itemPress})},onMouseUp(M){if(g){let v=g.initialCursorPointRef.current;if(g.initialCursorPointRef.current=null,x&&v&&Math.abs(M.clientX-v.x)<=1&&Math.abs(M.clientY-v.y)<=1||x&&!oo.os.mac&&M.button===2)return}l.current&&a.context.allowMouseUpTriggerRef.current&&(!x||M.button===2)&&(!r||r.type==="regular-item")&&l.current.click()}}),[e,o,i,m,u,R,a,d,l,g,x,r])}n(ft,"useMenuItemCommonProps");var Ye={type:"regular-item"};function Oe(t){let{closeOnClick:e,disabled:o=!1,highlighted:i,id:u,store:a,typingRef:d=a.context.typingRef,nativeButton:l,itemMetadata:r,nodeId:m}=t,R=a.useState("disabled"),g=o||R,x=je.useRef(null),{getButtonProps:M,buttonRef:v}=Ue({disabled:g,focusableWhenDisabled:!0,native:l,composite:!0}),P=ft({closeOnClick:e,highlighted:i,id:u,nodeId:m,store:a,typingRef:d,itemRef:x,itemMetadata:r}),c=je.useCallback(b=>he(P,{onMouseEnter(){r.type==="submenu-trigger"&&r.setActive()}},b,M),[P,M,r]),h=et(x,v);return je.useMemo(()=>({getItemProps:c,itemRef:h}),[c,h])}n(Oe,"useMenuItem");var Ft=(function(t){return t.checked="data-checked",t.unchecked="data-unchecked",t.disabled="data-disabled",t.highlighted="data-highlighted",t})({});var Te={checked(t){return t?{[Ft.checked]:""}:{[Ft.unchecked]:""}},...Fe};var rn=f(fe(),1);var sn=gt.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,checked:R,defaultChecked:g,onCheckedChange:x,style:M,...v}=e,P=de({label:d}),c=X(!0),h=oe(a),{store:b}=O(),p=b.useState("isActive",P.index),T=b.useState("itemProps"),[V,s]=ot({controlled:R,default:g??!1,name:"MenuCheckboxItem",state:"checked"}),{getItemProps:w,itemRef:S}=Oe({closeOnClick:m,disabled:r,highlighted:p,id:h,store:b,nativeButton:l,nodeId:c?.context.nodeId,itemMetadata:Ye}),j=gt.useMemo(()=>({disabled:r,highlighted:p,checked:V}),[r,p,V]);function N(D){let F=W(y.itemPress,D.nativeEvent,void 0,{preventUnmountOnClose(){}});x?.(!V,F),!F.isCanceled&&s($=>!$)}n(N,"handleClick");let _=I("div",e,{state:j,stateAttributesMapping:Te,props:[T,{role:"menuitemcheckbox","aria-checked":V,onClick:N},v,w],ref:[S,o,P.ref]});return(0,rn.jsx)(Lt.Provider,{value:j,children:_})},"MenuCheckboxItem"));var Rt=f(C(),1);var an=Rt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=on(),m=Rt.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,ref:[o,m],stateAttributesMapping:Te,props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuCheckboxItemIndicator"));var Mt=f(C(),1);var xt=f(C(),1);var Xe=xt.createContext(void 0);function un(){let t=xt.useContext(Xe);if(t===void 0)throw new Error(L(31));return t}n(un,"useMenuGroupRootContext");var cn=f(fe(),1);var pn=Mt.forwardRef(n(function(e,o){let{render:i,className:u,style:a,...d}=e,[l,r]=Mt.useState(void 0),m=I("div",e,{ref:o,props:{role:"group","aria-labelledby":l,...d}});return(0,cn.jsx)(Xe.Provider,{value:r,children:m})},"MenuGroup"));var dn=f(C(),1);var ln=dn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,id:d,...l}=e,r=oe(d),m=un();return Ee(()=>(m(r),()=>{m(void 0)}),[m,r]),I("div",e,{ref:o,props:{id:r,role:"presentation",...l}})},"MenuGroupLabel"));var mn=f(C(),1);var fn=mn.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!0,style:R,...g}=e,x=de({label:d}),M=X(!0),v=oe(a),{store:P}=O(),c=P.useState("isActive",x.index),h=P.useState("itemProps"),{getItemProps:b,itemRef:p}=Oe({closeOnClick:m,disabled:r,highlighted:c,id:v,store:P,nativeButton:l,nodeId:M?.context.nodeId,itemMetadata:Ye});return I("div",e,{state:{disabled:r,highlighted:c},props:[h,g,b],ref:[p,o,x.ref]})},"MenuItem"));var ht=f(C(),1);var gn=ht.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,closeOnClick:l=!1,style:r,...m}=e,R=ht.useRef(null),g=de({label:d}),M=X(!0)?.context.nodeId,v=oe(a),{store:P}=O(),c=P.useState("isActive",g.index),h=P.useState("itemProps"),b=P.context.typingRef,{getButtonProps:p,buttonRef:T}=Ue({native:!1,composite:!0}),V=ft({closeOnClick:l,highlighted:c,id:v,nodeId:M,store:P,typingRef:b,itemRef:R});function s(S){return he(V,S,p)}return n(s,"getItemProps"),I("a",e,{state:{highlighted:c},props:[h,m,s],ref:[R,T,o,g.ref]})},"MenuLinkItem"));var Ke=f(C(),1);var Rn=f(fe(),1);var Xn={...He,...Fe},xn=Ke.forwardRef(n(function(e,o){let{render:i,className:u,style:a,finalFocus:d,...l}=e,{store:r}=O(),{side:m,align:R}=X(),g=Ko(!0)!=null,x=r.useState("open"),M=r.useState("transitionStatus"),v=r.useState("popupProps"),P=r.useState("mounted"),c=r.useState("instantType"),h=r.useState("activeTriggerElement"),b=r.useState("parent"),p=r.useState("lastOpenChangeReason"),T=r.useState("rootId"),V=r.useState("floatingRootContext"),s=r.useState("floatingTreeRoot"),w=r.useState("closeDelay"),S=r.useState("activeTriggerElement"),j=r.useState("hoverEnabled"),N=r.useState("disabled"),_=r.useState("openMethod"),D=b.type==="context-menu";Ge({open:x,ref:r.context.popupRef,onComplete(){x&&r.context.onOpenChangeComplete?.(!0)}}),Ke.useEffect(()=>{function K(k){r.setOpen(!1,W(k.reason,k.domEvent))}return n(K,"handleClose"),s.events.on("close",K),()=>{s.events.off("close",K)}},[s.events,r]),To(V,{enabled:j&&!N&&!D&&b.type!=="menubar",closeDelay:w});let F=Ke.useCallback(K=>{r.set("popupElement",K)},[r]),$={transitionStatus:M,side:m,align:R,open:x,nested:b.type==="menu",instant:c},Y=I("div",e,{state:$,ref:[o,r.context.popupRef,F],stateAttributesMapping:Xn,props:[v,{onKeyDown(K){g&&Yo.has(K.key)&&K.stopPropagation()}},Uo(M),l,{"data-rootownerid":T}]}),Q=b.type===void 0||D;return(h||b.type==="menubar"&&p!==y.outsidePress)&&(Q=!0),(0,Rn.jsx)(po,{context:V,openInteractionType:_,modal:D,disabled:!P,returnFocus:d===void 0?Q:d,initialFocus:b.type!=="menu",restoreFocus:!0,externalTree:b.type!=="menubar"?s:void 0,previousFocusableElement:S,nextFocusableElement:b.type===void 0?r.context.triggerFocusTargetRef:void 0,beforeContentFocusGuardRef:b.type===void 0?r.context.beforeContentFocusGuardRef:void 0,children:Y})},"MenuPopup"));var hn=f(C(),1);var bt=f(C(),1);var Gt=bt.createContext(void 0);function Mn(){let t=bt.useContext(Gt);if(t===void 0)throw new Error(L(32));return t}n(Mn,"useMenuPortalContext");var Ut=f(fe(),1);var bn=hn.forwardRef(n(function(e,o){let{keepMounted:i=!1,...u}=e,{store:a}=O();return a.useState("mounted")||i?(0,Ut.jsx)(Gt.Provider,{value:i,children:(0,Ut.jsx)(io,{ref:o,...u})}):null},"MenuPortal"));var Ce=f(C(),1);var $e=f(fe(),1);var Cn=Ce.forwardRef(n(function(e,o){let{anchor:i,positionMethod:u="absolute",className:a,render:d,side:l,align:r,sideOffset:m=0,alignOffset:R=0,collisionBoundary:g="clipping-ancestors",collisionPadding:x=5,arrowPadding:M=5,sticky:v=!1,disableAnchorTracking:P=!1,collisionAvoidance:c=ro,style:h,...b}=e,{store:p}=O(),T=Mn(),V=be(!0),s=p.useState("parent"),w=p.useState("floatingRootContext"),S=p.useState("floatingTreeRoot"),j=p.useState("mounted"),N=p.useState("open"),_=p.useState("modal"),D=p.useState("openMethod"),F=p.useState("activeTriggerElement"),$=p.useState("transitionStatus"),Y=p.useState("positionerElement"),Q=p.useState("instantType"),K=p.useState("hasViewport"),k=p.useState("lastOpenChangeReason"),Z=p.useState("floatingNodeId"),re=p.useState("floatingParentNodeId"),ve=w.useState("domReferenceElement"),le=Ce.useRef(null),ie=no(Y,!1,!1),ge=i,Re=m,Pe=R,z=r,ae=c;s.type==="context-menu"&&(ge=i??s.context?.anchor,z=z??"start",!l&&z!=="center"&&(Pe=e.alignOffset??2,Re=e.sideOffset??-5));let ue=l,xe=z;s.type==="menu"?(ue=ue??"inline-end",xe=xe??"start",ae=e.collisionAvoidance??so):s.type==="menubar"&&(ue=ue??(s.context.orientation==="vertical"?"inline-end":"bottom"),xe=xe??"start");let Me=s.type==="context-menu",se=Fo({anchor:ge,floatingRootContext:w,positionMethod:V?"fixed":u,mounted:j,side:ue,sideOffset:Re,align:xe,alignOffset:Pe,arrowPadding:Me?0:M,collisionBoundary:g,collisionPadding:x,sticky:v,nodeId:Z,keepMounted:T,disableAnchorTracking:P,collisionAvoidance:ae,shiftCrossAxis:Me&&!("side"in ae&&ae.side==="flip"),externalTree:S,adaptiveOrigin:K?Lo:void 0});Ce.useEffect(()=>{function B(A){A.open&&(A.parentNodeId===Z&&p.set("hoverEnabled",!1),A.nodeId!==Z&&A.parentNodeId===p.select("floatingParentNodeId")&&p.setOpen(!1,W(y.siblingOpen)))}return n(B,"onMenuOpenChange"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[p,S.events,Z]),Ce.useEffect(()=>{if(p.select("floatingParentNodeId")==null)return;function B(A){if(A.open||A.nodeId!==p.select("floatingParentNodeId"))return;let Ie=A.reason??y.siblingOpen;p.setOpen(!1,W(Ie))}return n(B,"onParentClose"),S.events.on("menuopenchange",B),()=>{S.events.off("menuopenchange",B)}},[S.events,p]);let ce=Ne();Ce.useEffect(()=>{N||ce.clear()},[N,ce]),Ce.useEffect(()=>{function B(A){if(!(!N||A.nodeId!==p.select("floatingParentNodeId")))if(A.target&&F&&F!==A.target){let Ie=p.select("closeDelay");Ie>0?ce.isStarted()||ce.start(Ie,()=>{p.setOpen(!1,W(y.siblingOpen))}):p.setOpen(!1,W(y.siblingOpen))}else ce.clear()}return n(B,"onItemHover"),S.events.on("itemhover",B),()=>{S.events.off("itemhover",B)}},[S.events,N,F,p,ce]),Ce.useEffect(()=>{let B={open:N,nodeId:Z,parentNodeId:re,reason:p.select("lastOpenChangeReason")};S.events.emit("menuopenchange",B)},[S.events,N,p,Z,re]),Ee(()=>{let B=ve,A=le.current;if(B&&(le.current=B),A&&B&&B!==A){p.set("instantType",void 0);let Ie=new AbortController;return ie(()=>{p.set("instantType","trigger-change")},Ie.signal),()=>{Ie.abort()}}},[ve,ie,p]);let De={open:N,side:se.side,align:se.align,anchorHidden:se.anchorHidden,nested:s.type==="menu",instant:Q},Se=s.type==="menubar"&&s.context.modal,me=_&&k!==y.triggerHover;jo(N&&(Se||me),D==="touch",Y,F);let Ae=Ho(e,De,{styles:se.positionerStyles,transitionStatus:$,props:b,refs:[o,p.useStateSetter("positionerElement")],hidden:!j,inert:!N}),Ve=j&&s.type!=="menu"&&(s.type!=="menubar"&&_&&k!==y.triggerHover||s.type==="menubar"&&s.context.modal),G=null;return s.type==="menubar"?G=s.context.contentElement:s.type===void 0&&(G=F),(0,$e.jsxs)(Vt.Provider,{value:se,children:[Ve&&(0,$e.jsx)(Go,{ref:s.type==="context-menu"||s.type==="nested-context-menu"?s.context.internalBackdropRef:null,inert:Vo(!N),cutout:G}),(0,$e.jsx)(uo,{id:Z,children:(0,$e.jsx)(Wo,{elementsRef:p.context.itemDomElements,labelsRef:p.context.itemLabels,children:Ae})})]})},"MenuPositioner"));var ke=f(C(),1);var Ct=f(C(),1);var Ht=Ct.createContext(void 0);function vn(){let t=Ct.useContext(Ht);if(t===void 0)throw new Error(L(34));return t}n(vn,"useMenuRadioGroupContext");var jt=f(fe(),1);var In=ke.memo(ke.forwardRef(n(function(e,o){let{render:i,className:u,value:a,defaultValue:d,onValueChange:l,disabled:r=!1,style:m,"aria-labelledby":R,...g}=e,[x,M]=ke.useState(void 0),[v,P]=ot({controlled:a,default:d,name:"MenuRadioGroup"}),c=Le((T,V)=>{l?.(T,V),!V.isCanceled&&P(T)}),b=I("div",e,{state:{disabled:r},ref:o,props:{role:"group","aria-labelledby":R??x,"aria-disabled":r||void 0,...g}}),p=ke.useMemo(()=>({value:v,setValue:c,disabled:r}),[v,c,r]);return(0,jt.jsx)(Xe.Provider,{value:M,children:(0,jt.jsx)(Ht.Provider,{value:p,children:b})})},"MenuRadioGroup")));var It=f(C(),1);var vt=f(C(),1);var Yt=vt.createContext(void 0);function En(){let t=vt.useContext(Yt);if(t===void 0)throw new Error(L(35));return t}n(En,"useMenuRadioItemContext");var yn=f(fe(),1);var Pn=It.forwardRef(n(function(e,o){let{render:i,className:u,id:a,label:d,nativeButton:l=!1,disabled:r=!1,closeOnClick:m=!1,value:R,style:g,...x}=e,M=de({label:d}),v=X(!0),P=oe(a),{store:c}=O(),h=c.useState("isActive",M.index),b=c.useState("itemProps"),{value:p,setValue:T,disabled:V}=vn(),s=V||r,w=p===R,{getItemProps:S,itemRef:j}=Oe({closeOnClick:m,disabled:s,highlighted:h,id:P,store:c,nativeButton:l,nodeId:v?.context.nodeId,itemMetadata:Ye}),N=It.useMemo(()=>({disabled:s,highlighted:h,checked:w}),[s,h,w]);function _(F){let $=W(y.itemPress,F.nativeEvent,void 0,{preventUnmountOnClose(){}});T(R,$)}n(_,"handleClick");let D=I("div",e,{state:N,stateAttributesMapping:Te,props:[b,{role:"menuitemradio","aria-checked":w,onClick:_},x,S],ref:[j,o,M.ref]});return(0,yn.jsx)(Yt.Provider,{value:N,children:D})},"MenuRadioItem"));var Et=f(C(),1);var Sn=Et.forwardRef(n(function(e,o){let{render:i,className:u,style:a,keepMounted:d=!1,...l}=e,r=En(),m=Et.useRef(null),{transitionStatus:R,setMounted:g}=tt(r.checked);Ge({open:r.checked,ref:m,onComplete(){r.checked||g(!1)}});let x={checked:r.checked,disabled:r.disabled,highlighted:r.highlighted,transitionStatus:R};return I("span",e,{state:x,stateAttributesMapping:Te,ref:[o,m],props:{"aria-hidden":!0,...l},enabled:d||r.checked})},"MenuRadioItemIndicator"));var H=f(C(),1);var yt=f(C(),1);var qn=yt.createContext(null);function Pt(t){let e=yt.useContext(qn);if(e===null&&!t)throw new Error(L(5));return e}n(Pt,"useMenubarContext");var qe=f(C(),1);var Qn={...No,disabled:U(t=>t.parent.type==="menubar"&&t.parent.context.disabled||t.disabled),modal:U(t=>(t.parent.type===void 0||t.parent.type==="context-menu")&&(t.modal??!0)),openMethod:U(t=>t.openMethod),allowMouseEnter:U(t=>t.allowMouseEnter),highlightItemOnHover:U(t=>t.highlightItemOnHover),stickIfOpen:U(t=>t.stickIfOpen),parent:U(t=>t.parent),rootId:U(t=>t.parent.type==="menu"?t.parent.store.select("rootId"):t.parent.type!==void 0?t.parent.context.rootId:t.rootId),activeIndex:U(t=>t.activeIndex),isActive:U((t,e)=>t.activeIndex===e),hoverEnabled:U(t=>t.hoverEnabled),instantType:U(t=>t.instantType),lastOpenChangeReason:U(t=>t.openChangeReason),floatingTreeRoot:U(t=>t.parent.type==="menu"?t.parent.store.select("floatingTreeRoot"):t.floatingTreeRoot),floatingNodeId:U(t=>t.floatingNodeId),floatingParentNodeId:U(t=>t.floatingParentNodeId),itemProps:U(t=>t.itemProps),closeDelay:U(t=>t.closeDelay),hasViewport:U(t=>t.hasViewport),keyboardEventRelay:U(t=>{if(t.keyboardEventRelay)return t.keyboardEventRelay;if(t.parent.type==="menu")return t.parent.store.select("keyboardEventRelay")})},ze=class t extends go{static{n(this,"MenuStore")}constructor(e){super({...Zn(),...e},{positionerRef:qe.createRef(),popupRef:qe.createRef(),typingRef:{current:!1},itemDomElements:{current:[]},itemLabels:{current:[]},allowMouseUpTriggerRef:{current:!1},triggerFocusTargetRef:qe.createRef(),beforeContentFocusGuardRef:qe.createRef(),onOpenChangeComplete:void 0,triggerElements:new Po},Qn),this.unsubscribeParentListener=this.observe("parent",o=>{if(this.unsubscribeParentListener?.(),o.type==="menu"){let i=o.store.select("rootId"),u=o.store.select("floatingTreeRoot"),a=o.store.select("keyboardEventRelay");this.unsubscribeParentListener=o.store.subscribe(()=>{let d=o.store.select("rootId"),l=o.store.select("floatingTreeRoot"),r=o.store.select("keyboardEventRelay");i===d&&u===l&&a===r||(i=d,u=l,a=r,this.notifyAll())}),this.context.allowMouseUpTriggerRef=o.store.context.allowMouseUpTriggerRef;return}o.type!==void 0&&(this.context.allowMouseUpTriggerRef=o.context.allowMouseUpTriggerRef),this.unsubscribeParentListener=null})}setOpen(e,o){this.state.floatingRootContext.context.events.emit("setOpen",{open:e,eventDetails:o})}static useStore(e,o){let i=Qt(()=>new t(o)).current;return e??i}unsubscribeParentListener=null};function Zn(){return{...So(),disabled:!1,modal:!0,openMethod:null,allowMouseEnter:!1,highlightItemOnHover:!0,stickIfOpen:!0,parent:{type:void 0},rootId:void 0,activeIndex:null,hoverEnabled:!0,instantType:void 0,openChangeReason:null,floatingTreeRoot:new nt,floatingNodeId:void 0,floatingParentNodeId:null,itemProps:pe,keyboardEventRelay:void 0,closeDelay:0,hasViewport:!1}}n(Zn,"createInitialState");var St=f(C(),1);var Kt=St.createContext(void 0);function Nt(){return St.useContext(Kt)}n(Nt,"useMenuSubmenuRootContext");var $t=f(fe(),1);var Ot=mo(n(function(e){let{children:o,open:i,onOpenChange:u,onOpenChangeComplete:a,defaultOpen:d=!1,disabled:l=!1,modal:r,loopFocus:m=!0,orientation:R="vertical",actionsRef:g,closeParentOnEsc:x=!1,handle:M,triggerId:v,defaultTriggerId:P=null,highlightItemOnHover:c=!0}=e,h=be(!0),b=O(!0),p=Pt(!0),T=Nt(),V=H.useMemo(()=>T&&b?{type:"menu",store:b.store}:p?{type:"menubar",context:p}:h&&!b?{type:"context-menu",context:h}:{type:void 0},[h,b,p,T]),s=ze.useStore(M?.store,{open:d,openProp:i,activeTriggerId:P,triggerIdProp:v,parent:V});Co(s,i,d,P),s.useControlledProp("openProp",i),s.useControlledProp("triggerIdProp",v),s.useContextCallback("onOpenChangeComplete",a);let w=wt(),S=wt(),j=s.useState("floatingTreeRoot"),N=st(j),_=rt(),D=s.useState("open"),F=s.useState("activeTriggerElement"),$=s.useState("positionerElement"),Y=s.useState("hoverEnabled"),Q=s.useState("disabled"),K=s.useState("lastOpenChangeReason"),k=s.useState("parent"),Z=s.useState("activeIndex"),re=s.useState("payload"),ve=s.useState("floatingParentNodeId"),le=H.useRef(null),ie=H.useRef(k.type!=="context-menu"),ge=Ne(),Re=H.useRef(!0),Pe=Ne(),z=ve!=null,{openMethod:ae,triggerProps:ue}=Ao(D);s.useSyncedValues({disabled:l,highlightItemOnHover:c,modal:k.type===void 0?r:void 0,openMethod:ae,rootId:w}),Io(s);let{forceUnmount:xe}=Eo(D,s,()=>{s.update({allowMouseEnter:!1,stickIfOpen:!0})});Ee(()=>{h&&!b?s.update({parent:{type:"context-menu",context:h},floatingNodeId:N,floatingParentNodeId:_}):b&&s.update({floatingNodeId:N,floatingParentNodeId:_})},[h,b,N,_,s]),H.useEffect(()=>{if(D||(le.current=null),k.type==="context-menu"){if(!D){ge.clear(),ie.current=!1;return}ge.start(500,()=>{ie.current=!0})}},[ge,D,k.type]),Ee(()=>{!D&&!Y&&s.set("hoverEnabled",!0)},[D,Y,s]);let Me=Le((E,J)=>{let te=J.reason;if(D===E&&J.trigger===F&&K===te)return;let Yn=bo(J);if(!E&&J.trigger==null&&(J.trigger=F??void 0),u?.(E,J),J.isCanceled)return;s.state.floatingRootContext.dispatchOpenChange(E,J);let Ze=J.event;if(E===!1&&Ze?.type==="click"&&Ze.pointerType==="touch"&&!Re.current)return;E&&te===y.triggerFocus?(Re.current=!1,Pe.start(300,()=>{Re.current=!0})):(Re.current=!0,Pe.clear());let Xt=(te===y.triggerPress||te===y.itemPress)&&Ze.detail===0&&Ze?.isTrusted,Kn=!E&&(te===y.escapeKey||te==null),qt={open:E,openChangeReason:te};le.current=J.event??null,ho(qt,E,J.trigger,Yn()),s.update(qt),k.type==="menubar"&&(te===y.triggerFocus||te===y.focusOut||te===y.triggerHover||te===y.listNavigation||te===y.siblingOpen)?s.set("instantType","group"):Xt||Kn?s.set("instantType",Xt?"click":"dismiss"):s.set("instantType",void 0)}),se=Ro({popupStore:s,floatingId:S,nested:_!=null,onOpenChange:Me}),ce=se.context.events;H.useEffect(()=>{let E=n(({open:J,eventDetails:te})=>Me(J,te),"handleSetOpenEvent");return ce.on("setOpen",E),()=>{ce?.off("setOpen",E)}},[ce,Me]);let De=H.useCallback(()=>{s.setOpen(!1,W(y.imperativeAction))},[s]);H.useImperativeHandle(g,()=>({unmount:xe,close:De}),[xe,De]);let Se;k.type==="context-menu"&&(Se=k.context),H.useImperativeHandle(Se?.positionerRef,()=>$,[$]),H.useImperativeHandle(Se?.actionsRef,()=>({setOpen:Me}),[Me]);let me=lo(se,{enabled:!Q,bubbles:{escapeKey:x&&k.type==="menu"},outsidePress(){return k.type!=="context-menu"||le.current?.type==="contextmenu"?!0:ie.current},externalTree:z?j:void 0}),Ae=Bo(),Ve=H.useCallback(E=>{s.select("activeIndex")!==E&&s.set("activeIndex",E)},[s]),G=ko(se,{enabled:!Q,listRef:s.context.itemDomElements,activeIndex:Z,nested:k.type!==void 0,loopFocus:m,orientation:R,parentOrientation:k.type==="menubar"?k.context.orientation:void 0,rtl:Ae==="rtl",disabledIndices:Je,onNavigate:Ve,openOnArrowKeyDown:k.type!=="context-menu",externalTree:z?j:void 0,focusItemOnHover:c}),B=H.useCallback(E=>{s.context.typingRef.current=E},[s]),A=wo(se,{enabled:!Q,listRef:s.context.itemLabels,elementsRef:s.context.itemDomElements,activeIndex:Z,resetMs:500,onMatch:n(E=>{D&&E!==Z&&s.set("activeIndex",E)},"onMatch"),onTyping:B}),Ie=H.useMemo(()=>{let E=he(A.reference,G.reference,me.reference,{onMouseMove(){s.set("allowMouseEnter",!0)}},ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=D,E},[s,A.reference,G.reference,me.reference,ue,D]),Gn=H.useMemo(()=>{let E=he(G.trigger,me.trigger,ue);return E["aria-haspopup"]="menu",E["aria-expanded"]=!1,E},[G.trigger,me.trigger,ue]),Un=H.useMemo(()=>he(xo,{id:S,role:"menu","aria-labelledby":F?.id,onMouseMove(){s.set("allowMouseEnter",!0),k.type==="menu"&&s.set("hoverEnabled",!1)},onClick(){s.select("hoverEnabled")&&s.set("hoverEnabled",!1)},onKeyDown(E){let J=s.select("keyboardEventRelay");J&&!E.isPropagationStopped()&&J(E)}},A.floating,G.floating,me.floating),[F,S,k.type,s,A.floating,G.floating,me.floating]),Hn=G.item??pe;yo(s,{floatingRootContext:se,activeTriggerProps:Ie,inactiveTriggerProps:Gn,popupProps:Un,itemProps:Hn});let jn=H.useMemo(()=>({store:s,parent:V}),[s,V]),Wt=(0,$t.jsx)(Bt.Provider,{value:jn,children:typeof o=="function"?o({payload:re}):o});return k.type===void 0||k.type==="context-menu"?(0,$t.jsx)(co,{externalTree:j,children:Wt}):Wt},"MenuRoot"));var Nn=f(C(),1);var zt=f(fe(),1);function On(t){let e=O().store,o=Nn.useMemo(()=>({parentMenu:e}),[e]);return(0,zt.jsx)(Kt.Provider,{value:o,children:(0,zt.jsx)(Ot,{...t})})}n(On,"MenuSubmenuRoot");var q=f(C(),1);var Tn=f(C(),1);function kn(t={}){let{highlightItemOnHover:e,highlightedIndex:o,onHighlightedIndexChange:i}=ct(),{ref:u,index:a}=de(t),d=o===a,l=Tn.useRef(null),r=et(u,l);return{compositeProps:{tabIndex:d?0:-1,onFocus(){i(a)},onMouseMove(){let R=l.current;if(!e||!R)return;let g=R.hasAttribute("disabled")||R.ariaDisabled==="true";!d&&!g&&R.focus()}},compositeRef:r,index:a}}n(kn,"useCompositeItem");function wn(t){let{render:e,className:o,style:i,state:u=pe,props:a=Je,refs:d=Je,metadata:l,stateAttributesMapping:r,tag:m="div",...R}=t,{compositeProps:g,compositeRef:x}=kn({metadata:l});return I(m,t,{state:u,ref:[...d,x],props:[g,...a,R],stateAttributesMapping:r})}n(wn,"CompositeItem");function Jt(t){if(Zt(t)&&t.hasAttribute("data-rootownerid"))return t.getAttribute("data-rootownerid")??void 0;if(!eo(t))return Jt(to(t))}n(Jt,"findRootOwnerId");var Tt=f(C(),1);function _n(t){let{enabled:e=!0,mouseDownAction:o,open:i}=t,u=Tt.useRef(!1);return Tt.useMemo(()=>e?{onMouseDown:n(a=>{(o==="open"&&!i||o==="close"&&i)&&(u.current=!0,We(a.currentTarget).addEventListener("click",()=>{u.current=!1},{once:!0}))},"onMouseDown"),onClick:n(a=>{u.current&&(u.current=!1,a.preventBaseUIHandler())},"onClick")}:pe,[e,o,i])}n(_n,"useMixedToggleClickHandler");var we=f(fe(),1);var kt=2,Dn=fo(n(function(e,o){let{render:i,className:u,style:a,disabled:d=!1,nativeButton:l=!0,id:r,openOnHover:m,delay:R=100,closeDelay:g=0,handle:x,payload:M,...v}=e,P=O(!0),c=x?.store??P?.store;if(!c)throw new Error(L(85));let h=oe(r),b=c.useState("isTriggerActive",h),p=c.useState("floatingRootContext"),T=c.useState("isOpenedByTrigger",h),V=c.useState("triggerPopupId",h),s=q.useRef(null),w=tr(),S=ct(!0),j=ao(),N=q.useMemo(()=>j??new nt,[j]),_=st(N),D=rt(),{registerTrigger:F,isMountedByThisTrigger:$}=vo(h,s,c,{payload:M,closeDelay:g,parent:w,floatingTreeRoot:N,floatingNodeId:_,floatingParentNodeId:D,keyboardEventRelay:S?.relayKeyboardEvent}),Y=w.type==="menubar",Q=c.useState("disabled"),K=d||Q||Y&&w.context.disabled,{getButtonProps:k,buttonRef:Z}=Ue({disabled:K,native:l});q.useEffect(()=>{!T&&w.type===void 0&&(c.context.allowMouseUpTriggerRef.current=!1)},[c,T,w.type]);let re=q.useRef(null),ve=Ne(),le=Le(G=>{if(!re.current)return;ve.clear(),c.context.allowMouseUpTriggerRef.current=!1;let B=G.target;if(_t(re.current,B)||_t(c.select("positionerElement"),B)||B===re.current||B!=null&&Jt(B)===c.select("rootId"))return;let A=Xo(re.current);G.clientX>=A.left-kt&&G.clientX<=A.right+kt&&G.clientY>=A.top-kt&&G.clientY<=A.bottom+kt||N.events.emit("close",{domEvent:G,reason:y.cancelOpen})});q.useEffect(()=>{T&&c.select("lastOpenChangeReason")===y.triggerHover&&We(re.current).addEventListener("mouseup",le,{once:!0})},[T,le,c]);let ie=Y&&w.context.hasSubmenuOpen,Re=at(p,{enabled:(m??ie)&&!K&&w.type!=="context-menu"&&(!Y||ie&&!$),handleClose:ut({blockPointerEvents:!Y}),mouseOnly:!0,move:!1,restMs:w.type===void 0?R:void 0,delay:{close:g},triggerElementRef:s,externalTree:N,isActiveTrigger:b,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),Pe=er(T,c.select("lastOpenChangeReason")),z=it(p,{enabled:!K&&w.type!=="context-menu",event:T&&Y?"click":"mousedown",toggle:!0,ignoreMouse:!1,stickIfOpen:w.type===void 0?Pe:!1}),ae=Oo(p,{enabled:!K&&ie}),ue=_n({open:T,enabled:Y,mouseDownAction:"open"}),xe=q.useMemo(()=>he(ae.reference,z.reference),[ae.reference,z.reference]),Me=c.useState("triggerProps",$),{preFocusGuardRef:se,handlePreFocusGuardFocus:ce,handleFocusTargetFocus:De}=Do(c,s),Se={disabled:K,open:T},me=[re,o,Z,F,s],Ae=[xe,Re??pe,Me,{"aria-haspopup":"menu","aria-controls":V,id:h,onMouseDown:n(G=>{if(c.select("open"))return;ve.start(200,()=>{c.context.allowMouseUpTriggerRef.current=!0}),We(G.currentTarget).addEventListener("mouseup",le,{once:!0})},"onMouseDown")},Y?{role:"menuitem"}:{},ue,v,k],Ve=I("button",e,{enabled:!Y,stateAttributesMapping:At,state:Se,ref:me,props:Ae});return Y?(0,we.jsx)(wn,{tag:"button",render:i,className:u,style:a,state:Se,refs:me,props:Ae,stateAttributesMapping:At}):T?(0,we.jsxs)(q.Fragment,{children:[(0,we.jsx)(Dt,{ref:se,onFocus:ce},`${h}-pre-focus-guard`),(0,we.jsx)(q.Fragment,{children:Ve},h),(0,we.jsx)(Dt,{ref:c.context.triggerFocusTargetRef,onFocus:De},`${h}-post-focus-guard`)]}):(0,we.jsx)(q.Fragment,{children:Ve},h)},"MenuTrigger"));function er(t,e){let o=Ne(),[i,u]=q.useState(!1);return Ee(()=>{t&&e==="trigger-hover"?(u(!0),o.start(500,()=>{u(!1)})):t||(o.clear(),u(!1))},[t,e,o]),i}n(er,"useStickIfOpen");function tr(){let t=be(!0),e=O(!0),o=Pt(!0);return q.useMemo(()=>o?{type:"menubar",context:o}:t&&!e?{type:"context-menu",context:t}:{type:void 0},[t,e,o])}n(tr,"useMenuParent");var Vn=f(C(),1);var An=(function(t){return t.popupWidth="--popup-width",t.popupHeight="--popup-height",t})({});var or={activationDirection:n(t=>t?{"data-activation-direction":t}:null,"activationDirection")},Bn=Vn.forwardRef(n(function(e,o){let{render:i,className:u,style:a,children:d,...l}=e,{store:r}=O(),{side:m}=X(),R=r.useState("instantType"),{children:g,state:x}=$o({store:r,side:m,cssVars:An,children:d}),M={activationDirection:x.activationDirection,transitioning:x.transitioning,instant:R};return I("div",e,{state:M,ref:o,props:[l,{children:g}],stateAttributesMapping:or})},"MenuViewport"));var ye=f(C(),1);var Ln=ye.forwardRef(n(function(e,o){let{render:i,className:u,style:a,label:d,id:l,nativeButton:r=!1,openOnHover:m=!0,delay:R=100,closeDelay:g=0,disabled:x=!1,...M}=e,v=de({label:d}),P=X(),{store:c}=O(),h=oe(l),b=c.useState("open"),p=c.useState("floatingRootContext"),T=c.useState("floatingTreeRoot"),V=c.useState("triggerPopupId",h),s=Mo(h,c),w=ye.useCallback(z=>{let ae=s(z);return z!==null&&c.select("open")&&c.select("activeTriggerId")==null&&c.update({activeTriggerId:h,activeTriggerElement:z,closeDelay:g}),ae},[s,g,c,h]),S=ye.useRef(null),j=ye.useCallback(z=>{S.current=z,c.set("activeTriggerElement",z)},[c]),N=Nt();if(!N?.parentMenu)throw new Error(L(37));c.useSyncedValue("closeDelay",g);let _=N.parentMenu,D=c.useState("disabled"),F=_.useState("disabled"),$=x||D||F,Y=_.useState("itemProps"),Q=_.useState("isActive",v.index),K=ye.useMemo(()=>({type:"submenu-trigger",setActive(){_.select("highlightItemOnHover")&&_.set("activeIndex",v.index)}}),[_,v.index]),{getItemProps:k,itemRef:Z}=Oe({closeOnClick:!1,disabled:$,highlighted:Q,id:h,store:c,typingRef:_.context.typingRef,nativeButton:r,itemMetadata:K,nodeId:P?.context.nodeId}),re=c.useState("hoverEnabled"),ve=at(p,{enabled:re&&m&&!$,handleClose:ut({blockPointerEvents:!0}),mouseOnly:!0,move:!0,restMs:R,delay:{open:R,close:g},shouldOpen:R>0?()=>_.select("allowMouseEnter"):void 0,triggerElementRef:S,externalTree:T,isClosing:n(()=>c.select("transitionStatus")==="ending","isClosing")}),ie=it(p,{enabled:!$,event:"mousedown",toggle:!m,ignoreMouse:m,stickIfOpen:!1}).reference??pe,ge=c.useState("triggerProps",!0);return delete ge.id,I("div",e,{state:{disabled:$,highlighted:Q,open:b},stateAttributesMapping:_o,props:[ie,ve,ge,Y,{"aria-controls":V,tabIndex:b||Q?0:-1,onBlur(){Q&&_.set("activeIndex",null)}},M,k],ref:[o,v.ref,Z,w,j]})},"MenuSubmenuTrigger"));var Qe=class{static{n(this,"MenuHandle")}constructor(){this.store=new ze}open(e){let o=e?this.store.context.triggerElements.getById(e):void 0;if(e&&!o)throw new Error(L(83,e));this.store.setOpen(!0,W("imperative-action",void 0,o))}close(){this.store.setOpen(!1,W("imperative-action",void 0,void 0))}get isOpen(){return this.store.select("open")}};function Fn(){return new Qe}n(Fn,"createMenuHandle");var ee=f(fe(),1);function Fc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Root,{"data-slot":"dropdown-menu",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Fc,"_");function Gc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Trigger,{"data-slot":"dropdown-menu-trigger",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Gc,"y");function Uc({align:t="start",alignOffset:e=0,side:o="bottom",sideOffset:i=4,className:u,...a}){return(0,ee.jsx)(ne.Portal,{children:(0,ee.jsx)(ne.Positioner,{className:"isolate z-50 outline-none",align:t,alignOffset:e,side:o,sideOffset:i,children:(0,ee.jsx)(ne.Popup,{"data-slot":"dropdown-menu-content",className:Be("z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 outline-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-start-2 data-[side=inline-start]:slide-in-from-end-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:overflow-hidden data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-foreground/10! **:data-[variant=destructive]:text-accent-foreground! **:data-[variant=destructive]:**:text-accent-foreground!",u),...a})})})}n(Uc,"I");function Hc(t){let e=(0,_e.c)(4),o;e[0]!==t?({...o}=t,e[0]=t,e[1]=o):o=e[1];let i;return e[2]!==o?(i=(0,ee.jsx)(ne.Group,{"data-slot":"dropdown-menu-group",...o}),e[2]=o,e[3]=i):i=e[3],i}n(Hc,"$");function jc(t){let e=(0,_e.c)(10),o,i,u;e[0]!==t?({className:o,inset:i,...u}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u):(o=e[1],i=e[2],u=e[3]);let a;e[4]!==o?(a=Be("px-2 py-2 text-xs text-muted-foreground data-inset:ps-7",o),e[4]=o,e[5]=a):a=e[5];let d;return e[6]!==i||e[7]!==u||e[8]!==a?(d=(0,ee.jsx)(ne.GroupLabel,{"data-slot":"dropdown-menu-label","data-inset":i,className:a,...u}),e[6]=i,e[7]=u,e[8]=a,e[9]=d):d=e[9],d}n(jc,"O");function Yc({className:t,inset:e,variant:o="default",...i}){return(0,ee.jsx)(ne.Item,{"data-slot":"dropdown-menu-item","data-inset":e,"data-variant":o,className:Be("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-md px-2 py-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:ps-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",t),...i})}n(Yc,"P");function Kc(t){let e=(0,_e.c)(15),o,i,u,a,d;e[0]!==t?({className:u,children:i,checked:o,inset:a,...d}=t,e[0]=t,e[1]=o,e[2]=i,e[3]=u,e[4]=a,e[5]=d):(o=e[1],i=e[2],u=e[3],a=e[4],d=e[5]);let l;e[6]!==u?(l=Be("relative flex cursor-default items-center gap-2 rounded-md py-2 pe-8 ps-2 text-xs outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:ps-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",u),e[6]=u,e[7]=l):l=e[7];let r;e[8]===Symbol.for("react.memo_cache_sentinel")?(r=(0,ee.jsx)("span",{className:"pointer-events-none absolute end-2 flex items-center justify-center","data-slot":"dropdown-menu-checkbox-item-indicator",children:(0,ee.jsx)(ne.CheckboxItemIndicator,{children:(0,ee.jsx)(Jo,{icon:zo,strokeWidth:2})})}),e[8]=r):r=e[8];let m;return e[9]!==o||e[10]!==i||e[11]!==a||e[12]!==d||e[13]!==l?(m=(0,ee.jsxs)(ne.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item","data-inset":a,className:l,checked:o,...d,children:[r,i]}),e[9]=o,e[10]=i,e[11]=a,e[12]=d,e[13]=l,e[14]=m):m=e[14],m}n(Kc,"j");function $c(t){let e=(0,_e.c)(8),o,i;e[0]!==t?({className:o,...i}=t,e[0]=t,e[1]=o,e[2]=i):(o=e[1],i=e[2]);let u;e[3]!==o?(u=Be("-mx-1 h-px bg-border",o),e[3]=o,e[4]=u):u=e[4];let a;return e[5]!==i||e[6]!==u?(a=(0,ee.jsx)(ne.Separator,{"data-slot":"dropdown-menu-separator",className:u,...i}),e[5]=i,e[6]=u,e[7]=a):a=e[7],a}n($c,"C");export{Fc as a,Gc as b,Uc as c,Hc as d,jc as e,Yc as f,Kc as g,$c as h};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as ye}from"./chunk-V53KNYRN.js";import{a as we}from"./chunk-QXXIJAD5.js";import{a as Ne}from"./chunk-X665E2HU.js";import{b as pe}from"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as ge}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as H}from"./chunk-ERMTJYQF.js";import{d as be}from"./chunk-XDAT7LHC.js";import{f as xe}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as ne,e as ie}from"./chunk-UZERI5YC.js";import{d as he,f as ce,g as de,h as ee,m as me}from"./chunk-OG4N2XHD.js";import{c as ae}from"./chunk-AADILRJW.js";import{a,e as se,f as ve,g as je,h as Ee}from"./chunk-3XIESWL4.js";var Se=se(je(),1);var b=se(ve(),1);var r=se(Ee(),1);var Ce=ce(H.exportShard),Oe=ce(H.importShard),Te=a(x=>x.map(e=>JSON.stringify(e)).join(`
|
|
2
2
|
`),"je"),Ae=a(x=>{let e=[],te=x.split(`
|
|
3
3
|
`);for(let[n,N]of te.entries()){let t=N.trim();if(t==="")continue;let o=JSON.parse(t);if(typeof o!="object"||o===null)throw new ae("INTERNAL",`line ${(n+1).toString()}: expected a { table, doc } object`);let h=o;if(typeof h.table!="string"||typeof h.doc!="object"||h.doc===null||Array.isArray(h.doc))throw new ae("INTERNAL",`line ${(n+1).toString()}: expected a { table, doc } object`);e.push(h)}return e},"$e"),Me=a(x=>{let e=(0,Se.c)(94),{initialShardKey:te}=x,n=xe(),N=be(),t=he(),[o,h]=(0,b.useState)(te??""),[l,ue]=(0,b.useState)(""),[d,K]=(0,b.useState)(!1),[Q,M]=(0,b.useState)(null),[i,re]=(0,b.useState)(null),[w,fe]=(0,b.useState)(null),V;e[0]!==n||e[1]!==o?(V=a(async()=>{K(!0),M(null),re(null);try{let c=await n.query(Ce,{},de(o));pe(o),ue(Te(c.rows)),fe(c.rows.length)}catch(c){M(ee(c))}K(!1)},"Q"),e[0]=n,e[1]=o,e[2]=V):V=e[2];let z=V,W;e[3]!==n||e[4]!==N||e[5]!==l||e[6]!==o||e[7]!==t?(W=a(async()=>{K(!0),M(null),re(null),fe(null);let c;try{c=Ae(l)}catch(s){M(t("Invalid NDJSON: {message}",{message:ee(s)})),K(!1);return}try{let s=await n.query(Oe,{rows:c},de(o));pe(o),re(s),N(H.readTablePage),N(H.listTables)}catch(s){M(ee(s))}K(!1)},"V"),e[3]=n,e[4]=N,e[5]=l,e[6]=o,e[7]=t,e[8]=W):W=e[8];let G=W,y,S,I,m,v,p,u,j,E,f,C;if(e[9]!==d||e[10]!==w||e[11]!==z||e[12]!==i||e[13]!==G||e[14]!==l||e[15]!==o||e[16]!==t){let c=i===null?0:Object.values(i.inserted).reduce(Le,0),s;e[28]!==z?(s=a(()=>{me(z())},"s"),e[28]=z,e[29]=s):s=e[29];let oe=s,Y;e[30]!==G?(Y=a(()=>{me(G())},"X"),e[30]=G,e[31]=Y):Y=e[31];let le=Y,Z;e[32]===Symbol.for("react.memo_cache_sentinel")?(Z=a(g=>{ue(g.target.value)},"Y"),e[32]=Z):Z=e[32];let Ie=Z;C="flex flex-col gap-4",I="lunora-export-import";let L;e[33]!==t?(L=t("Export"),e[33]=t,e[34]=L):L=e[34];let $;e[35]!==L?($=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:L})}),e[35]=L,e[36]=$):$=e[36];let J;e[37]!==o?(J=(0,r.jsx)(Ne,{onChange:h,testId:"ei-shard-input",value:o}),e[37]=o,e[38]=J):J=e[38];let k;e[39]!==t?(k=t("Export"),e[39]=t,e[40]=k):k=e[40];let D;e[41]!==d||e[42]!==oe||e[43]!==k?(D=(0,r.jsx)(ge,{"data-testid":"ei-export",disabled:d,onClick:oe,type:"button",children:k}),e[41]=d,e[42]=oe,e[43]=k,e[44]=D):D=e[44];let _;e[45]!==J||e[46]!==D?(_=(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[J,D]}),e[45]=J,e[46]=D,e[47]=_):_=e[47];let q;e[48]!==w||e[49]!==t?(q=w!==null&&(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"ei-export-result",children:t("Exported {count} rows.",{count:w})}),e[48]=w,e[49]=t,e[50]=q):q=e[50];let B;e[51]!==_||e[52]!==q?(B=(0,r.jsxs)(ie,{className:"flex flex-col gap-3 p-4",children:[_,q]}),e[51]=_,e[52]=q,e[53]=B):B=e[53],e[54]!==$||e[55]!==B?(m=(0,r.jsxs)(ne,{className:"rounded-xl border border-border bg-card shadow-xs",children:[$,B]}),e[54]=$,e[55]=B,e[56]=m):m=e[56],S=ne,E="rounded-xl border border-border bg-card shadow-xs";let P;e[57]!==t?(P=t("Import"),e[57]=t,e[58]=P):P=e[58],e[59]!==P?(f=(0,r.jsx)("header",{className:"border-b border-border px-4 py-3",children:(0,r.jsx)("span",{className:"font-mono text-[11px] tracking-wide text-muted-foreground uppercase",children:P})}),e[59]=P,e[60]=f):f=e[60],y=ie,v="flex flex-col gap-3 p-4",e[61]!==l?(p=(0,r.jsx)(ye,{"aria-label":"NDJSON",className:"font-mono text-xs min-h-40 rounded-md","data-testid":"ei-ndjson",onChange:Ie,placeholder:'{"table":"messages","doc":{\u2026}}',value:l}),e[61]=l,e[62]=p):p=e[62];let R;e[63]!==t?(R=t("Import (writes rows)?"),e[63]=t,e[64]=R):R=e[64];let U;e[65]!==d||e[66]!==l?(U=d||l.trim()==="",e[65]=d,e[66]=l,e[67]=U):U=e[67];let F;e[68]!==t?(F=t("Import"),e[68]=t,e[69]=F):F=e[69],e[70]!==le||e[71]!==R||e[72]!==U||e[73]!==F?(u=(0,r.jsx)("div",{className:"flex flex-wrap items-center gap-2",children:(0,r.jsx)(we,{confirmLabel:R,disabled:U,onConfirm:le,testId:"ei-import",children:F})}),e[70]=le,e[71]=R,e[72]=U,e[73]=F,e[74]=u):u=e[74],j=i!==null&&(0,r.jsxs)("div",{className:"flex flex-col gap-2","data-testid":"ei-import-result",children:[(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:t("Inserted {inserted}, {conflicts} conflicts, {errors} errors.",{conflicts:i.conflicts,errors:i.errors.length,inserted:c})}),i.errors.length>0&&(0,r.jsx)("ul",{className:"flex flex-col gap-1","data-testid":"ei-import-errors",children:i.errors.map(g=>(0,r.jsx)("li",{className:"text-xs text-destructive",children:t("line {line} ({table}): {message}",{line:g.line,message:g.message,table:g.table})},`${g.table}-${g.line.toString()}`))})]}),e[9]=d,e[10]=w,e[11]=z,e[12]=i,e[13]=G,e[14]=l,e[15]=o,e[16]=t,e[17]=y,e[18]=S,e[19]=I,e[20]=m,e[21]=v,e[22]=p,e[23]=u,e[24]=j,e[25]=E,e[26]=f,e[27]=C}else y=e[17],S=e[18],I=e[19],m=e[20],v=e[21],p=e[22],u=e[23],j=e[24],E=e[25],f=e[26],C=e[27];let O;e[75]!==y||e[76]!==v||e[77]!==p||e[78]!==u||e[79]!==j?(O=(0,r.jsxs)(y,{className:v,children:[p,u,j]}),e[75]=y,e[76]=v,e[77]=p,e[78]=u,e[79]=j,e[80]=O):O=e[80];let T;e[81]!==S||e[82]!==O||e[83]!==E||e[84]!==f?(T=(0,r.jsxs)(S,{className:E,children:[f,O]}),e[81]=S,e[82]=O,e[83]=E,e[84]=f,e[85]=T):T=e[85];let A;e[86]!==Q?(A=Q!==null&&(0,r.jsx)("p",{className:"text-sm text-destructive","data-testid":"ei-error",role:"alert",children:Q}),e[86]=Q,e[87]=A):A=e[87];let X;return e[88]!==I||e[89]!==m||e[90]!==T||e[91]!==A||e[92]!==C?(X=(0,r.jsxs)("div",{className:C,"data-testid":I,children:[m,T,A]}),e[88]=I,e[89]=m,e[90]=T,e[91]=A,e[92]=C,e[93]=X):X=e[93],X},"Be");function Le(x,e){return x+e}a(Le,"Ee");export{Me as ExportImportPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{b as y}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as v}from"./chunk-53WEPGUD.js";import"./chunk-XXQUMVWH.js";import"./chunk-RNL6BSFM.js";import"./chunk-QLQADHFE.js";import{a as R}from"./chunk-ERMTJYQF.js";import{c as $}from"./chunk-XDAT7LHC.js";import"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as w}from"./chunk-XQCVZAGU.js";import{a as A,b as I,c as j,d as x,e as n,f as c}from"./chunk-MIQTKZAR.js";import{a as k,e as S}from"./chunk-UZERI5YC.js";import{d as b}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as f,e as N,g as E,h as _}from"./chunk-3XIESWL4.js";var T=N(E(),1);var r=N(_(),1);var D=f((e,t)=>({delete:e("Delete"),list:e("List"),read:e("Read"),write:e("Write")})[t],"C"),C={delete:2,list:3,read:0,write:1},O=f(e=>[...e].toSorted((t,a)=>t.bucket.localeCompare(a.bucket)||C[t.on]-C[a.on]||(t.prefix??"").localeCompare(a.prefix??"")),"T"),W=f(()=>{let e=(0,T.c)(14),t=b(),a;e[0]===Symbol.for("react.memo_cache_sentinel")?(a={},e[0]=a):a=e[0];let{data:l,error:i,errorSource:d}=$(R.storageRules,a),h=l!==void 0,m;if(e[1]!==l||e[2]!==i||e[3]!==d||e[4]!==h||e[5]!==t){let g=O(Array.isArray(l?.rules)?l.rules:[]),u;e[7]!==i||e[8]!==d?(u=i!==null&&(0,r.jsx)(v,{error:d,testId:"storage-rules-error"}),e[7]=i,e[8]=d,e[9]=u):u=e[9];let o;e[10]!==t?(o=t("Storage rules are declared in code with defineStorageRule and gate ctx.storage access per bucket. This view is read-only."),e[10]=t,e[11]=o):o=e[11];let p;e[12]!==o?(p=(0,r.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"storage-rules-note",children:o}),e[12]=o,e[13]=p):p=e[13],m=(0,r.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-storage-rules-panel",children:[u,p,h&&g.length===0?(0,r.jsx)(w,{description:t("No defineStorageRule is wired through .use(storageRules(...)) in this deployment. Add one to gate object access by key prefix."),testId:"storage-rules-empty",title:t("No storage rules defined")}):(0,r.jsx)(k,{className:"overflow-hidden py-0",children:(0,r.jsx)(S,{className:"px-0",children:(0,r.jsxs)(A,{"data-testid":"storage-rules-table",children:[(0,r.jsx)(I,{children:(0,r.jsxs)(x,{children:[(0,r.jsx)(n,{children:t("Bucket")}),(0,r.jsx)(n,{children:t("Operation")}),(0,r.jsx)(n,{children:t("Key prefix")}),(0,r.jsx)(n,{children:t("Guarded by")})]})}),(0,r.jsx)(j,{children:g.map(s=>(0,r.jsxs)(x,{"data-testid":`storage-rule-${s.bucket}-${s.on}-${s.prefix??""}`,children:[(0,r.jsx)(c,{className:"font-mono text-xs",children:s.bucket}),(0,r.jsx)(c,{children:(0,r.jsx)(y,{variant:"secondary",children:D(t,s.on)})}),(0,r.jsx)(c,{className:"font-mono text-xs",children:s.prefix??(0,r.jsx)("span",{className:"text-muted-foreground",children:t("(whole bucket)")})}),(0,r.jsx)(c,{className:"font-mono text-xs text-muted-foreground",children:s.procedure})]},`${s.bucket}:${s.on}:${s.prefix??""}:${s.procedure}`))})]})})})]}),e[1]=l,e[2]=i,e[3]=d,e[4]=h,e[5]=t,e[6]=m}else m=e[6];return m},"U");export{W as StorageRulesPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as st}from"./chunk-CTNB2KIA.js";import{a as
|
|
1
|
+
import{a as st}from"./chunk-CTNB2KIA.js";import{a as X}from"./chunk-X665E2HU.js";import"./chunk-GRL5MG3Z.js";import"./chunk-7T7UOTYK.js";import{a as Y}from"./chunk-LFKCLLPT.js";import"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as U}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as R}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as Z}from"./chunk-53WEPGUD.js";import"./chunk-XXQUMVWH.js";import"./chunk-RNL6BSFM.js";import"./chunk-QLQADHFE.js";import{a as V}from"./chunk-ERMTJYQF.js";import{c as Q}from"./chunk-XDAT7LHC.js";import"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as H}from"./chunk-XQCVZAGU.js";import{a as tt,b as et,c as rt,d as z,e as n,f as o}from"./chunk-MIQTKZAR.js";import{a as W,e as G}from"./chunk-UZERI5YC.js";import{d as O,q as J}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a,e as K,f as mt,g as ht,h as ut,j as P}from"./chunk-3XIESWL4.js";var at=K(ht(),1),B=K(mt(),1);var e=K(ut(),1);var ft={action:"outline",mutation:"default",query:"secondary"},lt=a(r=>r<1e3?`${r<10?r.toFixed(1):Math.round(r).toString()}ms`:`${(r/1e3).toFixed(2)}s`,"O"),pt=a(r=>r.calls===0?"\u2014":r.errors===0?"0":`${r.errors.toString()} (${(r.errors/r.calls*100).toFixed(1)}%)`,"mt"),xt=a(r=>{let t=r.conflicts??0;return r.calls===0?"\u2014":t===0?"0":`${t.toString()} (${(t/r.calls*100).toFixed(1)}%)`},"ut"),gt={calls:a((r,t)=>t.calls-r.calls,"calls"),recent:a((r,t)=>t.lastCalledAt-r.lastCalledAt,"recent"),slowest:a((r,t)=>t.maxDurationMs-r.maxDurationMs,"slowest")},At=a(r=>{let t=(0,at.c)(47),{functions:A,initialShardKey:nt}=r,l=O(),[i,ot]=(0,B.useState)(nt??""),[c,it]=(0,B.useState)("recent"),M;t[0]!==i?(M=i.trim(),t[0]=i,t[1]=M):M=t[1];let j=Y(M,400),w;t[2]===Symbol.for("react.memo_cache_sentinel")?(w={},t[2]=w):w=t[2];let $;t[3]!==j?($={live:!0,shardKey:j},t[3]=j,t[4]=$):$=t[4];let{data:ct,error:d,errorSource:v,liveError:k}=Q(V.getFunctionStats,w,$),S=ct?.functions??null,C;t[5]!==A?(C=new Map((A??[]).map(Nt)),t[5]=A,t[6]=C):C=t[6];let L=C,F;t[7]===Symbol.for("react.memo_cache_sentinel")?(F=a(b=>{it(b.currentTarget.dataset.sort)},"C"),t[7]=F):F=t[7];let dt=F,D;if(t[8]!==d||t[9]!==v||t[10]!==L||t[11]!==k||t[12]!==i||t[13]!==c||t[14]!==S||t[15]!==l){let b=S===null?[]:S.toSorted(gt[c]),m;t[17]!==l?(m=l("Recent"),t[17]=l,t[18]=m):m=t[18];let h;t[19]!==m?(h={key:"recent",label:m},t[19]=m,t[20]=h):h=t[20];let u;t[21]!==l?(u=l("Most called"),t[21]=l,t[22]=u):u=t[22];let f;t[23]!==u?(f={key:"calls",label:u},t[23]=u,t[24]=f):f=t[24];let p;t[25]!==l?(p=l("Slowest"),t[25]=l,t[26]=p):p=t[26];let x;t[27]!==p?(x={key:"slowest",label:p},t[27]=p,t[28]=x):x=t[28];let I;t[29]!==f||t[30]!==x||t[31]!==h?(I=[h,f,x],t[29]=f,t[30]=x,t[31]=h,t[32]=I):I=t[32];let T=I,g;t[33]!==i?(g=(0,e.jsx)(X,{onChange:ot,testId:"fs-shard-input",value:i}),t[33]=i,t[34]=g):g=t[34];let N;t[35]!==k?(N=(0,e.jsx)(st,{message:k,prefix:"fs"}),t[35]=k,t[36]=N):N=t[36];let y;t[37]!==T||t[38]!==c?(y=(0,e.jsx)("div",{className:"ml-auto flex items-center gap-1",role:"group",children:T.map(s=>(0,e.jsx)(U,{"data-sort":s.key,"data-testid":`fs-sort-${s.key}`,onClick:dt,size:"sm",type:"button",variant:c===s.key?"secondary":"ghost",children:s.label},s.key))}),t[37]=T,t[38]=c,t[39]=y):y=t[39];let E;t[40]!==g||t[41]!==N||t[42]!==y?(E=(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[g,N,y]}),t[40]=g,t[41]=N,t[42]=y,t[43]=E):E=t[43];let _;t[44]!==d||t[45]!==v?(_=d!==null&&(0,e.jsx)(Z,{error:v,testId:"fs-error"}),t[44]=d,t[45]=v,t[46]=_):_=t[46],D=(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-function-stats",children:[E,_,S!==null&&b.length===0&&d===null&&(0,e.jsx)(H,{description:l("Per-function call counts, error rates, and latency land here after your first request."),icon:(0,e.jsxs)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.6,viewBox:"0 0 24 24",children:[(0,e.jsx)("path",{d:"M3 3v18h18"}),(0,e.jsx)("path",{d:"M7 14l4-4 3 3 5-6"})]}),testId:"fs-empty",title:l("No functions have run on this shard yet.")}),b.length>0&&(0,e.jsx)(W,{className:"overflow-hidden py-0",children:(0,e.jsx)(G,{className:"px-0",children:(0,e.jsxs)(tt,{"data-testid":"fs-table",children:[(0,e.jsx)(et,{children:(0,e.jsxs)(z,{children:[(0,e.jsx)(n,{children:l("function")}),(0,e.jsx)(n,{children:l("kind")}),(0,e.jsx)(n,{className:"text-right",children:l("calls")}),(0,e.jsx)(n,{className:"text-right",children:l("errors")}),(0,e.jsx)(n,{className:"text-right",children:l("conflicts")}),(0,e.jsx)(n,{className:"text-right",children:l("avg")}),(0,e.jsx)(n,{className:"text-right",children:l("max")}),(0,e.jsx)(n,{children:l("last run")}),(0,e.jsx)(n,{children:l("last error")})]})}),(0,e.jsx)(rt,{children:b.map(s=>{let q=L.get(s.path);return(0,e.jsxs)(z,{"data-testid":`fs-row-${s.path}`,children:[(0,e.jsx)(o,{className:"font-medium",children:s.path}),(0,e.jsx)(o,{children:q===void 0?(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"}):(0,e.jsx)(R,{variant:ft[q],children:q})}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls}),(0,e.jsx)(o,{className:P("text-right tabular-nums",s.errors>0&&"text-destructive"),children:pt(s)}),(0,e.jsx)(o,{className:P("text-right tabular-nums",(s.conflicts??0)>0&&"text-warning"),children:xt(s)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.totalDurationMs/s.calls)}),(0,e.jsx)(o,{className:"text-right tabular-nums",children:s.calls===0?"\u2014":lt(s.maxDurationMs)}),(0,e.jsx)(o,{className:"text-muted-foreground",children:J(s.lastCalledAt,"\u2014")}),(0,e.jsx)(o,{className:"max-w-[24ch] truncate text-destructive",title:s.lastErrorMessage??void 0,children:s.lastErrorMessage??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]},s.path)})})]})})})]}),t[8]=d,t[9]=v,t[10]=L,t[11]=k,t[12]=i,t[13]=c,t[14]=S,t[15]=l,t[16]=D}else D=t[16];return D},"Dt");function Nt(r){return[r.path,r.kind]}a(Nt,"ft");export{At as FunctionStatsPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as
|
|
1
|
+
import{a as f}from"./chunk-5Y3QLNWX.js";import{a as U}from"./chunk-54MMVNPT.js";import{a as C}from"./chunk-QXXIJAD5.js";import{R as v}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as O}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import{b as L}from"./chunk-THIXMMZD.js";import"./chunk-6ST5ECQA.js";import{a as w}from"./chunk-ERMTJYQF.js";import{f as P}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{d as q,f as y,g as c,h,m as p}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as o,e as T,f as W,h as $}from"./chunk-3XIESWL4.js";var a=T(W(),1);var e=T($(),1);var R=y(w.getPitrBookmark),V=y(w.pitrRestore),ne=o(({initialShardKey:j})=>{let m=P(),r=q(),i=j??"",[z,x]=(0,a.useState)(null),[l,A]=(0,a.useState)(""),[B,I]=(0,a.useState)(null),[u,D]=(0,a.useState)(""),[k,E]=(0,a.useState)(!1),[s,K]=(0,a.useState)(null),[F,n]=(0,a.useState)(null),[b,d]=(0,a.useState)(!1),g=(0,a.useCallback)(async()=>{d(!0),n(null);try{let t=await m.query(R,{},c(i));x(t.current)}catch(t){n(h(t))}d(!1)},[m,i]);(0,a.useEffect)(()=>{p(g())},[g]),U(()=>{p((async()=>{try{let t=await m.query(R,{},c(i));x(t.current)}catch{}})())},!0);let M=o(t=>{A(t.target.value)},"U"),Z=o(t=>{D(t.target.value)},"j"),_=o(t=>{E(t.target.checked)},"M"),G=o(()=>{l.trim()!==""&&p((async()=>{d(!0),n(null);try{let t=await m.query(R,{time:l.trim()},c(i));I(t.forTime??null),x(t.current)}catch(t){I(null),n(h(t))}d(!1)})())},"z"),S=o(t=>{p((async()=>{d(!0),n(null);try{let N=await m.mutation(V,t,c(i));K(N),await g()}catch(N){n(h(N))}d(!1)})())},"R"),H=u.trim()!==""||l.trim()!=="",J=o(()=>{let t=k?{restart:!0}:{};u.trim()===""?t.time=l.trim():t.bookmark=u.trim(),S(t)},"$"),Q=o(()=>{s!==null&&S(k?{bookmark:s.undoBookmark,restart:!0}:{bookmark:s.undoBookmark})},"D");return(0,e.jsxs)("div",{className:"flex flex-col gap-4","data-testid":"lunora-pitr",children:[(0,e.jsx)("div",{className:"flex flex-wrap items-center gap-3",children:(0,e.jsxs)("span",{className:"text-xs text-muted-foreground",children:[r("Shard"),": ",(0,e.jsx)("span",{className:"font-mono",children:i===""?r("root"):i})]})}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"pitr-note",children:r("In-place recovery to any moment in the last 30 days. For older or portable recovery, use the snapshot backup tier.")}),F!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"pitr-error",role:"alert",children:F}),(0,e.jsxs)("section",{className:"rounded-xl border border-border bg-card p-3 shadow-xs",children:[(0,e.jsx)("h3",{className:"mb-2 text-sm font-semibold",children:r("Current bookmark")}),(0,e.jsx)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-current",children:z??(0,e.jsx)("span",{className:"text-muted-foreground",children:"\u2014"})})]}),(0,e.jsxs)("section",{className:"flex flex-col gap-3 rounded-xl border border-border bg-card p-3 shadow-xs",children:[(0,e.jsx)("h3",{className:"text-sm font-semibold",children:r("Restore")}),(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(f,{htmlFor:"pitr-time",children:r("Time (ISO or epoch-ms, last 30 days)")}),(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)(v,{"data-testid":"pitr-time",id:"pitr-time",onChange:M,placeholder:"2026-06-01T00:00:00.000Z",value:l}),(0,e.jsx)(O,{"data-testid":"pitr-preview",disabled:b||l.trim()==="",onClick:G,size:"sm",type:"button",variant:"outline",children:r("Preview")})]}),B!==null&&(0,e.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-preview-bookmark",children:[r("Bookmark for that time"),": ",B]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,e.jsx)(f,{htmlFor:"pitr-bookmark",children:r("Or an explicit bookmark (wins over time)")}),(0,e.jsx)(v,{"data-testid":"pitr-bookmark",id:"pitr-bookmark",onChange:Z,placeholder:r("bookmark string"),value:u})]}),(0,e.jsxs)(f,{className:"flex items-center gap-2 text-xs font-normal text-muted-foreground",htmlFor:"pitr-restart",children:[(0,e.jsx)("input",{checked:k,className:"size-4 accent-primary","data-testid":"pitr-restart",id:"pitr-restart",onChange:_,type:"checkbox"}),r("Restart the shard now so recovery applies immediately")]}),(0,e.jsx)("div",{children:(0,e.jsx)(C,{confirmLabel:r("Confirm restore"),disabled:b||!H,onConfirm:J,testId:"pitr-restore",children:r("Restore")})})]}),s!==null&&(0,e.jsxs)("section",{className:"flex flex-col gap-2 rounded-xl border border-border bg-card p-3 shadow-xs","data-testid":"pitr-result",children:[(0,e.jsxs)("div",{className:"flex items-center gap-2",children:[(0,e.jsx)("h3",{className:"text-sm font-semibold",children:r("Restore armed")}),(0,e.jsx)(L,{variant:s.restarted?"destructive":"secondary",children:s.restarted?r("restarted now"):r("on next restart")})]}),(0,e.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground",children:[r("Restored to"),": ",s.restoredTo]}),(0,e.jsxs)("p",{className:"font-mono text-xs break-all text-muted-foreground","data-testid":"pitr-undo-bookmark",children:[r("Undo bookmark"),": ",s.undoBookmark]}),(0,e.jsx)("div",{children:(0,e.jsx)(C,{confirmLabel:r("Confirm undo"),disabled:b,onConfirm:Q,testId:"pitr-undo",children:r("Undo restore")})})]})]})},"de");export{ne as PitrPanel};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as ee}from"./chunk-XDAT7LHC.js";import{a as z,b as D,c as F,d as h,e as o,f as i}from"./chunk-MIQTKZAR.js";import{a as T,e as j}from"./chunk-UZERI5YC.js";import{a as te}from"./chunk-V53KNYRN.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as I}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as K}from"./chunk-2WOIRKEI.js";import{f as M}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as q}from"./chunk-XQCVZAGU.js";import{d as H,f as Q,g as V,h as W,m as $}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as n,e as Y,f as ne,h as le}from"./chunk-3XIESWL4.js";var c=Y(ne(),1);var e=Y(le(),1);var oe=["queued","running","paused","waiting","complete","errored","terminated"],ie=["pause","resume","terminate"],de="WORKFLOWS_NOT_CONFIGURED",ce=n(l=>typeof l=="object"&&l!==null&&l.code===de,"ie"),me=n(l=>{let r=l.error??l.output;if(r===void 0)return"\u2014";try{return JSON.stringify(r)}catch{return"(unserializable)"}},"de"),ue=n(({loadDetail:l,loadInstances:r,readOnly:N,runAction:R,workflowName:g})=>{let A=M(),s=H(),[p,k]=(0,c.useState)(null),[S,O]=(0,c.useState)(null),[v,_]=(0,c.useState)(""),[b,f]=(0,c.useState)(null),[J,C]=(0,c.useState)(!1),[L,P]=(0,c.useState)(null),w=l??(a=>A.getWorkflowInstance(a)),x=N?void 0:R??(r===void 0?a=>A.setWorkflowInstanceStatus(a):void 0),E=n(async()=>{f(null),C(!1);let a=v===""?void 0:v;try{if(r===void 0){let d=await A.listWorkflowInstances({name:g,status:a});if(d.configured===!1){k(null),C(!0);return}k(d.instances);return}k(await r({name:g,status:a}))}catch(d){k(null),ce(d)?C(!0):f(W(d))}},"O");(0,c.useEffect)(()=>{O(null),$(E())},[g,v]);let U=n(async a=>{f(null);try{O(await w({id:a,name:g}))}catch(d){f(W(d))}},"D"),B=n(async(a,d)=>{if(x!==void 0){P(a),f(null);try{await x({action:d,id:a,name:g}),await E()}catch(G){f(W(G))}P(null)}},"K");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-workflow-instances",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:s("Instance history")}),(0,e.jsxs)("select",{"aria-label":s("Filter by status"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflow-instances-filter",onChange:n(a=>{_(a.target.value)},"onChange"),value:v,children:[(0,e.jsx)("option",{value:"",children:s("All statuses")}),oe.map(a=>(0,e.jsx)("option",{value:a,children:a},a))]})]}),b!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflow-instances-error",role:"alert",children:b}),J&&(0,e.jsx)(q,{description:s("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN in your .dev.vars to enable workflow instance history."),testId:"workflow-instances-unconfigured",title:s("Workflow inspection not configured")}),!J&&p!==null&&p.length===0&&(0,e.jsx)(q,{description:s("No instances match this filter for the selected workflow."),testId:"workflow-instances-empty",title:s("No instances")}),p!==null&&p.length>0&&(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflow-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:s("Instance id")}),(0,e.jsx)(o,{children:s("Status")}),(0,e.jsx)(o,{children:s("Created")}),(0,e.jsx)(o,{children:s("Ended")}),(0,e.jsx)(o,{"aria-label":s("Actions")})]})}),(0,e.jsx)(F,{children:p.map(a=>(0,e.jsxs)(h,{"data-testid":`workflow-instance-${a.id}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:a.id}),(0,e.jsx)(i,{className:"font-mono text-xs",children:a.status}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.createdOn??"\u2014"}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.endedOn??"\u2014"}),(0,e.jsx)(i,{className:"text-right",children:(0,e.jsxs)("div",{className:"flex justify-end gap-1.5",children:[(0,e.jsx)(I,{"data-testid":`workflow-instance-steps-${a.id}`,onClick:n(()=>{$(U(a.id))},"onClick"),size:"sm",type:"button",variant:"outline",children:s("Steps")}),x!==void 0&&ie.map(d=>(0,e.jsx)(I,{"data-testid":`workflow-instance-${d}-${a.id}`,disabled:L===a.id,onClick:n(()=>{$(B(a.id,d))},"onClick"),size:"sm",type:"button",variant:"ghost",children:s(d)},d))]})})]},a.id))})]})})}),S!==null&&(0,e.jsx)(T,{className:"overflow-hidden py-0","data-testid":"workflow-instance-detail",children:(0,e.jsxs)(j,{className:"flex flex-col gap-2 px-4 py-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("span",{className:"font-mono text-xs",children:[s("Steps")," \xB7 ",S.id]}),(0,e.jsx)(I,{"data-testid":"workflow-instance-detail-close",onClick:n(()=>{O(null)},"onClick"),size:"xs",type:"button",variant:"ghost",children:s("Close")})]}),S.steps.length===0?(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:s("This instance has no recorded steps yet.")}):(0,e.jsxs)(z,{"data-testid":"workflow-instance-steps",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:s("Step")}),(0,e.jsx)(o,{children:s("Type")}),(0,e.jsx)(o,{children:s("Attempts")}),(0,e.jsx)(o,{children:s("Started")}),(0,e.jsx)(o,{children:s("Output")})]})}),(0,e.jsx)(F,{children:S.steps.map((a,d)=>(0,e.jsxs)(h,{"data-testid":`workflow-step-${String(d)}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:a.name}),(0,e.jsx)(i,{className:"text-xs text-muted-foreground",children:a.type??"\u2014"}),(0,e.jsx)(i,{className:"tabular-nums",children:a.attempts??"\u2014"}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.start??"\u2014"}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:me(a)})]},`${a.name}:${String(d)}`))})]})]})})]})},"ce"),fe=Q(K.createWorkflowInstance),he=Q(K.getWorkflowInstanceStatus),pe=n(l=>{if(l.error)return`${l.error.name}: ${l.error.message}`;if(l.output===void 0)return"\u2014";try{return JSON.stringify(l.output)}catch{return"(unserializable)"}},"fe"),we=n((l,r)=>l.some(N=>N.exportName===r)?r:l[0]?.exportName??"","he"),We=n(()=>{let l=M(),r=H(),{data:N,error:R}=ee(K.listWorkflows,{}),[g,A]=(0,c.useState)(""),[s,p]=(0,c.useState)(""),[k,S]=(0,c.useState)(""),[O,v]=(0,c.useState)(!1),[_,b]=(0,c.useState)(null),[f,J]=(0,c.useState)([]),[C,L]=(0,c.useState)(null),P=N!==void 0,w=Array.isArray(N?.workflows)?[...N.workflows].toSorted((t,u)=>t.exportName.localeCompare(u.exportName)):[],x=we(w,g),E=w.find(t=>t.exportName===x),U=n(t=>{J(u=>{let m=u.filter(y=>!(y.exportName===t.exportName&&y.id===t.id));return[t,...m]})},"D"),B=n(async()=>{let t=x;if(t==="")return;let u,m=k.trim();if(m!=="")try{u=JSON.parse(m)}catch{b(r("Params must be valid JSON"));return}v(!0),b(null);try{let y=s.trim(),X=await l.query(fe,{exportName:t,id:y===""?void 0:y,params:u},V(""));U({exportName:t,id:X.id,status:X.status}),p("")}catch(y){b(W(y))}v(!1)},"K"),a=n(()=>{$(B())},"a"),d=n(async(t,u)=>{L(u);try{let m=await l.query(he,{exportName:t,id:u},V(""));U({error:m.error,exportName:t,id:m.id,output:m.output,status:m.status})}catch(m){b(W(m))}L(null)},"l"),G=n(t=>{A(t.target.value)},"P"),ae=n(t=>{p(t.target.value)},"Y"),re=n(t=>{S(t.target.value)},"Z"),se=n(t=>{let{export:u,id:m}=t.currentTarget.dataset;u!==void 0&&m!==void 0&&$(d(u,m))},"ee");return(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-workflows-panel",children:[R!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-error",role:"alert",children:R}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:r("Workflows are declared in code with defineWorkflow and run as durable Cloudflare Workflows. Start an instance and observe its status below.")}),P&&w.length===0?(0,e.jsx)(q,{description:r("No defineWorkflow is declared in lunora/workflows.ts in this deployment. Add one to run a durable, multi-step workflow."),testId:"workflows-empty",title:r("No workflows defined")}):(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:r("Export")}),(0,e.jsx)(o,{children:r("Name")}),(0,e.jsx)(o,{children:r("Class")}),(0,e.jsx)(o,{children:r("Binding")})]})}),(0,e.jsx)(F,{children:w.map(t=>(0,e.jsxs)(h,{"data-testid":`workflows-row-${t.exportName}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.name}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.className}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.binding})]},t.exportName))})]})})}),w.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-start",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Start instance")}),_!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-start-error",role:"alert",children:_}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)("select",{"aria-label":r("Workflow"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflows-start-select",onChange:G,value:x,children:w.map(t=>(0,e.jsx)("option",{value:t.exportName,children:t.exportName},t.exportName))}),(0,e.jsx)(Z,{"aria-label":r("Instance id (optional)"),className:"max-w-48","data-testid":"workflows-start-id",onChange:ae,placeholder:r("Instance id (optional)"),value:s}),(0,e.jsx)(I,{"data-testid":"workflows-start-button",disabled:O||x==="",onClick:a,children:r(O?"Starting\u2026":"Start instance")})]}),(0,e.jsx)(te,{"aria-label":r("Params (JSON)"),className:"font-mono","data-testid":"workflows-start-params",onChange:re,placeholder:r("Params (JSON, optional)"),value:k})]}),f.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-instances",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Instances")}),(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:r("Workflow")}),(0,e.jsx)(o,{children:r("Instance id")}),(0,e.jsx)(o,{children:r("Status")}),(0,e.jsx)(o,{children:r("Output")}),(0,e.jsx)(o,{})]})}),(0,e.jsx)(F,{children:f.map(t=>(0,e.jsxs)(h,{"data-testid":`workflows-instance-${t.id}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.id}),(0,e.jsx)(i,{className:"font-mono text-xs",children:t.status}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:pe(t)}),(0,e.jsx)(i,{children:(0,e.jsx)(I,{"data-export":t.exportName,"data-id":t.id,"data-testid":`workflows-instance-refresh-${t.id}`,disabled:C===t.id,onClick:se,size:"xs",variant:"outline",children:C===t.id?r("Refreshing\u2026"):r("Refresh")})})]},`${t.exportName}:${t.id}`))})]})})})]}),E!==void 0&&(0,e.jsx)(ue,{workflowName:E.name})]})},"Oe");export{We as default};
|
|
1
|
+
import{a as te}from"./chunk-V53KNYRN.js";import{R as Z}from"./chunk-CFPZYHPY.js";import"./chunk-7QIFDWQV.js";import{c as I}from"./chunk-FXCBF4XT.js";import"./chunk-2OUPA2WJ.js";import"./chunk-6ST5ECQA.js";import{a as K}from"./chunk-ERMTJYQF.js";import{c as ee}from"./chunk-XDAT7LHC.js";import{f as M}from"./chunk-EN2QAEO4.js";import"./chunk-XBDKZZ67.js";import{a as q}from"./chunk-XQCVZAGU.js";import{a as z,b as D,c as F,d as h,e as o,f as i}from"./chunk-MIQTKZAR.js";import{a as T,e as j}from"./chunk-UZERI5YC.js";import{d as H,f as Q,g as V,h as W,m as $}from"./chunk-OG4N2XHD.js";import"./chunk-AADILRJW.js";import{a as n,e as Y,f as ne,h as le}from"./chunk-3XIESWL4.js";var c=Y(ne(),1);var e=Y(le(),1);var oe=["queued","running","paused","waiting","complete","errored","terminated"],ie=["pause","resume","terminate"],de="WORKFLOWS_NOT_CONFIGURED",ce=n(l=>typeof l=="object"&&l!==null&&l.code===de,"ie"),me=n(l=>{let r=l.error??l.output;if(r===void 0)return"\u2014";try{return JSON.stringify(r)}catch{return"(unserializable)"}},"de"),ue=n(({loadDetail:l,loadInstances:r,readOnly:N,runAction:R,workflowName:g})=>{let A=M(),s=H(),[p,k]=(0,c.useState)(null),[S,O]=(0,c.useState)(null),[v,_]=(0,c.useState)(""),[b,f]=(0,c.useState)(null),[J,C]=(0,c.useState)(!1),[L,P]=(0,c.useState)(null),w=l??(a=>A.getWorkflowInstance(a)),x=N?void 0:R??(r===void 0?a=>A.setWorkflowInstanceStatus(a):void 0),E=n(async()=>{f(null),C(!1);let a=v===""?void 0:v;try{if(r===void 0){let d=await A.listWorkflowInstances({name:g,status:a});if(d.configured===!1){k(null),C(!0);return}k(d.instances);return}k(await r({name:g,status:a}))}catch(d){k(null),ce(d)?C(!0):f(W(d))}},"O");(0,c.useEffect)(()=>{O(null),$(E())},[g,v]);let U=n(async a=>{f(null);try{O(await w({id:a,name:g}))}catch(d){f(W(d))}},"D"),B=n(async(a,d)=>{if(x!==void 0){P(a),f(null);try{await x({action:d,id:a,name:g}),await E()}catch(G){f(W(G))}P(null)}},"K");return(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"lunora-workflow-instances",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:s("Instance history")}),(0,e.jsxs)("select",{"aria-label":s("Filter by status"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflow-instances-filter",onChange:n(a=>{_(a.target.value)},"onChange"),value:v,children:[(0,e.jsx)("option",{value:"",children:s("All statuses")}),oe.map(a=>(0,e.jsx)("option",{value:a,children:a},a))]})]}),b!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflow-instances-error",role:"alert",children:b}),J&&(0,e.jsx)(q,{description:s("Set CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_API_TOKEN in your .dev.vars to enable workflow instance history."),testId:"workflow-instances-unconfigured",title:s("Workflow inspection not configured")}),!J&&p!==null&&p.length===0&&(0,e.jsx)(q,{description:s("No instances match this filter for the selected workflow."),testId:"workflow-instances-empty",title:s("No instances")}),p!==null&&p.length>0&&(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflow-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:s("Instance id")}),(0,e.jsx)(o,{children:s("Status")}),(0,e.jsx)(o,{children:s("Created")}),(0,e.jsx)(o,{children:s("Ended")}),(0,e.jsx)(o,{"aria-label":s("Actions")})]})}),(0,e.jsx)(F,{children:p.map(a=>(0,e.jsxs)(h,{"data-testid":`workflow-instance-${a.id}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:a.id}),(0,e.jsx)(i,{className:"font-mono text-xs",children:a.status}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.createdOn??"\u2014"}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.endedOn??"\u2014"}),(0,e.jsx)(i,{className:"text-right",children:(0,e.jsxs)("div",{className:"flex justify-end gap-1.5",children:[(0,e.jsx)(I,{"data-testid":`workflow-instance-steps-${a.id}`,onClick:n(()=>{$(U(a.id))},"onClick"),size:"sm",type:"button",variant:"outline",children:s("Steps")}),x!==void 0&&ie.map(d=>(0,e.jsx)(I,{"data-testid":`workflow-instance-${d}-${a.id}`,disabled:L===a.id,onClick:n(()=>{$(B(a.id,d))},"onClick"),size:"sm",type:"button",variant:"ghost",children:s(d)},d))]})})]},a.id))})]})})}),S!==null&&(0,e.jsx)(T,{className:"overflow-hidden py-0","data-testid":"workflow-instance-detail",children:(0,e.jsxs)(j,{className:"flex flex-col gap-2 px-4 py-3",children:[(0,e.jsxs)("div",{className:"flex items-center justify-between",children:[(0,e.jsxs)("span",{className:"font-mono text-xs",children:[s("Steps")," \xB7 ",S.id]}),(0,e.jsx)(I,{"data-testid":"workflow-instance-detail-close",onClick:n(()=>{O(null)},"onClick"),size:"xs",type:"button",variant:"ghost",children:s("Close")})]}),S.steps.length===0?(0,e.jsx)("p",{className:"text-xs text-muted-foreground",children:s("This instance has no recorded steps yet.")}):(0,e.jsxs)(z,{"data-testid":"workflow-instance-steps",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:s("Step")}),(0,e.jsx)(o,{children:s("Type")}),(0,e.jsx)(o,{children:s("Attempts")}),(0,e.jsx)(o,{children:s("Started")}),(0,e.jsx)(o,{children:s("Output")})]})}),(0,e.jsx)(F,{children:S.steps.map((a,d)=>(0,e.jsxs)(h,{"data-testid":`workflow-step-${String(d)}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:a.name}),(0,e.jsx)(i,{className:"text-xs text-muted-foreground",children:a.type??"\u2014"}),(0,e.jsx)(i,{className:"tabular-nums",children:a.attempts??"\u2014"}),(0,e.jsx)(i,{className:"text-muted-foreground tabular-nums",children:a.start??"\u2014"}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:me(a)})]},`${a.name}:${String(d)}`))})]})]})})]})},"ce"),fe=Q(K.createWorkflowInstance),he=Q(K.getWorkflowInstanceStatus),pe=n(l=>{if(l.error)return`${l.error.name}: ${l.error.message}`;if(l.output===void 0)return"\u2014";try{return JSON.stringify(l.output)}catch{return"(unserializable)"}},"fe"),we=n((l,r)=>l.some(N=>N.exportName===r)?r:l[0]?.exportName??"","he"),We=n(()=>{let l=M(),r=H(),{data:N,error:R}=ee(K.listWorkflows,{}),[g,A]=(0,c.useState)(""),[s,p]=(0,c.useState)(""),[k,S]=(0,c.useState)(""),[O,v]=(0,c.useState)(!1),[_,b]=(0,c.useState)(null),[f,J]=(0,c.useState)([]),[C,L]=(0,c.useState)(null),P=N!==void 0,w=Array.isArray(N?.workflows)?[...N.workflows].toSorted((t,u)=>t.exportName.localeCompare(u.exportName)):[],x=we(w,g),E=w.find(t=>t.exportName===x),U=n(t=>{J(u=>{let m=u.filter(y=>!(y.exportName===t.exportName&&y.id===t.id));return[t,...m]})},"D"),B=n(async()=>{let t=x;if(t==="")return;let u,m=k.trim();if(m!=="")try{u=JSON.parse(m)}catch{b(r("Params must be valid JSON"));return}v(!0),b(null);try{let y=s.trim(),X=await l.query(fe,{exportName:t,id:y===""?void 0:y,params:u},V(""));U({exportName:t,id:X.id,status:X.status}),p("")}catch(y){b(W(y))}v(!1)},"K"),a=n(()=>{$(B())},"a"),d=n(async(t,u)=>{L(u);try{let m=await l.query(he,{exportName:t,id:u},V(""));U({error:m.error,exportName:t,id:m.id,output:m.output,status:m.status})}catch(m){b(W(m))}L(null)},"l"),G=n(t=>{A(t.target.value)},"P"),ae=n(t=>{p(t.target.value)},"Y"),re=n(t=>{S(t.target.value)},"Z"),se=n(t=>{let{export:u,id:m}=t.currentTarget.dataset;u!==void 0&&m!==void 0&&$(d(u,m))},"ee");return(0,e.jsxs)("div",{className:"flex flex-col gap-6","data-testid":"lunora-workflows-panel",children:[R!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-error",role:"alert",children:R}),(0,e.jsx)("p",{className:"text-sm text-muted-foreground",children:r("Workflows are declared in code with defineWorkflow and run as durable Cloudflare Workflows. Start an instance and observe its status below.")}),P&&w.length===0?(0,e.jsx)(q,{description:r("No defineWorkflow is declared in lunora/workflows.ts in this deployment. Add one to run a durable, multi-step workflow."),testId:"workflows-empty",title:r("No workflows defined")}):(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:r("Export")}),(0,e.jsx)(o,{children:r("Name")}),(0,e.jsx)(o,{children:r("Class")}),(0,e.jsx)(o,{children:r("Binding")})]})}),(0,e.jsx)(F,{children:w.map(t=>(0,e.jsxs)(h,{"data-testid":`workflows-row-${t.exportName}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.name}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.className}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.binding})]},t.exportName))})]})})}),w.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-start",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Start instance")}),_!==null&&(0,e.jsx)("p",{className:"text-sm text-destructive","data-testid":"workflows-start-error",role:"alert",children:_}),(0,e.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,e.jsx)("select",{"aria-label":r("Workflow"),className:"h-8 rounded-md border border-input bg-transparent px-2.5 py-1 text-xs outline-none focus-visible:border-ring focus-visible:ring-1 focus-visible:ring-ring/50","data-testid":"workflows-start-select",onChange:G,value:x,children:w.map(t=>(0,e.jsx)("option",{value:t.exportName,children:t.exportName},t.exportName))}),(0,e.jsx)(Z,{"aria-label":r("Instance id (optional)"),className:"max-w-48","data-testid":"workflows-start-id",onChange:ae,placeholder:r("Instance id (optional)"),value:s}),(0,e.jsx)(I,{"data-testid":"workflows-start-button",disabled:O||x==="",onClick:a,children:r(O?"Starting\u2026":"Start instance")})]}),(0,e.jsx)(te,{"aria-label":r("Params (JSON)"),className:"font-mono","data-testid":"workflows-start-params",onChange:re,placeholder:r("Params (JSON, optional)"),value:k})]}),f.length>0&&(0,e.jsxs)("div",{className:"flex flex-col gap-3","data-testid":"workflows-instances",children:[(0,e.jsx)("h3",{className:"text-sm font-medium",children:r("Instances")}),(0,e.jsx)(T,{className:"overflow-hidden py-0",children:(0,e.jsx)(j,{className:"px-0",children:(0,e.jsxs)(z,{"data-testid":"workflows-instances-table",children:[(0,e.jsx)(D,{children:(0,e.jsxs)(h,{children:[(0,e.jsx)(o,{children:r("Workflow")}),(0,e.jsx)(o,{children:r("Instance id")}),(0,e.jsx)(o,{children:r("Status")}),(0,e.jsx)(o,{children:r("Output")}),(0,e.jsx)(o,{})]})}),(0,e.jsx)(F,{children:f.map(t=>(0,e.jsxs)(h,{"data-testid":`workflows-instance-${t.id}`,children:[(0,e.jsx)(i,{className:"font-mono text-xs",children:t.exportName}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:t.id}),(0,e.jsx)(i,{className:"font-mono text-xs",children:t.status}),(0,e.jsx)(i,{className:"font-mono text-xs text-muted-foreground",children:pe(t)}),(0,e.jsx)(i,{children:(0,e.jsx)(I,{"data-export":t.exportName,"data-id":t.id,"data-testid":`workflows-instance-refresh-${t.id}`,disabled:C===t.id,onClick:se,size:"xs",variant:"outline",children:C===t.id?r("Refreshing\u2026"):r("Refresh")})})]},`${t.exportName}:${t.id}`))})]})})})]}),E!==void 0&&(0,e.jsx)(ue,{workflowName:E.name})]})},"Oe");export{We as default};
|