@dimina-kit/devtools 0.4.0-dev.20260824071518 → 0.4.0-dev.20260828161241

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/main/api.d.ts +1 -1
  2. package/dist/main/app/app.js +59 -2
  3. package/dist/main/index.bundle.js +986 -245
  4. package/dist/main/ipc/index.d.ts +2 -0
  5. package/dist/main/ipc/index.js +2 -0
  6. package/dist/main/ipc/popover.js +1 -1
  7. package/dist/main/ipc/project-create.d.ts +15 -0
  8. package/dist/main/ipc/project-create.js +26 -0
  9. package/dist/main/ipc/projects.d.ts +1 -1
  10. package/dist/main/ipc/projects.js +36 -1
  11. package/dist/main/ipc/settings.js +2 -1
  12. package/dist/main/ipc/simulator-module.d.ts +4 -3
  13. package/dist/main/ipc/simulator-module.js +4 -5
  14. package/dist/main/ipc/tooltip.js +1 -1
  15. package/dist/main/ipc/views.d.ts +15 -1
  16. package/dist/main/ipc/views.js +61 -4
  17. package/dist/main/runtime/miniapp-runtime.d.ts +87 -19
  18. package/dist/main/services/notifications/renderer-notifier.d.ts +30 -1
  19. package/dist/main/services/notifications/renderer-notifier.js +23 -1
  20. package/dist/main/services/projects/create-project-service.js +9 -2
  21. package/dist/main/services/projects/local-provider.js +6 -0
  22. package/dist/main/services/projects/project-repository.d.ts +29 -1
  23. package/dist/main/services/projects/project-repository.js +151 -17
  24. package/dist/main/services/projects/types.d.ts +13 -2
  25. package/dist/main/services/update/update-manager.d.ts +17 -3
  26. package/dist/main/services/update/update-manager.js +25 -6
  27. package/dist/main/services/views/host-dialog-port-channel.d.ts +18 -0
  28. package/dist/main/services/views/host-dialog-port-channel.js +15 -0
  29. package/dist/main/services/views/host-dialog-session-runtime.d.ts +10 -0
  30. package/dist/main/services/views/host-dialog-session-runtime.js +17 -0
  31. package/dist/main/services/views/host-dialog-view.d.ts +95 -0
  32. package/dist/main/services/views/host-dialog-view.js +147 -0
  33. package/dist/main/services/views/host-sidebar-port-channel.d.ts +18 -0
  34. package/dist/main/services/views/host-sidebar-port-channel.js +15 -0
  35. package/dist/main/services/views/host-sidebar-session-runtime.d.ts +10 -0
  36. package/dist/main/services/views/host-sidebar-session-runtime.js +17 -0
  37. package/dist/main/services/views/host-sidebar-view.d.ts +59 -0
  38. package/dist/main/services/views/host-sidebar-view.js +44 -0
  39. package/dist/main/services/views/host-slot-port-channel.d.ts +107 -0
  40. package/dist/main/services/views/host-slot-port-channel.js +261 -0
  41. package/dist/main/services/views/host-slot-session-runtime.d.ts +40 -0
  42. package/dist/main/services/views/host-slot-session-runtime.js +50 -0
  43. package/dist/main/services/views/host-slot-view.d.ts +109 -0
  44. package/dist/main/services/views/host-slot-view.js +147 -0
  45. package/dist/main/services/views/host-toolbar-port-channel.d.ts +6 -91
  46. package/dist/main/services/views/host-toolbar-port-channel.js +10 -243
  47. package/dist/main/services/views/host-toolbar-session-runtime.d.ts +5 -30
  48. package/dist/main/services/views/host-toolbar-session-runtime.js +9 -47
  49. package/dist/main/services/views/host-toolbar-view.d.ts +34 -7
  50. package/dist/main/services/views/host-toolbar-view.js +30 -224
  51. package/dist/main/services/views/managed-web-contents-view.d.ts +48 -0
  52. package/dist/main/services/views/managed-web-contents-view.js +123 -0
  53. package/dist/main/services/views/overlay-panels-view.d.ts +23 -0
  54. package/dist/main/services/views/overlay-panels-view.js +93 -4
  55. package/dist/main/services/views/placement-reconciler.d.ts +14 -2
  56. package/dist/main/services/views/placement-reconciler.js +27 -0
  57. package/dist/main/services/views/placement-test-driver.d.ts +1 -0
  58. package/dist/main/services/views/placement-test-driver.js +3 -0
  59. package/dist/main/services/views/view-manager-devtools-host-test-fixtures.js +3 -1
  60. package/dist/main/services/views/view-manager.d.ts +10 -78
  61. package/dist/main/services/views/view-manager.js +34 -3
  62. package/dist/main/services/workbench-context.d.ts +18 -4
  63. package/dist/main/services/workbench-context.js +1 -0
  64. package/dist/main/services/workspace/workspace-service.d.ts +2 -0
  65. package/dist/main/services/workspace/workspace-service.js +14 -0
  66. package/dist/main/utils/paths.d.ts +4 -0
  67. package/dist/main/utils/paths.js +4 -0
  68. package/dist/main/utils/sender-policy.js +10 -0
  69. package/dist/native-host/common/common.js +65 -62
  70. package/dist/native-host/render/render.js +2230 -2052
  71. package/dist/native-host/service/service.js +2 -2
  72. package/dist/preload/runtime/host-dialog-advertiser.d.ts +22 -0
  73. package/dist/preload/runtime/host-dialog-advertiser.js +37 -0
  74. package/dist/preload/runtime/host-dialog-port.d.ts +44 -0
  75. package/dist/preload/runtime/host-dialog-port.js +53 -0
  76. package/dist/preload/runtime/host-dialog-runtime.d.ts +28 -0
  77. package/dist/preload/runtime/host-dialog-runtime.js +36 -0
  78. package/dist/preload/runtime/host-sidebar-advertiser.d.ts +19 -0
  79. package/dist/preload/runtime/host-sidebar-advertiser.js +35 -0
  80. package/dist/preload/runtime/host-sidebar-port.d.ts +44 -0
  81. package/dist/preload/runtime/host-sidebar-port.js +53 -0
  82. package/dist/preload/runtime/host-sidebar-runtime.d.ts +28 -0
  83. package/dist/preload/runtime/host-sidebar-runtime.js +36 -0
  84. package/dist/preload/runtime/host-slot-port-bridge.d.ts +18 -0
  85. package/dist/preload/runtime/host-slot-port-bridge.js +112 -0
  86. package/dist/preload/runtime/host-toolbar-advertiser.d.ts +5 -13
  87. package/dist/preload/runtime/host-toolbar-advertiser.js +18 -38
  88. package/dist/preload/runtime/host-toolbar-port.d.ts +9 -0
  89. package/dist/preload/runtime/host-toolbar-port.js +11 -95
  90. package/dist/preload/runtime/wait-for-slot-root.d.ts +20 -0
  91. package/dist/preload/runtime/wait-for-slot-root.js +52 -0
  92. package/dist/preload/windows/host-dialog-runtime.cjs +353 -0
  93. package/dist/preload/windows/host-dialog-runtime.cjs.map +7 -0
  94. package/dist/preload/windows/host-dialog-runtime.d.ts +2 -0
  95. package/dist/preload/windows/host-dialog-runtime.js +13 -0
  96. package/dist/preload/windows/host-sidebar-runtime.cjs +354 -0
  97. package/dist/preload/windows/host-sidebar-runtime.cjs.map +7 -0
  98. package/dist/preload/windows/host-sidebar-runtime.d.ts +2 -0
  99. package/dist/preload/windows/host-sidebar-runtime.js +13 -0
  100. package/dist/preload/windows/host-toolbar-runtime.cjs +134 -51
  101. package/dist/preload/windows/host-toolbar-runtime.cjs.map +3 -3
  102. package/dist/preload/windows/simulator.cjs.map +1 -1
  103. package/dist/renderer/assets/button-D5Q2wkXq.js +2 -0
  104. package/dist/renderer/assets/constants-D7DfVqMp.js +2 -0
  105. package/dist/renderer/assets/constants-D8zsejFq.js +2 -0
  106. package/dist/renderer/assets/createLucideIcon-Bqi8hpdi.js +2 -0
  107. package/dist/renderer/assets/dialog-e1TecTOY.js +46 -0
  108. package/dist/renderer/assets/dist-DKWdE1TK.js +2 -0
  109. package/dist/renderer/assets/hostSidebarDefault-B3yLfy8j.js +2 -0
  110. package/dist/renderer/assets/index-CsPD68N_.js +5 -0
  111. package/dist/renderer/assets/input-Ct3alvkq.js +2 -0
  112. package/dist/renderer/assets/ipc-channels-overlays-LsDzGAtV.js +2 -0
  113. package/dist/renderer/assets/jsx-runtime-2vXHouwr.css +1 -0
  114. package/dist/renderer/assets/jsx-runtime-DGLHmmOq.js +9 -0
  115. package/dist/renderer/assets/popover-Dix5cm_b.js +2 -0
  116. package/dist/renderer/assets/project-api-k7Oq9iaq.js +2 -0
  117. package/dist/renderer/assets/projectCreateDialog-Bbjz75bP.js +2 -0
  118. package/dist/renderer/assets/select-acGb0AmJ.js +2 -0
  119. package/dist/renderer/assets/settings-CQrTMr43.js +2 -0
  120. package/dist/renderer/assets/settings-api-CrUQ9rYV.js +2 -0
  121. package/dist/renderer/assets/settings-tab-bar-Cw1kVIf2.js +2 -0
  122. package/dist/renderer/assets/tooltip-B_-_YVbw.js +2 -0
  123. package/dist/renderer/assets/types-CsEKtFyr.js +2 -0
  124. package/dist/renderer/assets/updateDialog-NsF8223A.js +2 -0
  125. package/dist/renderer/assets/utils-kfQov6Pa.js +2 -0
  126. package/dist/renderer/assets/view-api-CLn3rcQE.js +2 -0
  127. package/dist/renderer/assets/{workbenchSettings-oq_EyfKf.js → workbenchSettings-CV4LVA9b.js} +3 -3
  128. package/dist/renderer/entries/host-sidebar-default/index.html +21 -0
  129. package/dist/renderer/entries/main/index.html +17 -8
  130. package/dist/renderer/entries/popover/index.html +10 -7
  131. package/dist/renderer/entries/project-create-dialog/index.html +27 -0
  132. package/dist/renderer/entries/settings/index.html +10 -7
  133. package/dist/renderer/entries/tooltip/index.html +5 -4
  134. package/dist/renderer/entries/update-dialog/index.html +25 -0
  135. package/dist/renderer/entries/workbench-settings/index.html +11 -7
  136. package/dist/service-host/preload.cjs +10 -0
  137. package/dist/shared/constants.d.ts +22 -0
  138. package/dist/shared/constants.js +22 -0
  139. package/dist/shared/ipc-channels-overlays.d.ts +156 -0
  140. package/dist/shared/ipc-channels-overlays.js +186 -0
  141. package/dist/shared/ipc-channels.d.ts +4 -77
  142. package/dist/shared/ipc-channels.js +4 -98
  143. package/dist/shared/ipc-schemas.d.ts +44 -0
  144. package/dist/shared/ipc-schemas.js +55 -0
  145. package/dist/shared/types.d.ts +71 -0
  146. package/dist/shared/view-ids.d.ts +7 -0
  147. package/dist/shared/view-ids.js +10 -0
  148. package/package.json +8 -8
  149. package/dist/renderer/assets/constants-Bdz0LHdy.js +0 -2
  150. package/dist/renderer/assets/index-CtznrmHR.js +0 -49
  151. package/dist/renderer/assets/input-Dmm6nob5.js +0 -2
  152. package/dist/renderer/assets/ipc-transport-BOg0gR9W.js +0 -9
  153. package/dist/renderer/assets/ipc-transport-DgQhZaE9.css +0 -1
  154. package/dist/renderer/assets/popover-Cd1FEGOX.js +0 -2
  155. package/dist/renderer/assets/select-BaYox7If.js +0 -2
  156. package/dist/renderer/assets/settings-BXvwuFaz.js +0 -2
  157. package/dist/renderer/assets/settings-api-Bo9GbYqs.js +0 -2
  158. package/dist/renderer/assets/settings-tab-bar-Beia6lMr.js +0 -2
  159. package/dist/renderer/assets/tooltip-DfQqK3Sk.js +0 -2
  160. package/dist/renderer/assets/view-api-nn69je7A.js +0 -2
