planche 0.9.3 → 0.9.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/app/assets/{B4e4BJ-q.js → 2HDxyxt3.js} +1 -1
  2. package/app/assets/{DMmbl7oU.js → 2WcjYcT6.js} +1 -1
  3. package/app/assets/{B3qo2BmL.js → 34iJa-68.js} +1 -1
  4. package/app/assets/{aBt7vbXN.js → 62772Vyq.js} +1 -1
  5. package/app/assets/{XCH_yrJ8.js → 7hKKrols.js} +1 -1
  6. package/app/assets/{CtvJotUV.js → AR0v7sKO.js} +1 -1
  7. package/app/assets/B5FoXN4H.js +1 -0
  8. package/app/assets/{Xya13jwA.js → BB2_KYgp.js} +1 -1
  9. package/app/assets/{CCHDqJU3.js → BHsv1P4D.js} +1 -1
  10. package/app/assets/{Cv7B7xE1.js → BI5Ig187.js} +1 -1
  11. package/app/assets/{DyPVTkGX.js → BRKvj3qd.js} +1 -1
  12. package/app/assets/{BghfQrAj.js → BVZGLNq_.js} +1 -1
  13. package/app/assets/{CCBiFHWk.js → BWPrOT1U.js} +1 -1
  14. package/app/assets/{CMFMZu0I.js → BaTnCkNR.js} +1 -1
  15. package/app/assets/{BXogLn0j.js → BdhjYiGI.js} +1 -1
  16. package/app/assets/{D8_hwGjG.js → BihjBM79.js} +1 -1
  17. package/app/assets/{DpcElnaI.js → Bjx1jzlk.js} +1 -1
  18. package/app/assets/{uCGINy9d.js → BtBUwOf0.js} +1 -1
  19. package/app/assets/{CSjIZAje.js → Buf-_p3w.js} +1 -1
  20. package/app/assets/{C63wLpkg.js → BvkNY7SP.js} +1 -1
  21. package/app/assets/{mHq6YiMc.js → C-8Bh-gu.js} +1 -1
  22. package/app/assets/{D4aakMZ1.js → C1JbR1mO.js} +1 -1
  23. package/app/assets/{mA16m5gB.js → C3AWL5gC.js} +1 -1
  24. package/app/assets/{TqO-pPrr.js → C3aiaYZP.js} +1 -1
  25. package/app/assets/{Cu_sGzNJ.js → C76CctEl.js} +1 -1
  26. package/app/assets/{C3skRSMN.js → C82F2LSh.js} +1 -1
  27. package/app/assets/{_lYVFvcB.js → CCJEQIo6.js} +1 -1
  28. package/app/assets/{CSE_C1ca.js → CDfygETm.js} +1 -1
  29. package/app/assets/{BmnRSOWE.js → CGpFMM6B.js} +1 -1
  30. package/app/assets/{Ci1xBOLy.js → CH4cEkW4.js} +1 -1
  31. package/app/assets/{rSe5GrVH.js → CKUISE0C.js} +1 -1
  32. package/app/assets/{Bx57-46U.js → CN1CF2CU.js} +1 -1
  33. package/app/assets/{BFUEHSdO.js → CRYDH2ct.js} +1 -1
  34. package/app/assets/{DpPKm22O.js → CZRhmV_L.js} +2 -2
  35. package/app/assets/{D6SRSRpo.js → C_qmv4pB.js} +1 -1
  36. package/app/assets/{CgQ0qqq4.js → CcaDuuFY.js} +1 -1
  37. package/app/assets/{Dl3kZgxg.js → Cm-pfCIP.js} +1 -1
  38. package/app/assets/{C9jzAIEJ.js → Cme0nCT7.js} +1 -1
  39. package/app/assets/{Bsl10NAd.js → CoUCmmSB.js} +1 -1
  40. package/app/assets/{DtUkSj2L.js → CtsakJNi.js} +1 -1
  41. package/app/assets/{BYvM8E39.js → CxaujQob.js} +1 -1
  42. package/app/assets/{CYz610vE.js → CyX8oVsa.js} +1 -1
  43. package/app/assets/{baQnXYR8.js → D-DAzfgs.js} +1 -1
  44. package/app/assets/{X0frSBI-.js → D3VPMNTU.js} +1 -1
  45. package/app/assets/{B_zu4Zim.js → D4DxtYTA.js} +6 -6
  46. package/app/assets/{D2dO-cBr.js → D4c1cZWk.js} +1 -1
  47. package/app/assets/{BFxd4DZC.js → DG0u2CPf.js} +1 -1
  48. package/app/assets/{CYqQEBj7.js → DKObYbZY.js} +1 -1
  49. package/app/assets/{DU-Eln5x.js → DOy06rIE.js} +1 -1
  50. package/app/assets/{Uf0CXpNG.js → DT8Xdk78.js} +1 -1
  51. package/app/assets/{BFddfnRD.js → DXExbVos.js} +1 -1
  52. package/app/assets/{DBwwgHNb.js → DXQPcWS6.js} +1 -1
  53. package/app/assets/{CiL8zoYm.js → Dya0zxo6.js} +1 -1
  54. package/app/assets/{DdGvqbC0.js → IqMoIce-.js} +1 -1
  55. package/app/assets/{BNB2k8On.js → MeOkctzz.js} +1 -1
  56. package/app/assets/{B8kALM_o.js → NL8WOYEo.js} +1 -1
  57. package/app/assets/{D8dVzi6I.js → Ngd1VEiY.js} +1 -1
  58. package/app/assets/UEkRIZwQ.js +1 -0
  59. package/app/assets/{BGuDcBB_.js → UJzcIbfW.js} +1 -1
  60. package/app/assets/{cFpo8ItN.js → W81Xd8P5.js} +1 -1
  61. package/app/assets/{Bjupmf7v.js → Yn5aIyLX.js} +1 -1
  62. package/app/assets/{DP7G83e7.js → _N3A-NTc.js} +1 -1
  63. package/app/assets/{BLF41w4B.js → gvCOWBS0.js} +1 -1
  64. package/app/assets/{CAd2f6EE.js → iz6RnRcO.js} +1 -1
  65. package/app/assets/{DzRyVlxz.js → kTwcxyaO.js} +1 -1
  66. package/app/assets/{BanAYgsJ.js → oXAkF219.js} +1 -1
  67. package/app/assets/{ClHvsi-E.js → pDR31rvF.js} +1 -1
  68. package/app/assets/{DmDLn1hv.js → u9a-WHjb.js} +1 -1
  69. package/app/assets/{Ec3vNInq.js → yLCKuLgs.js} +1 -1
  70. package/app/assets/{CHn2dkeR.js → yfRSh-O-.js} +1 -1
  71. package/app/assets/{BPLdNS4h.js → zdvaVsTo.js} +1 -1
  72. package/app/index.html +19 -19
  73. package/package.json +1 -1
  74. package/app/assets/BEY3Hwp0.js +0 -1
  75. package/app/assets/BFw3KCAr.js +0 -1
