dsh-webui-studio 0.1.0
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/LICENSE +21 -0
- package/PRODUCT.md +74 -0
- package/README.md +213 -0
- package/README.zh-CN.md +196 -0
- package/assets/harmony-icon-mono.png +0 -0
- package/assets/harmony-icon.png +0 -0
- package/dist/bridge.js +13 -0
- package/dist/studio.css +2 -0
- package/dist/studio.js +30429 -0
- package/docs/harmony-api-requirements.md +24 -0
- package/docs/source-baseline.md +55 -0
- package/lib/contracts.d.ts +246 -0
- package/lib/contracts.js +4 -0
- package/lib/host/agent.d.ts +31 -0
- package/lib/host/agent.js +128 -0
- package/lib/host/backend.d.ts +25 -0
- package/lib/host/backend.js +321 -0
- package/lib/host/build.d.ts +26 -0
- package/lib/host/build.js +137 -0
- package/lib/host/drafts.d.ts +23 -0
- package/lib/host/drafts.js +394 -0
- package/lib/host/preview-worker.d.ts +11 -0
- package/lib/host/preview-worker.js +110 -0
- package/lib/host/preview.d.ts +42 -0
- package/lib/host/preview.js +249 -0
- package/lib/host/project-files.d.ts +8 -0
- package/lib/host/project-files.js +110 -0
- package/lib/host/readiness.d.ts +11 -0
- package/lib/host/readiness.js +247 -0
- package/lib/host/routes.d.ts +17 -0
- package/lib/host/routes.js +163 -0
- package/lib/host/runtime-profile.d.ts +16 -0
- package/lib/host/runtime-profile.js +85 -0
- package/lib/host/source-resolution.d.ts +7 -0
- package/lib/host/source-resolution.js +154 -0
- package/lib/host/workspace.d.ts +7 -0
- package/lib/host/workspace.js +66 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +67 -0
- package/package.json +122 -0
package/dist/bridge.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
(function(){var e=`__DSH_HARMONY_STUDIO_RUNTIME__`,t=null,n=(()=>{if(t!==null)return t;try{t=window.matchMedia(`(color-gamut: p3)`).matches}catch{t=!1}return t})(),r=e=>n?`color(display-p3 0.84 0.19 0.78 / ${e})`:`rgba(210, 57, 192, ${e})`,i=[`/components/ui/`,`/packages/ui/`,`/design-system/`,`/design-systems/`,`/primitives/`],a=5e3,o=8e3,s=1e4,c=.5;r(.4),r(.05),r(.5),r(.08),r(.15);var l=new Set([`id`,`data-testid`,`aria-label`,`href`,`src`,`alt`,`type`,`name`,`placeholder`,`role`,`for`,`action`,`method`,`title`,`disabled`,`checked`,`readonly`,`required`,`selected`,`open`]),u=new Set([`a`,`code`,`pre`]),d=new Set([`script`,`style`,`template`,`noscript`]),f=`data-react-grab-frozen`,p=`data-react-grab-same-origin-frame`,m=new Set(`display.position.top.right.bottom.left.z-index.overflow.overflow-x.overflow-y.width.height.min-width.min-height.max-width.max-height.margin-top.margin-right.margin-bottom.margin-left.padding-top.padding-right.padding-bottom.padding-left.flex-direction.flex-wrap.justify-content.align-items.align-self.align-content.flex-grow.flex-shrink.flex-basis.order.gap.row-gap.column-gap.grid-template-columns.grid-template-rows.grid-template-areas.font-family.font-size.font-weight.font-style.line-height.letter-spacing.text-align.text-decoration-line.text-decoration-style.text-transform.text-overflow.text-shadow.white-space.word-break.overflow-wrap.vertical-align.color.background-color.background-image.background-position.background-size.background-repeat.border-top-width.border-right-width.border-bottom-width.border-left-width.border-top-style.border-right-style.border-bottom-style.border-left-style.border-top-color.border-right-color.border-bottom-color.border-left-color.border-top-left-radius.border-top-right-radius.border-bottom-left-radius.border-bottom-right-radius.box-shadow.opacity.transform.filter.backdrop-filter.object-fit.object-position`.split(`.`)),h=e=>typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===Node.ELEMENT_NODE,ee=e=>h(e)&&e.namespaceURI===`http://www.w3.org/1999/xhtml`,te=e=>ee(e)&&e.tagName===`IFRAME`,ne=new WeakMap,g=e=>{let t=Number.parseFloat(e);return Number.isFinite(t)?t:0},re=e=>{let t=performance.now(),n=ne.get(e);if(n&&t-n.timestamp<16)return n.metrics;let r=e.ownerDocument.defaultView?.getComputedStyle(e),i;if(!r)i={contentOffsetX:e.clientLeft,contentOffsetY:e.clientTop,height:e.offsetHeight,width:e.offsetWidth};else{let t=g(r.borderLeftWidth),n=g(r.borderRightWidth),a=g(r.borderTopWidth),o=g(r.borderBottomWidth),s=g(r.paddingLeft),c=g(r.paddingRight),l=g(r.paddingTop),u=g(r.paddingBottom),d=g(r.width),f=g(r.height),p=t+n+s+c,m=a+o+l+u,h=r.boxSizing===`border-box`?d:d+p,ee=r.boxSizing===`border-box`?f:f+m;i={contentOffsetX:t+s,contentOffsetY:a+l,height:ee>0?ee:e.offsetHeight,width:h>0?h:e.offsetWidth}}return ne.set(e,{metrics:i,timestamp:t}),i},ie=(e,t)=>t>0?e/t:1,ae=e=>{if(!e)return null;try{return e.frameElement}catch{return null}},oe=(e,t,n)=>{let r=t,i=n,a=1,o=1,s=e;for(;s&&s!==window;){let e=ae(s);if(!e||!te(e))break;let t=e.getBoundingClientRect(),n=re(e),c=ie(t.width,n.width),l=ie(t.height,n.height);r=t.left+(n.contentOffsetX+r)*c,i=t.top+(n.contentOffsetY+i)*l,a*=c,o*=l,s=e.ownerDocument.defaultView}return{x:r,y:i,scaleX:a,scaleY:o}},_=e=>{let t=e.ownerDocument.defaultView;return t?t.getComputedStyle(e):window.getComputedStyle(e)},se=(e,t)=>e.replace(/([\d.]+)px/g,(e,n)=>{let r=Number(n)*Math.abs(t);return`${Number(r.toFixed(3))}px`}),ce=(e,t,n)=>{let[r,i]=e.split(`/`).map(e=>e.trim()),a=se(r,t),o=se(i??r,n);return i===void 0&&a===o?a:`${a} / ${o}`},le=e=>Object.assign(e,{[Symbol.dispose]:e}),ue=`bippy-0.6.1`,de=Object.defineProperty,fe=Object.prototype.hasOwnProperty,v=()=>{},pe=e=>{try{Function.prototype.toString.call(e).indexOf(`^_^`)>-1&&setTimeout(()=>{throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`)})}catch{}},me=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>!!(e&&`getFiberRoots`in e),he=!1,ge,_e=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>he?!0:(e&&typeof e.inject==`function`&&(ge=e.inject.toString()),!!ge?.includes(`(injected)`)),y=new Set,b=new Set,ve=e=>{e&&y.add(e);let t=new Map,n=0,r={_instrumentationIsActive:!1,_instrumentationSource:ue,checkDCE:pe,hasUnsupportedRendererAttached:!1,inject(e){let i=++n;return t.set(i,e),b.add(e),r._instrumentationIsActive||(r._instrumentationIsActive=!0,y.forEach(e=>e())),i},on:v,onCommitFiberRoot:v,onCommitFiberUnmount:v,onPostCommitFiberRoot:v,renderers:t,supportsFiber:!0,supportsFlight:!0};try{de(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{configurable:!0,enumerable:!0,get(){return r},set(t){if(t&&typeof t==`object`){let n=r.renderers;r=t,n.size>0&&(n.forEach((e,n)=>{b.add(e),t.renderers.set(n,e)}),ye(e))}}});let t=window.hasOwnProperty,n=!1;de(window,`hasOwnProperty`,{configurable:!0,value:function(...e){try{if(!n&&e[0]===`__REACT_DEVTOOLS_GLOBAL_HOOK__`)return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,n=!0,-0}catch{}return t.apply(this,e)},writable:!0})}catch{ye(e)}return r},ye=e=>{e&&y.add(e);try{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t)return;if(!t._instrumentationSource){t.checkDCE=pe,t.supportsFiber=!0,t.supportsFlight=!0,t.hasUnsupportedRendererAttached=!1,t._instrumentationSource=ue,t._instrumentationIsActive=!1;let e=me(t);if(e||(t.on=v),t.renderers.size){t._instrumentationIsActive=!0,y.forEach(e=>e());return}let n=t.inject,r=_e(t);r&&!e&&(he=!0,t.inject({scheduleRefresh(){}})&&(t._instrumentationIsActive=!0)),t.inject=e=>{let i=n(e);return b.add(e),r&&t.renderers.set(i,e),t._instrumentationIsActive=!0,y.forEach(e=>e()),i}}(t.renderers.size||t._instrumentationIsActive||_e())&&e?.()}catch{}},be=()=>fe.call(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`),xe=e=>be()?(ye(e),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__):ve(e),Se=()=>!!(typeof window<`u`&&(window.document?.createElement||window.navigator?.product===`ReactNative`));(()=>{try{Se()&&xe()}catch{}})();var Ce=e=>{switch(e.tag){case 1:case 11:case 0:case 14:case 15:return!0;default:return!1}},we=e=>!e||typeof e!=`object`?!1:`pendingProps`in e&&!(`containerInfo`in e);function x(e,t,n=!1){if(!e)return null;let r=t(e);if(r instanceof Promise)return(async()=>{if(await r===!0)return e;let i=n?e.return:e.child;for(;i;){let e=await Ee(i,t,n);if(e)return e;i=n?null:i.sibling}return null})();if(r===!0)return e;let i=n?e.return:e.child;for(;i;){let e=Te(i,t,n);if(e)return e;i=n?null:i.sibling}return null}var Te=(e,t,n=!1)=>{if(!e)return null;if(t(e)===!0)return e;let r=n?e.return:e.child;for(;r;){let e=Te(r,t,n);if(e)return e;r=n?null:r.sibling}return null},Ee=async(e,t,n=!1)=>{if(!e)return null;if(await t(e)===!0)return e;let r=n?e.return:e.child;for(;r;){let e=await Ee(r,t,n);if(e)return e;r=n?null:r.sibling}return null},De=e=>{let t=e;return typeof t==`function`?t:typeof t==`object`&&t?De(t.type||t.render):null},S=e=>{let t=e;if(typeof t==`string`)return t;if(typeof t!=`function`&&!(typeof t==`object`&&t))return null;let n=t.displayName||t.name||null;if(n)return n;let r=De(t);return r&&(r.displayName||r.name)||null},Oe=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;return!!e?._instrumentationIsActive||me(e)||_e(e)},ke=new Set,Ae=e=>{let t=e.alternate;if(!t)return e;if(t.actualStartTime&&e.actualStartTime)return t.actualStartTime>e.actualStartTime?t:e;for(let t of ke){let n=x(t.current,t=>{if(t===e)return!0});if(n)return n}return e},je=e=>{if(!be())return null;let t=e;for(;t.return;)t=t.return;let n=Ie.get(t.stateNode);return n===void 0?null:xe().renderers?.get(n)??null},Me=new Set,Ne=new Set,Pe=new Set,Fe=new Set,C=new WeakMap,Ie=new WeakMap,Le=e=>{let t=C.get(e)??{};if(C.set(e,t),!t.onCommitFiberRoot||e.onCommitFiberRoot!==t.onCommitFiberRoot){let n=e.onCommitFiberRoot,r=(t,i,a)=>{if(n?.(t,i,a),C.get(e)?.onCommitFiberRoot===r){ke.add(i),Ie.set(i,t);for(let e of Me)e(t,i,a)}};t.onCommitFiberRoot=r,e.onCommitFiberRoot=r}if(!t.onCommitFiberUnmount||e.onCommitFiberUnmount!==t.onCommitFiberUnmount){let n=e.onCommitFiberUnmount,r=(t,i)=>{if(n?.(t,i),C.get(e)?.onCommitFiberUnmount===r)for(let e of Ne)e(t,i)};t.onCommitFiberUnmount=r,e.onCommitFiberUnmount=r}if(!t.onPostCommitFiberRoot||e.onPostCommitFiberRoot!==t.onPostCommitFiberRoot){let n=e.onPostCommitFiberRoot,r=(t,i)=>{if(n?.(t,i),C.get(e)?.onPostCommitFiberRoot===r)for(let e of Pe)e(t,i)};t.onPostCommitFiberRoot=r,e.onPostCommitFiberRoot=r}if(!t.onScheduleFiberRoot||e.onScheduleFiberRoot!==t.onScheduleFiberRoot){let n=e.onScheduleFiberRoot,r=(t,i,a)=>{if(n?.(t,i,a),C.get(e)?.onScheduleFiberRoot===r)for(let e of Fe)e(t,i,a)};t.onScheduleFiberRoot=r,e.onScheduleFiberRoot=r}},Re=e=>{let t=xe(e.onActive);t._instrumentationSource=e.name??ue,Le(t);let{onActive:n,onCommitFiberRoot:r,onCommitFiberUnmount:i,onPostCommitFiberRoot:a,onScheduleFiberRoot:o}=e;return r&&Me.add(r),i&&Ne.add(i),a&&Pe.add(a),o&&Fe.add(o),le(()=>{n&&y.delete(n),r&&Me.delete(r),i&&Ne.delete(i),a&&Pe.delete(a),o&&Fe.delete(o)})},ze=new Set,Be=e=>e.startsWith(`__reactContainer$`)||e.startsWith(`__reactInternalInstance$`)||e.startsWith(`__reactFiber`),Ve=e=>{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t?.renderers)for(let n of t.renderers.values())try{let t=n.findFiberByHostInstance?.(e);if(t)return t}catch{}if(typeof e==`object`&&e){if(`_reactRootContainer`in e)return e._reactRootContainer?._internalRoot?.current?.child;let t=e.__internalInstanceHandle??e._internalInstanceHandle;if(we(t))return t;let n=e;for(let e of ze){let t=n[e];if(t)return t}for(let e of Object.keys(n))if(Be(e))return ze.add(e),n[e]||null;for(let t of ke){if(je(t.current)?.findFiberByHostInstance)continue;let n=x(t.current,t=>t.stateNode===e);if(n)return n}}return null},He=new WeakMap,Ue=(e,t)=>{He.set(e,t)},w=e=>He.get(e)??null,T=e=>w(e)?.getFiber()??Ve(e),We=new WeakMap,Ge=new WeakMap,Ke=(e,t,n)=>{let r=Ge.get(e);if(r&&n-r.timestamp<200)return r.borderRadius;let i=(t??_(e)).borderRadius||`0px`;return Ge.set(e,{borderRadius:i,timestamp:n}),i},qe=e=>{let t=performance.now(),n=We.get(e);if(n&&t-n.timestamp<16)return n.bounds;let r=w(e);if(r){let n=r.getBounds();return We.set(e,{bounds:n,timestamp:t}),n}let i=e.getBoundingClientRect(),a=oe(e.ownerDocument.defaultView,i.left,i.top),o={borderRadius:ce(Ke(e,null,t),a.scaleX,a.scaleY),height:i.height*a.scaleY,width:i.width*a.scaleX,x:a.x,y:a.y};return We.set(e,{bounds:o,timestamp:t}),o},E=e=>{let t=e.ownerDocument?.defaultView;return!!(t&&e instanceof t.ShadowRoot)},Je=class extends Error{constructor(e,t){super(e,t),this.name=`ReactGrabError`}},Ye=class extends Je{constructor(){super(`Can't generate CSS selector for non-element node type.`),this.name=`NonElementNodeError`}},Xe=class extends Je{constructor(e){super(`Timeout: Can't find a unique selector after ${e}ms`),this.name=`SelectorTimeoutError`,this.timeoutMs=e}},Ze=class extends Je{constructor(){super(`Selector was not found.`),this.name=`SelectorNotFoundError`}},Qe=e=>w(e)?.getTagName()??(e.tagName||``).toLowerCase(),$e=e=>typeof e==`object`&&!!e&&`nodeType`in e&&e.nodeType===9,et=e=>{if(e.assignedSlot)return e.assignedSlot;if(e.parentElement)return e.parentElement;let t=e.getRootNode();return E(t)?t.host:$e(t)?ae(t.defaultView):null},tt=typeof window<`u`,nt=e=>0,rt=e=>{},it=tt?(Object.getOwnPropertyDescriptor(Window.prototype,`requestAnimationFrame`)?.value??window.requestAnimationFrame).bind(window):nt,at=tt?(Object.getOwnPropertyDescriptor(Window.prototype,`cancelAnimationFrame`)?.value??window.cancelAnimationFrame).bind(window):rt,ot=e=>{try{return e.contentDocument}catch{return null}},st=(e,t,n)=>{let r=e.getBoundingClientRect(),i=re(e),a=ie(r.width,i.width),o=ie(r.height,i.height);return{x:(t-r.left)/a-i.contentOffsetX,y:(n-r.top)/o-i.contentOffsetY}},ct=e=>{let t=e;for(;t;){if(t.hasAttribute(`data-react-grab-ignore`))return!0;t=et(t)}return!1},lt=typeof Element<`u`&&typeof Element.prototype.checkVisibility==`function`,ut={checkOpacity:!0,checkVisibilityCSS:!0,opacityProperty:!0,visibilityProperty:!0},dt={checkVisibilityCSS:!0,visibilityProperty:!0},ft=(e,t)=>{if(lt&&!t)return e.checkVisibility(ut)?!0:e.checkVisibility(dt)?_(e).opacity!==`0`:!1;let n=t??_(e);return n.display!==`none`&&n.visibility!==`hidden`&&n.opacity!==`0`},pt=e=>{let t=Qe(e);return t===`html`||t===`body`},mt=[`data-react-grab`,`data-react-grab-demo`],ht=e=>mt.some(t=>e.hasAttribute(t)),gt=e=>{if(ht(e))return!0;let t=e.getRootNode();return E(t)&&ht(t.host)},_t=e=>{let t=parseInt(e.zIndex,10);return e.pointerEvents===`none`&&e.position===`fixed`&&!isNaN(t)&&t>=2147483600},vt=e=>{let t=e.backgroundColor;return t===`transparent`||t===`rgba(0, 0, 0, 0)`},yt=e=>{let t=e.position;if(t!==`fixed`&&t!==`absolute`)return!1;if(vt(e)||parseFloat(e.opacity)<.1)return!0;let n=parseInt(e.zIndex,10);return!isNaN(n)&&n>1e3},bt=new WeakMap,xt=e=>{let t=w(e);if(t)return t.isConnected();if(pt(e)||gt(e)||ct(e))return!1;let n=performance.now(),r=bt.get(e);if(r&&n-r.timestamp<50)return r.isVisible;if(!ft(e))return bt.set(e,{isVisible:!1,timestamp:n}),!1;if(e.clientWidth/(e.ownerDocument.defaultView?.innerWidth??window.innerWidth)>=.9&&e.clientHeight/(e.ownerDocument.defaultView?.innerHeight??window.innerHeight)>=.9){let t=_(e);if(_t(t)||yt(t))return!1}return bt.set(e,{isVisible:!0,timestamp:n}),!0},St=(e,t,n,r)=>{let i=e.elementsFromPoint(t,n),a=!0;for(let o of i){if(ct(o)&&(a=!1),a&&o.shadowRoot&&o.shadowRoot!==e&&St(o.shadowRoot,t,n,r),a&&te(o)){let e=ot(o);if(e){let i=st(o,t,n);St(e,i.x,i.y,r)}}r.add(o)}},Ct=(e,t)=>{let n=new Set;return St(document,e,t,n),[...n]};`${p}`;var wt=new WeakMap,Tt=new WeakMap,Et=[`name`,`position`,`rotation`,`scale`,`color`,`visible`,`args`],D=e=>typeof e==`object`&&!!e,Dt=e=>typeof e==`object`&&!!e||typeof e==`function`,O=(e,t)=>typeof e[t]==`function`,Ot=e=>D(e)&&typeof e.x==`number`&&typeof e.y==`number`&&typeof e.z==`number`&&O(e,`set`)&&O(e,`clone`)&&O(e,`applyMatrix4`)&&O(e,`project`),kt=e=>D(e)&&O(e,`clone`)&&O(e,`premultiply`),At=e=>D(e)&&`boundingBox`in e&&O(e,`computeBoundingBox`),jt=e=>D(e)&&typeof e.type==`string`&&D(e.props)&&Mt(e.object),Mt=e=>D(e)&&e.isObject3D===!0&&typeof e.uuid==`string`&&typeof e.name==`string`&&typeof e.type==`string`&&typeof e.visible==`boolean`&&kt(e.matrixWorld)&&O(e,`updateWorldMatrix`),Nt=e=>D(e)&&e.isCamera===!0,Pt=e=>Mt(e)&&e.isScene===!0&&Array.isArray(e.children),Ft=e=>D(e)&&typeof e.tagName==`string`&&e.tagName.toLowerCase()===`canvas`&&O(e,`getContext`),It=e=>D(e)&&Ft(e.domElement),Lt=e=>D(e)&&O(e,`set`),Rt=e=>D(e)&&O(e,`setFromCamera`)&&O(e,`intersectObjects`),zt=e=>D(e)&&It(e.gl)&&Pt(e.scene)&&Nt(e.camera)&&Rt(e.raycaster)&&Lt(e.pointer),Bt=e=>jt(e.__r3f)?e.__r3f:null,Vt=e=>{let t=e.current.stateNode;if(!D(t)||!Dt(t.containerInfo))return null;let n=Reflect.get(t.containerInfo,`getState`);if(typeof n!=`function`)return null;let r=n();return zt(r)?r:null};Re({name:`react-grab-three-selection`,onCommitFiberRoot:(e,t)=>{let n=Vt(t);n&&Tt.set(n.gl.domElement,{isReactThreeFiber:!0,state:n})}});var Ht=e=>{let t=e;for(;t;){if(Bt(t))return t;t=t.parent}return null},Ut=e=>{let t=e;for(;t;){let e=Bt(t);if(e&&typeof e.eventCount==`number`&&e.eventCount>0)return!0;t=t.parent}return!1},Wt=(e,t)=>{let n=e;for(;n;){if(n===t)return!0;n=n.parent}return!1},Gt=(e,t,n)=>{let r=typeof n.instanceId==`number`&&Number.isInteger(n.instanceId)?n.instanceId:null,i=wt.get(t);i||(i=new Map,wt.set(t,i));let a=i.get(r);if(a)return a.canvas=e.gl.domElement,a.intersectionPoint=Ot(n.point)?n.point:null,a.object=t,a.rootState=e,a.element;let o=Bt(t),s=o?Ve(o):null;if(o&&!s)return null;let c=(o?.type||t.type||`object-3d`).toLowerCase(),l=e.gl.domElement.ownerDocument.createElement(c),u={canvas:e.gl.domElement,element:l,fiber:s,instance:o,instanceId:r,intersectionPoint:Ot(n.point)?n.point:null,object:t,rootState:e,tagName:c},d=l.getBoundingClientRect.bind(l);return l.getBoundingClientRect=()=>{let e=$t(u),t=l.ownerDocument.defaultView?.DOMRect;return t?new t(e.x,e.y,e.width,e.height):d()},Ue(l,{hostElement:u.canvas,supportsDomEditing:!1,getBounds:()=>$t(u),getFiber:()=>u.fiber?Ae(u.fiber):null,getPreview:()=>Jt(u),getSelector:()=>Yt(u),getTagName:()=>u.tagName,isConnected:()=>u.canvas.isConnected&&Wt(u.object,u.rootState.scene)}),i.set(r,u),l},Kt=(e,t,n)=>{if(!Ft(e))return e;let r=Tt.get(e);if(!r)return e;let i=qe(e);if(i.width<=0||i.height<=0)return e;let a=(t-i.x)/i.width*2-1,o=-((n-i.y)/i.height)*2+1;if(a<-1||a>1||o<-1||o>1)return e;try{r.state.pointer.set(a,o),r.state.raycaster.setFromCamera(r.state.pointer,r.state.camera);let e=r.state.raycaster.intersectObjects(r.state.scene.children,!0);if(r.isReactThreeFiber)for(let t of e){if(!Ut(t.object))continue;let e=Ht(t.object);if(!e||e.visible===!1)continue;let n=Gt(r.state,e,t);if(n)return n}for(let t of e){let e=r.isReactThreeFiber?Ht(t.object):t.object;if(!e||e.visible===!1)continue;let n=Gt(r.state,e,t);if(n)return n}}catch{}return e},qt=e=>typeof e==`string`?JSON.stringify(e):typeof e==`number`||typeof e==`boolean`?`{${String(e)}}`:Array.isArray(e)&&e.length<=4&&e.every(e=>typeof e==`number`||typeof e==`string`)?`{${JSON.stringify(e)}}`:null,Jt=e=>{let t=e.instance?.props??{},n=[];for(let r of Et){let i=t[r];r===`name`&&i===void 0&&e.object.name&&(i=e.object.name);let a=qt(i);a&&n.push(`${r}=${a}`)}return e.instanceId!==null&&n.push(`instanceId={${e.instanceId}}`),`<${e.tagName}${n.length>0?` ${n.join(` `)}`:``} />`},Yt=e=>{if(e.object.name)return`${e.tagName}[name=${JSON.stringify(e.object.name)}]`;let t=e.instanceId===null?``:`:${e.instanceId}`;return`${e.tagName}[uuid=${JSON.stringify(`${e.object.uuid}${t}`)}]`},Xt=e=>{e.object.updateWorldMatrix(!0,!1);let t=e.object.matrixWorld.clone();if(e.instanceId===null||!e.object.getMatrixAt)return t;let n=e.object.matrixWorld.clone();return e.object.getMatrixAt(e.instanceId,n),n.premultiply(t)},Zt=e=>{if(!At(e.geometry))return null;e.geometry.boundingBox||e.geometry.computeBoundingBox();let t=e.geometry.boundingBox;return!t||!Ot(t.min)||!Ot(t.max)?null:t},Qt=(e,t)=>{let n=t.x+t.width/2,r=t.y+t.height/2;if(e.intersectionPoint){let i=e.intersectionPoint.clone().project(e.rootState.camera);Number.isFinite(i.x)&&Number.isFinite(i.y)&&(n=t.x+(i.x+1)/2*t.width,r=t.y+(1-i.y)/2*t.height)}return{x:n-8,y:r-8,width:16,height:16,borderRadius:`0px`}},$t=e=>{let t=qe(e.canvas),n=Zt(e.object);if(!n)return Qt(e,t);let r=Xt(e),i=[n.min.x,n.max.x],a=[n.min.y,n.max.y],o=[n.min.z,n.max.z],s=1/0,c=1/0,l=-1/0,u=-1/0,d=n.min.clone();for(let n of i)for(let i of a)for(let a of o){if(d.set(n,i,a).applyMatrix4(r).project(e.rootState.camera),!Number.isFinite(d.x)||!Number.isFinite(d.y))continue;let o=t.x+(d.x+1)/2*t.width,f=t.y+(1-d.y)/2*t.height;s=Math.min(s,o),c=Math.min(c,f),l=Math.max(l,o),u=Math.max(u,f)}if(!Number.isFinite(s)||!Number.isFinite(c)||!Number.isFinite(l)||!Number.isFinite(u))return Qt(e,t);let f=Math.max(t.x,s),p=Math.max(t.y,c),m=Math.min(t.x+t.width,l),h=Math.min(t.y+t.height,u);return m<=f||h<=p?Qt(e,t):{x:f,y:p,width:m-f,height:h-p,borderRadius:`0px`}},en=new Map,tn=new WeakSet,nn=new Map,rn=new Map,an=e=>!!tn.has(e);typeof window<`u`&&(window.requestAnimationFrame=e=>an(e)?it(t=>{e(t)}):it(e),window.cancelAnimationFrame=e=>{if(en.has(e)){en.delete(e);return}let t=rn.get(e);if(t!==void 0){at(t.nativeId),rn.delete(e);return}let n=nn.get(e);if(n!==void 0){en.delete(n),nn.delete(e);return}at(e)}),`${f}${f}`;var on=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,sn=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],cn=[`rsc://`,`about://React/`],ln=[`<anonymous>`,`eval`,``],un=/\.(jsx|tsx|ts|js)$/,dn=/(\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\.(js|mjs|cjs)$|[\da-f]{8,}\.(js|mjs|cjs)$|[-_.][\da-f]{20,}\.(js|mjs|cjs)$|\/dist\/|\/build\/|\/.next\/|\/out\/|\/node_modules\/|\.webpack\.|\.vite\.|\.turbopack\./i,fn=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,pn=/\(at [^)]+\)$/,mn=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],hn=/(^|@)\S+:\d+/,gn=/^\s*at .*(\S+:\d+|\(native\))/m,_n=/^(eval@)?(\[native code\])?$/,vn=(e,t)=>{if(t?.includeInElement!==!1){let n=e.split(`
|
|
2
|
+
`),r=[];for(let e of n)if(/^\s*at\s+/.test(e)){let t=xn(e,void 0)[0];t&&r.push(t)}else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*\(at .*\)$/,``);r.push({functionName:t,source:e})}else if(e.match(hn)){let t=Sn(e,void 0)[0];t&&r.push(t)}return bn(r,t)}return e.match(gn)?xn(e,t):Sn(e,t)},yn=e=>{if(!e.includes(`:`))return[e,void 0,void 0];let t=e.startsWith(`(`)&&/:\d+\)$/.test(e)?e.slice(1,-1):e,n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t);return n?[n[1],n[2]||void 0,n[3]||void 0]:[t,void 0,void 0]},bn=(e,t)=>t&&t.slice!=null?Array.isArray(t.slice)?e.slice(t.slice[0],t.slice[1]):e.slice(0,t.slice):e,xn=(e,t)=>bn(e.split(`
|
|
3
|
+
`).filter(e=>!!e.match(gn)),t).map(e=>{let t=e;t.includes(`(eval `)&&(t=t.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));let n=t.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),r=n.match(/ (\(.+\)$)/);n=r?n.replace(r[0],``):n;let i=yn(r?r[1]:n);return{functionName:r&&n||void 0,fileName:[`eval`,`<anonymous>`].includes(i[0])?void 0:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}),Sn=(e,t)=>bn(e.split(`
|
|
4
|
+
`).filter(e=>!e.match(_n)),t).map(e=>{let t=e;if(t.includes(` > eval`)&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),!t.includes(`@`)&&!t.includes(`:`))return{functionName:t};{let e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,n=t.match(e),r=n&&n[1]?n[1]:void 0,i=yn(t.replace(e,``));return{functionName:r,fileName:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}}),Cn=new WeakMap,wn=e=>mn.some(t=>e.includes(t)),Tn=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},En=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=Tn(r);if(wn(i))return{frames:t,isTrusted:!0};if(r.isNative?.()){t.push({functionName:i||void 0});continue}let a=r.getScriptNameOrSourceURL?.()??``;!a&&r.isEval?.()&&(a=r.getEvalOrigin?.()??``),t.push({functionName:i&&i!==`<anonymous>`?i:void 0,fileName:a&&a!==`<anonymous>`?a:void 0,lineNumber:r.getLineNumber?.()??void 0,columnNumber:r.getColumnNumber?.()??void 0,enclosingLineNumber:r.getEnclosingLineNumber?.()??void 0,enclosingColumnNumber:r.getEnclosingColumnNumber?.()??void 0,source:` at ${r.toString()}`})}return{frames:t,isTrusted:!1}},Dn=e=>{let t=-1;for(let n of mn)if(t=e.indexOf(n),t!==-1)break;return{frames:vn(t===-1?e:e.slice(0,e.lastIndexOf(`
|
|
5
|
+
`,t))).slice(1),isTrusted:t!==-1}},On=e=>{let t=Cn.get(e);if(t)return t;let n=null,r=(e,t)=>{n=En(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=Error.prepareStackTrace;Error.prepareStackTrace=r;let a;try{a=String(e.stack)}finally{Error.prepareStackTrace=i}let o=n??Dn(a);return Cn.set(e,o),o},kn=44,An=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,jn=new Uint8Array(64),Mn=new Uint8Array(128);for(let e=0;e<An.length;e++){let t=An.charCodeAt(e);jn[e]=t,Mn[t]=e}function k(e,t){let n=0,r=0,i=0;do i=Mn[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function Nn(e,t){return e.pos>=t?!1:e.peek()!==kn}var Pn=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Fn(e){let{length:t}=e,n=new Pn(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=k(n,i),i<u&&(l=!1),u=i,Nn(n,e)?(a=k(n,a),o=k(n,o),s=k(n,s),Nn(n,e)?(c=k(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||In(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function In(e){e.sort(Ln)}function Ln(e,t){return e[0]-t[0]}var Rn=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,zn=/^data:application\/json[^,]+base64,/,Bn=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,Vn=new Map,Hn=new Map,Un=(e,t,n,r,i)=>{if(n<0||n>=e.length)return null;let a=e[n];if(!a||a.length===0)return null;let o=null,s=0,c=a.length-1;for(;s<=c;){let e=s+c>>1;a[e][0]<=r?(o=a[e],s=e+1):c=e-1}if(!o||o.length<4)return null;let[,l,u,d]=o;if(l===void 0||u===void 0||d===void 0)return null;let f=t[l];return f?{columnNumber:d,fileName:f,lineNumber:u+1,isIgnoreListed:i?.has(l)??!1}:null},Wn=(e,t,n)=>{if(e.sections){let r=t-1,i=null;for(let t of e.sections)if(r>t.offset.line||r===t.offset.line&&n>=t.offset.column)i=t;else break;if(!i)return null;let a=r-i.offset.line,o=r===i.offset.line?n-i.offset.column:n;return Un(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices)}return Un(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices)},Gn=(e,t)=>{let n,r=t.length;for(;r>0&&!n;){let e=t.lastIndexOf(`
|
|
6
|
+
`,r-1)+1,i=t.slice(e,r).match(Bn);i&&(n=i[1]||i[2]),r=e-1}if(!n)return null;let i=Rn.test(n);if(!(zn.test(n)||i||n.startsWith(`/`))){let t=e.split(`/`);t[t.length-1]=n,n=t.join(`/`)}return n},Kn=e=>{let t=e.ignoreList??e.x_google_ignoreList;return Array.isArray(t)&&t.length>0?new Set(t):void 0},qn=e=>({file:e.file,ignoredSourceIndices:Kn(e),mappings:Fn(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:e.sources,sourcesContent:e.sourcesContent,version:3}),Jn=e=>{let t=e.sections.map(({map:e,offset:t})=>({map:{...e,ignoredSourceIndices:Kn(e),mappings:Fn(e.mappings)},offset:t})),n=new Set;for(let e of t)for(let t of e.map.sources)n.add(t);return{file:e.file,mappings:[],names:[],sections:t,sourceRoot:void 0,sources:Array.from(n),sourcesContent:void 0,version:3}},Yn=e=>{if(!e)return!1;let t=e.trim();if(!t)return!1;let n=t.match(Rn);if(!n)return!0;let r=n[0].toLowerCase();return r===`http:`||r===`https:`},Xn=async(e,t=fetch)=>{if(!Yn(e))return null;let n=await t(e);if(!n.ok)return null;let r=await n.text();if(!r)return null;let i=Gn(e,r);if(!i||!Yn(i)&&!zn.test(i))return null;let a=await t(i);if(!a.ok)return null;try{let e=await a.json();return`sections`in e?Jn(e):qn(e)}catch{return null}},Zn=async(e,t=!0,n)=>{if(t&&Vn.has(e))return Vn.get(e)??null;let r=t?Hn.get(e):void 0;if(r)return(await r).sourceMap;let i=Xn(e,n).then(e=>({sourceMap:e,isTransientFailure:!1}),()=>({sourceMap:null,isTransientFailure:!0}));t&&Hn.set(e,i);let{sourceMap:a,isTransientFailure:o}=await i;return t&&(Hn.delete(e),o||Vn.set(e,a)),a},Qn=async(e,t=!0,n)=>await Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await Zn(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=Wn(r,e.lineNumber,e.columnNumber);return i?{...e,source:i.fileName&&e.source?e.source.replace(e.fileName,i.fileName):e.source,fileName:i.fileName,lineNumber:i.lineNumber,columnNumber:i.columnNumber,isIgnoreListed:i.isIgnoreListed,isSymbolicated:!0}:e})),$n=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,er=e=>typeof e.tag==`number`,tr=e=>e._debugOwner,nr=e=>{let t=null;if(x(e,n=>{if(n===e)return!1;let r=n._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&n._debugStack instanceof Error&&(t=n._debugStack,!0)}),!t)return null;let{frames:n,isTrusted:r}=On(t);if(!r)return null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t.fileName)return{...t,lineNumber:t.enclosingLineNumber||t.lineNumber,columnNumber:t.enclosingColumnNumber||t.columnNumber}}return null},rr=()=>{let e=xe();for(let t of[...Array.from(b),...Array.from(e.renderers.values())]){let e=t.currentDispatcherRef;if(e&&typeof e==`object`)return`H`in e?e.H:e.current}return null},ir=e=>{for(let t of b){let n=t.currentDispatcherRef;n&&typeof n==`object`&&(`H`in n?n.H=e:n.current=e)}},A=e=>`\n in ${e}`,ar=(e,t)=>{let n=A(e);return t&&(n+=` (at ${t})`),n},or=!1,sr=new WeakMap,cr=(e,t)=>{if(!e||or)return``;let n=sr.get(e);if(n!==void 0)return n;let r=Error.prepareStackTrace;Error.prepareStackTrace=void 0,or=!0;let i=rr();ir(null);let a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};if(Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){n=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){n=e}let t=e();t&&typeof t.catch==`function`&&t.catch(()=>{})}}catch(e){if(e instanceof Error&&n instanceof Error&&typeof e.stack==`string`)return[e.stack,n.stack]}return[null,null]}};n.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`,Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});let[r,i]=n.DetermineComponentFrameRoot();if(r&&i){let t=r.split(`
|
|
7
|
+
`),n=i.split(`
|
|
8
|
+
`),a=0,o=0;for(;a<t.length&&!t[a].includes(`DetermineComponentFrameRoot`);)a++;for(;o<n.length&&!n[o].includes(`DetermineComponentFrameRoot`);)o++;if(a===t.length||o===n.length)for(a=t.length-1,o=n.length-1;a>=1&&o>=0&&t[a]!==n[o];)o--;for(;a>=1&&o>=0;a--,o--)if(t[a]!==n[o]){if(a!==1||o!==1)do if(a--,o--,o<0||t[a]!==n[o]){let n=`\n${t[a].replace(` at new `,` at `)}`,r=S(e);return r&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,r)),sr.set(e,n),n}while(a>=1&&o>=0);break}}}finally{or=!1,Error.prepareStackTrace=r,ir(i),console.error=a,console.warn=o}let s=e?S(e):``,c=s?A(s):``;return sr.set(e,c),c},lr=(e,t)=>{let n=e.tag,r=``;switch(n){case 28:r=A(`Activity`);break;case 1:r=cr(e.type,!0);break;case 11:r=cr(e.type.render,!1);break;case 0:case 15:r=cr(e.type,!1);break;case 5:case 26:case 27:r=A(e.type);break;case 16:r=A(`Lazy`);break;case 13:r=e.child!==t&&t!==null?A(`Suspense Fallback`):A(`Suspense`);break;case 19:r=A(`SuspenseList`);break;case 30:r=A(`ViewTransition`);break;default:return``}return r},ur=e=>{try{let t=``,n=e,r=null;do{t+=lr(n,r);let e=n._debugInfo;if(e&&Array.isArray(e))for(let n=e.length-1;n>=0;n--){let r=e[n];typeof r.name==`string`&&(t+=ar(r.name,r.env))}r=n,n=n.return}while(n);return t}catch(e){return e instanceof Error?`\nError generating stack: ${e.message}\n${e.stack}`:``}},dr=e=>{let t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;let n=e;if(!n)return``;Error.prepareStackTrace=t,n.startsWith(`Error: react-stack-top-frame
|
|
9
|
+
`)&&(n=n.slice(29));let r=n.indexOf(`
|
|
10
|
+
`);r!==-1&&(n=n.slice(r+1));let i=Math.max(n.indexOf(`react_stack_bottom_frame`),n.indexOf(`react-stack-bottom-frame`));if(i!==-1&&(i=n.lastIndexOf(`
|
|
11
|
+
`,i)),i!==-1)n=n.slice(0,i);else return``;return n},fr=e=>!!(e.functionName&&e.fileName&&gr(e.fileName)),pr=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,mr=e=>{let t=new Map;for(let n of e)for(let e of n.stackFrames){if(!fr(e))continue;let n=e.functionName,r=t.get(n)??[];r.some(t=>pr(t,e))||(r.push(e),t.set(n,r))}return t},hr=(e,t,n)=>{if(!e.functionName)return{...e,isServer:!0};let r=t.get(e.functionName);if(!r||r.length===0)return{...e,isServer:!0};let i=n.get(e.functionName)??0,a=r[i%r.length];return n.set(e.functionName,i+1),{...e,isServer:!0,fileName:a.fileName,lineNumber:a.lineNumber,columnNumber:a.columnNumber,source:e.source?.replace(`(at Server)`,`(${a.fileName}:${a.lineNumber}:${a.columnNumber})`)}},gr=e=>cn.some(t=>e.startsWith(t)),_r=e=>!e.isServer&&e.fileName&&gr(e.fileName)?{...e,isServer:!0}:e,vr=e=>{let t=[],n=e;for(;n;)if(er(n)){let e=n;if(n=tr(e),n&&$n(e)){let{frames:n,isTrusted:r}=On(e._debugStack);if(r)for(let e of n)t.push(_r(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of On(e.debugStack).frames)t.push({...n,isServer:!0})}return t},yr=e=>{let t=[];return x(e,e=>{if(!$n(e))return;let n=typeof e.type==`string`?e.type:S(e.type)||`<anonymous>`;t.push({componentName:n,stackFrames:vn(dr(e._debugStack?.stack))})},!0),t},br=async(e,t=!0,n)=>{let r=yr(e),i=vn(ur(e)),a=mr(r),o=new Map;return Qn(i.map(e=>(e.source?.includes(`(at Server)`)??!1)||e.source!=null&&pn.test(e.source)?hr(e,a,o):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName}),t,n)},xr=e=>!!e.fileName&&!e.isIgnoreListed,Sr=async(e,t=!0,n)=>{let r=vr(e);if(r.length>0){let i=nr(e)??{};i.functionName=S(e.type)??i.functionName;let a=await Qn([i,...r],t,n);if(a.some((e,t)=>t>0&&xr(e)))return a}return br(e,t,n)},Cr=e=>{let t=e._debugSource;return t?typeof t==`object`&&!!t&&`fileName`in t&&typeof t.fileName==`string`&&`lineNumber`in t&&typeof t.lineNumber==`number`:!1},wr=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,Tr=e=>{if(!$n(e))return null;let{frames:t,isTrusted:n}=On(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},Er=async(e,t=!0,n)=>{if(Cr(e))return e._debugSource||null;let r=Tr(e)??nr(e);if(r){let[e]=await Qn([r],t,n),i=wr(e);if(i)return i}let i=await br(e,t,n);for(let e of i)if(e.fileName)return wr(e);return null},Dr=e=>e.split(`/`).filter(Boolean).length,Or=e=>e.split(`/`).filter(Boolean)[0]??null,kr=e=>{let t=e.indexOf(`/`,1);if(t===-1||Dr(e.slice(0,t))!==1)return e;let n=e.slice(t);if(!un.test(n)||Dr(n)<2)return e;let r=Or(n);return!r||r.startsWith(`@`)||r.length>4?e:n},Ar=e=>{if(!e||ln.some(t=>t===e))return``;let t=e,n=t.startsWith(`http://`)||t.startsWith(`https://`);if(n)try{t=new URL(t).pathname}catch{}if(n&&(t=kr(t)),t.startsWith(`about://React/`)){let e=t.slice(14),n=e.indexOf(`/`),r=e.indexOf(`:`);t=n!==-1&&(r===-1||n<r)?e.slice(n+1):e}let r=!0;for(;r;){r=!1;for(let e of sn)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),r=!0;break}}if(on.test(t)){let e=t.match(on);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let i=t.indexOf(`?`);if(i!==-1){let e=t.slice(i);fn.test(e)&&(t=t.slice(0,i))}return t},jr=e=>{let t=Ar(e);return!(!t||!un.test(t)||dn.test(t))},Mr=Symbol.for(`react.context`),Nr=[],Pr=null,Fr=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render."),j=()=>{let e=Pr;return e!==null&&(Pr=e.next),e},Ir=e=>e._currentValue,M=(e,t,n,r=null)=>{Nr.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Lr=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.then==`function`){let e=t;switch(e.status){case`fulfilled`:return M(`Promise`,e.value,`Use`),e.value;case`rejected`:throw e.reason}throw M(`Unresolved`,e,`Use`),Fr}if(t.$$typeof===Mr&&`_currentValue`in t){let e=t,n=Ir(e);return M(`Context (use)`,n,`Use`,e.displayName||`Context`),n}}throw Error(`An unsupported type was passed to use(): `+String(e))},Rr=e=>{let t=Ir(e);return M(`Context`,t,`Context`,e.displayName||null),t},zr=e=>{let t=j(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return M(`State`,n,`State`),[n,()=>{}]},Br=(e,t,n)=>{let r=j(),i=r===null?n===void 0?t:n(t):r.memoizedState;return M(`Reducer`,i,`Reducer`),[i,()=>{}]},Vr=e=>{let t=j(),n=t===null?{current:e}:t.memoizedState;return M(`Ref`,n.current,`Ref`),n},Hr=()=>{let e=j();return M(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},Ur=e=>{j(),M(`LayoutEffect`,e,`LayoutEffect`)},Wr=e=>{j(),M(`InsertionEffect`,e,`InsertionEffect`)},Gr=e=>{j(),M(`Effect`,e,`Effect`)},Kr=e=>{j();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),M(`ImperativeHandle`,t,`ImperativeHandle`)},qr=(e,t)=>{M(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},Jr=e=>{let t=j();return M(`Callback`,t===null?e:t.memoizedState[0],`Callback`),e},Yr=e=>{let t=j(),n=t===null?e():t.memoizedState[0];return M(`Memo`,n,`Memo`),n},Xr=(e,t)=>{let n=j();j();let r=n===null?t():n.memoizedState;return M(`SyncExternalStore`,r,`SyncExternalStore`),r},Zr=()=>{let e=j();j();let t=e!==null&&e.memoizedState;return M(`Transition`,t,`Transition`),[t,()=>{}]},Qr=e=>{let t=j(),n=t===null?e:t.memoizedState;return M(`DeferredValue`,n,`DeferredValue`),n},$r=()=>{let e=j(),t=e===null?``:e.memoizedState;return M(`Id`,t,`Id`),t},ei=e=>[],ti=e=>{let t=j(),n=t===null?e:t.memoizedState;return M(`Optimistic`,n,`Optimistic`),[n,()=>{}]},ni=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(typeof t==`object`&&t&&`then`in t&&typeof t.then==`function`){let e=t;switch(e.status){case`fulfilled`:n=e.value;break;case`rejected`:r=e.reason;break;default:r=Fr,n=e}}else n=t}else n=t;return{value:n,error:r}},ri=e=>(t,n)=>{let r=j();j(),j();let i=Error(),{value:a,error:o}=ni(r,n);if(Nr.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},ii=ri(`ActionState`),ai={readContext:Ir,use:Lr,useCallback:Jr,useContext:Rr,useEffect:Gr,useImperativeHandle:Kr,useLayoutEffect:Ur,useInsertionEffect:Wr,useMemo:Yr,useReducer:Br,useRef:Vr,useState:zr,useDebugValue:qr,useDeferredValue:Qr,useTransition:Zr,useSyncExternalStore:Xr,useId:$r,useHostTransitionStatus:()=>{let e=Ir({_currentValue:null});return M(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:ri(`FormState`),useActionState:ii,useOptimistic:ti,useMemoCache:ei,useCacheRefresh:Hr,useEffectEvent:e=>(j(),M(`EffectEvent`,e,`EffectEvent`),e)};typeof Proxy>`u`||new Proxy(ai,{get(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let n=Error(`Missing method in Dispatcher: `+t);throw n.name=`ReactDebugToolsUnsupportedHookError`,n}});var oi=e=>e===void 0||!Number.isFinite(e)?3:Math.max(0,Math.floor(e)),si=/^(?:\.\/)?\/?\([a-z][a-z0-9-]*\)\//,N=e=>{let t=Ar(e);return t=t.replace(si,``),t.startsWith(`./`)&&(t=t.slice(2)),t},ci=e=>{try{return decodeURIComponent(e)}catch{return e}},li=/(?:^|[/\\])node_modules[/\\]/,ui=/[/\\]\.vite[/\\]deps[^/\\]*[/\\]/,di=/\.[mc]?[jt]sx?$/i,fi=/^chunk-[A-Za-z0-9_-]+$/,pi=/[/\\]/,mi=/^(.+?)@v?\d/,hi=e=>e.split(pi).filter(Boolean),gi=e=>{let[t,n]=hi(e);return!t||t.startsWith(`.`)?null:t.startsWith(`@`)?n?`${t}/${n}`:null:t},_i=e=>{let t=hi(e)[0];if(!t)return null;let n=t.replace(di,``);if(fi.test(n))return null;if(!n.startsWith(`@`))return n;let r=n.indexOf(`_`);return r===-1?null:`${n.slice(0,r)}/${n.slice(r+1)}`},vi=(e,t,n)=>{let r=e.split(t);return r.length>1?n(r[r.length-1]):null},yi=e=>e?.match(mi)?.[1]??null,bi=e=>{let t;try{t=new URL(e)}catch{return null}if(!t.hostname)return null;let n=hi(t.pathname).map(ci);for(let[e,t]of n.entries()){if(t.startsWith(`@`)){let r=yi(n[e+1]);if(r)return`${t}/${r}`;continue}let r=yi(t);if(r)return r}return null},xi=e=>vi(e,ui,_i)??vi(e,li,gi),Si=e=>{if(!e)return null;let t=Ar(e);return t&&(xi(ci(t))||bi(e))||null},Ci=/^@[A-Za-z0-9][A-Za-z0-9._-]*$/,wi=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,Ti=new Set([`app`,`web`,`website`,`frontend`,`client`,`src`]),Ei=new Set([`app`,`src`,`components`,`pages`,`features`,`modules`,`hooks`,`lib`,`utils`,`ui`,`shared`,`common`,`core`,`styles`,`assets`]),Di=e=>{let t=e;for(;t.startsWith(`../`)||t.startsWith(`./`);)t=t.slice(t.startsWith(`../`)?3:2);return t},Oi=e=>{let t=Di(ci(Ar(e)));if(t.startsWith(`/`))return null;let[n,r,...i]=hi(t);return!n||!r||i.length===0||!Ci.test(n)||Ei.has(n.slice(1))||!wi.test(r)||di.test(r)||Ti.has(r)?null:`${n}/${r}`},ki=e=>e?Si(e)??Oi(e):null,Ai=e=>{if(!e)return{origin:`unknown`,packageName:null};let t=ki(e);return t?{origin:`package`,packageName:t}:jr(e)?{origin:`app`,packageName:null}:{origin:`unknown`,packageName:null}},ji=new Set([`role`,`name`,`aria-label`,`rel`,`href`]),P=e=>{if(!/^[a-z-]{3,}$/i.test(e))return!1;let t=e.split(/-|[A-Z]/);for(let e of t)if(e.length<=2||/[^aeiou]{4,}/i.test(e))return!1;return!0},Mi=(e,t)=>{let n=ji.has(e)||e.startsWith(`data-`)&&P(e),r=P(t)&&t.length<100||t.startsWith(`#`)&&P(t.slice(1));return n&&r},Ni=e=>{let t=e[0].name;for(let n=1;n<e.length;n++)t=`${e[n].name} > ${t}`;return t},Pi=e=>{let t=0;for(let n of e)t+=n.penalty;return t},Fi=(e,t)=>Pi(e)-Pi(t),Ii=(e,t)=>{let n=e.parentNode;if(!n)return;let r=n.firstChild;if(!r)return;let i=0;for(;r&&(h(r)&&(t===void 0||r.tagName.toLowerCase()===t)&&i++,r!==e);)r=r.nextSibling;return i},Li=(e,t)=>e===`html`?`html`:`${e}:nth-child(${t})`,Ri=(e,t)=>e===`html`?`html`:`${e}:nth-of-type(${t})`,zi=(e,t)=>{let n=[],r=e.getAttribute(`id`),i=e.tagName.toLowerCase();r&&P(r)&&n.push({name:`#${CSS.escape(r)}`,penalty:0});for(let t of e.classList)P(t)&&n.push({name:`.${CSS.escape(t)}`,penalty:1});for(let r of e.attributes)t(r.name,r.value)&&n.push({name:`[${CSS.escape(r.name)}="${CSS.escape(r.value)}"]`,penalty:2});n.push({name:i,penalty:5});let a=Ii(e,i);a!==void 0&&n.push({name:Ri(i,a),penalty:10});let o=Ii(e);return o!==void 0&&n.push({name:Li(i,o),penalty:50}),n},Bi=(e,t=s,n=[])=>{if(t<=0)return[];if(e.length===0)return[n];let r=[];for(let i of e[0]){let a=t-r.length;if(a<=0)break;r.push(...Bi(e.slice(1),a,[...n,i]))}return r},Vi=(e,t)=>{let n=t.getRootNode();return E(n)?n:$e(e)?e:e.ownerDocument},Hi=(e,t)=>t.querySelectorAll(Ni(e)).length===1,Ui=(e,t)=>{let n=e,r=[];for(;n&&n!==t;){let e=n.tagName.toLowerCase(),t=Ii(n,e);if(t===void 0)return;r.push({name:Ri(e,t),penalty:10}),n=n.parentElement}return Hi(r,t)?r:void 0},Wi=(e,t,n,r)=>{if(e.nodeType!==Node.ELEMENT_NODE)throw new Ye;if(e.tagName.toLowerCase()===`html`)return`html`;let i=Vi(t,e),a=Date.now(),o=[],s=e,c=0,l;for(;s&&s!==i&&!l;)if(o.push(zi(s,r)),s=s.parentElement,c++,c>=3){let t=Bi(o);t.sort(Fi);for(let r of t){if(Date.now()-a>n){let t=Ui(e,i);if(!t)throw new Xe(n);return Ni(t)}if(Hi(r,i)){l=r;break}}}if(!l&&c<3){let e=Bi(o);e.sort(Fi);for(let t of e){if(Date.now()-a>n)break;if(Hi(t,i)){l=t;break}}}if(!l)throw new Ze;return Ni(l)},Gi=e=>e.ownerDocument.body??e.ownerDocument.documentElement,Ki=new Set([`data-testid`,`data-test-id`,`data-test`,`data-cy`,`data-qa`,`aria-label`,`href`,`src`,`role`,`name`,`title`,`alt`]),qi=e=>e.length>0&&e.length<=120,Ji=(e,t)=>{try{let n=e.getRootNode(),r=(E(n)?n:e.ownerDocument).querySelectorAll(t);return r.length===1&&r[0]===e}catch{return!1}},Yi=e=>{let t=e.getAttribute(`id`);if(t){let n=`#${CSS.escape(t)}`;if(Ji(e,n))return n}for(let t of Ki){let n=e.getAttribute(t);if(!n||!qi(n))continue;let r=`[${t}=${JSON.stringify(n)}]`;if(Ji(e,r))return r;let i=`${e.tagName.toLowerCase()}${r}`;if(Ji(e,i))return i}return null},Xi=e=>{let t=[],n=e.getRootNode(),r=E(n)?n:Gi(e),i=e;for(;i;){let e=i.getAttribute(`id`);if(e){t.unshift(`#${CSS.escape(e)}`);break}let n=i.parentNode;if(!n){t.unshift(i.tagName.toLowerCase());break}let a=Array.from(n.children).indexOf(i)+1;if(t.unshift(`${i.tagName.toLowerCase()}:nth-child(${a})`),n===r){h(r)&&t.unshift(r.tagName.toLowerCase());break}i=h(n)?n:null}return t.join(` > `)},Zi=e=>{let t=Yi(e);if(t)return t;try{let t=Wi(e,Gi(e),200,(e,t)=>Mi(e,t)||Ki.has(e)&&qi(t));if(t)return t}catch{}return Xi(e)},Qi=e=>{let t=w(e);if(t)return t.getSelector();let n=Zi(e),r=e.getRootNode();if(E(r))return`${Qi(r.host)} >>> ${n}`;let i=ae(e.ownerDocument.defaultView);return i?`${Qi(i)} >>iframe>> ${n}`:n},$i=[`[id]`,`[data-testid]`,`[data-test-id]`,`[data-test]`,`[data-cy]`,`[data-qa]`,`[aria-label]`,`a[href]`,`button`,`input`,`select`,`textarea`,`[role="button"]`,`[role="link"]`,`[role="checkbox"]`,`[role="radio"]`,`[role="switch"]`,`[role="tab"]`,`[role="menuitem"]`,`[role="option"]`,`[role="textbox"]`,`[role="combobox"]`,`[role="slider"]`,`[role="spinbutton"]`].join(`,`),ea=e=>{let{body:t,documentElement:n}=e.ownerDocument;if(e===t||e===n)return!0;if(!t)return!1;let r=t.getElementsByTagName(`*`).length;return r!==0&&e.getElementsByTagName(`*`).length/r>=c},ta=e=>{let t=e.closest($i);return!t||ea(t)?e:t},na=[/\/assets\/[^/?#]+-[a-z0-9_-]{6,}\.(?:c|m)?js(?:[?#]|$)/,/\/_next\/static\/.*\.(?:c|m)?js(?:[?#]|$)/,/\/static\/chunks\/.*\.(?:c|m)?js(?:[?#]|$)/],ra=e=>{if(!e)return!1;let t=`/${N(e)}`.toLowerCase();return na.some(e=>e.test(t))},ia=e=>{if(!e)return!1;let t=`/${N(e)}/`.toLowerCase();return i.some(e=>t.includes(e))},aa,oa=e=>(e&&(aa=void 0),aa??=typeof document<`u`&&!!(document.getElementById(`__NEXT_DATA__`)||document.querySelector(`nextjs-portal`)),aa),sa=e=>e.map(e=>`\n in ${e}`).join(``),ca,la=()=>{if(ca!==void 0)return ca;let e=document.querySelector(`script[src*="/_next/"]`)?.src,t=e?new URL(e).pathname:``,n=t.indexOf(`/_next/`);return ca=n>0?t.slice(0,n):``,ca},ua=[`about://React/`,`rsc://React/`],da=e=>ua.some(t=>e.startsWith(t)),fa=e=>{for(let t of ua){if(!e.startsWith(t))continue;let n=e.indexOf(`/`,t.length);if(n===-1)continue;let r=n+1,i=e.lastIndexOf(`?`);return ci(i>r?e.slice(r,i):e.slice(r))}return e},pa=e=>{if(typeof e!=`object`||!e||!(`status`in e)||e.status!==`fulfilled`||!(`value`in e)||typeof e.value!=`object`||e.value===null||!(`originalStackFrame`in e.value))return null;let t=e.value.originalStackFrame;return typeof t!=`object`||!t||!(`file`in t)||typeof t.file!=`string`||!t.file||`ignored`in t&&t.ignored?null:{file:t.file,line1:`line1`in t&&typeof t.line1==`number`?t.line1:null,column1:`column1`in t&&typeof t.column1==`number`?t.column1:null}},ma=async(e,t)=>{let n=[],r=[];for(let t=0;t<e.length;t++){let i=e[t];!i.isServer||!i.fileName||(n.push(t),r.push({file:fa(i.fileName),methodName:i.functionName??`<unknown>`,line1:i.lineNumber??null,column1:i.columnNumber??null,arguments:[]}))}if(r.length===0)return e;let i=new AbortController,o=setTimeout(()=>i.abort(),a),s=()=>i.abort();t?.aborted&&i.abort(),t?.addEventListener(`abort`,s);try{let t=await fetch(`${la()}/__nextjs_original-stack-frames`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({frames:r,isServer:!0,isEdgeServer:!1,isAppDirectory:!0}),priority:`high`,signal:i.signal});if(!t.ok)return e;let a=await t.json();if(!Array.isArray(a))return e;let o=[...e];for(let t=0;t<n.length;t++){let r=pa(a[t]);if(!r)continue;let i=n[t];o[i]={...e[i],fileName:r.file,lineNumber:r.line1??void 0,columnNumber:r.column1??void 0,isSymbolicated:!0}}return o}catch{return e}finally{clearTimeout(o),t?.removeEventListener(`abort`,s)}},ha=e=>{let t=new Map;return x(e,e=>{if(!$n(e))return!1;let n=dr(e._debugStack.stack);if(!n)return!1;for(let e of vn(n))!e.functionName||!e.fileName||da(e.fileName)&&(t.has(e.functionName)||t.set(e.functionName,{...e,isServer:!0}));return!1},!0),t},ga=(e,t)=>{if(!t.some(e=>e.isServer&&!e.fileName&&e.functionName))return t;let n=ha(e);return n.size===0?t:t.map(e=>{if(!e.isServer||e.fileName||!e.functionName)return e;let t=n.get(e.functionName);return t?{...e,fileName:t.fileName,lineNumber:t.lineNumber,columnNumber:t.columnNumber}:e})},_a=0,va=[],ya=()=>_a<3?(_a+=1,Promise.resolve()):new Promise(e=>{va.push(e)}),ba=()=>{let e=va.shift();if(e){e();return}--_a},xa=async(e,t,n=o)=>{await ya();let r=new AbortController,i,a=new Promise(e=>{i=setTimeout(()=>{r.abort(),e(t)},n)});try{let t=e(r.signal);return t.catch(()=>{}),await Promise.race([t,a])}finally{clearTimeout(i),ba()}},Sa=(e,t)=>e.length>t?`${e.slice(0,t)}...`:e,Ca=e=>e.startsWith(`data-react-grab-`),wa=e=>e.replace(/\s+/g,` `).trim(),Ta=e=>{let t=[];for(let n of e.childNodes){if(n.nodeType!==Node.TEXT_NODE)continue;let e=wa(n.textContent??``);e&&t.push(e)}return t.join(` `)},Ea=e=>e.getAttribute(`aria-hidden`)===`true`||e.hasAttribute(`hidden`)?!0:d.has(e.tagName.toLowerCase()),Da=(e,t,n)=>{if(e.nodeType===Node.TEXT_NODE){let r=wa(e.textContent??``);return r?(t.push(r),n-r.length):n}if(!h(e)||Ea(e))return n;for(let r of e.childNodes)if(n=Da(r,t,n),n<=0)break;return n},Oa=(e,t)=>{if(Ea(e))return``;let n=Ta(e);if(!u.has(t)||n&&e.children.length===0)return n;let r=[];return Da(e,r,100),r.join(` `)},ka=e=>Sa(e,15),Aa=e=>e===`class`||e===`className`||e===`style`,ja=e=>{let t=[],n=[],r=``;for(let{name:i,value:a}of e.attributes)if(!Ca(i)){if(Aa(i)){i!==`style`&&a&&(r=` class="${ka(a)}"`);continue}l.has(i)?t.push(a?` ${i}="${a}"`:` ${i}`):a&&n.push(` ${i}="${ka(a)}"`)}return t.join(``)+n.join(``)+r},Ma=e=>e.length===0?``:e.length<=2?e.map(e=>`<${Qe(e)} ...>`).join(`
|
|
12
|
+
`):`(${e.length} elements)`,Na=e=>{let t=w(e);if(t)return t.getPreview();let n=Qe(e),r=ja(e),i=Oa(e,n),a=[],o=[],s=!1;for(let t of e.childNodes)t.nodeType!==Node.COMMENT_NODE&&(t.nodeType===Node.TEXT_NODE?t.textContent&&t.textContent.trim().length>0&&(s=!0):h(t)&&(s?o.push(t):a.push(t)));let c=i.length>0&&u.has(n),l=``,d=Ma(a);d&&!c&&(l+=`\n ${d}`),i&&(l+=`\n ${Sa(i,100)}`);let f=Ma(o);return f&&!c&&(l+=`\n ${f}`),l.length>0?`<${n}${r}>${l}\n</${n}>`:`<${n}${r} />`},Pa=new Set([`_`,`$`,`motion.`,`styled.`,`chakra.`,`ark.`,`Primitive.`,`Slot.`]),Fa=new Set(`AppRouter.AppRouterAnnouncer.AppDevOverlay.AppDevOverlayErrorBoundary.ClientPageRoot.ClientSegmentRoot.DevRootHTTPAccessFallbackBoundary.ErrorBoundary.ErrorBoundaryHandler.GracefulDegradeBoundary.HTTPAccessErrorFallback.HTTPAccessFallbackBoundary.HTTPAccessFallbackErrorBoundary.HandleRedirect.Head.HistoryUpdater.HotReload.InnerLayoutRouter.InnerScrollAndFocusHandler.InnerScrollAndFocusHandlerOld.InnerScrollAndMaybeFocusHandler.InnerScrollHandlerNew.LoadableComponent.LoadingBoundary.LoadingBoundaryProvider.NotAllowedRootHTTPFallbackError.OfflineProvider.OuterLayoutRouter.RedirectBoundary.RedirectErrorBoundary.RenderFromTemplateContext.RenderValidationBoundaryAtThisLevel.ReplaySsrOnlyErrors.RootErrorBoundary.RootLevelDevOverlayElement.Router.ScrollAndFocusHandler.ScrollAndMaybeFocusHandler.SegmentBoundaryTrigger.SegmentBoundaryTriggerNode.SegmentStateProvider.SegmentTrieNode.SegmentViewNode.SegmentViewStateNode.ServerRoot.body.html`.split(`.`)),Ia=new Set([`<anonymous>`,`<unknown>`,`Anonymous`,`Unknown`]),La=new Set([`Suspense`,`Fragment`,`StrictMode`,`Profiler`,`SuspenseList`]),Ra=new Set([`MotionDOMComponent`,`Slot`,`SlotClone`]),za=[`.Consumer`,`.Context`,`.Provider`,`.Slot`,`.SlotClone`,`.Slottable`,`ProviderProvider`],Ba=e=>{if(Ia.has(e)||Fa.has(e)||La.has(e)||Ra.has(e))return!0;for(let t of za)if(e.endsWith(t))return!0;for(let t of Pa)if(e.startsWith(t))return!0;return!1},Va=e=>!(!e||Ba(e)),Ha=e=>!(e.length<=1||Ba(e)||e[0]!==e[0].toUpperCase()),F=e=>e&&Ha(e)?e:null,I=e=>!ia(e)&&!ra(e),L=e=>{if(!Oe())return e;let t=e;for(;t?.ownerDocument===e.ownerDocument;){if(T(t))return t;if(t.parentElement){t=t.parentElement;continue}let e=t.getRootNode();t=E(e)?e.host:null}return e},Ua=e=>{let t=e.return?.child??null;for(;t;){if(t!==e&&t.key!==null)return!0;t=t.sibling}return!1},Wa=e=>{let t=e,n=0;for(;t;){if(t.key!==null&&Ua(t))return String(t.key);if(Ce(t)&&(n+=1,n===2))break;t=t.return}return null},Ga=e=>Oe()?Wa(T(L(e))):null,Ka=new WeakMap,qa=new WeakMap,Ja=e=>t=>fetch(t,{signal:e,priority:`high`}),Ya=e=>xa(async t=>{try{let n=T(e);if(!n)return null;let r=await Sr(n,!0,Ja(t));return oa()?await ma(ga(n,r),t):r}catch{return null}},null),Xa=e=>{if(!Oe())return Promise.resolve([]);let t=L(e),n=Ka.get(t);if(n)return n;let r=Ya(t).then(e=>(e===null&&Ka.delete(t),e));return Ka.set(t,r),r},Za=e=>e.find(e=>!!F(e.functionName))??e[0]??null,Qa=e=>!e||!Ce(e)?null:F(S(e.type)),$a=e=>xa(async t=>{let n=T(L(e));if(!n)return null;try{let e=await Er(n,!0,Ja(t));return e?.fileName?{filePath:N(e.fileName),lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null,componentName:F(e.functionName)??Qa(n._debugOwner),origin:Ai(e.fileName).origin}:null}catch{return null}},null),eo=e=>{let t=L(e),n=qa.get(t);if(n)return n;let r=$a(t).then(e=>(e||qa.delete(t),e));return qa.set(t,r),r},to=(e,t)=>{let n=(e,t)=>{let n=Za(e);return n?.fileName?{filePath:N(n.fileName),lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,componentName:F(n.functionName),origin:t}:null},r=t.filter(e=>Ai(e.fileName).origin===`app`),i=r.filter(e=>I(e.fileName));return e?.origin===`app`&&I(e.filePath)?e:n(i,`app`)||(e?.origin===`app`&&!ra(e.filePath)?e:n(r,`app`)||(e?.origin===`app`||e?.origin===`package`?e:n(t.filter(e=>Ai(e.fileName).origin===`package`),`package`)))},no=async e=>{let t=await eo(e);return t?.origin===`app`&&I(t.filePath)?t:to(t,await Xa(e)??[])},ro=e=>io(L(e),1)[0]??null,io=(e,t,n=()=>!0)=>{if(!Oe())return[];let r=T(e);if(!r)return[];let i=[];return x(r,e=>{if(i.length>=t)return!0;if(Ce(e)){let t=S(e.type);t&&Va(t)&&n(t)&&i.push(t)}return!1},!0),i},ao=[`/src/app/`,`/src/pages/`,`/app/`,`/pages/`],oo=(e,t)=>{let n=N(e);if(!t||!n.startsWith(`/`))return n;for(let e of ao){let t=n.indexOf(e);if(t!==-1)return`/./${n.slice(t+1)}`}return n},so=(e,t)=>{let n=oo(e.filePath,t),r=t&&e.lineNumber?`${n}:${e.lineNumber}${e.columnNumber?`:${e.columnNumber}`:``}`:n;return e.componentName?`\n in ${e.componentName} (at ${r})`:`\n in ${r}`},co={isAppSource:!1,consumesBudget:!1},lo=(e,t,n,r)=>{let i=t.packageName,a=t.origin===`app`?e.fileName:null;if(e.isServer&&!a&&(n||!e.functionName)){let e=i?`${i} at Server`:`at Server`;return{text:`\n in ${n??`<anonymous>`} (${e})`,...co}}return!a&&n?{text:i?`\n in ${n} (${i})`:`\n in ${n}`,...co}:i?{text:`\n in ${i}`,...co}:a?{text:so({componentName:n,filePath:a,lineNumber:e.lineNumber??null,columnNumber:e.columnNumber??null},r),isAppSource:!0,consumesBudget:I(a)}:null},uo=(e,t={},n=null)=>{let r=oi(t.maxLines),i=Math.max(r,20),a=oa(),o=[],s=new Set,c=null,l=!1,u=!1,d=!1,f=0,p=e=>{e&&s.add(e)};if(n){let e=n.origin===`app`&&I(n.filePath);u=e,e&&(f+=1),p(n.componentName),o.push(so(n,a))}for(let t of e){if(f>=r||o.length>=i)break;let e=Ai(t.fileName),s=F(t.functionName),m=e.packageName?`${e.packageName}:${s??``}:${t.isServer?`server`:`client`}`:null;if(m&&m===c)continue;if(!l&&s&&s===n?.componentName){l=!0;continue}let h=lo(t,e,s,a);h!==null&&h.text!==o[o.length-1]&&(h.isAppSource&&h.consumesBudget&&(u=!0),h.consumesBudget&&(f+=1,d=!0),p(s),o.push(h.text),c=m)}return{text:o.join(``),shouldAppendSelectorHint:!u,hasBudgetedStackFrame:d,renderedComponentNames:s}},fo=(e,t)=>{let n=to(e,t);return n?.origin===`app`?n:null},po=(e,t,n)=>{let r=io(L(e),n,e=>Ha(e)&&!t.renderedComponentNames.has(e));return r.length===0?t:{...t,text:`${t.text}${sa(r)}`}},mo=async(e,t={})=>{let n=await eo(e),r=await Xa(e)??[],i=fo(n,r),a=oi(t.maxLines),o=uo(r,t,i);if(o.text)return o.hasBudgetedStackFrame?o:po(e,o,a);let s=io(L(e),a);return{text:sa(s),shouldAppendSelectorHint:!0,hasBudgetedStackFrame:!1,renderedComponentNames:new Set(s)}},ho=async(e,t={})=>(await mo(e,t)).text,go=(e,t)=>{let n=Ga(e),r=n===null?``:`\n key: "${n}"`,i=t.shouldAppendSelectorHint?`\n selector: ${Qi(ta(e))}`:``;return`${t.text}${r}${i}`},_o=async(e,t={})=>{let n=L(e);return`${Na(n)}${go(n,await mo(n,t))}`},vo=new Map([`top`,`right`,`bottom`,`left`].flatMap(e=>[[`border-${e}-style`,e],[`border-${e}-color`,e]])),R=null,yo=new Map,bo=()=>R||(R=document.createElement(`iframe`),R.style.cssText=`position:fixed;left:-9999px;width:0;height:0;border:none;visibility:hidden;`,document.body.appendChild(R),R),xo=e=>{let t=yo.get(e);if(t)return t;let n=bo(),r=n.contentDocument,i=r.createElement(e);r.body.appendChild(i);let a=n.contentWindow.getComputedStyle(i),o=new Map;for(let e of m){let t=a.getPropertyValue(e);t&&o.set(e,t)}return i.remove(),yo.set(e,o),o},So=(e,t)=>{let n=vo.get(e);if(!n)return!1;let r=t.getPropertyValue(`border-${n}-width`);return r===`0px`||r===`0`},Co=e=>{if(w(e)?.supportsDomEditing===!1)return``;let t=xo(e.tagName.toLowerCase()),n=getComputedStyle(e),r=[];for(let e of m){let i=n.getPropertyValue(e);i&&i!==t.get(e)&&(So(e,n)||r.push(`${e}: ${i};`))}let i=e.getAttribute(`class`)?.trim(),a=r.join(`
|
|
13
|
+
`);return i?a?`className: ${i}\n\n${a}`:`className: ${i}`:a},wo=(e,t)=>{if(!Number.isFinite(e)||!Number.isFinite(t))return[];try{return Ct(e,t)}finally{}},To=(e,t)=>{let n=w(e)?.hostElement??e;for(;n;){if(n===t)return!0;n=et(n)}return!1},Eo=(e,t)=>t?.container&&!To(e,t.container)?!1:(t?.filter??xt)(e),Do=e=>xt(e),Oo=e=>({...qe(e)}),ko=e=>Qi(ta(e)),Ao=async e=>{let[t,n,r]=await Promise.all([_o(e),no(e),Xa(e).then(e=>e??[])]),i=await ho(e),a=Na(e),o=ro(e),s=T(e),c=ko(e),l=Co(e);return{element:e,snippet:t,htmlPreview:a,stackString:i,stack:r,componentName:o,filePath:n?.filePath??null,lineNumber:n?.lineNumber??null,columnNumber:n?.columnNumber??null,fiber:s,selector:c,styles:l}},jo=(e,t,n)=>{let r=wo(e,t);for(let i of r){let r=Kt(i,e,t);if(Eo(r,n))return r;if(r!==i&&Eo(i,n))return i}return null},Mo=`dsh-studio-preview`;function z(e,t){if(!e.trim())throw Error(`${t} must not be empty`)}var No=new Set([`color`,`length`,`number`,`boolean`,`enum`,`string`]);function Po(e,t,n){if(z(e,`Studio element source file`),e.startsWith(`/`)||e.startsWith(`\\`)||e.includes(`\\`)||e.split(`/`).some(e=>e===``||e===`.`||e===`..`))throw Error(`Studio element source file must be a normalized Draft-relative POSIX path`);if(t!==void 0&&(!Number.isInteger(t)||t<1))throw Error(`Studio source line must be a positive integer`);if(n!==void 0&&(!Number.isInteger(n)||n<1))throw Error(`Studio source column must be a positive integer`)}function Fo(e,t){if(!(e.control===`number`?typeof t==`number`&&Number.isFinite(t):e.control===`boolean`?typeof t==`boolean`:typeof t==`string`))throw Error(`Studio variable ${e.id} has an invalid ${e.control} value`);if(e.control===`color`&&(typeof t!=`string`||!/^#[0-9a-f]{6}$/i.test(t)))throw Error(`Studio color variable ${e.id} must use #RRGGBB`);if(e.control===`enum`&&(typeof t!=`string`||!e.options?.includes(t)))throw Error(`Studio variable ${e.id} value is not one of its options`);if(typeof t==`number`){if(e.constraints?.min!==void 0&&t<e.constraints.min)throw Error(`Studio variable ${e.id} is below its minimum`);if(e.constraints?.max!==void 0&&t>e.constraints.max)throw Error(`Studio variable ${e.id} is above its maximum`)}}function Io(e,t){let n=new Set;for(let r of e){if(z(r.id,`Studio variable id`),z(r.label,`Studio variable label`),n.has(r.id))throw Error(`Duplicate Studio variable id ${r.id}`);if(!No.has(r.control))throw Error(`Studio variable ${r.id} has an invalid control`);n.add(r.id);let e=t[r.id];if(e===void 0)throw Error(`Studio variable ${r.id} has no binding`);if(r.control===`enum`&&(r.options===void 0||r.options.length===0))throw Error(`Studio enum variable ${r.id} has no options`);if(r.options!==void 0&&new Set(r.options).size!==r.options.length)throw Error(`Studio variable ${r.id} has duplicate options`);let i=r.constraints;if(i!==void 0){for(let e of[i.min,i.max,i.step])if(e!==void 0&&!Number.isFinite(e))throw Error(`Studio variable ${r.id} has invalid constraints`);if(i.min!==void 0&&i.max!==void 0&&i.min>i.max)throw Error(`Studio variable ${r.id} minimum exceeds its maximum`);if(i.step!==void 0&&i.step<=0)throw Error(`Studio variable ${r.id} step must be positive`)}Fo(r,e.get())}for(let e of Object.keys(t))if(!n.has(e))throw Error(`Studio variable binding ${e} has no definition`)}function Lo(e,t){return Object.fromEntries(e.map(e=>{let n=t[e.id].get();return Fo(e,n),[e.id,n]}))}function Ro(e,t){let n=[];try{for(let r of Object.values(e)){if(r.subscribe===void 0)continue;let e=r.subscribe(t);if(typeof e!=`function`)throw Error(`Studio variable subscribe must return a disposer`);n.push(e)}return n}catch(e){for(let e of n.reverse())e();throw e}}var zo=class{changed;#e=new Map;#t=new Map;#n=new Map;#r=new Map;constructor(e){this.changed=e}registerElement(e){if(z(e.owner,`Studio element owner`),z(e.element.id,`Studio element id`),z(e.element.label,`Studio element label`),z(e.element.boundary.surfaceId,`Studio surface id`),Po(e.element.source.file,e.element.source.line,e.element.source.column),e.element.boundary.path.length===0)throw Error(`Studio surface path must not be empty`);for(let t of e.element.boundary.path)z(t,`Studio surface path segment`);Io(e.element.variables??[],e.bindings);let t=`${e.owner}\0${e.element.id}`;if(this.#e.has(t))throw Error(`Studio element already registered: ${e.owner}/${e.element.id}`);let n=`${e.element.boundary.surfaceId}\0${JSON.stringify(e.element.boundary.path)}`,r=this.#t.get(n);if(r!==void 0)throw Error(`Studio boundary already registered by ${r}`);let i={registration:{...structuredClone({owner:e.owner,element:e.element}),bindings:e.bindings},subscriptions:Ro(e.bindings,this.changed)};return this.#e.set(t,i),this.#t.set(n,`${e.owner}/${e.element.id}`),this.changed(),()=>{if(this.#e.get(t)===i){this.#e.delete(t),this.#t.delete(n);for(let e of i.subscriptions)e();this.changed()}}}registerVariables(e){if(z(e.owner,`Studio variable owner`),Io(e.variables,e.bindings),this.#n.has(e.owner))throw Error(`Studio variables already registered: ${e.owner}`);let t={registration:{...structuredClone({owner:e.owner,variables:e.variables}),bindings:e.bindings},subscriptions:Ro(e.bindings,this.changed)};return this.#n.set(e.owner,t),this.changed(),()=>{if(this.#n.get(e.owner)===t){this.#n.delete(e.owner);for(let e of t.subscriptions)e();this.changed()}}}snapshot(){return{elements:[...this.#e.values()].map(({registration:e})=>({owner:e.owner,element:e.element,values:Lo(e.element.variables??[],e.bindings)})),variables:[...this.#n.values()].map(({registration:e})=>({owner:e.owner,variables:e.variables,values:Lo(e.variables,e.bindings)}))}}async set(e){let t=e.scope===`element`?this.#e.get(`${e.owner}\0${e.elementId}`):this.#n.get(e.owner);if(t===void 0)throw Error(`Studio variable registration is no longer active`);let n=e.scope===`element`?`element\0${e.owner}\0${e.elementId}\0${e.variableId}`:`global\0${e.owner}\0${e.variableId}`,r=(this.#r.get(n)??Promise.resolve()).catch(()=>void 0).then(()=>this.#i(e,t));this.#r.set(n,r);try{await r}finally{this.#r.get(n)===r&&this.#r.delete(n)}}async#i(e,t){if((e.scope===`element`?this.#e.get(`${e.owner}\0${e.elementId}`):this.#n.get(e.owner))!==t)throw Error(`Studio variable registration is no longer active`);let n=e.scope===`element`?t.registration.element.variables??[]:t.registration.variables,r=t.registration.bindings,i=n.find(t=>t.id===e.variableId);if(i===void 0)throw Error(`Unknown Studio variable ${e.variableId}`);Fo(i,e.value),await r[e.variableId].set(e.value),Fo(i,r[e.variableId].get()),this.changed()}dispose(){for(let e of[...this.#e.values(),...this.#n.values()])for(let t of e.subscriptions)t();this.#e.clear(),this.#t.clear(),this.#n.clear()}};function Bo(e){return(typeof e==`function`||typeof e==`object`)&&e!==null&&e.__dshHarmonyPatchTrace===!0}function Vo(e){if(typeof e!=`object`||!e)return;let t=e,n=t.target,r=new Set([`replace-element`,`wrap-element`,`insert-before`,`insert-after`,`transform-props`]);if(!(typeof t.key!=`string`||typeof t.owner!=`string`||typeof t.declaration!=`string`||typeof t.effect!=`string`||!r.has(t.effect)||n===void 0||typeof n.package!=`string`||typeof n.file!=`string`))return{key:t.key.slice(0,500),owner:t.owner.slice(0,500),effect:t.effect,declaration:t.declaration.slice(0,1e3),target:{package:n.package.slice(0,500),file:n.file.slice(0,1e3)},confidence:`candidate`}}function Ho(e){let t=[],n=new Set,r=new Set,i=e;for(;i!==null&&!r.has(i)&&r.size<100;){if(r.add(i),Bo(i.type)){let e=i.memoizedProps?.traces;if(Array.isArray(e))for(let r of e){let e=Vo(r);if(e!==void 0){let r=`${e.key}\0${e.target.package}\0${e.target.file}\0${e.effect}`;n.has(r)||(n.add(r),t.push(e))}if(t.length===20)return t}}i=i.return??null}return t}var Uo=2e3,Wo=16e3,Go=/(?:value|password|passwd|secret|token|auth|cookie|session|credential)/i,Ko=new URLSearchParams(location.hash.slice(1)).get(Mo),qo=window.__DSH_STUDIO_PREVIEW__,Jo=qo!==void 0&&Ko===qo.capability,B,Yo=``,V=``,Xo=!1;function H(e){B!==void 0&&V!==``&&B.postMessage({...e,sessionId:Yo,nonce:V})}function U(e,t=2e3){return typeof e==`string`&&e.length<=t}function Zo(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=e,n=t.value;return!(typeof n==`boolean`||typeof n==`number`&&Number.isFinite(n)||U(n))||!U(t.owner,1e3)||!U(t.variableId,500)?!1:t.scope===`global`||t.scope===`element`&&U(t.elementId,500)}var W=new zo(()=>{try{H({type:`registry`,registry:W.snapshot()})}catch(e){H({type:`registry-error`,error:e instanceof Error?e.message:String(e)})}}),Qo=globalThis;Jo&&(Qo[e]=W);function $o(e){let t={};for(let[n,r]of Object.entries(e??{}).slice(0,40))Go.test(n)||n===`children`||(t[n]=typeof r==`string`?r.slice(0,200):typeof r==`number`||typeof r==`boolean`||r===null?r:Array.isArray(r)?`[array:${r.length}]`:`[${typeof r}]`);return t}function es(e){let t=e.fiber;if(t===null&&e.componentName===null&&e.filePath===null)return;let n=e.stack.flatMap(t=>typeof t.functionName==`string`&&t.functionName!==e.componentName?[t.functionName]:[]).filter((e,t,n)=>n.indexOf(e)===t),r=e.filePath===null?void 0:{file:e.filePath.slice(0,1e3),...e.lineNumber===null?{}:{line:e.lineNumber},...e.columnNumber===null?{}:{column:e.columnNumber}};return{...e.componentName===null?{}:{component:e.componentName},owners:n.slice(0,20),props:$o(t?.memoizedProps),patches:Ho(t),...r===void 0?{}:{source:r}}}function ts(e){return e.matches(`input, textarea, select`)}function ns(e,t){let n=/^(?:href|src|action|formaction|poster|cite)$/i.test(e)?t.replace(/[?#].*$/,``):t;return n.length>500?`${n.slice(0,500)}…`:n}function rs(e){let t=e.cloneNode(!0),n=[t,...t.querySelectorAll(`*`)];for(let e of n){for(let t of[...e.attributes])Go.test(t.name)?e.removeAttribute(t.name):e.setAttribute(t.name,ns(t.name,t.value));ts(e)&&(e.removeAttribute(`value`),e.textContent=``)}return t.outerHTML.slice(0,Wo)}function is(e){if(e.assignedSlot!==null)return e.assignedSlot;if(e.parentElement!==null)return e.parentElement;let t=e.getRootNode();if(t.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&`host`in t)return t.host;try{return e.ownerDocument.defaultView?.frameElement??void 0}catch{return}}function as(e){let t=[],n=new Set,r=e;for(;r!==void 0&&!n.has(r);){n.add(r);let e=r.getAttribute(`data-ui-surface`),i=r.getAttribute(`data-ui-surface-path`);if(e!==null&&i!==null)try{let n=JSON.parse(i);Array.isArray(n)&&n.length>0&&n.every(e=>typeof e==`string`)&&t.push({surfaceId:e,path:n})}catch{}r=is(r)}return t}async function os(e){let t={};for(let n of[...e.attributes])Go.test(n.name)||(t[n.name]=ns(n.name,n.value));let n=Oo(e),r=e.ownerDocument.defaultView?.getComputedStyle(e),i;try{i=await Ao(e)}catch{}let a=i===void 0?void 0:es(i),o=i?.selector==null||Go.test(i.selector)?void 0:i.selector.slice(0,2e3);return{tag:e.tagName.toLowerCase(),...e.id===``?{}:{id:e.id},classes:[...e.classList].slice(0,30),attributes:t,text:ts(e)?``:(e.textContent??``).trim().slice(0,Uo),outerHTML:rs(e),rect:{x:n.x,y:n.y,width:n.width,height:n.height},style:{display:r?.display??``,position:r?.position??``,color:r?.color??``,backgroundColor:r?.backgroundColor??``,fontFamily:r?.fontFamily??``,fontSize:r?.fontSize??``},boundaries:as(e),...o===void 0?{}:{selector:o},...a===void 0?{}:{react:a},confidence:a===void 0?`dom-only`:a.source===void 0?`component-only`:`mapped`}}var G=`browse`,K,q,J,Y=!1,ss=0,X,cs=0,ls=0;function Z(e){if(K=e,e===void 0){q?.remove(),q=void 0;return}q??=Object.assign(document.createElement(`div`),{ariaHidden:`true`}),q.isConnected||document.documentElement.append(q);let t=Oo(e);Object.assign(q.style,{position:`fixed`,pointerEvents:`none`,zIndex:`2147483647`,left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,height:`${t.height}px`,border:`2px solid #235be6`,background:`rgba(35,91,230,.08)`,boxSizing:`border-box`})}function us(e){let t=e.target!==null&&e.target.nodeType===Node.ELEMENT_NODE?e.target:void 0;return(t!==void 0&&t.ownerDocument!==document?Do(t)?t:null:jo(e.clientX,e.clientY,{filter:e=>e!==q&&e!==J&&Do(e)}))??void 0}function ds(e){Y||Z(us(e))}async function fs(e){e.preventDefault(),e.stopImmediatePropagation();let t=us(e);if(Y&&t!==K&&_s(),t===void 0)return;let n=++ss;try{let e=await os(t);G===`inspect`&&n===ss&&H({type:`selection`,selection:e})}catch(e){G===`inspect`&&n===ss&&H({type:`selection-error`,error:e instanceof Error?e.message:String(e)})}}function ps(e){e.preventDefault(),e.stopImmediatePropagation();let t=us(e);t!==void 0&&(Y=!0,Z(t))}function ms(){Y||Z()}function hs(e){e.preventDefault(),e.stopImmediatePropagation()}function gs(e){e.preventDefault(),e.stopImmediatePropagation(),H({type:`preview-zoom`,deltaY:e.deltaY,deltaMode:e.deltaMode})}function Q(){K?.isConnected===!0?Z(K):K!==void 0&&_s()}function _s(){Y=!1,ss+=1,Z()}function vs(e){e.button===1&&(e.preventDefault(),e.stopImmediatePropagation(),X=e.pointerId,cs=e.screenX,ls=e.screenY,e.target instanceof Element&&e.target.setPointerCapture(e.pointerId))}function ys(e){if(e.pointerId!==X)return;e.preventDefault(),e.stopImmediatePropagation();let t=e.screenX-cs,n=e.screenY-ls;cs=e.screenX,ls=e.screenY,(t!==0||n!==0)&&H({type:`preview-pan`,dx:t,dy:n})}function bs(e){e.pointerId===X&&(e.preventDefault(),e.stopImmediatePropagation(),X=void 0)}function $(e){e.button===1&&(e.preventDefault(),e.stopImmediatePropagation())}function xs(e){e.key===`Escape`&&(Ss(`browse`),H({type:`mode`,mode:G}))}function Ss(e){G!==e&&(_s(),J?.removeEventListener(`pointermove`,ds),J?.removeEventListener(`pointerleave`,ms),J?.removeEventListener(`click`,fs),J?.removeEventListener(`dblclick`,ps),J?.removeEventListener(`contextmenu`,hs),J?.remove(),J=void 0,window.removeEventListener(`wheel`,gs,!0),document.removeEventListener(`keydown`,xs,!0),window.removeEventListener(`resize`,Q),document.removeEventListener(`scroll`,Q,!0),G=e,G===`inspect`&&(J=Object.assign(document.createElement(`div`),{ariaHidden:`true`}),Object.assign(J.style,{position:`fixed`,inset:`0`,zIndex:`2147483646`,cursor:`crosshair`,touchAction:`none`}),document.documentElement.append(J),J.addEventListener(`pointermove`,ds),J.addEventListener(`pointerleave`,ms),J.addEventListener(`click`,fs),J.addEventListener(`dblclick`,ps),J.addEventListener(`contextmenu`,hs),window.addEventListener(`wheel`,gs,{capture:!0,passive:!1}),document.addEventListener(`keydown`,xs,!0),window.addEventListener(`resize`,Q),document.addEventListener(`scroll`,Q,!0)))}function Cs(){if(Xo||V===``)return;let e=globalThis.__DSH_BOOT__;typeof e?.rev==`string`&&e.rev!==``&&(Xo=!0,H({type:`preview-ready`,mode:G,graphRev:e.rev.slice(0,2e3),react:`react-grab`}),H({type:`registry`,registry:W.snapshot()}))}function ws(e){if(typeof e.data!=`object`||e.data===null||Array.isArray(e.data))return;let t=e.data;if(t.sessionId===Yo){if(V===``){if(t.type!==`connect`||!U(t.nonce,200)||t.nonce===``)return;V=t.nonce,Cs();return}t.nonce===V&&(t.type===`set-mode`&&(t.mode===`browse`||t.mode===`inspect`)&&Ss(t.mode),t.type===`unlock-selection`&&_s(),t.type===`refresh-overlay`&&requestAnimationFrame(Q),t.type===`set-variable`&&U(t.requestId,200)&&Zo(t.target)&&W.set(t.target).then(()=>{H({type:`variable-result`,requestId:t.requestId,ok:!0})}).catch(e=>{H({type:`variable-result`,requestId:t.requestId,ok:!1,error:e instanceof Error?e.message:String(e)})}))}}if(Jo){let e=new MessageChannel;B=e.port1,Yo=Ko,B.onmessage=e=>{ws(e)},B.start(),parent.postMessage({type:`dsh-studio-bridge`,sessionId:Yo},qo.parentOrigin,[e.port2]),window.addEventListener(`load`,Cs,{once:!0}),window.addEventListener(`pointerdown`,vs,!0),window.addEventListener(`pointermove`,ys,!0),window.addEventListener(`pointerup`,bs,!0),window.addEventListener(`pointercancel`,bs,!0),window.addEventListener(`mousedown`,$,!0),window.addEventListener(`auxclick`,$,!0)}window.addEventListener(`beforeunload`,()=>{Ss(`browse`),window.removeEventListener(`pointerdown`,vs,!0),window.removeEventListener(`pointermove`,ys,!0),window.removeEventListener(`pointerup`,bs,!0),window.removeEventListener(`pointercancel`,bs,!0),window.removeEventListener(`mousedown`,$,!0),window.removeEventListener(`auxclick`,$,!0),window.removeEventListener(`load`,Cs),B?.close(),W.dispose(),Qo.__DSH_HARMONY_STUDIO_RUNTIME__===W&&delete Qo[e]})})();
|
package/dist/studio.css
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--studio-font-sans:"Avenir Next", "SF Pro Text", "Segoe UI", sans-serif;--studio-font-mono:"SFMono-Regular", "Cascadia Code", Menlo, monospace;--studio-font-size-xs:9px;--studio-font-size-sm:10px;--studio-font-size-md:11px;--studio-font-size-lg:12px;--studio-font-size-xl:13px;--studio-font-size-2xl:14px;--studio-radius-sm:6px;--studio-radius-md:9px;--studio-radius-lg:13px;--studio-control-sm:28px;--studio-control-md:34px;--studio-motion-fast:.14s;--studio-ease-out:cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-studio-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--studio-canvas:#e8edf3;--studio-panel:#f9fafc;--studio-panel-raised:#fff;--studio-control:#f0f3f7;--studio-control-hover:#e5eaf1;--studio-control-pressed:#dce4ef;--studio-selection:#e1eaff;--studio-text:#18202c;--studio-text-secondary:#556174;--studio-text-tertiary:#667287;--studio-border:#cdd5df;--studio-border-strong:#aeb9c8;--studio-accent:#245fd6;--studio-accent-hover:#194db9;--studio-accent-soft:#dce7ff;--studio-accent-contrast:#fff;--studio-danger:#b42318;--studio-danger-soft:#fae3e0;--studio-warning:#805600;--studio-warning-soft:#f9edc8;--studio-success:#176a3b;--studio-success-soft:#dcefe3;--studio-instance-live:#087fff;--studio-instance-live-soft:#d9ebff;--studio-focus:#1f63e0;--studio-code-bg:#111722;--studio-code-text:#d9e2ef;--studio-code-keyword:#7b3fc7;--studio-code-string:#0b6a48;--studio-code-number:#9a4c12;--studio-code-comment:#687386;--studio-code-type:#155bb0;--studio-terminal-bg:#f7f9fc;--studio-terminal-header:#eef2f7;--studio-terminal-text:#243044;--studio-terminal-secondary:#5f6d82;--studio-terminal-border:#cbd4df;--studio-shadow-panel:0 12px 32px #27354824;--studio-workspace:#d9e0e8;--studio-workspace-dot:#a9b4c2;--studio-artboard-edge:#8491a1;--studio-artboard-shadow:0 22px 54px #2330413d, 0 5px 14px #23304129;--studio-glass:#ffffffbd;--studio-glass-border:#ffffffdb;--studio-glass-shadow:0 18px 46px #2330412e, 0 3px 10px #2330411a;--studio-sidebar-shadow:8px 0 22px -17px #1925364d;--studio-overlay:#11182357}:root[data-studio-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--studio-canvas:#080d13;--studio-panel:#111923;--studio-panel-raised:#192431;--studio-control:#202d3b;--studio-control-hover:#2a3a4c;--studio-control-pressed:#34475c;--studio-selection:#193d69;--studio-text:#f4f7fb;--studio-text-secondary:#c4ceda;--studio-text-tertiary:#a5b3c3;--studio-border:#405064;--studio-border-strong:#60738a;--studio-accent:#78adff;--studio-accent-hover:#9ac3ff;--studio-accent-soft:#1d406f;--studio-accent-contrast:#07111e;--studio-danger:#ff9a93;--studio-danger-soft:#492725;--studio-warning:#f4c96e;--studio-warning-soft:#433719;--studio-success:#76dfa1;--studio-success-soft:#1a422d;--studio-instance-live:#47c2ff;--studio-instance-live-soft:#123f58;--studio-focus:#a2c4ff;--studio-code-bg:#070b10;--studio-code-text:#e7eef8;--studio-code-keyword:#d0a6ff;--studio-code-string:#83e0b5;--studio-code-number:#ffc08e;--studio-code-comment:#9caabd;--studio-code-type:#95c2ff;--studio-terminal-bg:#080d13;--studio-terminal-header:#111c27;--studio-terminal-text:#e7eef8;--studio-terminal-secondary:#b9c6d5;--studio-terminal-border:#415269;--studio-shadow-panel:0 16px 38px #0000005c;--studio-workspace:#0a1119;--studio-workspace-dot:#435468;--studio-artboard-edge:#62758c;--studio-artboard-shadow:0 24px 60px #0000008c, 0 6px 16px #0000006b;--studio-glass:#111923eb;--studio-glass-border:#7e94b070;--studio-glass-shadow:0 20px 52px #0000006b, 0 4px 12px #00000047;--studio-sidebar-shadow:8px 0 22px -17px #000000ad;--studio-overlay:#000000a8}.studio-ui-root{font-family:var(--studio-font-sans);color:var(--studio-text);background:var(--studio-canvas);font-synthesis:none;text-rendering:optimizelegibility}.studio-ui-root ::selection{color:var(--studio-text);background:var(--studio-accent-soft)}.studio-ui-root *{scrollbar-color:var(--studio-border-strong) transparent;scrollbar-width:thin}.studio-ui-root button,.studio-ui-root input,.studio-ui-root select,.studio-ui-root textarea{font-family:inherit}.studio-ui-root :where(button,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--studio-focus);outline-offset:2px}.studio-ui-button{min-height:var(--studio-control-md);border-radius:var(--studio-radius-md);color:var(--studio-text);font-size:var(--studio-font-size-md);white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-weight:650;line-height:1;display:inline-flex}.studio-ui-button[data-size=small]{min-height:var(--studio-control-sm);border-radius:var(--studio-radius-sm);font-size:var(--studio-font-size-sm);padding-inline:9px}.studio-ui-button[data-variant=primary]{background:var(--studio-accent);color:var(--studio-accent-contrast)}.studio-ui-button[data-variant=secondary]{border-color:var(--studio-border);background:var(--studio-panel-raised)}.studio-ui-button[data-variant=ghost]{color:var(--studio-text-secondary)}.studio-ui-button[data-variant=danger]{color:var(--studio-danger)}.studio-ui-button:disabled{opacity:.52;cursor:default}.studio-ui-button:not(:disabled)[data-variant=primary]:hover{background:var(--studio-accent-hover)}.studio-ui-button:not(:disabled)[data-variant=secondary]:hover,.studio-ui-button:not(:disabled)[data-variant=ghost]:hover{background:var(--studio-control-hover)}.studio-ui-button:not(:disabled)[data-variant=danger]:hover{background:var(--studio-danger-soft)}.studio-ui-button:not(:disabled):active{transform:translateY(1px)}.studio-ui-icon-button{width:var(--studio-control-md);padding:0}.studio-ui-icon-button[data-size=small]{width:var(--studio-control-sm)}.studio-ui-icon-button>span{place-items:center;line-height:0;display:grid}.studio-ui-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.studio-ui-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex:none;width:12px;height:12px;animation:.7s linear infinite studio-ui-spin}.studio-ui-panel{background:var(--studio-panel);min-width:0;min-height:0;color:var(--studio-text);overflow:hidden}.studio-ui-panel-header{border-bottom:1px solid var(--studio-border);justify-content:space-between;align-items:center;gap:14px;min-height:52px;padding:11px 14px;display:flex}.studio-ui-panel-heading{min-width:0}.studio-ui-panel-heading :where(h1,h2,h3){font-size:var(--studio-font-size-xl);letter-spacing:-.01em;margin:0;line-height:18px}.studio-ui-panel-heading p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);margin:2px 0 0;line-height:16px}.studio-ui-panel-actions{flex:none;align-items:center;gap:6px;display:flex}.studio-ui-panel-body{min-height:0;padding:14px;overflow:auto}.studio-ui-tabs{border-bottom:1px solid var(--studio-border);background:var(--studio-panel);align-items:stretch;gap:2px;min-height:42px;padding:0 8px;display:flex;overflow:auto hidden}.studio-ui-tabs button{min-width:max-content;color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);cursor:pointer;background:0 0;border:0;padding:0 9px;font-weight:650;position:relative}.studio-ui-tabs button:after{content:"";background:0 0;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:9px;right:9px}.studio-ui-tabs button:hover{color:var(--studio-text)}.studio-ui-tabs button[aria-selected=true]{color:var(--studio-accent)}.studio-ui-tabs button[aria-selected=true]:after{background:var(--studio-accent)}.studio-ui-tabs button:disabled{opacity:.46;cursor:default}.studio-ui-segmented{border:1px solid var(--studio-border);border-radius:var(--studio-radius-md);background:var(--studio-control);align-items:center;gap:2px;padding:3px;display:inline-flex}.studio-ui-segmented button{border-radius:var(--studio-radius-sm);min-height:24px;color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);cursor:pointer;background:0 0;border:0;padding:0 8px;font-weight:600}.studio-ui-segmented button:hover{color:var(--studio-text)}.studio-ui-segmented button[aria-checked=true]{background:var(--studio-panel-raised);color:var(--studio-accent);box-shadow:0 1px 3px #131f311f}.studio-ui-segmented button:disabled{opacity:.46;cursor:default}.studio-ui-theme-switcher{width:max-content}.studio-ui-field{gap:5px;display:grid}.studio-ui-field>label{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);font-weight:650}.studio-ui-field>p{color:var(--studio-text-tertiary);font-size:var(--studio-font-size-sm);margin:0;line-height:15px}.studio-ui-field>.studio-ui-field-error{color:var(--studio-danger)}.studio-ui-input{width:100%;min-height:var(--studio-control-md);border:1px solid var(--studio-border);border-radius:var(--studio-radius-md);background:var(--studio-panel-raised);color:var(--studio-text);font-size:var(--studio-font-size-md);padding:0 10px}.studio-ui-input:hover:not(:disabled){border-color:var(--studio-border-strong)}.studio-ui-input:disabled{opacity:.55;cursor:default}.studio-ui-input::placeholder{color:var(--studio-text-tertiary);opacity:1}.studio-ui-field[data-invalid=true] .studio-ui-input{border-color:var(--studio-danger)}.studio-ui-select{padding-right:30px}.studio-ui-textarea{resize:vertical;min-height:72px;padding-block:8px;line-height:18px}.studio-ui-status{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);align-items:center;gap:7px;line-height:16px;display:inline-flex}.studio-ui-status-dot{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.studio-ui-status[data-tone=info],.studio-ui-badge[data-tone=info]{color:var(--studio-accent)}.studio-ui-status[data-tone=success],.studio-ui-badge[data-tone=success]{color:var(--studio-success)}.studio-ui-status[data-tone=warning],.studio-ui-badge[data-tone=warning]{color:var(--studio-warning)}.studio-ui-status[data-tone=danger],.studio-ui-badge[data-tone=danger]{color:var(--studio-danger)}.studio-ui-badge{border-radius:var(--studio-radius-sm);background:var(--studio-control);min-height:20px;color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);align-items:center;padding:2px 7px;font-weight:700;line-height:14px;display:inline-flex}.studio-ui-badge[data-tone=info]{background:var(--studio-accent-soft)}.studio-ui-badge[data-tone=success]{background:var(--studio-success-soft)}.studio-ui-badge[data-tone=warning]{background:var(--studio-warning-soft)}.studio-ui-badge[data-tone=danger]{background:var(--studio-danger-soft)}.studio-ui-notice{border-radius:var(--studio-radius-md);background:var(--studio-accent-soft);color:var(--studio-text);font-size:var(--studio-font-size-md);padding:9px 10px;line-height:17px}.studio-ui-notice[data-tone=success]{background:var(--studio-success-soft)}.studio-ui-notice[data-tone=warning]{background:var(--studio-warning-soft)}.studio-ui-notice[data-tone=danger]{background:var(--studio-danger-soft);color:var(--studio-danger)}.studio-ui-empty{border:1px dashed var(--studio-border-strong);border-radius:var(--studio-radius-lg);color:var(--studio-text-secondary);justify-items:start;gap:6px;padding:15px;display:grid}.studio-ui-empty strong{color:var(--studio-text);font-size:var(--studio-font-size-lg);line-height:18px}.studio-ui-empty p{max-width:52ch;font-size:var(--studio-font-size-md);text-wrap:pretty;margin:0;line-height:17px}.studio-ui-empty>div{margin-top:4px}@media (width<=560px){.studio-ui-panel-header{padding-inline:12px}.studio-ui-panel-body{padding:12px}.studio-ui-input{font-size:16px}.studio-ui-theme-switcher{width:100%}.studio-ui-theme-switcher button{flex:1}}@media (prefers-reduced-motion:no-preference){.studio-ui-button,.studio-ui-tabs button,.studio-ui-segmented button,.studio-ui-input{transition:color var(--studio-motion-fast) var(--studio-ease-out), border-color var(--studio-motion-fast) var(--studio-ease-out), background-color var(--studio-motion-fast) var(--studio-ease-out), box-shadow var(--studio-motion-fast) var(--studio-ease-out)}}@media (prefers-reduced-motion:reduce){.studio-ui-spinner{animation:none}}@keyframes studio-ui-spin{to{transform:rotate(1turn)}}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{background:var(--studio-canvas);min-width:320px;overflow:hidden}button,input,textarea,select,iframe{border:0}.studio-shell{background:radial-gradient(circle at 48% -25%, color-mix(in srgb, var(--studio-accent) 12%, transparent), transparent 34%), var(--studio-canvas);flex-direction:column;height:100%;display:flex}.studio-header{--studio-header-surface:color-mix(in srgb, var(--studio-panel-raised) 94%, transparent);z-index:10;border-bottom:1px solid var(--studio-border);background:var(--studio-header-surface);flex:none;grid-template-columns:minmax(190px,250px) minmax(0,1fr) auto;align-items:center;gap:12px;height:56px;padding:0 14px;display:grid;position:sticky;top:0}.studio-brand,.studio-brand>div,.panel-heading>div{min-width:0}.studio-brand{align-items:center;gap:10px;display:flex}.studio-mark{flex:none;place-items:center;width:30px;height:30px;display:grid}.studio-mark img{object-fit:contain;grid-area:1/1;width:100%;height:100%}.studio-mark-mono,:root[data-studio-theme=dark] .studio-mark-color{display:none}:root[data-studio-theme=dark] .studio-mark-mono{filter:invert();display:block}.studio-brand strong,.studio-brand span{display:block}.studio-brand strong{font-size:var(--studio-font-size-2xl);letter-spacing:-.01em;line-height:18px}.studio-brand div>span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);line-height:14px}.studio-header-actions{align-items:center;gap:12px;display:flex}.settings-button{border-color:color-mix(in srgb, var(--studio-border) 72%, transparent);background:color-mix(in srgb, var(--studio-control) 68%, transparent);width:28px;min-height:28px;color:var(--studio-text-secondary)}.settings-button svg{fill:none;stroke:currentColor;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.settings-button:focus-visible{outline-offset:1px;outline-width:1px}.studio-settings-dialog,.studio-create-dialog{border:1px solid var(--studio-border);border-radius:var(--studio-radius-lg);background:var(--studio-panel);color:var(--studio-text);box-shadow:var(--studio-shadow-panel);margin:auto;padding:0;overflow:hidden}.studio-settings-dialog{width:min(780px,100vw - 40px);height:min(460px,100vh - 40px)}.studio-settings-dialog[open]{grid-template-rows:52px minmax(0,1fr);display:grid}.studio-create-dialog{width:min(720px,100vw - 40px);height:min(500px,100vh - 40px)}.studio-create-dialog[open]{grid-template-rows:66px minmax(0,1fr);display:grid}.studio-settings-dialog::backdrop,.studio-create-dialog::backdrop{background:var(--studio-overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.studio-settings-dialog :where(button,input,select,textarea,[tabindex]):focus-visible,.studio-create-dialog :where(button,input,select,textarea,[tabindex]):focus-visible{outline-offset:0;outline-width:1px}.settings-dialog-header{border-bottom:1px solid var(--studio-border);background:var(--studio-panel-raised);justify-content:space-between;align-items:center;gap:12px;padding:0 14px 0 18px;display:flex}.settings-dialog-header h2{font-size:var(--studio-font-size-xl);letter-spacing:-.01em;margin:0;line-height:20px}.create-dialog-header>div{min-width:0}.create-dialog-header p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);text-overflow:ellipsis;white-space:nowrap;margin:1px 0 0;line-height:15px;overflow:hidden}.create-dialog-form{grid-template-rows:minmax(0,1fr) 62px;min-height:0;display:grid}.create-dialog-content{background:var(--studio-panel-raised);min-height:0;padding:10px 26px 24px;overflow:auto}.create-dialog-section{grid-template-columns:minmax(150px,.42fr) minmax(280px,1fr);gap:30px;padding-block:22px;display:grid}.create-dialog-section+.create-dialog-section{border-top:1px solid var(--studio-border)}.create-dialog-section-heading h3{font-size:var(--studio-font-size-lg);letter-spacing:-.01em;margin:0;line-height:18px}.create-dialog-section-heading p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);text-wrap:pretty;margin:5px 0 0;line-height:16px}.create-dialog-fields{align-content:start;gap:15px;min-width:0;display:grid}.create-dialog-error{margin-top:2px}.create-dialog-actions{border-top:1px solid var(--studio-border);background:var(--studio-panel);justify-content:flex-end;align-items:center;gap:8px;padding:12px 18px;display:flex}.create-dialog-actions .studio-ui-button{min-width:88px}.settings-dialog-layout{grid-template-columns:174px minmax(0,1fr);min-height:0;display:grid}.settings-dialog-nav{border-right:1px solid var(--studio-border);background:color-mix(in srgb, var(--studio-control) 48%, var(--studio-panel));flex-direction:column;gap:3px;min-width:0;padding:12px 10px;display:flex}.settings-dialog-nav button{border-radius:var(--studio-radius-sm);min-height:34px;color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:0 10px;font-weight:600;display:flex}.settings-dialog-nav button:hover{background:var(--studio-control-hover);color:var(--studio-text)}.settings-dialog-nav button[aria-selected=true]{background:var(--studio-control-pressed);color:var(--studio-text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--studio-border) 65%, transparent)}.settings-dialog-nav svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:15px;height:15px}.settings-dialog-content{background:var(--studio-panel-raised);min-width:0;padding:22px 26px 30px;overflow:auto}.settings-page-heading{border-bottom:1px solid var(--studio-border);min-height:42px}.settings-page-heading h3{font-size:var(--studio-font-size-2xl);letter-spacing:-.015em;margin:0;line-height:20px}.settings-row{border-bottom:1px solid var(--studio-border);grid-template-columns:minmax(220px,1fr) max-content;align-items:center;gap:28px;min-height:84px;padding-block:16px;display:grid}.settings-copy strong{font-size:var(--studio-font-size-lg);line-height:18px;display:block}.settings-copy p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);margin:5px 0 0;line-height:17px}.settings-choice{justify-self:end}.settings-language-select{min-width:190px}.settings-choice button{min-width:74px}.draft-tabs{border:1px solid color-mix(in srgb, var(--studio-border) 86%, transparent);border-radius:calc(var(--studio-radius-md) + 2px);background:color-mix(in srgb, var(--studio-control-pressed) 72%, var(--studio-panel));align-self:center;align-items:center;gap:0;min-width:0;height:40px;padding:4px;display:flex;overflow:hidden}.draft-tab-list{flex:0 auto;align-items:center;gap:4px;min-width:0;min-height:30px;padding-inline:4px;display:flex;overflow-x:auto}.draft-tab{border-radius:var(--studio-radius-sm);min-width:88px;max-width:190px;min-height:30px;color:var(--studio-text-secondary);transform:translateX(var(--draft-tab-shift,0));border:0;align-items:center;display:flex;position:relative}.draft-tab[data-dragging=true]{opacity:0}.draft-tab-drag-preview{z-index:100;border:1px solid var(--studio-border-strong);background:var(--studio-panel-raised);min-height:30px;color:var(--studio-text);box-shadow:var(--studio-shadow-panel);pointer-events:none;will-change:transform;position:fixed;top:0;left:0;overflow:hidden}.draft-tab-drag-preview:before,.draft-tab-drag-preview:after{display:none}.draft-tab-drag-preview .draft-tab-close{opacity:1}.draft-tab[data-drop-indicator]:after{content:"";z-index:4;background:color-mix(in srgb, var(--studio-instance-live) 82%, white);width:2px;box-shadow:0 0 6px color-mix(in srgb, var(--studio-instance-live) 58%, transparent);border-radius:2px;position:absolute;top:7px;bottom:7px}.draft-tab[data-drop-indicator=before]:after{left:-3px}.draft-tab[data-drop-indicator=after]:after{right:-3px}.draft-tab+.draft-tab:before{content:"";background:var(--studio-border-strong);opacity:.65;width:1px;position:absolute;top:9px;bottom:9px;left:-2px}.draft-tab[data-active=true]:before,.draft-tab[data-active=true]+.draft-tab:before{opacity:0}.draft-tab:hover{background:color-mix(in srgb, var(--studio-control) 54%, transparent)}.draft-tab[data-active=true]{z-index:1;background:var(--studio-header-surface);color:var(--studio-text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--studio-border) 72%, transparent), 0 1px 4px #0000001a}.draft-tab-select{min-width:0;min-height:30px;color:inherit;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border:0;flex:1;padding:0 5px 0 11px;overflow:hidden}.draft-tab-select:active{cursor:grabbing}.draft-tab .draft-tab-close{opacity:.55;flex:none;width:24px;height:24px;min-height:24px;margin-right:4px}.draft-tab:hover .draft-tab-close,.draft-tab[data-active=true] .draft-tab-close,.draft-tab-close:focus-visible{opacity:1}.draft-tab-close svg{width:13px;height:13px}.draft-tab-label{min-width:0;font-size:var(--studio-font-size-sm);align-items:center;gap:7px;font-weight:600;display:flex}.draft-tab-label>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.draft-tab-dot{background:var(--studio-text-tertiary);border-radius:50%;flex:none;width:6px;height:6px}.draft-tab-label[data-state=running] .draft-tab-dot,.draft-tab-label[data-state=starting] .draft-tab-dot{background:var(--studio-instance-live)}.draft-tab-label[data-state=failed] .draft-tab-dot{background:var(--studio-danger)}.draft-tab-dirty{background:currentColor;border-radius:50%;flex:none;width:5px;height:5px}.draft-tab-add{transform:translateX(var(--draft-tab-add-shift,0));flex:none;align-self:center;margin-bottom:3px}.draft-tabs .draft-tab-add[data-empty=true]{width:auto;color:var(--studio-accent);padding-inline:8px 10px}.draft-tab-add>span{align-items:center;gap:5px;line-height:1;display:flex}.draft-tab-add-label{font-size:var(--studio-font-size-sm);font-weight:700}.draft-tabs-loading{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);white-space:nowrap;align-self:center;padding:0 6px 3px}.draft-tabs-empty{min-width:0;color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);text-overflow:ellipsis;white-space:nowrap;align-self:center;padding:0 4px 3px;overflow:hidden}.studio-main{--studio-left-sidebar:260px;--studio-right-sidebar:400px;isolation:isolate;grid-template-columns:var(--studio-left-sidebar) minmax(0, 1fr) var(--studio-right-sidebar);background-color:var(--studio-workspace);background-image:radial-gradient(circle, var(--studio-workspace-dot) 0 1px, transparent 1.25px);background-position:50%;background-size:18px 18px;flex:1;min-height:0;display:grid;position:relative}.studio-main[data-left-collapsed=true]{--studio-left-sidebar:48px}.studio-main[data-right-collapsed=true]{--studio-right-sidebar:56px}.studio-main[data-preview-fullscreen=true]{z-index:100}.studio-project,.studio-inspector-rail,.studio-inspector,.studio-preview{min-width:0;min-height:0}.studio-project,.studio-inspector{flex-direction:column;display:flex}.studio-project{z-index:3;border-right:1px solid var(--studio-border);background:var(--studio-panel);box-shadow:var(--studio-sidebar-shadow);grid-area:1/1;position:relative}.sidebar-resizer{z-index:8;touch-action:none;cursor:col-resize;width:9px;position:absolute;top:0;bottom:0}.sidebar-resizer:after{content:"";background:0 0;width:1px;position:absolute;top:0;bottom:0;left:4px}.sidebar-resizer:hover:after,.sidebar-resizer:focus-visible:after{background:var(--studio-accent)}.sidebar-resizer[data-side=left]{right:-5px}.sidebar-resizer[data-side=right]{left:-5px}.sidebar-heading{border-bottom:1px solid var(--studio-border);background:var(--studio-panel-raised);flex:none;justify-content:space-between;align-items:center;gap:10px;min-height:60px;padding:11px 12px 11px 14px;display:flex;box-shadow:0 5px 14px -13px #111f30b3}.sidebar-title{min-width:0}.sidebar-title strong,.sidebar-title span{display:block}.sidebar-title strong{font-size:var(--studio-font-size-lg);letter-spacing:-.01em;line-height:17px}.sidebar-title span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);margin-top:1px;line-height:14px}.studio-sidebar[data-collapsed=true] .sidebar-title,.studio-sidebar[data-collapsed=true] .sidebar-content,.studio-project[data-collapsed=true]>.host-terminal{display:none}.studio-sidebar[data-collapsed=true] .sidebar-heading{border-bottom:0;justify-content:center;padding-inline:6px}.project-body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow-y:auto}.control-section-heading{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.control-section-heading>div{min-width:0}.control-section-heading strong,.control-section-heading code,.control-section-heading span{display:block}.control-section-heading strong{font-size:var(--studio-font-size-lg);text-overflow:ellipsis;white-space:nowrap;line-height:17px;overflow:hidden}.control-section-heading code,.control-section-heading span{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);margin-top:2px}.control-action-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.sidebar-action-button>span{justify-content:center;align-items:center;gap:7px;display:flex}.sidebar-action-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.preview-mode-field{gap:6px;display:grid}.preview-mode-heading{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.preview-mode-heading strong{font-size:var(--studio-font-size-md);line-height:16px}.preview-mode-heading span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);line-height:14px}.preview-mode-control{border-color:var(--studio-border-strong);border-radius:var(--studio-radius-md);background:var(--studio-control);gap:2px;width:100%;min-height:40px;padding:4px;position:relative;box-shadow:inset 0 1px 2px #101c2b1f}.preview-mode-control:before{content:"";z-index:0;border-radius:var(--studio-radius-sm);background:var(--studio-accent);width:calc(50% - 5px);position:absolute;inset-block:4px;inset-inline-start:4px;box-shadow:0 2px 7px #13377042}.preview-mode-field[data-mode=inspect] .preview-mode-control:before{inset-inline-start:calc(50% + 1px)}.preview-mode-field[data-disabled=true] .preview-mode-control:before{opacity:.34;box-shadow:none}.preview-mode-control button{z-index:1;min-height:30px;color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);flex:1;font-weight:700;position:relative}.preview-mode-control button[aria-checked=true]{color:var(--studio-accent-contrast);box-shadow:none;background:0 0}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-heading h1,.panel-heading h2{color:var(--studio-text);letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:15px;line-height:22px}.panel-heading p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);margin:3px 0 0;line-height:17px}.left-sidebar-tabs{background:var(--studio-panel);flex:none;min-height:34px;padding-inline:12px}.left-sidebar-tabs button{font-size:var(--studio-font-size-xs);flex:1;padding-inline:6px}.left-sidebar-page{flex:1;min-height:0}.instance-control-panel{flex-direction:column;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.instance-summary{border-bottom:1px solid var(--studio-border);min-width:0;color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);align-items:center;gap:7px;padding-bottom:9px;font-weight:600;display:flex}.instance-status-dot{background:var(--studio-text-tertiary);outline:2px solid color-mix(in srgb, var(--studio-text-tertiary) 14%, transparent);border-radius:50%;flex:none;width:7px;height:7px}.instance-summary[data-state=running] .instance-status-dot,.instance-summary[data-state=starting] .instance-status-dot{background:var(--studio-instance-live);outline-color:var(--studio-instance-live-soft)}.instance-summary[data-state=running],.instance-summary[data-state=starting]{color:var(--studio-instance-live)}.instance-summary[data-state=failed] .instance-status-dot{background:var(--studio-danger);outline-color:var(--studio-danger-soft)}.instance-summary[data-state=failed]{color:var(--studio-danger)}.instance-fields{gap:8px;display:grid}.instance-fields>label{gap:3px;min-width:0;display:grid}.instance-fields>label>span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);font-weight:600}.instance-fields .studio-ui-input{min-height:26px;font-size:var(--studio-font-size-sm);border-radius:2px;padding-inline:7px}.instance-fields code{min-width:0;color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);text-overflow:ellipsis;white-space:nowrap;padding:1px 0;overflow:hidden}.instance-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.instance-actions .studio-ui-button{min-width:0;min-height:26px;font-size:var(--studio-font-size-xs);border-radius:3px;padding-inline:5px}.instance-export{border-top:1px solid var(--studio-border);gap:5px;padding-top:10px;display:grid}.instance-export .studio-ui-button{width:100%}.instance-export>span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);line-height:15px}.plugin-management-page{padding:10px 14px 14px;overflow-y:auto}.plugin-management-page>p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);margin:12px 0 0;line-height:15px}.persistent-draft-list{border-top:1px solid var(--studio-border)}.persistent-draft-list article{border-bottom:1px solid var(--studio-border);justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:8px 0;display:flex}.persistent-draft-list article>div{min-width:0}.persistent-draft-list strong,.persistent-draft-list code{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.persistent-draft-list strong{font-size:var(--studio-font-size-sm);line-height:15px}.persistent-draft-list code{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);margin-top:1px}.persistent-draft-list .studio-ui-button{min-width:44px;min-height:24px;font-size:var(--studio-font-size-xs);padding-inline:6px}.host-terminal{background:var(--studio-terminal-bg);height:184px;min-height:156px;color:var(--studio-terminal-text);border-radius:0;flex-direction:column;flex:none;margin:0;display:flex;overflow:hidden}.host-terminal[data-minimized=true]{height:29px;min-height:29px}.host-terminal[data-minimized=true] .host-terminal-bar{border-bottom:0;min-height:29px}.terminal-latest-line{min-width:0;color:var(--studio-terminal-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.host-terminal-bar{border-top:1px solid var(--studio-terminal-border);border-bottom:1px solid var(--studio-terminal-border);background:var(--studio-terminal-header);width:100%;min-width:0;min-height:29px;color:var(--studio-terminal-text);font-size:var(--studio-font-size-sm);justify-content:space-between;align-items:center;gap:6px;padding:0 5px 0 6px;display:flex}.terminal-section-toggle{min-width:0;min-height:28px;color:inherit;font-size:var(--studio-font-size-sm);cursor:pointer;background:0 0;border:0;flex:none;align-self:stretch;align-items:center;gap:3px;margin-left:-6px;padding:0 6px;display:flex}.host-terminal:not([data-expanded=true]) .terminal-section-toggle{flex:1}.terminal-section-toggle:hover{background:color-mix(in srgb, var(--studio-terminal-text) 7%, transparent)}.terminal-section-toggle svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:14px;height:14px}.terminal-section-toggle strong{font-weight:700}.terminal-runtime-state{margin-left:auto}.host-terminal-actions{align-items:center;gap:5px;height:100%;display:flex}.host-terminal-bar span{color:var(--studio-terminal-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono)}.host-terminal-bar span[data-state=running]{color:var(--studio-success)}.host-terminal-bar span[data-state=starting]{color:var(--studio-warning)}.host-terminal-bar span[data-state=failed]{color:var(--studio-danger)}.host-terminal .terminal-layout-button{width:24px;height:24px;min-height:24px;color:var(--studio-terminal-secondary);padding:0}.host-terminal .terminal-layout-button:not(:disabled):hover{background:color-mix(in srgb, var(--studio-terminal-text) 9%, transparent)}.host-terminal .terminal-layout-button svg{width:14px;height:14px}.host-terminal pre{background:var(--studio-terminal-bg);width:100%;min-width:0;max-width:100%;min-height:0;color:inherit;font:var(--studio-font-size-sm)/16px var(--studio-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;flex:1;margin:0;padding:9px 10px 11px;overflow:auto}.host-terminal[data-expanded=true]{z-index:50;border:1px solid var(--studio-terminal-border);border-radius:var(--studio-radius-lg);min-width:280px;min-height:220px;margin:0;position:fixed;overflow:visible;box-shadow:0 22px 64px #0000006b,0 4px 14px #0000003d}.host-terminal[data-expanded=true] .host-terminal-bar{border-radius:var(--studio-radius-lg) var(--studio-radius-lg) 0 0;background:var(--studio-terminal-header);color:var(--studio-terminal-text);cursor:move;touch-action:none;border-top:0}.host-terminal[data-expanded=true] pre{border-radius:0 0 var(--studio-radius-lg) var(--studio-radius-lg);background:var(--studio-terminal-bg)}.studio-preview{z-index:1;background:0 0;flex-direction:column;display:flex;position:absolute;inset:0}.studio-preview[data-fullscreen=true]{z-index:100;isolation:isolate;background:var(--studio-panel);width:100vw;height:100dvh;color:var(--studio-text);position:fixed;inset:0}.preview-fullscreen-button svg,.preview-fullscreen-exit svg,.preview-aspect-lock svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.preview-fullscreen-tools{z-index:10;border:1px solid var(--studio-glass-border);border-radius:var(--studio-radius-md);background:var(--studio-glass);box-shadow:var(--studio-shadow-panel);-webkit-backdrop-filter:blur(20px)saturate(1.15);pointer-events:auto;gap:6px;padding:5px;display:flex;position:absolute;top:14px;right:14px}.preview-fullscreen-exit{min-width:32px;min-height:32px}.preview-stage{z-index:0;min-height:0;box-shadow:inset 0 1px 0 color-mix(in srgb, var(--studio-border-strong) 55%, transparent);background:0 0;flex:1;position:relative;overflow:hidden}.preview-zoom-focus{--preview-zoom-focus-expire-duration:10s;--preview-zoom-focus-visual-decay:cubic-bezier(.3333, 0, .6667, .3333);--preview-zoom-focus-rotation-decay:cubic-bezier(.3333, 1, .6667, 1);z-index:7;isolation:isolate;cursor:grab;touch-action:none;border-radius:50%;width:52px;height:52px;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.preview-zoom-focus:before,.preview-zoom-focus:after{content:"";pointer-events:none;border-radius:50%;position:absolute}.preview-zoom-focus:before{z-index:0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:backdrop-filter var(--preview-zoom-focus-expire-duration) var(--preview-zoom-focus-visual-decay);inset:5px}.preview-zoom-focus:after{z-index:1;background:repeating-conic-gradient(from -13deg, color-mix(in srgb, var(--studio-accent) 82%, white) 0deg 26deg, transparent 26deg 45deg);inset:1px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 2.5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 2.5px))}.preview-zoom-focus[data-phase=fading]{animation:preview-zoom-focus-fade var(--preview-zoom-focus-expire-duration) var(--preview-zoom-focus-visual-decay) forwards}.preview-zoom-focus[data-phase=fading]:before{-webkit-backdrop-filter:blur();backdrop-filter:blur()}.preview-artboard{z-index:1;box-shadow:0 0 0 1px var(--studio-artboard-edge), var(--studio-artboard-shadow);background:#fff;position:absolute;overflow:hidden}.preview-viewport{transform-origin:0 0}.preview-artboard[data-empty=true]{background:var(--studio-panel-raised)}.preview-artboard[data-mode=inspect]{cursor:crosshair}.studio-preview iframe{background:#fff;width:100%;height:100%;display:block}.studio-preview[data-fullscreen=true] .preview-stage,.studio-preview[data-fullscreen=true] .preview-artboard{box-shadow:none}.studio-preview[data-fullscreen=true] .preview-viewport{transform:none}.preview-empty{text-align:center;border:0;border-radius:0;place-content:center;justify-items:center;width:100%;height:100%}.preview-empty p{max-width:40ch}.resize-handle{z-index:6;touch-action:none;display:block;position:absolute}.resize-handle-n,.resize-handle-s{height:10px;left:12px;right:12px}.resize-handle-e,.resize-handle-w{width:10px;top:12px;bottom:12px}.resize-handle-n{cursor:n-resize;top:0}.resize-handle-e{cursor:e-resize;right:0}.resize-handle-s{cursor:s-resize;bottom:0}.resize-handle-w{cursor:w-resize;left:0}.resize-handle-ne,.resize-handle-se,.resize-handle-sw,.resize-handle-nw{width:15px;height:15px}.resize-handle-ne{cursor:ne-resize;top:0;right:0}.resize-handle-se{cursor:se-resize;bottom:0;right:0}.resize-handle-sw{cursor:sw-resize;bottom:0;left:0}.resize-handle-nw{cursor:nw-resize;top:0;left:0}.preview-artboard>.resize-handle:after{content:"";background:color-mix(in srgb, var(--studio-accent) 76%, white);opacity:0;position:absolute}.preview-artboard>.resize-handle-n:after,.preview-artboard>.resize-handle-s:after{height:2px;left:0;right:0}.preview-artboard>.resize-handle-e:after,.preview-artboard>.resize-handle-w:after{width:2px;top:0;bottom:0}.preview-artboard>.resize-handle-n:after{top:0}.preview-artboard>.resize-handle-e:after{right:0}.preview-artboard>.resize-handle-s:after{bottom:0}.preview-artboard>.resize-handle-w:after{left:0}.preview-artboard>.resize-handle:hover:after{opacity:1}body[data-studio-dragging=true] iframe{pointer-events:none}.studio-inspector-rail{z-index:3;border-left:1px solid var(--studio-border);pointer-events:none;flex-direction:column;grid-area:1/3;gap:12px;padding:12px;display:flex;position:relative}.studio-inspector-block,.studio-inspector-rail>.sidebar-resizer{pointer-events:auto}.studio-inspector-block{border:1px solid var(--studio-glass-border);border-radius:var(--studio-radius-lg);background:var(--studio-glass);box-shadow:var(--studio-glass-shadow);-webkit-backdrop-filter:blur(24px)saturate(1.18);overflow:hidden}.preview-inspector{flex:none}.preview-inspector-heading{border-bottom:1px solid var(--studio-border);justify-content:space-between;align-items:center;gap:10px;min-height:43px;padding:7px 8px 7px 14px;display:flex}.preview-inspector-heading>.studio-ui-icon-button{flex:none}.preview-inspector>.preview-controls{flex-direction:column;gap:10px;padding:12px 14px 13px;display:flex}.preview-resolution-line{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:6px;display:grid}.preview-resolution-line>label{align-items:center;gap:4px;min-width:0;display:flex}.preview-resolution-line>label>span{color:var(--studio-text-tertiary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono)}.preview-resolution-line .studio-ui-input{min-width:0;min-height:30px;font-size:var(--studio-font-size-sm);padding-inline:7px}.preview-canvas-line{grid-template-columns:auto minmax(70px,1fr) 30px;align-items:center;gap:6px;display:grid}.preview-zoom-control{grid-template-columns:30px 44px 30px;align-items:center;gap:4px;display:grid}.preview-zoom-control>span{color:var(--studio-text-secondary);font:var(--studio-font-size-sm)/16px var(--studio-font-mono);text-align:center}.preview-zoom-step{min-width:30px;font-size:var(--studio-font-size-xl);padding-inline:0}.preview-aspect-select{min-width:0;min-height:30px;font-size:var(--studio-font-size-sm);padding-inline:7px 24px}.preview-aspect-lock{width:30px;min-width:30px;min-height:30px;padding:0}.preview-aspect-lock[aria-pressed=true]{border-color:color-mix(in srgb, var(--studio-accent) 48%, var(--studio-border));background:var(--studio-selection);color:var(--studio-accent)}.studio-inspector{flex:1}.inspector-nav{border-bottom:1px solid var(--studio-border);flex:none;align-items:center;min-height:43px;display:flex}.inspector-nav>.studio-ui-tabs{background:0 0;border-bottom:0;flex:1;min-width:0}.studio-inspector-rail[data-collapsed=true]{padding:10px 8px}.studio-inspector-rail[data-collapsed=true] .preview-inspector-heading{border-bottom:0;justify-content:center;min-height:38px;padding:3px}.studio-inspector-rail[data-collapsed=true] .studio-inspector{display:none}.panel-content{flex:1;min-height:0;padding:15px;overflow-y:auto}.panel-error{flex:none;margin:10px 12px 0}.element-list{border-top:1px solid var(--studio-border);margin:15px -6px 0}.element-list>button{border-bottom:1px solid var(--studio-border);width:100%;color:var(--studio-text);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:10px;padding:10px 7px;display:flex}.element-list>button:hover{background:var(--studio-control)}.element-list>button[data-active=true]{background:var(--studio-selection)}.element-list>button>span,.element-source-row>div{min-width:0}.element-list strong,.element-list code,.element-source-row strong,.element-source-row code{display:block}.element-list strong,.element-source-row strong{font-size:var(--studio-font-size-md);line-height:17px}.element-list code,.element-source-row code{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;overflow:hidden}.element-list small{color:var(--studio-accent);font-size:var(--studio-font-size-xs);flex:none;font-weight:650}.element-detail{margin-top:18px}.element-source-row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.source-link{min-height:24px;color:var(--studio-accent);padding-inline:4px}.source-link:disabled{color:var(--studio-text-tertiary)}.element-match{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin:10px 0 0;line-height:16px}.element-match[data-state=matched]{color:var(--studio-success)}.element-variables{border-top:1px solid var(--studio-border);margin-top:12px}.element-variable{border-bottom:1px solid var(--studio-border);justify-content:space-between;align-items:center;gap:12px;min-height:46px;padding:8px 0;display:flex}.element-variable>span{min-width:0}.element-variable strong,.element-variable code{display:block}.element-variable strong{font-size:var(--studio-font-size-md);line-height:16px}.element-variable code{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);margin-top:1px}.element-variable .studio-ui-input:not([type=checkbox]):not([type=color]){width:112px;min-height:30px;font-size:var(--studio-font-size-md)}.element-variable .studio-ui-input[type=color]{width:42px;height:28px;min-height:28px;padding:2px}.element-variable .studio-ui-input[type=checkbox]{width:17px;height:17px;min-height:17px;accent-color:var(--studio-accent);padding:0}.global-variables{border-top:1px solid var(--studio-border);margin-top:24px;padding-top:14px}.variable-note{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin:14px 0 0;line-height:16px}.selection-result{margin-top:16px}.selection-title{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.selection-title>code{overflow-wrap:anywhere;color:var(--studio-accent);font:650 12px/18px var(--studio-font-mono)}.selection-text{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);margin:10px 0;line-height:17px}.selection-meta{margin:12px 0}.selection-meta>div{border-top:1px solid var(--studio-border);grid-template-columns:58px 1fr;gap:8px;padding:6px 0;display:grid}.selection-meta dt{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm)}.selection-meta dd{overflow-wrap:anywhere;font-size:var(--studio-font-size-md);margin:0;line-height:16px}.selection-meta dd code{font:var(--studio-font-size-sm)/16px var(--studio-font-mono)}.source-resolution{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);margin-top:2px;display:block}.selection-result details,.harmony-target-body details{margin-top:7px}.selection-result summary,.harmony-target-body summary{cursor:pointer;color:var(--studio-text-secondary);font-size:var(--studio-font-size-md)}.selection-code{border-radius:var(--studio-radius-md);background:var(--studio-control);max-height:240px;color:var(--studio-text);font:var(--studio-font-size-sm)/16px var(--studio-font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:7px 0 0;padding:9px;overflow:auto}.harmony-inspection,.patch-provenance{border-top:1px solid var(--studio-border);margin-top:22px;padding-top:14px}.section-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.section-heading strong{font-size:var(--studio-font-size-lg)}.section-heading>span:not(.studio-ui-badge){color:var(--studio-text-secondary);font-size:var(--studio-font-size-md)}.inspection-empty{color:var(--studio-text-secondary);font-size:var(--studio-font-size-md);margin:9px 0 0;line-height:17px}.harmony-target{border-bottom:1px solid var(--studio-border);padding:9px 0}.harmony-target>summary{cursor:pointer;list-style-position:outside}.harmony-target>summary span,.harmony-target>summary code{overflow-wrap:anywhere;margin-left:4px;display:block}.harmony-target>summary span{font-size:var(--studio-font-size-md);font-weight:650}.harmony-target>summary code{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin-top:3px}.harmony-target-body{padding:4px 0 2px 14px}.harmony-target-body>p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin:6px 0 10px}.patch-provenance .studio-ui-notice{margin-top:9px}.patch-trace-list{border-top:1px solid var(--studio-border);margin-top:8px}.patch-trace-list article{border-bottom:1px solid var(--studio-border);padding:9px 0}.patch-trace-list article>div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.patch-trace-list article>div strong{font-size:var(--studio-font-size-sm)}.patch-trace-list article>div code{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);overflow-wrap:anywhere}.patch-trace-list dl{margin:6px 0 0}.patch-trace-list dl>div{grid-template-columns:68px 1fr;gap:8px;padding:2px 0;display:grid}.patch-trace-list dt{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs)}.patch-trace-list dd{min-width:0;font-size:var(--studio-font-size-sm);overflow-wrap:anywhere;margin:0}.patch-trace-list dd code{font:var(--studio-font-size-xs)/14px var(--studio-font-mono)}.source-panel{flex-direction:column;display:flex;overflow:hidden}.source-toolbar{flex:none;margin:14px 0 10px}.source-toolbar .studio-ui-select{font-family:var(--studio-font-mono);font-size:var(--studio-font-size-sm)}.source-empty{margin-top:8px}.code-editor{border:1px solid var(--studio-border);border-radius:var(--studio-radius-md);flex:1;min-height:180px;overflow:hidden}.code-editor .cm-editor{background:var(--studio-panel-raised);height:100%;color:var(--studio-text);font-size:var(--studio-font-size-md)}.code-editor .cm-scroller{line-height:17px}.code-editor .cm-focused{outline:2px solid var(--studio-focus);outline-offset:-2px}.code-editor .cm-gutters{color:var(--studio-text-secondary);border-right-color:var(--studio-border)!important}.code-editor .cm-activeLine,.code-editor .cm-activeLineGutter{background:var(--studio-selection)}.code-editor .cm-selectionBackground{background:var(--studio-accent-soft)!important}.code-editor .cm-cursor{border-left-color:var(--studio-text)}.code-editor .tok-keyword,.code-editor .tok-operatorKeyword{color:var(--studio-code-keyword)}.code-editor .tok-string,.code-editor .tok-string2{color:var(--studio-code-string)}.code-editor .tok-number,.code-editor .tok-bool,.code-editor .tok-null{color:var(--studio-code-number)}.code-editor .tok-comment{color:var(--studio-code-comment)}.code-editor .tok-typeName,.code-editor .tok-className,.code-editor .tok-propertyName{color:var(--studio-code-type)}.source-actions{flex:none;justify-content:space-between;align-items:center;gap:10px;padding-top:10px;display:flex}.source-actions span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm)}.source-actions .studio-ui-button{min-width:104px}.build-heading{border-bottom:1px solid var(--studio-border);padding-bottom:13px}.build-action{border-bottom:1px solid var(--studio-border);gap:12px;padding:14px 0;display:grid}.build-action>div strong{font-size:var(--studio-font-size-lg)}.build-action>div p{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin:4px 0 0;line-height:16px}.build-action .studio-ui-button{width:100%}.build-notice{margin-top:14px}.build-output{margin-top:18px}.build-output>div{gap:4px;display:grid}.build-output>div strong{font-size:var(--studio-font-size-md)}.build-output>div code{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);overflow-wrap:anywhere}.build-output .selection-code{margin-top:9px}.readiness-heading{align-items:center}.readiness-summary{border:1px solid var(--studio-border);border-radius:var(--studio-radius-md);background:var(--studio-border);grid-template-columns:repeat(3,1fr);gap:1px;margin:16px 0;display:grid;overflow:hidden}.readiness-summary>div{background:var(--studio-control);align-items:baseline;gap:5px;padding:10px;display:flex}.readiness-summary strong{font-size:17px;line-height:20px}.readiness-summary span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);text-transform:uppercase}.readiness-summary [data-level=error] strong{color:var(--studio-danger)}.readiness-summary [data-level=warning] strong{color:var(--studio-warning)}.readiness-summary [data-level=info] strong{color:var(--studio-accent)}.readiness-clear{color:var(--studio-success);font-size:var(--studio-font-size-md);margin:12px 0;line-height:18px}.readiness-findings{border-top:1px solid var(--studio-border)}.readiness-findings article{border-bottom:1px solid var(--studio-border);padding:11px 0 11px 12px;position:relative}.readiness-findings article:before{content:"";background:var(--studio-accent);border-radius:50%;width:6px;height:6px;position:absolute;top:16px;left:0}.readiness-findings article[data-level=error]:before{background:var(--studio-danger)}.readiness-findings article[data-level=warning]:before{background:var(--studio-warning)}.readiness-findings article>div{align-items:center;gap:7px;display:flex}.readiness-findings article>div span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs);text-transform:uppercase;font-weight:700}.readiness-findings article>div code{color:var(--studio-text-secondary);font-size:var(--studio-font-size-xs)}.readiness-findings article p{font-size:var(--studio-font-size-md);text-wrap:pretty;margin:6px 0 0;line-height:17px}.readiness-findings article small{color:var(--studio-text-secondary);font:var(--studio-font-size-xs)/14px var(--studio-font-mono);overflow-wrap:anywhere;margin-top:5px;display:block}.pack-result{border-top:1px solid var(--studio-border);margin-top:18px;padding-top:14px}.pack-result>div{justify-content:space-between;align-items:center;gap:10px;display:flex}.pack-result>div strong{color:var(--studio-danger);font-size:var(--studio-font-size-md)}.pack-result[data-ok=true]>div strong{color:var(--studio-success)}.pack-result>div span,.pack-result summary{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm)}.pack-result details{margin-top:8px}.pack-result summary{cursor:pointer}.agent-panel{flex-direction:column;flex:1;min-height:0;padding:0;display:flex}.agent-heading{border-bottom:1px solid var(--studio-border);flex:none;padding:14px 15px 12px}.agent-scope{border-bottom:1px solid var(--studio-border);color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);flex:none;margin:0;padding:9px 15px;line-height:16px}.conversation{flex:1;min-height:0;padding:15px;overflow-y:auto}.agent-empty{margin:auto 0}.message{margin:0 0 16px}.message>span{color:var(--studio-text-secondary);font-size:var(--studio-font-size-sm);margin-bottom:5px;font-weight:650;display:block}.message>p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--studio-font-size-lg);margin:0;line-height:19px}.message.user{border-radius:var(--studio-radius-md);background:var(--studio-selection);margin-left:28px;padding:9px 10px}.message.assistant{padding-right:12px}.message.streaming>p:after{content:"";vertical-align:-2px;background:var(--studio-accent);width:5px;height:13px;margin-left:3px;display:inline-block}.interaction-notice{flex:none;margin:0 15px 10px}.composer{border-top:1px solid var(--studio-border);flex-direction:column;flex:none;gap:8px;padding:12px 15px 15px;display:flex}.composer .studio-ui-textarea{min-height:68px;max-height:140px}.composer .studio-ui-button{align-self:flex-end;min-width:68px}@media (width<=1050px){.studio-header{grid-template-columns:minmax(170px,210px) minmax(0,1fr) auto}.studio-brand div>span{display:none}}@media (width<=820px){body{overflow:auto}.studio-shell{height:auto;min-height:100%}.studio-header{grid-template-columns:auto 1fr;gap:8px 12px;height:auto;padding-block:8px}.studio-header-actions{justify-self:end}.draft-tabs{grid-area:2/1/auto/-1}.studio-main{grid-template-columns:1fr}.studio-project,.studio-preview,.studio-inspector-rail{grid-area:auto/1}.studio-preview{position:relative;inset:auto}.studio-inspector-rail{pointer-events:auto;border-left:0}.sidebar-resizer{display:none}.studio-project:not([data-collapsed=true]){min-height:360px}.studio-sidebar[data-collapsed=true]{min-height:48px}.studio-preview{min-height:68vh}.studio-inspector-rail:not([data-collapsed=true]){min-height:70vh}.studio-inspector-rail{padding:12px}.studio-inspector-rail[data-collapsed=true]{min-height:58px;padding:8px 12px 12px}}@media (width<=560px){.studio-header{align-items:center;min-height:52px;padding-inline:12px}.studio-brand div>span{display:none}.studio-header-actions{gap:7px}.studio-header-actions .studio-ui-status{gap:0;font-size:0}.settings-button.studio-ui-icon-button{width:40px;min-height:40px}.draft-tab{max-width:150px}.project-body{padding:0}.studio-preview{min-height:72vh}.panel-content{padding:13px}.readiness-heading{flex-direction:column;align-items:stretch}.readiness-heading .studio-ui-button{width:100%}.studio-settings-dialog{width:calc(100vw - 20px);height:min(500px,100vh - 20px)}.studio-settings-dialog[open]{grid-template-rows:48px minmax(0,1fr)}.studio-create-dialog{width:calc(100vw - 20px);height:min(580px,100vh - 20px)}.studio-create-dialog[open]{grid-template-rows:64px minmax(0,1fr)}.settings-dialog-header{padding-inline:14px 10px}.settings-dialog-header .studio-ui-icon-button{width:40px;min-height:40px}.create-dialog-form{grid-template-rows:minmax(0,1fr) 68px}.create-dialog-content{padding:4px 14px 20px}.create-dialog-section{grid-template-columns:1fr;gap:13px;padding-block:18px}.create-dialog-fields{gap:13px}.create-dialog-fields .studio-ui-input,.create-dialog-fields .studio-ui-select{min-height:40px;font-size:16px}.create-dialog-actions{padding:12px 14px}.create-dialog-actions .studio-ui-button{flex:1;min-height:40px}.settings-dialog-layout{grid-template-rows:50px minmax(0,1fr);grid-template-columns:1fr}.settings-dialog-nav{border-right:0;border-bottom:1px solid var(--studio-border);flex-direction:row;gap:4px;padding:8px 10px}.settings-dialog-nav button{flex:1;justify-content:center;min-height:42px;padding-inline:8px}.settings-dialog-content{padding:18px 14px 24px}.settings-page-heading{min-height:38px}.settings-row{grid-template-columns:1fr;align-items:start;gap:14px;min-height:0;padding-block:16px 20px}.settings-choice{justify-self:stretch;width:100%}.settings-language-select{min-height:40px}.settings-choice button{flex:1;min-width:0;min-height:40px}}@media (prefers-reduced-motion:no-preference){.studio-settings-dialog[open],.studio-create-dialog[open]{animation:studio-dialog-enter .16s var(--studio-ease-out)}.studio-main{transition:grid-template-columns var(--studio-motion-fast) var(--studio-ease-out)}.preview-mode-control:before{transition:inset-inline-start var(--studio-motion-fast) var(--studio-ease-out)}.draft-tab,.draft-tab-add{transition:transform var(--studio-motion-fast) var(--studio-ease-out)}.draft-tab-label[data-state=starting] .draft-tab-dot{animation:1.2s ease-in-out infinite studio-runtime-pulse}.element-list>button{transition:background-color var(--studio-motion-fast) var(--studio-ease-out)}.message.streaming>p:after{animation:.9s steps(2,jump-none) infinite studio-cursor}.preview-zoom-focus[data-phase=active]:after{animation:3s linear infinite preview-zoom-ring-spin}.preview-zoom-focus[data-phase=fading]:after{animation:preview-zoom-ring-decelerate var(--preview-zoom-focus-expire-duration) var(--preview-zoom-focus-rotation-decay) forwards}}@media (prefers-reduced-motion:reduce){.preview-zoom-focus{--preview-zoom-focus-expire-duration:.24s}}body[data-studio-dragging=true] .studio-main{transition:none}@keyframes studio-cursor{50%{opacity:.15}}@keyframes studio-runtime-pulse{50%{opacity:.32}}@keyframes preview-zoom-ring-spin{to{transform:rotate(1turn)}}@keyframes preview-zoom-ring-decelerate{to{transform:rotate(1.1111turn)}}@keyframes preview-zoom-focus-fade{0%,99.9%{pointer-events:auto}to{opacity:0;pointer-events:none}}@keyframes studio-dialog-enter{0%{opacity:0;filter:blur(2px);transform:translateY(7px)scale(.985)}}
|
|
2
|
+
/*$vite$:1*/
|