@@ -0,0 +1,2 @@
1
+ function e(t){var n,r,i=``;if(typeof t==`string`||typeof t==`number`)i+=t;else if(typeof t==`object`)if(Array.isArray(t)){var a=t.length;for(n=0;n<a;n++)t[n]&&(r=e(t[n]))&&(i&&(i+=` `),i+=r)}else for(r in t)t[r]&&(i&&(i+=` `),i+=r);return i}function t(){for(var t,n,r=0,i=``,a=arguments.length;r<a;r++)(t=arguments[r])&&(n=e(t))&&(i&&(i+=` `),i+=n);return i}var n=`-`,r=e=>{let t=s(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:e=>{let r=e.split(n);return r[0]===``&&r.length!==1&&r.shift(),i(r,t)||o(e)},getConflictingClassGroupIds:(e,t)=>{let n=r[e]||[];return t&&a[e]?[...n,...a[e]]:n}}},i=(e,t)=>{if(e.length===0)return t.classGroupId;let r=e[0],a=t.nextPart.get(r),o=a?i(e.slice(1),a):void 0;if(o)return o;if(t.validators.length===0)return;let s=e.join(n);return t.validators.find(({validator:e})=>e(s))?.classGroupId},a=/^\[(.+)\]$/,o=e=>{if(a.test(e)){let t=a.exec(e)[1],n=t?.substring(0,t.indexOf(`:`));if(n)return`arbitrary..`+n}},s=e=>{let{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return d(Object.entries(e.classGroups),n).forEach(([e,n])=>{c(n,r,e,t)}),r},c=(e,t,n,r)=>{e.forEach(e=>{if(typeof e==`string`){let r=e===``?t:l(t,e);r.classGroupId=n;return}if(typeof e==`function`){if(u(e)){c(e(r),t,n,r);return}t.validators.push({validator:e,classGroupId:n});return}Object.entries(e).forEach(([e,i])=>{c(i,l(t,e),n,r)})})},l=(e,t)=>{let r=e;return t.split(n).forEach(e=>{r.nextPart.has(e)||r.nextPart.set(e,{nextPart:new Map,validators:[]}),r=r.nextPart.get(e)}),r},u=e=>e.isThemeGetter,d=(e,t)=>t?e.map(([e,n])=>[e,n.map(e=>typeof e==`string`?t+e:typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,n])=>[t+e,n])):e)]):e,f=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=new Map,r=new Map,i=(i,a)=>{n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(e){let t=n.get(e);if(t!==void 0)return t;if((t=r.get(e))!==void 0)return i(e,t),t},set(e,t){n.has(e)?n.set(e,t):i(e,t)}}},p=`!`,m=e=>{let{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],a=t.length,o=e=>{let n=[],o=0,s=0,c;for(let l=0;l<e.length;l++){let u=e[l];if(o===0){if(u===i&&(r||e.slice(l,l+a)===t)){n.push(e.slice(s,l)),s=l+a;continue}if(u===`/`){c=l;continue}}u===`[`?o++:u===`]`&&o--}let l=n.length===0?e:e.substring(s),u=l.startsWith(p);return{modifiers:n,hasImportantModifier:u,baseClassName:u?l.substring(1):l,maybePostfixModifierPosition:c&&c>s?c-s:void 0}};return n?e=>n({className:e,parseClassName:o}):o},h=e=>{if(e.length<=1)return e;let t=[],n=[];return e.forEach(e=>{e[0]===`[`?(t.push(...n.sort(),e),n=[]):n.push(e)}),t.push(...n.sort()),t},g=e=>({cache:f(e.cacheSize),parseClassName:m(e),...r(e)}),_=/\s+/,v=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,a=[],o=e.trim().split(_),s=``;for(let e=o.length-1;e>=0;--e){let t=o[e],{modifiers:c,hasImportantModifier:l,baseClassName:u,maybePostfixModifierPosition:d}=n(t),f=!!d,m=r(f?u.substring(0,d):u);if(!m){if(!f){s=t+(s.length>0?` `+s:s);continue}if(m=r(u),!m){s=t+(s.length>0?` `+s:s);continue}f=!1}let g=h(c).join(`:`),_=l?g+p:g,v=_+m;if(a.includes(v))continue;a.push(v);let y=i(m,f);for(let e=0;e<y.length;++e){let t=y[e];a.push(_+t)}s=t+(s.length>0?` `+s:s)}return s};function y(){let e=0,t,n,r=``;for(;e<arguments.length;)(t=arguments[e++])&&(n=b(t))&&(r&&(r+=` `),r+=n);return r}var b=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=b(e[r]))&&(n&&(n+=` `),n+=t);return n};function x(e,...t){let n,r,i,a=o;function o(o){return n=g(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)}function s(e){let t=r(e);if(t)return t;let a=v(e,n);return i(e,a),a}return function(){return a(y.apply(null,arguments))}}var S=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},C=/^\[(?:([a-z-]+):)?(.+)\]$/i,w=/^\d+\/\d+$/,T=new Set([`px`,`full`,`screen`]),E=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,D=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,O=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,k=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,A=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,j=e=>N(e)||T.has(e)||w.test(e),M=e=>K(e,`length`,q),N=e=>!!e&&!Number.isNaN(Number(e)),P=e=>K(e,`number`,N),F=e=>!!e&&Number.isInteger(Number(e)),I=e=>e.endsWith(`%`)&&N(e.slice(0,-1)),L=e=>C.test(e),R=e=>E.test(e),z=new Set([`length`,`size`,`percentage`]),B=e=>K(e,z,J),V=e=>K(e,`position`,J),H=new Set([`image`,`url`]),U=e=>K(e,H,X),W=e=>K(e,``,Y),G=()=>!0,K=(e,t,n)=>{let r=C.exec(e);return r?r[1]?typeof t==`string`?r[1]===t:t.has(r[1]):n(r[2]):!1},q=e=>D.test(e)&&!O.test(e),J=()=>!1,Y=e=>k.test(e),X=e=>A.test(e),Z=x(()=>{let e=S(`colors`),t=S(`spacing`),n=S(`blur`),r=S(`brightness`),i=S(`borderColor`),a=S(`borderRadius`),o=S(`borderSpacing`),s=S(`borderWidth`),c=S(`contrast`),l=S(`grayscale`),u=S(`hueRotate`),d=S(`invert`),f=S(`gap`),p=S(`gradientColorStops`),m=S(`gradientColorStopPositions`),h=S(`inset`),g=S(`margin`),_=S(`opacity`),v=S(`padding`),y=S(`saturate`),b=S(`scale`),x=S(`sepia`),C=S(`skew`),w=S(`space`),T=S(`translate`),E=()=>[`auto`,`contain`,`none`],D=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],O=()=>[`auto`,L,t],k=()=>[L,t],A=()=>[``,j,M],z=()=>[`auto`,N,L],H=()=>[`bottom`,`center`,`left`,`left-bottom`,`left-top`,`right`,`right-bottom`,`right-top`,`top`],K=()=>[`solid`,`dashed`,`dotted`,`double`,`none`],q=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],J=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`],Y=()=>[``,`0`,L],X=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],Z=()=>[N,L];return{cacheSize:500,separator:`:`,theme:{colors:[G],spacing:[j,M],blur:[`none`,``,R,L],brightness:Z(),borderColor:[e],borderRadius:[`none`,``,`full`,R,L],borderSpacing:k(),borderWidth:A(),contrast:Z(),grayscale:Y(),hueRotate:Z(),invert:Y(),gap:k(),gradientColorStops:[e],gradientColorStopPositions:[I,M],inset:O(),margin:O(),opacity:Z(),padding:k(),saturate:Z(),scale:Z(),sepia:Y(),skew:Z(),space:k(),translate:k()},classGroups:{aspect:[{aspect:[`auto`,`square`,`video`,L]}],container:[`container`],columns:[{columns:[R]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:[...H(),L]}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:E()}],"overscroll-x":[{"overscroll-x":E()}],"overscroll-y":[{"overscroll-y":E()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:[h]}],"inset-x":[{"inset-x":[h]}],"inset-y":[{"inset-y":[h]}],start:[{start:[h]}],end:[{end:[h]}],top:[{top:[h]}],right:[{right:[h]}],bottom:[{bottom:[h]}],left:[{left:[h]}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[`auto`,F,L]}],basis:[{basis:O()}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`wrap`,`wrap-reverse`,`nowrap`]}],flex:[{flex:[`1`,`auto`,`initial`,`none`,L]}],grow:[{grow:Y()}],shrink:[{shrink:Y()}],order:[{order:[`first`,`last`,`none`,F,L]}],"grid-cols":[{"grid-cols":[G]}],"col-start-end":[{col:[`auto`,{span:[`full`,F,L]},L]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[G]}],"row-start-end":[{row:[`auto`,{span:[F,L]},L]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":[`auto`,`min`,`max`,`fr`,L]}],"auto-rows":[{"auto-rows":[`auto`,`min`,`max`,`fr`,L]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:[`normal`,...J()]}],"justify-items":[{"justify-items":[`start`,`end`,`center`,`stretch`]}],"justify-self":[{"justify-self":[`auto`,`start`,`end`,`center`,`stretch`]}],"align-content":[{content:[`normal`,...J(),`baseline`]}],"align-items":[{items:[`start`,`end`,`center`,`baseline`,`stretch`]}],"align-self":[{self:[`auto`,`start`,`end`,`center`,`stretch`,`baseline`]}],"place-content":[{"place-content":[...J(),`baseline`]}],"place-items":[{"place-items":[`start`,`end`,`center`,`baseline`,`stretch`]}],"place-self":[{"place-self":[`auto`,`start`,`end`,`center`,`stretch`]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[w]}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":[w]}],"space-y-reverse":[`space-y-reverse`],w:[{w:[`auto`,`min`,`max`,`fit`,`svw`,`lvw`,`dvw`,L,t]}],"min-w":[{"min-w":[L,t,`min`,`max`,`fit`]}],"max-w":[{"max-w":[L,t,`none`,`full`,`min`,`max`,`fit`,`prose`,{screen:[R]},R]}],h:[{h:[L,t,`auto`,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"min-h":[{"min-h":[L,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"max-h":[{"max-h":[L,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],size:[{size:[L,t,`auto`,`min`,`max`,`fit`]}],"font-size":[{text:[`base`,R,M]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`,P]}],"font-family":[{font:[G]}],"fvn-normal":[`normal-nums`],"fvn-ordinal":[`ordinal`],"fvn-slashed-zero":[`slashed-zero`],"fvn-figure":[`lining-nums`,`oldstyle-nums`],"fvn-spacing":[`proportional-nums`,`tabular-nums`],"fvn-fraction":[`diagonal-fractions`,`stacked-fractions`],tracking:[{tracking:[`tighter`,`tight`,`normal`,`wide`,`wider`,`widest`,L]}],"line-clamp":[{"line-clamp":[`none`,N,P]}],leading:[{leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`,j,L]}],"list-image":[{"list-image":[`none`,L]}],"list-style-type":[{list:[`none`,`disc`,`decimal`,L]}],"list-style-position":[{list:[`inside`,`outside`]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[_]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[_]}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...K(),`wavy`]}],"text-decoration-thickness":[{decoration:[`auto`,`from-font`,j,M]}],"underline-offset":[{"underline-offset":[`auto`,j,L]}],"text-decoration-color":[{decoration:[e]}],"text-transform":[`uppercase`,`lowercase`,`capitalize`,`normal-case`],"text-overflow":[`truncate`,`text-ellipsis`,`text-clip`],"text-wrap":[{text:[`wrap`,`nowrap`,`balance`,`pretty`]}],indent:[{indent:k()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,L]}],whitespace:[{whitespace:[`normal`,`nowrap`,`pre`,`pre-line`,`pre-wrap`,`break-spaces`]}],break:[{break:[`normal`,`words`,`all`,`keep`]}],hyphens:[{hyphens:[`none`,`manual`,`auto`]}],content:[{content:[`none`,L]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-opacity":[{"bg-opacity":[_]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:[...H(),V]}],"bg-repeat":[{bg:[`no-repeat`,{repeat:[``,`x`,`y`,`round`,`space`]}]}],"bg-size":[{bg:[`auto`,`cover`,`contain`,B]}],"bg-image":[{bg:[`none`,{"gradient-to":[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},U]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[_]}],"border-style":[{border:[...K(),`hidden`]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":[`divide-y-reverse`],"divide-opacity":[{"divide-opacity":[_]}],"divide-style":[{divide:K()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:[``,...K()]}],"outline-offset":[{"outline-offset":[j,L]}],"outline-w":[{outline:[j,M]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:A()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[_]}],"ring-offset-w":[{"ring-offset":[j,M]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:[``,`inner`,`none`,R,W]}],"shadow-color":[{shadow:[G]}],opacity:[{opacity:[_]}],"mix-blend":[{"mix-blend":[...q(),`plus-lighter`,`plus-darker`]}],"bg-blend":[{"bg-blend":q()}],filter:[{filter:[``,`none`]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":[``,`none`,R,L]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[y]}],sepia:[{sepia:[x]}],"backdrop-filter":[{"backdrop-filter":[``,`none`]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[_]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[x]}],"border-collapse":[{border:[`collapse`,`separate`]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:[`auto`,`fixed`]}],caption:[{caption:[`top`,`bottom`]}],transition:[{transition:[`none`,`all`,``,`colors`,`opacity`,`shadow`,`transform`,L]}],duration:[{duration:Z()}],ease:[{ease:[`linear`,`in`,`out`,`in-out`,L]}],delay:[{delay:Z()}],animate:[{animate:[`none`,`spin`,`ping`,`pulse`,`bounce`,L]}],transform:[{transform:[``,`gpu`,`none`]}],scale:[{scale:[b]}],"scale-x":[{"scale-x":[b]}],"scale-y":[{"scale-y":[b]}],rotate:[{rotate:[F,L]}],"translate-x":[{"translate-x":[T]}],"translate-y":[{"translate-y":[T]}],"skew-x":[{"skew-x":[C]}],"skew-y":[{"skew-y":[C]}],"transform-origin":[{origin:[`center`,`top`,`top-right`,`right`,`bottom-right`,`bottom`,`bottom-left`,`left`,`top-left`,L]}],accent:[{accent:[`auto`,e]}],appearance:[{appearance:[`none`,`auto`]}],cursor:[{cursor:[`auto`,`default`,`pointer`,`wait`,`text`,`move`,`help`,`not-allowed`,`none`,`context-menu`,`progress`,`cell`,`crosshair`,`vertical-text`,`alias`,`copy`,`no-drop`,`grab`,`grabbing`,`all-scroll`,`col-resize`,`row-resize`,`n-resize`,`e-resize`,`s-resize`,`w-resize`,`ne-resize`,`nw-resize`,`se-resize`,`sw-resize`,`ew-resize`,`ns-resize`,`nesw-resize`,`nwse-resize`,`zoom-in`,`zoom-out`,L]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":[`none`,`auto`]}],resize:[{resize:[`none`,`y`,`x`,``]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":k()}],"scroll-mx":[{"scroll-mx":k()}],"scroll-my":[{"scroll-my":k()}],"scroll-ms":[{"scroll-ms":k()}],"scroll-me":[{"scroll-me":k()}],"scroll-mt":[{"scroll-mt":k()}],"scroll-mr":[{"scroll-mr":k()}],"scroll-mb":[{"scroll-mb":k()}],"scroll-ml":[{"scroll-ml":k()}],"scroll-p":[{"scroll-p":k()}],"scroll-px":[{"scroll-px":k()}],"scroll-py":[{"scroll-py":k()}],"scroll-ps":[{"scroll-ps":k()}],"scroll-pe":[{"scroll-pe":k()}],"scroll-pt":[{"scroll-pt":k()}],"scroll-pr":[{"scroll-pr":k()}],"scroll-pb":[{"scroll-pb":k()}],"scroll-pl":[{"scroll-pl":k()}],"snap-align":[{snap:[`start`,`end`,`center`,`align-none`]}],"snap-stop":[{snap:[`normal`,`always`]}],"snap-type":[{snap:[`none`,`x`,`y`,`both`]}],"snap-strictness":[{snap:[`mandatory`,`proximity`]}],touch:[{touch:[`auto`,`none`,`manipulation`]}],"touch-x":[{"touch-pan":[`x`,`left`,`right`]}],"touch-y":[{"touch-pan":[`y`,`up`,`down`]}],"touch-pz":[`touch-pinch-zoom`],select:[{select:[`none`,`text`,`all`,`auto`]}],"will-change":[{"will-change":[`auto`,`scroll`,`contents`,`transform`,L]}],fill:[{fill:[e,`none`]}],"stroke-w":[{stroke:[j,M,P]}],stroke:[{stroke:[e,`none`]}],sr:[`sr-only`,`not-sr-only`],"forced-color-adjust":[{"forced-color-adjust":[`auto`,`none`]}]},conflictingClassGroups:{overflow:[`overflow-x`,`overflow-y`],overscroll:[`overscroll-x`,`overscroll-y`],inset:[`inset-x`,`inset-y`,`start`,`end`,`top`,`right`,`bottom`,`left`],"inset-x":[`right`,`left`],"inset-y":[`top`,`bottom`],flex:[`basis`,`grow`,`shrink`],gap:[`gap-x`,`gap-y`],p:[`px`,`py`,`ps`,`pe`,`pt`,`pr`,`pb`,`pl`],px:[`pr`,`pl`],py:[`pt`,`pb`],m:[`mx`,`my`,`ms`,`me`,`mt`,`mr`,`mb`,`ml`],mx:[`mr`,`ml`],my:[`mt`,`mb`],size:[`w`,`h`],"font-size":[`leading`],"fvn-normal":[`fvn-ordinal`,`fvn-slashed-zero`,`fvn-figure`,`fvn-spacing`,`fvn-fraction`],"fvn-ordinal":[`fvn-normal`],"fvn-slashed-zero":[`fvn-normal`],"fvn-figure":[`fvn-normal`],"fvn-spacing":[`fvn-normal`],"fvn-fraction":[`fvn-normal`],"line-clamp":[`display`,`overflow`],rounded:[`rounded-s`,`rounded-e`,`rounded-t`,`rounded-r`,`rounded-b`,`rounded-l`,`rounded-ss`,`rounded-se`,`rounded-ee`,`rounded-es`,`rounded-tl`,`rounded-tr`,`rounded-br`,`rounded-bl`],"rounded-s":[`rounded-ss`,`rounded-es`],"rounded-e":[`rounded-se`,`rounded-ee`],"rounded-t":[`rounded-tl`,`rounded-tr`],"rounded-r":[`rounded-tr`,`rounded-br`],"rounded-b":[`rounded-br`,`rounded-bl`],"rounded-l":[`rounded-tl`,`rounded-bl`],"border-spacing":[`border-spacing-x`,`border-spacing-y`],"border-w":[`border-w-s`,`border-w-e`,`border-w-t`,`border-w-r`,`border-w-b`,`border-w-l`],"border-w-x":[`border-w-r`,`border-w-l`],"border-w-y":[`border-w-t`,`border-w-b`],"border-color":[`border-color-s`,`border-color-e`,`border-color-t`,`border-color-r`,`border-color-b`,`border-color-l`],"border-color-x":[`border-color-r`,`border-color-l`],"border-color-y":[`border-color-t`,`border-color-b`],"scroll-m":[`scroll-mx`,`scroll-my`,`scroll-ms`,`scroll-me`,`scroll-mt`,`scroll-mr`,`scroll-mb`,`scroll-ml`],"scroll-mx":[`scroll-mr`,`scroll-ml`],"scroll-my":[`scroll-mt`,`scroll-mb`],"scroll-p":[`scroll-px`,`scroll-py`,`scroll-ps`,`scroll-pe`,`scroll-pt`,`scroll-pr`,`scroll-pb`,`scroll-pl`],"scroll-px":[`scroll-pr`,`scroll-pl`],"scroll-py":[`scroll-pt`,`scroll-pb`],touch:[`touch-x`,`touch-y`,`touch-pz`],"touch-x":[`touch`],"touch-y":[`touch`],"touch-pz":[`touch`]},conflictingClassGroupModifiers:{"font-size":[`leading`]}}});function Q(...e){return Z(t(e))}function $(e){if(!e)return`从未打开`;let t=new Date(e),n=Date.now()-t.getTime();return n<6e4?`刚刚`:n<36e5?`${Math.floor(n/6e4)} 分钟前`:n<864e5?`${Math.floor(n/36e5)} 小时前`:t.toLocaleDateString(`zh-CN`)}export{$ as n,t as r,Q as t};
2
+ //# sourceMappingURL=utils-kfQov6Pa.js.map
@@ -0,0 +1,2 @@
1
+ import{C as e,a as t,c as n,d as r,l as i,n as a,r as o,s,t as c,u as l,y as u}from"./ipc-channels-overlays-LsDzGAtV.js";function d(e,t){return n(u.AttachNative,e,t)}function f(e){return n(u.SoftReload,e)}function p(e){return n(u.SetDeviceInfo,e)}function m(e){return n(a.Show,e)}function h(){return n(a.Hide)}function g(){r(t.Prepare)}function _(e){r(t.Show,e)}function v(){r(t.Hide)}function y(){r(c.Ready)}function b(e){return l(t.Init,t=>e(t))}function x(e){r(t.Measured,e)}function S(e){r(o.Show,e)}function C(){r(o.Cancel)}function w(e){r(o.Submit,e)}function T(e){return l(o.Init,t=>e(t))}function E(e){return l(o.Submitted,t=>e(t))}function D(e){return l(a.Closed,()=>e())}function O(e){return l(a.Init,t=>e(t))}function k(e){return l(a.Relaunch,t=>e(t))}function A(t){return l(e.NavigateBack,()=>t())}function j(t){return l(e.OpenProject,e=>t(e))}function M(t){n(e.ScreenState,t)}function N(e){return l(u.CurrentPage,t=>e(t))}function P(e){return n(s.PlacementSnapshot,e)}function F(e){return l(s.HostToolbarHeightChanged,t=>e(t))}function I(){return n(s.HostToolbarGetHeight)}function L(e){return l(s.HostSidebarWidthChanged,t=>e(t))}function R(){return n(s.HostSidebarGetWidth)}function z(e){return l(s.HostSidebarCategorySelected,t=>e(t))}function B(){return i(s.AllocatePlacementGeneration)}export{w as A,P as C,S as D,m as E,_ as O,g as S,p as T,E as _,I as a,A as b,y as c,L as d,F as f,T as g,k as h,R as i,f as k,M as l,O as m,d as n,h as o,D as p,C as r,v as s,B as t,z as u,N as v,x as w,j as x,b as y};
2
+ //# sourceMappingURL=view-api-CLn3rcQE.js.map
@@ -1,8 +1,8 @@
1
- import{D as e,O as t,T as n,w as r}from"./ipc-transport-BOg0gR9W.js";import{t as i}from"./input-Dmm6nob5.js";import{r as a,t as o}from"./constants-Bdz0LHdy.js";import{a as s,c,d as l,i as u,l as d,r as f,s as p}from"./settings-api-Bo9GbYqs.js";import{n as m,t as h}from"./settings-tab-bar-Beia6lMr.js";var g=t(e(),1),_=t(n(),1),v=r(),y=`dimina`;function b(e){let t=`http://127.0.0.1:${e}/sse`;return{url:t,claudeCode:`claude mcp add --transport sse ${y} ${t}`,codex:`codex mcp add ${y} --url ${t}`,mcpJson:`{
1
+ import{a as e,i as t,n,t as r}from"./jsx-runtime-DGLHmmOq.js";import{a as i,c as a,d as o,i as s,l as c,r as l,s as u}from"./settings-api-CrUQ9rYV.js";import{t as d}from"./button-D5Q2wkXq.js";import{t as f}from"./input-Ct3alvkq.js";import{t as p}from"./constants-D7DfVqMp.js";import{n as m,t as h}from"./settings-tab-bar-Cw1kVIf2.js";var g=e(t(),1),_=e(n(),1),v=r(),y=`dimina`;function b(e){let t=`http://127.0.0.1:${e}/sse`;return{url:t,claudeCode:`claude mcp add --transport sse ${y} ${t}`,codex:`codex mcp add ${y} --url ${t}`,mcpJson:`{
2
2
  "mcpServers": {
3
3
  "${y}": {
4
4
  "url": "${t}"
5
5
  }
6
6
  }
7
- }`}}function x(e,t){return e?t.enabled===e.running?t.enabled&&e.running&&t.port!==e.activePort:!0:!1}var S={dim:`bg-text-dim`,success:`bg-status-success`,error:`bg-status-error`};function C({tone:e,children:t}){return(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full ${S[e]}`}),(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:t})]})}function w({mcpEnabled:e,mcpStatus:t}){return(0,v.jsxs)(`div`,{className:`rounded p-3 space-y-2 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium text-text-secondary`,children:`当前状态`}),e?t?.running?(0,v.jsxs)(C,{tone:`success`,children:[`MCP 已运行 - 端口 `,t.activePort]}):(0,v.jsxs)(C,{tone:`error`,children:[`MCP 未运行`,t?.error===`port-in-use`?`(端口 ${t.configuredPort} 已被占用)`:t?.error?`(${t.error})`:``]}):(0,v.jsx)(C,{tone:`dim`,children:`MCP 未启用`})]})}function T({mcpEnabled:e,onToggleMcp:t,mcpPortInput:n,onMcpPortInputChange:r,mcpStatus:o,mcpPort:s,needsRestart:c,onSave:l,onRestart:u,saved:d}){let f=b(s);return(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`MCP 配置`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`AI 助手可以通过 MCP 连接当前开发工具,读取 console、截图、执行 JS、查看 DOM / Storage / 网络请求。启用后开发工具启动时会自动监听 SSE 端点,并自动启用 CDP。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`启用 MCP 服务`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`label`,{className:`text-[12px] shrink-0 w-16 text-text-secondary`,children:`SSE 端口`}),(0,v.jsx)(i,{type:`number`,min:1024,max:65535,value:n,onChange:e=>r(e.target.value),disabled:!e,className:`w-24 h-7 px-2 text-[12px]`}),(0,v.jsx)(`span`,{className:`text-[11px] text-text-dim`,children:`默认 7789`})]}),(0,v.jsx)(w,{mcpEnabled:e,mcpStatus:o}),c&&(0,v.jsxs)(`div`,{className:`rounded px-3 py-2 text-[12px] border bg-warn-bg text-[var(--color-status-warn)] flex items-center justify-between gap-3`,children:[(0,v.jsx)(`span`,{children:`配置已变更,需要重启应用后生效`}),(0,v.jsx)(a,{size:`xs`,onClick:u,className:`shrink-0`,children:`保存并重启`})]}),(0,v.jsxs)(`div`,{className:`rounded p-3 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium mb-2 text-text-secondary`,children:`本地客户端注册`}),(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`div`,{className:`text-[11px] mb-1 text-text-dim`,children:`Claude Code`}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:f.claudeCode})]}),(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`div`,{className:`text-[11px] mb-1 text-text-dim`,children:`Codex`}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:f.codex})]})]})]}),(0,v.jsxs)(`div`,{className:`rounded p-3 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium mb-2 text-text-secondary`,children:"`.mcp.json` 示例(SSE 传输)"}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:f.mcpJson})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(a,{size:`sm`,onClick:l,children:`保存`}),d&&(0,v.jsx)(`span`,{className:`text-[11px] text-status-success`,children:`已保存`})]})]})}var E=[{id:`general`,label:`通用`},{id:`debug`,label:`调试`},{id:`mcp`,label:`MCP`}],D={system:`跟随系统`,dark:`深色`,light:`浅色`};function O({theme:e,onSelect:t}){return(0,v.jsx)(`div`,{className:`flex gap-1`,children:[`system`,`dark`,`light`].map(n=>(0,v.jsx)(a,{variant:e===n?`secondary`:`ghost`,size:`xs`,onClick:()=>t(n),children:D[n]},n))})}function k({autoBuildEnabled:e,onAutoBuildChange:t,autoReloadEnabled:n,onAutoReloadChange:r,theme:i,onThemeChange:a,saved:o}){return(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`编译与预览`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`开启「自动编译」后,打开项目时会监听源文件改动并自动重新编译。开启「自动刷新」后,每次编译完成会刷新模拟器(仅改样式时原地热替换,保留当前页面栈与表单状态);关闭它则任何改动都不刷新,仅手动刷新。配置在下次打开项目时生效。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`监听文件变化自动编译`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`编译完成后自动刷新模拟器`}),(0,v.jsx)(m,{checked:n,onCheckedChange:r})]})]}),(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-3 bg-bg`,children:[(0,v.jsx)(`div`,{children:(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`外观`})}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`颜色模式`}),(0,v.jsx)(O,{theme:i,onSelect:a})]})]}),o&&(0,v.jsx)(`div`,{className:`text-[11px] text-status-success`,children:`已保存`})]})}function A({cdpStatus:e}){return(0,v.jsxs)(`div`,{className:`rounded p-3 space-y-2 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium text-text-secondary`,children:`当前状态`}),(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full ${e?.active?`bg-status-success`:`bg-text-dim`}`}),(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:e?.active?`CDP 已激活 - 端口 ${e.activePort}`:`CDP 未激活`})]}),e?.implicitDevDefault&&(0,v.jsx)(`div`,{className:`text-[11px] text-text-dim`,children:`当前为开发模式默认端口`}),e?.active&&(0,v.jsxs)(`div`,{className:`text-[11px] text-text-dim font-mono`,children:[`调试地址: http://localhost:`,e.activePort]})]})}function j(e,t){return!e||e.implicitDevDefault?!1:t.enabled===e.active?t.enabled&&e.active&&t.port!==e.activePort:!0}function M({cdpEnabled:e,onToggleCdp:t,portInput:n,onPortInputChange:r,cdpStatus:s,needsRestart:c,onSave:l,saved:u}){return(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`DevTools Protocol`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`开启后可通过 DevTools Protocol 连接调试模拟器。配置变更需要重启应用后生效。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`启用 DevTools Protocol`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`label`,{className:`text-[12px] shrink-0 w-16 text-text-secondary`,children:`调试端口`}),(0,v.jsx)(i,{type:`number`,min:1024,max:65535,value:n,onChange:e=>r(e.target.value),disabled:!e,className:`w-24 h-7 px-2 text-[12px]`}),(0,v.jsxs)(`span`,{className:`text-[11px] text-text-dim`,children:[`默认 `,o]})]}),(0,v.jsx)(A,{cdpStatus:s}),c&&(0,v.jsx)(`div`,{className:`rounded px-3 py-2 text-[12px] border bg-warn-bg text-[var(--color-status-warn)]`,children:`配置已变更,需要重启应用后生效`}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(a,{size:`sm`,onClick:l,children:`保存`}),u&&(0,v.jsx)(`span`,{className:`text-[11px] text-status-success`,children:`已保存`})]})]})}function N(){let[e,t]=(0,g.useState)({cdp:{enabled:!1,port:o},mcp:{enabled:!1,port:7789},compile:{autoBuild:!0},preview:{autoReload:!0},theme:`system`,lastCreateBaseDir:null}),[n,r]=(0,g.useState)(null),[i,a]=(0,g.useState)(null),[m,_]=(0,g.useState)(`general`),[y,b]=(0,g.useState)(!1),[S,C]=(0,g.useState)(String(o)),[w,D]=(0,g.useState)(`7789`);(0,g.useEffect)(()=>{let e=p(e=>{t(e.settings),C(String(e.settings.cdp.port)),D(String(e.settings.mcp.port))});return s().then(e=>{t(e),C(String(e.cdp.port)),D(String(e.mcp.port))}),f().then(r),u().then(a),e},[]);function O(){b(!0),window.setTimeout(()=>b(!1),2e3)}function A(){t(e=>({...e,cdp:{...e.cdp,enabled:!e.cdp.enabled}}))}function N(){t(e=>({...e,mcp:{...e.mcp,enabled:!e.mcp.enabled}}))}function P(n){let r={...e,theme:n};t(r),l(n),d(r)}function F(e){t(e),d(e).then(O)}function I(){let t=parseInt(S,10);if(Number.isNaN(t)||t<1024||t>65535)return null;let n=parseInt(w,10);return Number.isNaN(n)||n<1024||n>65535?null:{...e,cdp:{...e.cdp,port:t},mcp:{...e.mcp,port:n}}}async function L(){let e=I();e&&(t(e),await d(e),r(await f()),a(await u()),O())}async function R(){let e=I();e&&(t(e),await d(e),await c())}let z=I()??e,B=j(n,z.cdp),V=x(i,z.mcp);return(0,v.jsxs)(`div`,{className:`flex flex-col h-screen bg-surface text-text`,children:[(0,v.jsx)(h,{tabs:E,activeTab:m,onTabChange:_}),(0,v.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:[m===`general`&&(0,v.jsx)(k,{autoBuildEnabled:e.compile.autoBuild,onAutoBuildChange:t=>F({...e,compile:{...e.compile,autoBuild:t}}),autoReloadEnabled:e.preview.autoReload,onAutoReloadChange:t=>F({...e,preview:{...e.preview,autoReload:t}}),theme:e.theme,onThemeChange:P,saved:y}),m===`debug`&&(0,v.jsx)(M,{cdpEnabled:e.cdp.enabled,onToggleCdp:A,portInput:S,onPortInputChange:C,cdpStatus:n,needsRestart:B,onSave:L,saved:y}),m===`mcp`&&(0,v.jsx)(T,{mcpEnabled:e.mcp.enabled,onToggleMcp:N,mcpPortInput:w,onMcpPortInputChange:D,mcpStatus:i,mcpPort:z.mcp.port,needsRestart:V,onSave:L,onRestart:R,saved:y})]})]})}_.createRoot(document.getElementById(`root`)).render((0,v.jsx)(N,{}));
8
- //# sourceMappingURL=workbenchSettings-oq_EyfKf.js.map
7
+ }`}}function x(e,t){return e?t.enabled===e.running?t.enabled&&e.running&&t.port!==e.activePort:!0:!1}var S={dim:`bg-text-dim`,success:`bg-status-success`,error:`bg-status-error`};function C({tone:e,children:t}){return(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full ${S[e]}`}),(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:t})]})}function w({mcpEnabled:e,mcpStatus:t}){return(0,v.jsxs)(`div`,{className:`rounded p-3 space-y-2 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium text-text-secondary`,children:`当前状态`}),e?t?.running?(0,v.jsxs)(C,{tone:`success`,children:[`MCP 已运行 - 端口 `,t.activePort]}):(0,v.jsxs)(C,{tone:`error`,children:[`MCP 未运行`,t?.error===`port-in-use`?`(端口 ${t.configuredPort} 已被占用)`:t?.error?`(${t.error})`:``]}):(0,v.jsx)(C,{tone:`dim`,children:`MCP 未启用`})]})}function T({mcpEnabled:e,onToggleMcp:t,mcpPortInput:n,onMcpPortInputChange:r,mcpStatus:i,mcpPort:a,needsRestart:o,onSave:s,onRestart:c,saved:l}){let u=b(a);return(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`MCP 配置`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`AI 助手可以通过 MCP 连接当前开发工具,读取 console、截图、执行 JS、查看 DOM / Storage / 网络请求。启用后开发工具启动时会自动监听 SSE 端点,并自动启用 CDP。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`启用 MCP 服务`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`label`,{className:`text-[12px] shrink-0 w-16 text-text-secondary`,children:`SSE 端口`}),(0,v.jsx)(f,{type:`number`,min:1024,max:65535,value:n,onChange:e=>r(e.target.value),disabled:!e,className:`w-24 h-7 px-2 text-[12px]`}),(0,v.jsx)(`span`,{className:`text-[11px] text-text-dim`,children:`默认 7789`})]}),(0,v.jsx)(w,{mcpEnabled:e,mcpStatus:i}),o&&(0,v.jsxs)(`div`,{className:`rounded px-3 py-2 text-[12px] border bg-warn-bg text-[var(--color-status-warn)] flex items-center justify-between gap-3`,children:[(0,v.jsx)(`span`,{children:`配置已变更,需要重启应用后生效`}),(0,v.jsx)(d,{size:`xs`,onClick:c,className:`shrink-0`,children:`保存并重启`})]}),(0,v.jsxs)(`div`,{className:`rounded p-3 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium mb-2 text-text-secondary`,children:`本地客户端注册`}),(0,v.jsxs)(`div`,{className:`space-y-3`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`div`,{className:`text-[11px] mb-1 text-text-dim`,children:`Claude Code`}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:u.claudeCode})]}),(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`div`,{className:`text-[11px] mb-1 text-text-dim`,children:`Codex`}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:u.codex})]})]})]}),(0,v.jsxs)(`div`,{className:`rounded p-3 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium mb-2 text-text-secondary`,children:"`.mcp.json` 示例(SSE 传输)"}),(0,v.jsx)(`pre`,{className:`text-[11px] whitespace-pre-wrap leading-relaxed text-[var(--color-code-blue)] font-mono`,children:u.mcpJson})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(d,{size:`sm`,onClick:s,children:`保存`}),l&&(0,v.jsx)(`span`,{className:`text-[11px] text-status-success`,children:`已保存`})]})]})}var E=[{id:`general`,label:`通用`},{id:`debug`,label:`调试`},{id:`mcp`,label:`MCP`}],D={system:`跟随系统`,dark:`深色`,light:`浅色`};function O({theme:e,onSelect:t}){return(0,v.jsx)(`div`,{className:`flex gap-1`,children:[`system`,`dark`,`light`].map(n=>(0,v.jsx)(d,{variant:e===n?`secondary`:`ghost`,size:`xs`,onClick:()=>t(n),children:D[n]},n))})}function k({autoBuildEnabled:e,onAutoBuildChange:t,autoReloadEnabled:n,onAutoReloadChange:r,theme:i,onThemeChange:a,saved:o}){return(0,v.jsxs)(`div`,{className:`space-y-4`,children:[(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`编译与预览`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`开启「自动编译」后,打开项目时会监听源文件改动并自动重新编译。开启「自动刷新」后,每次编译完成会刷新模拟器(仅改样式时原地热替换,保留当前页面栈与表单状态);关闭它则任何改动都不刷新,仅手动刷新。配置在下次打开项目时生效。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`监听文件变化自动编译`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`编译完成后自动刷新模拟器`}),(0,v.jsx)(m,{checked:n,onCheckedChange:r})]})]}),(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-3 bg-bg`,children:[(0,v.jsx)(`div`,{children:(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`外观`})}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`颜色模式`}),(0,v.jsx)(O,{theme:i,onSelect:a})]})]}),o&&(0,v.jsx)(`div`,{className:`text-[11px] text-status-success`,children:`已保存`})]})}function A({cdpStatus:e}){return(0,v.jsxs)(`div`,{className:`rounded p-3 space-y-2 border border-border bg-surface`,children:[(0,v.jsx)(`div`,{className:`text-[11px] font-medium text-text-secondary`,children:`当前状态`}),(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`span`,{className:`inline-block w-2 h-2 rounded-full ${e?.active?`bg-status-success`:`bg-text-dim`}`}),(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:e?.active?`CDP 已激活 - 端口 ${e.activePort}`:`CDP 未激活`})]}),e?.implicitDevDefault&&(0,v.jsx)(`div`,{className:`text-[11px] text-text-dim`,children:`当前为开发模式默认端口`}),e?.active&&(0,v.jsxs)(`div`,{className:`text-[11px] text-text-dim font-mono`,children:[`调试地址: http://localhost:`,e.activePort]})]})}function j(e,t){return!e||e.implicitDevDefault?!1:t.enabled===e.active?t.enabled&&e.active&&t.port!==e.activePort:!0}function M({cdpEnabled:e,onToggleCdp:t,portInput:n,onPortInputChange:r,cdpStatus:i,needsRestart:a,onSave:o,saved:s}){return(0,v.jsxs)(`section`,{className:`rounded-lg border border-border p-4 space-y-4 bg-bg`,children:[(0,v.jsxs)(`div`,{children:[(0,v.jsx)(`h2`,{className:`text-[13px] font-medium mb-1`,children:`DevTools Protocol`}),(0,v.jsx)(`p`,{className:`text-[11px] leading-relaxed text-text-secondary`,children:`开启后可通过 DevTools Protocol 连接调试模拟器。配置变更需要重启应用后生效。`})]}),(0,v.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,v.jsx)(`span`,{className:`text-[12px] text-text-secondary`,children:`启用 DevTools Protocol`}),(0,v.jsx)(m,{checked:e,onCheckedChange:t})]}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(`label`,{className:`text-[12px] shrink-0 w-16 text-text-secondary`,children:`调试端口`}),(0,v.jsx)(f,{type:`number`,min:1024,max:65535,value:n,onChange:e=>r(e.target.value),disabled:!e,className:`w-24 h-7 px-2 text-[12px]`}),(0,v.jsxs)(`span`,{className:`text-[11px] text-text-dim`,children:[`默认 `,p]})]}),(0,v.jsx)(A,{cdpStatus:i}),a&&(0,v.jsx)(`div`,{className:`rounded px-3 py-2 text-[12px] border bg-warn-bg text-[var(--color-status-warn)]`,children:`配置已变更,需要重启应用后生效`}),(0,v.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,v.jsx)(d,{size:`sm`,onClick:o,children:`保存`}),s&&(0,v.jsx)(`span`,{className:`text-[11px] text-status-success`,children:`已保存`})]})]})}function N(){let[e,t]=(0,g.useState)({cdp:{enabled:!1,port:p},mcp:{enabled:!1,port:7789},compile:{autoBuild:!0},preview:{autoReload:!0},theme:`system`,lastCreateBaseDir:null}),[n,r]=(0,g.useState)(null),[d,f]=(0,g.useState)(null),[m,_]=(0,g.useState)(`general`),[y,b]=(0,g.useState)(!1),[S,C]=(0,g.useState)(String(p)),[w,D]=(0,g.useState)(`7789`);(0,g.useEffect)(()=>{let e=u(e=>{t(e.settings),C(String(e.settings.cdp.port)),D(String(e.settings.mcp.port))});return i().then(e=>{t(e),C(String(e.cdp.port)),D(String(e.mcp.port))}),l().then(r),s().then(f),e},[]);function O(){b(!0),window.setTimeout(()=>b(!1),2e3)}function A(){t(e=>({...e,cdp:{...e.cdp,enabled:!e.cdp.enabled}}))}function N(){t(e=>({...e,mcp:{...e.mcp,enabled:!e.mcp.enabled}}))}function P(n){let r={...e,theme:n};t(r),o(n),c(r)}function F(e){t(e),c(e).then(O)}function I(){let t=parseInt(S,10);if(Number.isNaN(t)||t<1024||t>65535)return null;let n=parseInt(w,10);return Number.isNaN(n)||n<1024||n>65535?null:{...e,cdp:{...e.cdp,port:t},mcp:{...e.mcp,port:n}}}async function L(){let e=I();e&&(t(e),await c(e),r(await l()),f(await s()),O())}async function R(){let e=I();e&&(t(e),await c(e),await a())}let z=I()??e,B=j(n,z.cdp),V=x(d,z.mcp);return(0,v.jsxs)(`div`,{className:`flex flex-col h-screen bg-surface text-text`,children:[(0,v.jsx)(h,{tabs:E,activeTab:m,onTabChange:_}),(0,v.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4`,children:[m===`general`&&(0,v.jsx)(k,{autoBuildEnabled:e.compile.autoBuild,onAutoBuildChange:t=>F({...e,compile:{...e.compile,autoBuild:t}}),autoReloadEnabled:e.preview.autoReload,onAutoReloadChange:t=>F({...e,preview:{...e.preview,autoReload:t}}),theme:e.theme,onThemeChange:P,saved:y}),m===`debug`&&(0,v.jsx)(M,{cdpEnabled:e.cdp.enabled,onToggleCdp:A,portInput:S,onPortInputChange:C,cdpStatus:n,needsRestart:B,onSave:L,saved:y}),m===`mcp`&&(0,v.jsx)(T,{mcpEnabled:e.mcp.enabled,onToggleMcp:N,mcpPortInput:w,onMcpPortInputChange:D,mcpStatus:d,mcpPort:z.mcp.port,needsRestart:V,onSave:L,onRestart:R,saved:y})]})]})}_.createRoot(document.getElementById(`root`)).render((0,v.jsx)(N,{}));
8
+ //# sourceMappingURL=workbenchSettings-CV4LVA9b.js.map
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <!-- See main/index.html for CSP rationale. -->
6
+ <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
7
+ <title>Host Sidebar</title>
8
+ <style>
9
+ html, body { margin: 0; padding: 0; height: 100%; overflow: hidden; }
10
+ #root { height: 100%; }
11
+ </style>
12
+ <script type="module" crossorigin src="../../assets/hostSidebarDefault-B3yLfy8j.js"></script>
13
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/types-CsEKtFyr.js">
16
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
17
+ </head>
18
+ <body>
19
+ <div id="root"></div>
20
+ </body>
21
+ </html>
@@ -26,14 +26,23 @@
26
26
  overflow: hidden;
27
27
  }
