piclaw 0.0.4 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/assets/dist-D51xeTP2.js +12 -0
- package/.output/public/assets/index-B3x2_en6.css +1 -0
- package/.output/public/assets/index-SfjxJZSD.js +38 -0
- package/.output/public/assets/md4x-CNLJ57xO.wasm +0 -0
- package/.output/public/assets/md4x-CyfQToGJ.js +1 -0
- package/.output/public/assets/wasm-Cm7RZrwg.js +1 -0
- package/.output/public/icon.svg +25 -0
- package/.output/public/index.html +3 -2
- package/.output/public/manifest.json +1 -1
- package/.output/server/_chunks/bun.mjs +49 -0
- package/.output/server/_chunks/commands.mjs +280 -0
- package/.output/server/_chunks/config.mjs +2 -4
- package/.output/server/_chunks/db.mjs +11 -5
- package/.output/server/_chunks/logger.mjs +1 -1
- package/.output/server/_chunks/node.mjs +31 -0
- package/.output/server/_chunks/ntfy.mjs +45 -0
- package/.output/server/_chunks/pi.mjs +33 -1
- package/.output/server/_chunks/renderer-template.mjs +1 -1
- package/.output/server/_chunks/{bootstrap.mjs → server.mjs} +203 -205
- package/.output/server/_chunks/session.mjs +249 -40
- package/.output/server/_chunks/settings.mjs +1 -1
- package/.output/server/_chunks/terminal.mjs +35 -20
- package/.output/server/_chunks/virtual.mjs +129 -0
- package/.output/server/_jid_.delete.mjs +2 -2
- package/.output/server/_jid_.patch.mjs +30 -3
- package/.output/server/_jid_2.delete.mjs +2 -2
- package/.output/server/_libs/@aws-sdk/client-bedrock-runtime+[...].mjs +13148 -13149
- package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +2 -2
- package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +1 -1
- package/.output/server/_libs/@google/genai.mjs +2 -2
- package/.output/server/_libs/@mariozechner/pi-agent-core+[...].mjs +40 -74
- package/.output/server/_libs/@mariozechner/pi-coding-agent+[...].mjs +1315 -1210
- package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +3 -3
- package/.output/server/_libs/_.mjs +3 -2
- package/.output/server/_libs/_100.mjs +3 -0
- package/.output/server/_libs/_101.mjs +2 -0
- package/.output/server/_libs/_102.mjs +3 -0
- package/.output/server/_libs/_103.mjs +2 -0
- package/.output/server/_libs/_16.mjs +2 -5
- package/.output/server/_libs/_17.mjs +2 -3
- package/.output/server/_libs/_18.mjs +2 -3
- package/.output/server/_libs/_19.mjs +2 -4
- package/.output/server/_libs/_2.mjs +2 -3
- package/.output/server/_libs/_20.mjs +2 -2
- package/.output/server/_libs/_21.mjs +2 -0
- package/.output/server/_libs/_22.mjs +2 -0
- package/.output/server/_libs/_23.mjs +2 -0
- package/.output/server/_libs/_24.mjs +2 -0
- package/.output/server/_libs/_25.mjs +2 -0
- package/.output/server/_libs/_26.mjs +2 -0
- package/.output/server/_libs/_27.mjs +2 -0
- package/.output/server/_libs/_28.mjs +2 -0
- package/.output/server/_libs/_29.mjs +2 -0
- package/.output/server/_libs/_30.mjs +2 -0
- package/.output/server/_libs/_31.mjs +2 -0
- package/.output/server/_libs/_32.mjs +2 -0
- package/.output/server/_libs/_33.mjs +2 -0
- package/.output/server/_libs/_34.mjs +2 -0
- package/.output/server/_libs/_35.mjs +2 -0
- package/.output/server/_libs/_36.mjs +2 -0
- package/.output/server/_libs/_37.mjs +2 -0
- package/.output/server/_libs/_38.mjs +2 -0
- package/.output/server/_libs/_39.mjs +2 -0
- package/.output/server/_libs/_40.mjs +2 -0
- package/.output/server/_libs/_41.mjs +2 -0
- package/.output/server/_libs/_42.mjs +2 -0
- package/.output/server/_libs/_43.mjs +2 -0
- package/.output/server/_libs/_44.mjs +2 -0
- package/.output/server/_libs/_45.mjs +2 -0
- package/.output/server/_libs/_46.mjs +2 -0
- package/.output/server/_libs/_47.mjs +2 -0
- package/.output/server/_libs/_48.mjs +2 -0
- package/.output/server/_libs/_49.mjs +2 -0
- package/.output/server/_libs/_50.mjs +2 -0
- package/.output/server/_libs/_51.mjs +2 -0
- package/.output/server/_libs/_52.mjs +2 -0
- package/.output/server/_libs/_53.mjs +2 -0
- package/.output/server/_libs/_54.mjs +2 -0
- package/.output/server/_libs/_55.mjs +2 -0
- package/.output/server/_libs/_56.mjs +2 -0
- package/.output/server/_libs/_57.mjs +2 -0
- package/.output/server/_libs/_58.mjs +2 -0
- package/.output/server/_libs/_59.mjs +2 -0
- package/.output/server/_libs/_60.mjs +2 -0
- package/.output/server/_libs/_61.mjs +2 -0
- package/.output/server/_libs/_62.mjs +2 -0
- package/.output/server/_libs/_63.mjs +2 -0
- package/.output/server/_libs/_64.mjs +2 -0
- package/.output/server/_libs/_65.mjs +2 -0
- package/.output/server/_libs/_66.mjs +2 -0
- package/.output/server/_libs/_67.mjs +2 -0
- package/.output/server/_libs/_68.mjs +2 -0
- package/.output/server/_libs/_69.mjs +2 -0
- package/.output/server/_libs/_70.mjs +2 -0
- package/.output/server/_libs/_71.mjs +2 -0
- package/.output/server/_libs/_72.mjs +2 -0
- package/.output/server/_libs/_73.mjs +2 -0
- package/.output/server/_libs/_74.mjs +2 -0
- package/.output/server/_libs/_75.mjs +2 -0
- package/.output/server/_libs/_76.mjs +2 -0
- package/.output/server/_libs/_77.mjs +2 -0
- package/.output/server/_libs/_78.mjs +2 -0
- package/.output/server/_libs/_79.mjs +2 -0
- package/.output/server/_libs/_80.mjs +2 -0
- package/.output/server/_libs/_81.mjs +2 -0
- package/.output/server/_libs/_82.mjs +2 -0
- package/.output/server/_libs/_83.mjs +2 -0
- package/.output/server/_libs/_84.mjs +2 -0
- package/.output/server/_libs/_85.mjs +2 -0
- package/.output/server/_libs/_86.mjs +2 -0
- package/.output/server/_libs/_87.mjs +2 -0
- package/.output/server/_libs/_88.mjs +2 -0
- package/.output/server/_libs/_89.mjs +2 -0
- package/.output/server/_libs/_90.mjs +2 -0
- package/.output/server/_libs/_91.mjs +2 -0
- package/.output/server/_libs/_92.mjs +2 -0
- package/.output/server/_libs/_93.mjs +2 -0
- package/.output/server/_libs/_94.mjs +2 -0
- package/.output/server/_libs/_95.mjs +2 -0
- package/.output/server/_libs/_96.mjs +2 -0
- package/.output/server/_libs/_97.mjs +2 -0
- package/.output/server/_libs/_98.mjs +2 -0
- package/.output/server/_libs/_99.mjs +5 -0
- package/.output/server/_libs/amdefine.mjs +188 -0
- package/.output/server/_libs/aws-sdk__nested-clients.mjs +1 -1
- package/.output/server/_libs/compressjs.mjs +50 -0
- package/.output/server/_libs/diff.mjs +137 -0
- package/.output/server/_libs/get-uri.mjs +1 -1
- package/.output/server/_libs/http-proxy-agent.mjs +1 -1
- package/.output/server/_libs/https-proxy-agent.mjs +1 -1
- package/.output/server/_libs/just-bash+[...].mjs +80359 -0
- package/.output/server/_libs/md4x.mjs +73 -0
- package/.output/server/_libs/mixmark-io__domino.mjs +14801 -0
- package/.output/server/_libs/node-fetch.mjs +1 -1
- package/.output/server/_libs/node-liblzma.mjs +1107 -0
- package/.output/server/_libs/pac-proxy-agent+[...].mjs +1 -1
- package/.output/server/_libs/proxy-agent+proxy-from-env.mjs +1 -1
- package/.output/server/_libs/smithy__core.mjs +1 -1
- package/.output/server/_routes/api/files/delete.mjs +2 -2
- package/.output/server/_routes/api/files/groups.mjs +14 -0
- package/.output/server/_routes/api/files/raw.mjs +1 -1
- package/.output/server/_routes/api/files/read.mjs +1 -1
- package/.output/server/_routes/api/files/watch.mjs +1 -1
- package/.output/server/_routes/api/files/write.mjs +3 -2
- package/.output/server/_routes/api/files.mjs +1 -1
- package/.output/server/_routes/api/groups.mjs +2 -2
- package/.output/server/_routes/api/groups2.mjs +3 -2
- package/.output/server/_routes/api/health.mjs +2 -2
- package/.output/server/_routes/api/logs.mjs +4 -2
- package/.output/server/_routes/api/ntfy/setup.mjs +54 -0
- package/.output/server/_routes/api/ntfy/status.mjs +12 -0
- package/.output/server/_routes/api/pi/apikey.mjs +1 -1
- package/.output/server/_routes/api/pi/apikey_providers.mjs +1 -1
- package/.output/server/_routes/api/pi/commands.mjs +6 -0
- package/.output/server/_routes/api/pi/login/events.mjs +1 -1
- package/.output/server/_routes/api/pi/login/respond.mjs +1 -1
- package/.output/server/_routes/api/pi/login.mjs +1 -1
- package/.output/server/_routes/api/pi/logout.mjs +1 -1
- package/.output/server/_routes/api/pi/models.mjs +1 -1
- package/.output/server/_routes/api/pi/status.mjs +1 -1
- package/.output/server/_routes/api/send.mjs +22 -3
- package/.output/server/_routes/api/status.mjs +9 -7
- package/.output/server/_routes/api/tasks2.mjs +2 -2
- package/.output/server/_routes/api/telegram/setup.mjs +2 -2
- package/.output/server/_routes/api/telegram/status.mjs +2 -2
- package/.output/server/_routes/api/terminal2.mjs +3 -2
- package/.output/server/_utils.mjs +12 -4
- package/.output/server/build/md4x.wasm +0 -0
- package/.output/server/index.mjs +223 -149
- package/.output/server/node_modules/@mongodb-js/zstd/lib/index.js +55 -0
- package/.output/server/node_modules/@mongodb-js/zstd/package.json +51 -0
- package/.output/server/package.json +1 -0
- package/README.md +118 -24
- package/bin/piclaw.mjs +39 -1
- package/package.json +16 -13
- package/.output/public/assets/client-TIs-Ghqj.js +0 -9
- package/.output/public/assets/dist-BVjfG3ok.js +0 -12
- package/.output/public/assets/dist-DJh8l6yS.js +0 -1
- package/.output/public/assets/index-BNNEMkNV.js +0 -39
- package/.output/public/assets/index-CdWBxO5V.css +0 -1
- package/.output/public/assets/react-DFP7nCmh.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./index-BNNEMkNV.js";import{t}from"./react-DFP7nCmh.js";var n=t(),r=0;function i(){return`node_${++r}`}function a(e){return e===null?`null`:Array.isArray(e)?`array`:typeof e}function o(e,t,n,r,s){let c=i(),l=n?`${n}/${e}`:`/${e}`,u=a(t),d={id:c,key:e,path:l,type:u,value:u===`object`||u===`array`?void 0:t,children:[],parentId:r};if(s.set(c,d),u===`object`&&t!==null){let e=t;d.children=Object.keys(e).map(t=>o(t,e[t],l,c,s))}else u===`array`&&(d.children=t.map((e,t)=>o(String(t),e,l,c,s)));return d}function s(e){let t=new Map,n=a(e),r={id:i(),key:``,path:`/`,type:n,value:n===`object`||n===`array`?void 0:e,children:[],parentId:null};if(t.set(r.id,r),n===`object`&&e!==null){let n=e;r.children=Object.keys(n).map(e=>o(e,n[e],``,r.id,t))}else n===`array`&&(r.children=e.map((e,n)=>o(String(n),e,``,r.id,t)));return{root:r,nodesById:t}}function c(e){switch(e.type){case`object`:{let t={};for(let n of e.children)t[n.key]=c(n);return t}case`array`:return e.children.map(e=>c(e));default:return e.value}}function l(e){let t=new Map;function n(e){t.set(e.id,e);for(let t of e.children)n(t)}return n(e),t}function u(e,t){let n=t?`${t}/${e.key}`:`/${e.key}`;return e.path===n&&e.children.length===0?e:{...e,path:n,children:e.children.map(e=>u(e,n))}}function d(e,t,n){let r=[],i=e.nodesById.get(t);for(;i;)r.unshift(i.id),i=i.parentId?e.nodesById.get(i.parentId):void 0;if(r.length===0)return e;function a(e,t){if(t===r.length-1)return n(e);let i=r[t+1];return{...e,children:e.children.map(e=>e.id===i?a(e,t+1):e)}}let o=a(e.root,0);return{root:o,nodesById:l(o)}}function f(e){if(e.type!==`array`)return e;let t=e.path===`/`?``:e.path;return{...e,children:e.children.map((e,n)=>{let r=String(n);return e.key===r?e:u({...e,key:r},t)})}}function p(e,t,n){if(!e.nodesById.get(t))return e;let r=a(n);return r!==`object`&&r!==`array`?d(e,t,e=>({...e,type:r,value:n,children:[]})):d(e,t,e=>{let t=e.path.split(`/`).slice(0,-1).join(`/`)||``,r=new Map;return{...o(e.key,n,t,e.parentId,r),id:e.id}})}function m(e,t,n){let r=e.nodesById.get(t);if(!r||!r.parentId)return e;let i=e.nodesById.get(r.parentId);return!i||i.type!==`object`?e:d(e,t,e=>{let t=`${i.path===`/`?``:i.path}/${n}`,r={...e,key:n,path:t};return r.children.length>0&&(r.children=r.children.map(e=>u(e,t))),r})}function h(e,t,n,r){return e.nodesById.get(t)?d(e,t,e=>{let t=e.path===`/`?``:e.path,i=new Map,a=o(n,r,t,e.id,i);return{...e,children:[...e.children,a]}}):e}function g(e,t){let n=e.nodesById.get(t);return!n||!n.parentId?e:d(e,n.parentId,e=>{let n=e.children.filter(e=>e.id!==t);return f({...e,children:n})})}function _(e,t,n,r){let i=e.nodesById.get(t);if(!i||!i.parentId)return e;let a=e.nodesById.get(i.parentId),s=e.nodesById.get(n);if(!a||!s)return e;let l=c(i);return d(d(e,i.parentId,e=>{let n=e.children.filter(e=>e.id!==t);return f({...e,children:n})}),n,e=>{let t=e.path===`/`?``:e.path,n=new Map,a=o(e.type===`array`?String(r??e.children.length):i.key,l,t,e.id,n),s=[...e.children],c=r??s.length;return s.splice(c,0,a),f({...e,children:s})})}function v(e,t,n,r){return e.nodesById.get(t)?d(e,t,e=>{let t=[...e.children],[i]=t.splice(n,1);return t.splice(r,0,i),f({...e,children:t})}):e}function y(e,t){switch(t){case`string`:return e==null?``:typeof e==`object`?JSON.stringify(e):String(e);case`number`:{let t=Number(e);return isNaN(t)?0:t}case`boolean`:return!!e;case`null`:return null;case`object`:if(typeof e==`object`&&e&&!Array.isArray(e))return e;if(Array.isArray(e)){let t={};return e.forEach((e,n)=>{t[String(n)]=e}),t}return{};case`array`:return Array.isArray(e)?e:typeof e==`object`&&e?Object.values(e):e==null?[]:[e];default:return e}}function b(e,t,n){let r=e.nodesById.get(t);return r?p(e,t,y(c(r),n)):e}function x(e,t){let n=e.nodesById.get(t);if(!n||!n.parentId||!e.nodesById.get(n.parentId))return e;let r=c(n);return d(e,n.parentId,e=>{let i=e.children.findIndex(e=>e.id===t),a=e.path===`/`?``:e.path,s=e.type===`array`?String(i+1):`${n.key}_copy`,c=new Map,l=o(s,structuredClone(r),a,e.id,c),u=[...e.children];return u.splice(i+1,0,l),f({...e,children:u})})}var S=100,C=class{constructor(){this.stack=[],this.cursor=-1}push(e){this.stack=this.stack.slice(0,this.cursor+1),this.stack.push(e),this.stack.length>S?this.stack.shift():this.cursor++}undo(){return this.canUndo?(this.cursor--,this.stack[this.cursor]):null}redo(){return this.canRedo?(this.cursor++,this.stack[this.cursor]):null}get canUndo(){return this.cursor>0}get canRedo(){return this.cursor<this.stack.length-1}get current(){return this.stack[this.cursor]??null}};function w(e,t){if(!t.startsWith(`#/`))return;let n=t.slice(2).split(`/`),r=e;for(let e of n){if(typeof r!=`object`||!r)return;r=r[e]}return r}function T(e,t,n){let r=n??new Set;if(e.$ref){if(r.has(e.$ref))return e;r.add(e.$ref);let n=w(t,e.$ref);return n?T(n,t,r):e}return e.allOf&&e.allOf.length>0?E(e,t,r):e}function E(e,t,n){let r={...e};delete r.allOf;for(let i of e.allOf){let e=T(i,t,new Set(n));e.type&&!r.type&&(r.type=e.type),e.properties&&(r.properties={...r.properties,...e.properties}),e.required&&(r.required=[...new Set([...r.required??[],...e.required])]),e.additionalProperties!==void 0&&r.additionalProperties===void 0&&(r.additionalProperties=e.additionalProperties),e.items&&!r.items&&(r.items=e.items),e.description&&!r.description&&(r.description=e.description),e.title&&!r.title&&(r.title=e.title),e.enum&&!r.enum&&(r.enum=e.enum),e.minimum!==void 0&&r.minimum===void 0&&(r.minimum=e.minimum),e.maximum!==void 0&&r.maximum===void 0&&(r.maximum=e.maximum),e.minLength!==void 0&&r.minLength===void 0&&(r.minLength=e.minLength),e.maxLength!==void 0&&r.maxLength===void 0&&(r.maxLength=e.maxLength),e.pattern&&!r.pattern&&(r.pattern=e.pattern),e.format&&!r.format&&(r.format=e.format)}return r}function D(e,t,n){let r=n??e,i=t.split(`/`).filter(Boolean),a=T(e,r);for(let e of i){if(!a)return;if(a=T(a,r),a.properties?.[e]){a=T(a.properties[e],r);continue}if(a.patternProperties){let t=Object.entries(a.patternProperties).find(([t])=>{try{return new RegExp(t).test(e)}catch{return!1}});if(t){a=T(t[1],r);continue}}if(a.additionalProperties&&typeof a.additionalProperties==`object`){a=T(a.additionalProperties,r);continue}if(a.items)if(Array.isArray(a.items)){let t=Number(e);if(!isNaN(t)&&a.items[t]){a=T(a.items[t],r);continue}}else{a=T(a.items,r);continue}if(a.anyOf||a.oneOf){let t=a.anyOf??a.oneOf??[],n;for(let i of t)if(n=D(T(i,r),e,r),n)break;if(n){a=n;continue}return}return}return a}function O(e,t){if(!t)return!0;let n=Array.isArray(t)?t:[t];return e===`number`&&n.includes(`integer`)?!0:n.includes(e)}var k={email:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,uri:/^https?:\/\/.+/,"uri-reference":/^(https?:\/\/|\/|\.\.?\/|#).*/,"date-time":/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}/,date:/^\d{4}-\d{2}-\d{2}$/,time:/^\d{2}:\d{2}:\d{2}/,ipv4:/^(\d{1,3}\.){3}\d{1,3}$/,ipv6:/^([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}$/,uuid:/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,hostname:/^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$/};function A(e,t){let n=[];if(!t)return{valid:!0,errors:n};if(t.type&&!O(e.type,t.type)){let r=Array.isArray(t.type)?t.type.join(` | `):t.type;n.push(`Expected type "${r}", got "${e.type}"`)}if(t.enum&&t.enum.length>0&&e.value!==void 0&&(t.enum.some(t=>JSON.stringify(t)===JSON.stringify(e.value))||n.push(`Value must be one of: ${t.enum.map(e=>JSON.stringify(e)).join(`, `)}`)),t.const!==void 0&&e.value!==void 0&&JSON.stringify(e.value)!==JSON.stringify(t.const)&&n.push(`Value must be ${JSON.stringify(t.const)}`),t.required&&(e.type===`object`||e.type===`array`)){let r=new Set(e.children.map(e=>e.key));for(let e of t.required)r.has(e)||n.push(`Missing required property "${e}"`)}if(e.type===`number`&&typeof e.value==`number`){let r=e.value;if(t.minimum!==void 0&&r<t.minimum&&n.push(`Value must be >= ${t.minimum}`),t.maximum!==void 0&&r>t.maximum&&n.push(`Value must be <= ${t.maximum}`),t.exclusiveMinimum!==void 0){let e=typeof t.exclusiveMinimum==`number`?t.exclusiveMinimum:t.minimum;e!==void 0&&r<=e&&n.push(`Value must be > ${e}`)}if(t.exclusiveMaximum!==void 0){let e=typeof t.exclusiveMaximum==`number`?t.exclusiveMaximum:t.maximum;e!==void 0&&r>=e&&n.push(`Value must be < ${e}`)}if(t.multipleOf!==void 0){let e=Math.abs(r%t.multipleOf);e>1e-10&&Math.abs(e-t.multipleOf)>1e-10&&n.push(`Value must be a multiple of ${t.multipleOf}`)}}if(e.type===`string`&&typeof e.value==`string`){let r=e.value;if(t.minLength!==void 0&&r.length<t.minLength&&n.push(`Must be at least ${t.minLength} characters`),t.maxLength!==void 0&&r.length>t.maxLength&&n.push(`Must be at most ${t.maxLength} characters`),t.pattern)try{new RegExp(t.pattern).test(r)||n.push(`Must match pattern: ${t.pattern}`)}catch{}t.format&&k[t.format]&&(k[t.format].test(r)||n.push(`Invalid ${t.format} format`))}return e.type===`array`&&(t.minItems!==void 0&&e.children.length<t.minItems&&n.push(`Must have at least ${t.minItems} items`),t.maxItems!==void 0&&e.children.length>t.maxItems&&n.push(`Must have at most ${t.maxItems} items`)),e.type===`object`&&(t.minProperties!==void 0&&e.children.length<t.minProperties&&n.push(`Must have at least ${t.minProperties} properties`),t.maxProperties!==void 0&&e.children.length>t.maxProperties&&n.push(`Must have at most ${t.maxProperties} properties`)),{valid:n.length===0,errors:n}}function j(e,t){if(!t.trim())return[];let n=[],r=t.toLowerCase();function i(e){e.key&&e.key.toLowerCase().includes(r)&&n.push({nodeId:e.id,field:`key`}),e.value!==void 0&&e.value!==null&&String(e.value).toLowerCase().includes(r)&&n.push({nodeId:e.id,field:`value`});for(let t of e.children)i(t)}return i(e.root),n}function M(e,t){let n=new Set;for(let r of t){let t=e.nodesById.get(r);for(;t&&t.parentId;)n.add(t.parentId),t=e.nodesById.get(t.parentId)}return n}function N(e,t,n=``){let r=[];if(e===t)return r;if(e===null||t===null||typeof e!=typeof t||Array.isArray(e)!==Array.isArray(t))return n?r.push({path:n,type:`changed`,oldValue:e,newValue:t}):P(e,t,n,r),r;if(typeof e!=`object`)return e!==t&&r.push({path:n||`/`,type:`changed`,oldValue:e,newValue:t}),r;if(Array.isArray(e)&&Array.isArray(t)){let i=Math.max(e.length,t.length);for(let a=0;a<i;a++){let i=n?`${n}/${a}`:`/${a}`;a>=e.length?r.push({path:i,type:`added`,newValue:t[a]}):a>=t.length?r.push({path:i,type:`removed`,oldValue:e[a]}):r.push(...N(e[a],t[a],i))}return r}return P(e,t,n,r),r}function P(e,t,n,r){let i=typeof e==`object`&&e&&!Array.isArray(e)?e:{},a=typeof t==`object`&&t&&!Array.isArray(t)?t:{},o=new Set([...Object.keys(i),...Object.keys(a)]);for(let e of o){let t=n?`${n}/${e}`:`/${e}`,o=e in i,s=e in a;!o&&s?r.push({path:t,type:`added`,newValue:a[e]}):o&&!s?r.push({path:t,type:`removed`,oldValue:i[e]}):r.push(...N(i[e],a[e],t))}}var F=e((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),I=e(((e,t)=>{t.exports=F()}))(),L=(0,n.createContext)(null);function R(){let e=(0,n.useContext)(L);if(!e)throw Error(`useStudio must be used within a <VisualJson> provider`);return e}function z(e){let t=[e.id];for(let n of e.children)t.push(...z(n));return t}function B({value:e,onChange:t,schema:r,children:i}){let[a,o]=(0,n.useState)(()=>s(e)),[l,u]=(0,n.useState)(null),[d,f]=(0,n.useState)(()=>new Set([a.root.id])),p=(0,n.useRef)(new C),m=(0,n.useRef)(!1),h=(0,n.useRef)(!1),[g,_]=(0,n.useState)(!1),[v,y]=(0,n.useState)(!1),[b,x]=(0,n.useState)(``),[S,w]=(0,n.useState)([]),[T,E]=(0,n.useState)(0),[D,O]=(0,n.useState)(new Set);(0,n.useEffect)(()=>{p.current.push(a),_(p.current.canUndo),y(p.current.canRedo)},[]),(0,n.useEffect)(()=>{if(!h.current){h.current=!0;return}if(m.current){m.current=!1;return}let t=s(e);o(t),f(new Set([t.root.id])),u(null),p.current=new C,p.current.push(t),_(!1),y(!1),x(``),w([]),E(0),O(new Set)},[e]);let k=(0,n.useCallback)(e=>{o(e),p.current.push(e),_(p.current.canUndo),y(p.current.canRedo),m.current=!0,t?.(c(e.root))},[t]),A=(0,n.useCallback)(()=>{let e=p.current.undo();e&&(o(e),_(p.current.canUndo),y(p.current.canRedo),m.current=!0,t?.(c(e.root)))},[t]),N=(0,n.useCallback)(()=>{let e=p.current.redo();e&&(o(e),_(p.current.canUndo),y(p.current.canRedo),m.current=!0,t?.(c(e.root)))},[t]);(0,n.useEffect)(()=>{function e(e){let t=e.metaKey||e.ctrlKey;t&&e.key===`z`&&!e.shiftKey?(e.preventDefault(),A()):(t&&e.key===`z`&&e.shiftKey||t&&e.key===`y`)&&(e.preventDefault(),N())}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[A,N]);let P=(0,n.useCallback)(e=>{u(e)},[]),F=(0,n.useCallback)(e=>{f(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),R=(0,n.useCallback)(e=>{f(t=>{let n=new Set(t);return n.add(e),n})},[]),B=(0,n.useCallback)(e=>{f(t=>{let n=new Set(t);return n.delete(e),n})},[]),V=(0,n.useCallback)(()=>{let e=z(a.root);f(new Set(e))},[a]),H=(0,n.useCallback)(()=>{f(new Set([a.root.id]))},[a]),U=(0,n.useCallback)(e=>{if(x(e),!e.trim()){w([]),E(0),O(new Set);return}let t=j(a,e);if(w(t),E(0),O(new Set(t.map(e=>e.nodeId))),t.length>0){let e=M(a,t.map(e=>e.nodeId));f(t=>{let n=new Set(t);for(let t of e)n.add(t);return n}),u(t[0].nodeId)}},[a]),W=(0,n.useCallback)(()=>{if(S.length===0)return;let e=(T+1)%S.length;E(e),u(S[e].nodeId)},[S,T]),G=(0,n.useCallback)(()=>{if(S.length===0)return;let e=(T-1+S.length)%S.length;E(e),u(S[e].nodeId)},[S,T]);(0,n.useEffect)(()=>{if(!b.trim())return;let e=j(a,b);w(e),E(t=>Math.min(t,Math.max(e.length-1,0))),O(new Set(e.map(e=>e.nodeId)))},[a]);let K=(0,n.useMemo)(()=>({tree:a,selectedNodeId:l,expandedNodeIds:d,schema:r??null,searchQuery:b,searchMatches:S,searchMatchIndex:T,searchMatchNodeIds:D}),[a,l,d,r,b,S,T,D]),q=(0,n.useMemo)(()=>({setTree:k,selectNode:P,toggleExpand:F,expandNode:R,collapseNode:B,expandAll:V,collapseAll:H,undo:A,redo:N,canUndo:g,canRedo:v,setSearchQuery:U,nextSearchMatch:W,prevSearchMatch:G}),[k,P,F,R,B,V,H,A,N,g,v,U,W,G]),J=(0,n.useMemo)(()=>({state:K,actions:q}),[K,q]);return(0,I.jsx)(L.Provider,{value:J,children:i})}function V({x:e,y:t,items:r,onClose:i}){let a=(0,n.useRef)(null),[o,s]=(0,n.useState)({left:e,top:t});return(0,n.useEffect)(()=>{if(!a.current)return;let n=a.current.getBoundingClientRect(),r=window.innerWidth,i=window.innerHeight;s({left:n.right>r?Math.max(0,e-n.width):e,top:n.bottom>i?Math.max(0,t-n.height):t})},[e,t]),(0,n.useEffect)(()=>{function e(e){a.current&&!a.current.contains(e.target)&&i()}function t(e){e.key===`Escape`&&i()}return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[i]),(0,I.jsx)(`div`,{ref:a,style:{position:`fixed`,left:o.left,top:o.top,zIndex:1e4,backgroundColor:`var(--vj-bg-panel, #252526)`,border:`1px solid var(--vj-border, #454545)`,borderRadius:4,boxShadow:`0 4px 12px rgba(0,0,0,0.5)`,padding:`4px 0`,minWidth:160},children:r.map((e,t)=>e.separator?(0,I.jsx)(`div`,{style:{height:1,backgroundColor:`var(--vj-border, #454545)`,margin:`4px 0`}},t):(0,I.jsx)(`button`,{onClick:()=>{e.disabled||(e.action(),i())},disabled:e.disabled,style:{display:`block`,width:`100%`,textAlign:`left`,background:`none`,border:`none`,color:e.disabled?`var(--vj-text-dimmer, #555555)`:`var(--vj-text, #cccccc)`,cursor:e.disabled?`default`:`pointer`,padding:`4px 16px`,fontSize:12,fontFamily:`var(--vj-font, monospace)`},onMouseEnter:t=>{e.disabled||(t.target.style.backgroundColor=`var(--vj-accent-muted, #094771)`)},onMouseLeave:e=>{e.target.style.backgroundColor=`transparent`},children:e.label},t))})}var H=[`name`,`type`,`title`,`id`,`label`,`key`];function U(e,t){if(e.parentId===null)return`/`;if(t.nodesById.get(e.parentId)?.type!==`array`||e.type!==`object`)return e.key;for(let t of H){let n=e.children.find(e=>e.key===t);if(n?.value!=null&&n.value!==``)return String(n.value)}return e.key}function W(e,t){let n=[];function r(e){if(n.push(e),t(e.id)&&(e.type===`object`||e.type===`array`))for(let t of e.children)r(t)}return r(e),n}var G={draggedNodeId:null,dropTargetNodeId:null,dropPosition:null};function K(){let{state:e,actions:t}=R(),[r,i]=(0,n.useState)(G),a=(0,n.useRef)(r);return a.current=r,{dragState:r,handleDragStart:(0,n.useCallback)(e=>{i({draggedNodeId:e,dropTargetNodeId:null,dropPosition:null})},[]),handleDragOver:(0,n.useCallback)((e,t)=>{i(n=>({...n,dropTargetNodeId:e,dropPosition:t}))},[]),handleDragEnd:(0,n.useCallback)(()=>{i(G)},[]),handleDrop:(0,n.useCallback)(()=>{let{draggedNodeId:n,dropTargetNodeId:r,dropPosition:o}=a.current;if(!n||!r||!o)return;let s=e.tree.nodesById.get(n),c=e.tree.nodesById.get(r);if(!(!s||!c)){if(s.parentId&&s.parentId===c.parentId){let i=e.tree.nodesById.get(s.parentId);if(i){let a=i.children.findIndex(e=>e.id===n),s=i.children.findIndex(e=>e.id===r);if(o===`after`&&s++,a<s&&s--,a!==s&&a>=0&&s>=0){let n=v(e.tree,i.id,a,s);t.setTree(n)}}}else if(c.parentId){let i=e.tree.nodesById.get(c.parentId);if(i){let a=i.children.findIndex(e=>e.id===r);o===`after`&&a++;let s=_(e.tree,n,i.id,a);t.setTree(s)}}i(G)}},[e.tree,t])}}function q({node:e,depth:t,dragState:r,showValues:i,showCounts:a,isFocused:o,onDragStart:s,onDragOver:c,onDragEnd:l,onDrop:u,onContextMenu:d}){let{state:f,actions:p}=R(),m=f.selectedNodeId===e.id,h=f.expandedNodeIds.has(e.id),g=e.type===`object`||e.type===`array`,[_,v]=(0,n.useState)(!1),y=e.parentId===null,b=f.searchMatchNodeIds.has(e.id),x=f.searchMatches.length>0&&f.searchMatches[f.searchMatchIndex]?.nodeId===e.id,S=f.schema,C=S?D(S,e.path):void 0,w=C?A(e,C):null;w&&w.valid;let T=r.dropTargetNodeId===e.id,E=r.draggedNodeId===e.id;function O(){return g?e.type===`array`?`[${e.children.length}]`:`{${e.children.length}}`:e.value===null?`null`:typeof e.value==`string`?e.value:String(e.value)}function k(t){t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=n.top+n.height/2,i=t.clientY<r?`before`:`after`;c(e.id,i)}let j=`none`,M=`none`;return T&&r.dropPosition===`before`?j=`2px solid var(--vj-accent, #007acc)`:T&&r.dropPosition===`after`&&(M=`2px solid var(--vj-accent, #007acc)`),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`div`,{role:`treeitem`,"aria-selected":m,"aria-expanded":g?h:void 0,onClick:()=>p.selectNode(e.id),onMouseEnter:()=>v(!0),onMouseLeave:()=>v(!1),onContextMenu:t=>d(t,e),draggable:!y,onDragStart:t=>{t.dataTransfer.effectAllowed=`move`,s(e.id)},onDragOver:k,onDragEnd:l,onDrop:e=>{e.preventDefault(),u()},"data-node-id":e.id,style:{display:`flex`,alignItems:`center`,gap:6,padding:`3px 8px`,paddingLeft:8+t*16,cursor:`pointer`,backgroundColor:m?o?`var(--vj-bg-selected, #2a5a1e)`:`var(--vj-bg-selected-muted, var(--vj-bg-hover, #2a2d2e))`:x?`var(--vj-bg-match-active, #51502b)`:b?`var(--vj-bg-match, #3a3520)`:_?`var(--vj-bg-hover, #2a2d2e)`:`transparent`,minHeight:28,userSelect:`none`,opacity:E?.4:1,borderTop:j,borderBottom:M,color:m&&o?`var(--vj-text-selected, var(--vj-text, #cccccc))`:`var(--vj-text, #cccccc)`},children:[g?(0,I.jsx)(`button`,{onClick:t=>{t.stopPropagation(),p.toggleExpand(e.id)},"aria-label":h?`Collapse`:`Expand`,style:{background:`none`,border:`none`,color:`inherit`,cursor:`pointer`,padding:0,width:16,fontSize:9,flexShrink:0,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,transition:`transform 0.15s`,transform:h?`rotate(90deg)`:`rotate(0deg)`},children:`▶`}):(0,I.jsx)(`span`,{style:{width:16,flexShrink:0}}),(0,I.jsx)(`span`,{style:{color:`inherit`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,flexShrink:0,fontWeight:y?600:400},children:y?`/`:U(e,f.tree)}),!y&&g&&a&&(0,I.jsx)(`span`,{style:{color:m?`inherit`:`var(--vj-text-muted, #888888)`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,whiteSpace:`nowrap`,marginLeft:`auto`},children:O()}),!y&&!g&&i&&(0,I.jsx)(`span`,{style:{color:e.type===`string`?`var(--vj-string, #ce9178)`:`var(--vj-number, #b5cea8)`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,marginLeft:`auto`},children:O()})]}),h&&e.children.map(e=>(0,I.jsx)(q,{node:e,depth:t+1,dragState:r,showValues:i,showCounts:a,isFocused:o,onDragStart:s,onDragOver:c,onDragEnd:l,onDrop:u,onContextMenu:d},e.id))]})}function J({className:e,showValues:t=!0,showCounts:r=!1}){let{state:i,actions:a}=R(),o=(0,n.useRef)(null),{dragState:s,handleDragStart:l,handleDragOver:u,handleDragEnd:d,handleDrop:f}=K(),[p,m]=(0,n.useState)(null),h=(0,n.useMemo)(()=>W(i.tree.root,e=>i.expandedNodeIds.has(e)),[i.tree.root,i.expandedNodeIds]),_=(0,n.useCallback)((e,t)=>{e.preventDefault(),a.selectNode(t.id),m({x:e.clientX,y:e.clientY,node:t})},[a]),v=(0,n.useCallback)(e=>{let t=[];if((e.type===`object`||e.type===`array`)&&(t.push({label:`Expand all children`,action:()=>{function t(e){let n=[e.id];for(let r of e.children)n.push(...t(r));return n}let n=t(e);for(let e of n)a.expandNode(e)}}),t.push({label:`Collapse all children`,action:()=>{function t(e){let n=[];for(let r of e.children)n.push(r.id),n.push(...t(r));return n}let n=t(e);for(let e of n)a.collapseNode(e)}}),t.push({separator:!0})),t.push({label:`Copy path`,action:()=>navigator.clipboard.writeText(e.path).catch(()=>{})}),t.push({label:`Copy value as JSON`,action:()=>{let t=c(e),n=typeof t==`string`?t:JSON.stringify(t,null,2);navigator.clipboard.writeText(n).catch(()=>{})}}),e.parentId){t.push({separator:!0}),t.push({label:`Duplicate`,action:()=>{let t=x(i.tree,e.id);a.setTree(t)}});let n=[`string`,`number`,`boolean`,`null`,`object`,`array`].filter(t=>t!==e.type).map(t=>({label:`Change to ${t}`,action:()=>{let n=b(i.tree,e.id,t);a.setTree(n)}}));t.push({separator:!0}),t.push(...n),t.push({separator:!0}),t.push({label:`Delete`,action:()=>{let t=g(i.tree,e.id);a.setTree(t)}})}return t},[i.tree,a]),y=(0,n.useCallback)(e=>{let t=h.findIndex(e=>e.id===i.selectedNodeId);switch(e.key){case`ArrowDown`:{e.preventDefault();let n=h[t+1];n&&a.selectNode(n.id);break}case`ArrowUp`:{e.preventDefault();let n=h[t-1];n&&a.selectNode(n.id);break}case`ArrowRight`:{e.preventDefault();let n=t>=0?h[t]:null;n&&(n.type===`object`||n.type===`array`)&&(i.expandedNodeIds.has(n.id)?n.children.length>0&&a.selectNode(n.children[0].id):a.expandNode(n.id));break}case`ArrowLeft`:{e.preventDefault();let n=t>=0?h[t]:null;if(!n)break;(n.type===`object`||n.type===`array`)&&i.expandedNodeIds.has(n.id)?a.collapseNode(n.id):n.parentId&&a.selectNode(n.parentId);break}case`Delete`:case`Backspace`:{e.preventDefault();let n=t>=0?h[t]:null;if(n&&n.parentId){let e=h[t+1]??h[t-1],r=g(i.tree,n.id);a.setTree(r),e&&e.id!==n.id&&a.selectNode(e.id)}break}}},[h,i.selectedNodeId,i.expandedNodeIds,i.tree,a]),[S,C]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{if(i.selectedNodeId&&o.current){let e=o.current.querySelector(`[data-node-id="${i.selectedNodeId}"]`);e&&e.scrollIntoView({block:`nearest`})}},[i.selectedNodeId]),(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`div`,{ref:o,className:e,role:`tree`,tabIndex:0,onKeyDown:y,onFocus:()=>C(!0),onBlur:()=>C(!1),style:{overflow:`auto`,backgroundColor:`var(--vj-bg, #1e1e1e)`,color:`var(--vj-text, #cccccc)`,fontFamily:`var(--vj-font, monospace)`,fontSize:13,outline:`none`,flex:1},children:(0,I.jsx)(q,{node:i.tree.root,depth:0,dragState:s,showValues:t,showCounts:r,isFocused:S,onDragStart:l,onDragOver:u,onDragEnd:d,onDrop:f,onContextMenu:_})}),p&&(0,I.jsx)(V,{x:p.x,y:p.y,items:v(p.node),onClose:()=>m(null)})]})}var ee=20,te=200;function Y({className:e}){let{state:t,actions:r}=R(),i=(t.selectedNodeId?t.tree.nodesById.get(t.selectedNodeId):null)?.path??`/`,[a,o]=(0,n.useState)(i),[s,c]=(0,n.useState)(!1),[l,u]=(0,n.useState)(0),d=(0,n.useRef)(null),f=(0,n.useRef)(null),p=(0,n.useRef)(null);(0,n.useEffect)(()=>{o(i)},[i]);let m=(0,n.useMemo)(()=>{if(!s)return[];let e=a.toLowerCase(),n=[];for(let[r,i]of t.tree.nodesById)if(i.path.toLowerCase().startsWith(e)&&n.push({id:r,path:i.path}),n.length>=ee)break;return n.sort((e,t)=>e.path.localeCompare(t.path)),n},[s,a,t.tree.nodesById]);(0,n.useEffect)(()=>{u(0)},[m]);let h=(0,n.useCallback)(e=>{for(let[n,i]of t.tree.nodesById)if(i.path===e){r.selectNode(n);break}c(!1),d.current?.blur()},[t.tree.nodesById,r]),g=(0,n.useCallback)(e=>{if(!s){(e.key===`ArrowDown`||e.key===`Enter`)&&(c(!0),e.preventDefault());return}switch(e.key){case`ArrowDown`:e.preventDefault(),u(e=>Math.min(e+1,m.length-1));break;case`ArrowUp`:e.preventDefault(),u(e=>Math.max(e-1,0));break;case`Enter`:e.preventDefault(),m.length>0&&l<m.length?h(m[l].path):h(a.trim()||`/`);break;case`Escape`:e.preventDefault(),o(i),c(!1),d.current?.blur();break}},[s,m,l,a,i,h]);return(0,n.useEffect)(()=>{let e=f.current;!e||!s||e.children[l]?.scrollIntoView({block:`nearest`})},[l,s]),(0,n.useEffect)(()=>{function e(e){p.current&&!p.current.contains(e.target)&&(o(i),c(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[i]),(0,I.jsxs)(`div`,{ref:p,className:e,style:{position:`relative`,flex:1,minWidth:0},children:[(0,I.jsx)(`input`,{ref:d,value:a,onChange:e=>{o(e.target.value),s||c(!0)},onFocus:e=>{e.target.select(),c(!0)},onKeyDown:g,spellCheck:!1,autoComplete:`off`,style:{width:`100%`,boxSizing:`border-box`,padding:`2px 0`,fontSize:`var(--vj-input-font-size, 13px)`,fontFamily:`var(--vj-font, monospace)`,color:`var(--vj-text-muted, #999999)`,background:`transparent`,border:`none`,outline:`none`}}),s&&m.length>0&&(0,I.jsx)(`div`,{ref:f,style:{position:`absolute`,top:`100%`,left:-12,right:-12,zIndex:50,maxHeight:te,overflowY:`auto`,backgroundColor:`var(--vj-bg-panel, #252526)`,border:`1px solid var(--vj-border, #333333)`,boxShadow:`0 4px 12px rgba(0,0,0,0.3)`},children:m.map((e,t)=>(0,I.jsx)(`div`,{onMouseDown:t=>{t.preventDefault(),h(e.path)},onMouseEnter:()=>u(t),style:{padding:`4px 12px`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,color:t===l?`var(--vj-text, #cccccc)`:`var(--vj-text-muted, #888888)`,backgroundColor:t===l?`var(--vj-bg-hover, #2a2d2e)`:`transparent`,cursor:`pointer`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:e.path},e.id))})]})}var ne=200;function X({enumValues:e,value:t,onValueChange:r,inputRef:i,inputStyle:a}){let[o,s]=(0,n.useState)(t),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(0),f=(0,n.useRef)(null),p=(0,n.useRef)(null);(0,n.useEffect)(()=>{s(t)},[t]);let m=(0,n.useMemo)(()=>e.map(e=>String(e)),[e]);(0,n.useEffect)(()=>{d(0)},[m]);let h=(0,n.useCallback)(e=>{r(e),s(e),l(!1)},[r]),g=(0,n.useCallback)(e=>{if(!c){(e.key===`ArrowDown`||e.key===`ArrowUp`)&&(e.preventDefault(),e.stopPropagation(),l(!0));return}switch(e.key){case`ArrowDown`:e.preventDefault(),e.stopPropagation(),d(e=>Math.min(e+1,m.length-1));break;case`ArrowUp`:e.preventDefault(),e.stopPropagation(),d(e=>Math.max(e-1,0));break;case`Enter`:e.preventDefault(),e.stopPropagation(),m.length>0&&u<m.length&&h(m[u]);break;case`Escape`:e.preventDefault(),e.stopPropagation(),s(t),l(!1);break;case`Tab`:s(t),l(!1);break}},[c,m,u,t,h]);return(0,n.useEffect)(()=>{let e=f.current;!e||!c||e.children[u]?.scrollIntoView({block:`nearest`})},[u,c]),(0,n.useEffect)(()=>{function e(e){p.current&&!p.current.contains(e.target)&&(s(t),l(!1))}return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[t]),(0,I.jsxs)(`div`,{ref:p,style:{position:`relative`,flex:1,minWidth:0},children:[(0,I.jsx)(`input`,{ref:i,value:o,onChange:e=>{s(e.target.value),c||l(!0)},onFocus:()=>l(!0),onKeyDown:g,onClick:e=>e.stopPropagation(),spellCheck:!1,autoComplete:`off`,style:a}),c&&m.length>0&&(0,I.jsx)(`div`,{ref:f,style:{position:`absolute`,top:`calc(100% + 4px)`,left:-32,right:0,zIndex:50,maxHeight:ne,overflowY:`auto`,backgroundColor:`var(--vj-bg-panel, #252526)`,border:`1px solid var(--vj-border, #333333)`,boxShadow:`0 4px 12px rgba(0,0,0,0.3)`},children:m.map((e,n)=>(0,I.jsxs)(`div`,{onMouseDown:t=>{t.preventDefault(),h(e)},onMouseEnter:()=>d(n),style:{padding:`4px 12px`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,display:`flex`,alignItems:`center`,gap:6,color:n===u?`var(--vj-text, #cccccc)`:`var(--vj-text-muted, #888888)`,backgroundColor:n===u?`var(--vj-bg-hover, #2a2d2e)`:`transparent`,cursor:`pointer`,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`},children:[(0,I.jsx)(`span`,{style:{width:14,flexShrink:0,fontSize:12},children:e===t?`✓`:``}),e]},e))})]})}function re(e,t,n){if(!e)return;let r=D(e,n,t);if(r)return T(r,t??e)}function ie(e){return e.type===`boolean`||e.type===`null`?`var(--vj-boolean, #569cd6)`:e.type===`number`?`var(--vj-number, #b5cea8)`:`var(--vj-string, #ce9178)`}function ae(e){return e.type===`null`?`null`:e.type===`boolean`?String(e.value):e.value===null||e.value===void 0?``:String(e.value)}function oe({node:e,schema:t,rootSchema:r,depth:i,showDescriptions:a,showCounts:o,formSelectedNodeId:s,editingNodeId:c,collapsedIds:l,maxKeyLength:u,maxDepth:d,isFocused:f,dragState:_,onSelect:v,onToggleCollapse:y,onStartEditing:b,onDragStart:x,onDragOver:S,onDragEnd:C,onDrop:w}){let{state:T,actions:E}=R(),D=e.type===`object`||e.type===`array`,O=l.has(e.id),k=s===e.id,A=c===e.id,j=re(t,r,e.path),M=ce(e,t,r),[N,P]=(0,n.useState)(!1),F=e.parentId===null,L=_.dropTargetNodeId===e.id,z=_.draggedNodeId===e.id;function B(t){t.preventDefault();let n=t.currentTarget.getBoundingClientRect(),r=n.top+n.height/2;S(e.id,t.clientY<r?`before`:`after`)}let V=`none`,H=`none`;L&&_.dropPosition===`before`?V=`2px solid var(--vj-accent, #007acc)`:L&&_.dropPosition===`after`&&(H=`2px solid var(--vj-accent, #007acc)`);let W=(0,n.useRef)(null),G=(0,n.useRef)(null);(0,n.useEffect)(()=>{A&&(D?G.current&&G.current.focus():e.value!==null&&e.value!==void 0&&e.value!==``&&W.current?W.current.focus():G.current&&G.current.focus())},[A,D,e.value]);let K=(0,n.useCallback)(t=>{let n;if(j?.type===`boolean`||t===`true`||t===`false`)n=t===`true`;else if(t===`null`)n=null;else if(j?.type===`number`||j?.type===`integer`||e.type===`number`){let e=Number(t);n=isNaN(e)?t:e}else n=t;let r=p(T.tree,e.id,n);E.setTree(r)},[T.tree,e.id,e.type,E,j]),q=(0,n.useCallback)(t=>{let n=m(T.tree,e.id,t);E.setTree(n)},[T.tree,e.id,E]),J=(0,n.useCallback)(()=>{let t=g(T.tree,e.id);E.setTree(t)},[T.tree,e.id,E]),ee=(0,n.useCallback)(()=>{let t=e.type===`array`?String(e.children.length):`newKey${e.children.length}`,n=h(T.tree,e.id,t,``);E.setTree(n)},[T.tree,e.id,e.type,e.children.length,E]),te=j?.description;j?.default;let Y=j?.deprecated,ne=j?.title,X=e.parentId&&T.tree.nodesById.get(e.parentId)?.type===`object`,Z=k?f?`var(--vj-bg-selected, #2a5a1e)`:`var(--vj-bg-selected-muted, var(--vj-bg-hover, #2a2d2e))`:N?`var(--vj-bg-hover, #2a2d2e)`:`transparent`,Q=k&&f?`var(--vj-text-selected, var(--vj-text, #cccccc))`:`var(--vj-text, #cccccc)`;if(D)return(0,I.jsxs)(`div`,{children:[(0,I.jsxs)(`div`,{"data-form-node-id":e.id,draggable:!F,onDragStart:t=>{t.dataTransfer.effectAllowed=`move`,x(e.id)},onDragOver:B,onDragEnd:C,onDrop:e=>{e.preventDefault(),w()},style:{display:`flex`,alignItems:`center`,gap:6,padding:`3px 8px`,paddingLeft:8+i*16,cursor:`pointer`,backgroundColor:Z,color:Q,height:28,userSelect:`none`,opacity:Y?.5:z?.4:1,borderTop:V,borderBottom:H},onClick:t=>{t.stopPropagation(),v(e.id)},onDoubleClick:()=>y(e.id),onMouseEnter:()=>P(!0),onMouseLeave:()=>P(!1),children:[(0,I.jsx)(`button`,{onClick:t=>{t.stopPropagation(),y(e.id)},style:{background:`none`,border:`none`,color:`inherit`,cursor:`pointer`,padding:0,width:16,fontSize:9,flexShrink:0,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,transition:`transform 0.15s`,transform:O?`rotate(0deg)`:`rotate(90deg)`},children:`▶`}),A&&!F?(0,I.jsx)(`input`,{ref:G,value:e.key,onChange:e=>q(e.target.value),onClick:e=>e.stopPropagation(),style:{background:`none`,border:`none`,color:`inherit`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,fontWeight:500,padding:0,outline:`none`,flexShrink:0,width:`calc(${(d-i)*16}px + ${u}ch)`}}):(0,I.jsx)(`span`,{style:{color:!F&&!X&&!k?`var(--vj-text-muted, #888888)`:`inherit`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,fontWeight:500,flexShrink:0,display:`inline-block`,width:`calc(${(d-i)*16}px + ${u}ch)`},children:F?`/`:U(e,T.tree)}),a&&ne&&!k&&(0,I.jsx)(`span`,{style:{color:`var(--vj-text-muted, #888888)`,fontSize:11,fontFamily:`var(--vj-font, monospace)`},children:ne}),N&&(0,I.jsxs)(`button`,{onClick:e=>{e.stopPropagation(),ee()},style:{background:`none`,border:`none`,color:k?`inherit`:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:0,fontSize:12,fontFamily:`var(--vj-font, monospace)`},children:[`+ Add `,e.type===`array`?`item`:`property`]}),o&&(0,I.jsx)(`span`,{style:{color:k?`inherit`:`var(--vj-text-dim, #666666)`,fontSize:12,fontFamily:`var(--vj-font, monospace)`,marginLeft:`auto`},children:e.type===`array`?`${e.children.length} items`:`${e.children.length} properties`}),!F&&A&&(0,I.jsx)(`button`,{onClick:e=>{e.stopPropagation(),J()},style:{background:`none`,border:`none`,color:k?`inherit`:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px 4px`,fontSize:14,fontFamily:`var(--vj-font, monospace)`,...o?{}:{marginLeft:`auto`}},title:`Remove`,children:`×`})]}),a&&te&&(0,I.jsx)(`div`,{style:{padding:`2px 12px 4px`,paddingLeft:8+i*16+22,fontSize:11,color:`var(--vj-text-dim, #666666)`,fontFamily:`var(--vj-font, monospace)`},children:te}),!O&&(0,I.jsx)(`div`,{children:e.children.map(e=>(0,I.jsx)(oe,{node:e,schema:t,rootSchema:r,depth:i+1,showDescriptions:a,showCounts:o,formSelectedNodeId:s,editingNodeId:c,collapsedIds:l,maxKeyLength:u,maxDepth:d,isFocused:f,dragState:_,onSelect:v,onToggleCollapse:y,onStartEditing:b,onDragStart:x,onDragOver:S,onDragEnd:C,onDrop:w},e.id))})]});let le=ae(e),ue=ie(e);return(0,I.jsxs)(`div`,{"data-form-node-id":e.id,draggable:!F,onDragStart:t=>{t.dataTransfer.effectAllowed=`move`,x(e.id)},onDragOver:B,onDragEnd:C,onDrop:e=>{e.preventDefault(),w()},style:{display:`flex`,alignItems:`center`,gap:6,padding:`3px 8px`,paddingLeft:8+i*16,cursor:`pointer`,backgroundColor:Z,color:Q,height:28,userSelect:`none`,opacity:Y?.5:z?.4:1,borderTop:V,borderBottom:H},onClick:t=>{t.stopPropagation(),v(e.id)},onDoubleClick:()=>b(e.id),onMouseEnter:()=>P(!0),onMouseLeave:()=>P(!1),children:[(0,I.jsx)(`span`,{style:{width:16,flexShrink:0}}),A&&X?(0,I.jsx)(`input`,{ref:G,value:e.key,onChange:e=>q(e.target.value),onClick:e=>e.stopPropagation(),onKeyDown:e=>{e.key===`Tab`&&!e.shiftKey&&W.current&&(e.preventDefault(),W.current.focus())},style:{background:`none`,border:`none`,color:`inherit`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:0,flexShrink:0,outline:`none`,width:`calc(${(d-i)*16}px + ${u}ch)`}}):(0,I.jsx)(`span`,{style:{color:!X&&!k?`var(--vj-text-muted, #888888)`:`inherit`,fontSize:13,fontFamily:`var(--vj-font, monospace)`,flexShrink:0,display:`inline-block`,width:`calc(${(d-i)*16}px + ${u}ch)`},children:U(e,T.tree)}),M&&!k&&(0,I.jsx)(`span`,{style:{color:`var(--vj-error, #f48771)`,fontSize:10,fontFamily:`var(--vj-font, monospace)`},children:`*`}),A?(0,I.jsx)(`div`,{style:{flex:1,display:`flex`,alignItems:`center`,gap:6,minWidth:0},children:se(e,j,le,K,W,ue)}):(0,I.jsx)(`span`,{style:{color:ue,fontSize:13,fontFamily:`var(--vj-font, monospace)`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontStyle:e.type===`null`?`italic`:void 0},children:le}),A&&(0,I.jsx)(`button`,{onClick:e=>{e.stopPropagation(),J()},style:{background:`none`,border:`none`,color:k?`inherit`:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px 4px`,fontSize:14,fontFamily:`var(--vj-font, monospace)`,flexShrink:0},title:`Remove`,children:`×`})]})}function se(e,t,n,r,i,a){let o=t?.enum&&t.enum.length>0,s={background:`none`,border:`none`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:0,flex:1,outline:`none`,color:a};return e.type===`boolean`?(0,I.jsx)(X,{enumValues:[`true`,`false`],value:String(e.value),onValueChange:r,inputRef:i,inputStyle:s}):o&&t?.enum?(0,I.jsx)(X,{enumValues:t.enum,value:n,onValueChange:r,inputRef:i,inputStyle:s}):e.type===`null`?(0,I.jsx)(`span`,{style:{color:`var(--vj-boolean, #569cd6)`,fontFamily:`var(--vj-font, monospace)`,fontSize:13,fontStyle:`italic`,flex:1},children:`null`}):(0,I.jsx)(`input`,{ref:i,value:n,onChange:e=>r(e.target.value),onClick:e=>e.stopPropagation(),placeholder:t?.default===void 0?`<value>`:String(t.default),style:s})}function ce(e,t,n){return!t||!e.parentId?!1:re(t,n,e.path.split(`/`).slice(0,-1).join(`/`)||`/`)?.required?.includes(e.key)??!1}function Z({className:e,showDescriptions:t=!1,showCounts:r=!1}){let{state:i,actions:a}=R(),o=i.schema??void 0,s=(i.selectedNodeId?i.tree.nodesById.get(i.selectedNodeId):null)??i.tree.root,[c,l]=(0,n.useState)(null),[u,d]=(0,n.useState)(null),f=(0,n.useRef)(null),[p,m]=(0,n.useState)(()=>new Set),h=(0,n.useRef)(null),[_,v]=(0,n.useState)(!1),{dragState:y,handleDragStart:b,handleDragOver:x,handleDragEnd:S,handleDrop:C}=K();(0,n.useEffect)(()=>{l(null),d(null),m(new Set)},[s.id]);let w=(0,n.useMemo)(()=>W(s,e=>!p.has(e)),[s,p]),{maxKeyLength:T,maxDepth:E}=(0,n.useMemo)(()=>{let e=1,t=0,n=s.path===`/`?0:s.path.split(`/`).filter(Boolean).length;for(let r of w){let a=r.parentId===null?`/`:U(r,i.tree);a.length>e&&(e=a.length);let o=(r.path===`/`?0:r.path.split(`/`).filter(Boolean).length)-n;o>t&&(t=o)}return{maxKeyLength:e,maxDepth:t}},[w,s.path,i.tree]),D=(0,n.useCallback)(e=>{l(e),d(null)},[]),O=(0,n.useCallback)(e=>{m(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},[]),k=(0,n.useCallback)(e=>{f.current=i.tree,d(e)},[i.tree]),A=(0,n.useCallback)(e=>{requestAnimationFrame(()=>{(h.current?.querySelector(`[data-form-node-id="${e}"]`))?.scrollIntoView({block:`nearest`})})},[]),j=(0,n.useCallback)(e=>{if(u){e.key===`Escape`?(e.preventDefault(),e.stopPropagation(),f.current&&=(a.setTree(f.current),null),d(null),h.current?.focus()):e.key===`Enter`&&(e.preventDefault(),e.stopPropagation(),f.current=null,d(null),h.current?.focus());return}let t=w.findIndex(e=>e.id===c);switch(e.key){case`ArrowDown`:{e.preventDefault();let n=w[t+1];n&&(l(n.id),A(n.id));break}case`ArrowUp`:{e.preventDefault();let n=w[t-1];n&&(l(n.id),A(n.id));break}case`ArrowRight`:{e.preventDefault();let n=t>=0?w[t]:null;n&&(n.type===`object`||n.type===`array`)&&(p.has(n.id)?m(e=>{let t=new Set(e);return t.delete(n.id),t}):n.children.length>0&&(l(n.children[0].id),A(n.children[0].id)));break}case`ArrowLeft`:{e.preventDefault();let n=t>=0?w[t]:null;if(!n)break;if((n.type===`object`||n.type===`array`)&&!p.has(n.id))m(e=>{let t=new Set(e);return t.add(n.id),t});else if(n.parentId){let e=w.find(e=>e.id===n.parentId);e&&(l(e.id),A(e.id))}break}case`Enter`:e.preventDefault(),c&&(f.current=i.tree,d(c));break;case`Escape`:e.preventDefault(),d(null);break;case`Delete`:case`Backspace`:{e.preventDefault();let n=t>=0?w[t]:null;if(n&&n.parentId){let e=w[t+1]??w[t-1],r=g(i.tree,n.id);a.setTree(r),e&&e.id!==n.id?l(e.id):l(null)}break}}},[w,c,u,p,A,i.tree,a]);return(0,I.jsxs)(`div`,{className:e,style:{backgroundColor:`var(--vj-bg, #1e1e1e)`,color:`var(--vj-text, #cccccc)`,height:`100%`,fontFamily:`var(--vj-font, monospace)`,display:`flex`,flexDirection:`column`},children:[(0,I.jsx)(`div`,{style:{padding:`4px 8px`,borderBottom:`1px solid var(--vj-border, #333333)`,backgroundColor:`var(--vj-bg-panel, #252526)`,flexShrink:0},children:(0,I.jsx)(Y,{})}),(0,I.jsx)(`div`,{ref:h,"data-form-container":!0,tabIndex:0,onKeyDown:j,onFocus:()=>v(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||v(!1)},style:{flex:1,overflow:`auto`,outline:`none`},children:(0,I.jsx)(oe,{node:s,schema:i.schema,rootSchema:o,depth:0,showDescriptions:t,showCounts:r,formSelectedNodeId:c,editingNodeId:u,collapsedIds:p,maxKeyLength:T,maxDepth:E,isFocused:_,dragState:y,onSelect:D,onToggleCollapse:O,onStartEditing:k,onDragStart:b,onDragOver:x,onDragEnd:S,onDrop:C})})]})}function Q({className:e}){let{state:t,actions:r}=R(),i=(0,n.useRef)(null),a=(0,n.useCallback)(e=>{e.key===`Enter`&&(e.preventDefault(),e.shiftKey?r.prevSearchMatch():r.nextSearchMatch()),e.key===`Escape`&&(e.preventDefault(),r.setSearchQuery(``),i.current?.blur())},[r]);(0,n.useEffect)(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.key===`f`&&(e.preventDefault(),i.current?.focus(),i.current?.select())}return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[]);let o=t.searchMatches.length,s=o>0?t.searchMatchIndex+1:0;return(0,I.jsxs)(`div`,{className:e,style:{display:`flex`,alignItems:`center`,gap:6,padding:`4px 8px`,backgroundColor:`var(--vj-bg-panel, #252526)`,borderBottom:`1px solid var(--vj-border, #333333)`},children:[(0,I.jsx)(`input`,{ref:i,type:`text`,value:t.searchQuery,onChange:e=>r.setSearchQuery(e.target.value),onKeyDown:a,placeholder:`Search...`,style:{flex:1,background:`none`,border:`none`,borderRadius:3,color:`var(--vj-text, #cccccc)`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:`3px 8px`,outline:`none`,minWidth:0}}),(0,I.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,gap:2,flexShrink:0,height:18},children:t.searchQuery?(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{style:{fontSize:11,lineHeight:1,color:o>0?`var(--vj-text-muted, #999999)`:`var(--vj-error, #f48771)`,fontFamily:`var(--vj-font, monospace)`,whiteSpace:`nowrap`},children:o>0?`${s}/${o}`:`0/0`}),(0,I.jsx)(`button`,{onClick:r.prevSearchMatch,disabled:o===0,"aria-label":`Previous match (Shift+Enter)`,style:{background:`none`,border:`none`,color:o>0?`var(--vj-text, #cccccc)`:`var(--vj-text-dimmer, #555555)`,cursor:o>0?`pointer`:`default`,padding:0,fontSize:10,lineHeight:1,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,width:18,height:18},title:`Previous match (Shift+Enter)`,children:`▲`}),(0,I.jsx)(`button`,{onClick:r.nextSearchMatch,disabled:o===0,"aria-label":`Next match (Enter)`,style:{background:`none`,border:`none`,color:o>0?`var(--vj-text, #cccccc)`:`var(--vj-text-dimmer, #555555)`,cursor:o>0?`pointer`:`default`,padding:0,fontSize:10,lineHeight:1,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,width:18,height:18},title:`Next match (Enter)`,children:`▼`}),(0,I.jsx)(`button`,{onClick:()=>r.setSearchQuery(``),"aria-label":`Clear search (Esc)`,style:{background:`none`,border:`none`,color:`var(--vj-text, #cccccc)`,cursor:`pointer`,padding:0,fontSize:14,lineHeight:1,display:`inline-flex`,alignItems:`center`,justifyContent:`center`,width:18,height:18},title:`Clear search (Esc)`,children:`×`})]}):(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`button`,{onClick:r.expandAll,"aria-label":`Expand all`,style:{background:`none`,border:`none`,color:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px`,fontSize:12,lineHeight:1,display:`inline-flex`,alignItems:`center`},title:`Expand all`,children:(0,I.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,I.jsx)(`path`,{d:`M8 2v4M5 4l3-2 3 2`}),(0,I.jsx)(`path`,{d:`M8 14v-4M5 12l3 2 3-2`}),(0,I.jsx)(`path`,{d:`M2 8h12`})]})}),(0,I.jsx)(`button`,{onClick:r.collapseAll,"aria-label":`Collapse all`,style:{background:`none`,border:`none`,color:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px`,fontSize:12,lineHeight:1,display:`inline-flex`,alignItems:`center`},title:`Collapse all`,children:(0,I.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 16 16`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.5`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,I.jsx)(`path`,{d:`M8 5V1M5 3l3 2 3-2`}),(0,I.jsx)(`path`,{d:`M8 11v4M5 13l3-2 3 2`}),(0,I.jsx)(`path`,{d:`M2 8h12`})]})})]})})]})}var le={"--vj-bg":`#1e1e1e`,"--vj-bg-panel":`#252526`,"--vj-bg-hover":`#2a2d2e`,"--vj-bg-selected":`#2a5a1e`,"--vj-bg-selected-muted":`#2a2d2e`,"--vj-bg-match":`#3a3520`,"--vj-bg-match-active":`#51502b`,"--vj-border":`#333333`,"--vj-border-subtle":`#2a2a2a`,"--vj-text":`#cccccc`,"--vj-text-muted":`#888888`,"--vj-text-dim":`#666666`,"--vj-text-dimmer":`#555555`,"--vj-string":`#ce9178`,"--vj-number":`#b5cea8`,"--vj-boolean":`#569cd6`,"--vj-accent":`#007acc`,"--vj-accent-muted":`#094771`,"--vj-input-bg":`#3c3c3c`,"--vj-input-border":`#555555`,"--vj-error":`#f48771`,"--vj-font":`monospace`,"--vj-input-font-size":`13px`};function ue({value:e,defaultValue:t,onChange:r,schema:i,height:a=`100%`,width:o=`100%`,className:s,style:c,readOnly:l,treeShowValues:u=!0,treeShowCounts:d=!1,editorShowDescriptions:f=!1,editorShowCounts:p=!1,sidebarOpen:m=!0}){let h=e!==void 0,g=h?e:t??{},[_,v]=(0,n.useState)(0),y=(0,n.useRef)(g);(0,n.useEffect)(()=>{h&&e!==y.current&&(y.current=e,v(e=>e+1))},[e,h]);let b=(0,n.useCallback)(e=>{y.current=e,l||r?.(e)},[r,l]),x={height:typeof a==`number`?`${a}px`:a,width:typeof o==`number`?`${o}px`:o,display:`flex`,flexDirection:`column`,overflow:`hidden`,...le,...c};return(0,I.jsxs)(`div`,{className:s,"data-vj-root":``,style:x,children:[(0,I.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`@media(pointer:coarse){[data-vj-root]{--vj-input-font-size:16px}}`}}),(0,I.jsx)(B,{value:y.current,onChange:l?void 0:b,schema:i,children:(0,I.jsx)(de,{treeShowValues:u,treeShowCounts:d,editorShowDescriptions:f,editorShowCounts:p,sidebarOpen:m})},_)]})}function de({treeShowValues:e,treeShowCounts:t,editorShowDescriptions:r,editorShowCounts:i,sidebarOpen:a}){let[o,s]=(0,n.useState)(280),[c,l]=(0,n.useState)(!1),[u,d]=(0,n.useState)(`tree`),f=(0,n.useRef)(null),p=(0,n.useRef)(!1),m=(0,n.useRef)(0),h=(0,n.useRef)(0);(0,n.useEffect)(()=>{function e(){f.current&&l(f.current.offsetWidth<500)}e();let t=new ResizeObserver(e);return f.current&&t.observe(f.current),()=>t.disconnect()},[]);let g=(0,n.useCallback)(e=>{p.current=!0,m.current=e.clientX,h.current=o,document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let t=e=>{if(!p.current)return;let t=e.clientX-m.current;s(Math.max(180,Math.min(600,h.current+t)))},n=()=>{p.current=!1,document.body.style.cursor=``,document.body.style.userSelect=``,document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n)};document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)},[o]);return c?a?(0,I.jsxs)(`div`,{ref:f,style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:[(0,I.jsxs)(`div`,{style:{display:`flex`,flexShrink:0,borderBottom:`1px solid var(--vj-border, #333333)`,backgroundColor:`var(--vj-bg-panel, #252526)`},children:[(0,I.jsx)(`button`,{onClick:()=>d(`tree`),style:{flex:1,fontSize:11,padding:`4px 0`,cursor:`pointer`,fontFamily:`var(--vj-font, monospace)`,border:`none`,background:u===`tree`?`var(--vj-accent-muted, #094771)`:`transparent`,color:u===`tree`?`var(--vj-text, #cccccc)`:`var(--vj-text-muted, #999999)`},children:`Tree`}),(0,I.jsx)(`button`,{onClick:()=>d(`form`),style:{flex:1,fontSize:11,padding:`4px 0`,cursor:`pointer`,fontFamily:`var(--vj-font, monospace)`,border:`none`,background:u===`form`?`var(--vj-accent-muted, #094771)`:`transparent`,color:u===`form`?`var(--vj-text, #cccccc)`:`var(--vj-text-muted, #999999)`},children:`Form`})]}),(0,I.jsx)(`div`,{style:{flex:1,minHeight:0,overflow:`hidden`},children:u===`tree`?(0,I.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100%`},children:[(0,I.jsx)(Q,{}),(0,I.jsx)(`div`,{style:{flex:1,minHeight:0,overflow:`auto`},children:(0,I.jsx)(J,{showValues:e,showCounts:t})})]}):(0,I.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,height:`100%`},children:(0,I.jsx)(`div`,{style:{flex:1,minHeight:0},children:(0,I.jsx)(Z,{showDescriptions:r,showCounts:i})})})})]}):(0,I.jsx)(`div`,{ref:f,style:{display:`flex`,flexDirection:`column`,flex:1,minHeight:0},children:(0,I.jsx)(`div`,{style:{flex:1,minHeight:0},children:(0,I.jsx)(Z,{showDescriptions:r,showCounts:i})})}):(0,I.jsxs)(`div`,{ref:f,style:{display:`flex`,flex:1,minHeight:0},children:[(0,I.jsxs)(`div`,{style:{flexShrink:0,overflow:`hidden`,display:`flex`,flexDirection:`column`,width:a?o:0,transition:`width 0.2s ease`},children:[(0,I.jsx)(Q,{}),(0,I.jsx)(`div`,{style:{flex:1,minHeight:0,overflow:`auto`},children:(0,I.jsx)(J,{showValues:e,showCounts:t})})]}),a&&(0,I.jsx)(`div`,{style:{width:1,flexShrink:0,backgroundColor:`var(--vj-border, #333333)`,position:`relative`,transition:`background-color 0.15s`},children:(0,I.jsx)(`div`,{onMouseDown:g,onMouseEnter:e=>{let t=e.currentTarget.parentElement;t&&(t.style.backgroundColor=`var(--vj-accent, #007acc)`)},onMouseLeave:e=>{if(!p.current){let t=e.currentTarget.parentElement;t&&(t.style.backgroundColor=`var(--vj-border, #333333)`)}},style:{position:`absolute`,top:0,bottom:0,left:-3,width:7,cursor:`col-resize`,zIndex:10}})}),(0,I.jsx)(`div`,{style:{display:`flex`,flexDirection:`column`,flex:1,minWidth:0,overflow:`hidden`},children:(0,I.jsx)(`div`,{style:{flex:1,minHeight:0},children:(0,I.jsx)(Z,{showDescriptions:r,showCounts:i})})})]})}var fe=[`string`,`number`,`boolean`,`null`,`object`,`array`];function pe({node:e,schemaProperty:t}){let{state:r,actions:i}=R(),a=e.type===`object`||e.type===`array`,[o,s]=(0,n.useState)(!1),c=(0,n.useRef)(null);function l(n){let a;a=n===`null`?null:n===`true`?!0:n===`false`?!1:(e.type===`number`||t?.type===`number`||t?.type===`integer`)&&!isNaN(Number(n))&&n.trim()!==``?Number(n):n;let o=p(r.tree,e.id,a);i.setTree(o)}function u(t){let n=m(r.tree,e.id,t);i.setTree(n)}function d(){let t=g(r.tree,e.id);i.setTree(t)}function f(){let t=e.type===`array`?String(e.children.length):`key${e.children.length}`,n=h(r.tree,e.id,t,``);i.setTree(n)}function _(){return a?e.type===`array`?`[${e.children.length} items]`:`{${e.children.length} keys}`:e.value===null||e.value===void 0||typeof e.value==`string`&&e.value===``?``:String(e.value)}let v=t?.enum&&t.enum.length>0,y=t?.description;return(0,I.jsxs)(`div`,{onMouseEnter:()=>s(!0),onMouseLeave:()=>s(!1),children:[(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:8,padding:`4px 12px`,borderBottom:`1px solid var(--vj-border-subtle, #2a2a2a)`,minHeight:32,backgroundColor:o?`var(--vj-bg-hover, #2a2d2e)`:`transparent`},children:[(0,I.jsx)(`input`,{value:e.key,onChange:e=>u(e.target.value),style:{background:`none`,border:`1px solid transparent`,borderRadius:3,color:`var(--vj-text, #cccccc)`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:`2px 6px`,width:140,flexShrink:0}}),a?(0,I.jsx)(`span`,{style:{color:`var(--vj-text-dim, #666666)`,fontFamily:`var(--vj-font, monospace)`,fontSize:13,flex:1,textAlign:`right`},children:_()}):v?(0,I.jsx)(X,{enumValues:t.enum,value:_(),onValueChange:l,inputRef:c,inputStyle:{background:`none`,border:`1px solid transparent`,borderRadius:3,color:e.type===`string`?`var(--vj-string, #ce9178)`:`var(--vj-number, #b5cea8)`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:`2px 6px`,flex:1,outline:`none`}}):(0,I.jsx)(`input`,{value:_(),onChange:e=>l(e.target.value),placeholder:`<value>`,style:{background:`none`,border:`1px solid transparent`,borderRadius:3,color:e.type===`string`?`var(--vj-string, #ce9178)`:`var(--vj-number, #b5cea8)`,fontFamily:`var(--vj-font, monospace)`,fontSize:`var(--vj-input-font-size, 13px)`,padding:`2px 6px`,flex:1,textAlign:`right`}}),(0,I.jsxs)(`div`,{style:{display:`flex`,gap:2,opacity:o?1:0,transition:`opacity 0.1s`,flexShrink:0},children:[a&&(0,I.jsx)(`button`,{onClick:f,style:{background:`none`,border:`none`,color:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px 4px`,fontSize:15,fontFamily:`var(--vj-font, monospace)`,borderRadius:3,lineHeight:1},title:`Add child`,children:`+`}),(0,I.jsx)(`button`,{onClick:d,style:{background:`none`,border:`none`,color:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`2px 4px`,fontSize:15,fontFamily:`var(--vj-font, monospace)`,borderRadius:3,lineHeight:1},title:`Remove`,children:`×`})]})]}),y&&(0,I.jsx)(`div`,{style:{padding:`2px 12px 4px 44px`,fontSize:11,color:`var(--vj-text-dim, #666666)`,fontFamily:`var(--vj-font, monospace)`,borderBottom:`1px solid var(--vj-border-subtle, #2a2a2a)`},children:y})]})}function me({className:e}){let{state:t,actions:r}=R(),i=t.selectedNodeId?t.tree.nodesById.get(t.selectedNodeId):null,a=(0,n.useCallback)(e=>{if(!i)return;let n=b(t.tree,i.id,e);r.setTree(n)},[t.tree,i,r]),o=(0,n.useCallback)(()=>{if(!i)return;let e=x(t.tree,i.id);r.setTree(e)},[t.tree,i,r]),s=(0,n.useCallback)(()=>{i&&navigator.clipboard.writeText(i.path).catch(()=>{})},[i]),l=(0,n.useCallback)(()=>{if(!i)return;let e=c(i),t=typeof e==`string`?e:JSON.stringify(e,null,2);navigator.clipboard.writeText(t).catch(()=>{})},[i]);if(!i)return(0,I.jsx)(`div`,{className:e,style:{display:`flex`,alignItems:`center`,justifyContent:`center`,backgroundColor:`var(--vj-bg, #1e1e1e)`,color:`var(--vj-text-dimmer, #555555)`,fontFamily:`var(--vj-font, monospace)`,fontSize:13,height:`100%`},children:`Select a node to edit`});let u=i.type===`object`||i.type===`array`,d=t.schema??void 0,f=d?.title;function p(e){if(!d||!i)return;let t=D(d,i.path===`/`?`/${e}`:`${i.path}/${e}`);return t?T(t,d):void 0}function m(){if(!i)return;let e=i.type===`array`?String(i.children.length):`key${i.children.length}`,n=h(t.tree,i.id,e,``);r.setTree(n)}return(0,I.jsxs)(`div`,{className:e,style:{backgroundColor:`var(--vj-bg, #1e1e1e)`,color:`var(--vj-text, #cccccc)`,overflow:`auto`,height:`100%`,display:`flex`,flexDirection:`column`},children:[(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:`6px 12px`,borderBottom:`1px solid var(--vj-border, #333333)`,fontSize:12,color:`var(--vj-text-muted, #999999)`,fontFamily:`var(--vj-font, monospace)`,flexShrink:0,backgroundColor:`var(--vj-bg-panel, #252526)`},children:[(0,I.jsxs)(`div`,{style:{display:`flex`,flexDirection:`column`,gap:2,flex:1,minWidth:0},children:[(0,I.jsx)(Y,{}),f&&(0,I.jsx)(`span`,{style:{fontSize:10,color:`var(--vj-text-dim, #666666)`},children:f})]}),(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:4,flexShrink:0},children:[(0,I.jsx)(`select`,{value:i.type,onChange:e=>a(e.target.value),style:{background:`var(--vj-input-bg, #3c3c3c)`,border:`1px solid var(--vj-input-border, #555555)`,borderRadius:3,color:`var(--vj-text, #cccccc)`,fontSize:`var(--vj-input-font-size, 13px)`,fontFamily:`var(--vj-font, monospace)`,padding:`1px 4px`,cursor:`pointer`},title:`Change type`,children:fe.map(e=>(0,I.jsx)(`option`,{value:e,children:e},e))}),(0,I.jsx)(`button`,{onClick:s,style:$,title:`Copy path`,children:`path`}),(0,I.jsx)(`button`,{onClick:l,style:$,title:`Copy value`,children:`value`}),i.parentId&&(0,I.jsx)(`button`,{onClick:o,style:$,title:`Duplicate`,children:`dup`}),u&&(0,I.jsx)(`button`,{onClick:m,style:{...$,border:`1px solid var(--vj-input-border, #555555)`},children:`+ Add`})]})]}),(0,I.jsx)(`div`,{style:{flex:1,overflow:`auto`},children:u?i.children.map(e=>(0,I.jsx)(pe,{node:e,schemaProperty:p(e.key)},e.id)):(0,I.jsx)(pe,{node:i})})]})}var $={background:`none`,border:`none`,borderRadius:3,color:`var(--vj-text-muted, #888888)`,cursor:`pointer`,padding:`1px 6px`,fontSize:11,fontFamily:`var(--vj-font, monospace)`},he={added:{bg:`#1e3a1e`,marker:`+`,label:`#4ec94e`},removed:{bg:`#3a1e1e`,marker:`-`,label:`#f48771`},changed:{bg:`#3a3a1e`,marker:`~`,label:`#dcdcaa`}};function ge(e){if(e===void 0)return``;if(e===null)return`null`;if(typeof e==`string`)return JSON.stringify(e);if(typeof e==`object`){let t=JSON.stringify(e,null,2);return t.length>80?JSON.stringify(e).slice(0,77)+`...`:t}return String(e)}function _e({entry:e}){let t=he[e.type];return(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`flex-start`,padding:`3px 12px`,borderBottom:`1px solid var(--vj-border-subtle, #2a2a2a)`,backgroundColor:t.bg,fontFamily:`var(--vj-font, monospace)`,fontSize:12,gap:8},children:[(0,I.jsx)(`span`,{style:{color:t.label,fontWeight:600,width:14,flexShrink:0,textAlign:`center`},children:t.marker}),(0,I.jsx)(`span`,{style:{color:`var(--vj-text, #cccccc)`,flexShrink:0,minWidth:100},children:e.path}),(0,I.jsxs)(`span`,{style:{flex:1,display:`flex`,gap:8,overflow:`hidden`},children:[e.type===`changed`&&(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(`span`,{style:{color:`#f48771`,textDecoration:`line-through`},children:ge(e.oldValue)}),(0,I.jsx)(`span`,{style:{color:`var(--vj-text-dim, #666666)`},children:`→`}),(0,I.jsx)(`span`,{style:{color:`#4ec94e`},children:ge(e.newValue)})]}),e.type===`added`&&(0,I.jsx)(`span`,{style:{color:`#4ec94e`},children:ge(e.newValue)}),e.type===`removed`&&(0,I.jsx)(`span`,{style:{color:`#f48771`,textDecoration:`line-through`},children:ge(e.oldValue)})]})]})}function ve({originalJson:e,currentJson:t,className:r}){let i=(0,n.useMemo)(()=>N(e,t),[e,t]),a=i.filter(e=>e.type===`added`).length,o=i.filter(e=>e.type===`removed`).length,s=i.filter(e=>e.type===`changed`).length;return(0,I.jsxs)(`div`,{className:r,style:{backgroundColor:`var(--vj-bg, #1e1e1e)`,color:`var(--vj-text, #cccccc)`,overflow:`auto`,height:`100%`,display:`flex`,flexDirection:`column`},children:[(0,I.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,gap:12,padding:`6px 12px`,borderBottom:`1px solid var(--vj-border, #333333)`,backgroundColor:`var(--vj-bg-panel, #252526)`,fontFamily:`var(--vj-font, monospace)`,fontSize:12,flexShrink:0},children:[(0,I.jsx)(`span`,{style:{color:`var(--vj-text-muted, #999999)`},children:i.length===0?`No changes`:`${i.length} changes`}),a>0&&(0,I.jsxs)(`span`,{style:{color:`#4ec94e`},children:[`+`,a,` added`]}),o>0&&(0,I.jsxs)(`span`,{style:{color:`#f48771`},children:[`-`,o,` removed`]}),s>0&&(0,I.jsxs)(`span`,{style:{color:`#dcdcaa`},children:[`~`,s,` modified`]})]}),(0,I.jsx)(`div`,{style:{flex:1,overflow:`auto`},children:i.length===0?(0,I.jsx)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`center`,height:`100%`,color:`var(--vj-text-dimmer, #555555)`,fontFamily:`var(--vj-font, monospace)`,fontSize:13},children:`No differences detected`}):i.map((e,t)=>(0,I.jsx)(_e,{entry:e},t))})]})}export{Y as Breadcrumbs,V as ContextMenu,ve as DiffView,Z as FormView,ue as JsonEditor,me as PropertyEditor,Q as SearchBar,L as StudioContext,J as TreeView,B as VisualJson,W as getVisibleNodes,R as useStudio};
|