@@ -1,2 +1,2 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,t as l}from"./DzRyVlxz.js";import{a as u,i as d,n as f,r as p,t as m}from"./B3qo2BmL.js";import{t as h}from"./CAd2f6EE.js";import{n as g,t as _}from"./D8_hwGjG.js";import{a as v}from"./BghfQrAj.js";import{r as y}from"./Ci1xBOLy.js";import{a as b,m as x}from"./DpPKm22O.js";import{A as S,C,J as ee,M as w,O as T,S as E,T as D,_t as O,b as k,c as A,gt as j,j as te,k as ne,l as M,tt as N,un as P,vt as F,w as I,x as L}from"./B_zu4Zim.js";var R=e(t(),1);function z(){return{id:crypto.randomUUID(),field:``,type:`varchar`,length:``,defaultValue:``,pk:!1,notNull:!1,unsigned:!1,autoIncrement:!1,zerofill:!1,comment:``}}function B(){return{id:crypto.randomUUID(),name:``,type:`INDEX`,columns:[]}}function V(){return{engine:`InnoDB`,charset:`utf8mb4`,collation:`utf8mb4_general_ci`,autoIncrement:``,comment:``}}function H(e,t,n,r,i){return{database:e,name:t,columns:n.map(e=>({name:e.field,type:e.type,length:e.length,defaultValue:e.defaultValue,primaryKey:e.pk,notNull:e.notNull,unsigned:e.unsigned,autoIncrement:e.autoIncrement,zerofill:e.zerofill,comment:e.comment})),indexes:r.map(e=>({name:e.name,type:e.type,columns:[...e.columns]})),options:{...i}}}var U=i(),W=`w-auto min-w-full [&_td]:bg-muted [&_td]:border-r [&_td]:border-border/60 [&_td:last-child]:border-r-0 [&_td]:p-0 [&_td]:h-8 [&_tr:nth-child(even)_td]:bg-muted/60 [&_tr:focus-within_td]:bg-primary/5`,G=`sticky top-0 z-10 bg-catppuccin-crust shadow-[inset_0_-1px_0_var(--border)] [&_th]:h-8 [&_th]:bg-catppuccin-crust [&_th]:font-semibold [&_th]:text-foreground [&_th]:uppercase [&_th]:tracking-wide [&_th]:text-[11px]`,K=`h-8 w-full min-w-0 rounded-none border-0 bg-transparent px-2 text-xs shadow-none ring-0 focus-visible:bg-primary/10 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary dark:bg-transparent`,q=`h-8 w-full min-w-0 rounded-none border-0 bg-transparent px-2 text-xs shadow-none focus-visible:bg-primary/10 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary data-[state=open]:bg-primary/10 dark:bg-transparent dark:hover:bg-transparent`;function re({columns:e,onChange:t}){let{t:i}=r(),a=j().getDataTypes(),o=(0,R.useCallback)((n,r,i)=>{t(e.map(e=>e.id===n?{...e,[r]:i}:e))},[e,t]);function s(){t([...e,z()])}function c(){e.length>0&&t(e.slice(0,-1))}return(0,U.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,U.jsx)(F,{className:`flex-1`,children:(0,U.jsxs)(k,{className:W,children:[(0,U.jsx)(I,{className:G,children:(0,U.jsxs)(D,{children:[(0,U.jsx)(C,{className:`w-[120px]`,children:i(`table.schema.colField`)}),(0,U.jsx)(C,{className:`w-[120px]`,children:i(`table.schema.colType`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colLength`)}),(0,U.jsx)(C,{className:`w-[100px]`,children:i(`table.schema.colDefault`)}),(0,U.jsx)(C,{className:`w-[40px]`,children:i(`table.schema.colPk`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colNotNull`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colUnsigned`)}),(0,U.jsx)(C,{className:`w-[70px]`,children:i(`table.schema.colAutoIncrement`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colZerofill`)}),(0,U.jsx)(C,{children:i(`table.schema.colComment`)})]})}),(0,U.jsx)(L,{children:e.length===0?(0,U.jsx)(D,{children:(0,U.jsx)(E,{colSpan:10,className:`text-center text-muted-foreground`,children:i(`table.schema.empty`)})}):e.map(e=>(0,U.jsxs)(D,{children:[(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.field,onChange:t=>o(e.id,`field`,t.target.value),placeholder:`column_name`})}),(0,U.jsx)(E,{children:(0,U.jsxs)(m,{value:e.type,onValueChange:t=>o(e.id,`type`,t),children:[(0,U.jsx)(d,{className:q,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:a.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.length,onChange:t=>o(e.id,`length`,t.target.value)})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.defaultValue,onChange:t=>o(e.id,`defaultValue`,t.target.value),placeholder:`NULL`})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.pk,onChange:t=>o(e.id,`pk`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.notNull,onChange:t=>o(e.id,`notNull`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.unsigned,onChange:t=>o(e.id,`unsigned`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.autoIncrement,onChange:t=>o(e.id,`autoIncrement`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.zerofill,onChange:t=>o(e.id,`zerofill`,t.target.checked)})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.comment,onChange:t=>o(e.id,`comment`,t.target.value)})})]},e.id))})]})}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-2 border-t`,children:[(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:s,children:i(`table.schema.add`)}),(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:c,disabled:e.length===0,children:i(`table.schema.remove`)})]})]})}var J=[`PRIMARY`,`UNIQUE`,`INDEX`,`FULLTEXT`];function Y({open:e,index:t,availableColumns:i,onSave:h,onClose:g}){let{t:_}=r(),[v,y]=(0,R.useState)(t.name),[b,x]=(0,R.useState)(t.type),[S,C]=(0,R.useState)(t.columns);function ee(e){C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}function w(){h({id:t.id,name:b===`PRIMARY`?`PRIMARY`:v,type:b,columns:S})}return(0,U.jsx)(l,{open:e,onOpenChange:e=>{e||g()},children:(0,U.jsxs)(s,{className:`sm:max-w-[500px]`,children:[(0,U.jsx)(a,{children:(0,U.jsx)(c,{children:t.name?_(`table.index.editTitle`):_(`table.index.addTitle`)})}),(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`idx-name`,children:_(`table.index.name`)}),(0,U.jsx)(M,{id:`idx-name`,value:b===`PRIMARY`?`PRIMARY`:v,onChange:e=>y(e.target.value),disabled:b===`PRIMARY`,placeholder:_(`table.index.namePlaceholder`)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`idx-type`,children:_(`table.index.type`)}),(0,U.jsxs)(m,{value:b,onValueChange:e=>x(e),children:[(0,U.jsx)(d,{id:`idx-type`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:J.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{children:_(`table.index.columns`)}),(0,U.jsx)(`div`,{className:`border rounded-md p-2 max-h-[200px] overflow-y-auto space-y-1`,children:i.length===0?(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:_(`table.index.noColumns`)}):i.map(e=>(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-sm cursor-pointer hover:bg-muted/50 rounded px-1 py-0.5`,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:S.includes(e.field),onChange:()=>ee(e.field)}),(0,U.jsx)(`span`,{children:e.field||_(`table.index.unnamed`)}),(0,U.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,e.type,`)`]})]},e.id))})]})]}),(0,U.jsxs)(o,{children:[(0,U.jsx)(n,{variant:`outline`,onClick:g,children:_(`table.index.cancel`)}),(0,U.jsx)(n,{onClick:w,disabled:S.length===0,children:_(`table.index.ok`)})]})]})})}function ie({indexes:e,availableColumns:t,onChange:i}){let{t:a}=r(),[o,s]=(0,R.useState)(null),[c,l]=(0,R.useState)(!1);function u(){let e=B();s(e),l(!0)}function d(e){s({...e}),l(!0)}function f(){e.length>0&&i(e.slice(0,-1))}function p(t){e.find(e=>e.id===t.id)?i(e.map(e=>e.id===t.id?t:e)):i([...e,t]),l(!1),s(null)}function m(){l(!1),s(null)}return(0,U.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,U.jsx)(F,{className:`flex-1`,children:(0,U.jsxs)(k,{className:W+` [&_td]:px-2`,children:[(0,U.jsx)(I,{className:G,children:(0,U.jsxs)(D,{children:[(0,U.jsx)(C,{className:`w-[150px]`,children:a(`table.indexes.colName`)}),(0,U.jsx)(C,{className:`w-[120px]`,children:a(`table.indexes.colType`)}),(0,U.jsx)(C,{children:a(`table.indexes.colColumns`)})]})}),(0,U.jsx)(L,{children:e.length===0?(0,U.jsx)(D,{children:(0,U.jsx)(E,{colSpan:3,className:`text-center text-muted-foreground`,children:a(`table.indexes.empty`)})}):e.map(e=>(0,U.jsxs)(D,{className:`cursor-pointer`,onDoubleClick:()=>d(e),children:[(0,U.jsx)(E,{children:e.name}),(0,U.jsx)(E,{children:e.type}),(0,U.jsx)(E,{children:e.columns.join(`, `)})]},e.id))})]})}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-2 border-t`,children:[(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:u,children:a(`table.indexes.add`)}),(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:f,disabled:e.length===0,children:a(`table.indexes.remove`)})]}),o&&(0,U.jsx)(Y,{open:c,index:o,availableColumns:t,onSave:p,onClose:m})]})}var ae=[`InnoDB`,`MyISAM`,`MEMORY`,`CSV`,`ARCHIVE`,`BLACKHOLE`,`MRG_MYISAM`,`FEDERATED`,`PERFORMANCE_SCHEMA`],oe=[`utf8mb4`,`utf8`,`latin1`,`ascii`,`binary`,`cp1251`,`euckr`,`gb2312`,`gbk`,`sjis`,`ucs2`,`utf16`,`utf32`],X={utf8mb4:[`utf8mb4_general_ci`,`utf8mb4_unicode_ci`,`utf8mb4_bin`,`utf8mb4_0900_ai_ci`],utf8:[`utf8_general_ci`,`utf8_unicode_ci`,`utf8_bin`],latin1:[`latin1_swedish_ci`,`latin1_general_ci`,`latin1_bin`],ascii:[`ascii_general_ci`,`ascii_bin`],binary:[`binary`],cp1251:[`cp1251_general_ci`,`cp1251_bin`],euckr:[`euckr_korean_ci`,`euckr_bin`],gb2312:[`gb2312_chinese_ci`,`gb2312_bin`],gbk:[`gbk_chinese_ci`,`gbk_bin`],sjis:[`sjis_japanese_ci`,`sjis_bin`],ucs2:[`ucs2_general_ci`,`ucs2_unicode_ci`,`ucs2_bin`],utf16:[`utf16_general_ci`,`utf16_unicode_ci`,`utf16_bin`],utf32:[`utf32_general_ci`,`utf32_unicode_ci`,`utf32_bin`]};function se({properties:e,onChange:t}){let{t:n}=r();function i(n,r){let i={...e,[n]:r};n===`charset`&&(i.collation=X[r]?.[0]??``),t(i)}let a=X[e.charset]??[];return(0,U.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-engine`,children:n(`table.properties.engine`)}),(0,U.jsxs)(m,{value:e.engine,onValueChange:e=>i(`engine`,e),children:[(0,U.jsx)(d,{id:`prop-engine`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:ae.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-charset`,children:n(`table.properties.charset`)}),(0,U.jsxs)(m,{value:e.charset,onValueChange:e=>i(`charset`,e),children:[(0,U.jsx)(d,{id:`prop-charset`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:oe.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-collation`,children:n(`table.properties.collation`)}),(0,U.jsxs)(m,{value:e.collation,onValueChange:e=>i(`collation`,e),children:[(0,U.jsx)(d,{id:`prop-collation`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:a.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-auto-incr`,children:n(`table.properties.autoIncrement`)}),(0,U.jsx)(M,{id:`prop-auto-incr`,type:`number`,value:e.autoIncrement,onChange:e=>i(`autoIncrement`,e.target.value),placeholder:n(`table.properties.autoIncrementPlaceholder`)})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-comment`,children:n(`table.properties.comment`)}),(0,U.jsx)(M,{id:`prop-comment`,value:e.comment,onChange:e=>i(`comment`,e.target.value)})]})]})}function ce({connectionId:e,database:t,tableName:n,columns:r,indexes:i,properties:a}){let o=N(e=>e.themeId),s=O(e),c=T(o),l=(0,R.useMemo)(()=>s.ddl.createTable(H(t,n,r,i,a)),[s,t,n,r,i,a]);return(0,U.jsx)(`div`,{className:`h-[320px]`,children:(0,U.jsx)(P,{height:`100%`,language:`sql`,theme:c,value:l,options:{readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,lineNumbers:`on`,wordWrap:`on`}})})}function Z(e){return JSON.stringify([e.type,e.length,e.defaultValue,e.pk,e.notNull,e.unsigned,e.autoIncrement,e.zerofill,e.comment])}function Q(e){return{name:e.field,type:e.length?`${e.type}(${e.length})`:e.type,nullable:!e.notNull,key:e.pk?`PRI`:``,defaultValue:e.defaultValue===``?null:e.defaultValue,extra:e.autoIncrement?`auto_increment`:``,comment:e.comment,collation:null}}function $(e){return{name:e.name,type:e.type,columns:[...e.columns]}}function le(e,t){return e.name===t.name&&e.type===t.type&&e.columns.join(`,`)===t.columns.join(`,`)}function ue({engine:e,database:t,table:n,before:r,after:i}){let{ddl:a}=e,o=[],s=[],c=[],l=new Map(r.columns.map(e=>[e.id,e])),u=new Map(i.columns.map(e=>[e.id,e])),d=new Map(r.indexes.map(e=>[e.id,e])),f=new Map(i.indexes.map(e=>[e.id,e])),p=[];for(let[e,r]of d){let i=f.get(e);i?le(r,i)||(o.push(a.dropIndex(t,n,r.name)),p.push(i)):o.push(a.dropIndex(t,n,r.name))}for(let[e,r]of u){let i=l.get(e);if(!i){r.field.trim()&&o.push(a.addColumn(t,n,Q(r)));continue}if(i.field!==r.field&&o.push(a.renameColumn(t,n,i.field,r.field)),Z(i)!==Z(r)){let e=a.alterColumn(t,n,Q(r));e?o.push(e):c.push(r.field)}}for(let[e,r]of l)if(!u.has(e)){let e=a.dropColumn(t,n,r.field);o.push(e),s.push(e)}for(let e of p)o.push(a.createIndex(t,n,$(e)));for(let[e,r]of f)!d.has(e)&&r.columns.length>0&&o.push(a.createIndex(t,n,$(r)));return{statements:o,destructive:s,unsupported:c}}function de(){let{t:e}=r(),{activeDialog:t,closeDialog:i}=g(),u=_(`create-table`,`alter-table`,`duplicate-table-structure`),d=t===`create-table`||t===`alter-table`||t===`duplicate-table-structure`,f=t===`alter-table`,p=t===`duplicate-table-structure`,m=u?.nodeText??``,C=u?.metadata?.database??``,[T,E]=(0,R.useState)(``),[D,k]=(0,R.useState)([z()]),[j,N]=(0,R.useState)([]),[P,F]=(0,R.useState)(V()),[I,L]=(0,R.useState)(!1),[B,W]=(0,R.useState)(!1),[G,K]=(0,R.useState)(null),[q,J]=(0,R.useState)(null),Y=u?.connectionId??h.getState().activeConnectionId,ae=O(Y);(0,R.useEffect)(()=>{d&&(K(null),J(null),f||p?(E(p?`${m}_copy`:m),oe()):(E(``),k([z()]),N([]),F(V())))},[d,t]);async function oe(){let e=h.getState(),t=u?.connectionId??e.activeConnectionId,n=e.activeConnections.find(e=>e.id===t)?.serverConnectionId;if(!n||!C||!m)return;L(!0);let{introspect:r,capabilities:i}=y(t),a=v(n);try{let e=await r.listColumns(a,C,m),t=[];if(e.length>0){let n=e.map(e=>{let t=e.type,n=t.match(/^(\w+)(?:\(([^)]+)\))?/);return{id:crypto.randomUUID(),field:e.name,type:n?.[1]?.toLowerCase()??t.toLowerCase(),length:n?.[2]??``,defaultValue:e.defaultValue??``,pk:e.key===`PRI`,notNull:!e.nullable,unsigned:t.includes(`unsigned`),autoIncrement:e.extra.includes(`auto_increment`),zerofill:t.includes(`zerofill`),comment:e.comment}});k(n),t=n}let n=await r.listIndexes(a,C,m),o=[];if(n.length>0&&(o=n.map(e=>({id:crypto.randomUUID(),name:e.name,type:e.type===`SPATIAL`?`INDEX`:e.type,columns:[...e.columns]})),N(o)),J({columns:t,indexes:o}),i.tableProperties){let e=await r.getTableInfo(a,C,m);e&&F({engine:e.engine??`InnoDB`,charset:(e.collation??`utf8mb4`).replace(/_.*/,``),collation:e.collation??`utf8mb4_unicode_ci`,autoIncrement:e.autoIncrement??``,comment:e.comment})}}catch(e){console.error(`Failed to load table schema:`,e),K(e instanceof Error?e.message:String(e))}finally{L(!1)}}function X(e){e||i()}async function Z(){let t=u?.connectionId??h.getState().activeConnectionId;if(!t||!T.trim())return;let n=y(t);K(null);let r,a=[];if(f){if(!q)return;let t=ue({engine:n,database:C,table:m,before:q,after:{columns:D,indexes:j}});if(t.unsupported.length>0){K(e(`table.dialog.cannotAlterColumns`,{engine:n.label,columns:t.unsupported.join(`, `)}));return}if(t.statements.length===0){i();return}r=t.statements.join(`
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./Dya0zxo6.js";import{i as r,r as i}from"./C76CctEl.js";import{a,i as o,n as s,o as c,t as l}from"./kTwcxyaO.js";import{a as u,i as d,n as f,r as p,t as m}from"./34iJa-68.js";import{t as h}from"./iz6RnRcO.js";import{n as g,t as _}from"./BihjBM79.js";import{a as v}from"./BVZGLNq_.js";import{r as y}from"./CH4cEkW4.js";import{a as b,m as x}from"./CZRhmV_L.js";import{A as S,C,J as ee,M as w,O as T,S as E,T as D,_t as O,b as k,c as A,gt as j,j as te,k as ne,l as M,tt as N,un as P,vt as F,w as I,x as L}from"./D4DxtYTA.js";var R=e(t(),1);function z(){return{id:crypto.randomUUID(),field:``,type:`varchar`,length:``,defaultValue:``,pk:!1,notNull:!1,unsigned:!1,autoIncrement:!1,zerofill:!1,comment:``}}function B(){return{id:crypto.randomUUID(),name:``,type:`INDEX`,columns:[]}}function V(){return{engine:`InnoDB`,charset:`utf8mb4`,collation:`utf8mb4_general_ci`,autoIncrement:``,comment:``}}function H(e,t,n,r,i){return{database:e,name:t,columns:n.map(e=>({name:e.field,type:e.type,length:e.length,defaultValue:e.defaultValue,primaryKey:e.pk,notNull:e.notNull,unsigned:e.unsigned,autoIncrement:e.autoIncrement,zerofill:e.zerofill,comment:e.comment})),indexes:r.map(e=>({name:e.name,type:e.type,columns:[...e.columns]})),options:{...i}}}var U=i(),W=`w-auto min-w-full [&_td]:bg-muted [&_td]:border-r [&_td]:border-border/60 [&_td:last-child]:border-r-0 [&_td]:p-0 [&_td]:h-8 [&_tr:nth-child(even)_td]:bg-muted/60 [&_tr:focus-within_td]:bg-primary/5`,G=`sticky top-0 z-10 bg-catppuccin-crust shadow-[inset_0_-1px_0_var(--border)] [&_th]:h-8 [&_th]:bg-catppuccin-crust [&_th]:font-semibold [&_th]:text-foreground [&_th]:uppercase [&_th]:tracking-wide [&_th]:text-[11px]`,K=`h-8 w-full min-w-0 rounded-none border-0 bg-transparent px-2 text-xs shadow-none ring-0 focus-visible:bg-primary/10 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary dark:bg-transparent`,q=`h-8 w-full min-w-0 rounded-none border-0 bg-transparent px-2 text-xs shadow-none focus-visible:bg-primary/10 focus-visible:ring-1 focus-visible:ring-inset focus-visible:ring-primary data-[state=open]:bg-primary/10 dark:bg-transparent dark:hover:bg-transparent`;function re({columns:e,onChange:t}){let{t:i}=r(),a=j().getDataTypes(),o=(0,R.useCallback)((n,r,i)=>{t(e.map(e=>e.id===n?{...e,[r]:i}:e))},[e,t]);function s(){t([...e,z()])}function c(){e.length>0&&t(e.slice(0,-1))}return(0,U.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,U.jsx)(F,{className:`flex-1`,children:(0,U.jsxs)(k,{className:W,children:[(0,U.jsx)(I,{className:G,children:(0,U.jsxs)(D,{children:[(0,U.jsx)(C,{className:`w-[120px]`,children:i(`table.schema.colField`)}),(0,U.jsx)(C,{className:`w-[120px]`,children:i(`table.schema.colType`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colLength`)}),(0,U.jsx)(C,{className:`w-[100px]`,children:i(`table.schema.colDefault`)}),(0,U.jsx)(C,{className:`w-[40px]`,children:i(`table.schema.colPk`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colNotNull`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colUnsigned`)}),(0,U.jsx)(C,{className:`w-[70px]`,children:i(`table.schema.colAutoIncrement`)}),(0,U.jsx)(C,{className:`w-[60px]`,children:i(`table.schema.colZerofill`)}),(0,U.jsx)(C,{children:i(`table.schema.colComment`)})]})}),(0,U.jsx)(L,{children:e.length===0?(0,U.jsx)(D,{children:(0,U.jsx)(E,{colSpan:10,className:`text-center text-muted-foreground`,children:i(`table.schema.empty`)})}):e.map(e=>(0,U.jsxs)(D,{children:[(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.field,onChange:t=>o(e.id,`field`,t.target.value),placeholder:`column_name`})}),(0,U.jsx)(E,{children:(0,U.jsxs)(m,{value:e.type,onValueChange:t=>o(e.id,`type`,t),children:[(0,U.jsx)(d,{className:q,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:a.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.length,onChange:t=>o(e.id,`length`,t.target.value)})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.defaultValue,onChange:t=>o(e.id,`defaultValue`,t.target.value),placeholder:`NULL`})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.pk,onChange:t=>o(e.id,`pk`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.notNull,onChange:t=>o(e.id,`notNull`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.unsigned,onChange:t=>o(e.id,`unsigned`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.autoIncrement,onChange:t=>o(e.id,`autoIncrement`,t.target.checked)})}),(0,U.jsx)(E,{className:`text-center`,children:(0,U.jsx)(`input`,{type:`checkbox`,checked:e.zerofill,onChange:t=>o(e.id,`zerofill`,t.target.checked)})}),(0,U.jsx)(E,{children:(0,U.jsx)(M,{className:K,value:e.comment,onChange:t=>o(e.id,`comment`,t.target.value)})})]},e.id))})]})}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-2 border-t`,children:[(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:s,children:i(`table.schema.add`)}),(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:c,disabled:e.length===0,children:i(`table.schema.remove`)})]})]})}var J=[`PRIMARY`,`UNIQUE`,`INDEX`,`FULLTEXT`];function Y({open:e,index:t,availableColumns:i,onSave:h,onClose:g}){let{t:_}=r(),[v,y]=(0,R.useState)(t.name),[b,x]=(0,R.useState)(t.type),[S,C]=(0,R.useState)(t.columns);function ee(e){C(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])}function w(){h({id:t.id,name:b===`PRIMARY`?`PRIMARY`:v,type:b,columns:S})}return(0,U.jsx)(l,{open:e,onOpenChange:e=>{e||g()},children:(0,U.jsxs)(s,{className:`sm:max-w-[500px]`,children:[(0,U.jsx)(a,{children:(0,U.jsx)(c,{children:t.name?_(`table.index.editTitle`):_(`table.index.addTitle`)})}),(0,U.jsxs)(`div`,{className:`space-y-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`idx-name`,children:_(`table.index.name`)}),(0,U.jsx)(M,{id:`idx-name`,value:b===`PRIMARY`?`PRIMARY`:v,onChange:e=>y(e.target.value),disabled:b===`PRIMARY`,placeholder:_(`table.index.namePlaceholder`)})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`idx-type`,children:_(`table.index.type`)}),(0,U.jsxs)(m,{value:b,onValueChange:e=>x(e),children:[(0,U.jsx)(d,{id:`idx-type`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:J.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{children:_(`table.index.columns`)}),(0,U.jsx)(`div`,{className:`border rounded-md p-2 max-h-[200px] overflow-y-auto space-y-1`,children:i.length===0?(0,U.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:_(`table.index.noColumns`)}):i.map(e=>(0,U.jsxs)(`label`,{className:`flex items-center gap-2 text-sm cursor-pointer hover:bg-muted/50 rounded px-1 py-0.5`,children:[(0,U.jsx)(`input`,{type:`checkbox`,checked:S.includes(e.field),onChange:()=>ee(e.field)}),(0,U.jsx)(`span`,{children:e.field||_(`table.index.unnamed`)}),(0,U.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,e.type,`)`]})]},e.id))})]})]}),(0,U.jsxs)(o,{children:[(0,U.jsx)(n,{variant:`outline`,onClick:g,children:_(`table.index.cancel`)}),(0,U.jsx)(n,{onClick:w,disabled:S.length===0,children:_(`table.index.ok`)})]})]})})}function ie({indexes:e,availableColumns:t,onChange:i}){let{t:a}=r(),[o,s]=(0,R.useState)(null),[c,l]=(0,R.useState)(!1);function u(){let e=B();s(e),l(!0)}function d(e){s({...e}),l(!0)}function f(){e.length>0&&i(e.slice(0,-1))}function p(t){e.find(e=>e.id===t.id)?i(e.map(e=>e.id===t.id?t:e)):i([...e,t]),l(!1),s(null)}function m(){l(!1),s(null)}return(0,U.jsxs)(`div`,{className:`flex flex-col h-full`,children:[(0,U.jsx)(F,{className:`flex-1`,children:(0,U.jsxs)(k,{className:W+` [&_td]:px-2`,children:[(0,U.jsx)(I,{className:G,children:(0,U.jsxs)(D,{children:[(0,U.jsx)(C,{className:`w-[150px]`,children:a(`table.indexes.colName`)}),(0,U.jsx)(C,{className:`w-[120px]`,children:a(`table.indexes.colType`)}),(0,U.jsx)(C,{children:a(`table.indexes.colColumns`)})]})}),(0,U.jsx)(L,{children:e.length===0?(0,U.jsx)(D,{children:(0,U.jsx)(E,{colSpan:3,className:`text-center text-muted-foreground`,children:a(`table.indexes.empty`)})}):e.map(e=>(0,U.jsxs)(D,{className:`cursor-pointer`,onDoubleClick:()=>d(e),children:[(0,U.jsx)(E,{children:e.name}),(0,U.jsx)(E,{children:e.type}),(0,U.jsx)(E,{children:e.columns.join(`, `)})]},e.id))})]})}),(0,U.jsxs)(`div`,{className:`flex gap-2 p-2 border-t`,children:[(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:u,children:a(`table.indexes.add`)}),(0,U.jsx)(n,{size:`sm`,variant:`outline`,onClick:f,disabled:e.length===0,children:a(`table.indexes.remove`)})]}),o&&(0,U.jsx)(Y,{open:c,index:o,availableColumns:t,onSave:p,onClose:m})]})}var ae=[`InnoDB`,`MyISAM`,`MEMORY`,`CSV`,`ARCHIVE`,`BLACKHOLE`,`MRG_MYISAM`,`FEDERATED`,`PERFORMANCE_SCHEMA`],oe=[`utf8mb4`,`utf8`,`latin1`,`ascii`,`binary`,`cp1251`,`euckr`,`gb2312`,`gbk`,`sjis`,`ucs2`,`utf16`,`utf32`],X={utf8mb4:[`utf8mb4_general_ci`,`utf8mb4_unicode_ci`,`utf8mb4_bin`,`utf8mb4_0900_ai_ci`],utf8:[`utf8_general_ci`,`utf8_unicode_ci`,`utf8_bin`],latin1:[`latin1_swedish_ci`,`latin1_general_ci`,`latin1_bin`],ascii:[`ascii_general_ci`,`ascii_bin`],binary:[`binary`],cp1251:[`cp1251_general_ci`,`cp1251_bin`],euckr:[`euckr_korean_ci`,`euckr_bin`],gb2312:[`gb2312_chinese_ci`,`gb2312_bin`],gbk:[`gbk_chinese_ci`,`gbk_bin`],sjis:[`sjis_japanese_ci`,`sjis_bin`],ucs2:[`ucs2_general_ci`,`ucs2_unicode_ci`,`ucs2_bin`],utf16:[`utf16_general_ci`,`utf16_unicode_ci`,`utf16_bin`],utf32:[`utf32_general_ci`,`utf32_unicode_ci`,`utf32_bin`]};function se({properties:e,onChange:t}){let{t:n}=r();function i(n,r){let i={...e,[n]:r};n===`charset`&&(i.collation=X[r]?.[0]??``),t(i)}let a=X[e.charset]??[];return(0,U.jsxs)(`div`,{className:`p-4 space-y-4`,children:[(0,U.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-engine`,children:n(`table.properties.engine`)}),(0,U.jsxs)(m,{value:e.engine,onValueChange:e=>i(`engine`,e),children:[(0,U.jsx)(d,{id:`prop-engine`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:ae.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-charset`,children:n(`table.properties.charset`)}),(0,U.jsxs)(m,{value:e.charset,onValueChange:e=>i(`charset`,e),children:[(0,U.jsx)(d,{id:`prop-charset`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:oe.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-collation`,children:n(`table.properties.collation`)}),(0,U.jsxs)(m,{value:e.collation,onValueChange:e=>i(`collation`,e),children:[(0,U.jsx)(d,{id:`prop-collation`,className:`w-full`,children:(0,U.jsx)(u,{})}),(0,U.jsx)(f,{children:a.map(e=>(0,U.jsx)(p,{value:e,children:e},e))})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-auto-incr`,children:n(`table.properties.autoIncrement`)}),(0,U.jsx)(M,{id:`prop-auto-incr`,type:`number`,value:e.autoIncrement,onChange:e=>i(`autoIncrement`,e.target.value),placeholder:n(`table.properties.autoIncrementPlaceholder`)})]})]}),(0,U.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,U.jsx)(A,{htmlFor:`prop-comment`,children:n(`table.properties.comment`)}),(0,U.jsx)(M,{id:`prop-comment`,value:e.comment,onChange:e=>i(`comment`,e.target.value)})]})]})}function ce({connectionId:e,database:t,tableName:n,columns:r,indexes:i,properties:a}){let o=N(e=>e.themeId),s=O(e),c=T(o),l=(0,R.useMemo)(()=>s.ddl.createTable(H(t,n,r,i,a)),[s,t,n,r,i,a]);return(0,U.jsx)(`div`,{className:`h-[320px]`,children:(0,U.jsx)(P,{height:`100%`,language:`sql`,theme:c,value:l,options:{readOnly:!0,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontSize:13,lineNumbers:`on`,wordWrap:`on`}})})}function Z(e){return JSON.stringify([e.type,e.length,e.defaultValue,e.pk,e.notNull,e.unsigned,e.autoIncrement,e.zerofill,e.comment])}function Q(e){return{name:e.field,type:e.length?`${e.type}(${e.length})`:e.type,nullable:!e.notNull,key:e.pk?`PRI`:``,defaultValue:e.defaultValue===``?null:e.defaultValue,extra:e.autoIncrement?`auto_increment`:``,comment:e.comment,collation:null}}function $(e){return{name:e.name,type:e.type,columns:[...e.columns]}}function le(e,t){return e.name===t.name&&e.type===t.type&&e.columns.join(`,`)===t.columns.join(`,`)}function ue({engine:e,database:t,table:n,before:r,after:i}){let{ddl:a}=e,o=[],s=[],c=[],l=new Map(r.columns.map(e=>[e.id,e])),u=new Map(i.columns.map(e=>[e.id,e])),d=new Map(r.indexes.map(e=>[e.id,e])),f=new Map(i.indexes.map(e=>[e.id,e])),p=[];for(let[e,r]of d){let i=f.get(e);i?le(r,i)||(o.push(a.dropIndex(t,n,r.name)),p.push(i)):o.push(a.dropIndex(t,n,r.name))}for(let[e,r]of u){let i=l.get(e);if(!i){r.field.trim()&&o.push(a.addColumn(t,n,Q(r)));continue}if(i.field!==r.field&&o.push(a.renameColumn(t,n,i.field,r.field)),Z(i)!==Z(r)){let e=a.alterColumn(t,n,Q(r));e?o.push(e):c.push(r.field)}}for(let[e,r]of l)if(!u.has(e)){let e=a.dropColumn(t,n,r.field);o.push(e),s.push(e)}for(let e of p)o.push(a.createIndex(t,n,$(e)));for(let[e,r]of f)!d.has(e)&&r.columns.length>0&&o.push(a.createIndex(t,n,$(r)));return{statements:o,destructive:s,unsupported:c}}function de(){let{t:e}=r(),{activeDialog:t,closeDialog:i}=g(),u=_(`create-table`,`alter-table`,`duplicate-table-structure`),d=t===`create-table`||t===`alter-table`||t===`duplicate-table-structure`,f=t===`alter-table`,p=t===`duplicate-table-structure`,m=u?.nodeText??``,C=u?.metadata?.database??``,[T,E]=(0,R.useState)(``),[D,k]=(0,R.useState)([z()]),[j,N]=(0,R.useState)([]),[P,F]=(0,R.useState)(V()),[I,L]=(0,R.useState)(!1),[B,W]=(0,R.useState)(!1),[G,K]=(0,R.useState)(null),[q,J]=(0,R.useState)(null),Y=u?.connectionId??h.getState().activeConnectionId,ae=O(Y);(0,R.useEffect)(()=>{d&&(K(null),J(null),f||p?(E(p?`${m}_copy`:m),oe()):(E(``),k([z()]),N([]),F(V())))},[d,t]);async function oe(){let e=h.getState(),t=u?.connectionId??e.activeConnectionId,n=e.activeConnections.find(e=>e.id===t)?.serverConnectionId;if(!n||!C||!m)return;L(!0);let{introspect:r,capabilities:i}=y(t),a=v(n);try{let e=await r.listColumns(a,C,m),t=[];if(e.length>0){let n=e.map(e=>{let t=e.type,n=t.match(/^(\w+)(?:\(([^)]+)\))?/);return{id:crypto.randomUUID(),field:e.name,type:n?.[1]?.toLowerCase()??t.toLowerCase(),length:n?.[2]??``,defaultValue:e.defaultValue??``,pk:e.key===`PRI`,notNull:!e.nullable,unsigned:t.includes(`unsigned`),autoIncrement:e.extra.includes(`auto_increment`),zerofill:t.includes(`zerofill`),comment:e.comment}});k(n),t=n}let n=await r.listIndexes(a,C,m),o=[];if(n.length>0&&(o=n.map(e=>({id:crypto.randomUUID(),name:e.name,type:e.type===`SPATIAL`?`INDEX`:e.type,columns:[...e.columns]})),N(o)),J({columns:t,indexes:o}),i.tableProperties){let e=await r.getTableInfo(a,C,m);e&&F({engine:e.engine??`InnoDB`,charset:(e.collation??`utf8mb4`).replace(/_.*/,``),collation:e.collation??`utf8mb4_unicode_ci`,autoIncrement:e.autoIncrement??``,comment:e.comment})}}catch(e){console.error(`Failed to load table schema:`,e),K(e instanceof Error?e.message:String(e))}finally{L(!1)}}function X(e){e||i()}async function Z(){let t=u?.connectionId??h.getState().activeConnectionId;if(!t||!T.trim())return;let n=y(t);K(null);let r,a=[];if(f){if(!q)return;let t=ue({engine:n,database:C,table:m,before:q,after:{columns:D,indexes:j}});if(t.unsupported.length>0){K(e(`table.dialog.cannotAlterColumns`,{engine:n.label,columns:t.unsupported.join(`, `)}));return}if(t.statements.length===0){i();return}r=t.statements.join(`
2
2
  `),a=t.destructive}else{let e=p?j.map(e=>({...e,name:ee(e.name,m,T.trim())})):j;r=n.ddl.createTable(H(C,T.trim(),D,e,P))}W(!0);try{await b(t,r,{skipDestructiveConfirm:a.length===0}),await x(t,C),i()}catch(e){K(e instanceof Error?e.message:String(e))}finally{W(!1)}}let Q=e(f?`table.dialog.alterTitle`:p?`table.dialog.duplicateTitle`:`table.dialog.createTitle`),$=e(f?`table.dialog.alter`:`table.dialog.create`);return(0,U.jsx)(l,{open:d,onOpenChange:X,children:(0,U.jsxs)(s,{className:`sm:max-w-[1000px] max-h-[80vh] flex flex-col`,children:[(0,U.jsx)(a,{children:(0,U.jsx)(c,{children:Q})}),(0,U.jsxs)(`div`,{className:`space-y-3 flex-1 overflow-hidden flex flex-col min-h-0`,children:[(0,U.jsxs)(`div`,{className:`space-y-1.5 px-1`,children:[(0,U.jsx)(A,{htmlFor:`table-name`,children:e(`table.dialog.tableName`)}),(0,U.jsx)(M,{id:`table-name`,value:T,onChange:e=>E(e.target.value),placeholder:e(`table.dialog.tableNamePlaceholder`),disabled:f})]}),I?(0,U.jsx)(`div`,{className:`flex-1 flex items-center justify-center text-muted-foreground text-sm`,children:e(`table.dialog.loading`)}):(0,U.jsxs)(ne,{defaultValue:`schema`,className:`flex-1 min-h-0 flex flex-col`,children:[(0,U.jsxs)(te,{children:[(0,U.jsx)(w,{value:`schema`,children:e(`table.dialog.tabSchema`)}),(0,U.jsx)(w,{value:`indexes`,children:e(`table.dialog.tabIndexes`)}),ae.capabilities.tableProperties&&(0,U.jsx)(w,{value:`properties`,children:e(`table.dialog.tabProperties`)}),(0,U.jsx)(w,{value:`sql`,children:`SQL`})]}),(0,U.jsx)(S,{value:`schema`,className:`flex-1 min-h-0 overflow-auto border rounded-md`,children:(0,U.jsx)(re,{columns:D,onChange:k})}),(0,U.jsx)(S,{value:`indexes`,className:`flex-1 min-h-0 overflow-auto border rounded-md`,children:(0,U.jsx)(ie,{indexes:j,availableColumns:D,onChange:N})}),(0,U.jsx)(S,{value:`properties`,className:`flex-1 min-h-0 overflow-auto border rounded-md`,children:(0,U.jsx)(se,{properties:P,onChange:F})}),(0,U.jsx)(S,{value:`sql`,className:`flex-1 min-h-0 border rounded-md`,children:(0,U.jsx)(ce,{connectionId:Y,database:C,tableName:T,columns:D,indexes:j,properties:P})})]})]}),G&&(0,U.jsx)(`p`,{className:`px-1 text-xs text-destructive leading-relaxed`,children:G}),(0,U.jsxs)(o,{children:[(0,U.jsx)(n,{variant:`outline`,onClick:()=>X(!1),children:e(`table.dialog.cancel`)}),(0,U.jsx)(n,{onClick:()=>void Z(),disabled:I||B||!T.trim(),children:B?e(`table.dialog.applying`):$})]})]})})}export{de as EditSchemaDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{i as n,r}from"./Cu_sGzNJ.js";import{F as i}from"./CAd2f6EE.js";import{t as a}from"./CMFMZu0I.js";import{c as o}from"./Udlj1Cgf.js";import{t as s}from"./TqO-pPrr.js";import{t as c}from"./_zaonxnw.js";import{n as l}from"./BmnRSOWE.js";var u=e(t(),1),d=r(),f=0;function p({connectionId:e,tabId:t,input:r}){let{t:p}=n(),m=a(e,t,``),[h,g]=(0,u.useState)(r||``),[_,v]=(0,u.useState)(``),[y,b]=(0,u.useState)(``),[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)(null),[T,E]=(0,u.useState)(null),D=l(e,e=>e.type===`message`?{id:++f,time:e.time,channel:e.channel,pattern:e.pattern,message:e.message}:null),O=async()=>{let{channels:e,patterns:t}=o(h);e.length+t.length!==0&&(await D.start({kind:`subscribe`,channels:e,patterns:t}),v(h))},k=async()=>{if(y.trim())try{w(null);let e=await m.write(`PUBLISH ${i(y.trim())} ${i(x)}`);E(Number(e))}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||w(c(e))}},A=D.error??C;return(0,d.jsx)(s,{title:p(`tools.redis.pubsub`),onRefresh:async()=>{},error:A,onDismissError:()=>{D.dismissError(),w(null)},children:(0,d.jsxs)(`div`,{className:`flex h-full flex-col text-xs`,children:[(0,d.jsxs)(`div`,{className:`flex flex-shrink-0 flex-wrap items-center gap-2 border-b px-3 py-2`,children:[(0,d.jsx)(`input`,{className:`h-7 w-96 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.subscribePlaceholder`),value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&O()}}),D.running?(0,d.jsx)(`button`,{type:`button`,onClick:D.stop,className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground`,children:p(`tools.redis.unsubscribe`)}):(0,d.jsx)(`button`,{type:`button`,disabled:!h.trim(),onClick:()=>void O(),className:`h-7 rounded border border-primary/30 bg-primary/10 px-2 text-primary hover:bg-primary/20 disabled:opacity-40`,children:p(`tools.redis.subscribe`)}),D.running&&(0,d.jsxs)(`span`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,d.jsx)(`span`,{className:`size-2 animate-pulse rounded-full bg-green-500`}),p(`tools.redis.listening`,{targets:_})]}),(0,d.jsx)(`div`,{className:`flex-1`}),(0,d.jsx)(`button`,{type:`button`,onClick:D.clear,className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground`,children:p(`tools.clear`)})]}),!m.readOnly&&(0,d.jsxs)(`div`,{className:`flex flex-shrink-0 flex-wrap items-center gap-2 border-b px-3 py-2`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:p(`tools.redis.publish`)}),(0,d.jsx)(`input`,{className:`h-7 w-48 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.channel`),value:y,onChange:e=>b(e.target.value)}),(0,d.jsx)(`input`,{className:`h-7 min-w-64 flex-1 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.message`),value:x,onChange:e=>S(e.target.value),onKeyDown:e=>{e.key===`Enter`&&k()}}),(0,d.jsx)(`button`,{type:`button`,disabled:!y.trim(),onClick:()=>void k(),className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground disabled:opacity-40`,children:p(`tools.redis.send`)}),T!==null&&(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:p(`tools.redis.receivers`,{count:T})})]}),(0,d.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:D.rows.length===0?(0,d.jsx)(`p`,{className:`p-6 text-center text-muted-foreground`,children:D.running?p(`tools.redis.waitingMessages`):p(`tools.redis.pubsubIntro`)}):(0,d.jsxs)(`table`,{className:`w-full border-collapse`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{className:`w-28 px-3 py-1.5`,children:p(`tools.redis.time`)}),(0,d.jsx)(`th`,{className:`w-48 px-3 py-1.5`,children:p(`tools.redis.channel`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:p(`tools.redis.message`)})]})}),(0,d.jsx)(`tbody`,{children:D.rows.map(e=>(0,d.jsxs)(`tr`,{className:`border-b border-border/50 align-top hover:bg-muted/40`,children:[(0,d.jsx)(`td`,{className:`whitespace-nowrap px-3 py-1 tabular-nums text-muted-foreground`,children:new Date(e.time).toLocaleTimeString()}),(0,d.jsxs)(`td`,{className:`px-3 py-1 font-mono`,children:[e.channel,e.pattern&&(0,d.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.pattern,`)`]})]}),(0,d.jsx)(`td`,{className:`whitespace-pre-wrap break-all px-3 py-1 font-mono`,children:e.message})]},e.id))})]})}),D.rows.length>=2e3&&(0,d.jsx)(`p`,{className:`flex-shrink-0 border-t px-3 py-1 text-muted-foreground`,children:p(`tools.redis.feedLimit`,{count:2e3})})]})})}export{p as PubSub};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{i as n,r}from"./C76CctEl.js";import{F as i}from"./iz6RnRcO.js";import{t as a}from"./BaTnCkNR.js";import{c as o}from"./Udlj1Cgf.js";import{t as s}from"./C3aiaYZP.js";import{t as c}from"./_zaonxnw.js";import{n as l}from"./CGpFMM6B.js";var u=e(t(),1),d=r(),f=0;function p({connectionId:e,tabId:t,input:r}){let{t:p}=n(),m=a(e,t,``),[h,g]=(0,u.useState)(r||``),[_,v]=(0,u.useState)(``),[y,b]=(0,u.useState)(``),[x,S]=(0,u.useState)(``),[C,w]=(0,u.useState)(null),[T,E]=(0,u.useState)(null),D=l(e,e=>e.type===`message`?{id:++f,time:e.time,channel:e.channel,pattern:e.pattern,message:e.message}:null),O=async()=>{let{channels:e,patterns:t}=o(h);e.length+t.length!==0&&(await D.start({kind:`subscribe`,channels:e,patterns:t}),v(h))},k=async()=>{if(y.trim())try{w(null);let e=await m.write(`PUBLISH ${i(y.trim())} ${i(x)}`);E(Number(e))}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||w(c(e))}},A=D.error??C;return(0,d.jsx)(s,{title:p(`tools.redis.pubsub`),onRefresh:async()=>{},error:A,onDismissError:()=>{D.dismissError(),w(null)},children:(0,d.jsxs)(`div`,{className:`flex h-full flex-col text-xs`,children:[(0,d.jsxs)(`div`,{className:`flex flex-shrink-0 flex-wrap items-center gap-2 border-b px-3 py-2`,children:[(0,d.jsx)(`input`,{className:`h-7 w-96 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.subscribePlaceholder`),value:h,onChange:e=>g(e.target.value),onKeyDown:e=>{e.key===`Enter`&&O()}}),D.running?(0,d.jsx)(`button`,{type:`button`,onClick:D.stop,className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground`,children:p(`tools.redis.unsubscribe`)}):(0,d.jsx)(`button`,{type:`button`,disabled:!h.trim(),onClick:()=>void O(),className:`h-7 rounded border border-primary/30 bg-primary/10 px-2 text-primary hover:bg-primary/20 disabled:opacity-40`,children:p(`tools.redis.subscribe`)}),D.running&&(0,d.jsxs)(`span`,{className:`flex items-center gap-1.5 text-muted-foreground`,children:[(0,d.jsx)(`span`,{className:`size-2 animate-pulse rounded-full bg-green-500`}),p(`tools.redis.listening`,{targets:_})]}),(0,d.jsx)(`div`,{className:`flex-1`}),(0,d.jsx)(`button`,{type:`button`,onClick:D.clear,className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground`,children:p(`tools.clear`)})]}),!m.readOnly&&(0,d.jsxs)(`div`,{className:`flex flex-shrink-0 flex-wrap items-center gap-2 border-b px-3 py-2`,children:[(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:p(`tools.redis.publish`)}),(0,d.jsx)(`input`,{className:`h-7 w-48 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.channel`),value:y,onChange:e=>b(e.target.value)}),(0,d.jsx)(`input`,{className:`h-7 min-w-64 flex-1 rounded border bg-background px-2 font-mono`,placeholder:p(`tools.redis.message`),value:x,onChange:e=>S(e.target.value),onKeyDown:e=>{e.key===`Enter`&&k()}}),(0,d.jsx)(`button`,{type:`button`,disabled:!y.trim(),onClick:()=>void k(),className:`h-7 rounded border bg-background px-2 text-muted-foreground hover:text-foreground disabled:opacity-40`,children:p(`tools.redis.send`)}),T!==null&&(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:p(`tools.redis.receivers`,{count:T})})]}),(0,d.jsx)(`div`,{className:`min-h-0 flex-1 overflow-auto`,children:D.rows.length===0?(0,d.jsx)(`p`,{className:`p-6 text-center text-muted-foreground`,children:D.running?p(`tools.redis.waitingMessages`):p(`tools.redis.pubsubIntro`)}):(0,d.jsxs)(`table`,{className:`w-full border-collapse`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{className:`w-28 px-3 py-1.5`,children:p(`tools.redis.time`)}),(0,d.jsx)(`th`,{className:`w-48 px-3 py-1.5`,children:p(`tools.redis.channel`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:p(`tools.redis.message`)})]})}),(0,d.jsx)(`tbody`,{children:D.rows.map(e=>(0,d.jsxs)(`tr`,{className:`border-b border-border/50 align-top hover:bg-muted/40`,children:[(0,d.jsx)(`td`,{className:`whitespace-nowrap px-3 py-1 tabular-nums text-muted-foreground`,children:new Date(e.time).toLocaleTimeString()}),(0,d.jsxs)(`td`,{className:`px-3 py-1 font-mono`,children:[e.channel,e.pattern&&(0,d.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.pattern,`)`]})]}),(0,d.jsx)(`td`,{className:`whitespace-pre-wrap break-all px-3 py-1 font-mono`,children:e.message})]},e.id))})]})}),D.rows.length>=2e3&&(0,d.jsx)(`p`,{className:`flex-shrink-0 border-t px-3 py-1 text-muted-foreground`,children:p(`tools.redis.feedLimit`,{count:2e3})})]})})}export{p as PubSub};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{a as n,d as r,i,s as a,u as o}from"./CiL8zoYm.js";import{r as s}from"./Cu_sGzNJ.js";import{r as c,t as l}from"./BGuDcBB_.js";import{C as u,D as d,E as f,O as p,S as m,T as h,_ as g,b as _,g as v,v as y,w as b,x,y as S}from"./DzRyVlxz.js";import{n as C,t as w}from"./D8dVzi6I.js";import{t as T}from"./BFw3KCAr.js";import{Jt as E,Yt as D,cn as O,ln as k,on as A,sn as j}from"./B_zu4Zim.js";var M=e(r(),1),N=e(t(),1),P=Object.defineProperty,ee=(e,t)=>P(e,`name`,{value:t,configurable:!0});function F(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}ee(F,`usePrevious`);var I=s(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,W]=l(V),[G,te]=p(V,[W,k]),K=k(),[ne,q]=G(V),[re,ie]=G(V);function J(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:d,autoComplete:f,disabled:p,required:m,form:g,internal_do_not_use_render:_}=e,v=K(t),[y,b]=N.useState(null),[x,S]=N.useState(null),[w,T]=N.useState(!1),E=C(l),[D,k]=h({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[A,j]=h({prop:o,defaultProp:s,onChange:c,caller:V}),M=N.useRef(null),P=N.useRef(A);N.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=R(()=>j(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,j]);let ee=!y||!!g||!!y.closest(`form`),[F,L]=N.useState(new Set),z=u(),B=Array.from(F).map(e=>e.props.value).join(`;`),U=N.useCallback(e=>{L(t=>new Set(t).add(e))},[]),W=N.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),G={required:m,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:z,value:A,onValueChange:j,open:D,onOpenChange:k,dir:E,triggerPointerDownPosRef:M,disabled:p,name:d,autoComplete:f,form:g,nativeOptions:F,nativeSelectKey:B,isFormControl:ee};return(0,I.jsx)(O,{...v,children:(0,I.jsx)(ne,{scope:t,...G,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:U,onNativeOptionRemove:W,children:Ve(_)?_(G):n})})})})}R(J,`SelectProvider`);var ae=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(J,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Be,{__scopeSelect:t}):null]})})},`Select`),oe=`SelectTrigger`,se=N.forwardRef(R(function(e,t){let{__scopeSelect:r,disabled:i=!1,...a}=e,s=K(r),c=q(oe,r),l=c.disabled||i,u=o(t,c.onTriggerChange),f=U(r),p=N.useRef(`touch`),[m,h,g]=He(e=>{let t=f().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.value===c.value));n!==void 0&&c.onValueChange(n.value)}),_=R(e=>{l||(c.onOpenChange(!0),g()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(A,{asChild:!0,...s,children:(0,I.jsx)(n.button,{type:`button`,role:`combobox`,"aria-controls":c.open?c.contentId:void 0,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":`none`,dir:c.dir,"data-state":c.open?`open`:`closed`,disabled:l,"data-disabled":l?``:void 0,"data-placeholder":$(c.value)?``:void 0,...a,ref:u,onClick:d(a.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:d(a.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:d(a.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(_(),e.preventDefault())})})})},`SelectTrigger`)),ce=`SelectValue`,le=N.forwardRef(R(function(e,t){let{__scopeSelect:r,className:i,style:a,children:s,placeholder:c=``,...l}=e,u=q(ce,r),{onValueNodeHasChildrenChange:d}=u,p=s!==void 0,m=o(t,u.onValueNodeChange);f(()=>{d(p)},[d,p]);let h=$(u.value);return(0,I.jsx)(n.span,{...l,asChild:!h&&l.asChild,ref:m,style:{pointerEvents:`none`},children:(0,I.jsx)(N.Fragment,{children:h?c:s},h?`placeholder`:`value`)})},`SelectValue`)),ue=N.forwardRef(R(function(e,t){let{__scopeSelect:r,children:i,...a}=e;return(0,I.jsx)(n.span,{"aria-hidden":!0,...a,ref:t,children:i||`▼`})},`SelectIcon`)),[de,fe]=G(`SelectPortal`,{forceMount:void 0}),pe=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(de,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(S,{asChild:!0,...r})})},`SelectPortal`),Y=`SelectContent`,me=N.forwardRef(R(function(e,t){let n=fe(Y,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=q(Y,e.__scopeSelect),[o,s]=N.useState();return f(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(b,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(ve,{...i,ref:t}):(0,I.jsx)(he,{...i,fragment:o})})},`SelectContent`)),he=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,I.jsx)(ge,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),X=10,[ge,Z]=G(Y),_e=a(`SelectContent.RemoveScroll`),ve=N.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:b,hideWhenDetached:S,avoidCollisions:C,...w}=e,T=q(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=o(t,D),[j,M]=N.useState(null),[P,ee]=N.useState(null),F=U(n),[L,z]=N.useState(!1),B=N.useRef(!1);N.useEffect(()=>{if(E)return v(E)},[E]),y();let V=N.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),H=N.useCallback(()=>V([j,E]),[V,j,E]);N.useEffect(()=>{L&&H()},[L,H]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null},`handlePointerUp`);return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=R(()=>W(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[te,K]=He(e=>{let t=F().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(B.current=!0))},[T.value]),re=N.useCallback(()=>E?.focus(),[E]),ie=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&ee(e)},[T.value]),J=r===`popper`?be:ye,ae=J===be?{side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:b,hideWhenDetached:S,avoidCollisions:C}:{};return(0,I.jsx)(ge,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:H,selectedItemText:P,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(g,{as:_e,allowPinchZoom:!0,children:(0,I.jsx)(_,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:d(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(x,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:d(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&K(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),ye=N.forwardRef(R(function(e,t){let{__scopeSelect:r,onPlaced:i,...a}=e,s=q(Y,r),c=Z(Y,r),[l,u]=N.useState(null),[d,p]=N.useState(null),m=o(t,p),h=U(r),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=c,S=N.useCallback(()=>{if(s.trigger&&s.valueNode&&l&&d&&v&&y&&b){let e=s.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=s.valueNode.getBoundingClientRect(),r=b.getBoundingClientRect();if(s.dir!==`rtl`){let i=r.left-t.left,a=n.left-i,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-X,d=w(a,[X,Math.max(X,u-c)]);l.style.minWidth=s+`px`,l.style.left=d+`px`}else{let i=t.right-r.right,a=window.innerWidth-n.right-i,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-X,d=w(a,[X,Math.max(X,u-c)]);l.style.minWidth=s+`px`,l.style.right=d+`px`}let a=h(),o=window.innerHeight-X*2,c=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+c+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),T=parseInt(C.paddingTop,10),E=parseInt(C.paddingBottom,10),D=e.top+e.height/2-X,O=o-D,k=y.offsetHeight/2,A=y.offsetTop+k,j=f+p+A,M=x-j;if(j<=D){let e=a.length>0&&y===a[a.length-1].ref.current;l.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=j+Math.max(O,k+(e?E:0)+t+m);l.style.height=n+`px`}else{let e=a.length>0&&y===a[0].ref.current;l.style.top=`0px`;let t=Math.max(D,f+v.offsetTop+(e?T:0)+k)+M;l.style.height=t+`px`,v.scrollTop=j-D+v.offsetTop}l.style.margin=`${X}px 0`,l.style.minHeight=S+`px`,l.style.maxHeight=o+`px`,i?.(),requestAnimationFrame(()=>g.current=!0)}},[h,s.trigger,s.valueNode,l,d,v,y,b,s.dir,i]);f(()=>S(),[S]);let[C,T]=N.useState();f(()=>{d&&T(window.getComputedStyle(d).zIndex)},[d]);let E=N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]);return(0,I.jsx)(xe,{scope:r,contentWrapper:l,shouldExpandOnScrollRef:g,onScrollButtonChange:E,children:(0,I.jsx)(`div`,{ref:u,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(n.div,{...a,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})},`SelectItemAlignedPosition`)),be=N.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=K(n);return(0,I.jsx)(j,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[xe,Se]=G(Y,{}),Ce=`SelectViewport`,we=N.forwardRef(R(function(e,t){let{__scopeSelect:r,nonce:i,...a}=e,s=Z(Ce,r),c=Se(Ce,r),l=o(t,s.onViewportChange),u=N.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,I.jsx)(H.Slot,{scope:r,children:(0,I.jsx)(n.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:l,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:d(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=c;if(r?.current&&n){let e=Math.abs(u.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}u.current=t.scrollTop})})})]})},`SelectViewport`)),[Te,Ee]=G(`SelectGroup`),De=`SelectItem`,[Oe,ke]=G(De),Ae=N.forwardRef(R(function(e,t){let{__scopeSelect:r,value:i,disabled:a=!1,textValue:s,...c}=e,l=q(De,r),f=Z(De,r),p=l.value===i,[h,g]=N.useState(s??``),[_,v]=N.useState(!1),y=m(e=>f.itemRefCallback?.(e,i,a)),b=o(t,y),x=u(),S=N.useRef(`touch`),C=R(()=>{a||(l.onValueChange(i),l.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Oe,{scope:r,value:i,disabled:a,textId:x,isSelected:p,onItemTextChange:N.useCallback(e=>{g(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:r,value:i,disabled:a,textValue:h,children:(0,I.jsx)(n.div,{role:`option`,"aria-labelledby":x,"data-highlighted":_?``:void 0,"aria-selected":p&&_,"data-state":p?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...c,ref:b,onFocus:d(c.onFocus,()=>v(!0)),onBlur:d(c.onBlur,()=>v(!1)),onClick:d(c.onClick,()=>{S.current!==`mouse`&&C()}),onPointerUp:d(c.onPointerUp,()=>{S.current===`mouse`&&C()}),onPointerDown:d(c.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:d(c.onPointerMove,e=>{S.current=e.pointerType,a?f.onItemLeave?.():S.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:d(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&f.onItemLeave?.()}),onKeyDown:d(c.onKeyDown,e=>{a||e.target!==e.currentTarget||(f.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&C(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,je=N.forwardRef(R(function(e,t){let{__scopeSelect:r,className:i,style:a,...s}=e,c=q(Q,r),l=Z(Q,r),u=ke(Q,r),d=ie(Q,r),[p,h]=N.useState(null),g=m(e=>l.itemTextRefCallback?.(e,u.value,u.disabled)),_=o(t,h,u.onItemTextChange,g),v=p?.textContent,y=N.useMemo(()=>(0,I.jsx)(`option`,{value:u.value,disabled:u.disabled,children:v},u.value),[u.disabled,u.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return f(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(n.span,{id:u.textId,...s,ref:_}),u.isSelected&&c.valueNode&&!c.valueNodeHasChildren&&!$(c.value)?M.createPortal(s.children,c.valueNode):null]})},`SelectItemText`)),Me=`SelectItemIndicator`,Ne=N.forwardRef(R(function(e,t){let{__scopeSelect:r,...i}=e;return ke(Me,r).isSelected?(0,I.jsx)(n.span,{"aria-hidden":!0,...i,ref:t}):null},`SelectItemIndicator`)),Pe=`SelectScrollUpButton`,Fe=N.forwardRef(R(function(e,t){let n=Z(Pe,e.__scopeSelect),r=Se(Pe,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return f(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ie=`SelectScrollDownButton`,Le=N.forwardRef(R(function(e,t){let n=Z(Ie,e.__scopeSelect),r=Se(Ie,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return f(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Re=N.forwardRef(R(function(e,t){let{__scopeSelect:r,onAutoScroll:i,...a}=e,o=Z(`SelectScrollButton`,r),s=N.useRef(null),c=U(r),l=N.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return N.useEffect(()=>()=>l(),[l]),f(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(n.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:d(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(i,50))}),onPointerMove:d(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(i,50))}),onPointerLeave:d(a.onPointerLeave,()=>{l()})})},`SelectScrollButtonImpl`)),ze=`SelectBubbleInput`,Be=N.forwardRef(R(function({__scopeSelect:e,...t},r){let i=q(ze,e),{value:a,onValueChange:s,required:l,disabled:u,name:d,autoComplete:f,form:p}=i,{nativeOptions:m,nativeSelectKey:h}=i,g=N.useRef(null),_=o(r,g),v=a??``,y=F(v),b=Array.from(m).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=g.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(y!==v&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,v),e.dispatchEvent(t)}},[y,v]),(0,I.jsxs)(n.select,{"aria-hidden":!0,required:l,tabIndex:-1,name:d,autoComplete:f,disabled:u,form:p,onChange:e=>s(e.target.value),...t,style:{...c,...t.style},ref:_,defaultValue:v,children:[$(a)&&!b?(0,I.jsx)(`option`,{value:``}):null,Array.from(m)]},h)},`SelectBubbleInput`));function Ve(e){return typeof e==`function`}R(Ve,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function He(e){let t=m(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(He,`useTypeaheadSearch`);function Ue(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=We(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ue,`findNextItem`);function We(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(We,`wrapArray`);function Ge({...e}){return(0,I.jsx)(ae,{"data-slot":`select`,...e})}function Ke({...e}){return(0,I.jsx)(le,{"data-slot":`select-value`,...e})}function qe({className:e,size:t=`default`,children:n,...r}){return(0,I.jsxs)(se,{"data-slot":`select-trigger`,"data-size":t,className:i(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,I.jsx)(ue,{asChild:!0,children:(0,I.jsx)(E,{className:`size-4 opacity-50`})})]})}function Je({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...a}){return(0,I.jsx)(pe,{children:(0,I.jsxs)(me,{"data-slot":`select-content`,className:i(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...a,children:[(0,I.jsx)(Xe,{}),(0,I.jsx)(we,{className:i(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,I.jsx)(Ze,{})]})})}function Ye({className:e,children:t,...n}){return(0,I.jsxs)(Ae,{"data-slot":`select-item`,className:i(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,I.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(Ne,{children:(0,I.jsx)(D,{className:`size-4`})})}),(0,I.jsx)(je,{children:t})]})}function Xe({className:e,...t}){return(0,I.jsx)(Fe,{"data-slot":`select-scroll-up-button`,className:i(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(T,{className:`size-4`})})}function Ze({className:e,...t}){return(0,I.jsx)(Le,{"data-slot":`select-scroll-down-button`,className:i(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(E,{className:`size-4`})})}export{Ke as a,qe as i,Je as n,Ye as r,Ge as t};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{a as n,d as r,i,s as a,u as o}from"./Dya0zxo6.js";import{r as s}from"./C76CctEl.js";import{r as c,t as l}from"./UJzcIbfW.js";import{C as u,D as d,E as f,O as p,S as m,T as h,_ as g,b as _,g as v,v as y,w as b,x,y as S}from"./kTwcxyaO.js";import{n as C,t as w}from"./Ngd1VEiY.js";import{t as T}from"./B5FoXN4H.js";import{Jt as E,Yt as D,cn as O,ln as k,on as A,sn as j}from"./D4DxtYTA.js";var M=e(r(),1),N=e(t(),1),P=Object.defineProperty,ee=(e,t)=>P(e,`name`,{value:t,configurable:!0});function F(e){let t=N.useRef({value:e,previous:e});return N.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}ee(F,`usePrevious`);var I=s(),L=Object.defineProperty,R=(e,t)=>L(e,`name`,{value:t,configurable:!0}),z=[` `,`Enter`,`ArrowUp`,`ArrowDown`],B=[` `,`Enter`],V=`Select`,[H,U,W]=l(V),[G,te]=p(V,[W,k]),K=k(),[ne,q]=G(V),[re,ie]=G(V);function J(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:d,autoComplete:f,disabled:p,required:m,form:g,internal_do_not_use_render:_}=e,v=K(t),[y,b]=N.useState(null),[x,S]=N.useState(null),[w,T]=N.useState(!1),E=C(l),[D,k]=h({prop:r,defaultProp:i??!1,onChange:a,caller:V}),[A,j]=h({prop:o,defaultProp:s,onChange:c,caller:V}),M=N.useRef(null),P=N.useRef(A);N.useEffect(()=>{let e=g?y?.ownerDocument.getElementById(g):y?.form;if(e instanceof HTMLFormElement){let t=R(()=>j(P.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[g,y,j]);let ee=!y||!!g||!!y.closest(`form`),[F,L]=N.useState(new Set),z=u(),B=Array.from(F).map(e=>e.props.value).join(`;`),U=N.useCallback(e=>{L(t=>new Set(t).add(e))},[]),W=N.useCallback(e=>{L(t=>{let n=new Set(t);return n.delete(e),n})},[]),G={required:m,trigger:y,onTriggerChange:b,valueNode:x,onValueNodeChange:S,valueNodeHasChildren:w,onValueNodeHasChildrenChange:T,contentId:z,value:A,onValueChange:j,open:D,onOpenChange:k,dir:E,triggerPointerDownPosRef:M,disabled:p,name:d,autoComplete:f,form:g,nativeOptions:F,nativeSelectKey:B,isFormControl:ee};return(0,I.jsx)(O,{...v,children:(0,I.jsx)(ne,{scope:t,...G,children:(0,I.jsx)(H.Provider,{scope:t,children:(0,I.jsx)(re,{scope:t,onNativeOptionAdd:U,onNativeOptionRemove:W,children:Ve(_)?_(G):n})})})})}R(J,`SelectProvider`);var ae=R(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,I.jsx)(J,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,I.jsxs)(I.Fragment,{children:[n,e?(0,I.jsx)(Be,{__scopeSelect:t}):null]})})},`Select`),oe=`SelectTrigger`,se=N.forwardRef(R(function(e,t){let{__scopeSelect:r,disabled:i=!1,...a}=e,s=K(r),c=q(oe,r),l=c.disabled||i,u=o(t,c.onTriggerChange),f=U(r),p=N.useRef(`touch`),[m,h,g]=He(e=>{let t=f().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.value===c.value));n!==void 0&&c.onValueChange(n.value)}),_=R(e=>{l||(c.onOpenChange(!0),g()),e&&(c.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,I.jsx)(A,{asChild:!0,...s,children:(0,I.jsx)(n.button,{type:`button`,role:`combobox`,"aria-controls":c.open?c.contentId:void 0,"aria-expanded":c.open,"aria-required":c.required,"aria-autocomplete":`none`,dir:c.dir,"data-state":c.open?`open`:`closed`,disabled:l,"data-disabled":l?``:void 0,"data-placeholder":$(c.value)?``:void 0,...a,ref:u,onClick:d(a.onClick,e=>{e.currentTarget.focus(),p.current!==`mouse`&&_(e)}),onPointerDown:d(a.onPointerDown,e=>{p.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(_(e),e.preventDefault())}),onKeyDown:d(a.onKeyDown,e=>{let t=m.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&h(e.key),!(t&&e.key===` `)&&z.includes(e.key)&&(_(),e.preventDefault())})})})},`SelectTrigger`)),ce=`SelectValue`,le=N.forwardRef(R(function(e,t){let{__scopeSelect:r,className:i,style:a,children:s,placeholder:c=``,...l}=e,u=q(ce,r),{onValueNodeHasChildrenChange:d}=u,p=s!==void 0,m=o(t,u.onValueNodeChange);f(()=>{d(p)},[d,p]);let h=$(u.value);return(0,I.jsx)(n.span,{...l,asChild:!h&&l.asChild,ref:m,style:{pointerEvents:`none`},children:(0,I.jsx)(N.Fragment,{children:h?c:s},h?`placeholder`:`value`)})},`SelectValue`)),ue=N.forwardRef(R(function(e,t){let{__scopeSelect:r,children:i,...a}=e;return(0,I.jsx)(n.span,{"aria-hidden":!0,...a,ref:t,children:i||`▼`})},`SelectIcon`)),[de,fe]=G(`SelectPortal`,{forceMount:void 0}),pe=R(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,I.jsx)(de,{scope:e.__scopeSelect,forceMount:n,children:(0,I.jsx)(S,{asChild:!0,...r})})},`SelectPortal`),Y=`SelectContent`,me=N.forwardRef(R(function(e,t){let n=fe(Y,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=q(Y,e.__scopeSelect),[o,s]=N.useState();return f(()=>{s(new DocumentFragment)},[]),(0,I.jsx)(b,{present:r||a.open,children:({present:e})=>e?(0,I.jsx)(ve,{...i,ref:t}):(0,I.jsx)(he,{...i,fragment:o})})},`SelectContent`)),he=N.forwardRef(R(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?M.createPortal((0,I.jsx)(ge,{scope:n,children:(0,I.jsx)(H.Slot,{scope:n,children:(0,I.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),X=10,[ge,Z]=G(Y),_e=a(`SelectContent.RemoveScroll`),ve=N.forwardRef(R(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:s,side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:b,hideWhenDetached:S,avoidCollisions:C,...w}=e,T=q(Y,n),[E,D]=N.useState(null),[O,k]=N.useState(null),A=o(t,D),[j,M]=N.useState(null),[P,ee]=N.useState(null),F=U(n),[L,z]=N.useState(!1),B=N.useRef(!1);N.useEffect(()=>{if(E)return v(E)},[E]),y();let V=N.useCallback(e=>{let[t,...n]=F().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&O&&(O.scrollTop=0),n===r&&O&&(O.scrollTop=O.scrollHeight),n?.focus(),document.activeElement!==i))return},[F,O]),H=N.useCallback(()=>V([j,E]),[V,j,E]);N.useEffect(()=>{L&&H()},[L,H]);let{onOpenChange:W,triggerPointerDownPosRef:G}=T;N.useEffect(()=>{if(E){let e={x:0,y:0},t=R(t=>{e={x:Math.abs(Math.round(t.pageX)-(G.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(G.current?.y??0))}},`handlePointerMove`),n=R(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(E)||W(!1),document.removeEventListener(`pointermove`,t),G.current=null},`handlePointerUp`);return G.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[E,W,G]),N.useEffect(()=>{let e=R(()=>W(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[W]);let[te,K]=He(e=>{let t=F().filter(e=>!e.disabled),n=Ue(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),ne=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&(M(e),r&&(B.current=!0))},[T.value]),re=N.useCallback(()=>E?.focus(),[E]),ie=N.useCallback((e,t,n)=>{let r=!B.current&&!n;(T.value!==void 0&&T.value===t||r)&&ee(e)},[T.value]),J=r===`popper`?be:ye,ae=J===be?{side:c,sideOffset:l,align:u,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:b,hideWhenDetached:S,avoidCollisions:C}:{};return(0,I.jsx)(ge,{scope:n,content:E,viewport:O,onViewportChange:k,itemRefCallback:ne,selectedItem:j,onItemLeave:re,itemTextRefCallback:ie,focusSelectedItem:H,selectedItemText:P,position:r,isPositioned:L,searchRef:te,children:(0,I.jsx)(g,{as:_e,allowPinchZoom:!0,children:(0,I.jsx)(_,{asChild:!0,trapped:T.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:d(i,e=>{T.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,I.jsx)(x,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>T.onOpenChange(!1),children:(0,I.jsx)(J,{role:`listbox`,id:T.contentId,"data-state":T.open?`open`:`closed`,dir:T.dir,onContextMenu:e=>e.preventDefault(),...w,...ae,onPlaced:()=>z(!0),ref:A,style:{display:`flex`,flexDirection:`column`,outline:`none`,...w.style},onKeyDown:d(w.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&K(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=F().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),ye=N.forwardRef(R(function(e,t){let{__scopeSelect:r,onPlaced:i,...a}=e,s=q(Y,r),c=Z(Y,r),[l,u]=N.useState(null),[d,p]=N.useState(null),m=o(t,p),h=U(r),g=N.useRef(!1),_=N.useRef(!0),{viewport:v,selectedItem:y,selectedItemText:b,focusSelectedItem:x}=c,S=N.useCallback(()=>{if(s.trigger&&s.valueNode&&l&&d&&v&&y&&b){let e=s.trigger.getBoundingClientRect(),t=d.getBoundingClientRect(),n=s.valueNode.getBoundingClientRect(),r=b.getBoundingClientRect();if(s.dir!==`rtl`){let i=r.left-t.left,a=n.left-i,o=e.left-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-X,d=w(a,[X,Math.max(X,u-c)]);l.style.minWidth=s+`px`,l.style.left=d+`px`}else{let i=t.right-r.right,a=window.innerWidth-n.right-i,o=window.innerWidth-e.right-a,s=e.width+o,c=Math.max(s,t.width),u=window.innerWidth-X,d=w(a,[X,Math.max(X,u-c)]);l.style.minWidth=s+`px`,l.style.right=d+`px`}let a=h(),o=window.innerHeight-X*2,c=v.scrollHeight,u=window.getComputedStyle(d),f=parseInt(u.borderTopWidth,10),p=parseInt(u.paddingTop,10),m=parseInt(u.borderBottomWidth,10),_=parseInt(u.paddingBottom,10),x=f+p+c+_+m,S=Math.min(y.offsetHeight*5,x),C=window.getComputedStyle(v),T=parseInt(C.paddingTop,10),E=parseInt(C.paddingBottom,10),D=e.top+e.height/2-X,O=o-D,k=y.offsetHeight/2,A=y.offsetTop+k,j=f+p+A,M=x-j;if(j<=D){let e=a.length>0&&y===a[a.length-1].ref.current;l.style.bottom=`0px`;let t=d.clientHeight-v.offsetTop-v.offsetHeight,n=j+Math.max(O,k+(e?E:0)+t+m);l.style.height=n+`px`}else{let e=a.length>0&&y===a[0].ref.current;l.style.top=`0px`;let t=Math.max(D,f+v.offsetTop+(e?T:0)+k)+M;l.style.height=t+`px`,v.scrollTop=j-D+v.offsetTop}l.style.margin=`${X}px 0`,l.style.minHeight=S+`px`,l.style.maxHeight=o+`px`,i?.(),requestAnimationFrame(()=>g.current=!0)}},[h,s.trigger,s.valueNode,l,d,v,y,b,s.dir,i]);f(()=>S(),[S]);let[C,T]=N.useState();f(()=>{d&&T(window.getComputedStyle(d).zIndex)},[d]);let E=N.useCallback(e=>{e&&_.current===!0&&(S(),x?.(),_.current=!1)},[S,x]);return(0,I.jsx)(xe,{scope:r,contentWrapper:l,shouldExpandOnScrollRef:g,onScrollButtonChange:E,children:(0,I.jsx)(`div`,{ref:u,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:C},children:(0,I.jsx)(n.div,{...a,ref:m,style:{boxSizing:`border-box`,maxHeight:`100%`,...a.style}})})})},`SelectItemAlignedPosition`)),be=N.forwardRef(R(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=X,...a}=e,o=K(n);return(0,I.jsx)(j,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})},`SelectPopperPosition`)),[xe,Se]=G(Y,{}),Ce=`SelectViewport`,we=N.forwardRef(R(function(e,t){let{__scopeSelect:r,nonce:i,...a}=e,s=Z(Ce,r),c=Se(Ce,r),l=o(t,s.onViewportChange),u=N.useRef(0);return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,I.jsx)(H.Slot,{scope:r,children:(0,I.jsx)(n.div,{"data-radix-select-viewport":``,role:`presentation`,...a,ref:l,style:{position:`relative`,flex:1,overflow:`hidden auto`,...a.style},onScroll:d(a.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=c;if(r?.current&&n){let e=Math.abs(u.current-t.scrollTop);if(e>0){let r=window.innerHeight-X*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}u.current=t.scrollTop})})})]})},`SelectViewport`)),[Te,Ee]=G(`SelectGroup`),De=`SelectItem`,[Oe,ke]=G(De),Ae=N.forwardRef(R(function(e,t){let{__scopeSelect:r,value:i,disabled:a=!1,textValue:s,...c}=e,l=q(De,r),f=Z(De,r),p=l.value===i,[h,g]=N.useState(s??``),[_,v]=N.useState(!1),y=m(e=>f.itemRefCallback?.(e,i,a)),b=o(t,y),x=u(),S=N.useRef(`touch`),C=R(()=>{a||(l.onValueChange(i),l.onOpenChange(!1))},`handleSelect`);return(0,I.jsx)(Oe,{scope:r,value:i,disabled:a,textId:x,isSelected:p,onItemTextChange:N.useCallback(e=>{g(t=>t||(e?.textContent??``).trim())},[]),children:(0,I.jsx)(H.ItemSlot,{scope:r,value:i,disabled:a,textValue:h,children:(0,I.jsx)(n.div,{role:`option`,"aria-labelledby":x,"data-highlighted":_?``:void 0,"aria-selected":p&&_,"data-state":p?`checked`:`unchecked`,"aria-disabled":a||void 0,"data-disabled":a?``:void 0,tabIndex:a?void 0:-1,...c,ref:b,onFocus:d(c.onFocus,()=>v(!0)),onBlur:d(c.onBlur,()=>v(!1)),onClick:d(c.onClick,()=>{S.current!==`mouse`&&C()}),onPointerUp:d(c.onPointerUp,()=>{S.current===`mouse`&&C()}),onPointerDown:d(c.onPointerDown,e=>{S.current=e.pointerType}),onPointerMove:d(c.onPointerMove,e=>{S.current=e.pointerType,a?f.onItemLeave?.():S.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:d(c.onPointerLeave,e=>{e.currentTarget===document.activeElement&&f.onItemLeave?.()}),onKeyDown:d(c.onKeyDown,e=>{a||e.target!==e.currentTarget||(f.searchRef?.current===``||e.key!==` `)&&(B.includes(e.key)&&C(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Q=`SelectItemText`,je=N.forwardRef(R(function(e,t){let{__scopeSelect:r,className:i,style:a,...s}=e,c=q(Q,r),l=Z(Q,r),u=ke(Q,r),d=ie(Q,r),[p,h]=N.useState(null),g=m(e=>l.itemTextRefCallback?.(e,u.value,u.disabled)),_=o(t,h,u.onItemTextChange,g),v=p?.textContent,y=N.useMemo(()=>(0,I.jsx)(`option`,{value:u.value,disabled:u.disabled,children:v},u.value),[u.disabled,u.value,v]),{onNativeOptionAdd:b,onNativeOptionRemove:x}=d;return f(()=>(b(y),()=>x(y)),[b,x,y]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(n.span,{id:u.textId,...s,ref:_}),u.isSelected&&c.valueNode&&!c.valueNodeHasChildren&&!$(c.value)?M.createPortal(s.children,c.valueNode):null]})},`SelectItemText`)),Me=`SelectItemIndicator`,Ne=N.forwardRef(R(function(e,t){let{__scopeSelect:r,...i}=e;return ke(Me,r).isSelected?(0,I.jsx)(n.span,{"aria-hidden":!0,...i,ref:t}):null},`SelectItemIndicator`)),Pe=`SelectScrollUpButton`,Fe=N.forwardRef(R(function(e,t){let n=Z(Pe,e.__scopeSelect),r=Se(Pe,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return f(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),Ie=`SelectScrollDownButton`,Le=N.forwardRef(R(function(e,t){let n=Z(Ie,e.__scopeSelect),r=Se(Ie,e.__scopeSelect),[i,a]=N.useState(!1),s=o(t,r.onScrollButtonChange);return f(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};R(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,I.jsx)(Re,{...e,ref:s,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),Re=N.forwardRef(R(function(e,t){let{__scopeSelect:r,onAutoScroll:i,...a}=e,o=Z(`SelectScrollButton`,r),s=N.useRef(null),c=U(r),l=N.useCallback(()=>{s.current!==null&&(window.clearInterval(s.current),s.current=null)},[]);return N.useEffect(()=>()=>l(),[l]),f(()=>{c().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[c]),(0,I.jsx)(n.div,{"aria-hidden":!0,...a,ref:t,style:{flexShrink:0,...a.style},onPointerDown:d(a.onPointerDown,()=>{s.current===null&&(s.current=window.setInterval(i,50))}),onPointerMove:d(a.onPointerMove,()=>{o.onItemLeave?.(),s.current===null&&(s.current=window.setInterval(i,50))}),onPointerLeave:d(a.onPointerLeave,()=>{l()})})},`SelectScrollButtonImpl`)),ze=`SelectBubbleInput`,Be=N.forwardRef(R(function({__scopeSelect:e,...t},r){let i=q(ze,e),{value:a,onValueChange:s,required:l,disabled:u,name:d,autoComplete:f,form:p}=i,{nativeOptions:m,nativeSelectKey:h}=i,g=N.useRef(null),_=o(r,g),v=a??``,y=F(v),b=Array.from(m).some(e=>(e.props.value??``)===``);return N.useEffect(()=>{let e=g.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(y!==v&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,v),e.dispatchEvent(t)}},[y,v]),(0,I.jsxs)(n.select,{"aria-hidden":!0,required:l,tabIndex:-1,name:d,autoComplete:f,disabled:u,form:p,onChange:e=>s(e.target.value),...t,style:{...c,...t.style},ref:_,defaultValue:v,children:[$(a)&&!b?(0,I.jsx)(`option`,{value:``}):null,Array.from(m)]},h)},`SelectBubbleInput`));function Ve(e){return typeof e==`function`}R(Ve,`isFunction`);function $(e){return e===``||e===void 0}R($,`shouldShowPlaceholder`);function He(e){let t=m(e),n=N.useRef(``),r=N.useRef(0),i=N.useCallback(e=>{let i=n.current+e;t(i),R((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=N.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return N.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}R(He,`useTypeaheadSearch`);function Ue(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=We(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}R(Ue,`findNextItem`);function We(e,t){return e.map((n,r)=>e[(t+r)%e.length])}R(We,`wrapArray`);function Ge({...e}){return(0,I.jsx)(ae,{"data-slot":`select`,...e})}function Ke({...e}){return(0,I.jsx)(le,{"data-slot":`select-value`,...e})}function qe({className:e,size:t=`default`,children:n,...r}){return(0,I.jsxs)(se,{"data-slot":`select-trigger`,"data-size":t,className:i(`flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground`,e),...r,children:[n,(0,I.jsx)(ue,{asChild:!0,children:(0,I.jsx)(E,{className:`size-4 opacity-50`})})]})}function Je({className:e,children:t,position:n=`item-aligned`,align:r=`center`,...a}){return(0,I.jsx)(pe,{children:(0,I.jsxs)(me,{"data-slot":`select-content`,className:i(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-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-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,align:r,...a,children:[(0,I.jsx)(Xe,{}),(0,I.jsx)(we,{className:i(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1`),children:t}),(0,I.jsx)(Ze,{})]})})}function Ye({className:e,children:t,...n}){return(0,I.jsxs)(Ae,{"data-slot":`select-item`,className:i(`relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,e),...n,children:[(0,I.jsx)(`span`,{"data-slot":`select-item-indicator`,className:`absolute right-2 flex size-3.5 items-center justify-center`,children:(0,I.jsx)(Ne,{children:(0,I.jsx)(D,{className:`size-4`})})}),(0,I.jsx)(je,{children:t})]})}function Xe({className:e,...t}){return(0,I.jsx)(Fe,{"data-slot":`select-scroll-up-button`,className:i(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(T,{className:`size-4`})})}function Ze({className:e,...t}){return(0,I.jsx)(Le,{"data-slot":`select-scroll-down-button`,className:i(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,I.jsx)(E,{className:`size-4`})})}export{Ke as a,qe as i,Je as n,Ye as r,Ge as t};
@@ -1 +1 @@
1
- import{t as e}from"./CiL8zoYm.js";import{i as t,r as n}from"./Cu_sGzNJ.js";import{a as r,i,n as a,o,t as s}from"./DzRyVlxz.js";import{t as c}from"./CAd2f6EE.js";import{n as l}from"./D8_hwGjG.js";import{l as u}from"./BghfQrAj.js";var d=n(),f=[`FLUSH HOSTS`,`FLUSH LOGS`,`FLUSH PRIVILEGES`,`FLUSH STATUS`,`FLUSH TABLES`,`FLUSH THREADS`,`FLUSH QUERY CACHE`,`FLUSH DES_KEY_FILE`,`FLUSH RELAY LOGS`,`FLUSH SLOW LOGS`,`FLUSH BINARY LOGS`,`FLUSH ENGINE LOGS`,`FLUSH ERROR LOGS`,`FLUSH GENERAL LOGS`,`FLUSH USER_RESOURCES`,`FLUSH OPTIMIZER_COSTS`];function p(){let e=c.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}function m(){let{t:n}=t(),{activeDialog:c,closeDialog:m,setFooterMessage:h}=l(),g=c===`flush`;function _(e){e||m()}async function v(e){let t=p();if(!t){h(n(`command.noActiveConnection`));return}try{await u(t,e),h(n(`command.flush.executed`,{command:e}))}catch(t){h(n(`command.flush.executeError`,{command:e,message:t instanceof Error?t.message:String(t)}))}}return(0,d.jsx)(s,{open:g,onOpenChange:_,children:(0,d.jsxs)(a,{className:`sm:max-w-[500px]`,children:[(0,d.jsx)(r,{children:(0,d.jsx)(o,{children:n(`command.flush.title`)})}),(0,d.jsx)(`div`,{className:`grid grid-cols-2 gap-2 py-2`,children:f.map(t=>(0,d.jsx)(e,{variant:`outline`,size:`sm`,className:`justify-start text-xs h-8`,onClick:()=>{v(t)},children:t},t))}),(0,d.jsx)(i,{children:(0,d.jsx)(e,{variant:`outline`,onClick:()=>_(!1),children:n(`command.close`)})})]})})}export{m as FlushDialog};
1
+ import{t as e}from"./Dya0zxo6.js";import{i as t,r as n}from"./C76CctEl.js";import{a as r,i,n as a,o,t as s}from"./kTwcxyaO.js";import{t as c}from"./iz6RnRcO.js";import{n as l}from"./BihjBM79.js";import{l as u}from"./BVZGLNq_.js";var d=n(),f=[`FLUSH HOSTS`,`FLUSH LOGS`,`FLUSH PRIVILEGES`,`FLUSH STATUS`,`FLUSH TABLES`,`FLUSH THREADS`,`FLUSH QUERY CACHE`,`FLUSH DES_KEY_FILE`,`FLUSH RELAY LOGS`,`FLUSH SLOW LOGS`,`FLUSH BINARY LOGS`,`FLUSH ENGINE LOGS`,`FLUSH ERROR LOGS`,`FLUSH GENERAL LOGS`,`FLUSH USER_RESOURCES`,`FLUSH OPTIMIZER_COSTS`];function p(){let e=c.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}function m(){let{t:n}=t(),{activeDialog:c,closeDialog:m,setFooterMessage:h}=l(),g=c===`flush`;function _(e){e||m()}async function v(e){let t=p();if(!t){h(n(`command.noActiveConnection`));return}try{await u(t,e),h(n(`command.flush.executed`,{command:e}))}catch(t){h(n(`command.flush.executeError`,{command:e,message:t instanceof Error?t.message:String(t)}))}}return(0,d.jsx)(s,{open:g,onOpenChange:_,children:(0,d.jsxs)(a,{className:`sm:max-w-[500px]`,children:[(0,d.jsx)(r,{children:(0,d.jsx)(o,{children:n(`command.flush.title`)})}),(0,d.jsx)(`div`,{className:`grid grid-cols-2 gap-2 py-2`,children:f.map(t=>(0,d.jsx)(e,{variant:`outline`,size:`sm`,className:`justify-start text-xs h-8`,onClick:()=>{v(t)},children:t},t))}),(0,d.jsx)(i,{children:(0,d.jsx)(e,{variant:`outline`,onClick:()=>_(!1),children:n(`command.close`)})})]})})}export{m as FlushDialog};
@@ -1 +1 @@
1
- import{t as e}from"./CYz610vE.js";var t=(e,t)=>`${t}@${e}`,n=e()(e=>({users:{},selectedUser:{},isLoading:{},setUsers:(t,n)=>e(e=>({users:{...e.users,[t]:n}})),setSelectedUser:(t,n)=>e(e=>({selectedUser:{...e.selectedUser,[t]:n}})),addUser:(t,n)=>e(e=>({users:{...e.users,[t]:[...e.users[t]??[],n]}})),updateUser:(n,r,i,a)=>e(e=>({users:{...e.users,[n]:(e.users[n]??[]).map(e=>t(e.host,e.user)===t(r,i)?{...e,...a}:e)}})),removeUser:(n,r,i)=>e(e=>{let a=e.selectedUser[n],o=a&&t(a.host,a.user)===t(r,i);return{users:{...e.users,[n]:(e.users[n]??[]).filter(e=>t(e.host,e.user)!==t(r,i))},selectedUser:{...e.selectedUser,[n]:o?null:a??null}}}),setLoading:(t,n)=>e(e=>({isLoading:{...e.isLoading,[t]:n}})),clear:t=>e(e=>{let n={...e.users},r={...e.selectedUser};return delete n[t],delete r[t],{users:n,selectedUser:r}})})),r=[];export{n,r as t};
1
+ import{t as e}from"./CyX8oVsa.js";var t=(e,t)=>`${t}@${e}`,n=e()(e=>({users:{},selectedUser:{},isLoading:{},setUsers:(t,n)=>e(e=>({users:{...e.users,[t]:n}})),setSelectedUser:(t,n)=>e(e=>({selectedUser:{...e.selectedUser,[t]:n}})),addUser:(t,n)=>e(e=>({users:{...e.users,[t]:[...e.users[t]??[],n]}})),updateUser:(n,r,i,a)=>e(e=>({users:{...e.users,[n]:(e.users[n]??[]).map(e=>t(e.host,e.user)===t(r,i)?{...e,...a}:e)}})),removeUser:(n,r,i)=>e(e=>{let a=e.selectedUser[n],o=a&&t(a.host,a.user)===t(r,i);return{users:{...e.users,[n]:(e.users[n]??[]).filter(e=>t(e.host,e.user)!==t(r,i))},selectedUser:{...e.selectedUser,[n]:o?null:a??null}}}),setLoading:(t,n)=>e(e=>({isLoading:{...e.isLoading,[t]:n}})),clear:t=>e(e=>{let n={...e.users},r={...e.selectedUser};return delete n[t],delete r[t],{users:n,selectedUser:r}})})),r=[];export{n,r as t};
@@ -1 +1 @@
1
- import{i as e,r as t}from"./Cu_sGzNJ.js";import{t as n}from"./neLPq0_M.js";import{Yt as r}from"./B_zu4Zim.js";var i={currency:`USD`,annualPerMonth:8,annualTotal:96,monthly:10},a=e=>`$${e}`,o=t(),s=`https://planche.dev/pricing/`;function c({highlight:t,innerRef:c}){let{t:l}=e(),u=t?[t,...n.filter(e=>e!==t)]:[...n];return(0,o.jsxs)(`div`,{className:`grid gap-3 rounded-xl border border-primary/50 bg-muted/20 p-4 shadow-[inset_0_0_0_1px_hsl(var(--primary)/0.15)]`,children:[(0,o.jsx)(`p`,{className:`text-[0.7rem] font-semibold uppercase tracking-[0.09em] text-muted-foreground`,children:`Pro`}),(0,o.jsxs)(`div`,{className:`grid gap-1`,children:[(0,o.jsxs)(`p`,{className:`flex items-baseline gap-1.5`,children:[(0,o.jsx)(`span`,{className:`text-3xl font-semibold leading-none text-foreground`,children:a(i.annualPerMonth)}),(0,o.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l(`pro.perMonth`)})]}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`pro.priceNote`,{annual:a(i.annualTotal),monthly:a(i.monthly)})})]}),(0,o.jsx)(`ul`,{className:`grid gap-2 text-xs`,children:u.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2`,children:[(0,o.jsx)(r,{className:`mt-0.5 size-3 shrink-0 ${e===t?`text-primary`:`text-emerald-500/80`}`}),(0,o.jsxs)(`span`,{className:`grid gap-0.5`,children:[(0,o.jsx)(`span`,{className:e===t?`font-medium text-foreground`:`text-foreground/90`,children:l(`pro.features.${e}`)}),(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:l(`pro.featureDetails.${e}`)})]})]},e))}),(0,o.jsx)(`a`,{ref:c,href:s,target:`_blank`,rel:`noreferrer`,className:`rounded-md bg-primary px-4 py-2 text-center text-sm font-medium text-primary-foreground hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:l(`pro.pricing`)})]})}export{c as t};
1
+ import{i as e,r as t}from"./C76CctEl.js";import{t as n}from"./neLPq0_M.js";import{Yt as r}from"./D4DxtYTA.js";var i={currency:`USD`,annualPerMonth:8,annualTotal:96,monthly:10},a=e=>`$${e}`,o=t(),s=`https://planche.dev/pricing/`;function c({highlight:t,innerRef:c}){let{t:l}=e(),u=t?[t,...n.filter(e=>e!==t)]:[...n];return(0,o.jsxs)(`div`,{className:`grid gap-3 rounded-xl border border-primary/50 bg-muted/20 p-4 shadow-[inset_0_0_0_1px_hsl(var(--primary)/0.15)]`,children:[(0,o.jsx)(`p`,{className:`text-[0.7rem] font-semibold uppercase tracking-[0.09em] text-muted-foreground`,children:`Pro`}),(0,o.jsxs)(`div`,{className:`grid gap-1`,children:[(0,o.jsxs)(`p`,{className:`flex items-baseline gap-1.5`,children:[(0,o.jsx)(`span`,{className:`text-3xl font-semibold leading-none text-foreground`,children:a(i.annualPerMonth)}),(0,o.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:l(`pro.perMonth`)})]}),(0,o.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:l(`pro.priceNote`,{annual:a(i.annualTotal),monthly:a(i.monthly)})})]}),(0,o.jsx)(`ul`,{className:`grid gap-2 text-xs`,children:u.map(e=>(0,o.jsxs)(`li`,{className:`flex gap-2`,children:[(0,o.jsx)(r,{className:`mt-0.5 size-3 shrink-0 ${e===t?`text-primary`:`text-emerald-500/80`}`}),(0,o.jsxs)(`span`,{className:`grid gap-0.5`,children:[(0,o.jsx)(`span`,{className:e===t?`font-medium text-foreground`:`text-foreground/90`,children:l(`pro.features.${e}`)}),(0,o.jsx)(`span`,{className:`text-muted-foreground`,children:l(`pro.featureDetails.${e}`)})]})]},e))}),(0,o.jsx)(`a`,{ref:c,href:s,target:`_blank`,rel:`noreferrer`,className:`rounded-md bg-primary px-4 py-2 text-center text-sm font-medium text-primary-foreground hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:l(`pro.pricing`)})]})}export{c as t};
@@ -0,0 +1 @@
1
+ import{n as e}from"./C76CctEl.js";var t=e(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]);export{t};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{i as n,r}from"./Cu_sGzNJ.js";import{F as i}from"./CAd2f6EE.js";import{n as a}from"./D8_hwGjG.js";import{t as o}from"./CMFMZu0I.js";import{s}from"./Udlj1Cgf.js";import{t as c}from"./TqO-pPrr.js";import{t as l}from"./_zaonxnw.js";var u=e(t(),1),d=r(),f=128;function p({connectionId:e,tabId:t}){let{t:r}=n(),p=o(e,t,``),[m,h]=(0,u.useState)(null),[g,_]=(0,u.useState)(null),[v,y]=(0,u.useState)(null),b=(0,u.useCallback)(async()=>{try{h(s(await p.read(`SLOWLOG GET ${f}`)));let e=await p.tryRead(`CONFIG GET slowlog-log-slower-than`);_(Array.isArray(e)&&e.length===2?String(e[1]):null),y(null)}catch(e){y(l(e))}},[p]);(0,u.useEffect)(()=>{Promise.resolve().then(()=>b())},[b]);let x=async()=>{if(await a.getState().requestDestructiveConfirm({title:r(`tools.redis.slowlogResetTitle`),description:r(`tools.redis.slowlogResetDescription`),statements:[`SLOWLOG RESET`],confirmLabel:r(`tools.redis.slowlogReset`)}))try{await p.write(`SLOWLOG RESET`,{confirmed:!0}),await b()}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||y(l(e))}};return(0,d.jsxs)(c,{title:r(`tools.redis.slowlog`),onRefresh:b,error:v,onDismissError:()=>y(null),actions:(0,d.jsxs)(d.Fragment,{children:[g!==null&&(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:r(`tools.redis.slowlogThreshold`,{ms:(Number(g)/1e3).toLocaleString()})}),!p.readOnly&&(0,d.jsx)(`button`,{type:`button`,onClick:()=>void x(),className:`flex h-7 items-center rounded border bg-background px-2 text-muted-foreground hover:border-destructive/40 hover:text-destructive`,children:r(`tools.redis.slowlogReset`)})]}),children:[m&&m.length===0&&(0,d.jsx)(`p`,{className:`p-6 text-xs text-muted-foreground`,children:r(`tools.redis.slowlogEmpty`)}),m&&m.length>0&&(0,d.jsxs)(`table`,{className:`w-full border-collapse text-xs`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:`id`}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.time`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5 text-right`,children:r(`tools.redis.duration`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.command`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.client`)})]})}),(0,d.jsx)(`tbody`,{children:m.map(e=>(0,d.jsxs)(`tr`,{className:`border-b border-border/50 hover:bg-muted/40`,children:[(0,d.jsx)(`td`,{className:`px-3 py-1 tabular-nums text-muted-foreground`,children:e.id}),(0,d.jsx)(`td`,{className:`whitespace-nowrap px-3 py-1`,children:new Date(e.time*1e3).toLocaleString()}),(0,d.jsxs)(`td`,{className:`px-3 py-1 text-right tabular-nums`,children:[(e.durationMicros/1e3).toFixed(2),` ms`]}),(0,d.jsx)(`td`,{className:`break-all px-3 py-1 font-mono`,children:e.args.map(i).join(` `)}),(0,d.jsx)(`td`,{className:`px-3 py-1 font-mono text-muted-foreground`,children:[e.client,e.clientName].filter(Boolean).join(` · `)})]},e.id))})]})]})}export{p as SlowLog};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{i as n,r}from"./C76CctEl.js";import{F as i}from"./iz6RnRcO.js";import{n as a}from"./BihjBM79.js";import{t as o}from"./BaTnCkNR.js";import{s}from"./Udlj1Cgf.js";import{t as c}from"./C3aiaYZP.js";import{t as l}from"./_zaonxnw.js";var u=e(t(),1),d=r(),f=128;function p({connectionId:e,tabId:t}){let{t:r}=n(),p=o(e,t,``),[m,h]=(0,u.useState)(null),[g,_]=(0,u.useState)(null),[v,y]=(0,u.useState)(null),b=(0,u.useCallback)(async()=>{try{h(s(await p.read(`SLOWLOG GET ${f}`)));let e=await p.tryRead(`CONFIG GET slowlog-log-slower-than`);_(Array.isArray(e)&&e.length===2?String(e[1]):null),y(null)}catch(e){y(l(e))}},[p]);(0,u.useEffect)(()=>{Promise.resolve().then(()=>b())},[b]);let x=async()=>{if(await a.getState().requestDestructiveConfirm({title:r(`tools.redis.slowlogResetTitle`),description:r(`tools.redis.slowlogResetDescription`),statements:[`SLOWLOG RESET`],confirmLabel:r(`tools.redis.slowlogReset`)}))try{await p.write(`SLOWLOG RESET`,{confirmed:!0}),await b()}catch(e){e instanceof Error&&e.name===`ExecutionCancelled`||y(l(e))}};return(0,d.jsxs)(c,{title:r(`tools.redis.slowlog`),onRefresh:b,error:v,onDismissError:()=>y(null),actions:(0,d.jsxs)(d.Fragment,{children:[g!==null&&(0,d.jsx)(`span`,{className:`text-muted-foreground`,children:r(`tools.redis.slowlogThreshold`,{ms:(Number(g)/1e3).toLocaleString()})}),!p.readOnly&&(0,d.jsx)(`button`,{type:`button`,onClick:()=>void x(),className:`flex h-7 items-center rounded border bg-background px-2 text-muted-foreground hover:border-destructive/40 hover:text-destructive`,children:r(`tools.redis.slowlogReset`)})]}),children:[m&&m.length===0&&(0,d.jsx)(`p`,{className:`p-6 text-xs text-muted-foreground`,children:r(`tools.redis.slowlogEmpty`)}),m&&m.length>0&&(0,d.jsxs)(`table`,{className:`w-full border-collapse text-xs`,children:[(0,d.jsx)(`thead`,{className:`sticky top-0 bg-muted text-left text-muted-foreground`,children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:`id`}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.time`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5 text-right`,children:r(`tools.redis.duration`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.command`)}),(0,d.jsx)(`th`,{className:`px-3 py-1.5`,children:r(`tools.redis.client`)})]})}),(0,d.jsx)(`tbody`,{children:m.map(e=>(0,d.jsxs)(`tr`,{className:`border-b border-border/50 hover:bg-muted/40`,children:[(0,d.jsx)(`td`,{className:`px-3 py-1 tabular-nums text-muted-foreground`,children:e.id}),(0,d.jsx)(`td`,{className:`whitespace-nowrap px-3 py-1`,children:new Date(e.time*1e3).toLocaleString()}),(0,d.jsxs)(`td`,{className:`px-3 py-1 text-right tabular-nums`,children:[(e.durationMicros/1e3).toFixed(2),` ms`]}),(0,d.jsx)(`td`,{className:`break-all px-3 py-1 font-mono`,children:e.args.map(i).join(` `)}),(0,d.jsx)(`td`,{className:`px-3 py-1 font-mono text-muted-foreground`,children:[e.client,e.clientName].filter(Boolean).join(` · `)})]},e.id))})]})]})}export{p as SlowLog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{a as r}from"./C9jzAIEJ.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,t as u}from"./DzRyVlxz.js";import{t as d}from"./CAd2f6EE.js";import{n as f}from"./D8_hwGjG.js";import{l as p}from"./BghfQrAj.js";import{t as m}from"./Ci1xBOLy.js";import{C as h,S as g,T as _,b as v,l as y,vt as b,w as x,x as S}from"./B_zu4Zim.js";var C=e(t(),1),w=a();function T(){let e=d.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}async function E(e){let t=T();if(!t)throw Error(r.t(`command.noActiveConnection`));let n=m().getQuery(e===`global`?`SHOW_GLOBAL_STATUS`:`SHOW_SESSION_STATUS`);return(await p(t,n)).records.map(e=>({Variable_name:e[0],Value:e[1]}))}function D(){let{t:e}=i(),{activeDialog:t,closeDialog:r,setFooterMessage:a}=f(),[d,p]=(0,C.useState)([]),[m,T]=(0,C.useState)(``),[D,O]=(0,C.useState)(`session`),k=t===`status`,A=(0,C.useCallback)(t=>E(t).then(p).catch(t=>a(e(`command.status.loadError`,{message:t instanceof Error?t.message:String(t)}))),[a,e]);(0,C.useEffect)(()=>{k&&A(D)},[k,D,A]);let j=(0,C.useMemo)(()=>{if(!m.trim())return d;let e=m.toLowerCase();return d.filter(t=>t.Variable_name.toLowerCase().includes(e)||t.Value.toLowerCase().includes(e))},[d,m]);function M(e){e||(T(``),r())}function N(e){O(e)}return(0,w.jsx)(u,{open:k,onOpenChange:M,children:(0,w.jsxs)(c,{className:`sm:max-w-[900px] max-h-[80vh] flex flex-col`,children:[(0,w.jsx)(o,{children:(0,w.jsx)(l,{children:e(`command.status.title`)})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,w.jsxs)(`div`,{className:`flex gap-1`,children:[(0,w.jsx)(n,{variant:D===`session`?`default`:`outline`,size:`sm`,onClick:()=>N(`session`),children:e(`command.scope.session`)}),(0,w.jsx)(n,{variant:D===`global`?`default`:`outline`,size:`sm`,onClick:()=>N(`global`),children:e(`command.scope.global`)})]}),(0,w.jsx)(y,{placeholder:e(`command.status.filterPlaceholder`),value:m,onChange:e=>T(e.target.value),className:`max-w-xs`})]}),(0,w.jsx)(`div`,{className:`flex-1 border rounded-md overflow-hidden min-h-0`,children:(0,w.jsx)(b,{className:`h-[400px]`,children:(0,w.jsxs)(v,{children:[(0,w.jsx)(x,{children:(0,w.jsxs)(_,{children:[(0,w.jsx)(h,{className:`w-[300px]`,children:e(`command.variableName`)}),(0,w.jsx)(h,{children:e(`command.value`)})]})}),(0,w.jsx)(S,{children:j.length===0?(0,w.jsx)(_,{children:(0,w.jsx)(g,{colSpan:2,className:`text-center text-muted-foreground`,children:e(`command.status.empty`)})}):j.map(e=>(0,w.jsxs)(_,{children:[(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Variable_name}),(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Value})]},e.Variable_name))})]})})}),(0,w.jsx)(s,{children:(0,w.jsx)(n,{variant:`outline`,onClick:()=>M(!1),children:e(`command.close`)})})]})})}export{D as StatusDialog};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./Dya0zxo6.js";import{a as r}from"./Cme0nCT7.js";import{i,r as a}from"./C76CctEl.js";import{a as o,i as s,n as c,o as l,t as u}from"./kTwcxyaO.js";import{t as d}from"./iz6RnRcO.js";import{n as f}from"./BihjBM79.js";import{l as p}from"./BVZGLNq_.js";import{t as m}from"./CH4cEkW4.js";import{C as h,S as g,T as _,b as v,l as y,vt as b,w as x,x as S}from"./D4DxtYTA.js";var C=e(t(),1),w=a();function T(){let e=d.getState();return e.activeConnections.find(t=>t.id===e.activeConnectionId)?.serverConnectionId??null}async function E(e){let t=T();if(!t)throw Error(r.t(`command.noActiveConnection`));let n=m().getQuery(e===`global`?`SHOW_GLOBAL_STATUS`:`SHOW_SESSION_STATUS`);return(await p(t,n)).records.map(e=>({Variable_name:e[0],Value:e[1]}))}function D(){let{t:e}=i(),{activeDialog:t,closeDialog:r,setFooterMessage:a}=f(),[d,p]=(0,C.useState)([]),[m,T]=(0,C.useState)(``),[D,O]=(0,C.useState)(`session`),k=t===`status`,A=(0,C.useCallback)(t=>E(t).then(p).catch(t=>a(e(`command.status.loadError`,{message:t instanceof Error?t.message:String(t)}))),[a,e]);(0,C.useEffect)(()=>{k&&A(D)},[k,D,A]);let j=(0,C.useMemo)(()=>{if(!m.trim())return d;let e=m.toLowerCase();return d.filter(t=>t.Variable_name.toLowerCase().includes(e)||t.Value.toLowerCase().includes(e))},[d,m]);function M(e){e||(T(``),r())}function N(e){O(e)}return(0,w.jsx)(u,{open:k,onOpenChange:M,children:(0,w.jsxs)(c,{className:`sm:max-w-[900px] max-h-[80vh] flex flex-col`,children:[(0,w.jsx)(o,{children:(0,w.jsx)(l,{children:e(`command.status.title`)})}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3 pb-2`,children:[(0,w.jsxs)(`div`,{className:`flex gap-1`,children:[(0,w.jsx)(n,{variant:D===`session`?`default`:`outline`,size:`sm`,onClick:()=>N(`session`),children:e(`command.scope.session`)}),(0,w.jsx)(n,{variant:D===`global`?`default`:`outline`,size:`sm`,onClick:()=>N(`global`),children:e(`command.scope.global`)})]}),(0,w.jsx)(y,{placeholder:e(`command.status.filterPlaceholder`),value:m,onChange:e=>T(e.target.value),className:`max-w-xs`})]}),(0,w.jsx)(`div`,{className:`flex-1 border rounded-md overflow-hidden min-h-0`,children:(0,w.jsx)(b,{className:`h-[400px]`,children:(0,w.jsxs)(v,{children:[(0,w.jsx)(x,{children:(0,w.jsxs)(_,{children:[(0,w.jsx)(h,{className:`w-[300px]`,children:e(`command.variableName`)}),(0,w.jsx)(h,{children:e(`command.value`)})]})}),(0,w.jsx)(S,{children:j.length===0?(0,w.jsx)(_,{children:(0,w.jsx)(g,{colSpan:2,className:`text-center text-muted-foreground`,children:e(`command.status.empty`)})}):j.map(e=>(0,w.jsxs)(_,{children:[(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Variable_name}),(0,w.jsx)(g,{className:`font-mono text-xs`,children:e.Value})]},e.Variable_name))})]})})}),(0,w.jsx)(s,{children:(0,w.jsx)(n,{variant:`outline`,onClick:()=>M(!1),children:e(`command.close`)})})]})})}export{D as StatusDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./DzRyVlxz.js";import{T as d,h as f}from"./BPLdNS4h.js";import{n as p}from"./D8_hwGjG.js";import{Wt as m,Yt as h}from"./B_zu4Zim.js";var g=e(t(),1),_=i();function v({text:e,label:t}){let[r,i]=(0,g.useState)(!1),a=(0,g.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1600)})},[e]);return(0,_.jsxs)(`div`,{className:`grid gap-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{className:`text-xs font-medium`,children:t}),(0,_.jsx)(n,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 px-2 text-xs`,onClick:a,children:r?(0,_.jsx)(h,{className:`size-3`}):(0,_.jsx)(m,{className:`size-3`})})]}),(0,_.jsx)(`pre`,{"data-selectable":!0,className:`max-h-32 overflow-auto whitespace-pre-wrap break-all rounded-md border bg-muted/40 p-2 text-[11px] leading-snug`,children:e})]})}function y(){let e=p(e=>e.activeDialog),t=p(e=>e.closeDialog),{t:i}=r(),[m,h]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),C=e===`mcp-setup`;(0,g.useEffect)(()=>{C&&f().then(e=>{h(e),S(!1)}).catch(e=>b(e instanceof Error?e.message:String(e)))},[C]);let w=(0,g.useCallback)(()=>{d().then(()=>{h(null),S(!0)})},[]),T=m?`claude mcp add --transport http planche ${m.url} \\\n -H "Authorization: Bearer ${m.token}"`:``,E=m?JSON.stringify({mcpServers:{planche:{type:`http`,url:m.url,headers:{Authorization:`Bearer ${m.token}`}}}},null,2):``;return(0,_.jsx)(u,{open:C,onOpenChange:e=>{e||t()},children:(0,_.jsxs)(s,{className:`sm:max-w-[620px]`,children:[(0,_.jsxs)(a,{children:[(0,_.jsx)(c,{children:i(`mcp.title`)}),(0,_.jsx)(l,{children:i(`mcp.description`)})]}),(0,_.jsxs)(`div`,{className:`grid gap-3`,children:[(0,_.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:[[`readsLabel`,`reads`],[`writesLabel`,`writes`],[`needsLabel`,`needs`],[`tokenLabel`,`token`]].map(([e,t])=>(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(`dt`,{className:`font-medium`,children:i(`mcp.${e}`)}),(0,_.jsx)(`dd`,{className:`text-muted-foreground`,children:i(`mcp.${t}`)})]},e))}),y&&(0,_.jsx)(`p`,{className:`rounded-md border border-destructive/40 p-2 text-xs text-destructive`,children:y}),x&&(0,_.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:i(`mcp.revoked`)}),m&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(v,{text:T,label:i(`mcp.command`)}),(0,_.jsx)(v,{text:E,label:i(`mcp.json`)}),(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`mcp.stored`,{path:m.path})})]})]}),(0,_.jsxs)(o,{children:[m&&(0,_.jsx)(n,{variant:`ghost`,size:`sm`,onClick:w,children:i(`mcp.revoke`)}),(0,_.jsx)(n,{size:`sm`,onClick:t,children:i(`settings.done`)})]})]})})}export{y as McpSetupDialog};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./Dya0zxo6.js";import{i as r,r as i}from"./C76CctEl.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./kTwcxyaO.js";import{T as d,h as f}from"./zdvaVsTo.js";import{n as p}from"./BihjBM79.js";import{Wt as m,Yt as h}from"./D4DxtYTA.js";var g=e(t(),1),_=i();function v({text:e,label:t}){let[r,i]=(0,g.useState)(!1),a=(0,g.useCallback)(()=>{navigator.clipboard.writeText(e).then(()=>{i(!0),setTimeout(()=>i(!1),1600)})},[e]);return(0,_.jsxs)(`div`,{className:`grid gap-1`,children:[(0,_.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,_.jsx)(`span`,{className:`text-xs font-medium`,children:t}),(0,_.jsx)(n,{variant:`ghost`,size:`sm`,className:`h-6 gap-1 px-2 text-xs`,onClick:a,children:r?(0,_.jsx)(h,{className:`size-3`}):(0,_.jsx)(m,{className:`size-3`})})]}),(0,_.jsx)(`pre`,{"data-selectable":!0,className:`max-h-32 overflow-auto whitespace-pre-wrap break-all rounded-md border bg-muted/40 p-2 text-[11px] leading-snug`,children:e})]})}function y(){let e=p(e=>e.activeDialog),t=p(e=>e.closeDialog),{t:i}=r(),[m,h]=(0,g.useState)(null),[y,b]=(0,g.useState)(null),[x,S]=(0,g.useState)(!1),C=e===`mcp-setup`;(0,g.useEffect)(()=>{C&&f().then(e=>{h(e),S(!1)}).catch(e=>b(e instanceof Error?e.message:String(e)))},[C]);let w=(0,g.useCallback)(()=>{d().then(()=>{h(null),S(!0)})},[]),T=m?`claude mcp add --transport http planche ${m.url} \\\n -H "Authorization: Bearer ${m.token}"`:``,E=m?JSON.stringify({mcpServers:{planche:{type:`http`,url:m.url,headers:{Authorization:`Bearer ${m.token}`}}}},null,2):``;return(0,_.jsx)(u,{open:C,onOpenChange:e=>{e||t()},children:(0,_.jsxs)(s,{className:`sm:max-w-[620px]`,children:[(0,_.jsxs)(a,{children:[(0,_.jsx)(c,{children:i(`mcp.title`)}),(0,_.jsx)(l,{children:i(`mcp.description`)})]}),(0,_.jsxs)(`div`,{className:`grid gap-3`,children:[(0,_.jsx)(`dl`,{className:`grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs`,children:[[`readsLabel`,`reads`],[`writesLabel`,`writes`],[`needsLabel`,`needs`],[`tokenLabel`,`token`]].map(([e,t])=>(0,_.jsxs)(g.Fragment,{children:[(0,_.jsx)(`dt`,{className:`font-medium`,children:i(`mcp.${e}`)}),(0,_.jsx)(`dd`,{className:`text-muted-foreground`,children:i(`mcp.${t}`)})]},e))}),y&&(0,_.jsx)(`p`,{className:`rounded-md border border-destructive/40 p-2 text-xs text-destructive`,children:y}),x&&(0,_.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:i(`mcp.revoked`)}),m&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(v,{text:T,label:i(`mcp.command`)}),(0,_.jsx)(v,{text:E,label:i(`mcp.json`)}),(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:i(`mcp.stored`,{path:m.path})})]})]}),(0,_.jsxs)(o,{children:[m&&(0,_.jsx)(n,{variant:`ghost`,size:`sm`,onClick:w,children:i(`mcp.revoke`)}),(0,_.jsx)(n,{size:`sm`,onClick:t,children:i(`settings.done`)})]})]})})}export{y as McpSetupDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{i as n,r}from"./Cu_sGzNJ.js";import{t as i}from"./CMFMZu0I.js";import{a,n as o,o as s,r as c,t as l}from"./Udlj1Cgf.js";import{t as u}from"./TqO-pPrr.js";var d=e(t(),1),f=r();function p({title:e,rows:t}){return(0,f.jsxs)(`div`,{className:`rounded-lg border bg-card p-3`,children:[(0,f.jsx)(`h3`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),(0,f.jsx)(`dl`,{className:`grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 text-xs`,children:t.map(([e,t])=>(0,f.jsxs)(`div`,{className:`contents`,children:[(0,f.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,f.jsx)(`dd`,{className:`font-mono`,children:t??`—`})]},e))})]})}function m({connectionId:e,tabId:t}){let{t:r}=n(),m=i(e,t,``),[h,g]=(0,d.useState)(null),[_,v]=(0,d.useState)(null),[y,b]=(0,d.useState)(``),x=(0,d.useCallback)(async()=>{try{g(a(String(await m.read(`INFO`)))),v(null)}catch(e){v(e instanceof Error?e.message:String(e))}},[m]);(0,d.useEffect)(()=>{Promise.resolve().then(()=>x())},[x]);let S=e=>h?c(h,e):void 0,C=h?o(h):null,w=(0,d.useMemo)(()=>Object.entries(h?.keyspace??{}).map(([e,t])=>({db:e,...s(t)})),[h]),T=(0,d.useMemo)(()=>Object.entries(h??{}).flatMap(([e,t])=>Object.entries(t).map(([t,n])=>[e,t,n])).filter(([,e,t])=>!y||e.includes(y)||t.includes(y)),[h,y]);return(0,f.jsx)(u,{title:r(`tools.redis.server`),onRefresh:x,autoRefresh:!0,error:_,onDismissError:()=>v(null),children:h&&(0,f.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,f.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(260px,1fr))] gap-3`,children:[(0,f.jsx)(p,{title:r(`tools.redis.cardServer`),rows:[[`version`,S(`redis_version`)??S(`valkey_version`)],[`mode`,S(`redis_mode`)],[`uptime`,S(`uptime_in_seconds`)?l(Number(S(`uptime_in_seconds`))):void 0],[`os`,S(`os`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardMemory`),rows:[[`used`,S(`used_memory_human`)],[`peak`,S(`used_memory_peak_human`)],[`maxmemory`,S(`maxmemory_human`)===`0B`?r(`tools.redis.unlimited`):S(`maxmemory_human`)],[`policy`,S(`maxmemory_policy`)],[`fragmentation`,S(`mem_fragmentation_ratio`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardActivity`),rows:[[`ops/sec`,S(`instantaneous_ops_per_sec`)],[`hit rate`,C===null?void 0:`${(C*100).toFixed(1)}%`],[`clients`,S(`connected_clients`)],[`blocked`,S(`blocked_clients`)],[`evicted keys`,S(`evicted_keys`)],[`expired keys`,S(`expired_keys`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardPersistence`),rows:[[`role`,S(`role`)],[`replicas`,S(`connected_slaves`)],[`last save`,S(`rdb_last_save_time`)?new Date(Number(S(`rdb_last_save_time`))*1e3).toLocaleString():void 0],[`changes since save`,S(`rdb_changes_since_last_save`)],[`AOF`,S(`aof_enabled`)===`1`?`on`:S(`aof_enabled`)===`0`?`off`:void 0]]})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsx)(`h3`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:r(`tools.redis.keyspace`)}),(0,f.jsxs)(`table`,{className:`w-full max-w-2xl border-collapse text-xs`,children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{className:`text-left text-muted-foreground`,children:[(0,f.jsx)(`th`,{className:`border-b py-1`,children:`db`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`keys`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`expires`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`avg ttl`})]})}),(0,f.jsx)(`tbody`,{children:w.map(e=>(0,f.jsxs)(`tr`,{className:`border-b border-border/50`,children:[(0,f.jsx)(`td`,{className:`py-1 font-mono`,children:e.db}),(0,f.jsx)(`td`,{className:`py-1 text-right tabular-nums`,children:e.keys.toLocaleString()}),(0,f.jsx)(`td`,{className:`py-1 text-right tabular-nums`,children:e.expires.toLocaleString()}),(0,f.jsx)(`td`,{className:`py-1 text-right`,children:e.avgTtl?l(e.avgTtl/1e3):`—`})]},e.db))})]})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsxs)(`div`,{className:`mb-2 flex items-center gap-3`,children:[(0,f.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:r(`tools.redis.allFields`)}),(0,f.jsx)(`input`,{className:`h-7 w-56 rounded border bg-background px-2 text-xs`,placeholder:r(`tools.filter`),value:y,onChange:e=>b(e.target.value)})]}),(0,f.jsx)(`table`,{className:`w-full border-collapse text-xs`,children:(0,f.jsx)(`tbody`,{children:T.map(([e,t,n])=>(0,f.jsxs)(`tr`,{className:`border-b border-border/40`,children:[(0,f.jsx)(`td`,{className:`w-28 py-0.5 text-muted-foreground`,children:e}),(0,f.jsx)(`td`,{className:`w-72 py-0.5 font-mono`,children:t}),(0,f.jsx)(`td`,{className:`break-all py-0.5 font-mono`,children:n})]},`${e}.${t}`))})})]})]})})}export{m as ServerInfo};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{i as n,r}from"./C76CctEl.js";import{t as i}from"./BaTnCkNR.js";import{a,n as o,o as s,r as c,t as l}from"./Udlj1Cgf.js";import{t as u}from"./C3aiaYZP.js";var d=e(t(),1),f=r();function p({title:e,rows:t}){return(0,f.jsxs)(`div`,{className:`rounded-lg border bg-card p-3`,children:[(0,f.jsx)(`h3`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:e}),(0,f.jsx)(`dl`,{className:`grid grid-cols-[max-content_1fr] gap-x-4 gap-y-1 text-xs`,children:t.map(([e,t])=>(0,f.jsxs)(`div`,{className:`contents`,children:[(0,f.jsx)(`dt`,{className:`text-muted-foreground`,children:e}),(0,f.jsx)(`dd`,{className:`font-mono`,children:t??`—`})]},e))})]})}function m({connectionId:e,tabId:t}){let{t:r}=n(),m=i(e,t,``),[h,g]=(0,d.useState)(null),[_,v]=(0,d.useState)(null),[y,b]=(0,d.useState)(``),x=(0,d.useCallback)(async()=>{try{g(a(String(await m.read(`INFO`)))),v(null)}catch(e){v(e instanceof Error?e.message:String(e))}},[m]);(0,d.useEffect)(()=>{Promise.resolve().then(()=>x())},[x]);let S=e=>h?c(h,e):void 0,C=h?o(h):null,w=(0,d.useMemo)(()=>Object.entries(h?.keyspace??{}).map(([e,t])=>({db:e,...s(t)})),[h]),T=(0,d.useMemo)(()=>Object.entries(h??{}).flatMap(([e,t])=>Object.entries(t).map(([t,n])=>[e,t,n])).filter(([,e,t])=>!y||e.includes(y)||t.includes(y)),[h,y]);return(0,f.jsx)(u,{title:r(`tools.redis.server`),onRefresh:x,autoRefresh:!0,error:_,onDismissError:()=>v(null),children:h&&(0,f.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,f.jsxs)(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(260px,1fr))] gap-3`,children:[(0,f.jsx)(p,{title:r(`tools.redis.cardServer`),rows:[[`version`,S(`redis_version`)??S(`valkey_version`)],[`mode`,S(`redis_mode`)],[`uptime`,S(`uptime_in_seconds`)?l(Number(S(`uptime_in_seconds`))):void 0],[`os`,S(`os`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardMemory`),rows:[[`used`,S(`used_memory_human`)],[`peak`,S(`used_memory_peak_human`)],[`maxmemory`,S(`maxmemory_human`)===`0B`?r(`tools.redis.unlimited`):S(`maxmemory_human`)],[`policy`,S(`maxmemory_policy`)],[`fragmentation`,S(`mem_fragmentation_ratio`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardActivity`),rows:[[`ops/sec`,S(`instantaneous_ops_per_sec`)],[`hit rate`,C===null?void 0:`${(C*100).toFixed(1)}%`],[`clients`,S(`connected_clients`)],[`blocked`,S(`blocked_clients`)],[`evicted keys`,S(`evicted_keys`)],[`expired keys`,S(`expired_keys`)]]}),(0,f.jsx)(p,{title:r(`tools.redis.cardPersistence`),rows:[[`role`,S(`role`)],[`replicas`,S(`connected_slaves`)],[`last save`,S(`rdb_last_save_time`)?new Date(Number(S(`rdb_last_save_time`))*1e3).toLocaleString():void 0],[`changes since save`,S(`rdb_changes_since_last_save`)],[`AOF`,S(`aof_enabled`)===`1`?`on`:S(`aof_enabled`)===`0`?`off`:void 0]]})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsx)(`h3`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:r(`tools.redis.keyspace`)}),(0,f.jsxs)(`table`,{className:`w-full max-w-2xl border-collapse text-xs`,children:[(0,f.jsx)(`thead`,{children:(0,f.jsxs)(`tr`,{className:`text-left text-muted-foreground`,children:[(0,f.jsx)(`th`,{className:`border-b py-1`,children:`db`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`keys`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`expires`}),(0,f.jsx)(`th`,{className:`border-b py-1 text-right`,children:`avg ttl`})]})}),(0,f.jsx)(`tbody`,{children:w.map(e=>(0,f.jsxs)(`tr`,{className:`border-b border-border/50`,children:[(0,f.jsx)(`td`,{className:`py-1 font-mono`,children:e.db}),(0,f.jsx)(`td`,{className:`py-1 text-right tabular-nums`,children:e.keys.toLocaleString()}),(0,f.jsx)(`td`,{className:`py-1 text-right tabular-nums`,children:e.expires.toLocaleString()}),(0,f.jsx)(`td`,{className:`py-1 text-right`,children:e.avgTtl?l(e.avgTtl/1e3):`—`})]},e.db))})]})]}),(0,f.jsxs)(`section`,{children:[(0,f.jsxs)(`div`,{className:`mb-2 flex items-center gap-3`,children:[(0,f.jsx)(`h3`,{className:`text-xs font-semibold uppercase tracking-wide text-muted-foreground`,children:r(`tools.redis.allFields`)}),(0,f.jsx)(`input`,{className:`h-7 w-56 rounded border bg-background px-2 text-xs`,placeholder:r(`tools.filter`),value:y,onChange:e=>b(e.target.value)})]}),(0,f.jsx)(`table`,{className:`w-full border-collapse text-xs`,children:(0,f.jsx)(`tbody`,{children:T.map(([e,t,n])=>(0,f.jsxs)(`tr`,{className:`border-b border-border/40`,children:[(0,f.jsx)(`td`,{className:`w-28 py-0.5 text-muted-foreground`,children:e}),(0,f.jsx)(`td`,{className:`w-72 py-0.5 font-mono`,children:t}),(0,f.jsx)(`td`,{className:`break-all py-0.5 font-mono`,children:n})]},`${e}.${t}`))})})]})]})})}export{m as ServerInfo};
@@ -1 +1 @@
1
- import{o as e,t}from"./CYz610vE.js";import{a as n,i as r}from"./C9jzAIEJ.js";import{i,n as a,r as o,t as s}from"./eFSiW0Lh.js";import{f as c,t as l}from"./CAd2f6EE.js";import{t as u}from"./Bit0Kfog.js";import{D as d,O as f,a as p,c as ee,d as te,f as m,r as ne,t as re,u as ie}from"./BPLdNS4h.js";import{n as ae}from"./D8_hwGjG.js";import{n as oe}from"./D6SRSRpo.js";function h(e,t,n){return e.map(e=>e.id===t?n(e):e.children.length>0?{...e,children:h(e.children,t,n)}:e)}function se(e,t){for(let n of e){if(n.id===t)return n;let e=se(n.children,t);if(e)return e}return null}function g(e,t,n){let r=new Set(e??[]);if(n)r.add(t);else for(let e of r)(e===t||e.startsWith(`${t}/`))&&r.delete(e);return[...r]}var _=t()(i(e=>({trees:{},selectedNodeId:{},expandedIds:{},setTree:(t,n)=>e(e=>({trees:{...e.trees,[t]:n}})),setChildren:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,!0)},trees:{...e.trees,[t]:h(i,n,e=>({...e,children:r,isLoading:!1,isExpanded:!0,metadata:{...e.metadata,count:r.length}}))}}:e}),setNodeMetadata:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,metadata:{...e.metadata,...r}}))}}:e}),toggleExpanded:(t,n)=>e(e=>{let r=e.trees[t];if(!r)return e;let i=!se(r,n)?.isExpanded;return{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,i)},trees:{...e.trees,[t]:h(r,n,e=>({...e,isExpanded:i}))}}}),setExpanded:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,r)},trees:{...e.trees,[t]:h(i,n,e=>({...e,isExpanded:r}))}}:e}),setSelected:(t,n)=>e(e=>({selectedNodeId:{...e.selectedNodeId,[t]:n}})),setLoading:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,isLoading:r}))}}:e}),removeTree:t=>e(e=>{let n={...e.trees},r={...e.selectedNodeId};return delete n[t],delete r[t],{trees:n,selectedNodeId:r}})}),{name:`planche-schema`,storage:s(),partialize:e=>({selectedNodeId:e.selectedNodeId,expandedIds:e.expandedIds})})),v=32,y=24,ce=931071618,b=931071619,x=(e,t)=>(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0,le=(e,t)=>(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0;function S(e,t,n,r,i=0,a=0){let o=r?x:le;for(let r=t;r<t+n;r+=8)i=i+o(e,r)+a>>>0,a=a+o(e,r+4)+i>>>0;return[i,a]}function ue(e){if(e.byteLength<v)return null;let t=x(e,0);if(t!==ce&&t!==b)return null;let n=t===b,r=x(e,8);if(r<512||r>65536||r&r-1)return null;let i=x(e,16),a=x(e,20),[o,s]=S(e,0,24,n);if(o!==x(e,24)||s!==x(e,28))return null;let c=y+r,l=new Map,u=new Map,d=0,f=0,p=0;for(let t=v;t+c<=e.byteLength&&!(x(e,t+8)!==i||x(e,t+12)!==a||([o,s]=S(e,t,8,n,o,s),[o,s]=S(e,t+y,r,n,o,s),o!==x(e,t+16)||s!==x(e,t+20)));t+=c){let n=x(e,t),r=x(e,t+4);if(n===0)break;if(u.set(n,e.subarray(t+y,t+c)),p++,r>0){for(let[e,t]of u)l.set(e,t);u.clear(),d=r,f+=p,p=0}}return{pageSize:r,dbSizePages:d,pages:l,committedFrames:f}}function C(e,t){let n=ue(t);if(!n||n.committedFrames===0)return{bytes:e,appliedFrames:0};let{pageSize:r,dbSizePages:i,pages:a}=n,o=Math.max(i*r,e.byteLength-e.byteLength%r),s=new Uint8Array(o);s.set(e.subarray(0,Math.min(e.byteLength,o)));for(let[e,t]of a){let n=(e-1)*r;n+r<=o&&s.set(t,n)}return{bytes:i>0?s.subarray(0,i*r):s,appliedFrames:n.committedFrames}}var de=`planche-file-handles`,w=`handles`;function fe(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB unavailable`));return}let n=indexedDB.open(de,1);n.onupgradeneeded=()=>n.result.createObjectStore(w),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function T(e,t){return fe().then(n=>new Promise((r,i)=>{let a=t(n.transaction(w,e).objectStore(w));a.onsuccess=()=>r(a.result),a.onerror=()=>i(a.error)}))}var E=e=>`${e}:wal`;async function D(e,t){try{await T(`readwrite`,n=>n.put(t,e))}catch{}}async function O(e){try{return await T(`readonly`,t=>t.get(e))??null}catch{return null}}async function k(e){try{await T(`readwrite`,t=>t.delete(e))}catch{}}async function A(e,t){let n=e,r={mode:`readwrite`};try{if(n.queryPermission&&await n.queryPermission(r)===`granted`)return!0;if(t&&n.requestPermission)return await n.requestPermission(r)===`granted`}catch{}return!1}var j=e=>`dbcache-meta:${e}`,M=e=>`${e}.sqlite3`;async function pe(e){try{let t=await o.getItem(j(e));if(!t)return null;let n=JSON.parse(t),r=await a.get(M(e));return r?{bytes:new Uint8Array(r),meta:n}:null}catch{return null}}async function me(e,t,n){try{let r=t.slice().buffer;return await a.set(M(e),r)?(await o.setItem(j(e),JSON.stringify(n)),!0):!1}catch(e){return console.warn(`[db-cache] write failed:`,e),!1}}async function he(e,t){try{let n=await o.getItem(j(e));if(!n)return;await o.setItem(j(e),JSON.stringify({...JSON.parse(n),...t}))}catch{}}async function N(e){try{await a.remove(M(e)),await o.removeItem(j(e))}catch{}}var ge=`browser:`;function P(e){return typeof e==`string`&&e.startsWith(`browser:`)}var _e=750;function ve(e){let t=z.get(e);t?.profileId&&(t.flushTimer&&clearTimeout(t.flushTimer),t.flushTimer=setTimeout(()=>{t.flushTimer=null,F(e)},_e))}async function F(e){let t=z.get(e);if(t?.profileId)try{let n=await J(e);await me(t.profileId,n,I(t))}catch(e){console.warn(`[browser-sqlite] cache flush failed:`,e)}}function I(e){return{name:e.source.name,lastModified:e.fileMeta.lastModified,size:e.fileMeta.size,dirty:e.dirty,cachedAt:Date.now()}}var L=u(`browserSqliteVisibilityListener`,()=>({installed:!1}));typeof document<`u`&&!L.installed&&(L.installed=!0,document.addEventListener(`visibilitychange`,()=>{if(document.visibilityState===`hidden`)for(let[e,t]of z)t.flushTimer&&(clearTimeout(t.flushTimer),t.flushTimer=null,F(e))}));function R(e){return e.toLowerCase().endsWith(`-wal`)}var z=u(`browserSqliteDatabases`,()=>new Map),B=u(`browserSqliteModule`,()=>({promise:null}));async function V(){return B.promise||=r(()=>import(`./DD58tsa9.js`).then(e=>e.default()),[]),B.promise}function H(e){let t=z.get(e);if(!t)throw Error(`Browser connection not found: ${e}`);return t}function ye(e){if(!(e.byteLength>=100&&e[0]===83&&e[15]===0)||e[18]!==2&&e[19]!==2)return{bytes:e,wal:!1};let t=new Uint8Array(e);return t[18]=1,t[19]=1,{bytes:t,wal:!0}}var be=`SQLite format 3\0`;function xe(e){if(e.byteLength===0)return null;if(e.byteLength<100)return n.t(`services.sqliteFile.tooSmall`);if(String.fromCharCode(...e.subarray(0,16))!==be)return n.t(`services.sqliteFile.notSqlite`);let t=e[16]<<8|e[17],r=t===1?65536:t;return r<512||r&r-1?n.t(`services.sqliteFile.badPageSize`,{size:r}):null}async function Se(e){let t=xe(e);if(t)throw Error(t);let r=await V(),i=new r.oo1.DB;if(e.byteLength===0)return i;let a=r.wasm.allocFromTypedArray(e),o=r.capi,s=o.SQLITE_DESERIALIZE_FREEONCLOSE??1,c=o.SQLITE_DESERIALIZE_RESIZEABLE??2,l=r.capi.sqlite3_deserialize(i.pointer,`main`,a,e.byteLength,e.byteLength,s|c);i.checkRc(l);try{i.exec(`SELECT count(*) FROM sqlite_master`)}catch(e){throw i.close(),Error(n.t(`services.sqliteFile.unreadable`,{message:e instanceof Error?e.message:String(e)}))}return i}async function U(e){let t=window.showOpenFilePicker;if(t)try{let r=await t({multiple:e.multiple,types:e.sqliteOnly?[{description:n.t(`services.sqliteFile.pickerDescription`),accept:{"application/vnd.sqlite3":[`.sqlite`,`.sqlite3`,`.db`,`.db3`]}}]:void 0,excludeAcceptAllOption:!1});return Promise.all(r.map(async e=>({file:await e.getFile(),handle:e})))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return[];throw e}return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=e.multiple,e.sqliteOnly&&(n.accept=`.sqlite,.sqlite3,.db,.db3,application/vnd.sqlite3`),n.onchange=()=>t(Array.from(n.files??[]).map(e=>({file:e}))),n.oncancel=()=>t([]),n.click()})}async function Ce(){let e=await U({multiple:!0,sqliteOnly:!1}),t=e.find(e=>!R(e.file.name));return t?{main:t,wal:e.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${t.file.name.toLowerCase()}-wal`)??e.find(e=>R(e.file.name))}:null}async function we(){let[e]=await U({multiple:!1,sqliteOnly:!1});return e??null}async function W(e,t,n={}){let{bytes:r,wal:i}=ye(e),a=await Se(r),o=`${ge}${crypto.randomUUID()}`,s={...t,wal:i};return z.set(o,{db:a,source:s,rawBytes:e,profileId:n.profileId,fileMeta:n.fileMeta??{lastModified:0,size:e.byteLength},dirty:n.dirty??!1,flushTimer:null}),{connectionId:o,source:s}}async function G(e,t,n,r={}){let i=e?new Uint8Array(await e.arrayBuffer()):new Uint8Array,a=i,o=!1;n&&(a=C(i,new Uint8Array(await n.file.arrayBuffer())).bytes,o=!0);let s=await W(a,{name:e?.name??`:memory:`,handle:t,walApplied:o,walHandle:n?.handle},{profileId:r.profileId,fileMeta:{lastModified:Math.max(e?.lastModified??0,n?.file.lastModified??0),size:i.byteLength}});return z.get(s.connectionId).rawBytes=i,r.profileId&&F(s.connectionId),s}async function K(e,t,n,r){return await W(t,{name:n.name,handle:r,walApplied:!0},{profileId:e,fileMeta:{lastModified:n.lastModified,size:n.size},dirty:n.dirty})}function Te(e,t){let n=H(e);n.source={...n.source,handle:t}}function Ee(e){return z.get(e)?.dirty??!1}async function De(e,t){let n=H(e),r=C(n.rawBytes,new Uint8Array(await t.file.arrayBuffer())),i=await W(r.bytes,{...n.source,walApplied:!0,walHandle:t.handle},{profileId:n.profileId,fileMeta:n.fileMeta});return z.get(i.connectionId).rawBytes=n.rawBytes,Y(e),n.profileId&&F(i.connectionId),{...i,appliedFrames:r.appliedFrames}}function q(e){return z.get(e)?.source??null}function Oe(e){return e&&e.trim().toLowerCase().replace(/\(.*$/,``).trim()||null}function ke(e){return e==null?`null`:typeof e==`number`?Number.isInteger(e)?`integer`:`real`:typeof e==`bigint`?`bigint`:e instanceof Uint8Array?`blob`:`text`}function Ae(e){return typeof e==`bigint`?Number(e):e instanceof Uint8Array?{type:`Buffer`,data:Array.from(e)}:e}async function je(e,t){let{db:n}=H(e),r=await V(),i=performance.now(),a=H(e),o=Number(r.capi.sqlite3_total_changes(n.pointer)),s=n.prepare(t);try{if(s.columnCount===0){s.step();let c=Number(n.changes()),l=Number(r.capi.sqlite3_last_insert_rowid(n.pointer)),u=/^\s*(BEGIN|COMMIT|END|ROLLBACK|SAVEPOINT|RELEASE)\b/i.test(t);return(c>0||Number(r.capi.sqlite3_total_changes(n.pointer))!==o||!u)&&(a.dirty=!0,ve(e)),{success:!0,fields:[],records:[],affectedRows:c,insertId:l,isResultQuery:!1,execTime:Math.round(performance.now()-i)}}let c=[];for(;s.step();)c.push(s.get([]).map(Ae));let l=s.getColumnNames(),u=r.capi,d=s.pointer;return{success:!0,fields:l.map((e,t)=>{let n=Oe(u.sqlite3_column_decltype(d,t)),r=u.sqlite3_column_table_name(d,t)??``;return{name:e,orgName:u.sqlite3_column_origin_name(d,t)??e,type:n??ke(Me(c,t)),table:r,orgTable:r,db:u.sqlite3_column_database_name(d,t)??``,maxLength:0}}),records:c,affectedRows:0,insertId:0,isResultQuery:!0,execTime:Math.round(performance.now()-i)}}finally{s.finalize()}}function Me(e,t){for(let n of e){let e=n[t];if(e!=null)return e}return null}async function J(e){let{db:t}=H(e);return(await V()).capi.sqlite3_js_db_export(t.pointer)}function Ne(e){let t=z.get(e);if(!t?.source.handle)return null;let{source:r}=t;return r.wal&&!r.walApplied&&!r.walAcknowledged?n.t(`services.sqliteFile.walNotLoaded`):null}function Pe(e){let t=H(e);t.source={...t.source,walAcknowledged:!0}}async function Fe(e){let{source:t,fileMeta:r}=e;if(!t.handle)return;let i=await t.handle.getFile();if(r.lastModified&&(i.lastModified!==r.lastModified||i.size!==r.size))throw Error(n.t(`services.sqliteFile.changedOnDisk`,{name:t.name}));if(t.walHandle)try{let e=await t.walHandle.getFile();if(e.size>0&&!t.walApplied)throw Error(n.t(`services.sqliteFile.walHasChanges`,{name:t.name}));if(e.size>0&&t.walApplied&&e.lastModified>r.lastModified)throw Error(n.t(`services.sqliteFile.walChangedOnDisk`,{name:t.name}))}catch(e){if(e instanceof Error&&!(e instanceof DOMException))throw e}}async function Ie(e){let t=H(e),{source:r}=t,i=Ne(e);if(i)throw Error(i);r.handle&&await Fe(t);let a=await J(e);if(r.handle){if(!await A(r.handle,!0))throw Error(n.t(`services.sqliteFile.writeDenied`,{name:r.name}));let t=await r.handle.createWritable();await t.write(a),await t.close(),r.walHandle&&await(await r.walHandle.createWritable()).close();let i=H(e);i.dirty=!1;try{let e=await r.handle.getFile();i.fileMeta={lastModified:e.lastModified,size:e.size}}catch{i.fileMeta={lastModified:Date.now(),size:a.byteLength}}return i.profileId&&he(i.profileId,{...I(i)}),`in-place`}let o=new Blob([a],{type:`application/vnd.sqlite3`}),s=URL.createObjectURL(o),c=document.createElement(`a`);return c.href=s,c.download=r.name===`:memory:`?`database.sqlite`:r.name,c.click(),URL.revokeObjectURL(s),`download`}function Y(e){let t=z.get(e);t&&(t.flushTimer&&clearTimeout(t.flushTimer),t.db.close(),z.delete(e))}function X(e){return z.get(e)?.profileId}async function Le(e){await k(e),await k(E(e)),await N(e)}async function Re(e,t){let n=await O(e);if(!n)return null;if(!await A(n,t))return`denied`;try{return{handle:n,file:await n.getFile()}}catch(t){if(t instanceof DOMException&&(t.name===`NotFoundError`||t.name===`NotAllowedError`))return await k(e),null;throw t}}async function ze(e,t){let n=await O(E(e));if(!(!n||!await A(n,t)))try{return{file:await n.getFile(),handle:n}}catch{await k(E(e));return}}async function Be(e,t){let n={remembered:!0,fromCache:!1,restoredUnsaved:!1,fileDetached:!1,diskChanged:!1},r=await pe(e),i=await Re(e,t.interactive),a=i&&i!==`denied`?i.handle:void 0,o=i&&i!==`denied`?i.file:null;if(r?.meta.dirty){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta,a),s=o?o.lastModified!==r.meta.lastModified||o.size!==r.meta.size:!1;return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,restoredUnsaved:!0,fileDetached:!a,diskChanged:s}}if(o&&a){let{connectionId:r,source:i}=await G(o,a,await ze(e,t.interactive),{profileId:e});return{...n,connectionId:r,fileName:i.name,wal:i.wal,walApplied:i.walApplied}}if(r){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta);return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,fileDetached:!0}}if(!t.interactive)return null;let s=await Ce();if(!s)return null;let{connectionId:c,source:l}=await G(s.main.file,s.main.handle,s.wal,{profileId:e});return s.main.handle?await D(e,s.main.handle):await k(e),s.wal?.handle?await D(E(e),s.wal.handle):await k(E(e)),{...n,connectionId:c,fileName:l.name,wal:l.wal,walApplied:l.walApplied,remembered:!1}}var Ve=`SQLite format 3\0`;async function He(e){if(e.size===0)return!0;if(e.size<100)return!1;let t=new Uint8Array(await e.slice(0,16).arrayBuffer());return String.fromCharCode(...t)===Ve}async function Ue(e,t){try{let n=await O(e);return n?await n.isSameEntry(t):!1}catch{return!1}}async function We(t){let r=t.find(e=>!R(e.file.name));if(!r)return;if(!await He(r.file))throw Error(n.t(`app.dropNotSqlite`,{name:r.file.name}));let i=t.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${r.file.name.toLowerCase()}-wal`),a=l.getState(),o;for(let e of a.savedConnections)if(!(e.dbms!==`sqlite`||(e.transport??`browser`)!==`browser`||e.sample||e.file!==r.file.name)&&r.handle&&await Ue(e.id,r.handle)){o=e;break}let s=o??{id:crypto.randomUUID(),hostName:r.file.name.replace(/\.(db|sqlite|sqlite3|db3)$/i,``),host:``,user:``,pass:``,charset:`utf8`,port:0,dbms:`sqlite`,transport:`browser`,file:r.file.name,autoConnection:!1,savePassword:!0,authToken:``};e(`sqlite_file_drop`,{reused:!!o,wal:!!i,handle:!!r.handle});let u=a.activeConnections.some(e=>e.id===s.id),d=a.activeConnections.find(e=>e.id===s.id)?.serverConnectionId,{connectionId:f}=await G(r.file,r.handle,i,{profileId:s.id});d&&d!==f&&P(d)&&Y(d),r.handle?await D(s.id,r.handle):await k(s.id),i?.handle?await D(E(s.id),i.handle):await k(E(s.id)),o||a.addSavedConnection(s),a.openConnection({...s,serverConnectionId:f}),a.setPendingReopen(s.id,!1),a.setFileDetached(s.id,!1),_.getState().removeTree(s.id),c(s.id),u||oe.getState().addQueryTab(s.id,{id:`tab-${Date.now()}`,title:n.t(`connection.dialog.firstQueryTab`),query:``,database:``,isExecuting:!1,results:[],error:null,executionTime:null}),ae.getState().setWelcomeVisible(!1)}async function Ge(e,t){let n=await Re(e,!0);return!n||n===`denied`?!1:(Te(t,n.handle),!0)}async function Ke(e){let t=X(e),n=q(e);return n&&!n.handle&&t&&await Ge(t,e),Ie(e)}function qe(e){let t=q(e);return t?t.name===`:memory:`?n.t(`services.save.inMemory`):typeof window<`u`&&!(`showOpenFilePicker`in window)?n.t(`services.save.noFileSystemAccess`):!t.handle&&!X(e)?n.t(`services.save.noWritableHandle`):null:n.t(`services.save.notBrowserSqlite`)}async function Je(e,t){let n=await we();if(!n)return null;let r=await De(t,n);return n.handle&&await D(E(e),n.handle),{connectionId:r.connectionId,appliedFrames:r.appliedFrames}}function Ye(e){if(!P(e))return null;let t=q(e);return t?{wal:t.wal,walApplied:t.walApplied,walAcknowledged:t.walAcknowledged??!1}:null}function Xe(e){return e.dbms===`sqlite`&&e.transport===`browser`?`browser`:`tunnel`}async function Ze(e,t){return ee(e,t)}async function Qe(e,t){return d(e,t)}async function Z(e,t,n){let r=e=>({success:!1,fields:[],records:[],affectedRows:0,insertId:0,isResultQuery:!1,execTime:0,message:e instanceof Error?e.message:String(e)});if(P(e))try{return await je(e,t)}catch(e){return r(e)}let i=Q.get(e)??e;try{return await m(i,t,n)}catch(e){if(!(e instanceof re)||e.status!==404)return r(e);let a=await $e(i);if(!a)return r(e);try{return await m(a,t,n)}catch(e){return r(e)}}}var Q=new Map,$=new Map;function $e(e){let t=$.get(e);if(t)return t;let r=(async()=>{let t=l.getState(),r=t.activeConnections.find(t=>t.serverConnectionId===e||Q.get(t.serverConnectionId??``)===e);if(!r||Xe(r)===`browser`||ne())return null;if(r.serverConnectionId&&r.serverConnectionId!==e&&!Q.has(r.serverConnectionId))return Q.set(e,r.serverConnectionId),r.serverConnectionId;let i=t.resolveCredentials(r),a=i.ssh?.enabled&&i.ssh.auth===`password`&&!i.ssh.password;if(!i.pass&&r.pass===``&&r.dbms!==`sqlite`||a)return null;try{let t=await ee(f(i),i.authToken||void 0);if(!t.success||!t.connectionId)return null;for(let[n,r]of Q)r===e&&Q.set(n,t.connectionId);return Q.set(e,t.connectionId),l.getState().updateServerConnectionId(r.id,t.connectionId),l.getState().setTransactionOpen(r.id,!1),ae.getState().setFooterMessage(n.t(`services.agent.reconnected`,{name:r.hostName||r.host||r.databaseId||r.file||r.id})),t.connectionId}catch{return null}})();return $.set(e,r),r.finally(()=>$.delete(e)),r}async function et(e){if(P(e)){let t=X(e);Y(e),t&&await N(t);return}return ie(e)}function tt(e){return e===`cancelled`?null:e===`abandoned`?n.t(`result.running.abandoned`):e===`agent-outdated`?n.t(`result.running.agentOutdated`):e===`unsupported`?n.t(`result.running.cannotCancel`):n.t(`result.running.cancelFailed`)}async function nt(e){if(P(e))return`unsupported`;let t=l.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;return t?p(t):`failed`}async function rt(e,t,n){if(P(e)){let r=[];for(let i of t){let t=await Z(e,i,n);r.push(t.success?{...t,success:!0}:{success:!1,message:t.message??`Query failed`})}return r}return te(e,t,n)}function it(e){return async(t,r)=>{let i=await Z(e,t,r);if(!i.success)throw Error(i.message??n.t(`services.query.failed`));return i}}export{_ as C,G as S,Qe as _,it as a,P as b,rt as c,Ye as d,Xe as f,Ke as g,Ge as h,Ze as i,Z as l,We as m,tt as n,qe as o,Je as p,Be as r,et as s,nt as t,Le as u,Pe as v,Ee as x,Ne as y};
1
+ import{o as e,t}from"./CyX8oVsa.js";import{a as n,i as r}from"./Cme0nCT7.js";import{i,n as a,r as o,t as s}from"./eFSiW0Lh.js";import{f as c,t as l}from"./iz6RnRcO.js";import{t as u}from"./Bit0Kfog.js";import{D as d,O as f,a as p,c as ee,d as te,f as m,r as ne,t as re,u as ie}from"./zdvaVsTo.js";import{n as ae}from"./BihjBM79.js";import{n as oe}from"./C_qmv4pB.js";function h(e,t,n){return e.map(e=>e.id===t?n(e):e.children.length>0?{...e,children:h(e.children,t,n)}:e)}function se(e,t){for(let n of e){if(n.id===t)return n;let e=se(n.children,t);if(e)return e}return null}function g(e,t,n){let r=new Set(e??[]);if(n)r.add(t);else for(let e of r)(e===t||e.startsWith(`${t}/`))&&r.delete(e);return[...r]}var _=t()(i(e=>({trees:{},selectedNodeId:{},expandedIds:{},setTree:(t,n)=>e(e=>({trees:{...e.trees,[t]:n}})),setChildren:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,!0)},trees:{...e.trees,[t]:h(i,n,e=>({...e,children:r,isLoading:!1,isExpanded:!0,metadata:{...e.metadata,count:r.length}}))}}:e}),setNodeMetadata:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,metadata:{...e.metadata,...r}}))}}:e}),toggleExpanded:(t,n)=>e(e=>{let r=e.trees[t];if(!r)return e;let i=!se(r,n)?.isExpanded;return{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,i)},trees:{...e.trees,[t]:h(r,n,e=>({...e,isExpanded:i}))}}}),setExpanded:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{expandedIds:{...e.expandedIds,[t]:g(e.expandedIds[t],n,r)},trees:{...e.trees,[t]:h(i,n,e=>({...e,isExpanded:r}))}}:e}),setSelected:(t,n)=>e(e=>({selectedNodeId:{...e.selectedNodeId,[t]:n}})),setLoading:(t,n,r)=>e(e=>{let i=e.trees[t];return i?{trees:{...e.trees,[t]:h(i,n,e=>({...e,isLoading:r}))}}:e}),removeTree:t=>e(e=>{let n={...e.trees},r={...e.selectedNodeId};return delete n[t],delete r[t],{trees:n,selectedNodeId:r}})}),{name:`planche-schema`,storage:s(),partialize:e=>({selectedNodeId:e.selectedNodeId,expandedIds:e.expandedIds})})),v=32,y=24,ce=931071618,b=931071619,x=(e,t)=>(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0,le=(e,t)=>(e[t+3]<<24|e[t+2]<<16|e[t+1]<<8|e[t])>>>0;function S(e,t,n,r,i=0,a=0){let o=r?x:le;for(let r=t;r<t+n;r+=8)i=i+o(e,r)+a>>>0,a=a+o(e,r+4)+i>>>0;return[i,a]}function ue(e){if(e.byteLength<v)return null;let t=x(e,0);if(t!==ce&&t!==b)return null;let n=t===b,r=x(e,8);if(r<512||r>65536||r&r-1)return null;let i=x(e,16),a=x(e,20),[o,s]=S(e,0,24,n);if(o!==x(e,24)||s!==x(e,28))return null;let c=y+r,l=new Map,u=new Map,d=0,f=0,p=0;for(let t=v;t+c<=e.byteLength&&!(x(e,t+8)!==i||x(e,t+12)!==a||([o,s]=S(e,t,8,n,o,s),[o,s]=S(e,t+y,r,n,o,s),o!==x(e,t+16)||s!==x(e,t+20)));t+=c){let n=x(e,t),r=x(e,t+4);if(n===0)break;if(u.set(n,e.subarray(t+y,t+c)),p++,r>0){for(let[e,t]of u)l.set(e,t);u.clear(),d=r,f+=p,p=0}}return{pageSize:r,dbSizePages:d,pages:l,committedFrames:f}}function C(e,t){let n=ue(t);if(!n||n.committedFrames===0)return{bytes:e,appliedFrames:0};let{pageSize:r,dbSizePages:i,pages:a}=n,o=Math.max(i*r,e.byteLength-e.byteLength%r),s=new Uint8Array(o);s.set(e.subarray(0,Math.min(e.byteLength,o)));for(let[e,t]of a){let n=(e-1)*r;n+r<=o&&s.set(t,n)}return{bytes:i>0?s.subarray(0,i*r):s,appliedFrames:n.committedFrames}}var de=`planche-file-handles`,w=`handles`;function fe(){return new Promise((e,t)=>{if(typeof indexedDB>`u`){t(Error(`IndexedDB unavailable`));return}let n=indexedDB.open(de,1);n.onupgradeneeded=()=>n.result.createObjectStore(w),n.onsuccess=()=>e(n.result),n.onerror=()=>t(n.error)})}function T(e,t){return fe().then(n=>new Promise((r,i)=>{let a=t(n.transaction(w,e).objectStore(w));a.onsuccess=()=>r(a.result),a.onerror=()=>i(a.error)}))}var E=e=>`${e}:wal`;async function D(e,t){try{await T(`readwrite`,n=>n.put(t,e))}catch{}}async function O(e){try{return await T(`readonly`,t=>t.get(e))??null}catch{return null}}async function k(e){try{await T(`readwrite`,t=>t.delete(e))}catch{}}async function A(e,t){let n=e,r={mode:`readwrite`};try{if(n.queryPermission&&await n.queryPermission(r)===`granted`)return!0;if(t&&n.requestPermission)return await n.requestPermission(r)===`granted`}catch{}return!1}var j=e=>`dbcache-meta:${e}`,M=e=>`${e}.sqlite3`;async function pe(e){try{let t=await o.getItem(j(e));if(!t)return null;let n=JSON.parse(t),r=await a.get(M(e));return r?{bytes:new Uint8Array(r),meta:n}:null}catch{return null}}async function me(e,t,n){try{let r=t.slice().buffer;return await a.set(M(e),r)?(await o.setItem(j(e),JSON.stringify(n)),!0):!1}catch(e){return console.warn(`[db-cache] write failed:`,e),!1}}async function he(e,t){try{let n=await o.getItem(j(e));if(!n)return;await o.setItem(j(e),JSON.stringify({...JSON.parse(n),...t}))}catch{}}async function N(e){try{await a.remove(M(e)),await o.removeItem(j(e))}catch{}}var ge=`browser:`;function P(e){return typeof e==`string`&&e.startsWith(`browser:`)}var _e=750;function ve(e){let t=z.get(e);t?.profileId&&(t.flushTimer&&clearTimeout(t.flushTimer),t.flushTimer=setTimeout(()=>{t.flushTimer=null,F(e)},_e))}async function F(e){let t=z.get(e);if(t?.profileId)try{let n=await J(e);await me(t.profileId,n,I(t))}catch(e){console.warn(`[browser-sqlite] cache flush failed:`,e)}}function I(e){return{name:e.source.name,lastModified:e.fileMeta.lastModified,size:e.fileMeta.size,dirty:e.dirty,cachedAt:Date.now()}}var L=u(`browserSqliteVisibilityListener`,()=>({installed:!1}));typeof document<`u`&&!L.installed&&(L.installed=!0,document.addEventListener(`visibilitychange`,()=>{if(document.visibilityState===`hidden`)for(let[e,t]of z)t.flushTimer&&(clearTimeout(t.flushTimer),t.flushTimer=null,F(e))}));function R(e){return e.toLowerCase().endsWith(`-wal`)}var z=u(`browserSqliteDatabases`,()=>new Map),B=u(`browserSqliteModule`,()=>({promise:null}));async function V(){return B.promise||=r(()=>import(`./DD58tsa9.js`).then(e=>e.default()),[]),B.promise}function H(e){let t=z.get(e);if(!t)throw Error(`Browser connection not found: ${e}`);return t}function ye(e){if(!(e.byteLength>=100&&e[0]===83&&e[15]===0)||e[18]!==2&&e[19]!==2)return{bytes:e,wal:!1};let t=new Uint8Array(e);return t[18]=1,t[19]=1,{bytes:t,wal:!0}}var be=`SQLite format 3\0`;function xe(e){if(e.byteLength===0)return null;if(e.byteLength<100)return n.t(`services.sqliteFile.tooSmall`);if(String.fromCharCode(...e.subarray(0,16))!==be)return n.t(`services.sqliteFile.notSqlite`);let t=e[16]<<8|e[17],r=t===1?65536:t;return r<512||r&r-1?n.t(`services.sqliteFile.badPageSize`,{size:r}):null}async function Se(e){let t=xe(e);if(t)throw Error(t);let r=await V(),i=new r.oo1.DB;if(e.byteLength===0)return i;let a=r.wasm.allocFromTypedArray(e),o=r.capi,s=o.SQLITE_DESERIALIZE_FREEONCLOSE??1,c=o.SQLITE_DESERIALIZE_RESIZEABLE??2,l=r.capi.sqlite3_deserialize(i.pointer,`main`,a,e.byteLength,e.byteLength,s|c);i.checkRc(l);try{i.exec(`SELECT count(*) FROM sqlite_master`)}catch(e){throw i.close(),Error(n.t(`services.sqliteFile.unreadable`,{message:e instanceof Error?e.message:String(e)}))}return i}async function U(e){let t=window.showOpenFilePicker;if(t)try{let r=await t({multiple:e.multiple,types:e.sqliteOnly?[{description:n.t(`services.sqliteFile.pickerDescription`),accept:{"application/vnd.sqlite3":[`.sqlite`,`.sqlite3`,`.db`,`.db3`]}}]:void 0,excludeAcceptAllOption:!1});return Promise.all(r.map(async e=>({file:await e.getFile(),handle:e})))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return[];throw e}return new Promise(t=>{let n=document.createElement(`input`);n.type=`file`,n.multiple=e.multiple,e.sqliteOnly&&(n.accept=`.sqlite,.sqlite3,.db,.db3,application/vnd.sqlite3`),n.onchange=()=>t(Array.from(n.files??[]).map(e=>({file:e}))),n.oncancel=()=>t([]),n.click()})}async function Ce(){let e=await U({multiple:!0,sqliteOnly:!1}),t=e.find(e=>!R(e.file.name));return t?{main:t,wal:e.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${t.file.name.toLowerCase()}-wal`)??e.find(e=>R(e.file.name))}:null}async function we(){let[e]=await U({multiple:!1,sqliteOnly:!1});return e??null}async function W(e,t,n={}){let{bytes:r,wal:i}=ye(e),a=await Se(r),o=`${ge}${crypto.randomUUID()}`,s={...t,wal:i};return z.set(o,{db:a,source:s,rawBytes:e,profileId:n.profileId,fileMeta:n.fileMeta??{lastModified:0,size:e.byteLength},dirty:n.dirty??!1,flushTimer:null}),{connectionId:o,source:s}}async function G(e,t,n,r={}){let i=e?new Uint8Array(await e.arrayBuffer()):new Uint8Array,a=i,o=!1;n&&(a=C(i,new Uint8Array(await n.file.arrayBuffer())).bytes,o=!0);let s=await W(a,{name:e?.name??`:memory:`,handle:t,walApplied:o,walHandle:n?.handle},{profileId:r.profileId,fileMeta:{lastModified:Math.max(e?.lastModified??0,n?.file.lastModified??0),size:i.byteLength}});return z.get(s.connectionId).rawBytes=i,r.profileId&&F(s.connectionId),s}async function K(e,t,n,r){return await W(t,{name:n.name,handle:r,walApplied:!0},{profileId:e,fileMeta:{lastModified:n.lastModified,size:n.size},dirty:n.dirty})}function Te(e,t){let n=H(e);n.source={...n.source,handle:t}}function Ee(e){return z.get(e)?.dirty??!1}async function De(e,t){let n=H(e),r=C(n.rawBytes,new Uint8Array(await t.file.arrayBuffer())),i=await W(r.bytes,{...n.source,walApplied:!0,walHandle:t.handle},{profileId:n.profileId,fileMeta:n.fileMeta});return z.get(i.connectionId).rawBytes=n.rawBytes,Y(e),n.profileId&&F(i.connectionId),{...i,appliedFrames:r.appliedFrames}}function q(e){return z.get(e)?.source??null}function Oe(e){return e&&e.trim().toLowerCase().replace(/\(.*$/,``).trim()||null}function ke(e){return e==null?`null`:typeof e==`number`?Number.isInteger(e)?`integer`:`real`:typeof e==`bigint`?`bigint`:e instanceof Uint8Array?`blob`:`text`}function Ae(e){return typeof e==`bigint`?Number(e):e instanceof Uint8Array?{type:`Buffer`,data:Array.from(e)}:e}async function je(e,t){let{db:n}=H(e),r=await V(),i=performance.now(),a=H(e),o=Number(r.capi.sqlite3_total_changes(n.pointer)),s=n.prepare(t);try{if(s.columnCount===0){s.step();let c=Number(n.changes()),l=Number(r.capi.sqlite3_last_insert_rowid(n.pointer)),u=/^\s*(BEGIN|COMMIT|END|ROLLBACK|SAVEPOINT|RELEASE)\b/i.test(t);return(c>0||Number(r.capi.sqlite3_total_changes(n.pointer))!==o||!u)&&(a.dirty=!0,ve(e)),{success:!0,fields:[],records:[],affectedRows:c,insertId:l,isResultQuery:!1,execTime:Math.round(performance.now()-i)}}let c=[];for(;s.step();)c.push(s.get([]).map(Ae));let l=s.getColumnNames(),u=r.capi,d=s.pointer;return{success:!0,fields:l.map((e,t)=>{let n=Oe(u.sqlite3_column_decltype(d,t)),r=u.sqlite3_column_table_name(d,t)??``;return{name:e,orgName:u.sqlite3_column_origin_name(d,t)??e,type:n??ke(Me(c,t)),table:r,orgTable:r,db:u.sqlite3_column_database_name(d,t)??``,maxLength:0}}),records:c,affectedRows:0,insertId:0,isResultQuery:!0,execTime:Math.round(performance.now()-i)}}finally{s.finalize()}}function Me(e,t){for(let n of e){let e=n[t];if(e!=null)return e}return null}async function J(e){let{db:t}=H(e);return(await V()).capi.sqlite3_js_db_export(t.pointer)}function Ne(e){let t=z.get(e);if(!t?.source.handle)return null;let{source:r}=t;return r.wal&&!r.walApplied&&!r.walAcknowledged?n.t(`services.sqliteFile.walNotLoaded`):null}function Pe(e){let t=H(e);t.source={...t.source,walAcknowledged:!0}}async function Fe(e){let{source:t,fileMeta:r}=e;if(!t.handle)return;let i=await t.handle.getFile();if(r.lastModified&&(i.lastModified!==r.lastModified||i.size!==r.size))throw Error(n.t(`services.sqliteFile.changedOnDisk`,{name:t.name}));if(t.walHandle)try{let e=await t.walHandle.getFile();if(e.size>0&&!t.walApplied)throw Error(n.t(`services.sqliteFile.walHasChanges`,{name:t.name}));if(e.size>0&&t.walApplied&&e.lastModified>r.lastModified)throw Error(n.t(`services.sqliteFile.walChangedOnDisk`,{name:t.name}))}catch(e){if(e instanceof Error&&!(e instanceof DOMException))throw e}}async function Ie(e){let t=H(e),{source:r}=t,i=Ne(e);if(i)throw Error(i);r.handle&&await Fe(t);let a=await J(e);if(r.handle){if(!await A(r.handle,!0))throw Error(n.t(`services.sqliteFile.writeDenied`,{name:r.name}));let t=await r.handle.createWritable();await t.write(a),await t.close(),r.walHandle&&await(await r.walHandle.createWritable()).close();let i=H(e);i.dirty=!1;try{let e=await r.handle.getFile();i.fileMeta={lastModified:e.lastModified,size:e.size}}catch{i.fileMeta={lastModified:Date.now(),size:a.byteLength}}return i.profileId&&he(i.profileId,{...I(i)}),`in-place`}let o=new Blob([a],{type:`application/vnd.sqlite3`}),s=URL.createObjectURL(o),c=document.createElement(`a`);return c.href=s,c.download=r.name===`:memory:`?`database.sqlite`:r.name,c.click(),URL.revokeObjectURL(s),`download`}function Y(e){let t=z.get(e);t&&(t.flushTimer&&clearTimeout(t.flushTimer),t.db.close(),z.delete(e))}function X(e){return z.get(e)?.profileId}async function Le(e){await k(e),await k(E(e)),await N(e)}async function Re(e,t){let n=await O(e);if(!n)return null;if(!await A(n,t))return`denied`;try{return{handle:n,file:await n.getFile()}}catch(t){if(t instanceof DOMException&&(t.name===`NotFoundError`||t.name===`NotAllowedError`))return await k(e),null;throw t}}async function ze(e,t){let n=await O(E(e));if(!(!n||!await A(n,t)))try{return{file:await n.getFile(),handle:n}}catch{await k(E(e));return}}async function Be(e,t){let n={remembered:!0,fromCache:!1,restoredUnsaved:!1,fileDetached:!1,diskChanged:!1},r=await pe(e),i=await Re(e,t.interactive),a=i&&i!==`denied`?i.handle:void 0,o=i&&i!==`denied`?i.file:null;if(r?.meta.dirty){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta,a),s=o?o.lastModified!==r.meta.lastModified||o.size!==r.meta.size:!1;return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,restoredUnsaved:!0,fileDetached:!a,diskChanged:s}}if(o&&a){let{connectionId:r,source:i}=await G(o,a,await ze(e,t.interactive),{profileId:e});return{...n,connectionId:r,fileName:i.name,wal:i.wal,walApplied:i.walApplied}}if(r){let{connectionId:t,source:i}=await K(e,r.bytes,r.meta);return{...n,connectionId:t,fileName:i.name,wal:i.wal,walApplied:i.walApplied,fromCache:!0,fileDetached:!0}}if(!t.interactive)return null;let s=await Ce();if(!s)return null;let{connectionId:c,source:l}=await G(s.main.file,s.main.handle,s.wal,{profileId:e});return s.main.handle?await D(e,s.main.handle):await k(e),s.wal?.handle?await D(E(e),s.wal.handle):await k(E(e)),{...n,connectionId:c,fileName:l.name,wal:l.wal,walApplied:l.walApplied,remembered:!1}}var Ve=`SQLite format 3\0`;async function He(e){if(e.size===0)return!0;if(e.size<100)return!1;let t=new Uint8Array(await e.slice(0,16).arrayBuffer());return String.fromCharCode(...t)===Ve}async function Ue(e,t){try{let n=await O(e);return n?await n.isSameEntry(t):!1}catch{return!1}}async function We(t){let r=t.find(e=>!R(e.file.name));if(!r)return;if(!await He(r.file))throw Error(n.t(`app.dropNotSqlite`,{name:r.file.name}));let i=t.find(e=>R(e.file.name)&&e.file.name.toLowerCase()===`${r.file.name.toLowerCase()}-wal`),a=l.getState(),o;for(let e of a.savedConnections)if(!(e.dbms!==`sqlite`||(e.transport??`browser`)!==`browser`||e.sample||e.file!==r.file.name)&&r.handle&&await Ue(e.id,r.handle)){o=e;break}let s=o??{id:crypto.randomUUID(),hostName:r.file.name.replace(/\.(db|sqlite|sqlite3|db3)$/i,``),host:``,user:``,pass:``,charset:`utf8`,port:0,dbms:`sqlite`,transport:`browser`,file:r.file.name,autoConnection:!1,savePassword:!0,authToken:``};e(`sqlite_file_drop`,{reused:!!o,wal:!!i,handle:!!r.handle});let u=a.activeConnections.some(e=>e.id===s.id),d=a.activeConnections.find(e=>e.id===s.id)?.serverConnectionId,{connectionId:f}=await G(r.file,r.handle,i,{profileId:s.id});d&&d!==f&&P(d)&&Y(d),r.handle?await D(s.id,r.handle):await k(s.id),i?.handle?await D(E(s.id),i.handle):await k(E(s.id)),o||a.addSavedConnection(s),a.openConnection({...s,serverConnectionId:f}),a.setPendingReopen(s.id,!1),a.setFileDetached(s.id,!1),_.getState().removeTree(s.id),c(s.id),u||oe.getState().addQueryTab(s.id,{id:`tab-${Date.now()}`,title:n.t(`connection.dialog.firstQueryTab`),query:``,database:``,isExecuting:!1,results:[],error:null,executionTime:null}),ae.getState().setWelcomeVisible(!1)}async function Ge(e,t){let n=await Re(e,!0);return!n||n===`denied`?!1:(Te(t,n.handle),!0)}async function Ke(e){let t=X(e),n=q(e);return n&&!n.handle&&t&&await Ge(t,e),Ie(e)}function qe(e){let t=q(e);return t?t.name===`:memory:`?n.t(`services.save.inMemory`):typeof window<`u`&&!(`showOpenFilePicker`in window)?n.t(`services.save.noFileSystemAccess`):!t.handle&&!X(e)?n.t(`services.save.noWritableHandle`):null:n.t(`services.save.notBrowserSqlite`)}async function Je(e,t){let n=await we();if(!n)return null;let r=await De(t,n);return n.handle&&await D(E(e),n.handle),{connectionId:r.connectionId,appliedFrames:r.appliedFrames}}function Ye(e){if(!P(e))return null;let t=q(e);return t?{wal:t.wal,walApplied:t.walApplied,walAcknowledged:t.walAcknowledged??!1}:null}function Xe(e){return e.dbms===`sqlite`&&e.transport===`browser`?`browser`:`tunnel`}async function Ze(e,t){return ee(e,t)}async function Qe(e,t){return d(e,t)}async function Z(e,t,n){let r=e=>({success:!1,fields:[],records:[],affectedRows:0,insertId:0,isResultQuery:!1,execTime:0,message:e instanceof Error?e.message:String(e)});if(P(e))try{return await je(e,t)}catch(e){return r(e)}let i=Q.get(e)??e;try{return await m(i,t,n)}catch(e){if(!(e instanceof re)||e.status!==404)return r(e);let a=await $e(i);if(!a)return r(e);try{return await m(a,t,n)}catch(e){return r(e)}}}var Q=new Map,$=new Map;function $e(e){let t=$.get(e);if(t)return t;let r=(async()=>{let t=l.getState(),r=t.activeConnections.find(t=>t.serverConnectionId===e||Q.get(t.serverConnectionId??``)===e);if(!r||Xe(r)===`browser`||ne())return null;if(r.serverConnectionId&&r.serverConnectionId!==e&&!Q.has(r.serverConnectionId))return Q.set(e,r.serverConnectionId),r.serverConnectionId;let i=t.resolveCredentials(r),a=i.ssh?.enabled&&i.ssh.auth===`password`&&!i.ssh.password;if(!i.pass&&r.pass===``&&r.dbms!==`sqlite`||a)return null;try{let t=await ee(f(i),i.authToken||void 0);if(!t.success||!t.connectionId)return null;for(let[n,r]of Q)r===e&&Q.set(n,t.connectionId);return Q.set(e,t.connectionId),l.getState().updateServerConnectionId(r.id,t.connectionId),l.getState().setTransactionOpen(r.id,!1),ae.getState().setFooterMessage(n.t(`services.agent.reconnected`,{name:r.hostName||r.host||r.databaseId||r.file||r.id})),t.connectionId}catch{return null}})();return $.set(e,r),r.finally(()=>$.delete(e)),r}async function et(e){if(P(e)){let t=X(e);Y(e),t&&await N(t);return}return ie(e)}function tt(e){return e===`cancelled`?null:e===`abandoned`?n.t(`result.running.abandoned`):e===`agent-outdated`?n.t(`result.running.agentOutdated`):e===`unsupported`?n.t(`result.running.cannotCancel`):n.t(`result.running.cancelFailed`)}async function nt(e){if(P(e))return`unsupported`;let t=l.getState().activeConnections.find(t=>t.id===e)?.serverConnectionId;return t?p(t):`failed`}async function rt(e,t,n){if(P(e)){let r=[];for(let i of t){let t=await Z(e,i,n);r.push(t.success?{...t,success:!0}:{success:!1,message:t.message??`Query failed`})}return r}return te(e,t,n)}function it(e){return async(t,r)=>{let i=await Z(e,t,r);if(!i.success)throw Error(i.message??n.t(`services.query.failed`));return i}}export{_ as C,G as S,Qe as _,it as a,P as b,rt as c,Ye as d,Xe as f,Ke as g,Ge as h,Ze as i,Z as l,We as m,tt as n,qe as o,Je as p,Be as r,et as s,nt as t,Le as u,Pe as v,Ee as x,Ne as y};
@@ -1 +1 @@
1
- import{r as e}from"./CYz610vE.js";import{t}from"./CiL8zoYm.js";import{r as n,t as r}from"./C9jzAIEJ.js";import{i,r as a}from"./Cu_sGzNJ.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./DzRyVlxz.js";import{a as f,i as p,n as m,r as h,t as g}from"./B3qo2BmL.js";import{n as _}from"./DU-Eln5x.js";import{n as v}from"./D8_hwGjG.js";import{t as y}from"./BNB2k8On.js";var b=a();function x(){let a=v(e=>e.activeDialog),x=v(e=>e.closeDialog),S=_(),{t:C}=i();return(0,b.jsx)(d,{open:a===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(c,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(o,{children:[(0,b.jsx)(l,{children:C(`settings.general.title`)}),(0,b.jsx)(u,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(g,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(p,{children:(0,b.jsx)(f,{})}),(0,b.jsxs)(m,{children:[(0,b.jsx)(h,{value:`auto`,children:C(`language.auto`,{name:C(`language.${n()}`)})}),r.map(e=>(0,b.jsx)(h,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(s,{children:(0,b.jsx)(t,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
1
+ import{r as e}from"./CyX8oVsa.js";import{t}from"./Dya0zxo6.js";import{r as n,t as r}from"./Cme0nCT7.js";import{i,r as a}from"./C76CctEl.js";import{a as o,i as s,n as c,o as l,r as u,t as d}from"./kTwcxyaO.js";import{a as f,i as p,n as m,r as h,t as g}from"./34iJa-68.js";import{n as _}from"./DOy06rIE.js";import{n as v}from"./BihjBM79.js";import{t as y}from"./MeOkctzz.js";var b=a();function x(){let a=v(e=>e.activeDialog),x=v(e=>e.closeDialog),S=_(),{t:C}=i();return(0,b.jsx)(d,{open:a===`general-settings`,onOpenChange:e=>{e||x()},children:(0,b.jsxs)(c,{className:`sm:max-w-[560px]`,children:[(0,b.jsxs)(o,{children:[(0,b.jsx)(l,{children:C(`settings.general.title`)}),(0,b.jsx)(u,{children:C(`settings.general.description`)})]}),(0,b.jsxs)(`div`,{className:`grid gap-2`,children:[(0,b.jsx)(y,{id:`s-history`,checked:S.persistQueryHistory,onChange:e=>S.setPersistQueryHistory(e),label:C(`settings.persistHistory`),hint:C(`settings.persistHistoryHint`)}),(0,b.jsxs)(`div`,{className:`grid grid-cols-[1fr_200px] items-center gap-3 rounded-md border p-3`,children:[(0,b.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,b.jsx)(`span`,{className:`text-sm font-medium`,children:C(`settings.language`)}),(0,b.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:C(`settings.languageHint`)})]}),(0,b.jsxs)(g,{value:S.locale,onValueChange:e=>S.setLocale(e),children:[(0,b.jsx)(p,{children:(0,b.jsx)(f,{})}),(0,b.jsxs)(m,{children:[(0,b.jsx)(h,{value:`auto`,children:C(`language.auto`,{name:C(`language.${n()}`)})}),r.map(e=>(0,b.jsx)(h,{value:e,children:C(`language.${e}`)},e))]})]})]}),(0,b.jsx)(y,{id:`s-analytics`,checked:S.analyticsEnabled,onChange:S.setAnalyticsEnabled,label:C(`settings.analytics`),hint:e()?C(`settings.analyticsHint`):C(`settings.analyticsUnavailableHint`)})]}),(0,b.jsx)(s,{children:(0,b.jsx)(t,{onClick:x,children:C(`settings.done`)})})]})})}export{x as GeneralSettingsDialog};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CAd2f6EE.js";import{a as r,c as i}from"./BghfQrAj.js";import{a}from"./DpPKm22O.js";var o=e(t(),1);function s(e,t,n){return c(e,t,n.database)}function c(e,t,s){let c=n(t=>t.activeConnections.find(t=>t.id===e)?.serverConnectionId??null),l=n(t=>t.activeConnections.find(t=>t.id===e)?.readOnly??!1),u=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await r(c)(e,(t??s)||void 0)).reply},[c,s]),d=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await i(c,e,(t??s)||void 0)).map(e=>e.success?e.reply:Error(e.message))},[c,s]),f=(0,o.useCallback)(async e=>{try{return await u(e)}catch{return null}},[u]),p=(0,o.useCallback)(async(n,r={})=>{let i=await a(e,n,{database:r.database??s,tabId:t,skipDestructiveConfirm:r.confirmed,skipHistory:r.skipHistory});return i.rows[0]?Object.values(i.rows[0])[0]:null},[e,t,s]);return(0,o.useMemo)(()=>({connected:c!==null,readOnly:l,read:u,tryRead:f,readBatch:d,write:p}),[c,l,u,f,d,p])}export{s as n,c as t};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./iz6RnRcO.js";import{a as r,c as i}from"./BVZGLNq_.js";import{a}from"./CZRhmV_L.js";var o=e(t(),1);function s(e,t,n){return c(e,t,n.database)}function c(e,t,s){let c=n(t=>t.activeConnections.find(t=>t.id===e)?.serverConnectionId??null),l=n(t=>t.activeConnections.find(t=>t.id===e)?.readOnly??!1),u=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await r(c)(e,(t??s)||void 0)).reply},[c,s]),d=(0,o.useCallback)(async(e,t)=>{if(!c)throw Error(`Not connected`);return(await i(c,e,(t??s)||void 0)).map(e=>e.success?e.reply:Error(e.message))},[c,s]),f=(0,o.useCallback)(async e=>{try{return await u(e)}catch{return null}},[u]),p=(0,o.useCallback)(async(n,r={})=>{let i=await a(e,n,{database:r.database??s,tabId:t,skipDestructiveConfirm:r.confirmed,skipHistory:r.skipHistory});return i.rows[0]?Object.values(i.rows[0])[0]:null},[e,t,s]);return(0,o.useMemo)(()=>({connected:c!==null,readOnly:l,read:u,tryRead:f,readBatch:d,write:p}),[c,l,u,f,d,p])}export{s as n,c as t};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./DzRyVlxz.js";import{n as d}from"./D8_hwGjG.js";import{B as f,Ht as p,I as m,L as h,R as g,c as _,l as v,ot as y}from"./B_zu4Zim.js";import{t as b}from"./CtvJotUV.js";var x=e(t(),1);function S(){let e=f(e=>e.status.state===`valid`);return!g()||e}var C=i(),w={offline:`sync.offline`,server:`sync.serverError`,unauthorized:`sync.serverError`,conflict:`sync.serverError`,"bad-passphrase":`sync.wrongPassphrase`,malformed:`sync.wrongPassphrase`,unsupported:`sync.serverError`};function T(){let e=d(e=>e.activeDialog),t=d(e=>e.closeDialog),{phase:i,user:f,busy:g,error:T,lastSyncedAt:E,vault:D,refresh:O,createVault:k,unlock:A,push:j,signOut:M,forgetVault:N,closeAccount:P,setError:F}=m(),{t:I}=r(),L=S(),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(!1),[W,G]=(0,x.useState)(!1);(0,x.useEffect)(()=>{O()},[O]);let K=R.length>0&&R.length<10,q=B.length>0&&R!==B,J=R.length>=10&&R===B,Y=T?I(w[T]??`sync.serverError`):null,X=D?Object.keys(D.profiles).length:0,Z=()=>{z(``),V(``),F(null)};return(0,C.jsx)(u,{open:e===`sync`,onOpenChange:e=>{e||t()},children:(0,C.jsxs)(s,{className:`max-h-[85vh] overflow-y-auto sm:max-w-[560px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,C.jsxs)(a,{children:[(0,C.jsx)(c,{children:I(`sync.title`)}),(0,C.jsxs)(l,{children:[I(`sync.description`),f&&(0,C.jsx)(`span`,{className:`mt-1 block text-xs`,children:I(`sync.signedInAs`,{email:f.email??f.id})})]})]}),(0,C.jsxs)(`div`,{className:`grid gap-3 text-sm`,children:[(0,C.jsx)(`p`,{className:`rounded-md border bg-muted/40 p-3 text-xs text-muted-foreground`,children:I(`sync.stored`)}),i===`unavailable`&&(0,C.jsx)(`p`,{className:`rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-xs text-amber-600 dark:text-amber-400`,children:y()?I(`sync.unavailable`):I(`sync.notDeployed`)}),i===`signed-out`&&(0,C.jsxs)(n,{onClick:()=>{window.location.href=h(`github`,window.location.href)},children:[(0,C.jsx)(p,{className:`size-4`}),I(`sync.signIn`)]}),f&&!L&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.needsPro`)}),(0,C.jsx)(b,{highlight:`sync`})]}),L&&i===`no-vault`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.createTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.createHint`)}),(0,C.jsx)(_,{htmlFor:`sync-pass`,children:I(`sync.passphrase`)}),(0,C.jsx)(v,{id:`sync-pass`,type:`password`,autoComplete:`new-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(_,{htmlFor:`sync-confirm`,children:I(`sync.confirm`)}),(0,C.jsx)(v,{id:`sync-confirm`,type:`password`,autoComplete:`new-password`,value:B,onChange:e=>{V(e.target.value),F(null)}}),K&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.tooShort`,{count:10})}),q&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.mismatch`)}),(0,C.jsx)(n,{disabled:!J||g,onClick:()=>{k(R).then(Z)},children:I(`sync.enable`)})]}),L&&i===`locked`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.unlockTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.unlockHint`)}),(0,C.jsx)(_,{htmlFor:`sync-unlock`,children:I(`sync.passphrase`)}),(0,C.jsx)(v,{id:`sync-unlock`,type:`password`,autoComplete:`current-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(n,{disabled:!R||g,onClick:()=>{A(R).then(Z)},children:I(`sync.unlock`)})]}),L&&i===`ready`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[E?I(`sync.lastSynced`,{when:new Date(E).toLocaleString()}):I(`sync.neverSynced`),` · `,I(`sync.profiles`,{count:X})]}),(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,C.jsx)(n,{variant:`secondary`,disabled:g,onClick:()=>{U(!1),j()},children:I(`sync.syncNow`)}),(0,C.jsx)(n,{variant:`ghost`,disabled:g,onClick:()=>{m.getState().lock(),Z()},children:I(`sync.changePassphrase`)})]}),H?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteVaultConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(n,{variant:`destructive`,disabled:g,onClick:()=>{N().then(()=>U(!1))},children:I(`sync.deleteVault`)}),(0,C.jsx)(n,{variant:`ghost`,onClick:()=>U(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(n,{variant:`ghost`,className:`justify-start px-0 text-destructive`,onClick:()=>U(!0),children:I(`sync.deleteVault`)})]}),f&&(W?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteAccountConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(n,{variant:`destructive`,disabled:g,onClick:()=>{P().then(()=>G(!1))},children:I(`sync.deleteAccount`)}),(0,C.jsx)(n,{variant:`ghost`,onClick:()=>G(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(`button`,{type:`button`,onClick:()=>G(!0),className:`w-fit rounded-sm text-xs text-muted-foreground underline underline-offset-2 hover:text-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:I(`sync.deleteAccount`)})),g&&(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.working`)}),Y&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:Y})]}),(0,C.jsxs)(o,{children:[f&&(0,C.jsx)(n,{variant:`ghost`,disabled:g,onClick:()=>{M().then(Z)},children:I(`sync.signOut`)}),(0,C.jsx)(n,{onClick:t,children:I(`settings.done`)})]})]})})}export{T as SyncDialog};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./Dya0zxo6.js";import{i as r,r as i}from"./C76CctEl.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./kTwcxyaO.js";import{n as d}from"./BihjBM79.js";import{B as f,Ht as p,I as m,L as h,R as g,c as _,l as v,ot as y}from"./D4DxtYTA.js";import{t as b}from"./AR0v7sKO.js";var x=e(t(),1);function S(){let e=f(e=>e.status.state===`valid`);return!g()||e}var C=i(),w={offline:`sync.offline`,server:`sync.serverError`,unauthorized:`sync.serverError`,conflict:`sync.serverError`,"bad-passphrase":`sync.wrongPassphrase`,malformed:`sync.wrongPassphrase`,unsupported:`sync.serverError`};function T(){let e=d(e=>e.activeDialog),t=d(e=>e.closeDialog),{phase:i,user:f,busy:g,error:T,lastSyncedAt:E,vault:D,refresh:O,createVault:k,unlock:A,push:j,signOut:M,forgetVault:N,closeAccount:P,setError:F}=m(),{t:I}=r(),L=S(),[R,z]=(0,x.useState)(``),[B,V]=(0,x.useState)(``),[H,U]=(0,x.useState)(!1),[W,G]=(0,x.useState)(!1);(0,x.useEffect)(()=>{O()},[O]);let K=R.length>0&&R.length<10,q=B.length>0&&R!==B,J=R.length>=10&&R===B,Y=T?I(w[T]??`sync.serverError`):null,X=D?Object.keys(D.profiles).length:0,Z=()=>{z(``),V(``),F(null)};return(0,C.jsx)(u,{open:e===`sync`,onOpenChange:e=>{e||t()},children:(0,C.jsxs)(s,{className:`max-h-[85vh] overflow-y-auto sm:max-w-[560px]`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,C.jsxs)(a,{children:[(0,C.jsx)(c,{children:I(`sync.title`)}),(0,C.jsxs)(l,{children:[I(`sync.description`),f&&(0,C.jsx)(`span`,{className:`mt-1 block text-xs`,children:I(`sync.signedInAs`,{email:f.email??f.id})})]})]}),(0,C.jsxs)(`div`,{className:`grid gap-3 text-sm`,children:[(0,C.jsx)(`p`,{className:`rounded-md border bg-muted/40 p-3 text-xs text-muted-foreground`,children:I(`sync.stored`)}),i===`unavailable`&&(0,C.jsx)(`p`,{className:`rounded-md border border-amber-500/40 bg-amber-500/5 p-3 text-xs text-amber-600 dark:text-amber-400`,children:y()?I(`sync.unavailable`):I(`sync.notDeployed`)}),i===`signed-out`&&(0,C.jsxs)(n,{onClick:()=>{window.location.href=h(`github`,window.location.href)},children:[(0,C.jsx)(p,{className:`size-4`}),I(`sync.signIn`)]}),f&&!L&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.needsPro`)}),(0,C.jsx)(b,{highlight:`sync`})]}),L&&i===`no-vault`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.createTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.createHint`)}),(0,C.jsx)(_,{htmlFor:`sync-pass`,children:I(`sync.passphrase`)}),(0,C.jsx)(v,{id:`sync-pass`,type:`password`,autoComplete:`new-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(_,{htmlFor:`sync-confirm`,children:I(`sync.confirm`)}),(0,C.jsx)(v,{id:`sync-confirm`,type:`password`,autoComplete:`new-password`,value:B,onChange:e=>{V(e.target.value),F(null)}}),K&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.tooShort`,{count:10})}),q&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:I(`sync.mismatch`)}),(0,C.jsx)(n,{disabled:!J||g,onClick:()=>{k(R).then(Z)},children:I(`sync.enable`)})]}),L&&i===`locked`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:I(`sync.unlockTitle`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.unlockHint`)}),(0,C.jsx)(_,{htmlFor:`sync-unlock`,children:I(`sync.passphrase`)}),(0,C.jsx)(v,{id:`sync-unlock`,type:`password`,autoComplete:`current-password`,value:R,onChange:e=>{z(e.target.value),F(null)}}),(0,C.jsx)(n,{disabled:!R||g,onClick:()=>{A(R).then(Z)},children:I(`sync.unlock`)})]}),L&&i===`ready`&&(0,C.jsxs)(`div`,{className:`grid gap-2`,children:[(0,C.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[E?I(`sync.lastSynced`,{when:new Date(E).toLocaleString()}):I(`sync.neverSynced`),` · `,I(`sync.profiles`,{count:X})]}),(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,C.jsx)(n,{variant:`secondary`,disabled:g,onClick:()=>{U(!1),j()},children:I(`sync.syncNow`)}),(0,C.jsx)(n,{variant:`ghost`,disabled:g,onClick:()=>{m.getState().lock(),Z()},children:I(`sync.changePassphrase`)})]}),H?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteVaultConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(n,{variant:`destructive`,disabled:g,onClick:()=>{N().then(()=>U(!1))},children:I(`sync.deleteVault`)}),(0,C.jsx)(n,{variant:`ghost`,onClick:()=>U(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(n,{variant:`ghost`,className:`justify-start px-0 text-destructive`,onClick:()=>U(!0),children:I(`sync.deleteVault`)})]}),f&&(W?(0,C.jsxs)(`div`,{className:`rounded-md border border-destructive/40 bg-destructive/5 p-3`,children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs`,children:I(`sync.deleteAccountConfirm`)}),(0,C.jsxs)(`div`,{className:`flex gap-2`,children:[(0,C.jsx)(n,{variant:`destructive`,disabled:g,onClick:()=>{P().then(()=>G(!1))},children:I(`sync.deleteAccount`)}),(0,C.jsx)(n,{variant:`ghost`,onClick:()=>G(!1),children:I(`settings.done`)})]})]}):(0,C.jsx)(`button`,{type:`button`,onClick:()=>G(!0),className:`w-fit rounded-sm text-xs text-muted-foreground underline underline-offset-2 hover:text-destructive focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,children:I(`sync.deleteAccount`)})),g&&(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:I(`sync.working`)}),Y&&(0,C.jsx)(`p`,{className:`text-xs text-destructive`,children:Y})]}),(0,C.jsxs)(o,{children:[f&&(0,C.jsx)(n,{variant:`ghost`,disabled:g,onClick:()=>{M().then(Z)},children:I(`sync.signOut`)}),(0,C.jsx)(n,{onClick:t,children:I(`settings.done`)})]})]})})}export{T as SyncDialog};
@@ -1 +1 @@
1
- import{o as e,t}from"./CYz610vE.js";var n=t()((t,n)=>({activeDialog:null,destructiveConfirm:null,dryRun:null,message:null,confirm:null,prompt:null,dialogProps:void 0,footerMessage:``,pendingGridEdits:{},transportVersion:0,isLoading:!1,welcomeVisible:!1,setWelcomeVisible:e=>t({welcomeVisible:e}),progress:0,contextMenu:{visible:!1,x:0,y:0,nodeType:null,nodeId:null},openDialog:(n,...r)=>{e(`dialog_open`,{dialog:n}),t({activeDialog:n,dialogProps:r[0]})},closeDialog:()=>t({activeDialog:null,dialogProps:void 0}),requestDestructiveConfirm:e=>{let r=n().destructiveConfirm;return r?.resolve(!1),new Promise(n=>{t({destructiveConfirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDestructiveConfirm:e=>{let r=n().destructiveConfirm;r&&(t({destructiveConfirm:null}),r.resolve(e))},requestDryRun:e=>{let r=n().dryRun;return r?.resolve(!1),new Promise(n=>{t({dryRun:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDryRun:e=>{let r=n().dryRun;r&&(t({dryRun:null}),r.resolve(e))},showMessage:e=>{let r=n().message;return r?.resolve(),new Promise(n=>{t({message:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveMessage:()=>{let e=n().message;e&&(t({message:null}),e.resolve())},requestConfirm:e=>{let r=n().confirm;return r?.resolve(!1),new Promise(n=>{t({confirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveConfirm:e=>{let r=n().confirm;r&&(t({confirm:null}),r.resolve(e))},requestPrompt:e=>{let r=n().prompt;return r?.resolve(null),new Promise(n=>{t({prompt:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolvePrompt:e=>{let r=n().prompt;r&&(t({prompt:null}),r.resolve(e))},setFooterMessage:e=>t({footerMessage:e}),setPendingGridEdits:(e,n)=>t(t=>{if(!!t.pendingGridEdits[e]===n)return{};let r={...t.pendingGridEdits};return n?r[e]=!0:delete r[e],{pendingGridEdits:r}}),bumpTransportVersion:()=>t(e=>({transportVersion:e.transportVersion+1})),setLoading:e=>t({isLoading:e}),setProgress:e=>t({progress:e}),showContextMenu:(e,n,r,i)=>t({contextMenu:{visible:!0,x:e,y:n,nodeType:r,nodeId:i}}),hideContextMenu:()=>t(e=>({contextMenu:{...e.contextMenu,visible:!1}}))}));function r(...e){return n(t=>t.activeDialog&&e.includes(t.activeDialog)?t.dialogProps:void 0)}export{n,r as t};
1
+ import{o as e,t}from"./CyX8oVsa.js";var n=t()((t,n)=>({activeDialog:null,destructiveConfirm:null,dryRun:null,message:null,confirm:null,prompt:null,dialogProps:void 0,footerMessage:``,pendingGridEdits:{},transportVersion:0,isLoading:!1,welcomeVisible:!1,setWelcomeVisible:e=>t({welcomeVisible:e}),progress:0,contextMenu:{visible:!1,x:0,y:0,nodeType:null,nodeId:null},openDialog:(n,...r)=>{e(`dialog_open`,{dialog:n}),t({activeDialog:n,dialogProps:r[0]})},closeDialog:()=>t({activeDialog:null,dialogProps:void 0}),requestDestructiveConfirm:e=>{let r=n().destructiveConfirm;return r?.resolve(!1),new Promise(n=>{t({destructiveConfirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDestructiveConfirm:e=>{let r=n().destructiveConfirm;r&&(t({destructiveConfirm:null}),r.resolve(e))},requestDryRun:e=>{let r=n().dryRun;return r?.resolve(!1),new Promise(n=>{t({dryRun:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveDryRun:e=>{let r=n().dryRun;r&&(t({dryRun:null}),r.resolve(e))},showMessage:e=>{let r=n().message;return r?.resolve(),new Promise(n=>{t({message:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveMessage:()=>{let e=n().message;e&&(t({message:null}),e.resolve())},requestConfirm:e=>{let r=n().confirm;return r?.resolve(!1),new Promise(n=>{t({confirm:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolveConfirm:e=>{let r=n().confirm;r&&(t({confirm:null}),r.resolve(e))},requestPrompt:e=>{let r=n().prompt;return r?.resolve(null),new Promise(n=>{t({prompt:{id:(r?.id??0)+1,request:e,resolve:n}})})},resolvePrompt:e=>{let r=n().prompt;r&&(t({prompt:null}),r.resolve(e))},setFooterMessage:e=>t({footerMessage:e}),setPendingGridEdits:(e,n)=>t(t=>{if(!!t.pendingGridEdits[e]===n)return{};let r={...t.pendingGridEdits};return n?r[e]=!0:delete r[e],{pendingGridEdits:r}}),bumpTransportVersion:()=>t(e=>({transportVersion:e.transportVersion+1})),setLoading:e=>t({isLoading:e}),setProgress:e=>t({progress:e}),showContextMenu:(e,n,r,i)=>t({contextMenu:{visible:!0,x:e,y:n,nodeType:r,nodeId:i}}),hideContextMenu:()=>t(e=>({contextMenu:{...e.contextMenu,visible:!1}}))}));function r(...e){return n(t=>t.activeDialog&&e.includes(t.activeDialog)?t.dialogProps:void 0)}export{n,r as t};
@@ -1 +1 @@
1
- import{r as e}from"./hePW80VL.js";import{p as t}from"./CYz610vE.js";import{t as n}from"./CiL8zoYm.js";import{i as r,r as i}from"./Cu_sGzNJ.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./DzRyVlxz.js";import{a as d,i as f,n as p,r as m,t as h}from"./B3qo2BmL.js";import{n as g,s as _}from"./DU-Eln5x.js";import{C as v,l as y,p as b}from"./BPLdNS4h.js";import{n as x}from"./D8_hwGjG.js";import{D as S,c as C,l as w}from"./B_zu4Zim.js";var T=e(t(),1),E=i(),D={autoComplete:`off`,"data-1p-ignore":!0,"data-lpignore":`true`,"data-bwignore":!0};function O(){let{t:e}=r(),[t,i]=(0,T.useState)(null),[a,o]=(0,T.useState)(!1),[s,c]=(0,T.useState)(`anthropic`),[l,u]=(0,T.useState)(``),[x,O]=(0,T.useState)(``),[k,A]=(0,T.useState)(``),[j,M]=(0,T.useState)(!1),[N,P]=(0,T.useState)([]),[F,I]=(0,T.useState)(!1),[L,R]=(0,T.useState)(!1),[z,B]=(0,T.useState)(null),V=g(e=>e.setAiPreferences),H=(0,T.useCallback)(()=>{b().then(e=>{i(e);let t=g.getState().aiPreferences,n=e.storage!==`none`;c(n?e.provider:t.provider),u(n?e.model:t.model),O((n?e.baseUrl:t.baseUrl)??``),M(n?e.storage===`file`:t.remember),P(e.clis??[]),I(e.anthropicProfile===!0)}).catch(()=>o(!0))},[]);(0,T.useEffect)(H,[H]);let U=(0,T.useCallback)(e=>{c(e),u(t=>_(t,e))},[]),W=(0,T.useCallback)(()=>{R(!0),B(null),v({provider:s,model:l.trim()||void 0,baseUrl:x.trim()||void 0,key:k,remember:j}).then(t=>{i(t),A(``),V({provider:s,model:l.trim()||t.model,baseUrl:x.trim(),remember:j}),B(e(`settings.ai.saved`)),S()}).catch(e=>B(e instanceof Error?e.message:String(e))).finally(()=>R(!1))},[s,l,x,k,j,V,e]),G=(0,T.useCallback)(()=>{R(!0),B(null),y().then(e=>{i(e),A(``),S()}).catch(e=>B(e instanceof Error?e.message:String(e))).finally(()=>R(!1))},[]);if(a)return(0,E.jsx)(`p`,{className:`rounded-md border p-3 text-xs text-muted-foreground`,children:e(`settings.ai.unreachable`)});if(!t)return null;let K=t.fromEnvironment,q=s===`cli`||s===`anthropic-profile`;return(0,E.jsxs)(`div`,{className:`grid gap-3 rounded-md border p-3`,children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.intro`)}),(0,E.jsx)(`p`,{className:`text-xs`,children:t.storage===`environment`?e(`settings.ai.configuredEnv`):t.storage===`file`?e(t.provider===`cli`||t.provider===`anthropic-profile`?`settings.ai.configuredChoice`:`settings.ai.configuredFile`,{path:t.path,provider:t.provider===`cli`?t.model:e(`settings.ai.profile`)}):t.storage===`session`?e(`settings.ai.configuredSession`):e(`settings.ai.none`)}),!K&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-provider`,className:`text-sm font-medium`,children:e(`settings.ai.provider`)}),(0,E.jsxs)(h,{value:s,onValueChange:e=>U(e),children:[(0,E.jsx)(f,{id:`ai-provider`,children:(0,E.jsx)(d,{})}),(0,E.jsxs)(p,{children:[(0,E.jsx)(m,{value:`anthropic`,children:`Anthropic`}),(0,E.jsx)(m,{value:`anthropic-profile`,children:e(`settings.ai.profile`)}),(0,E.jsx)(m,{value:`openai`,children:e(`settings.ai.openaiCompatible`)}),(0,E.jsx)(m,{value:`gemini`,children:`Google Gemini`}),(0,E.jsx)(m,{value:`cli`,children:e(`settings.ai.cli`)})]})]})]}),s===`cli`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.cliHint`)}),N.length===0?(0,E.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:e(`settings.ai.cliNone`)}):(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-cli`,className:`text-sm font-medium`,children:e(`settings.ai.cliCommand`)}),(0,E.jsxs)(h,{value:N.includes(l)?l:N[0],onValueChange:u,children:[(0,E.jsx)(f,{id:`ai-cli`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:N.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]})]}):(0,E.jsxs)(`div`,{className:`grid gap-3`,children:[s===`anthropic-profile`&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.profileHint`)}),!F&&(0,E.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:e(`settings.ai.profileNone`)})]}),(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-model`,className:`text-sm font-medium`,children:e(`settings.ai.model`)}),(0,E.jsx)(w,{id:`ai-model`,value:l,onChange:e=>u(e.target.value),spellCheck:!1,...D})]})]}),s===`openai`&&(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,E.jsx)(C,{htmlFor:`ai-base-url`,className:`text-sm font-medium`,children:e(`settings.ai.baseUrl`)}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.baseUrlHint`)})]}),(0,E.jsx)(w,{id:`ai-base-url`,value:x,onChange:e=>O(e.target.value),placeholder:`https://api.openai.com/v1`,spellCheck:!1,...D})]}),q||(0,E.jsxs)(`div`,{className:`grid gap-1`,children:[(0,E.jsx)(C,{htmlFor:`ai-key`,className:`text-sm font-medium`,children:e(`settings.ai.key`)}),(0,E.jsx)(w,{id:`ai-key`,type:`password`,value:k,onChange:e=>A(e.target.value),spellCheck:!1,placeholder:t.configured?`••••••••`:``,...D,autoComplete:`new-password`}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.keyHint`)})]}),q||(0,E.jsxs)(`label`,{htmlFor:`ai-remember`,className:`flex cursor-pointer items-start gap-3 rounded-md border p-3 hover:bg-accent/40`,children:[(0,E.jsx)(`input`,{id:`ai-remember`,type:`checkbox`,checked:j,onChange:e=>M(e.target.checked),className:`mt-0.5 size-4 accent-primary`}),(0,E.jsxs)(`span`,{className:`grid flex-1 gap-0.5`,children:[(0,E.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings.ai.remember`)}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.rememberHint`,{path:t.path})})]})]}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(n,{size:`sm`,onClick:W,disabled:L||(s===`cli`?N.length===0:!q&&!k.trim()),children:e(`settings.ai.save`)}),t.configured&&(0,E.jsx)(n,{size:`sm`,variant:`ghost`,onClick:G,disabled:L,children:e(`settings.ai.forget`)}),z&&(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:z})]})]})]})}function k(){let e=x(e=>e.activeDialog),t=x(e=>e.closeDialog),{t:i}=r();return(0,E.jsx)(u,{open:e===`ai-settings`,onOpenChange:e=>{e||t()},children:(0,E.jsxs)(s,{className:`sm:max-w-[560px]`,children:[(0,E.jsxs)(a,{children:[(0,E.jsx)(c,{children:i(`settings.ai.title`)}),(0,E.jsx)(l,{children:i(`settings.ai.description`)})]}),(0,E.jsx)(O,{}),(0,E.jsx)(o,{children:(0,E.jsx)(n,{onClick:t,children:i(`settings.done`)})})]})})}export{k as AiSettingsDialog};
1
+ import{r as e}from"./hePW80VL.js";import{p as t}from"./CyX8oVsa.js";import{t as n}from"./Dya0zxo6.js";import{i as r,r as i}from"./C76CctEl.js";import{a,i as o,n as s,o as c,r as l,t as u}from"./kTwcxyaO.js";import{a as d,i as f,n as p,r as m,t as h}from"./34iJa-68.js";import{n as g,s as _}from"./DOy06rIE.js";import{C as v,l as y,p as b}from"./zdvaVsTo.js";import{n as x}from"./BihjBM79.js";import{D as S,c as C,l as w}from"./D4DxtYTA.js";var T=e(t(),1),E=i(),D={autoComplete:`off`,"data-1p-ignore":!0,"data-lpignore":`true`,"data-bwignore":!0};function O(){let{t:e}=r(),[t,i]=(0,T.useState)(null),[a,o]=(0,T.useState)(!1),[s,c]=(0,T.useState)(`anthropic`),[l,u]=(0,T.useState)(``),[x,O]=(0,T.useState)(``),[k,A]=(0,T.useState)(``),[j,M]=(0,T.useState)(!1),[N,P]=(0,T.useState)([]),[F,I]=(0,T.useState)(!1),[L,R]=(0,T.useState)(!1),[z,B]=(0,T.useState)(null),V=g(e=>e.setAiPreferences),H=(0,T.useCallback)(()=>{b().then(e=>{i(e);let t=g.getState().aiPreferences,n=e.storage!==`none`;c(n?e.provider:t.provider),u(n?e.model:t.model),O((n?e.baseUrl:t.baseUrl)??``),M(n?e.storage===`file`:t.remember),P(e.clis??[]),I(e.anthropicProfile===!0)}).catch(()=>o(!0))},[]);(0,T.useEffect)(H,[H]);let U=(0,T.useCallback)(e=>{c(e),u(t=>_(t,e))},[]),W=(0,T.useCallback)(()=>{R(!0),B(null),v({provider:s,model:l.trim()||void 0,baseUrl:x.trim()||void 0,key:k,remember:j}).then(t=>{i(t),A(``),V({provider:s,model:l.trim()||t.model,baseUrl:x.trim(),remember:j}),B(e(`settings.ai.saved`)),S()}).catch(e=>B(e instanceof Error?e.message:String(e))).finally(()=>R(!1))},[s,l,x,k,j,V,e]),G=(0,T.useCallback)(()=>{R(!0),B(null),y().then(e=>{i(e),A(``),S()}).catch(e=>B(e instanceof Error?e.message:String(e))).finally(()=>R(!1))},[]);if(a)return(0,E.jsx)(`p`,{className:`rounded-md border p-3 text-xs text-muted-foreground`,children:e(`settings.ai.unreachable`)});if(!t)return null;let K=t.fromEnvironment,q=s===`cli`||s===`anthropic-profile`;return(0,E.jsxs)(`div`,{className:`grid gap-3 rounded-md border p-3`,children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.intro`)}),(0,E.jsx)(`p`,{className:`text-xs`,children:t.storage===`environment`?e(`settings.ai.configuredEnv`):t.storage===`file`?e(t.provider===`cli`||t.provider===`anthropic-profile`?`settings.ai.configuredChoice`:`settings.ai.configuredFile`,{path:t.path,provider:t.provider===`cli`?t.model:e(`settings.ai.profile`)}):t.storage===`session`?e(`settings.ai.configuredSession`):e(`settings.ai.none`)}),!K&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-provider`,className:`text-sm font-medium`,children:e(`settings.ai.provider`)}),(0,E.jsxs)(h,{value:s,onValueChange:e=>U(e),children:[(0,E.jsx)(f,{id:`ai-provider`,children:(0,E.jsx)(d,{})}),(0,E.jsxs)(p,{children:[(0,E.jsx)(m,{value:`anthropic`,children:`Anthropic`}),(0,E.jsx)(m,{value:`anthropic-profile`,children:e(`settings.ai.profile`)}),(0,E.jsx)(m,{value:`openai`,children:e(`settings.ai.openaiCompatible`)}),(0,E.jsx)(m,{value:`gemini`,children:`Google Gemini`}),(0,E.jsx)(m,{value:`cli`,children:e(`settings.ai.cli`)})]})]})]}),s===`cli`?(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.cliHint`)}),N.length===0?(0,E.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:e(`settings.ai.cliNone`)}):(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-cli`,className:`text-sm font-medium`,children:e(`settings.ai.cliCommand`)}),(0,E.jsxs)(h,{value:N.includes(l)?l:N[0],onValueChange:u,children:[(0,E.jsx)(f,{id:`ai-cli`,children:(0,E.jsx)(d,{})}),(0,E.jsx)(p,{children:N.map(e=>(0,E.jsx)(m,{value:e,children:e},e))})]})]})]}):(0,E.jsxs)(`div`,{className:`grid gap-3`,children:[s===`anthropic-profile`&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.profileHint`)}),!F&&(0,E.jsx)(`p`,{className:`rounded-md border p-2 text-xs text-muted-foreground`,children:e(`settings.ai.profileNone`)})]}),(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsx)(C,{htmlFor:`ai-model`,className:`text-sm font-medium`,children:e(`settings.ai.model`)}),(0,E.jsx)(w,{id:`ai-model`,value:l,onChange:e=>u(e.target.value),spellCheck:!1,...D})]})]}),s===`openai`&&(0,E.jsxs)(`div`,{className:`grid grid-cols-[1fr_220px] items-center gap-3`,children:[(0,E.jsxs)(`div`,{className:`grid gap-0.5`,children:[(0,E.jsx)(C,{htmlFor:`ai-base-url`,className:`text-sm font-medium`,children:e(`settings.ai.baseUrl`)}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.baseUrlHint`)})]}),(0,E.jsx)(w,{id:`ai-base-url`,value:x,onChange:e=>O(e.target.value),placeholder:`https://api.openai.com/v1`,spellCheck:!1,...D})]}),q||(0,E.jsxs)(`div`,{className:`grid gap-1`,children:[(0,E.jsx)(C,{htmlFor:`ai-key`,className:`text-sm font-medium`,children:e(`settings.ai.key`)}),(0,E.jsx)(w,{id:`ai-key`,type:`password`,value:k,onChange:e=>A(e.target.value),spellCheck:!1,placeholder:t.configured?`••••••••`:``,...D,autoComplete:`new-password`}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.keyHint`)})]}),q||(0,E.jsxs)(`label`,{htmlFor:`ai-remember`,className:`flex cursor-pointer items-start gap-3 rounded-md border p-3 hover:bg-accent/40`,children:[(0,E.jsx)(`input`,{id:`ai-remember`,type:`checkbox`,checked:j,onChange:e=>M(e.target.checked),className:`mt-0.5 size-4 accent-primary`}),(0,E.jsxs)(`span`,{className:`grid flex-1 gap-0.5`,children:[(0,E.jsx)(`span`,{className:`text-sm font-medium`,children:e(`settings.ai.remember`)}),(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e(`settings.ai.rememberHint`,{path:t.path})})]})]}),(0,E.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,E.jsx)(n,{size:`sm`,onClick:W,disabled:L||(s===`cli`?N.length===0:!q&&!k.trim()),children:e(`settings.ai.save`)}),t.configured&&(0,E.jsx)(n,{size:`sm`,variant:`ghost`,onClick:G,disabled:L,children:e(`settings.ai.forget`)}),z&&(0,E.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:z})]})]})]})}function k(){let e=x(e=>e.activeDialog),t=x(e=>e.closeDialog),{t:i}=r();return(0,E.jsx)(u,{open:e===`ai-settings`,onOpenChange:e=>{e||t()},children:(0,E.jsxs)(s,{className:`sm:max-w-[560px]`,children:[(0,E.jsxs)(a,{children:[(0,E.jsx)(c,{children:i(`settings.ai.title`)}),(0,E.jsx)(l,{children:i(`settings.ai.description`)})]}),(0,E.jsx)(O,{}),(0,E.jsx)(o,{children:(0,E.jsx)(n,{onClick:t,children:i(`settings.done`)})})]})})}export{k as AiSettingsDialog};