28
28
  </style>
29
- <script type="module" crossorigin src="../../assets/index-CtznrmHR.js"></script>
30
- <link rel="modulepreload" crossorigin href="../../assets/ipc-transport-BOg0gR9W.js">
31
- <link rel="modulepreload" crossorigin href="../../assets/settings-api-Bo9GbYqs.js">
32
- <link rel="modulepreload" crossorigin href="../../assets/input-Dmm6nob5.js">
33
- <link rel="modulepreload" crossorigin href="../../assets/constants-Bdz0LHdy.js">
34
- <link rel="modulepreload" crossorigin href="../../assets/view-api-nn69je7A.js">
35
- <link rel="modulepreload" crossorigin href="../../assets/select-BaYox7If.js">
36
- <link rel="stylesheet" crossorigin href="../../assets/ipc-transport-DgQhZaE9.css">
29
+ <script type="module" crossorigin src="../../assets/index-CsPD68N_.js"></script>
30
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
31
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
32
+ <link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
33
+ <link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
34
+ <link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
35
+ <link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
36
+ <link rel="modulepreload" crossorigin href="../../assets/types-CsEKtFyr.js">
37
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
38
+ <link rel="modulepreload" crossorigin href="../../assets/project-api-k7Oq9iaq.js">
39
+ <link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
40
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
41
+ <link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
42
+ <link rel="modulepreload" crossorigin href="../../assets/select-acGb0AmJ.js">
43
+ <link rel="modulepreload" crossorigin href="../../assets/constants-D8zsejFq.js">
44
+ <link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
45
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
37
46
  </head>
38
47
  <body>
39
48
  <div id="root"></div>
@@ -8,13 +8,16 @@
8
8
  <style>
9
9
  html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
10
10
  </style>
11
- <script type="module" crossorigin src="../../assets/popover-Cd1FEGOX.js"></script>
12
- <link rel="modulepreload" crossorigin href="../../assets/ipc-transport-BOg0gR9W.js">
13
- <link rel="modulepreload" crossorigin href="../../assets/input-Dmm6nob5.js">
14
- <link rel="modulepreload" crossorigin href="../../assets/constants-Bdz0LHdy.js">
15
- <link rel="modulepreload" crossorigin href="../../assets/view-api-nn69je7A.js">
16
- <link rel="modulepreload" crossorigin href="../../assets/select-BaYox7If.js">
17
- <link rel="stylesheet" crossorigin href="../../assets/ipc-transport-DgQhZaE9.css">
11
+ <script type="module" crossorigin src="../../assets/popover-Dix5cm_b.js"></script>
12
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
13
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
16
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
17
+ <link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
18
+ <link rel="modulepreload" crossorigin href="../../assets/select-acGb0AmJ.js">
19
+ <link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
20
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
18
21
  </head>
19
22
  <body>
20
23
  <div id="root"></div>
@@ -0,0 +1,27 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <!-- See main/index.html for CSP rationale. -->
6
+ <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
7
+ <title>Create Project</title>
8
+ <style>
9
+ html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
10
+ </style>
11
+ <script type="module" crossorigin src="../../assets/projectCreateDialog-Bbjz75bP.js"></script>
12
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
13
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
16
+ <link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
17
+ <link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
18
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
19
+ <link rel="modulepreload" crossorigin href="../../assets/project-api-k7Oq9iaq.js">
20
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
21
+ <link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
22
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
23
+ </head>
24
+ <body>
25
+ <div id="root"></div>
26
+ </body>
27
+ </html>
@@ -11,13 +11,16 @@
11
11
  closes the overlay — mirrors the popover entry. */
12
12
  html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
13
13
  </style>
14
- <script type="module" crossorigin src="../../assets/settings-BXvwuFaz.js"></script>
15
- <link rel="modulepreload" crossorigin href="../../assets/ipc-transport-BOg0gR9W.js">
16
- <link rel="modulepreload" crossorigin href="../../assets/settings-api-Bo9GbYqs.js">
17
- <link rel="modulepreload" crossorigin href="../../assets/input-Dmm6nob5.js">
18
- <link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Beia6lMr.js">
19
- <link rel="modulepreload" crossorigin href="../../assets/view-api-nn69je7A.js">
20
- <link rel="stylesheet" crossorigin href="../../assets/ipc-transport-DgQhZaE9.css">
14
+ <script type="module" crossorigin src="../../assets/settings-CQrTMr43.js"></script>
15
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
16
+ <link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
17
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
18
+ <link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Cw1kVIf2.js">
19
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
20
+ <link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
21
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
22
+ <link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
23
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
21
24
  </head>
22
25
  <body>
23
26
  <div id="root"></div>
@@ -9,10 +9,11 @@
9
9
  html, body { margin: 0; padding: 0; width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; overflow: hidden; background: transparent !important; }
10
10
  #root { width: -moz-max-content; width: max-content; height: -moz-max-content; height: max-content; display: block; overflow: visible; }
11
11
  </style>
12
- <script type="module" crossorigin src="../../assets/tooltip-DfQqK3Sk.js"></script>
13
- <link rel="modulepreload" crossorigin href="../../assets/ipc-transport-BOg0gR9W.js">
14
- <link rel="modulepreload" crossorigin href="../../assets/view-api-nn69je7A.js">
15
- <link rel="stylesheet" crossorigin href="../../assets/ipc-transport-DgQhZaE9.css">
12
+ <script type="module" crossorigin src="../../assets/tooltip-B_-_YVbw.js"></script>
13
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
16
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
16
17
  </head>
17
18
  <body>
18
19
  <div id="root"></div>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html lang="zh-CN">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <!-- See main/index.html for CSP rationale. -->
6
+ <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
7
+ <title>Update Available</title>
8
+ <style>
9
+ html, body { margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden; background: transparent !important; }
10
+ </style>
11
+ <script type="module" crossorigin src="../../assets/updateDialog-NsF8223A.js"></script>
12
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
13
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
16
+ <link rel="modulepreload" crossorigin href="../../assets/createLucideIcon-Bqi8hpdi.js">
17
+ <link rel="modulepreload" crossorigin href="../../assets/dialog-e1TecTOY.js">
18
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
19
+ <link rel="modulepreload" crossorigin href="../../assets/view-api-CLn3rcQE.js">
20
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
21
+ </head>
22
+ <body>
23
+ <div id="root"></div>
24
+ </body>
25
+ </html>
@@ -6,13 +6,17 @@
6
6
  <!-- See entries/main/index.html for CSP rationale. -->
7
7
  <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: http: https:; font-src 'self' data:; media-src 'self' blob: http: https:; connect-src 'self' http: https: ws: wss:;" />
8
8
  <title>开发工具设置</title>
9
- <script type="module" crossorigin src="../../assets/workbenchSettings-oq_EyfKf.js"></script>
10
- <link rel="modulepreload" crossorigin href="../../assets/ipc-transport-BOg0gR9W.js">
11
- <link rel="modulepreload" crossorigin href="../../assets/settings-api-Bo9GbYqs.js">
12
- <link rel="modulepreload" crossorigin href="../../assets/input-Dmm6nob5.js">
13
- <link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Beia6lMr.js">
14
- <link rel="modulepreload" crossorigin href="../../assets/constants-Bdz0LHdy.js">
15
- <link rel="stylesheet" crossorigin href="../../assets/ipc-transport-DgQhZaE9.css">
9
+ <script type="module" crossorigin src="../../assets/workbenchSettings-CV4LVA9b.js"></script>
10
+ <link rel="modulepreload" crossorigin href="../../assets/jsx-runtime-DGLHmmOq.js">
11
+ <link rel="modulepreload" crossorigin href="../../assets/dist-DKWdE1TK.js">
12
+ <link rel="modulepreload" crossorigin href="../../assets/utils-kfQov6Pa.js">
13
+ <link rel="modulepreload" crossorigin href="../../assets/settings-tab-bar-Cw1kVIf2.js">
14
+ <link rel="modulepreload" crossorigin href="../../assets/button-D5Q2wkXq.js">
15
+ <link rel="modulepreload" crossorigin href="../../assets/ipc-channels-overlays-LsDzGAtV.js">
16
+ <link rel="modulepreload" crossorigin href="../../assets/settings-api-CrUQ9rYV.js">
17
+ <link rel="modulepreload" crossorigin href="../../assets/input-Ct3alvkq.js">
18
+ <link rel="modulepreload" crossorigin href="../../assets/constants-D7DfVqMp.js">
19
+ <link rel="stylesheet" crossorigin href="../../assets/jsx-runtime-2vXHouwr.css">
16
20
  </head>
17
21
  <body>
18
22
  <div id="root"></div>
@@ -63,6 +63,16 @@ globalThis.__diminaApiNamespaces = apiNamespacesRaw
63
63
  ? apiNamespacesRaw.split(',').map((name) => name.trim()).filter(Boolean)
64
64
  : []
65
65
 
66
+ // Host-registered custom API names (`ElectronRuntime.registerApi('joinIsland', ...)`
67
+ // etc.). service.js's `registerEnumerableApiNames()` installs these as real
68
+ // own-enumerable forwarding functions on `wx`/`dd` — its Proxy `get` trap
69
+ // deliberately returns `undefined` for anything not registered this way, so
70
+ // without this the names are silently unusable from mini-program logic.
71
+ const registeredApisRaw = params.get('registeredApis')
72
+ globalThis.__diminaRegisteredApis = registeredApisRaw
73
+ ? registeredApisRaw.split(',').map((name) => name.trim()).filter(Boolean)
74
+ : []
75
+
66
76
  // Live host-env updates (native-host device dropdown). The binding above is
67
77
  // non-configurable, but the inner object's properties are writable — merge the
68
78
  // pushed metrics into `hostEnvSnapshot` in place. `sync-impls/system-info.ts`
@@ -21,4 +21,26 @@ export declare const HEADER_H = 40;
21
21
  * both guard wings are required).
22
22
  */
23
23
  export declare const HOST_TOOLBAR_RUNTIME_MARKER = "--dimina-host-toolbar";
24
+ /**
25
+ * Same guard-marker contract as {@link HOST_TOOLBAR_RUNTIME_MARKER}, for the
26
+ * host-sidebar WebContentsView (`src/preload/runtime/host-sidebar-runtime.ts`).
27
+ */
28
+ export declare const HOST_SIDEBAR_RUNTIME_MARKER = "--dimina-host-sidebar";
29
+ /**
30
+ * Same guard-marker contract as {@link HOST_TOOLBAR_RUNTIME_MARKER}, for the
31
+ * host-dialog WebContentsView (`src/preload/runtime/host-dialog-runtime.ts`).
32
+ */
33
+ export declare const HOST_DIALOG_RUNTIME_MARKER = "--dimina-host-dialog";
34
+ /**
35
+ * Intrinsic width (px) of devtools' own default host-sidebar content (the
36
+ * project-category icon rail). Single source of truth shared by the renderer
37
+ * (`host-sidebar-default.tsx`, which gives its `[data-host-sidebar-root]` this
38
+ * exact width so the width advertiser reports it) and anything in main that
39
+ * needs to reason about the default rail's size. The slot is NOT left pinned
40
+ * at this width: main pushes it once as a seed and immediately returns the
41
+ * slot to 'auto' (see `createDevtoolsRuntime`), so the rail — and any
42
+ * downstream `loadURL`/`loadFile` content that replaces it — advertises its
43
+ * own width from then on, exactly like any other host-sidebar content.
44
+ */
45
+ export declare const HOST_SIDEBAR_DEFAULT_WIDTH = 56;
24
46
  //# sourceMappingURL=constants.d.ts.map
@@ -21,4 +21,26 @@ export const HEADER_H = 40;
21
21
  * both guard wings are required).
22
22
  */
23
23
  export const HOST_TOOLBAR_RUNTIME_MARKER = '--dimina-host-toolbar';
24
+ /**
25
+ * Same guard-marker contract as {@link HOST_TOOLBAR_RUNTIME_MARKER}, for the
26
+ * host-sidebar WebContentsView (`src/preload/runtime/host-sidebar-runtime.ts`).
27
+ */
28
+ export const HOST_SIDEBAR_RUNTIME_MARKER = '--dimina-host-sidebar';
29
+ /**
30
+ * Same guard-marker contract as {@link HOST_TOOLBAR_RUNTIME_MARKER}, for the
31
+ * host-dialog WebContentsView (`src/preload/runtime/host-dialog-runtime.ts`).
32
+ */
33
+ export const HOST_DIALOG_RUNTIME_MARKER = '--dimina-host-dialog';
34
+ /**
35
+ * Intrinsic width (px) of devtools' own default host-sidebar content (the
36
+ * project-category icon rail). Single source of truth shared by the renderer
37
+ * (`host-sidebar-default.tsx`, which gives its `[data-host-sidebar-root]` this
38
+ * exact width so the width advertiser reports it) and anything in main that
39
+ * needs to reason about the default rail's size. The slot is NOT left pinned
40
+ * at this width: main pushes it once as a seed and immediately returns the
41
+ * slot to 'auto' (see `createDevtoolsRuntime`), so the rail — and any
42
+ * downstream `loadURL`/`loadFile` content that replaces it — advertises its
43
+ * own width from then on, exactly like any other host-sidebar content.
44
+ */
45
+ export const HOST_SIDEBAR_DEFAULT_WIDTH = 56;
24
46
  //# sourceMappingURL=constants.js.map
@@ -0,0 +1,156 @@
1
+ /**
2
+ * IPC channel name constants for dimina-devtools' overlay/panel
3
+ * WebContentsViews — layout slots (host-toolbar/host-sidebar/host-dialog),
4
+ * the popover, tooltip, project-create dialog and settings overlays, plus
5
+ * the update flow. Split out of `ipc-channels.ts` (see that file's header)
6
+ * once this group alone pushed it past the repo's file-length threshold —
7
+ * these constants share no runtime dependency on the rest of that file, so
8
+ * the split is a pure line-count relief valve, not a behavior change.
9
+ */
10
+ export declare const ViewChannel: {
11
+ /**
12
+ * Reverse size-advertiser: the host-toolbar WCV's OWN renderer advertises its
13
+ * intrinsic content height so main reserves exactly that much. Payload
14
+ * `{ axis: 'block', extent }`. fire-and-forget (send), NOT invoke.
15
+ */
16
+ readonly HostToolbarAdvertiseHeight: "view:host-toolbar:advertise-height";
17
+ /**
18
+ * main → host-toolbar WCV renderer: per-load MessagePort handshake for the
19
+ * gated narrow channel. On every toolbar `did-finish-load` main creates a
20
+ * `MessageChannelMain` and transfers port2 here
21
+ * (`wc.postMessage(HostToolbarPort, null, [port2])`); the session-resident
22
+ * toolbar runtime preload receives it via `event.ports[0]` and bridges it to
23
+ * the page as `window.diminaHostToolbar`. Envelope both directions:
24
+ * `{ channel: string, payload: unknown }`.
25
+ */
26
+ readonly HostToolbarPort: "view:host-toolbar:port";
27
+ /**
28
+ * main → main-window renderer: push the reserved host-toolbar height so the
29
+ * renderer placeholder div resizes (closing the dynamic-height loop).
30
+ */
31
+ readonly HostToolbarHeightChanged: "view:host-toolbar:height-changed";
32
+ /**
33
+ * main ← main-window renderer (invoke): pull the last NOTIFIED toolbar
34
+ * height retained in main. Mount-time replay companion to
35
+ * `HostToolbarHeightChanged`: the push listener mounts with the project
36
+ * view and the toolbar's size-advertiser deduplicates (never re-reports),
37
+ * so a height pushed while no project view was mounted would otherwise be
38
+ * lost forever (cold start on the project list races it; close-project →
39
+ * reopen hits it deterministically). No payload; resolves a number.
40
+ */
41
+ readonly HostToolbarGetHeight: "view:host-toolbar:get-height";
42
+ /**
43
+ * Reverse size-advertiser for the host-sidebar WCV, mirroring
44
+ * `HostToolbarAdvertiseHeight` on the inline (width) axis instead of block.
45
+ * Payload `{ axis: 'inline', extent }`. fire-and-forget (send), NOT invoke.
46
+ */
47
+ readonly HostSidebarAdvertiseWidth: "view:host-sidebar:advertise-width";
48
+ /**
49
+ * main → host-sidebar WCV renderer: per-load MessagePort handshake, same
50
+ * contract as `HostToolbarPort` (see that entry).
51
+ */
52
+ readonly HostSidebarPort: "view:host-sidebar:port";
53
+ /**
54
+ * main → main-window renderer: push the reserved host-sidebar width so the
55
+ * renderer placeholder div resizes, mirroring `HostToolbarHeightChanged`.
56
+ */
57
+ readonly HostSidebarWidthChanged: "view:host-sidebar:width-changed";
58
+ /**
59
+ * main ← main-window renderer (invoke): pull the last NOTIFIED sidebar
60
+ * width, mirroring `HostToolbarGetHeight`'s mount-time replay role.
61
+ */
62
+ readonly HostSidebarGetWidth: "view:host-sidebar:get-width";
63
+ /**
64
+ * main → main-window renderer: push the project category (`Project.type`)
65
+ * selected in the host-sidebar's content — devtools' own default icon rail,
66
+ * or any downstream replacement that sends on the same channel. No
67
+ * pull/replay companion like `HostSidebarGetWidth`: the default category is
68
+ * a stable initial value regardless of load-order, and nothing is ever sent
69
+ * before the main-window renderer (and thus `ProjectListScreen`) is already
70
+ * mounted.
71
+ */
72
+ readonly HostSidebarCategorySelected: "view:host-sidebar:category-selected";
73
+ /**
74
+ * Reverse size-advertiser for the host-dialog WCV. Unlike the toolbar/sidebar
75
+ * (single-axis, `setBaseDesired`-placed strips), the dialog is a BOTH-AXES
76
+ * overlay positioned by `setOverlayDesired` — main centers it in the main
77
+ * window once it knows both dimensions. One channel carries either axis'
78
+ * report (`{ axis: 'block' | 'inline', extent }`); the dialog's own content
79
+ * advertises both from the same root (see `host-dialog-advertiser.ts`).
80
+ * fire-and-forget (send), NOT invoke.
81
+ *
82
+ * No `HostDialogSizeChanged` / `HostDialogGetSize` counterparts: those exist
83
+ * for toolbar/sidebar so a renderer-owned PLACEHOLDER can replay a size it
84
+ * missed. The dialog has no such placeholder — it is a main-driven overlay
85
+ * shown/hidden on demand (`hostDialog.show()`/`hide()`), so there is nothing
86
+ * in the renderer to replay a size into.
87
+ */
88
+ readonly HostDialogAdvertiseSize: "view:host-dialog:advertise-size";
89
+ /**
90
+ * main → host-dialog WCV renderer: per-load MessagePort handshake, same
91
+ * contract as `HostToolbarPort` (see that entry).
92
+ */
93
+ readonly HostDialogPort: "view:host-dialog:port";
94
+ /**
95
+ * Renderer → main: the window-level placement snapshot (one monotonic epoch
96
+ * per commit tick, one generation per renderer lifetime) that drives the view
97
+ * reconciler. The single source of truth for every managed native view's
98
+ * bounds/visibility/z-order — supersedes the per-view bounds channels above.
99
+ * invoke.
100
+ */
101
+ readonly PlacementSnapshot: "view:placement-snapshot";
102
+ /**
103
+ * main ← main-window renderer (invoke): allocate a fresh placement
104
+ * generation seed for this renderer bootstrap. See
105
+ * renderer-placement-generation.ts for why the seed comes from main
106
+ * (a wall-clock `Date.now()` seed is not guaranteed to exceed main's
107
+ * still-standing high-water mark across two reloads that happen faster
108
+ * than the clock's resolution). No payload; resolves a number.
109
+ */
110
+ readonly AllocatePlacementGeneration: "view:allocate-placement-generation";
111
+ };
112
+ export interface ViewBounds {
113
+ x: number;
114
+ y: number;
115
+ width: number;
116
+ height: number;
117
+ }
118
+ export declare const PopoverChannel: {
119
+ readonly Show: "popover:show";
120
+ readonly Hide: "popover:hide";
121
+ readonly Relaunch: "popover:relaunch";
122
+ readonly Closed: "popover:closed";
123
+ readonly Init: "popover:init";
124
+ };
125
+ export declare const OverlayChannel: {
126
+ readonly Ready: "overlay:ready";
127
+ };
128
+ export declare const TooltipChannel: {
129
+ readonly Prepare: "tooltip:prepare";
130
+ readonly Show: "tooltip:show";
131
+ readonly Hide: "tooltip:hide";
132
+ readonly Init: "tooltip:init";
133
+ readonly Measured: "tooltip:measured";
134
+ };
135
+ export declare const ProjectCreateChannel: {
136
+ readonly Show: "projectCreate:show";
137
+ readonly Init: "projectCreate:init";
138
+ readonly Submit: "projectCreate:submit";
139
+ readonly Cancel: "projectCreate:cancel";
140
+ readonly Submitted: "projectCreate:submitted";
141
+ };
142
+ export declare const SettingsChannel: {
143
+ readonly SetVisible: "settings:setVisible";
144
+ readonly ConfigChanged: "settings:configChanged";
145
+ readonly ProjectSettingsChanged: "settings:projectSettingsChanged";
146
+ readonly Init: "settings:init";
147
+ };
148
+ export declare const UpdateChannel: {
149
+ readonly Check: "updates:check";
150
+ readonly Download: "updates:download";
151
+ readonly Install: "updates:install";
152
+ readonly DownloadProgress: "updates:downloadProgress";
153
+ readonly Available: "updates:available";
154
+ readonly Close: "updates:close";
155
+ };
156
+ //# sourceMappingURL=ipc-channels-overlays.d.ts.map