human2ai 0.1.7 → 0.1.8

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 (144) hide show
  1. package/README.en.md +1 -1
  2. package/README.md +1 -1
  3. package/dist/cli/main.js +74 -3
  4. package/dist/cli/main.js.map +1 -1
  5. package/dist/database/draft-version-errors.d.ts +6 -0
  6. package/dist/database/draft-version-errors.js +11 -0
  7. package/dist/database/draft-version-errors.js.map +1 -1
  8. package/dist/database/draft-version-store.js +17 -2
  9. package/dist/database/draft-version-store.js.map +1 -1
  10. package/dist/database/image-asset-repository.d.ts +5 -0
  11. package/dist/database/image-asset-repository.js +22 -4
  12. package/dist/database/image-asset-repository.js.map +1 -1
  13. package/dist/database/migrate.js +2 -0
  14. package/dist/database/migrate.js.map +1 -1
  15. package/dist/database/project-session-repository.d.ts +12 -1
  16. package/dist/database/project-session-repository.js +48 -11
  17. package/dist/database/project-session-repository.js.map +1 -1
  18. package/dist/database/session-preview-validation.js +37 -4
  19. package/dist/database/session-preview-validation.js.map +1 -1
  20. package/dist/database/session-storage-repository.d.ts +35 -0
  21. package/dist/database/session-storage-repository.js +281 -0
  22. package/dist/database/session-storage-repository.js.map +1 -0
  23. package/dist/database/ui-sketch-png-split-repository.d.ts +13 -0
  24. package/dist/database/ui-sketch-png-split-repository.js +123 -0
  25. package/dist/database/ui-sketch-png-split-repository.js.map +1 -0
  26. package/dist/database/workspace-settings-repository.d.ts +10 -0
  27. package/dist/database/workspace-settings-repository.js +30 -0
  28. package/dist/database/workspace-settings-repository.js.map +1 -0
  29. package/dist/domain/session/canvas-edit-history.d.ts +2 -0
  30. package/dist/domain/session/canvas-edit-history.js +4 -0
  31. package/dist/domain/session/canvas-edit-history.js.map +1 -1
  32. package/dist/domain/session/capabilities.js +14 -0
  33. package/dist/domain/session/capabilities.js.map +1 -1
  34. package/dist/domain/session/storage.d.ts +22 -0
  35. package/dist/domain/session/storage.js +10 -0
  36. package/dist/domain/session/storage.js.map +1 -0
  37. package/dist/domain/session/types.d.ts +4 -0
  38. package/dist/domain/ui-sketch/draft.js +22 -0
  39. package/dist/domain/ui-sketch/draft.js.map +1 -1
  40. package/dist/domain/ui-sketch/png-canvas.d.ts +25 -0
  41. package/dist/domain/ui-sketch/png-canvas.js +78 -0
  42. package/dist/domain/ui-sketch/png-canvas.js.map +1 -0
  43. package/dist/domain/ui-sketch/png-split-regions.d.ts +7 -0
  44. package/dist/domain/ui-sketch/png-split-regions.js +40 -0
  45. package/dist/domain/ui-sketch/png-split-regions.js.map +1 -0
  46. package/dist/domain/ui-sketch/png-split.d.ts +49 -0
  47. package/dist/domain/ui-sketch/png-split.js +39 -0
  48. package/dist/domain/ui-sketch/png-split.js.map +1 -0
  49. package/dist/domain/ui-sketch/transparent-png.d.ts +50 -0
  50. package/dist/domain/ui-sketch/transparent-png.js +178 -0
  51. package/dist/domain/ui-sketch/transparent-png.js.map +1 -0
  52. package/dist/domain/ui-sketch/types.d.ts +2 -0
  53. package/dist/server/app.d.ts +7 -1
  54. package/dist/server/app.js +21 -0
  55. package/dist/server/app.js.map +1 -1
  56. package/dist/server/routes/draft-version-routes.js +12 -3
  57. package/dist/server/routes/draft-version-routes.js.map +1 -1
  58. package/dist/server/routes/project-sessions.js +14 -0
  59. package/dist/server/routes/project-sessions.js.map +1 -1
  60. package/dist/server/routes/storage-protection.d.ts +3 -0
  61. package/dist/server/routes/storage-protection.js +29 -0
  62. package/dist/server/routes/storage-protection.js.map +1 -0
  63. package/dist/server/routes/ui-sketch-png-splits.d.ts +4 -0
  64. package/dist/server/routes/ui-sketch-png-splits.js +42 -0
  65. package/dist/server/routes/ui-sketch-png-splits.js.map +1 -0
  66. package/dist/server/routes/workspace-settings.d.ts +3 -0
  67. package/dist/server/routes/workspace-settings.js +25 -0
  68. package/dist/server/routes/workspace-settings.js.map +1 -0
  69. package/dist/server/runtime.js +8 -1
  70. package/dist/server/runtime.js.map +1 -1
  71. package/dist/server/session-preview-service.js +7 -4
  72. package/dist/server/session-preview-service.js.map +1 -1
  73. package/dist/server/storage-maintenance-service.d.ts +6 -0
  74. package/dist/server/storage-maintenance-service.js +65 -0
  75. package/dist/server/storage-maintenance-service.js.map +1 -0
  76. package/locales/en/common.json +64 -2
  77. package/migrations/0012_ui_sketch_png_splits.sql +6 -0
  78. package/migrations/0013_storage_retention.sql +43 -0
  79. package/migrations/0014_workspace_settings_and_trash.sql +11 -0
  80. package/package.json +1 -1
  81. package/schemas/ui-sketch-draft.schema.json +173 -0
  82. package/skills/human2ai/SKILL.md +8 -2
  83. package/skills/human2ai/references/ui-extraction-prompt.txt +41 -0
  84. package/skills/human2ai/references/ui-extraction.md +38 -0
  85. package/skills/human2ai/references/ui-layout.md +22 -0
  86. package/web/out/404/index.html +1 -1
  87. package/web/out/404.html +1 -1
  88. package/web/out/__next.__PAGE__.txt +7 -7
  89. package/web/out/__next._full.txt +7 -7
  90. package/web/out/__next._tree.txt +3 -3
  91. package/web/out/_next/static/chunks/327-3dba8bbcb4bcb1fc.js +1 -0
  92. package/web/out/_next/static/chunks/868-6a413fc8c52cf6df.js +1 -0
  93. package/web/out/_next/static/chunks/{60-f12915d6c3a2c6a3.js → 989-6d7aa6a22a75f7de.js} +24 -24
  94. package/web/out/_next/static/chunks/app/_not-found/{page-508d7dc25aaa3aa9.js → page-fddf8e0980e10cc5.js} +1 -1
  95. package/web/out/_next/static/chunks/app/composition/page-f810843a0f114d13.js +1 -0
  96. package/web/out/_next/static/chunks/app/layout-9c5f0b5667b84400.js +1 -0
  97. package/web/out/_next/static/chunks/app/{page-96f541a0e6fa160b.js → page-29cacabbd1c90b6f.js} +1 -1
  98. package/web/out/_next/static/chunks/app/spatial/page-014875456f84d8fa.js +1 -0
  99. package/web/out/_next/static/chunks/app/styles/{page-4f0f5e04e35adaa3.js → page-1077a7decb9be158.js} +1 -1
  100. package/web/out/_next/static/chunks/app/ui-sketch/page-ea382541f80cad0d.js +1 -0
  101. package/web/out/_next/static/chunks/{main-app-3e9223f29047fc41.js → main-app-9985b291e50ea69b.js} +1 -1
  102. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-1193cefa6c9c6179.js +1 -0
  103. package/web/out/_next/static/chunks/{webpack-9a8652ec72df780b.js → webpack-cfe3662bbaa8d6ce.js} +1 -1
  104. package/web/out/_next/static/css/15abfc5e59099f48.css +1 -0
  105. package/web/out/_next/static/css/57ecc433cb654a57.css +1 -0
  106. package/web/out/_next/static/css/7a62016f8918890b.css +5 -0
  107. package/web/out/_not-found/__next._full.txt +6 -6
  108. package/web/out/_not-found/__next._not-found.__PAGE__.txt +6 -6
  109. package/web/out/_not-found/__next._tree.txt +3 -3
  110. package/web/out/_not-found/index.html +1 -1
  111. package/web/out/_not-found/index.txt +6 -6
  112. package/web/out/composition/__next._full.txt +7 -7
  113. package/web/out/composition/__next._tree.txt +3 -3
  114. package/web/out/composition/__next.composition.__PAGE__.txt +7 -7
  115. package/web/out/composition/index.html +1 -1
  116. package/web/out/composition/index.txt +7 -7
  117. package/web/out/index.html +1 -1
  118. package/web/out/index.txt +7 -7
  119. package/web/out/spatial/__next._full.txt +7 -7
  120. package/web/out/spatial/__next._tree.txt +3 -3
  121. package/web/out/spatial/__next.spatial.__PAGE__.txt +7 -7
  122. package/web/out/spatial/index.html +1 -1
  123. package/web/out/spatial/index.txt +7 -7
  124. package/web/out/styles/__next._full.txt +7 -7
  125. package/web/out/styles/__next._tree.txt +3 -3
  126. package/web/out/styles/__next.styles.__PAGE__.txt +7 -7
  127. package/web/out/styles/index.html +1 -1
  128. package/web/out/styles/index.txt +7 -7
  129. package/web/out/ui-sketch/__next._full.txt +8 -8
  130. package/web/out/ui-sketch/__next._tree.txt +4 -4
  131. package/web/out/ui-sketch/__next.ui-sketch.__PAGE__.txt +8 -8
  132. package/web/out/ui-sketch/index.html +1 -1
  133. package/web/out/ui-sketch/index.txt +8 -8
  134. package/web/out/_next/static/chunks/348-845058912fd7c5e5.js +0 -1
  135. package/web/out/_next/static/chunks/app/composition/page-30c8fcabe591ab65.js +0 -1
  136. package/web/out/_next/static/chunks/app/layout-68da0027d158df26.js +0 -1
  137. package/web/out/_next/static/chunks/app/spatial/page-ac4e6cda25dea88f.js +0 -1
  138. package/web/out/_next/static/chunks/app/ui-sketch/page-08ddf9773e8f15ed.js +0 -1
  139. package/web/out/_next/static/chunks/next/dist/client/components/builtin/global-error-2d183cd08094b261.js +0 -1
  140. package/web/out/_next/static/css/0777c3d5c25abf92.css +0 -1
  141. package/web/out/_next/static/css/3d47424e508934f6.css +0 -5
  142. package/web/out/_next/static/css/5d259915312c51c1.css +0 -1
  143. /package/web/out/_next/static/{MsEzgYkCNtygwkUNRRXe7 → SiEWNIZfGL4sShRQt9h5W}/_buildManifest.js +0 -0
  144. /package/web/out/_next/static/{MsEzgYkCNtygwkUNRRXe7 → SiEWNIZfGL4sShRQt9h5W}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[271],{2828:e=>{e.exports={page:"page_page__RhPIA",routeLoading:"page_routeLoading__5WzpA",workspaceLoading:"page_workspaceLoading__dL32T",panelLoading:"page_panelLoading__39zT6",deliveryNotice:"page_deliveryNotice__87isY",deliveryNoticeSuccess:"page_deliveryNoticeSuccess__OLl4_",deliveryNoticeWarning:"page_deliveryNoticeWarning__ovF85",deliveryNoticeError:"page_deliveryNoticeError__HVdjV",serviceError:"page_serviceError__r4EOT",workspace:"page_workspace__J9PVq",stage:"page_stage__k9VRj",workflow:"page_workflow__lR5mI",toolGroups:"page_toolGroups__F2p04",toolGroup:"page_toolGroup__35bzP",capacityTool:"page_capacityTool__glYiG",toolGroupTitle:"page_toolGroupTitle__nfj7N",toolAction:"page_toolAction__dN0J1",processingSemanticSwitch:"page_processingSemanticSwitch__08Z5N",overallNoteEditor:"page_overallNoteEditor__mEwiW",shapeToolIcon:"page_shapeToolIcon__rzrLe",circleToolIcon:"page_circleToolIcon__tFQky",triangleToolIcon:"page_triangleToolIcon__OZv0J",quadrilateralToolIcon:"page_quadrilateralToolIcon__FnduP",panel:"page_panel__MDuVE",panelIsLoading:"page_panelIsLoading__p_o3O",sectionHeading:"page_sectionHeading__Y673y",sectionHeadingActions:"page_sectionHeadingActions__NYnhA",metrics:"page_metrics__2KOsi"}},31854:(e,t,i)=>{"use strict";i.d(t,{t:()=>r});var o=i(1521),n=i(8020),a=i(60458);function r(e,t,i){let{t:r}=(0,n.Bd)(),[s,l]=(0,o.useState)(null),[c,d]=(0,o.useState)([]),[u,p]=(0,o.useState)(!0),[m,g]=(0,o.useState)(!1),[f,h]=(0,o.useState)(null),[y,v]=(0,o.useState)(0),b=(0,o.useRef)(e);b.current=e;let w=(0,o.useRef)(!1),x=(0,o.useRef)(0);async function S(i){if(w.current)return;w.current=!0,++x.current,g(!0),h(null);let o=e;try{if(o??=await t(),null!==b.current&&b.current!==o)return;let e=s?.session.id===o?s:await (0,a.YM)(o),n=await (0,a.T8)(o,i,e.session.revision);(b.current===o||null===b.current)&&l(n)}catch(e){throw(b.current===o||null===b.current)&&h(e instanceof a.wP&&409===e.status?r("sessionStyle.conflict"):r("errors.operationFailed")),e}finally{w.current=!1,g(!1),p(!1)}}async function k(){if(!e)return;let t=await (0,a.YM)(e);return t.style?r("sessionStyle.prompt",{summary:t.style.promptSummary}):void 0}return(0,o.useEffect)(()=>{let t=!1,i=!1;p(!0),h(null);let o=async()=>{if(i||w.current)return;i=!0;let o=++x.current;try{let[i,n]=await Promise.all([(0,a.X0)(),e?(0,a.YM)(e):Promise.resolve(null)]);if(t||o!==x.current)return;d(e=>JSON.stringify(e)===JSON.stringify(i)?e:i),l(e=>JSON.stringify(e)===JSON.stringify(n)?e:n),h(null)}catch{t||o!==x.current||h(r("styleLibrary.loadFailed"))}finally{i=!1,t||o!==x.current||p(!1)}};o();let n=window.setInterval(()=>void o(),3e3);return()=>{t=!0,window.clearInterval(n)}},[e,i,y,r]),{styles:c,currentStyle:s?.session.id===e?s.style:null,loading:u,saving:m,error:f,bind:S,readPromptLine:k,refresh:()=>v(e=>e+1)}}},42614:(e,t,i)=>{"use strict";i.d(t,{B:()=>r});let o={globalNoteHeading:"notes.global.promptHeading",note:"notes.element.prompt",displayText:"textContent.prompt",visualWeight:"visualWeight.prompt",weightAuto:"visualWeight.auto",weightHigh:"visualWeight.high",weightMedium:"visualWeight.medium",weightLow:"visualWeight.low",weightDecorative:"visualWeight.decorative"},n={planningHeading:"composition.planning.title",planningGoldenSection:"composition.planning.types.golden-section",planningThirds:"composition.planning.types.thirds",planningBoth:"composition.planning.both",planningHorizontal:"composition.planning.horizontal",planningVertical:"composition.planning.vertical",shotScale:"composition.depth.prompt",foreground:"composition.depth.foreground",midground:"composition.depth.midground",background:"composition.depth.background",processingSemantic:"composition.mode.prompt",previewMode:"composition.previewMode.prompt",precisePreview:"composition.previewMode.precise",softPreview:"composition.previewMode.soft",precisePreviewGuidance:"composition.previewMode.preciseGuidance",preciseLightGuidance:"composition.previewMode.preciseLightGuidance",sceneComposition:"composition.mode.scene",editorialLayout:"composition.mode.editorial",unselected:"composition.mode.unselected",unselectedGuidance:"composition.mode.unselectedGuidance",sceneGuidance:"composition.mode.sceneGuidance",editorialGuidance:"composition.mode.editorialGuidance",imageHeading:"canvas.imageNode.promptHeading",flowHeading:"composition.flow.promptHeading",flowReference:"composition.flow.promptReference"},a={stateName:"uiSketch.states.defaultName",visible:"canvas.nodeVisibility.visible",hidden:"canvas.nodeVisibility.hidden"};function r(e,t){return o[t]??("composition"===e?n[t]:a[t])??`${e}.prompt.${t}`}},46109:(e,t,i)=>{"use strict";function o(e){return{model:{label:e("styleLibrary.model.label"),loading:e("styleLibrary.model.loading"),failed:e("styleLibrary.model.failed"),reset:e("styleLibrary.model.reset"),controls:e("styleLibrary.model.controls"),retry:e("actions.retry")},newStyle:e("styleLibrary.newStyle"),editStyle:e("styleLibrary.editStyle"),name:e("styleLibrary.name"),namePlaceholder:e("styleLibrary.namePlaceholder"),category:e("styleLibrary.category.label"),allCategories:e("styleLibrary.category.all"),visualCategory:e("styleLibrary.category.visual"),uiCategory:e("styleLibrary.category.ui"),spatialCategory:e("styleLibrary.category.spatial"),creator:e("styleLibrary.creator.label"),allCreators:e("styleLibrary.creator.all"),userCreator:e("styleLibrary.creator.user"),agentCreator:e("styleLibrary.creator.agent"),references:e("styleLibrary.references.heading"),noReferences:e("styleLibrary.references.empty"),addReferences:e("styleLibrary.references.add"),removeReference:e("styleLibrary.references.remove"),pasteHint:e("styleLibrary.references.pasteHint"),fileTypes:e("styleLibrary.references.fileTypes"),description:e("styleLibrary.description.heading"),promptSummary:e("styleLibrary.promptSummary.label"),promptSummaryPlaceholder:e("styleLibrary.promptSummary.placeholder"),descriptionPlaceholder:e("styleLibrary.description.placeholder"),spatialDescriptionPlaceholder:e("styleLibrary.description.spatialPlaceholder"),searchPlaceholder:e("styleLibrary.searchPlaceholder"),deleteTitle:e("styleLibrary.deleteTitle"),deleteDescription:e("styleLibrary.deleteDescription"),empty:e("styleLibrary.empty"),noMatches:e("styleLibrary.noMatches"),loading:e("styleLibrary.loading"),loadFailed:e("styleLibrary.loadFailed"),retry:e("actions.retry"),save:e("styleLibrary.save"),cancel:e("actions.cancel"),delete:e("actions.delete"),operationFailed:e("errors.operationFailed"),imageInvalid:e("styleLibrary.imageInvalid"),openStyle:t=>e("styleLibrary.openStyle",{name:t}),closePreview:e("styleLibrary.closePreview")}}i.d(t,{Q:()=>o})},46295:(e,t,i)=>{"use strict";function o(e,t){let i=t?new URL(t).origin:null,o=`session connect --session ${e}`;return i?`human2ai --api-url ${i} --web-url ${i} ${o}`:`human2ai ${o}`}i.d(t,{m:()=>o})},48197:(e,t,i)=>{"use strict";i.d(t,{H:()=>l});var o=i(73365),n=i(59649),a=i(8020),r=i(60458),s=i(46109);function l({controller:e,category:t,processing:i,disabled:c,showProcessingStatus:d=!0}){let{t:u}=(0,a.Bd)(),p=e.currentStyle;return(0,o.jsx)(n.WL,{styles:e.styles,currentStyle:p,category:t,labels:{title:u("sessionStyle.label"),choose:u("sessionStyle.choose"),dialogTitle:u("sessionStyle.dialogTitle"),unbind:u("sessionStyle.unbind"),select:u("sessionStyle.select"),pending:u("sessionStyle.pending")},libraryLabels:(0,s.Q)(u),imageUrl:r.Pf,modelUrl:r.x,onBind:e.bind,onRetry:e.refresh,loading:e.loading,saving:e.saving,error:e.error,disabled:c,pending:d&&!!(p&&(i?.styleId!==p.id||i.styleRevision!==p.revision))})}},52003:(e,t,i)=>{"use strict";i.d(t,{S:()=>s});var o=i(1521);class n{constructor(e){this.past=[],this.future=[],this.current=structuredClone(e)}get canUndo(){return this.past.length>0}get canRedo(){return this.future.length>0}record(e,t,i=t,o){if(JSON.stringify(this.current)===JSON.stringify(e))return!1;let n=this.past.at(-1),a=structuredClone(e);return o&&n?.group===o?(n.after=a,n.afterContext=i,JSON.stringify(n.before)===JSON.stringify(a)&&this.past.pop()):(this.past.push({before:this.current,after:a,beforeContext:t,afterContext:i,group:o}),this.past.length>100&&this.past.shift()),this.current=a,this.future=[],!0}undo(){let e=this.past.pop();return e?(this.future.push(e),this.current=e.before,{draft:structuredClone(this.current),context:e.beforeContext}):null}redo(){let e=this.future.pop();return e?(this.past.push(e),this.current=e.after,{draft:structuredClone(this.current),context:e.afterContext}):null}reset(e){this.current=structuredClone(e),this.past=[],this.future=[]}synchronize(e){this.current=e}}function a(e){return e instanceof Element&&!!e.closest('textarea, input:not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), [contenteditable="true"], [role="textbox"]')}function r(e){return e===document.body||e instanceof Element&&!!e.closest("[data-canvas-editor], [data-human2ai-auto-save-node-editor]")}function s(e,t,i=!1){let[l]=(0,o.useState)(()=>new n(e)),[,c]=(0,o.useState)(0),[d,u]=(0,o.useState)(0),p=(0,o.useRef)({restore:t,disabled:i});p.current={restore:t,disabled:i};let m=(0,o.useRef)({}),g=(0,o.useRef)(new Map),f=(0,o.useMemo)(()=>{let e=()=>c(e=>e+1),t=()=>{for(let[e,t]of[...g.current])t.dispatchEvent(new PointerEvent("pointercancel",{pointerId:e,bubbles:!0}));g.current.clear(),m.current={}},i=i=>{if(p.current.disabled)return;t();let o=l[i]();o&&(p.current.restore(o),u(e=>e+1),e())};return{current:()=>l.current,synchronize(e){l.synchronize(e)},record(t,i,o=i){let n=m.current.pointer??m.current.text??m.current.key,a=l.record(t,i,o,n);return a&&e(),a},reset(i){t(),l.reset(i),u(e=>e+1),e()},undo:()=>i("undo"),redo:()=>i("redo")}},[l]);return(0,o.useEffect)(()=>{let e=e=>{r(e.target)&&e.target instanceof Element&&(g.current.set(e.pointerId,e.target),a(e.target)||(m.current.pointer=Symbol("pointer")))},t=e=>{g.current.delete(e.pointerId);let t=m.current.pointer;window.setTimeout(()=>{m.current.pointer===t&&(m.current.pointer=void 0)},0)},i=e=>{a(e.target)&&(m.current.text=Symbol("input"))},o=()=>{m.current.text=void 0},n=()=>{m.current={},g.current.clear()},s=e=>{if(e.isComposing||a(e.target)||!r(e.target))return;let t=e.key.toLowerCase();if((e.ctrlKey||e.metaKey)&&!e.altKey&&("z"===t||"y"===t)){if(p.current.disabled)return;e.preventDefault(),e.stopPropagation(),"y"===t||e.shiftKey?f.redo():f.undo()}else e.repeat||(m.current.key=Symbol("key"))},l=e=>{let t=m.current.key;a(e.target)||window.setTimeout(()=>{m.current.key===t&&(m.current.key=void 0)},0)};return window.addEventListener("pointerdown",e,!0),window.addEventListener("pointerup",t,!0),window.addEventListener("pointercancel",t,!0),window.addEventListener("focusin",i,!0),window.addEventListener("focusout",o,!0),window.addEventListener("keydown",s,!0),window.addEventListener("keyup",l,!0),window.addEventListener("blur",n),()=>{window.removeEventListener("pointerdown",e,!0),window.removeEventListener("pointerup",t,!0),window.removeEventListener("pointercancel",t,!0),window.removeEventListener("focusin",i,!0),window.removeEventListener("focusout",o,!0),window.removeEventListener("keydown",s,!0),window.removeEventListener("keyup",l,!0),window.removeEventListener("blur",n)}},[f]),{...f,restoreToken:d,canUndo:!i&&l.canUndo,canRedo:!i&&l.canRedo}}},52886:(e,t,i)=>{Promise.resolve().then(i.bind(i,83963))},78755:()=>{},83963:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>K});var o=i(73365),n=i(21755),a=i(42614),r=i(11902),s=i(6915),l=i(28110),c=i(1521);let d={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M904 476H120c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h784c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]},name:"line",theme:"outlined"};var u=i(28630);function p(){return(p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e}).apply(this,arguments)}let m=c.forwardRef((e,t)=>c.createElement(u.A,p({},e,{ref:t,icon:d})));var g=i(59030),f=i(28462),h=i(83499),y=i(17357),v=i(81271),b=i(59649),w=i(50052),x=i(67282);i(22392),i(78755);var S=i(46811);let k=["natural","sage","amber","rose","slate","sky","lavender","clay"];function L({items:e,"aria-label":t,value:i,defaultValue:n,onChange:a,colors:r={mode:"multicolor"},disabled:s=!1,className:l,style:d}){let u=new Set;for(let t of e){if(!t.label.trim()||u.has(t.key))throw Error("ExpandingSwitch 需要非空 label 和唯一 key。");u.add(t.key)}if(e.length&&void 0!==i&&!u.has(i))throw Error(`ExpandingSwitch value 不存在于 items:${i}`);let p=e.find(e=>!e.disabled)?.key??e[0]?.key,[m,g]=(0,c.useState)(n??p),[f,h]=(0,c.useState)(),[y,v]=(0,c.useState)(),[b,w]=(0,c.useState)(),x=(0,c.useRef)(null),C=(0,c.useRef)(new Map),j=(0,c.useRef)(!1),I=i??(void 0!==m&&u.has(m)?m:p),_=t=>!s&&e.some(e=>e.key===t&&!e.disabled),N=(_(f)?f:void 0)??(_(y)?y:void 0)??I,E=(_(y)?y:void 0)??(_(I)?I:e.find(e=>!e.disabled)?.key);function R(e){s||e.disabled||e.key===I||(void 0===i&&g(e.key),a?.(e.key,e))}if((0,c.useLayoutEffect)(()=>{let e=x.current;if(!e)return;let t=()=>{let t=Math.ceil(e.getBoundingClientRect().width);t>0&&w(t)};t();let i="u"<typeof ResizeObserver?void 0:new ResizeObserver(t);return i?.observe(e),window.addEventListener("resize",t),document.fonts?.addEventListener("loadingdone",t),()=>{i?.disconnect(),window.removeEventListener("resize",t),document.fonts?.removeEventListener("loadingdone",t)}},[e]),!e.length)return null;let T={...d,"--yisiui-expanding-switch-item-count":e.length,...b?{"--yisiui-expanding-switch-expanded-width":`${b}px`}:{},..."duotone"===r.mode?{"--yisiui-expanding-switch-selected-background":r.selectedBackground,"--yisiui-expanding-switch-unselected-background":r.unselectedBackground,"--yisiui-expanding-switch-selected-foreground":r.selectedForeground,"--yisiui-expanding-switch-unselected-foreground":r.unselectedForeground}:{}};return(0,o.jsxs)("div",{...(0,S.S)("expanding-switch","ExpandingSwitch"),className:["yisi-expanding-switch",l].filter(Boolean).join(" "),role:"radiogroup","aria-label":t,"aria-disabled":s||void 0,"data-color-mode":r.mode,style:T,onPointerLeave:()=>h(void 0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||(v(void 0),j.current=!1)},children:[(0,o.jsx)("span",{ref:x,className:"yisi-expanding-switch-measure","aria-hidden":"true",children:e.map(e=>(0,o.jsx)("span",{children:e.label},e.key))}),(0,o.jsx)("div",{className:"yisi-expanding-switch-track",style:{gridTemplateColumns:e.map(e=>e.key===N?"max(var(--yisiui-expanding-switch-size), var(--yisiui-expanding-switch-expanded-width, 64px))":"var(--yisiui-expanding-switch-size)").join(" ")},children:e.map((t,i)=>{let n=t.key===N,a=t.key===I;return(0,o.jsxs)("button",{ref:e=>{e?C.current.set(t.key,e):C.current.delete(t.key)},type:"button",role:"radio","aria-label":t.label,"aria-checked":a,disabled:s||t.disabled,tabIndex:s||t.disabled||t.key!==E?-1:0,className:"yisi-expanding-switch-item","data-expanded":n,"data-palette":"multicolor"===r.mode?k[i%k.length]:void 0,onPointerEnter:e=>{"touch"!==e.pointerType&&(j.current=!0,v(void 0),h(_(t.key)?t.key:void 0))},onPointerDown:()=>{j.current=!0,v(void 0)},onPointerCancel:()=>h(void 0),onFocus:()=>{j.current||v(t.key)},onKeyDown:i=>(function(t,i){let o;j.current=!1,h(void 0),v(i.key);let n=e.filter(e=>!e.disabled);if(s||i.disabled||!n.length)return;let a=n.findIndex(e=>e.key===i.key),r="rtl"===getComputedStyle(t.currentTarget).direction;switch(t.key){case"ArrowRight":o=a+(r?-1:1);break;case"ArrowLeft":o=a+(r?1:-1);break;case"ArrowDown":o=a+1;break;case"ArrowUp":o=a-1;break;case"Home":o=0;break;case"End":o=n.length-1;break;default:return}t.preventDefault();let l=n[(o+n.length)%n.length];v(l.key),C.current.get(l.key)?.focus(),C.current.get(l.key)?.scrollIntoView({block:"nearest",inline:"nearest"}),R(l)})(i,t),onClick:()=>R(t),children:[(0,o.jsx)("span",{className:"yisi-expanding-switch-label","aria-hidden":"true",children:t.label}),null!=t.icon&&(0,o.jsx)("span",{className:"yisi-expanding-switch-icon","aria-hidden":"true",inert:n,children:t.icon})]},t.key)})})]})}var C=i(95948),j=i(13360),I=i(49762),_=i(24539),N=i(29717),E=i(8020),R=i(78269),T=i(60458),A=i(48197),P=i(31854),F=i(3742),M=i(55408),D=i(44040),O=i(29415),H=i(34944),V=i(3500),$=i(21071),G=i(42348),z=i(46295),B=i(52003),U=i(2828),W=i.n(U);async function q(e){let t=await (0,T.Ht)(e);if("image-composition"!==t.sessionType)throw Error("SESSION_TYPE_MISMATCH");return{session:t,draftVersion:(await (0,T.he)(e)).at(-1)??null}}function J(e,t){return e instanceof T.wP?"DRAFT_REVISION_CONFLICT"===e.code?t("composition.session.revisionConflict",{revision:e.details.actualLatestRevision}):t("errors.serviceSync",{message:e.message}):e instanceof Error&&"SESSION_TYPE_MISMATCH"===e.message?t("composition.session.typeMismatch"):t("errors.serviceSync",{message:e instanceof Error?e.message:String(e)})}function K(){let{t:e}=(0,E.Bd)();return(0,o.jsx)(c.Suspense,{fallback:(0,o.jsx)(C.G,{className:W().routeLoading,label:e("composition.session.loading")}),children:(0,o.jsx)(Z,{})})}let Y=(0,n._)(j.A.TextArea);function Z(){let e=(0,N.useRouter)(),t=(0,N.useSearchParams)(),i=t.get("session"),n=t.get("state"),{t:d,i18n:u}=(0,E.Bd)(),p=(0,c.useCallback)((e,t)=>d((0,a.B)("composition",e),t),[d]),[S,k]=(0,c.useState)(R.mq),[j,U]=(0,c.useState)(null),[K,Z]=(0,c.useState)(!0),[Q,X]=(0,c.useState)({showHiddenNodes:!1,onionSkin:!1}),[ee,et]=(0,c.useState)(!1),[ei,eo]=(0,c.useState)(!0),[en,ea]=(0,c.useState)({id:0,type:"fit-frame"}),[er,es]=(0,c.useState)([]),[el,ec]=(0,c.useState)([]),[ed,eu]=(0,c.useState)(!1),ep=d("composition.planning",{returnObjects:!0}),[em,eg]=(0,c.useState)(null),ef=(0,c.useCallback)(e=>em?(0,T.MZ)(em,e):void 0,[em]),[eh,ey]=(0,c.useState)(null),[ev,eb]=(0,c.useState)(null),[ew,ex]=(0,c.useState)(null),[eS,ek]=(0,c.useState)(0),[eL,eC]=(0,c.useState)(),[ej,eI]=(0,c.useState)(!1),[e_,eN]=(0,c.useState)(!0),[eE,eR]=(0,c.useState)(!1),[eT,eA]=(0,c.useState)(null),[eP,eF]=(0,c.useState)(!1),[eM,eD]=(0,c.useState)(null),[eO,eH]=(0,c.useState)(!1),[eV,e$]=(0,c.useState)(!1),eG=(0,c.useRef)(0),ez=(0,c.useRef)(0),eB=(0,c.useRef)(null),eU=(0,c.useRef)(!1),eW=(0,c.useRef)(null),eq=(0,c.useRef)(null),eJ=(0,P.t)(em,e4,eS),eK=(0,B.S)(S,({draft:e})=>{eG.current+=1,eB.current=null,k(e),eI(!0),U(null),eF(!1),es([]),ec([])},e_||eU.current),eY=function(e){let{t}=(0,E.Bd)(),i=(0,N.useRouter)(),n=(0,c.useRef)(e);n.current=e;let[a,r]=(0,c.useState)(!1),[s,l]=(0,c.useState)([]),[d,u]=(0,c.useState)(null),[p,m]=(0,c.useState)([]),[g,f]=(0,c.useState)(null),[h,y]=(0,c.useState)(0),[v,b]=(0,c.useState)(!1),[w,x]=(0,c.useState)(null),[S,k]=(0,c.useState)(new Set),[L,C]=(0,c.useState)(0);async function j(e,t,i,o){let n=await fetch((0,T.J_)(t,i.id,o||void 0),{cache:"no-store"});if(!n.ok)throw Error("SPATIAL_CAMERA_NOT_FOUND");return(0,T.FX)(e,new File([await n.blob()],`${i.id}.png`,{type:"image/png"}))}async function I(){let e=p.find(e=>e.id===g);if(d&&e&&!v){b(!0),x(null);try{let t=n.current.sessionId,i=await n.current.ensureSession(),o=await j(i,d,e,h);if(n.current.sessionId!==i&&n.current.sessionId!==t)return;n.current.updateDraft(t=>{var i;let n,a,r;return(i={sessionId:d,cameraId:e.id,revision:h,assetId:o.id,width:e.width,height:e.height},n=320*Math.min(1,i.width/i.height),(r=(a=(0,H.xB)(t,{width:n/V.cq.width,height:n*i.height/i.width/V.cq.height})).draft.images.find(e=>e.id===a.id)).assetId=i.assetId,r.cameraReference={sessionId:i.sessionId,cameraId:i.cameraId,renderedRevision:i.revision},{...a,draft:(0,H.M6)(a.draft)}).draft}),r(!1)}catch{x(t("spatial.loadFailed"))}finally{b(!1)}}}return(0,c.useEffect)(()=>{if(!a)return;let e=!1;return b(!0),x(null),(0,T.GW)().then(t=>{e||l(t.filter(e=>"spatial"===e.sessionType))}).catch(()=>{e||x(t("spatial.loadFailed"))}).finally(()=>{e||b(!1)}),()=>{e=!0}},[a,L,t]),(0,c.useEffect)(()=>{if(!a||!d)return;let e=!1;return b(!0),x(null),m([]),f(null),(0,T.n8)(d).then(t=>{if(e)return;let i=t.at(-1),o=i?.draft.cameras??(0,$.wY)().cameras;m(o),f(o[0]?.id??null),y(i?.revision??0)}).catch(()=>{e||x(t("spatial.loadFailed"))}).finally(()=>{e||b(!1)}),()=>{e=!0}},[d,a,L,t]),(0,c.useEffect)(()=>{let t=e.sessionId;if(!t)return;let i=!1,o=!1;k(new Set);let a=async()=>{if(!o){o=!0;try{let e=new Map;for(let t of n.current.draft.images)t.cameraReference&&e.set(`${t.cameraReference.sessionId}/${t.cameraReference.cameraId}`,t);let o=new Set;for(let[a,r]of e){if(i)return;let e=r.cameraReference;try{let s=(await (0,T.n8)(e.sessionId)).at(-1),l=s?.revision??0,c=(s?.draft??(0,$.wY)()).cameras.find(t=>t.id===e.cameraId);if(!c){o.add(a);continue}if(l===e.renderedRevision&&r.assetId)continue;let d=await j(t,e.sessionId,c,l);if(i)return;n.current.updateDraft(t=>(function(e,t){return(0,H.M6)({...e,images:e.images.map(e=>{let i=e.cameraReference;return i&&i.sessionId===t.sessionId&&i.cameraId===t.cameraId?{...e,assetId:t.assetId,height:e.width*V.cq.width*t.height/t.width/V.cq.height,cameraReference:{...i,renderedRevision:t.revision}}:e})})})(t,{sessionId:e.sessionId,cameraId:c.id,revision:l,assetId:d.id,width:c.width,height:c.height}),!1)}catch{o.add(a)}}i||k(o)}finally{o=!1}}};a();let r=window.setInterval(()=>void a(),2e3);return()=>{i=!0,clearInterval(r)}},[e.sessionId]),{openPicker:()=>{u(null),m([]),f(null),r(!0)},picker:(0,o.jsx)(F.A,{closable:{"aria-label":t("actions.cancel"),disabled:v},title:t("spatial.addReference"),open:a,onCancel:()=>!v&&r(!1),onOk:()=>void I(),confirmLoading:v,okButtonProps:{disabled:!g||v},okText:t("actions.create"),cancelText:t("actions.cancel"),destroyOnHidden:!0,children:(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:16},children:[w&&(0,o.jsx)(M.A,{type:"error",message:w,action:(0,o.jsx)(O.J,{onClick:()=>C(e=>e+1),children:t("actions.retry")})}),(0,o.jsx)(D.A,{"aria-label":t("spatial.selectSpace"),placeholder:t("spatial.selectSpace"),value:d,loading:v,options:s.map(e=>({value:e.id,label:e.title})),notFoundContent:t("spatial.noSpaces"),onChange:u}),(0,o.jsx)(D.A,{"aria-label":t("spatial.selectCamera"),placeholder:t("spatial.selectCamera"),value:g,disabled:!d||v,options:p.map(e=>({value:e.id,label:e.name})),onChange:f}),d&&g&&(0,o.jsx)("img",{src:(0,T.J_)(d,g,h||void 0),alt:t("spatial.cameraView"),style:{width:"100%",maxHeight:260,objectFit:"contain"}})]})}),renderImageContent:a=>{let r=a.cameraReference,s=S.has(`${r.sessionId}/${r.cameraId}`);return(0,o.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[(0,o.jsx)("strong",{children:t("spatial.reference")}),s&&(0,o.jsx)(M.A,{type:"warning",message:t("spatial.sourceMissing")}),a.assetId&&e.sessionId&&(0,o.jsx)("img",{src:(0,T.MZ)(e.sessionId,a.assetId),alt:t("spatial.cameraView"),style:{width:"100%",maxHeight:280,objectFit:"contain"}}),(0,o.jsx)(O.J,{disabled:s,onClick:()=>i.push(`/spatial?session=${encodeURIComponent(r.sessionId)}&camera=${encodeURIComponent(r.cameraId)}`),children:t("spatial.openSource")}),(0,o.jsx)(O.J,{disabled:!a.assetId,onClick:()=>n.current.updateDraft(e=>(function(e,t){let i=e.images.find(e=>e.id===t);if(!i?.cameraReference||!i.assetId)throw Error("COMPOSITION_CAMERA_REFERENCE_REQUIRED");let o=(0,H.xB)(e),{cameraReference:n,...a}=i,r={...a,id:o.id,x:i.x+24/V.cq.width,y:i.y+24/V.cq.height};return o.draft.images[o.draft.images.findIndex(e=>e.id===o.id)]=r,{...o,draft:(0,H.M6)(o.draft)}})(e,a.id).draft),children:t("spatial.snapshot")})]})}}}({draft:S,sessionId:em,ensureSession:e4,updateDraft:e3}),eZ=!e_,eQ=(0,R.fQ)(S),eX=S.activeStateId??eQ[0].id,e0=(0,R.VC)(S),e1=er.filter(e=>e!==b.jZ),e8=[{key:"scene-composition",label:d("composition.mode.scene"),icon:(0,o.jsx)(r.A,{"aria-hidden":"true"})},{key:"editorial-layout",label:d("composition.mode.editorial"),icon:(0,o.jsx)(s.A,{"aria-hidden":"true"})},...S.processingSemantic?[]:[{key:"unselected",label:d("composition.mode.placeholder"),disabled:!0}]];function e2(e){eF(!1),U(t=>t===e?null:e)}async function e4(){if(em)return em;let t=eq.current??(0,T.$M)(d("composition.session.untitled"));eq.current=t;try{let i=await t;return eW.current=i.id,eg(i.id),ey(i.title),eb(i),ex(i.updatedAt),e.replace(`/composition?session=${encodeURIComponent(i.id)}`),i.id}finally{eq.current===t&&(eq.current=null)}}async function e6(e){let t=await e4();return(await (0,T.FX)(t,e)).id}function e3(e){let t=(0,R.M6)("function"==typeof e?e(eK.current()):e);eK.record(t)&&(eG.current+=1,eB.current=null,k(t),eI(!0))}function e5(e){ec(e),es([]),U(null)}function e9(e){ea(t=>({id:t.id+1,type:e}))}function e7(e){e3(e),U(null),es([]),ec([]),eF(!1),e9("fit-frame")}async function te(){let e=await eJ.readPromptLine();return(0,b.FU)(S,p,e)}async function tt(){eH(!0);try{if(!navigator.clipboard?.writeText)throw Error(d("clipboard.promptUnsupported"));await navigator.clipboard.writeText(await te()),eD({type:"success",message:d("clipboard.copied")})}catch(e){eD({type:"error",message:e instanceof Error&&e.message===d("clipboard.promptUnsupported")?e.message:d("clipboard.promptFailed")})}finally{eH(!1)}}async function ti(){e$(!0);try{let e=await (0,b.Nc)(S,em?e=>(0,T.MZ)(em,e):void 0);eD("downloaded"===e?{type:"warning",message:d("clipboard.previewDownloaded")}:{type:"success",message:d("clipboard.copied")})}catch{eD({type:"error",message:d("clipboard.previewFailed")})}finally{e$(!1)}}(0,c.useEffect)(()=>{if(!eM)return;let e=window.setTimeout(()=>eD(null),2e3);return()=>window.clearTimeout(e)},[eM]),(0,c.useEffect)(()=>{if(i&&i===eW.current){eW.current=null;return}if(U(null),ez.current+=1,eG.current=0,eU.current=!1,eB.current=null,eI(!1),!i){let e=(0,R.mq)();eK.reset(e),k(e),Z(!0),et(!1),eu(!1),e9("fit-frame"),es([]),ec([]),eg(null),ey(null),eb(null),ex(null),ek(0),eC(void 0),eA(null),eN(!1);return}let e=!1;return eN(!0),Z(!0),et(!1),eu(!1),eg(null),ey(null),eb(null),ex(null),eA(null),q(i).then(t=>{if(e)return;let i=t.draftVersion?.draft??(0,R.mq)();n&&(0,R.fQ)(i).some(e=>e.id===n)&&(i=(0,R.KZ)(i,n)),eK.reset(i),k(i),eg(t.session.id),ey(t.session.title),eb(t.session),ex(t.draftVersion?.createdAt??t.session.updatedAt),ek(t.draftVersion?.revision??0),eC(t.draftVersion?.styleProcessing);let o=i.areas[0]?.id??i.focusPoints[0]?.id;es(o?[o]:[]),ec([]),e9("fit-frame"),eI(!1),eA(null)}).catch(t=>{e||eA(J(t,d))}).finally(()=>{e||eN(!1)}),()=>{e=!0}},[i,n,d]),(0,c.useEffect)(()=>{let e=eG.current;if(eU.current||e_||eE||!ej||eB.current===e)return;let t=ez.current,i=window.setTimeout(()=>{(async()=>{eR(!0),eA(null);try{let i=em;if(!i&&(i=await e4(),t!==ez.current))return;let o=await (0,T.hU)(i,eS,S);if(t!==ez.current)return;eB.current=null,ek(o.revision),eC(o.styleProcessing),ex(o.createdAt),eG.current===e&&(k(o.draft),eI(!1))}catch(i){if(t!==ez.current)return;let e=i instanceof T.wP&&"DRAFT_REVISION_CONFLICT"===i.code?i.details.actualLatestRevision:null;"number"==typeof e&&Number.isInteger(e)?(eU.current=!0,eK.reset(eK.current()),ek(e)):eB.current=eG.current,eA(J(i,d))}finally{eR(!1)}})()},800);return()=>window.clearTimeout(i)},[ej,S,eS,e_,e,eE,em,d]),(0,c.useEffect)(()=>{if(!em||e_||ej||eE)return;let e=!1,t=eG.current,i=async()=>{try{let i=(await (0,T.he)(em)).at(-1);if(!e&&t===eG.current&&i&&i.revision>eS){eK.reset(i.draft),k(i.draft),ek(i.revision),eC(i.styleProcessing),ex(i.createdAt);let e=i.draft.areas[0]?.id??i.draft.focusPoints[0]?.id;es(e?[e]:[]),ec([]),eB.current=null,eA(null)}}catch(t){e||eA(J(t,d))}};i();let o=window.setInterval(()=>void i(),3e3);return()=>{e=!0,window.clearInterval(o)}},[ej,eS,e_,eE,em,d]);let to=(0,o.jsxs)("label",{className:W().overallNoteEditor,children:[(0,o.jsx)("span",{children:d("composition.globalNote.title")}),(0,o.jsx)(Y,{name:"overallNote",autoFocus:!0,autoSize:{minRows:4,maxRows:8},value:S.overallNote,placeholder:d("composition.globalNote.placeholder"),"aria-label":d("composition.globalNote.ariaLabel"),disabled:!eZ,onChange:e=>e3(t=>({...t,overallNote:e.target.value}))})]}),tn=(0,o.jsxs)("div",{className:W().toolGroups,role:"group","aria-label":d("canvas.tools.label"),"data-composition-tool-groups":!0,children:[(0,o.jsx)("div",{className:W().toolGroup,"data-composition-tool-group":"focus",children:(0,o.jsx)(w.u,{className:W().capacityTool,icon:(0,o.jsx)(l.A,{"aria-hidden":"true"}),label:d("composition.toolNames.focus"),description:d("composition.elementCapacity.compact",{current:S.focusPoints.length,limit:3}),"aria-label":d("composition.elementCapacity.ariaLabel",{label:d("composition.toolNames.focus"),current:S.focusPoints.length,limit:3}),disabled:!eZ||S.focusPoints.length>=3,"aria-current":"focus"===j||void 0,textColor:"focus"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("focus")})}),(0,o.jsx)("div",{className:W().toolGroup,"data-composition-tool-group":"direction",children:(0,o.jsx)(w.u,{className:W().capacityTool,icon:(0,o.jsx)(m,{rotate:-20,"aria-hidden":"true"}),label:d("composition.flow.label"),description:d("composition.elementCapacity.compact",{current:+!!S.directionLine,limit:1}),"aria-label":d("composition.elementCapacity.ariaLabel",{label:d("composition.flow.label"),current:+!!S.directionLine,limit:1}),disabled:!eZ||!!S.directionLine,"aria-current":"direction"===j||void 0,textColor:"direction"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("direction")})}),(0,o.jsxs)("div",{className:W().toolGroup,"data-composition-tool-group":"shapes",children:[(0,o.jsx)(w.u,{icon:(0,o.jsx)("span",{className:`${W().shapeToolIcon} ${W().circleToolIcon}`}),label:d("composition.toolNames.circle"),disabled:!eZ,"aria-current":"circle"===j||void 0,textColor:"circle"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("circle")}),(0,o.jsx)(w.u,{icon:(0,o.jsx)("span",{className:`${W().shapeToolIcon} ${W().triangleToolIcon}`}),label:d("composition.toolNames.triangle"),disabled:!eZ,"aria-current":"triangle"===j||void 0,textColor:"triangle"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("triangle")}),(0,o.jsx)(w.u,{icon:(0,o.jsx)("span",{className:`${W().shapeToolIcon} ${W().quadrilateralToolIcon}`}),label:d("composition.toolNames.quadrilateral"),disabled:!eZ,"aria-current":"quadrilateral"===j||void 0,textColor:"quadrilateral"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("quadrilateral")}),(0,o.jsx)(w.u,{icon:(0,o.jsx)(g.A,{"aria-hidden":"true"}),label:d("composition.toolNames.textRegion"),disabled:!eZ,"aria-current":"text"===j||void 0,textColor:"text"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("text")}),(0,o.jsx)(w.u,{icon:(0,o.jsx)(r.A,{"aria-hidden":"true"}),label:d("canvas.imageNode.label"),collapsedLabel:d("canvas.imageNode.add"),disabled:!eZ,"aria-current":"image"===j||void 0,textColor:"image"===j?"color.action.primary":"color.text.primary",onClick:()=>e2("image")}),(0,o.jsx)(w.u,{icon:(0,o.jsx)(f.A,{"aria-hidden":"true"}),label:d("spatial.reference"),collapsedLabel:d("spatial.addReference"),disabled:!eZ,onClick:eY.openPicker})]}),(0,o.jsx)("div",{className:W().toolGroup,"data-composition-tool-group":"overall-note",children:(0,o.jsx)(I.A,{content:to,trigger:"click",placement:"leftTop",open:eZ&&eP,onOpenChange:e=>eF(e&&eZ),children:(0,o.jsx)("span",{className:W().toolAction,children:(0,o.jsx)(w.u,{icon:(0,o.jsx)(h.A,{"aria-hidden":"true"}),label:d("notes.global.label"),disabled:!eZ})})})}),(0,o.jsxs)("div",{className:W().toolGroup,"data-composition-tool-group":"copy",children:[(0,o.jsx)("span",{className:W().toolGroupTitle,children:d("clipboard.group")}),(0,o.jsx)(b.ds,{readPrompt:te,label:d("clipboard.promptPreview"),loadingLabel:d("clipboard.promptPreviewLoading"),errorLabel:d("clipboard.promptPreviewFailed"),disabled:e_||eO,children:(0,o.jsx)(w.u,{icon:(0,o.jsx)(y.A,{"aria-hidden":"true"}),label:d("clipboard.copyPrompt"),loading:eO,disabled:e_,onClick:()=>void tt()})}),(0,o.jsx)(b.TQ,{draft:S,label:d("composition.views.referenceCanvas"),resolveImageSource:ef,disabled:e_,children:(0,o.jsx)(w.u,{icon:(0,o.jsx)(r.A,{"aria-hidden":"true"}),label:d("clipboard.copyPreview"),loading:eV,disabled:e_,onClick:()=>void ti()})})]})]});return(0,o.jsx)(G.o,{currentSessionId:i,onCurrentSessionRename:ey,title:eh??d("composition.session.new"),headerExtra:(0,o.jsx)(b.$o,{value:Q,onChange:X,hasMultipleStates:eQ.length>1,hasPreviousState:eQ.findIndex(e=>e.id===eX)>0,disabled:e_,labels:{showHiddenNodes:d("canvas.display.showHiddenNodes"),onionSkin:d("canvas.display.onionSkin")}}),rightPanelOpen:ei,onRightPanelOpenChange:eo,rightPanel:(0,o.jsxs)("div",{className:`${W().panel} ${e_?W().panelIsLoading:""}`,"data-canvas-editor":!0,children:[e_?(0,o.jsx)(C.G,{className:W().panelLoading,label:d("composition.session.loading"),compact:!0}):ei?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(b.J3,{primaryItem:{label:d("composition.mode.label"),value:(0,o.jsx)(L,{className:W().processingSemanticSwitch,value:S.processingSemantic??"unselected",items:e8,colors:{mode:"multicolor"},"aria-label":d("composition.mode.label"),disabled:!eZ,onChange:e=>{("scene-composition"===e||"editorial-layout"===e)&&e3(t=>(0,R.ET)(t,e))}})},secondaryItem:{label:d("composition.previewMode.label"),value:(0,o.jsx)(L,{className:W().processingSemanticSwitch,value:S.previewMode??"precise","aria-label":d("composition.previewMode.label"),disabled:!eZ,colors:{mode:"multicolor"},items:[{key:"precise",label:d("composition.previewMode.precise"),icon:(0,o.jsx)(l.A,{"aria-hidden":"true"})},{key:"soft",label:d("composition.previewMode.soft"),icon:(0,o.jsx)(r.A,{"aria-hidden":"true"})}],onChange:e=>{("precise"===e||"soft"===e)&&e3(t=>(0,R.QQ)(t,e))}})},createdAt:ev?.createdAt??null,updatedAt:ew,nodeCount:S.areas.length+S.images.length+S.focusPoints.length+ +!!S.directionLine,agentCommand:em?async()=>d("sessionDetails.agentCommand",{command:(0,z.m)(em,window.location.origin)}):null,locale:u.resolvedLanguage??u.language,labels:{title:d("sessionDetails.title"),created:d("sessionDetails.created"),updated:d("sessionDetails.updated"),nodes:d("sessionDetails.nodes"),agent:d("sessionDetails.agent"),copyCommand:d("sessionDetails.copyCommand"),copying:d("sessionDetails.copying"),copied:d("clipboard.copied"),copyFailed:d("sessionDetails.copyFailed"),emptyValue:d("sessionDetails.emptyValue")}}),(0,o.jsx)(A.H,{controller:eJ,category:"visual",processing:eL,disabled:e_||eE}),(0,o.jsxs)("section",{children:[(0,o.jsxs)("div",{className:W().sectionHeading,children:[(0,o.jsx)("h2",{children:d("canvas.tools.label")}),(0,o.jsx)("div",{className:W().sectionHeadingActions,children:(0,o.jsx)(_.A,{title:d("composition.clearCanvas"),children:(0,o.jsx)("span",{children:(0,o.jsx)(x.x,{type:"text",size:"small",icon:(0,o.jsx)(v.A,{"aria-hidden":"true"}),"aria-label":d("composition.clearCanvas"),title:d("composition.clearCanvasConfirmTitle"),description:d("composition.clearCanvasConfirmDescription"),confirmLabel:d("composition.clearCanvas"),cancelLabel:d("actions.cancel"),disabled:e_||eE||ed,onConfirm:function(){if(ed)return;let e=(0,R.mq)();eK.record(e),U(null),eG.current+=1,eB.current=null,k(e),Z(!0),et(!1),eu(!1),e9("fit-frame"),es([]),ec([]),eI(!0),eA(null)},"data-composition-clear-canvas-action":!0,children:null})})})})]}),tn]})]}):null,(0,o.jsx)(b.Sm,{frame:(0,R.i)(S.frame),name:d("composition.frameLabel"),locked:ee,disabled:!eZ,onLockedChange:et,onChange:e=>e3(t=>(0,R.co)(t,e)),labels:{reset:d("composition.frameReset"),lock:d("composition.lockFrame"),unlock:d("composition.unlockFrame"),size:d("dimensions.frameSize"),width:d("dimensions.width"),height:d("dimensions.height")}}),(0,o.jsx)(b.Cf,{draft:S,selectedIds:el,onSelect:e5,showPlanning:K,onShowPlanningChange:Z,locked:ed,onLockedChange:e=>{eu(e),ec([])},onDraftChange:e3,labels:ep,deleteLabel:d("actions.delete"),disabled:!eZ}),(0,o.jsxs)("section",{children:[(0,o.jsx)("h2",{children:d("composition.areaOverview")}),(0,o.jsxs)("dl",{className:W().metrics,children:[(0,o.jsxs)("div",{children:[(0,o.jsx)("dt",{children:d("composition.occupied")}),(0,o.jsxs)("dd",{children:[Math.round(100*e0.occupiedArea),"%"]})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("dt",{children:d("composition.negativeSpace")}),(0,o.jsxs)("dd",{children:[Math.round(100*e0.negativeSpace),"%"]})]}),(0,o.jsxs)("div",{children:[(0,o.jsx)("dt",{children:d("composition.currentSelection")}),(0,o.jsx)("dd",{children:e1.join(", ")||d("composition.none")})]})]})]})]}),children:(0,o.jsxs)("main",{className:W().page,"data-canvas-editor":!0,children:[eM?(0,o.jsx)("div",{className:`${W().deliveryNotice} ${"success"===eM.type?W().deliveryNoticeSuccess:"warning"===eM.type?W().deliveryNoticeWarning:W().deliveryNoticeError}`,role:"status",children:eM.message}):null,eT?(0,o.jsx)("p",{className:W().serviceError,role:"alert",children:eT}):null,(0,o.jsxs)("div",{className:W().workspace,children:[eY.picker,(0,o.jsxs)("section",{className:W().stage,"aria-label":d("composition.workspace"),children:[(0,o.jsx)(b.zr,{...eK,labels:{undo:d("canvasHistory.undo"),redo:d("canvasHistory.redo"),label:d("canvasHistory.label")}}),e_?(0,o.jsx)(C.G,{className:W().workspaceLoading,variant:"image",label:d("composition.session.loading")}):(0,o.jsx)(b.x8,{className:W().workflow,interactionResetKey:eK.restoreToken,draft:S,status:"waiting",activeView:"draft",onViewChange:()=>void 0,stateControls:(0,o.jsx)(b.SM,{items:eQ.map(e=>({id:e.id,label:e.name??d("uiSketch.states.defaultName",{number:e.number})})),value:eX,labels:{switch:d("canvasStates.switch"),add:d("uiSketch.views.enableMotion"),rename:d("actions.rename"),name:d("uiSketch.states.name"),new:d("uiSketch.states.new"),delete:d("uiSketch.states.delete"),cancel:d("actions.cancel"),actions:e=>d("uiSketch.states.actions",{name:e}),deleteTitle:e=>d("uiSketch.states.deleteTitle",{name:e})},onChange:e=>e7(t=>(0,R.KZ)(t,e)),onCreate:e=>{let t=crypto.randomUUID();e7(i=>(0,R.wG)(i,e,t))},onRename:(e,t)=>e3(i=>(0,R.uK)(i,e,t)),onReorder:e=>e3(t=>(0,R.yU)(t,e)),onDelete:e=>e7(t=>(0,R.PX)(t,e))}),showPlanning:K,...Q,visibilityLabels:{visibility:d("canvas.nodeVisibility.visibility"),visible:d("canvas.nodeVisibility.visible"),hidden:d("canvas.nodeVisibility.hidden")},selectedPlanIds:el,planningLocked:ed,onPlanSelectionChange:e5,planningLabels:ep,frameLocked:ee,frameLabels:{name:d("composition.frameLabel"),action:d("composition.frameAction")},canvasViewportAction:en,canvasBackgroundPattern:"dots",showCanvasViewportControls:!e_,canvasViewportLabels:{zoomOut:d("composition.zoomOut"),zoomIn:d("composition.zoomIn"),currentZoom:d("composition.canvasZoom"),fitAll:d("composition.fitAll"),help:d("canvas.viewport.help"),interactionHelp:`${d("canvas.viewport.instructions")} ${d("composition.textRegion.cornerHelp")}`,sideActions:d("canvas.tools.label"),collapseSideActions:d("composition.collapseTools"),expandSideActions:d("composition.expandTools")},canvasLayerLabels:{bringToFront:d("canvasLayers.bringToFront"),bringForward:d("canvasLayers.bringForward"),sendBackward:d("canvasLayers.sendBackward"),sendToBack:d("canvasLayers.sendToBack")},directionControlLabels:[d("composition.flow.controlPoint",{number:1}),d("composition.flow.controlPoint",{number:2})],nodeEditorLabels:{title:d("canvasNodeEditor.title"),note:d("notes.element.label"),notePlaceholder:d("notes.element.nodePlaceholder"),shotScale:d("composition.depth.label"),shotScaleAuto:d("composition.depth.auto"),shotScaleForeground:d("composition.depth.foreground"),shotScaleMidground:d("composition.depth.midground"),shotScaleBackground:d("composition.depth.background"),deleteNode:d("actions.deleteNode"),confirmDeleteNode:d("confirmations.deleteNode"),cancelDelete:d("actions.keep"),shapeKind:d("canvasNodeEditor.shapeKind"),pointKind:d("canvasNodeEditor.pointKind"),lineKind:d("composition.flow.label"),textKind:d("composition.toolNames.textRegion"),imageKind:d("canvas.imageNode.label"),nodeDescription:d("canvas.node.nodeDescription"),originUser:d("canvas.node.originUser"),originAgent:d("canvas.node.originAgent"),originImport:d("canvas.node.originImport")},areaEditorLabels:{lightSource:d("composition.lightSource.toggle"),displayText:d("textContent.label"),cornerLabel:d("composition.textRegion.cornerLabel",{index:"{{index}}"}),displayTextPlaceholder:d("textContent.compositionPlaceholder"),visualWeight:d("visualWeight.label"),weightAuto:d("visualWeight.auto"),weightHigh:d("visualWeight.high"),weightMedium:d("visualWeight.medium"),weightLow:d("visualWeight.low"),weightDecorative:d("visualWeight.decorative")},imageEditorLabels:{content:d("canvas.imageEditor.content"),upload:d("canvas.imageEditor.upload"),download:d("canvas.imageEditor.download"),downloading:d("canvas.imageEditor.downloading"),downloadFailed:d("canvas.imageEditor.downloadFailed"),replace:d("canvas.imageEditor.replace"),uploading:d("canvas.imageEditor.uploading"),uploadFailed:d("canvas.imageEditor.uploadFailed"),fileTypes:d("canvas.imageEditor.fileTypes"),cropTitle:d("canvas.imageCrop.title"),cropLoadFailed:d("canvas.imageCrop.loadFailed"),svgSource:d("canvas.imageEditor.svgSource"),svgPaste:d("canvas.imageEditor.svgPaste"),svgApply:d("canvas.imageEditor.svgApply"),svgSaveFailed:d("canvas.imageEditor.svgSaveFailed"),svgCopy:d("canvas.imageEditor.svgCopy"),svgCopying:d("canvas.imageEditor.svgCopying"),svgCopyFailed:d("canvas.imageEditor.svgCopyFailed"),sourceLoading:d("canvas.imageEditor.sourceLoading"),sourceLoadFailed:d("canvas.imageEditor.sourceLoadFailed"),svgCopied:d("clipboard.copied"),cancel:d("actions.cancel"),retry:d("actions.retry")},resolveImageSource:em?e=>(0,T.MZ)(em,e):void 0,renderCameraReference:eY.renderImageContent,onImageUpload:e6,onReadImageFile:T.MT,canvasSideActions:ei?void 0:tn,canvasSideActionPanelWidth:180,canvasSideActionPanelDefaultCollapsed:!0,selectedIds:er,onDraftChange:e3,placementTool:j,onPlacementToolChange:U,onSelectionChange:e=>{es(e),ec([])},labels:{draftView:d("composition.views.draft"),refinedView:d("composition.views.refined"),referenceView:d("composition.views.reference"),viewSwitch:d("composition.views.switch"),draftCanvas:d("composition.views.draftCanvas"),refinedCanvas:d("composition.views.refinedCanvas"),referenceCanvas:d("composition.views.referenceCanvas"),agentDecision:d("composition.workflow.agentDecision"),appliedMethods:d("composition.workflow.appliedMethods"),protectionAudit:d("composition.workflow.protectionAudit"),maximumFocusShift:d("composition.workflow.maximumFocusShift"),maximumAreaShift:d("composition.workflow.maximumAreaShift"),maximumRotationShift:d("composition.workflow.maximumRotationShift"),objective:d("composition.refinement.objective"),observations:d("composition.refinement.observations"),uncertainties:d("composition.refinement.uncertainties"),preserve:d("composition.refinement.preserve"),tradeoffs:d("composition.refinement.tradeoffs"),relations:d("composition.refinement.relations"),retained:d("composition.refinement.retained"),target:d("composition.refinement.target"),before:d("composition.refinement.before"),after:d("composition.refinement.after"),error:d("composition.refinement.error"),unmeasurable:d("composition.refinement.unmeasurable"),framePlacement:d("composition.refinement.framePlacement"),sizeRatio:d("composition.refinement.sizeRatio"),mirrorSymmetry:d("composition.refinement.mirrorSymmetry"),focusFlow:d("composition.refinement.focusFlow"),focusAnchor:d("composition.refinement.focusAnchor"),axisRelation:d("composition.refinement.axisRelation"),rotationAlignment:d("composition.refinement.rotationAlignment"),blockAlignment:d("composition.refinement.blockAlignment"),spacingRhythm:d("composition.refinement.spacingRhythm")}})]})]})]})})}}},e=>{e.O(0,[671,872,878,136,460,746,60,653,348,347,158,358],()=>e(e.s=52886)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[177],{20894:()=>{},53145:(e,n,t)=>{Promise.resolve().then(t.t.bind(t,20894,23)),Promise.resolve().then(t.bind(t,66999)),Promise.resolve().then(t.bind(t,42348)),Promise.resolve().then(t.bind(t,84954))},66999:(e,n,t)=>{"use strict";t.d(n,{YisiUiInspectorHost:()=>s});t(73365);t(98196),t(1521),t(27812);function s(){return null}},84954:(e,n,t)=>{"use strict";t.d(n,{AppI18nProvider:()=>o});var s=t(73365),i=t(1521),r=t(8020),l=t(91093);function o({children:e}){let[n]=(0,i.useState)(()=>(0,l.Gi)());return(0,i.useEffect)(()=>{function e(e){let t=(0,l.wl)(e);document.documentElement.lang=t,document.title=n.t("app.title",{lng:t})}return n.on("languageChanged",e),e(n.resolvedLanguage),()=>{n.off("languageChanged",e)}},[n]),(0,s.jsx)(r.xC,{i18n:n,children:e})}}},e=>{e.O(0,[671,611,872,878,460,746,60,653,348,347,158,358],()=>e(e.s=53145)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[665],{31854:(e,t,r)=>{"use strict";r.d(t,{t:()=>a});var n=r(1521),s=r(8020),i=r(60458);function a(e,t,r){let{t:a}=(0,s.Bd)(),[o,l]=(0,n.useState)(null),[u,c]=(0,n.useState)([]),[d,y]=(0,n.useState)(!0),[p,h]=(0,n.useState)(!1),[f,m]=(0,n.useState)(null),[b,g]=(0,n.useState)(0),w=(0,n.useRef)(e);w.current=e;let v=(0,n.useRef)(!1),S=(0,n.useRef)(0);async function L(r){if(v.current)return;v.current=!0,++S.current,h(!0),m(null);let n=e;try{if(n??=await t(),null!==w.current&&w.current!==n)return;let e=o?.session.id===n?o:await (0,i.YM)(n),s=await (0,i.T8)(n,r,e.session.revision);(w.current===n||null===w.current)&&l(s)}catch(e){throw(w.current===n||null===w.current)&&m(e instanceof i.wP&&409===e.status?a("sessionStyle.conflict"):a("errors.operationFailed")),e}finally{v.current=!1,h(!1),y(!1)}}async function x(){if(!e)return;let t=await (0,i.YM)(e);return t.style?a("sessionStyle.prompt",{summary:t.style.promptSummary}):void 0}return(0,n.useEffect)(()=>{let t=!1,r=!1;y(!0),m(null);let n=async()=>{if(r||v.current)return;r=!0;let n=++S.current;try{let[r,s]=await Promise.all([(0,i.X0)(),e?(0,i.YM)(e):Promise.resolve(null)]);if(t||n!==S.current)return;c(e=>JSON.stringify(e)===JSON.stringify(r)?e:r),l(e=>JSON.stringify(e)===JSON.stringify(s)?e:s),m(null)}catch{t||n!==S.current||m(a("styleLibrary.loadFailed"))}finally{r=!1,t||n!==S.current||y(!1)}};n();let s=window.setInterval(()=>void n(),3e3);return()=>{t=!0,window.clearInterval(s)}},[e,r,b,a]),{styles:u,currentStyle:o?.session.id===e?o.style:null,loading:d,saving:p,error:f,bind:L,readPromptLine:x,refresh:()=>g(e=>e+1)}}},46109:(e,t,r)=>{"use strict";function n(e){return{model:{label:e("styleLibrary.model.label"),loading:e("styleLibrary.model.loading"),failed:e("styleLibrary.model.failed"),reset:e("styleLibrary.model.reset"),controls:e("styleLibrary.model.controls"),retry:e("actions.retry")},newStyle:e("styleLibrary.newStyle"),editStyle:e("styleLibrary.editStyle"),name:e("styleLibrary.name"),namePlaceholder:e("styleLibrary.namePlaceholder"),category:e("styleLibrary.category.label"),allCategories:e("styleLibrary.category.all"),visualCategory:e("styleLibrary.category.visual"),uiCategory:e("styleLibrary.category.ui"),spatialCategory:e("styleLibrary.category.spatial"),creator:e("styleLibrary.creator.label"),allCreators:e("styleLibrary.creator.all"),userCreator:e("styleLibrary.creator.user"),agentCreator:e("styleLibrary.creator.agent"),references:e("styleLibrary.references.heading"),noReferences:e("styleLibrary.references.empty"),addReferences:e("styleLibrary.references.add"),removeReference:e("styleLibrary.references.remove"),pasteHint:e("styleLibrary.references.pasteHint"),fileTypes:e("styleLibrary.references.fileTypes"),description:e("styleLibrary.description.heading"),promptSummary:e("styleLibrary.promptSummary.label"),promptSummaryPlaceholder:e("styleLibrary.promptSummary.placeholder"),descriptionPlaceholder:e("styleLibrary.description.placeholder"),spatialDescriptionPlaceholder:e("styleLibrary.description.spatialPlaceholder"),searchPlaceholder:e("styleLibrary.searchPlaceholder"),deleteTitle:e("styleLibrary.deleteTitle"),deleteDescription:e("styleLibrary.deleteDescription"),empty:e("styleLibrary.empty"),noMatches:e("styleLibrary.noMatches"),loading:e("styleLibrary.loading"),loadFailed:e("styleLibrary.loadFailed"),retry:e("actions.retry"),save:e("styleLibrary.save"),cancel:e("actions.cancel"),delete:e("actions.delete"),operationFailed:e("errors.operationFailed"),imageInvalid:e("styleLibrary.imageInvalid"),openStyle:t=>e("styleLibrary.openStyle",{name:t}),closePreview:e("styleLibrary.closePreview")}}r.d(t,{Q:()=>n})},46295:(e,t,r)=>{"use strict";function n(e,t){let r=t?new URL(t).origin:null,n=`session connect --session ${e}`;return r?`human2ai --api-url ${r} --web-url ${r} ${n}`:`human2ai ${n}`}r.d(t,{m:()=>n})},48197:(e,t,r)=>{"use strict";r.d(t,{H:()=>l});var n=r(73365),s=r(59649),i=r(8020),a=r(60458),o=r(46109);function l({controller:e,category:t,processing:r,disabled:u,showProcessingStatus:c=!0}){let{t:d}=(0,i.Bd)(),y=e.currentStyle;return(0,n.jsx)(s.WL,{styles:e.styles,currentStyle:y,category:t,labels:{title:d("sessionStyle.label"),choose:d("sessionStyle.choose"),dialogTitle:d("sessionStyle.dialogTitle"),unbind:d("sessionStyle.unbind"),select:d("sessionStyle.select"),pending:d("sessionStyle.pending")},libraryLabels:(0,o.Q)(d),imageUrl:a.Pf,modelUrl:a.x,onBind:e.bind,onRetry:e.refresh,loading:e.loading,saving:e.saving,error:e.error,disabled:u,pending:c&&!!(y&&(r?.styleId!==y.id||r.styleRevision!==y.revision))})}},52003:(e,t,r)=>{"use strict";r.d(t,{S:()=>o});var n=r(1521);class s{constructor(e){this.past=[],this.future=[],this.current=structuredClone(e)}get canUndo(){return this.past.length>0}get canRedo(){return this.future.length>0}record(e,t,r=t,n){if(JSON.stringify(this.current)===JSON.stringify(e))return!1;let s=this.past.at(-1),i=structuredClone(e);return n&&s?.group===n?(s.after=i,s.afterContext=r,JSON.stringify(s.before)===JSON.stringify(i)&&this.past.pop()):(this.past.push({before:this.current,after:i,beforeContext:t,afterContext:r,group:n}),this.past.length>100&&this.past.shift()),this.current=i,this.future=[],!0}undo(){let e=this.past.pop();return e?(this.future.push(e),this.current=e.before,{draft:structuredClone(this.current),context:e.beforeContext}):null}redo(){let e=this.future.pop();return e?(this.past.push(e),this.current=e.after,{draft:structuredClone(this.current),context:e.afterContext}):null}reset(e){this.current=structuredClone(e),this.past=[],this.future=[]}synchronize(e){this.current=e}}function i(e){return e instanceof Element&&!!e.closest('textarea, input:not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), [contenteditable="true"], [role="textbox"]')}function a(e){return e===document.body||e instanceof Element&&!!e.closest("[data-canvas-editor], [data-human2ai-auto-save-node-editor]")}function o(e,t,r=!1){let[l]=(0,n.useState)(()=>new s(e)),[,u]=(0,n.useState)(0),[c,d]=(0,n.useState)(0),y=(0,n.useRef)({restore:t,disabled:r});y.current={restore:t,disabled:r};let p=(0,n.useRef)({}),h=(0,n.useRef)(new Map),f=(0,n.useMemo)(()=>{let e=()=>u(e=>e+1),t=()=>{for(let[e,t]of[...h.current])t.dispatchEvent(new PointerEvent("pointercancel",{pointerId:e,bubbles:!0}));h.current.clear(),p.current={}},r=r=>{if(y.current.disabled)return;t();let n=l[r]();n&&(y.current.restore(n),d(e=>e+1),e())};return{current:()=>l.current,synchronize(e){l.synchronize(e)},record(t,r,n=r){let s=p.current.pointer??p.current.text??p.current.key,i=l.record(t,r,n,s);return i&&e(),i},reset(r){t(),l.reset(r),d(e=>e+1),e()},undo:()=>r("undo"),redo:()=>r("redo")}},[l]);return(0,n.useEffect)(()=>{let e=e=>{a(e.target)&&e.target instanceof Element&&(h.current.set(e.pointerId,e.target),i(e.target)||(p.current.pointer=Symbol("pointer")))},t=e=>{h.current.delete(e.pointerId);let t=p.current.pointer;window.setTimeout(()=>{p.current.pointer===t&&(p.current.pointer=void 0)},0)},r=e=>{i(e.target)&&(p.current.text=Symbol("input"))},n=()=>{p.current.text=void 0},s=()=>{p.current={},h.current.clear()},o=e=>{if(e.isComposing||i(e.target)||!a(e.target))return;let t=e.key.toLowerCase();if((e.ctrlKey||e.metaKey)&&!e.altKey&&("z"===t||"y"===t)){if(y.current.disabled)return;e.preventDefault(),e.stopPropagation(),"y"===t||e.shiftKey?f.redo():f.undo()}else e.repeat||(p.current.key=Symbol("key"))},l=e=>{let t=p.current.key;i(e.target)||window.setTimeout(()=>{p.current.key===t&&(p.current.key=void 0)},0)};return window.addEventListener("pointerdown",e,!0),window.addEventListener("pointerup",t,!0),window.addEventListener("pointercancel",t,!0),window.addEventListener("focusin",r,!0),window.addEventListener("focusout",n,!0),window.addEventListener("keydown",o,!0),window.addEventListener("keyup",l,!0),window.addEventListener("blur",s),()=>{window.removeEventListener("pointerdown",e,!0),window.removeEventListener("pointerup",t,!0),window.removeEventListener("pointercancel",t,!0),window.removeEventListener("focusin",r,!0),window.removeEventListener("focusout",n,!0),window.removeEventListener("keydown",o,!0),window.removeEventListener("keyup",l,!0),window.removeEventListener("blur",s)}},[f]),{...f,restoreToken:c,canUndo:!r&&l.canUndo,canRedo:!r&&l.canRedo}}},64952:(e,t,r)=>{Promise.resolve().then(r.bind(r,91464))},91464:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>j});var n=r(73365),s=r(1521),i=r(29717),a=r(8020),o=r(59649),l=r(29415),u=r(95948),c=r(21071),d=r(42348),y=r(48197),p=r(60458),h=r(46295),f=r(52003),m=r(31854);class b{constructor(e,t){this.draft=e,this.revision=t,this.jobs=[],this.revisions=new Map,this.busy=!1,this.initial=e,t>0&&this.revisions.set((0,c.wU)(e),t)}get pending(){return this.jobs.length>0}edit(e,t){this.draft=t,this.jobs.push({operation:e,draft:t})}restore(e){this.draft=e,this.jobs.push({draft:e})}async flush(e,t){if(!this.busy&&this.pending){this.busy=!0;try{if(0===this.revision){let t=await e.saveInitial(this.initial);this.remember(this.initial,t)}for(;this.jobs.length;){let r,n=this.jobs[0];if(n.operation)r=await e.apply(this.revision,[n.operation]);else{let t=this.revisions.get((0,c.wU)(n.draft));if(void 0===t)throw Error("Missing saved spatial history snapshot");r=await e.restore(this.revision,t)}this.remember(n.draft,r),this.jobs.shift(),this.pending||(this.draft=r.draft),t(r)}}finally{this.busy=!1}}}remember(e,t){for(let r of(this.revision=t.revision,[(0,c.wU)(e),(0,c.wU)(t.draft)]))this.revisions.has(r)||this.revisions.set(r,t.revision)}}var g=r(22146),w=r(84910),v=r(28179),S=r(42621),L=r(23347),x=r(19204);class C{key(e,t,r="color",n=(0,v.Ls)(t)){let s="skeleton"===r?e.characters:[...e.characters,...e.objects],i=s.map(S.N),a=i;if("skeleton"!==r&&!("color"===r&&e.lightingEnabled)){let t=new w.PPD().setFromProjectionMatrix(new w.kn4().multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse)),o=JSON.stringify(i);if(this.snapshot?.key!==o){let t=s.map(t=>{let{name:r,note:n,...s}=t,i={...s,name:"",position:[0,0,0],rotation:[0,0,0],color:"#ffffff"},a=(0,x.d)(i),o=this.bounds.get(a);if(!o){let t=(0,v.bh)({...e,characters:"bones"in i?[i]:[],objects:"bones"in i?[]:[i]});try{o=new w.NRn().setFromObject(t,!0)}finally{(0,v.en)(t)}this.bounds.set(a,o),this.bounds.size>256&&this.bounds.delete(this.bounds.keys().next().value)}let l=o.clone().applyMatrix4((0,L.NT)(t)),u=Math.max(...l.min.toArray().map(Math.abs),...l.max.toArray().map(Math.abs));return l.expandByScalar(Math.max(1e-5,476837158203125e-21*u))});this.snapshot={key:o,bounds:t}}let l=this.snapshot.bounds,u=l.map(e=>t.intersectsBox(e)),c="color"===r?l.flatMap((e,t)=>{if(!u[t])return[];let r=s[t],n=("bones"in r?r.height:Math.max(...r.size))*.025;return[e.clone().expandByScalar(1.026*n+1e-5)]}):[];a=i.filter((e,t)=>u[t]||c.some(e=>e.intersectsBox(l[t])))}return JSON.stringify(["spatial-image-1",e.version,r,t.position,t.target,t.projection,t.fov,t.span,t.width,t.height,t.background,n.projectionMatrix.elements,n.matrixWorldInverse.elements,"color"===r&&!!e.lightingEnabled,a])}constructor(){this.bounds=new Map}}let E=new C;function k(e,t,r){return{cameras:new Map(t.cameras.map(n=>[n.id,Object.fromEntries(g.mw.map(s=>{let i=E.key(t,n,s),a=e?.cameras.get(n.id)?.[s];return[s,a?.key===i?a:{key:i,revision:r}]}))]))}}var R=r(48511);function j(){let{t:e}=(0,a.Bd)();return(0,n.jsx)(s.Suspense,{fallback:(0,n.jsx)(u.G,{label:e("spatial.title")}),children:(0,n.jsx)(P,{})})}function P(){let{t:e,i18n:t}=(0,a.Bd)(),r=(0,i.useRouter)(),u=(0,i.useSearchParams)(),g=u.get("session"),[w,v]=(0,s.useState)(null),[S,L]=(0,s.useState)(!0),[x,C]=(0,s.useState)(()=>{try{return{showCameras:"false"!==window.localStorage.getItem("human2ai.spatial.showCameras"),showRig:"false"!==window.localStorage.getItem("human2ai.spatial.showRig")}}catch{}return{showCameras:!0,showRig:!0}}),[j,P]=(0,s.useState)(null),[M,q]=(0,s.useState)(c.wY),[I,O]=(0,s.useState)(0),[N,D]=(0,s.useState)(),F=(0,s.useMemo)(()=>new Map(c.mw.map(e=>[e,function(e,t,r="color"){let n=new Map;if(!e)return n;for(let s of t.cameras){let i=e.cameras.get(s.id)?.[r];i?.key===E.key(t,s,r)&&n.set(s.id,i.revision)}return n}(N,M,e)])),[N,M]),T=(0,m.t)(g,async()=>g,I),[J,z]=(0,s.useState)(!!g),[B,H]=(0,s.useState)(!1),[U,$]=(0,s.useState)(null),[_,A]=(0,s.useState)(!1),[Y,K]=(0,s.useState)(0),[V,W]=(0,s.useState)(null),[Q]=(0,s.useState)(()=>({queue:new b(M,0),busy:!1,stopped:!1})),G=(0,s.useRef)(Q),X=(0,f.S)(M,({draft:e})=>{G.current.queue.restore(e),q(e),A(!1)},!g||J||!!U),Z=(0,s.useRef)(()=>(0,c.wY)());Z.current=()=>{let t=(0,c.wY)();return t.cameras[0].name=e("spatial.camera",{number:1}),t};let ee=Object.fromEntries(Object.keys(R.spatial).map(t=>[t,e(`spatial.${t}`)])),et=(e,t)=>{C(r=>({...r,[e]:t}));try{window.localStorage.setItem(`human2ai.spatial.${e}`,String(t))}catch{}};(0,s.useEffect)(()=>{let e={queue:new b(Z.current(),0),busy:!1,stopped:!1};X.reset(e.queue.draft),G.current=e;let t=!1,r=!1;if($(null),P(null),z(!!g),H(!1),A(!1),D(void 0),q(e.queue.draft),O(0),W(null),!g){q(e.queue.draft),O(0);return}let n=t=>{e.queue=new b(t?.draft??Z.current(),t?.revision??0),X.reset(e.queue.draft),q(e.queue.draft),O(e.queue.revision),W(t?.createdAt??null),D(e=>t?k(e,t.draft,t.revision):void 0)};Promise.all([(0,p.Ht)(g),(0,p.zV)(g)]).then(([e,r])=>{if(!t){if("spatial"!==e.sessionType)throw Error("SESSION_TYPE_MISMATCH");P(e),n(r),z(!1)}}).catch(()=>{t||($("spatial.loadFailed"),e.stopped=!0,z(!1))});let s=t=>{(e.queue.pending||r)&&t.preventDefault()},i=async()=>{if(!e.busy&&!e.stopped&&(!t||e.queue.pending)&&(!document.hidden||e.queue.pending)){e.busy=!0;try{if(e.queue.pending)r=!0,t||H(!0),await e.queue.flush({saveInitial:e=>(0,p.rO)(g,0,e),apply:(e,t)=>(0,p.qz)(g,e,t),restore:(e,t)=>(0,p.ul)(g,e,t)},r=>{t||(O(r.revision),W(r.createdAt),q(e.queue.draft),$(null),D(e=>k(e,r.draft,r.revision)))});else{let r=await (0,p.zV)(g,e.queue.revision);if(t||e.queue.pending)return;r&&r.revision!==e.queue.revision&&n(r)}}catch(r){e.stopped=!0,t||$(r instanceof p.wP&&409===r.status?"spatial.conflict":"spatial.saveFailed")}finally{e.busy=!1,r=!1,t?e.queue.pending&&!e.stopped?i():window.removeEventListener("beforeunload",s):H(!1)}}},a=window.setInterval(()=>void i(),800),o=()=>{document.hidden||i()};return document.addEventListener("visibilitychange",o),window.addEventListener("beforeunload",s),()=>{t=!0,clearInterval(a),document.removeEventListener("visibilitychange",o),e.queue.pending&&!e.stopped?i():r||window.removeEventListener("beforeunload",s)}},[g,Y]);let er=(0,s.useCallback)(e=>P(t=>t?{...t,title:e}:t),[]);return(0,n.jsx)(d.o,{title:j?.title??e("spatial.title"),currentSessionId:g,onCurrentSessionRename:er,rightPanelOpen:S,onRightPanelOpenChange:L,rightPanel:g?(0,n.jsx)("div",{ref:v,className:"spatial-panel-host"}):void 0,children:g?(0,n.jsx)(o.Hx,{draft:M,initialCameraId:u.get("camera"),labels:ee,actions:{retry:e("actions.retry"),delete:e("actions.delete"),cancel:e("actions.cancel")},onOperation:e=>{if(g&&!J&&!G.current.stopped)try{let t=(0,c.bK)(G.current.queue.draft,[e]);if(!X.record(t.draft))return void A(t.constrained);G.current.queue.edit(e,t.draft),q(t.draft),A(t.constrained)}catch{A(!0)}},showCameras:x.showCameras,onShowCamerasChange:e=>et("showCameras",e),showRig:x.showRig,onShowRigChange:e=>et("showRig",e),panelHost:w,toolsLabel:e("canvas.tools.label"),noteLabel:e("notes.element.label"),copiedLabel:e("clipboard.copied"),onRequestProperties:()=>L(!0),loading:J,disabled:!!U||J,error:U?e(U):_?e("spatial.constrained"):null,onRetry:U?()=>{"spatial.saveFailed"===U?(G.current.stopped=!1,$(null)):K(e=>e+1)}:void 0,interactionResetKey:X.restoreToken,historyControls:(0,n.jsx)(o.zr,{...X,labels:{undo:e("canvasHistory.undo"),redo:e("canvasHistory.redo"),label:e("canvasHistory.label")}}),cameraSource:(e,t)=>{let r=F.get(t??"color")?.get(e);return J||U||j?.id!==g||!r?void 0:(0,p.J_)(g,e,r,t)},cameraBoxSource:(e,t,r)=>J||B||G.current.queue.pending||U||j?.id!==g||!(I>0)?void 0:(0,p.gk)(g,e,I,t,r),details:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(o.J3,{createdAt:j?.createdAt??null,updatedAt:V,nodeCount:M.characters.length+M.objects.length+M.cameras.length+(M.cameraBoxes?.length??0),locale:t.resolvedLanguage??"zh-CN",agentCommand:()=>Promise.resolve(e("sessionDetails.agentCommand",{command:(0,h.m)(g,window.location.origin)})),labels:{title:e("sessionDetails.title"),created:e("sessionDetails.created"),updated:e("sessionDetails.updated"),nodes:e("sessionDetails.nodes"),agent:e("sessionDetails.agent"),copyCommand:e("sessionDetails.copyCommand"),copying:e("sessionDetails.copying"),copied:e("clipboard.copied"),copyFailed:e("sessionDetails.copyFailed"),emptyValue:e("sessionDetails.emptyValue")}}),(0,n.jsx)(y.H,{controller:T,category:"spatial",showProcessingStatus:!1,disabled:J||B||!!U})]})},`${g}/${Y}`):(0,n.jsx)(l.J,{onClick:async()=>{let t=await (0,p.DZ)(e("spatial.untitled"));r.push(`/spatial?session=${encodeURIComponent(t.id)}`)},children:e("spatial.newSpace")})})}}},e=>{e.O(0,[671,872,878,460,746,60,653,348,347,158,358],()=>e(e.s=64952)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[376],{31854:(e,t,i)=>{"use strict";i.d(t,{t:()=>r});var n=i(1521),s=i(8020),a=i(60458);function r(e,t,i){let{t:r}=(0,s.Bd)(),[o,l]=(0,n.useState)(null),[c,d]=(0,n.useState)([]),[u,p]=(0,n.useState)(!0),[g,v]=(0,n.useState)(!1),[m,y]=(0,n.useState)(null),[h,f]=(0,n.useState)(0),b=(0,n.useRef)(e);b.current=e;let w=(0,n.useRef)(!1),S=(0,n.useRef)(0);async function L(i){if(w.current)return;w.current=!0,++S.current,v(!0),y(null);let n=e;try{if(n??=await t(),null!==b.current&&b.current!==n)return;let e=o?.session.id===n?o:await (0,a.YM)(n),s=await (0,a.T8)(n,i,e.session.revision);(b.current===n||null===b.current)&&l(s)}catch(e){throw(b.current===n||null===b.current)&&y(e instanceof a.wP&&409===e.status?r("sessionStyle.conflict"):r("errors.operationFailed")),e}finally{w.current=!1,v(!1),p(!1)}}async function k(){if(!e)return;let t=await (0,a.YM)(e);return t.style?r("sessionStyle.prompt",{summary:t.style.promptSummary}):void 0}return(0,n.useEffect)(()=>{let t=!1,i=!1;p(!0),y(null);let n=async()=>{if(i||w.current)return;i=!0;let n=++S.current;try{let[i,s]=await Promise.all([(0,a.X0)(),e?(0,a.YM)(e):Promise.resolve(null)]);if(t||n!==S.current)return;d(e=>JSON.stringify(e)===JSON.stringify(i)?e:i),l(e=>JSON.stringify(e)===JSON.stringify(s)?e:s),y(null)}catch{t||n!==S.current||y(r("styleLibrary.loadFailed"))}finally{i=!1,t||n!==S.current||p(!1)}};n();let s=window.setInterval(()=>void n(),3e3);return()=>{t=!0,window.clearInterval(s)}},[e,i,h,r]),{styles:c,currentStyle:o?.session.id===e?o.style:null,loading:u,saving:g,error:m,bind:L,readPromptLine:k,refresh:()=>f(e=>e+1)}}},42614:(e,t,i)=>{"use strict";i.d(t,{B:()=>r});let n={globalNoteHeading:"notes.global.promptHeading",note:"notes.element.prompt",displayText:"textContent.prompt",visualWeight:"visualWeight.prompt",weightAuto:"visualWeight.auto",weightHigh:"visualWeight.high",weightMedium:"visualWeight.medium",weightLow:"visualWeight.low",weightDecorative:"visualWeight.decorative"},s={planningHeading:"composition.planning.title",planningGoldenSection:"composition.planning.types.golden-section",planningThirds:"composition.planning.types.thirds",planningBoth:"composition.planning.both",planningHorizontal:"composition.planning.horizontal",planningVertical:"composition.planning.vertical",shotScale:"composition.depth.prompt",foreground:"composition.depth.foreground",midground:"composition.depth.midground",background:"composition.depth.background",processingSemantic:"composition.mode.prompt",previewMode:"composition.previewMode.prompt",precisePreview:"composition.previewMode.precise",softPreview:"composition.previewMode.soft",precisePreviewGuidance:"composition.previewMode.preciseGuidance",preciseLightGuidance:"composition.previewMode.preciseLightGuidance",sceneComposition:"composition.mode.scene",editorialLayout:"composition.mode.editorial",unselected:"composition.mode.unselected",unselectedGuidance:"composition.mode.unselectedGuidance",sceneGuidance:"composition.mode.sceneGuidance",editorialGuidance:"composition.mode.editorialGuidance",imageHeading:"canvas.imageNode.promptHeading",flowHeading:"composition.flow.promptHeading",flowReference:"composition.flow.promptReference"},a={stateName:"uiSketch.states.defaultName",visible:"canvas.nodeVisibility.visible",hidden:"canvas.nodeVisibility.hidden"};function r(e,t){return n[t]??("composition"===e?s[t]:a[t])??`${e}.prompt.${t}`}},46109:(e,t,i)=>{"use strict";function n(e){return{model:{label:e("styleLibrary.model.label"),loading:e("styleLibrary.model.loading"),failed:e("styleLibrary.model.failed"),reset:e("styleLibrary.model.reset"),controls:e("styleLibrary.model.controls"),retry:e("actions.retry")},newStyle:e("styleLibrary.newStyle"),editStyle:e("styleLibrary.editStyle"),name:e("styleLibrary.name"),namePlaceholder:e("styleLibrary.namePlaceholder"),category:e("styleLibrary.category.label"),allCategories:e("styleLibrary.category.all"),visualCategory:e("styleLibrary.category.visual"),uiCategory:e("styleLibrary.category.ui"),spatialCategory:e("styleLibrary.category.spatial"),creator:e("styleLibrary.creator.label"),allCreators:e("styleLibrary.creator.all"),userCreator:e("styleLibrary.creator.user"),agentCreator:e("styleLibrary.creator.agent"),references:e("styleLibrary.references.heading"),noReferences:e("styleLibrary.references.empty"),addReferences:e("styleLibrary.references.add"),removeReference:e("styleLibrary.references.remove"),pasteHint:e("styleLibrary.references.pasteHint"),fileTypes:e("styleLibrary.references.fileTypes"),description:e("styleLibrary.description.heading"),promptSummary:e("styleLibrary.promptSummary.label"),promptSummaryPlaceholder:e("styleLibrary.promptSummary.placeholder"),descriptionPlaceholder:e("styleLibrary.description.placeholder"),spatialDescriptionPlaceholder:e("styleLibrary.description.spatialPlaceholder"),searchPlaceholder:e("styleLibrary.searchPlaceholder"),deleteTitle:e("styleLibrary.deleteTitle"),deleteDescription:e("styleLibrary.deleteDescription"),empty:e("styleLibrary.empty"),noMatches:e("styleLibrary.noMatches"),loading:e("styleLibrary.loading"),loadFailed:e("styleLibrary.loadFailed"),retry:e("actions.retry"),save:e("styleLibrary.save"),cancel:e("actions.cancel"),delete:e("actions.delete"),operationFailed:e("errors.operationFailed"),imageInvalid:e("styleLibrary.imageInvalid"),openStyle:t=>e("styleLibrary.openStyle",{name:t}),closePreview:e("styleLibrary.closePreview")}}i.d(t,{Q:()=>n})},46295:(e,t,i)=>{"use strict";function n(e,t){let i=t?new URL(t).origin:null,n=`session connect --session ${e}`;return i?`human2ai --api-url ${i} --web-url ${i} ${n}`:`human2ai ${n}`}i.d(t,{m:()=>n})},48197:(e,t,i)=>{"use strict";i.d(t,{H:()=>l});var n=i(73365),s=i(59649),a=i(8020),r=i(60458),o=i(46109);function l({controller:e,category:t,processing:i,disabled:c,showProcessingStatus:d=!0}){let{t:u}=(0,a.Bd)(),p=e.currentStyle;return(0,n.jsx)(s.WL,{styles:e.styles,currentStyle:p,category:t,labels:{title:u("sessionStyle.label"),choose:u("sessionStyle.choose"),dialogTitle:u("sessionStyle.dialogTitle"),unbind:u("sessionStyle.unbind"),select:u("sessionStyle.select"),pending:u("sessionStyle.pending")},libraryLabels:(0,o.Q)(u),imageUrl:r.Pf,modelUrl:r.x,onBind:e.bind,onRetry:e.refresh,loading:e.loading,saving:e.saving,error:e.error,disabled:c,pending:d&&!!(p&&(i?.styleId!==p.id||i.styleRevision!==p.revision))})}},52003:(e,t,i)=>{"use strict";i.d(t,{S:()=>o});var n=i(1521);class s{constructor(e){this.past=[],this.future=[],this.current=structuredClone(e)}get canUndo(){return this.past.length>0}get canRedo(){return this.future.length>0}record(e,t,i=t,n){if(JSON.stringify(this.current)===JSON.stringify(e))return!1;let s=this.past.at(-1),a=structuredClone(e);return n&&s?.group===n?(s.after=a,s.afterContext=i,JSON.stringify(s.before)===JSON.stringify(a)&&this.past.pop()):(this.past.push({before:this.current,after:a,beforeContext:t,afterContext:i,group:n}),this.past.length>100&&this.past.shift()),this.current=a,this.future=[],!0}undo(){let e=this.past.pop();return e?(this.future.push(e),this.current=e.before,{draft:structuredClone(this.current),context:e.beforeContext}):null}redo(){let e=this.future.pop();return e?(this.past.push(e),this.current=e.after,{draft:structuredClone(this.current),context:e.afterContext}):null}reset(e){this.current=structuredClone(e),this.past=[],this.future=[]}synchronize(e){this.current=e}}function a(e){return e instanceof Element&&!!e.closest('textarea, input:not([type="button"]):not([type="checkbox"]):not([type="radio"]):not([type="range"]), [contenteditable="true"], [role="textbox"]')}function r(e){return e===document.body||e instanceof Element&&!!e.closest("[data-canvas-editor], [data-human2ai-auto-save-node-editor]")}function o(e,t,i=!1){let[l]=(0,n.useState)(()=>new s(e)),[,c]=(0,n.useState)(0),[d,u]=(0,n.useState)(0),p=(0,n.useRef)({restore:t,disabled:i});p.current={restore:t,disabled:i};let g=(0,n.useRef)({}),v=(0,n.useRef)(new Map),m=(0,n.useMemo)(()=>{let e=()=>c(e=>e+1),t=()=>{for(let[e,t]of[...v.current])t.dispatchEvent(new PointerEvent("pointercancel",{pointerId:e,bubbles:!0}));v.current.clear(),g.current={}},i=i=>{if(p.current.disabled)return;t();let n=l[i]();n&&(p.current.restore(n),u(e=>e+1),e())};return{current:()=>l.current,synchronize(e){l.synchronize(e)},record(t,i,n=i){let s=g.current.pointer??g.current.text??g.current.key,a=l.record(t,i,n,s);return a&&e(),a},reset(i){t(),l.reset(i),u(e=>e+1),e()},undo:()=>i("undo"),redo:()=>i("redo")}},[l]);return(0,n.useEffect)(()=>{let e=e=>{r(e.target)&&e.target instanceof Element&&(v.current.set(e.pointerId,e.target),a(e.target)||(g.current.pointer=Symbol("pointer")))},t=e=>{v.current.delete(e.pointerId);let t=g.current.pointer;window.setTimeout(()=>{g.current.pointer===t&&(g.current.pointer=void 0)},0)},i=e=>{a(e.target)&&(g.current.text=Symbol("input"))},n=()=>{g.current.text=void 0},s=()=>{g.current={},v.current.clear()},o=e=>{if(e.isComposing||a(e.target)||!r(e.target))return;let t=e.key.toLowerCase();if((e.ctrlKey||e.metaKey)&&!e.altKey&&("z"===t||"y"===t)){if(p.current.disabled)return;e.preventDefault(),e.stopPropagation(),"y"===t||e.shiftKey?m.redo():m.undo()}else e.repeat||(g.current.key=Symbol("key"))},l=e=>{let t=g.current.key;a(e.target)||window.setTimeout(()=>{g.current.key===t&&(g.current.key=void 0)},0)};return window.addEventListener("pointerdown",e,!0),window.addEventListener("pointerup",t,!0),window.addEventListener("pointercancel",t,!0),window.addEventListener("focusin",i,!0),window.addEventListener("focusout",n,!0),window.addEventListener("keydown",o,!0),window.addEventListener("keyup",l,!0),window.addEventListener("blur",s),()=>{window.removeEventListener("pointerdown",e,!0),window.removeEventListener("pointerup",t,!0),window.removeEventListener("pointercancel",t,!0),window.removeEventListener("focusin",i,!0),window.removeEventListener("focusout",n,!0),window.removeEventListener("keydown",o,!0),window.removeEventListener("keyup",l,!0),window.removeEventListener("blur",s)}},[m]),{...m,restoreToken:d,canUndo:!i&&l.canUndo,canRedo:!i&&l.canRedo}}},64081:e=>{e.exports={page:"page_page__BcSuz",routeLoading:"page_routeLoading__kkew_",workspaceLoading:"page_workspaceLoading__1orsz",panelLoading:"page_panelLoading__ffX8a",panel:"page_panel__7bViD",panelIsLoading:"page_panelIsLoading__zqWSa",canvas:"page_canvas__75Gnz",sectionHeading:"page_sectionHeading__plJXT",sectionHeadingActions:"page_sectionHeadingActions___cBZV",serviceError:"page_serviceError__Av5GF"}},69937:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>_});var n=i(73365),s=i(42614),a=i(59649),r=i(29415),o=i(95948),l=i(29717),c=i(1521),d=i(8020),u=i(48197);let p={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 144H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H212V212h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V160c0-8.8-7.2-16-16-16zm-52 268H612V212h200v200zM464 544H160c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H212V612h200v200zm452-268H560c-8.8 0-16 7.2-16 16v304c0 8.8 7.2 16 16 16h304c8.8 0 16-7.2 16-16V560c0-8.8-7.2-16-16-16zm-52 268H612V612h200v200z"}}]},name:"appstore",theme:"outlined"};var g=i(28630);function v(){return(v=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e}).apply(this,arguments)}let m=c.forwardRef((e,t)=>c.createElement(g.A,v({},e,{ref:t,icon:p})));var y=i(50052),h=i(1579),f=i(60458);function b({sessionId:e,onInsert:t,disabled:i=!1}){let{t:s}=(0,d.Bd)(),[a,r]=(0,c.useState)(!1);return(0,c.useEffect)(()=>r(!1),[e]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(y.u,{icon:(0,n.jsx)(m,{"aria-hidden":"true"}),label:s("sessionPreview.label"),collapsedLabel:s("sessionPreview.add"),disabled:i,onClick:()=>r(!0)}),a&&(0,n.jsx)(S,{sessionId:e,onCommit:t,onCancel:()=>r(!1)},e)]})}function w({sessionId:e,onReplace:t,...i}){return(0,n.jsx)(S,{...i,sessionId:e,onCommit:t})}function S({sessionId:e,onCommit:t,onCancel:i,image:s,title:o,actions:u,deleteAction:p,preview:g,onSnapshot:v}){let{t:m}=(0,d.Bd)(),y=(0,l.useRouter)(),[b,w]=(0,c.useState)(),[L,k]=(0,c.useState)(null),[P,C]=(0,c.useState)(!0),[x,I]=(0,c.useState)(!1),[E,R]=(0,c.useState)(!1),[T,N]=(0,c.useState)(!1),[F,j]=(0,c.useState)(0),_=(0,c.useRef)(0),H=(0,c.useRef)(t);H.current=t,(0,c.useLayoutEffect)(()=>()=>{_.current++},[e]),(0,c.useEffect)(()=>{let t=!1,i=!1,n=!1,s=async()=>{if(i){n=!0;return}i=!0;try{let[i,n,s]=e?await Promise.all([(0,f.Ht)(e),(0,f.t4)(e),(0,f.XO)()]):[null,[],[]];if(!t){let e={sources:n.filter(e=>e.outputs.length),groups:s.filter(e=>e.projectId===i?.projectId),projectRequired:!i?.projectId};w(t=>JSON.stringify(t)===JSON.stringify(e)?t:e),R(!1)}}catch{t||R(!0)}finally{i=!1,!t&&(C(!1),n&&(n=!1,s()))}};C(!0),s();let a=e?(0,f.GQ)(e,()=>void s()):void 0;return()=>{t=!0,a?.()}},[e,F]);let A=(0,c.useMemo)(()=>{if(!b)return[];let e=new Map(b.sources.map(({session:e,outputs:t})=>[e.id,{key:e.id,label:e.title,children:t.map(e=>({key:e.id,label:e.name??m("uiSketch.states.defaultName",{number:e.number})}))}])),t=new Set(b.groups.flatMap(e=>e.sessionIds)),i=b.groups.map(t=>({key:`group:${t.id}`,label:t.name,children:t.sessionIds.flatMap(t=>e.has(t)?[e.get(t)]:[])})),n=[...e.values()].filter(e=>!t.has(e.key));return n.length&&i.push({key:"ungrouped",label:m("workspaceSidebar.ungroupedSessions"),children:n}),i},[b,m]),M=s?.previewReference,D=M&&("spatial"===M.sessionType?M.cameraId:M.stateId),z=A.find(e=>e.children?.some(e=>e.key===M?.sessionId)),O=L??(M&&z?[z.key,M.sessionId,D]:[]),V=b?.sources.find(e=>e.session.id===O[1]),$=V?.outputs.find(e=>e.id===O[2]),B=V&&$?"spatial"===V.session.sessionType?{sessionId:V.session.id,sessionType:"spatial",cameraId:$.id}:{sessionId:V.session.id,sessionType:V.session.sessionType,stateId:$.id}:void 0,G=!!(M&&b&&!b.sources.some(e=>e.session.id===M.sessionId&&e.outputs.some(e=>e.id===D))),U=e&&B?(0,f.Qk)(e,B):void 0,J=async t=>{if(!e)return;let n=++_.current;I(!0),N(!1);try{let a=await (0,f.mJ)(e,t);if(_.current!==n)return;H.current(a),s?k(null):i()}catch{_.current===n&&N(!0)}finally{_.current===n&&I(!1)}},W=(0,c.useMemo)(()=>({level:e=>m(["sessionPreview.group","sessionPreview.session","sessionPreview.output"][e-1]),search:m("sessionPreview.search"),searchPlaceholder:m("sessionPreview.search"),clearSearch:m("sessionPreview.clearSearch"),chooseParent:m("sessionPreview.chooseParent"),empty:m("sessionPreview.empty"),noChildren:m("sessionPreview.noChildren"),loading:m("sessionPreview.loading"),descendantMatches:e=>m("sessionPreview.descendantMatches",{count:e}),searchResults:e=>m("sessionPreview.searchResults",{count:e})}),[m]);return(0,n.jsx)(a.Zz,{open:!0,mode:s?"edit":"create",title:o,labels:{label:m("sessionPreview.label"),group:m("sessionPreview.group"),session:m("sessionPreview.session"),output:m("sessionPreview.output"),projectRequired:m("sessionPreview.projectRequired"),cancel:m("actions.cancel"),create:m("actions.create"),retry:m("actions.retry")},selectorLabels:W,options:A,value:O,onChange:e=>{if(_.current++,k(e),N(!1),I(!1),!s||3!==e.length)return;let t=b?.sources.find(t=>t.session.id===e[1]);if(!t?.outputs.some(t=>t.id===e[2]))return;let i="spatial"===t.session.sessionType?{sessionId:e[1],sessionType:"spatial",cameraId:e[2]}:{sessionId:e[1],sessionType:t.session.sessionType,stateId:e[2]};M&&(0,h.R)(i)===(0,h.R)(M)||J(i)},loading:P,saving:x,projectRequired:b?.projectRequired,error:E||T?m("sessionPreview.failed"):void 0,warning:G?m("sessionPreview.unavailable"):void 0,previewUrl:U,preview:s?g:U&&(0,n.jsx)("img",{src:U,alt:m("sessionPreview.label"),draggable:!1,onError:()=>N(!0)},`${U}:${F}`),actions:u,deleteAction:p,previewActions:(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.J,{disabled:!B||x,onClick:()=>{if(!B)return;let e="spatial"===B.sessionType?"spatial":"ui-layout"===B.sessionType?"ui-sketch":"composition";y.push(`/${e}?session=${encodeURIComponent(B.sessionId)}&${"spatial"===B.sessionType?"camera":"state"}=${encodeURIComponent($.id)}`)},children:m("sessionPreview.openSource")}),s&&(0,n.jsx)(r.J,{disabled:!s.assetId||x,onClick:v,children:m("spatial.snapshot")})]}),onRetry:()=>{s&&T&&B?J(B):(N(!1),j(e=>e+1))},onCancel:()=>{_.current++,i()},onInsert:()=>{B&&!x&&J(B)}})}var L=i(755);async function k(e,t){let i=(await (0,f.t4)(e)).find(e=>e.session.id===t),n=i?.outputs[0];if(!i||!n)throw Error("SESSION_PREVIEW_UNAVAILABLE");return"spatial"===i.session.sessionType?{sessionId:t,sessionType:"spatial",cameraId:n.id}:{sessionId:t,sessionType:i.session.sessionType,stateId:n.id}}async function P(e,t){return(0,f.Qk)(e,await k(e,t))}async function C(e,t){return(0,f.mJ)(e,await k(e,t))}var x=i(31854),I=i(42348),E=i(46295),R=i(52003),T=i(64081),N=i.n(T);async function F(e){let t=await (0,f.Ht)(e);if("ui-layout"!==t.sessionType)throw Error("SESSION_TYPE_MISMATCH");let i=(await (0,f.dH)(e)).at(-1);return{session:t,draft:i?.draft??(0,a.LE)(a.yP),revision:i?.revision??0,lastModifiedAt:i?.createdAt??t.updatedAt,styleProcessing:i?.styleProcessing}}function j(e,t){return e instanceof f.wP?"DRAFT_REVISION_CONFLICT"===e.code?t("uiSketch.session.revisionConflict",{revision:e.details.actualLatestRevision}):"HTTP_404"===e.code?t("uiSketch.session.serviceOutdated"):t("errors.serviceSync",{message:e.message}):e instanceof Error&&"SESSION_TYPE_MISMATCH"===e.message?t("uiSketch.session.typeMismatch"):t("errors.serviceSync",{message:e instanceof Error?e.message:String(e)})}function _(){let{t:e}=(0,d.Bd)();return(0,n.jsx)(c.Suspense,{fallback:(0,n.jsx)(o.G,{className:N().routeLoading,label:e("uiSketch.session.loading")}),children:(0,n.jsx)(H,{})})}function H(){let e=(0,l.useRouter)(),t=(0,l.useSearchParams)(),i=t.get("session"),p=t.get("state"),{t:g,i18n:v}=(0,d.Bd)(),m=(0,c.useCallback)((e,t)=>g((0,s.B)("uiSketch",e),t),[g]),[y,h]=(0,c.useState)(()=>(0,a.LE)(a.yP)),[S,k]=(0,c.useState)(null),T=(0,c.useCallback)(e=>C(S,e),[S]),_=(0,c.useCallback)(e=>P(S,e),[S]),[H,A]=(0,c.useState)(null),[M,D]=(0,c.useState)(null),[z,O]=(0,c.useState)(null),[V,$]=(0,c.useState)(0),[B,G]=(0,c.useState)(),[U,J]=(0,c.useState)(!1),[W,K]=(0,c.useState)(!0),[Q,q]=(0,c.useState)(!1),[X,Y]=(0,c.useState)(!1),[Z,ee]=(0,c.useState)(0),[et,ei]=(0,c.useState)(null),[en,es]=(0,c.useState)(a.Ol),[ea,er]=(0,c.useState)(!0),[eo,el]=(0,c.useState)(!1),[ec,ed]=(0,c.useState)(null),[eu,ep]=(0,c.useState)(null),[eg,ev]=(0,c.useState)({showHiddenNodes:!1,onionSkin:!1}),em=(0,c.useRef)(0),ey=(0,c.useRef)(y),eh=(0,c.useRef)(0),ef=(0,c.useRef)(null),eb=(0,c.useRef)(!1),ew=(0,c.useRef)(null),eS=(0,c.useRef)(null),eL=(0,x.t)(S,eC,V),ek=(0,R.S)(y,({draft:e,context:t})=>{em.current+=1,ef.current=null,h(e),J(!0);let i=(0,a.wN)(e);es(i.some(e=>e.id===t)?t:i[0].id)},W||X||eb.current);function eP(e,t=en){let i="function"==typeof e?e(ek.current()):e,n=(0,a.wN)(i);ek.record(i,en,n.some(e=>e.id===t)?t:n[0].id)&&(em.current+=1,ef.current=null,h(i),J(!0))}async function eC(){if(S)return S;let t=eS.current??(0,f.vh)(g("uiSketch.session.untitled"));eS.current=t;try{let i=await t;return ew.current=i.id,k(i.id),A(i.title),D(i),O(i.updatedAt),e.replace(`/ui-sketch?session=${encodeURIComponent(i.id)}`),i.id}finally{eS.current===t&&(eS.current=null)}}async function ex(e){let t=await eC();return(await (0,f.FX)(t,e)).id}(0,c.useEffect)(()=>{if(i&&i===ew.current){ew.current=null;return}if(eh.current+=1,em.current=0,eb.current=!1,ef.current=null,J(!1),Y(!1),!i){let e=(0,a.LE)(a.yP);ek.reset(e),h(e),k(null),A(null),D(null),O(null),$(0),G(void 0),es(a.Ol),el(!1),ei(null),K(!1);return}let e=!1;return K(!0),k(null),A(null),D(null),O(null),el(!1),ei(null),F(i).then(t=>{e||(ek.reset(t.draft),ey.current=t.draft,h(t.draft),k(t.session.id),A(t.session.title),D(t.session),O(t.lastModifiedAt),$(t.revision),G(t.styleProcessing),es((0,a.wN)(t.draft).find(e=>e.id===p)?.id??(0,a.wN)(t.draft)[0].id),J(!1),ei(null))}).catch(t=>{e||(Y(!0),ei(j(t,g)))}).finally(()=>{e||K(!1)}),()=>{e=!0}},[Z,i,p,g]),(0,c.useEffect)(()=>{let e=em.current;if(eb.current||W||Q||!U||ef.current===e)return;let t=eh.current,i=window.setTimeout(()=>{(async()=>{q(!0),ei(null);try{let i=S;if(!i&&(i=await eC(),t!==eh.current))return;let n=await (0,f.VQ)(i,V,y);if(t!==eh.current)return;ef.current=null,$(n.revision),ey.current=n.draft,G(n.styleProcessing),O(n.createdAt),em.current===e&&(h(n.draft),J(!1))}catch(i){if(t!==eh.current)return;let e=i instanceof f.wP&&"DRAFT_REVISION_CONFLICT"===i.code?i.details.actualLatestRevision:null;if("number"==typeof e&&Number.isInteger(e)){let i=S?await (0,f.pu)(S).catch(()=>null):null;if(t!==eh.current)return;let n=i&&(0,L.sM)(ek.current(),ey.current,i.draft);if(i&&n){ey.current=i.draft,ek.synchronize(n),h(n),$(i.revision),O(i.createdAt);return}eb.current=!0,ek.reset(ek.current()),$(e)}ef.current=em.current,ei(j(i,g))}finally{q(!1)}})()},800);return()=>window.clearTimeout(i)},[U,y,V,W,e,Q,S,g]),(0,c.useEffect)(()=>{if(!S||W||Q)return;let e=!1,t=!1,i=em.current,n=async()=>{if(!t){t=!0;try{let t=await (0,f.pu)(S,V);if(!e&&t&&t.revision>V){let e=ey.current,n=(0,L.sM)(ek.current(),e,t.draft);if(n)ek.synchronize(n),h(i=>(0,L.sM)(i,e,t.draft)??i);else{if(U||i!==em.current)return;ek.reset(t.draft),h(t.draft),es((0,a.wN)(t.draft)[0].id)}ey.current=t.draft,$(t.revision),G(t.styleProcessing),O(t.createdAt),ef.current=null,ei(null)}}catch(t){e||ei(j(t,g))}finally{t=!1}}};n();let s=(0,f.GQ)(S,()=>void n()),r=window.setInterval(()=>void n(),3e3);return()=>{e=!0,s(),window.clearInterval(r)}},[U,V,W,Q,S,g]);let eI=(0,a.wN)(y),eE=eI.map(e=>({id:e.id,label:e.name??g("uiSketch.states.defaultName",{number:e.number})})),eR=eI.some(e=>e.id===en)?en:eI[0].id;return(0,n.jsx)(I.o,{currentSessionId:i,onCurrentSessionRename:A,title:H??g("uiSketch.session.new"),headerExtra:(0,n.jsx)(a.$o,{value:eg,onChange:ev,hasMultipleStates:eI.length>1,hasPreviousState:eI.findIndex(e=>e.id===eR)>0,disabled:W||X,labels:{showHiddenNodes:g("canvas.display.showHiddenNodes"),onionSkin:g("canvas.display.onionSkin")}}),rightPanelOpen:ea,onRightPanelOpenChange:er,rightPanel:(0,n.jsx)("div",{className:`${N().panel} ${W?N().panelIsLoading:""}`,"data-canvas-editor":!0,children:W?(0,n.jsx)(o.G,{className:N().panelLoading,label:g("uiSketch.session.loading"),compact:!0}):ea?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.J3,{createdAt:M?.createdAt??null,updatedAt:z,nodeCount:y.rectangles.length+y.texts.length+y.images.length,agentCommand:S?async()=>g("sessionDetails.agentCommand",{command:(0,E.m)(S,window.location.origin)}):null,locale:v.resolvedLanguage??v.language,labels:{title:g("sessionDetails.title"),created:g("sessionDetails.created"),updated:g("sessionDetails.updated"),nodes:g("sessionDetails.nodes"),agent:g("sessionDetails.agent"),copyCommand:g("sessionDetails.copyCommand"),copying:g("sessionDetails.copying"),copied:g("clipboard.copied"),copyFailed:g("sessionDetails.copyFailed"),emptyValue:g("sessionDetails.emptyValue")}}),(0,n.jsx)(u.H,{controller:eL,category:"ui",processing:B,disabled:W||Q}),(0,n.jsxs)("section",{children:[(0,n.jsxs)("div",{className:N().sectionHeading,children:[(0,n.jsx)("h2",{children:g("canvas.tools.label")}),(0,n.jsx)("div",{ref:ep,className:N().sectionHeadingActions})]}),(0,n.jsx)("div",{ref:ed})]}),(0,n.jsx)(a.Sm,{frame:y.frame,name:g("uiSketch.canvasLabels.frameRange"),locked:eo,disabled:X,onLockedChange:el,onChange:e=>eP(t=>({...t,frame:e})),labels:{reset:g("uiSketch.canvasLabels.resetFrame"),lock:g("uiSketch.canvasLabels.lockFrame"),unlock:g("uiSketch.canvasLabels.unlockFrame"),size:g("dimensions.frameSize"),width:g("dimensions.width"),height:g("dimensions.height")}})]}):null}),children:(0,n.jsxs)("div",{className:N().page,"data-canvas-editor":!0,"aria-busy":W||Q,children:[et?(0,n.jsxs)("div",{className:N().serviceError,role:"alert",children:[(0,n.jsx)("span",{children:et}),X?(0,n.jsx)(r.J,{size:"small",onClick:()=>ee(e=>e+1),children:g("actions.retry")}):null]}):null,W?(0,n.jsx)(o.G,{className:N().workspaceLoading,variant:"image",label:g("uiSketch.session.loading")}):X?null:(0,n.jsxs)(a.x8,{"data-active-stage":eR,stateControls:(0,n.jsx)(a.SM,{items:eE,value:eR,labels:{switch:g("uiSketch.views.switch"),add:g("uiSketch.views.enableMotion"),rename:g("actions.rename"),name:g("uiSketch.states.name"),new:g("uiSketch.states.new"),delete:g("uiSketch.states.delete"),cancel:g("actions.cancel"),actions:e=>g("uiSketch.states.actions",{name:e}),deleteTitle:e=>g("uiSketch.states.deleteTitle",{name:e})},onChange:es,onCreate:function(e){let t=crypto.randomUUID();eP(i=>(0,a.MH)(i,e,t),t),es(t)},onRename:(e,t)=>eP(i=>(0,a.kC)(i,e,t)),onDelete:function(e){let t=(0,a.wN)(y),i=t.findIndex(t=>t.id===e);if(t.length<2||i<0)return;let n=en===e?t[i+1]?.id??t[i-1].id:en;es(n),eP(t=>(0,a.vB)(t,e),n)},onReorder:e=>eP(t=>(0,a.Y$)(t,e))}),children:[(0,n.jsx)(a.zr,{...ek,labels:{undo:g("canvasHistory.undo"),redo:g("canvasHistory.redo"),label:g("canvasHistory.label")}}),(0,n.jsx)(a.NX,{sessionPreviewLabel:g("sessionPreview.label"),sessionPreviewFailedLabel:g("sessionPreview.failed"),onSessionPreviewDrop:S?T:void 0,loadSessionPreviewDragImage:S?_:void 0,renderSessionPreviewTool:e=>(0,n.jsx)(b,{sessionId:S,onInsert:e,disabled:W||X}),renderSessionPreviewEditor:e=>S?(0,n.jsx)(w,{sessionId:S,...e},`${S}:${e.image.id}`):null,className:N().canvas,interactionResetKey:ek.restoreToken,draft:y,activeStageId:eR,onDraftChange:eP,translatePrompt:m,resolveStylePrompt:eL.readPromptLine,toolHost:ea?ec:null,clearActionHost:ea?eu:null,...eg,showCanvasTools:!ea,canvasSideActionPanelDefaultCollapsed:!0,interfaceFrameLocked:eo,resolveImageSource:S?e=>(0,f.MZ)(S,e):void 0,onImageUpload:ex,onReadImageFile:f.MT,imageEditorLabels:{content:g("canvas.imageEditor.content"),upload:g("canvas.imageEditor.upload"),download:g("canvas.imageEditor.download"),downloading:g("canvas.imageEditor.downloading"),downloadFailed:g("canvas.imageEditor.downloadFailed"),replace:g("canvas.imageEditor.replace"),uploading:g("canvas.imageEditor.uploading"),uploadFailed:g("canvas.imageEditor.uploadFailed"),fileTypes:g("canvas.imageEditor.fileTypes"),cropTitle:g("canvas.imageCrop.title"),cropLoadFailed:g("canvas.imageCrop.loadFailed"),svgSource:g("canvas.imageEditor.svgSource"),svgPaste:g("canvas.imageEditor.svgPaste"),svgApply:g("canvas.imageEditor.svgApply"),svgSaveFailed:g("canvas.imageEditor.svgSaveFailed"),svgCopy:g("canvas.imageEditor.svgCopy"),svgCopying:g("canvas.imageEditor.svgCopying"),svgCopyFailed:g("canvas.imageEditor.svgCopyFailed"),sourceLoading:g("canvas.imageEditor.sourceLoading"),sourceLoadFailed:g("canvas.imageEditor.sourceLoadFailed"),svgCopied:g("clipboard.copied"),cancel:g("actions.cancel"),retry:g("actions.retry")},labels:{canvas:g("uiSketch.canvas"),canvasViewport:g("uiSketch.canvasLabels.canvasViewport"),scene:g("uiSketch.canvasLabels.scene"),region:g("uiSketch.canvasLabels.region"),addRegion:g("uiSketch.canvasLabels.addRegion"),text:g("uiSketch.canvasLabels.text"),addText:g("uiSketch.canvasLabels.addText"),image:g("canvas.imageNode.label"),addImage:g("canvas.imageNode.add"),newText:g("uiSketch.canvasLabels.newText"),overallNote:g("notes.global.label"),clearCanvas:g("uiSketch.canvasLabels.clearCanvas"),clearCanvasConfirmTitle:g("uiSketch.canvasLabels.clearCanvasConfirmTitle"),clearCanvasConfirmDescription:g("uiSketch.canvasLabels.clearCanvasConfirmDescription"),clearCanvasCancel:g("actions.cancel"),bringToFront:g("canvasLayers.bringToFront"),bringForward:g("canvasLayers.bringForward"),sendBackward:g("canvasLayers.sendBackward"),sendToBack:g("canvasLayers.sendToBack"),groupItems:g("uiSketch.canvasLabels.groupItems"),ungroupItems:g("uiSketch.canvasLabels.ungroupItems"),copyGroup:g("clipboard.group"),copyPrompt:g("clipboard.copyPrompt"),promptPreview:g("clipboard.promptPreview"),promptPreviewLoading:g("clipboard.promptPreviewLoading"),promptPreviewFailed:g("clipboard.promptPreviewFailed"),copySketch:g("clipboard.copyPreview"),previewImage:g("clipboard.previewImage"),copyAllStages:g("uiSketch.motion.copyPrompt"),overallNoteTitle:g("uiSketch.globalNote.title"),overallNotePlaceholder:g("uiSketch.globalNote.placeholder"),overallNoteAriaLabel:g("uiSketch.globalNote.ariaLabel"),fitFrame:g("uiSketch.canvasLabels.fitFrame"),interactionHelp:g("canvas.viewport.instructions"),sideActions:g("uiSketch.canvasLabels.sideActions"),collapseSideActions:g("uiSketch.canvasLabels.collapseSideActions"),expandSideActions:g("uiSketch.canvasLabels.expandSideActions"),frameAction:g("uiSketch.canvasLabels.frameAction"),frameRange:g("uiSketch.canvasLabels.frameRange"),missingRegionNote:g("uiSketch.canvasLabels.missingRegionNote"),editRegionNote:g("uiSketch.canvasLabels.editRegionNote"),editText:g("uiSketch.canvasLabels.editText"),nodeDescription:g("canvas.node.nodeDescription"),originUser:g("canvas.node.originUser"),originAgent:g("canvas.node.originAgent"),originImport:g("canvas.node.originImport"),note:g("notes.element.label"),textContent:g("textContent.label"),regionPlaceholder:g("notes.element.regionPlaceholder"),textPlaceholder:g("textContent.uiSketchPlaceholder"),textNotePlaceholder:g("notes.element.textPlaceholder"),imageNotePlaceholder:g("notes.element.nodePlaceholder"),shapeKind:g("canvasNodeEditor.shapeKind"),emptyText:g("uiSketch.canvasLabels.emptyText"),visualWeight:g("visualWeight.label"),visibility:g("canvas.nodeVisibility.visibility"),visible:g("canvas.nodeVisibility.visible"),hidden:g("canvas.nodeVisibility.hidden"),weightAuto:g("visualWeight.auto"),weightHigh:g("visualWeight.high"),weightMedium:g("visualWeight.medium"),weightLow:g("visualWeight.low"),weightDecorative:g("visualWeight.decorative"),fontSize:g("uiSketch.canvasLabels.fontSize"),decreaseFontSize:g("uiSketch.canvasLabels.decreaseFontSize"),increaseFontSize:g("uiSketch.canvasLabels.increaseFontSize"),cancel:g("actions.cancel"),deleteRegion:g("actions.deleteRegion"),deleteText:g("actions.deleteText"),deleteNode:g("actions.deleteNode"),confirmDeleteRegion:g("confirmations.deleteRegion"),confirmDeleteText:g("confirmations.deleteText"),confirmDeleteNode:g("confirmations.deleteNode"),cancelDelete:g("actions.keep"),promptUnsupported:g("clipboard.promptUnsupported"),promptCopied:g("clipboard.copied"),promptCopyFailed:g("clipboard.promptFailed"),sketchCopied:g("clipboard.copied"),sketchDownloaded:g("clipboard.previewDownloaded"),sketchCopyFailed:g("clipboard.previewFailed"),selectedItemsPrefix:g("uiSketch.canvasLabels.selectedItemsPrefix"),selectedItemsSuffix:g("uiSketch.canvasLabels.selectedItemsSuffix"),noSelection:g("uiSketch.canvasLabels.noSelection")},"aria-label":g("uiSketch.canvas")})]})]})})}},91967:(e,t,i)=>{Promise.resolve().then(i.bind(i,69937))}},e=>{e.O(0,[671,872,878,782,460,746,60,653,348,347,158,358],()=>e(e.s=91967)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[337],{24408:(e,s,_)=>{Promise.resolve().then(_.t.bind(_,57567,23))}},e=>{e.O(0,[347,158,358],()=>e(e.s=24408)),_N_E=e.O()}]);
@@ -1 +0,0 @@
1
- .page_page__BcSuz{position:relative;box-sizing:border-box;display:flex;height:100%;min-height:0;flex-direction:column;padding:var(--yisiui-space-3);color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-sans)}.page_routeLoading__kkew_{box-sizing:border-box;height:100vh;padding:var(--yisiui-surface-desktop-web-page-padding)}.page_panelLoading__ffX8a,.page_workspaceLoading__1orsz{box-sizing:border-box;width:100%}.page_panel__7bViD.page_panelIsLoading__zqWSa{grid-template-rows:minmax(0,1fr);align-content:stretch}.page_workspaceLoading__1orsz{min-height:0;flex:1 1 auto;padding:var(--yisiui-space-6)}.page_canvas__75Gnz{min-height:0;flex:1 1 auto}.page_panel__7bViD{display:grid;box-sizing:border-box;height:100%;align-content:start;gap:var(--yisiui-space-5);padding:var(--yisiui-space-5);overflow:auto}.page_panel__7bViD section+section{padding-top:var(--yisiui-space-5);border-top:1px solid var(--yisiui-color-border-subtle)}.page_panel__7bViD h2{margin:0 0 var(--yisiui-space-3);font-size:var(--yisiui-font-size-lg);line-height:var(--yisiui-font-line-height-tight)}.page_sectionHeading__plJXT{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-3);margin-bottom:var(--yisiui-space-3)}.page_sectionHeading__plJXT h2{margin:0}.page_sectionHeadingActions___cBZV{display:flex;align-items:center;gap:var(--yisiui-space-1)}.page_serviceError__Av5GF{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-4);margin:0 0 var(--yisiui-space-4);padding:var(--yisiui-space-3) var(--yisiui-space-4);color:var(--yisiui-color-status-danger);background:var(--yisiui-color-status-danger-bg);border:1px solid var(--yisiui-color-status-danger);border-radius:var(--yisiui-radius-md);font-size:var(--yisiui-font-size-sm)}@media (max-width:720px){.page_page__BcSuz{padding:var(--yisiui-space-4)}}
@@ -1,5 +0,0 @@
1
- :root{--yisiui-color-brand-primary:#16A34A;--yisiui-color-brand-primary-hover:#22C55E;--yisiui-color-brand-primary-active:#15803D;--yisiui-color-brand-primary-bg:#F0FDF4;--yisiui-color-brand-primary-bg-hover:#DCFCE7;--yisiui-color-brand-primary-text:#15803D;--yisiui-color-brand-on-primary:#FFFFFF;--yisiui-color-neutral-0:#FFFFFF;--yisiui-color-neutral-25:#FCFDFD;--yisiui-color-neutral-50:#F8FAF9;--yisiui-color-neutral-100:#F3F6F5;--yisiui-color-neutral-200:#E2E9E7;--yisiui-color-neutral-300:#C9D4D1;--yisiui-color-neutral-400:#ADBDB8;--yisiui-color-neutral-500:#7C918B;--yisiui-color-neutral-600:#586B6F;--yisiui-color-neutral-700:#48595C;--yisiui-color-neutral-800:#334448;--yisiui-color-neutral-900:#1F292B;--yisiui-color-paper-natural:#F2E3C4;--yisiui-color-paper-sage:#B9CA8B;--yisiui-color-paper-amber:#E4B653;--yisiui-color-paper-rose:#DC938B;--yisiui-color-paper-slate:#98A9B0;--yisiui-color-paper-sky:#87C3CC;--yisiui-color-paper-lavender:#B79BC8;--yisiui-color-paper-clay:#C9825D;--yisiui-color-status-success:#237804;--yisiui-color-status-success-bg:#F6FFED;--yisiui-color-status-warning:#AD4E00;--yisiui-color-status-warning-bg:#FFF7E6;--yisiui-color-status-danger:#CF1322;--yisiui-color-status-danger-bg:#FFF1F0;--yisiui-color-status-info:#48595C;--yisiui-color-status-info-bg:#F3F6F5;--yisiui-color-status-processing:#15803D;--yisiui-color-status-processing-bg:#F0FDF4;--yisiui-font-family-sans:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-font-family-mono:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,monospace;--yisiui-font-size-2xs:11px;--yisiui-font-size-xs:12px;--yisiui-font-size-sm:13px;--yisiui-font-size-md:14px;--yisiui-font-size-lg:16px;--yisiui-font-size-xl:20px;--yisiui-font-size-2xl:24px;--yisiui-font-size-reading:15px;--yisiui-font-size-display:28px;--yisiui-font-weight-regular:400;--yisiui-font-weight-medium:500;--yisiui-font-weight-semibold:600;--yisiui-font-weight-bold:700;--yisiui-font-line-height-tight:1.2;--yisiui-font-line-height-compact:1.35;--yisiui-font-line-height-normal:1.6;--yisiui-font-line-height-reading:1.9;--yisiui-font-letter-spacing-normal:0em;--yisiui-font-letter-spacing-label:0.04em;--yisiui-font-variant-numeric-tabular:tabular-nums;--yisiui-space-0:0px;--yisiui-space-1:4px;--yisiui-space-2:8px;--yisiui-space-3:12px;--yisiui-space-4:16px;--yisiui-space-5:20px;--yisiui-space-6:24px;--yisiui-space-8:32px;--yisiui-space-10:40px;--yisiui-radius-sm:6px;--yisiui-radius-md:8px;--yisiui-radius-lg:10px;--yisiui-radius-full:9999px;--yisiui-shadow-panel:0 16px 48px rgba(31,41,43,0.06);--yisiui-shadow-card:0 4px 12px rgba(31,41,43,0.04);--yisiui-shadow-raised:0 12px 30px rgba(31,41,43,0.12);--yisiui-motion-fast:120ms;--yisiui-motion-normal:180ms;--yisiui-motion-slow:240ms;--yisiui-color-text-primary:#1F292B;--yisiui-color-text-secondary:#48595C;--yisiui-color-text-muted:#586B6F;--yisiui-color-text-hint:#586B6F;--yisiui-color-text-placeholder:#586B6F;--yisiui-color-text-disabled:#7C918B;--yisiui-color-text-inverse:#FFFFFF;--yisiui-color-text-on-primary:#FFFFFF;--yisiui-color-border-default:#C9D4D1;--yisiui-color-border-subtle:#E2E9E7;--yisiui-color-border-control:#7C918B;--yisiui-color-border-interactive:#15803D;--yisiui-color-border-hover:#ADBDB8;--yisiui-color-border-focus:#15803D;--yisiui-color-border-disabled:#E2E9E7;--yisiui-color-border-error:#CF1322;--yisiui-color-border-warning:#AD4E00;--yisiui-color-border-success:#237804;--yisiui-color-surface-page:#F3F6F5;--yisiui-color-surface-panel:#FFFFFF;--yisiui-color-surface-soft:#F8FAF9;--yisiui-color-surface-code:#F8FAF9;--yisiui-color-surface-hover:#F8FAF9;--yisiui-color-surface-selected:#F0FDF4;--yisiui-color-surface-active:#DCFCE7;--yisiui-color-surface-disabled:#F3F6F5;--yisiui-color-surface-overlay:rgba(31,41,43,0.45);--yisiui-color-action-primary:#16A34A;--yisiui-color-action-primary-hover:#22C55E;--yisiui-color-action-primary-active:#15803D;--yisiui-color-action-secondary-hover:#F8FAF9;--yisiui-color-action-secondary-active:#F0FDF4;--yisiui-color-action-link:#15803D;--yisiui-color-action-link-hover:#15803D;--yisiui-color-action-link-active:#15803D;--yisiui-color-feedback-success:#237804;--yisiui-color-feedback-success-bg:#F6FFED;--yisiui-color-feedback-warning:#AD4E00;--yisiui-color-feedback-warning-bg:#FFF7E6;--yisiui-color-feedback-danger:#CF1322;--yisiui-color-feedback-danger-bg:#FFF1F0;--yisiui-color-feedback-error:#CF1322;--yisiui-color-feedback-error-bg:#FFF1F0;--yisiui-color-feedback-info:#48595C;--yisiui-color-feedback-info-bg:#F3F6F5;--yisiui-color-feedback-processing:#15803D;--yisiui-color-feedback-processing-bg:#F0FDF4;--yisiui-color-selection-background:#F0FDF4;--yisiui-color-selection-text:#15803D;--yisiui-typography-page-title-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-page-title-font-size:28px;--yisiui-typography-page-title-font-weight:700;--yisiui-typography-page-title-line-height:1.2;--yisiui-typography-page-title-letter-spacing:0em;--yisiui-typography-section-title-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-section-title-font-size:20px;--yisiui-typography-section-title-font-weight:600;--yisiui-typography-section-title-line-height:1.2;--yisiui-typography-section-title-letter-spacing:0em;--yisiui-typography-card-title-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-card-title-font-size:16px;--yisiui-typography-card-title-font-weight:600;--yisiui-typography-card-title-line-height:1.2;--yisiui-typography-card-title-letter-spacing:0em;--yisiui-typography-body-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-body-font-size:14px;--yisiui-typography-body-font-weight:400;--yisiui-typography-body-line-height:1.6;--yisiui-typography-body-letter-spacing:0em;--yisiui-typography-body-strong-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-body-strong-font-size:14px;--yisiui-typography-body-strong-font-weight:600;--yisiui-typography-body-strong-line-height:1.6;--yisiui-typography-body-strong-letter-spacing:0em;--yisiui-typography-body-small-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-body-small-font-size:13px;--yisiui-typography-body-small-font-weight:400;--yisiui-typography-body-small-line-height:1.35;--yisiui-typography-body-small-letter-spacing:0em;--yisiui-typography-label-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-label-font-size:12px;--yisiui-typography-label-font-weight:600;--yisiui-typography-label-line-height:1.35;--yisiui-typography-label-letter-spacing:0em;--yisiui-typography-kicker-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-kicker-font-size:11px;--yisiui-typography-kicker-font-weight:600;--yisiui-typography-kicker-line-height:1.35;--yisiui-typography-kicker-letter-spacing:0.04em;--yisiui-typography-status-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-status-font-size:11px;--yisiui-typography-status-line-height:1.35;--yisiui-typography-status-letter-spacing:0em;--yisiui-typography-button-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-button-font-size:14px;--yisiui-typography-button-font-weight:500;--yisiui-typography-button-line-height:1.35;--yisiui-typography-button-letter-spacing:0em;--yisiui-typography-meta-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-meta-font-size:12px;--yisiui-typography-meta-font-weight:400;--yisiui-typography-meta-line-height:1.35;--yisiui-typography-meta-letter-spacing:0em;--yisiui-typography-reading-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-reading-font-size:15px;--yisiui-typography-reading-font-weight:400;--yisiui-typography-reading-line-height:1.9;--yisiui-typography-reading-letter-spacing:0em;--yisiui-typography-code-font-family:SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,Liberation Mono,monospace;--yisiui-typography-code-font-size:12px;--yisiui-typography-code-font-weight:400;--yisiui-typography-code-line-height:1.6;--yisiui-typography-code-letter-spacing:0em;--yisiui-typography-numeric-font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;--yisiui-typography-numeric-font-size:24px;--yisiui-typography-numeric-font-weight:700;--yisiui-typography-numeric-line-height:1.2;--yisiui-typography-numeric-letter-spacing:0em;--yisiui-typography-numeric-font-variant-numeric:tabular-nums;--yisiui-theme-light-page:#F3F6F5;--yisiui-theme-light-panel:#FFFFFF;--yisiui-theme-light-text:#1F292B;--yisiui-theme-dark-page:#141414;--yisiui-theme-dark-panel:#1F1F1F;--yisiui-theme-dark-text:#F5F5F5;--yisiui-theme-dark-interactive:#22C55E;--yisiui-motion-text-speed-slow:0.6;--yisiui-motion-text-speed-medium:1;--yisiui-motion-text-speed-fast:1.6;--yisiui-surface-desktop-web-page-background:#F3F6F5;--yisiui-surface-desktop-web-content-background:#FFFFFF;--yisiui-surface-desktop-web-sidebar-width:280px;--yisiui-surface-desktop-web-content-max-width:1400px;--yisiui-surface-desktop-web-page-padding:24px;--yisiui-surface-desktop-web-section-gap:20px;--yisiui-surface-desktop-web-panel-padding:24px;--yisiui-component-button-height:36px;--yisiui-component-button-radius:8px;--yisiui-component-button-horizontal-padding:14px;--yisiui-component-input-height:36px;--yisiui-component-input-radius:8px;--yisiui-component-card-radius:8px;--yisiui-component-card-padding:20px;--yisiui-component-card-shadow:0 4px 12px rgba(31,41,43,0.04);--yisiui-component-status-light-background:#303030;--yisiui-component-status-light-green:#52C41A;--yisiui-component-status-light-yellow:#FADB14;--yisiui-component-status-light-yellow-on-light:#D0A003;--yisiui-component-status-light-red:#FF4D4F;--yisiui-component-border-scan-color:#22C55E;--yisiui-component-border-scan-duration:3200ms;--yisiui-component-border-scan-line-width:3px;--yisiui-component-text-shine-color:#FFFFFF;--yisiui-component-text-shine-beam-width:216px;--yisiui-component-text-shine-beam-angle:105deg;--yisiui-component-text-shine-base-velocity:96;--yisiui-component-writing-agent-main:#16A34A;--yisiui-component-writing-agent-logic:#722ED1;--yisiui-component-writing-agent-draft:#08979C;--yisiui-component-writing-agent-annotation:#C41D7F;--yisiui-component-writing-agent-support:#586B6F;--yisiui-component-content-graph-node-actor-fill:#F0FDF4;--yisiui-component-content-graph-node-actor-stroke:#15803D;--yisiui-component-content-graph-node-actor-text:#15803D;--yisiui-component-content-graph-node-event-fill:#F6FFED;--yisiui-component-content-graph-node-event-stroke:#389E0D;--yisiui-component-content-graph-node-event-text:#135200;--yisiui-component-content-graph-node-conflict-fill:#FFF7E6;--yisiui-component-content-graph-node-conflict-stroke:#D46B08;--yisiui-component-content-graph-node-conflict-text:#873800;--yisiui-component-content-graph-node-knowledge-fill:#E6FFFB;--yisiui-component-content-graph-node-knowledge-stroke:#08979C;--yisiui-component-content-graph-node-knowledge-text:#006D75;--yisiui-component-content-graph-node-rule-fill:#F9F0FF;--yisiui-component-content-graph-node-rule-stroke:#722ED1;--yisiui-component-content-graph-node-rule-text:#391085;--yisiui-component-content-graph-node-skeleton-fill:#F5F5F5;--yisiui-component-content-graph-node-skeleton-stroke:#8C8C8C;--yisiui-component-content-graph-node-skeleton-text:#434343;--yisiui-component-content-graph-node-default-fill:#F8FAF9;--yisiui-component-content-graph-node-default-stroke:#8B9BAE;--yisiui-component-content-graph-node-default-text:#1F292B;--yisiui-component-content-graph-edge-causal:#D46B08;--yisiui-component-content-graph-edge-conflict:#CF1322;--yisiui-component-content-graph-edge-state:#13A8A8;--yisiui-component-content-graph-edge-evidence:#389E0D;--yisiui-component-content-graph-edge-reader:#722ED1;--yisiui-component-content-graph-edge-timeline:#8C8C8C;--yisiui-component-content-graph-edge-default:#7A8CA3;--yisiui-component-content-graph-label-text:#48595C;--yisiui-component-content-graph-label-background:rgba(255,255,255,0.92);--yisiui-component-content-graph-label-border:rgba(122,140,163,0.32);--yisiui-component-content-graph-selection:#16A34A;--yisiui-component-focus-outline:#15803D;--yisiui-component-focus-outline-width:2px;--yisiui-theme-page:#F3F6F5;--yisiui-theme-panel:#FFFFFF;--yisiui-theme-text:#1F292B}[data-theme=dark]{--yisiui-theme-page:#141414;--yisiui-theme-panel:#1F1F1F;--yisiui-theme-text:#F5F5F5}[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text{position:relative;flex:0 0 auto;overflow:hidden;width:var(--yisiui-basic-button-collapsed-width,var(--yisiui-component-button-height));min-width:var(--yisiui-basic-button-collapsed-width,var(--yisiui-component-button-height));max-width:100%;transition:width var(--yisiui-motion-slow) ease-in-out,color var(--yisiui-motion-normal) ease-in-out,background-color var(--yisiui-motion-normal) ease-in-out,border-color var(--yisiui-motion-normal) ease-in-out,box-shadow var(--yisiui-motion-normal) ease-in-out}.yisi-basic-button-hover-text .yisi-basic-button-hover-icon,.yisi-basic-button-hover-text .yisi-basic-button-hover-label{position:absolute;top:50%;left:50%;width:-moz-max-content;width:max-content;max-width:none;pointer-events:none;transition:opacity var(--yisiui-motion-normal) ease-in-out,transform var(--yisiui-motion-slow) ease-in-out}.yisi-basic-button-hover-text .yisi-basic-button-hover-icon{display:inline-flex;justify-content:center;align-items:center;opacity:1;transform:translate(-50%,-50%) scale(1)}.yisi-basic-button-hover-text .yisi-basic-button-hover-label{opacity:0;white-space:nowrap;transform:translate(-50%,-50%) translateY(4px)}@media (hover:hover){[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):not(.yisi-basic-button-hover-block):hover{width:var(--yisiui-basic-button-expanded-width,var(--yisiui-component-button-height))}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):hover .yisi-basic-button-hover-icon{opacity:0;transform:translate(-50%,-50%) scale(.85)}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):hover .yisi-basic-button-hover-label{opacity:1;transform:translate(-50%,-50%) translateY(0)}}[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):not(.yisi-basic-button-hover-block):focus-visible{width:var(--yisiui-basic-button-expanded-width,var(--yisiui-component-button-height))}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):focus-visible .yisi-basic-button-hover-icon{opacity:0;transform:translate(-50%,-50%) scale(.85)}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):focus-visible .yisi-basic-button-hover-label{opacity:1;transform:translate(-50%,-50%) translateY(0)}@media (hover:none){[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading):not(.yisi-basic-button-hover-block){width:var(--yisiui-basic-button-expanded-width,var(--yisiui-component-button-height))}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading) .yisi-basic-button-hover-icon{opacity:0}.yisi-basic-button-hover-text:not(.yisi-basic-button-hover-disabled):not(.yisi-basic-button-hover-loading) .yisi-basic-button-hover-label{opacity:1;transform:translate(-50%,-50%)}}[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text.yisi-basic-button-hover-block{width:100%}@media (prefers-reduced-motion:reduce){.yisi-basic-button-hover-text .yisi-basic-button-hover-icon,.yisi-basic-button-hover-text .yisi-basic-button-hover-label,[data-yisiui-asset][data-yisiui-status].yisi-basic-button-hover-text{transition:none}}.yisi-action-button-feedback-icon{display:inline-flex}.yisi-action-button[data-action-status=success] .yisi-action-button-feedback-icon{animation:yisi-action-button-feedback-pop var(--yisiui-motion-normal) ease-out}.yisi-action-button[data-action-status=error] .yisi-action-button-feedback-icon{animation:yisi-action-button-feedback-shake var(--yisiui-motion-slow) ease-out}.yisi-action-button-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.yisi-action-button-motion-none .ant-btn-loading-icon .anticon,.yisi-action-button-motion-none .yisi-action-button-feedback-icon{animation:none}@keyframes yisi-action-button-feedback-pop{0%{transform:scale(.72)}70%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes yisi-action-button-feedback-shake{0%,to{transform:translateX(0)}35%{transform:translateX(-2px)}70%{transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){.yisi-action-button .ant-btn-loading-icon .anticon,.yisi-action-button .yisi-action-button-feedback-icon{animation:none}}.human2ai-canvas-image-editor-fields,.human2ai-canvas-image-editor-fields *{box-sizing:border-box}.human2ai-canvas-image-editor-fields{display:grid;min-width:0;gap:var(--yisiui-space-2)}.human2ai-canvas-image-editor-fields__heading{display:flex;min-width:0;align-items:baseline}.human2ai-canvas-image-editor-fields__actions{display:flex;flex-wrap:wrap;gap:var(--yisiui-space-2)}.human2ai-canvas-image-editor-fields__input{display:none}.human2ai-canvas-image-editor-fields__source{display:grid;min-width:0;gap:var(--yisiui-space-2)}.human2ai-canvas-image-editor-fields__source textarea{width:100%;min-width:0;max-height:320px;margin:0;overflow:auto;font-family:var(--yisiui-font-family-mono);font-size:var(--yisiui-font-size-sm)}.human2ai-canvas-image-editor-fields__hint{display:block;color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-sm)}.human2ai-canvas-image-editor-fields__preview-shell{display:grid;min-height:220px;place-items:center;margin-top:var(--yisiui-space-1);overflow:hidden;border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-md);background:var(--yisiui-color-surface-soft)}.human2ai-canvas-image-editor-fields__preview{position:relative;max-width:100%;max-height:360px;overflow:hidden;background:var(--yisiui-color-surface-panel);touch-action:none}.human2ai-canvas-image-editor-fields__preview img{position:absolute;inset:0;width:100%;height:100%;-o-object-fit:fill;object-fit:fill;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.human2ai-canvas-image-editor-fields__preview-status{display:grid;width:100%;min-height:220px;place-items:center;color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-lg)}.human2ai-canvas-image-editor-fields__crop-selection{position:absolute;z-index:1;border:2px solid var(--yisiui-color-action-primary);box-shadow:0 0 0 9999px color-mix(in srgb,var(--yisiui-color-text-primary) 48%,transparent);cursor:move;outline:none;touch-action:none}.human2ai-canvas-image-editor-fields__crop-selection:before{position:absolute;inset:0;background:linear-gradient(90deg,transparent 33.333%,rgb(255 255 255/68%) 0,rgb(255 255 255/68%) calc(33.333% + 1px),transparent calc(33.333% + 1px),transparent 66.666%,rgb(255 255 255/68%) 0,rgb(255 255 255/68%) calc(66.666% + 1px),transparent calc(66.666% + 1px)),linear-gradient(180deg,transparent 33.333%,rgb(255 255 255/68%) 0,rgb(255 255 255/68%) calc(33.333% + 1px),transparent calc(33.333% + 1px),transparent 66.666%,rgb(255 255 255/68%) 0,rgb(255 255 255/68%) calc(66.666% + 1px),transparent calc(66.666% + 1px));content:"";pointer-events:none}.human2ai-canvas-image-editor-fields__crop-selection:focus-visible{outline:var(--yisiui-component-focus-outline-width) solid var(--yisiui-component-focus-outline);outline-offset:3px}.human2ai-canvas-image-editor-fields__crop-handle{position:absolute;z-index:2;width:12px;height:12px;border:2px solid var(--yisiui-color-surface-panel);border-radius:2px;background:var(--yisiui-color-action-primary)}.human2ai-canvas-image-editor-fields__crop-handle[data-crop-handle=north-west]{top:-7px;left:-7px;cursor:nwse-resize}.human2ai-canvas-image-editor-fields__crop-handle[data-crop-handle=north-east]{top:-7px;right:-7px;cursor:nesw-resize}.human2ai-canvas-image-editor-fields__crop-handle[data-crop-handle=south-east]{right:-7px;bottom:-7px;cursor:nwse-resize}.human2ai-canvas-image-editor-fields__crop-handle[data-crop-handle=south-west]{bottom:-7px;left:-7px;cursor:nesw-resize}.yisi-text-mark-editor-modal:has([data-yisiui-asset="human2ai/canvas-image-editor-fields"]) .ant-modal{width:min(880px,calc(100vw - 32px))!important}@media (max-width:720px){.human2ai-canvas-image-editor-fields__preview-shell,.human2ai-canvas-image-editor-fields__preview-status{min-height:180px}}.human2ai-canvas-placement{cursor:crosshair}.human2ai-canvas-placement__preview{fill:color-mix(in srgb,var(--yisiui-component-focus-outline) 8%,transparent);stroke:var(--yisiui-component-focus-outline);stroke-width:var(--yisiui-component-focus-outline-width);stroke-dasharray:5 4;vector-effect:non-scaling-stroke;pointer-events:none}.human2ai-canvas-display-controls{display:flex;align-items:center;gap:var(--yisiui-space-1)}.human2ai-canvas-onion-skin{opacity:.22;pointer-events:none}.human2ai-canvas-onion-skin.human2ai-canvas-onion-skin *{pointer-events:none}.human2ai-canvas-node-editor,.human2ai-canvas-node-editor *{box-sizing:border-box}.human2ai-canvas-node-editor{display:grid;gap:var(--yisiui-space-3)}.human2ai-canvas-node-editor__title{display:flex;align-items:center;justify-content:flex-start;gap:var(--yisiui-space-2);padding-inline-end:var(--yisiui-space-6)}.human2ai-canvas-node-editor__title>.ant-switch{flex-shrink:0}.human2ai-canvas-node-editor__heading{display:inline-flex;min-width:0;align-items:center;gap:var(--yisiui-space-2)}.human2ai-canvas-node-editor__primary-fields{display:grid;min-width:0;align-content:start;gap:var(--yisiui-space-3)}.human2ai-canvas-node-editor__side-fields{min-width:0}.human2ai-canvas-node-editor__origin{display:inline-flex;flex-shrink:0;align-items:center;min-height:20px;padding:0 var(--yisiui-space-2);color:var(--yisiui-color-text-secondary);background:var(--yisiui-color-surface-soft);border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-sm);font-family:var(--yisiui-font-family-mono);font-size:var(--yisiui-font-size-xs);font-weight:var(--yisiui-font-weight-regular);line-height:var(--yisiui-font-line-height-normal)}.human2ai-canvas-node-editor__description{margin:0;white-space:pre-wrap}.human2ai-canvas-node-editor[data-node-kind=image]{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);align-items:start;-moz-column-gap:var(--yisiui-space-6);column-gap:var(--yisiui-space-6)}.human2ai-canvas-node-editor__properties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;-moz-column-gap:var(--yisiui-space-6);column-gap:var(--yisiui-space-6);row-gap:var(--yisiui-space-3)}.human2ai-canvas-node-editor__properties>*{min-width:0}.human2ai-canvas-node-editor[data-node-kind=image] .human2ai-canvas-node-editor__properties{grid-template-columns:repeat(2,minmax(0,1fr))}.yisi-text-mark-editor-modal:has(.human2ai-canvas-node-editor[data-node-kind=image]) .ant-modal{width:min(880px,calc(100vw - 32px))!important}.human2ai-canvas-node-editor__properties>*>:last-child{width:auto;justify-self:start}.human2ai-canvas-node-editor__properties .human2ai-canvas-node-editor__property-select{width:100%;min-width:min(140px,100%)}.yisi-text-mark-editor-modal:has([data-human2ai-auto-save-node-editor]) .yisi-text-mark-editor-actions>button:last-child,.yisi-text-mark-editor-modal:has([data-human2ai-auto-save-node-editor]) .yisi-text-mark-editor-actions>button:nth-last-child(2),.yisi-text-mark-editor-modal:has([data-human2ai-auto-save-node-editor]) .yisi-text-mark-editor-context{display:none}.yisi-text-mark-editor-modal:has([data-human2ai-auto-save-node-editor]) .yisi-text-mark-editor[data-has-delete=false] .yisi-text-mark-editor-actions{display:none}@media (max-width:640px){.human2ai-canvas-node-editor[data-node-kind=image],.human2ai-canvas-node-editor__properties{grid-template-columns:1fr}}.yisi-side-action-panel{box-sizing:border-box;display:flex;max-width:100%;min-width:0;min-height:0;flex-direction:column;overflow:hidden;border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-md);background:var(--yisiui-color-surface-panel);box-shadow:var(--yisiui-shadow-card);transition:width var(--yisiui-motion-normal)}.yisi-side-action-panel-header{flex:0 0 auto;padding:var(--yisiui-space-3)}.yisi-side-action-panel-header,.yisi-side-action-panel-tools{display:flex;min-width:0;align-items:center;gap:var(--yisiui-space-1)}.yisi-side-action-panel-tools{flex:1 1 auto;overflow:hidden}.yisi-side-action-panel-toggle.ant-btn,.yisi-side-action-panel-tools>.ant-btn{width:var(--yisiui-space-8);height:var(--yisiui-space-8);flex:0 0 var(--yisiui-space-8);padding:0}.yisi-side-action-panel-toggle.ant-btn{margin-inline-start:auto;color:var(--yisiui-color-text-secondary)}.yisi-side-action-panel--collapsed .yisi-side-action-panel-header{justify-content:center;padding-inline:var(--yisiui-space-2)}.yisi-side-action-panel--collapsed .yisi-side-action-panel-tools{display:none}.yisi-side-action-panel-actions{display:flex;min-width:0;flex-direction:column;gap:var(--yisiui-space-1);padding:0 var(--yisiui-space-3) var(--yisiui-space-3)}.yisi-side-action-panel-story-frame{display:flex;width:220px;height:400px;align-items:flex-start}@media (prefers-reduced-motion:reduce){.yisi-side-action-panel{transition:none}}.yisi-composite-button{box-sizing:border-box;display:flex;position:relative;width:100%;min-width:0;align-items:center;border:none;border-radius:var(--yisiui-radius-sm);background:transparent;box-shadow:none;transition:background-color var(--yisiui-motion-fast)}.yisi-composite-button:focus-within,.yisi-composite-button:hover{background:color-mix(in srgb,var(--yisiui-color-surface-panel) 78%,transparent)}.yisi-composite-button--collapsed{justify-content:center}.yisi-composite-button--collapsed .yisi-composite-button-main.ant-btn{width:var(--yisiui-space-6);min-width:var(--yisiui-space-6);height:var(--yisiui-space-6);flex:0 0 var(--yisiui-space-6);justify-content:center;padding:0}.yisi-composite-button-main.ant-btn{min-width:0;flex:1 1 auto;justify-content:flex-start;width:auto;padding-inline:var(--yisiui-space-2);border:none;background:transparent;box-shadow:none;text-align:left;transition:none}.yisi-composite-button-label.ant-typography,.yisi-composite-button-main.ant-btn .ant-btn-content{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yisi-composite-button-label.ant-typography{font-family:var(--yisiui-typography-button-font-family);font-size:var(--yisiui-typography-button-font-size);font-weight:var(--yisiui-typography-button-font-weight);line-height:var(--yisiui-typography-button-line-height);letter-spacing:var(--yisiui-typography-button-letter-spacing)}.yisi-composite-button-main.ant-btn:active,.yisi-composite-button-main.ant-btn:focus,.yisi-composite-button-main.ant-btn:hover,.yisi-composite-button-main.ant-btn:not(:disabled):not(.ant-btn-disabled):hover{border:none;background:transparent;color:inherit;box-shadow:none}.yisi-composite-button-description.ant-typography{box-sizing:border-box;display:block;flex:0 1 40%;min-width:0;width:40%;max-width:40%;margin-inline-start:var(--yisiui-space-2);padding-inline-end:var(--yisiui-space-2);overflow:hidden;color:var(--yisiui-color-text-muted);font-family:var(--yisiui-typography-meta-font-family);font-size:var(--yisiui-typography-meta-font-size);font-weight:var(--yisiui-typography-meta-font-weight);line-height:var(--yisiui-typography-meta-line-height);letter-spacing:var(--yisiui-typography-meta-letter-spacing);text-overflow:ellipsis;white-space:nowrap;text-align:right}.yisi-composite-button-actions,.yisi-composite-button-description.ant-typography{transition:opacity var(--yisiui-motion-fast),visibility var(--yisiui-motion-fast)}.yisi-composite-button-actions{position:absolute;inset-inline-end:var(--yisiui-space-1);top:50%;display:flex;align-items:center;gap:var(--yisiui-space-1);transform:translateY(-50%);opacity:0;visibility:hidden;pointer-events:none}.yisi-composite-button--has-actions:focus-within .yisi-composite-button-description,.yisi-composite-button--has-actions:hover .yisi-composite-button-description{opacity:0;visibility:hidden}.yisi-composite-button--has-actions:focus-within .yisi-composite-button-actions,.yisi-composite-button--has-actions:hover .yisi-composite-button-actions{opacity:1;visibility:visible;pointer-events:auto}.yisi-composite-button-action.ant-btn{width:var(--yisiui-space-6);height:var(--yisiui-space-6);flex:0 0 var(--yisiui-space-6);padding:0;border:none;background:transparent;box-shadow:none;transition:none}.yisi-composite-button-action.ant-btn:active,.yisi-composite-button-action.ant-btn:focus,.yisi-composite-button-action.ant-btn:hover,.yisi-composite-button-action.ant-btn:not(:disabled):not(.ant-btn-disabled):hover{border:none;background:transparent;color:inherit;box-shadow:none}.human2ai-infinite-canvas-viewport{box-sizing:border-box;position:relative;display:flex;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.human2ai-infinite-canvas-viewport__background{position:absolute;z-index:0;inset:0;width:100%;height:100%;pointer-events:none}.human2ai-infinite-canvas-viewport__background-line{fill:none;stroke:var(--yisiui-color-border-default);stroke-width:1}.human2ai-infinite-canvas-viewport__background-dot{fill:var(--yisiui-color-border-strong,var(--yisiui-color-border-default))}.human2ai-infinite-canvas-viewport__world-content{position:absolute;z-index:1;inset:0;display:flex;min-width:0;min-height:0}.human2ai-infinite-canvas-viewport__controls{position:absolute;z-index:3;right:var(--yisiui-space-4);bottom:var(--yisiui-space-4);display:flex;align-items:center;gap:var(--yisiui-space-1);padding:var(--yisiui-space-1);color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-panel);border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-md);box-shadow:var(--yisiui-shadow-card)}.human2ai-infinite-canvas-viewport__controls .ant-btn{width:var(--yisiui-space-8);height:var(--yisiui-space-8);flex:0 0 var(--yisiui-space-8);padding:0}.human2ai-infinite-canvas-viewport__zoom{width:52px;color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-mono);font-size:var(--yisiui-font-size-sm);font-variant-numeric:var(--yisiui-font-variant-numeric-tabular);line-height:var(--yisiui-font-line-height-normal);text-align:center}.human2ai-infinite-canvas-viewport__side-actions{position:absolute;z-index:2;top:50%;max-width:calc(100% - (var(--yisiui-space-8) * 2));transform:translateY(-50%)}.human2ai-infinite-canvas-viewport__side-actions--left{left:var(--yisiui-space-4)}.human2ai-infinite-canvas-viewport__side-actions--right{right:var(--yisiui-space-4)}.human2ai-infinite-canvas-viewport--pan-ready,.human2ai-infinite-canvas-viewport--pan-ready *{cursor:grab!important}.human2ai-infinite-canvas-viewport--panning,.human2ai-infinite-canvas-viewport--panning *{cursor:grabbing!important}@media (max-width:560px){.human2ai-infinite-canvas-viewport__controls{right:var(--yisiui-space-2);bottom:var(--yisiui-space-2)}.human2ai-infinite-canvas-viewport__side-actions--left{left:var(--yisiui-space-2)}.human2ai-infinite-canvas-viewport__side-actions--right{right:var(--yisiui-space-2)}}.human2ai-composition-canvas__item[data-composition-visible=false]{opacity:.3}.human2ai-composition-canvas{position:relative;box-sizing:border-box;display:flex;padding:0;background:var(--yisiui-color-surface-soft);border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-lg);box-shadow:var(--yisiui-shadow-card)}.human2ai-composition-canvas,.human2ai-composition-canvas__svg{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none}.human2ai-composition-canvas__svg{display:block;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:transparent}.human2ai-composition-canvas__svg,.human2ai-composition-canvas__viewport{flex:1 1 auto;border-radius:var(--yisiui-radius-md)}.human2ai-composition-canvas__surface{fill:transparent}.human2ai-composition-canvas__multi-selection-surface{fill:transparent;stroke:none;pointer-events:none}.human2ai-composition-canvas__marquee{fill:color-mix(in srgb,var(--yisiui-component-focus-outline) 12%,transparent);stroke:var(--yisiui-component-focus-outline);stroke-width:var(--yisiui-component-focus-outline-width);stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}.human2ai-composition-canvas__item[role=button]{cursor:grab;outline:none}.human2ai-composition-canvas__item[role=button]:active{cursor:grabbing}.human2ai-composition-canvas__shape{fill:currentColor;fill-opacity:.82;stroke:none;stroke-width:6;vector-effect:non-scaling-stroke;transition:fill-opacity var(--yisiui-motion-fast) ease,stroke var(--yisiui-motion-fast) ease}.human2ai-composition-canvas__area--tone-0{color:var(--yisiui-color-paper-sage)}.human2ai-composition-canvas__shape[data-inner-stroke=true]{stroke:color-mix(in srgb,currentColor 25%,var(--yisiui-color-text-primary))}.human2ai-composition-canvas__area--tone-1{color:var(--yisiui-color-paper-amber)}.human2ai-composition-canvas__area--tone-2{color:var(--yisiui-color-paper-sky)}.human2ai-composition-canvas__area--tone-3{color:var(--yisiui-color-paper-rose)}.human2ai-composition-canvas__area--tone-4{color:var(--yisiui-color-paper-lavender)}.human2ai-composition-canvas__area--tone-5{color:var(--yisiui-color-paper-clay)}.human2ai-composition-canvas__item[role=button]:hover .human2ai-composition-canvas__shape{fill-opacity:1}.human2ai-composition-canvas__area--text-region .human2ai-composition-canvas__shape{fill:var(--yisiui-color-surface-panel);fill-opacity:.72;stroke:currentColor;stroke-width:2;stroke-dasharray:8 6}.human2ai-composition-canvas__text-region-marks{stroke:currentColor;stroke-width:3;stroke-linecap:round;pointer-events:none}.human2ai-composition-canvas__text-region-marks line{vector-effect:non-scaling-stroke}.human2ai-composition-canvas__text-corner{cursor:crosshair;outline:none}.human2ai-composition-canvas__text-corner:focus-visible .human2ai-composition-canvas__transform-handle{stroke-width:3}.human2ai-composition-canvas__direction .human2ai-canvas-line__hit,.human2ai-composition-canvas__direction .human2ai-canvas-line__visible{vector-effect:non-scaling-stroke}.human2ai-composition-canvas__direction .human2ai-canvas-line__visible{stroke:var(--yisiui-color-action-primary);stroke-width:3;stroke-dasharray:10 8}.human2ai-composition-canvas__direction .human2ai-canvas-line__hit{stroke:transparent;stroke-width:18}.human2ai-composition-canvas__direction:focus-visible .human2ai-canvas-line__visible,.human2ai-composition-canvas__direction[data-selected=true] .human2ai-canvas-line__visible{stroke:var(--yisiui-color-action-primary-active);stroke-width:5}.human2ai-composition-canvas__focus{color:var(--yisiui-color-feedback-warning)}.human2ai-composition-canvas__focus line,.human2ai-composition-canvas__focus-ring{fill:var(--yisiui-color-surface-panel);stroke:currentColor;stroke-width:4;vector-effect:non-scaling-stroke}.human2ai-composition-canvas__focus-dot{fill:currentColor;stroke:none}.human2ai-composition-canvas__focus:focus-visible,.human2ai-composition-canvas__focus[data-selected=true]{color:var(--yisiui-component-focus-outline)}.human2ai-composition-canvas__transform-handle{vector-effect:non-scaling-stroke;fill:var(--yisiui-color-surface-panel);stroke:var(--yisiui-component-focus-outline);stroke-width:3;pointer-events:none}.human2ai-composition-canvas__transform-hit{fill:transparent;stroke:none;pointer-events:all}.human2ai-composition-canvas__direction-control{cursor:grab;outline:none}.human2ai-composition-canvas__direction-control:active{cursor:grabbing}.human2ai-composition-canvas__direction-control:focus-visible .human2ai-composition-canvas__transform-handle{fill:var(--yisiui-component-focus-outline)}.human2ai-composition-canvas--reference{container-type:size;align-items:center;justify-content:center;padding:var(--yisiui-space-6);background:transparent;border:0;border-radius:0;box-shadow:none}.human2ai-composition-canvas--reference .human2ai-composition-canvas__svg{width:min(100cqw,calc(100cqh * var(--human2ai-composition-reference-aspect)));height:min(100cqh,calc(100cqw / var(--human2ai-composition-reference-aspect)));flex:0 0 auto;background:var(--yisiui-color-surface-panel);border-radius:0}.human2ai-composition-canvas--reference .human2ai-composition-canvas__surface{fill:var(--yisiui-color-surface-panel)}.human2ai-composition-canvas--reference .human2ai-composition-canvas__area{color:var(--yisiui-color-text-primary)}.human2ai-composition-canvas--reference .human2ai-composition-canvas__shape{fill-opacity:.12;stroke:currentColor;stroke-width:2}.human2ai-composition-canvas--reference .human2ai-composition-canvas__area--text-region .human2ai-composition-canvas__shape{fill-opacity:.04;stroke-width:2;stroke-dasharray:8 6}.human2ai-composition-canvas--reference .human2ai-composition-canvas__text-region-marks{stroke-width:2}.human2ai-composition-canvas--reference .human2ai-composition-canvas__direction .human2ai-canvas-line__visible{stroke:var(--yisiui-color-text-primary);stroke-width:2;stroke-dasharray:none}.human2ai-composition-canvas--reference .human2ai-composition-canvas__focus{color:var(--yisiui-color-text-primary)}@media (prefers-reduced-motion:reduce){.human2ai-composition-canvas__shape{transition:none}}.human2ai-composition-planning{min-width:0;color:var(--yisiui-color-text-primary)}.human2ai-composition-planning__heading,.human2ai-composition-planning__row,.human2ai-composition-planning__toggle{display:flex;align-items:center;gap:var(--yisiui-space-2)}.human2ai-composition-planning__heading h2{flex:1;margin:0;font-size:var(--yisiui-font-size-sm)}.human2ai-composition-planning__list{max-height:200px;overflow-y:auto;margin-top:var(--yisiui-space-2)}.human2ai-composition-planning__select{flex:1;min-width:0;justify-content:flex-start;overflow:hidden}.human2ai-composition-planning__select[aria-pressed=true]{color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-hover);font-weight:var(--yisiui-font-weight-semibold)}.human2ai-composition-planning__empty,.human2ai-composition-planning__help{color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs)}.human2ai-composition-planning__help{margin:0}.human2ai-composition-planning__properties{display:grid;gap:var(--yisiui-space-3);margin-top:var(--yisiui-space-3)}.human2ai-composition-planning__toggle{justify-content:space-between;font-size:var(--yisiui-font-size-xs)}.human2ai-composition-planning__field{display:grid;min-width:0;gap:var(--yisiui-space-1);font-size:var(--yisiui-font-size-xs)}.human2ai-composition-planning__field .ant-input-number{width:100%}.human2ai-composition-planning__coordinates{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--yisiui-space-2)}.human2ai-composition-plans{color:var(--yisiui-color-action-primary)}.human2ai-composition-plan__line{fill:none;stroke:var(--yisiui-color-text-disabled);stroke-width:1.25;stroke-dasharray:7 5;vector-effect:non-scaling-stroke;pointer-events:none}.human2ai-composition-plan[data-selected=true] .human2ai-composition-plan__line{stroke:currentColor;stroke-width:2}.human2ai-composition-plan__hit{fill:none;stroke:transparent;stroke-width:12;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:move}.human2ai-composition-plan__handle{fill:var(--yisiui-color-surface-panel);stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke}.human2ai-composition-plan__handle-hit{fill:transparent;cursor:move}.human2ai-composition-plan[data-plan-type=symmetry] .human2ai-composition-plan__hit{cursor:pointer}.human2ai-composition-plan__snap{fill:var(--yisiui-color-surface-panel);stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;opacity:.6}.human2ai-composition-plan__fixed{fill:currentColor}.human2ai-composition-plans [data-plan-action=toggle-winding] .human2ai-composition-plan__handle-hit{cursor:pointer}.human2ai-composition-plans [data-plan-handle]:focus-visible .human2ai-composition-plan__handle{stroke-width:3}.human2ai-canvas-history-controls{position:absolute;z-index:4;left:var(--yisiui-space-4);bottom:var(--yisiui-space-4);gap:var(--yisiui-space-1);padding:var(--yisiui-space-1);border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-md)}.human2ai-canvas-history-controls,.yisi-loading-state{display:flex;background:var(--yisiui-color-surface-panel)}.yisi-loading-state{--yisiui-loading-state-line-height:16px;--yisiui-loading-state-line-gap:16px;box-sizing:border-box;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;padding:var(--yisiui-space-6)}.yisi-loading-state-compact{padding:var(--yisiui-space-4)}.yisi-loading-state-skeleton{position:relative;width:100%;min-height:0;flex:1}.yisi-loading-state .yisi-loading-state-skeleton>.ant-skeleton{box-sizing:border-box;display:table;width:100%}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton-section{display:table-cell;width:100%;vertical-align:top}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-image,.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-paragraph>li,.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-title{box-sizing:border-box;background:var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-sm);animation:none}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-paragraph{margin:0;padding:0;list-style:none}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-paragraph>li{display:block;width:100%;margin:0;padding:0;list-style:none}.yisi-loading-state[data-rows=auto] .yisi-loading-state-skeleton,.yisi-loading-state[data-variant=image] .yisi-loading-state-skeleton{contain:size;contain-intrinsic-size:192px}.yisi-loading-state[data-rows=auto] .yisi-loading-state-skeleton>.ant-skeleton,.yisi-loading-state[data-variant=image] .yisi-loading-state-skeleton>.ant-skeleton{position:absolute;inset:0;width:100%;height:100%}.yisi-loading-state[data-variant=text][data-rows=auto] .yisi-loading-state-skeleton>.ant-skeleton{display:table}.yisi-loading-state[data-variant=image] .yisi-loading-state-skeleton>.ant-skeleton{display:block}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-title{height:var(--yisiui-loading-state-line-height);margin:0 0 24px}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton-title+.ant-skeleton-paragraph{margin-block:0}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-paragraph>li{height:var(--yisiui-loading-state-line-height)}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-paragraph>li+li{margin-block-start:var(--yisiui-loading-state-line-gap)}.yisi-loading-state .ant-skeleton.ant-skeleton-element .ant-skeleton-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:0;border:0}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-image .ant-skeleton-image-svg{display:block;flex:none;width:48px;height:48px;max-width:100%;max-height:100%;color:var(--yisiui-color-text-disabled);fill:currentColor}.yisi-loading-state .yisi-loading-state-skeleton .ant-skeleton .ant-skeleton-image .ant-skeleton-image-path{fill:currentColor}.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-image,.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-paragraph>li,.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-title{background:linear-gradient(90deg,var(--yisiui-color-border-subtle) 25%,var(--yisiui-color-surface-page) 37%,var(--yisiui-color-border-subtle) 63%);background-size:400% 100%;animation:yisi-loading-state-shimmer 1.4s ease infinite}@keyframes yisi-loading-state-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.yisi-loading-state-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@media (prefers-reduced-motion:reduce){.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-image,.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-paragraph>li,.yisi-loading-state[data-motion=auto] .yisi-loading-state-skeleton .ant-skeleton.ant-skeleton-active .ant-skeleton-title{animation:none}}.human2ai-prompt-preview-hover{display:block;min-width:0}.human2ai-prompt-preview-hover__content{width:min(560px,50vw);max-height:min(360px,40dvh);overflow:auto;overscroll-behavior:contain;-webkit-user-select:text;-moz-user-select:text;user-select:text}.human2ai-prompt-preview-hover__content pre{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;line-height:1.6}.human2ai-canvas-preview-hover,.human2ai-composition-preview-hover{display:block;min-width:0}.human2ai-canvas-preview-hover__image{width:-moz-fit-content;width:fit-content;max-width:min(420px,45vw);overflow:hidden;border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-sm)}.human2ai-canvas-preview-hover__image>svg{display:block;width:auto;height:auto;max-width:min(420px,45vw);max-height:360px}.human2ai-ui-sketch-canvas,.human2ai-ui-sketch-canvas *{box-sizing:border-box}.human2ai-ui-sketch-canvas{position:relative;display:flex;width:100%;min-width:0;min-height:0;height:100%;flex-direction:column;padding:0;overflow:hidden;color:var(--yisiui-color-text-primary)}.human2ai-ui-sketch-canvas__workspace{position:relative;min-width:0;min-height:0;flex:1 1 auto;overflow:hidden;background:var(--yisiui-color-surface-soft);border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-lg);box-shadow:var(--yisiui-shadow-card)}.human2ai-ui-sketch-canvas__side-action{display:block;width:100%}.human2ai-ui-sketch-canvas__tool-groups{display:grid;min-width:0;gap:var(--yisiui-space-5)}.human2ai-ui-sketch-canvas__tool-group{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--yisiui-space-2)}.human2ai-ui-sketch-canvas__tool-group-title{grid-column:1/-1;color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-xs);line-height:var(--yisiui-font-line-height-normal);text-align:center}.human2ai-infinite-canvas-viewport__side-actions .human2ai-ui-sketch-canvas__tool-group{grid-template-columns:minmax(0,1fr)}.yisi-side-action-panel--collapsed .human2ai-ui-sketch-canvas__tool-group-title{display:none}.human2ai-ui-sketch-canvas__scene{touch-action:none}.human2ai-ui-sketch-canvas__world-surface{fill:transparent;pointer-events:all}.human2ai-ui-sketch-canvas__rectangle-surface{fill:currentColor;fill-opacity:.82;stroke:none;stroke-width:6;vector-effect:non-scaling-stroke;transition:fill-opacity var(--yisiui-motion-fast) ease}.human2ai-ui-sketch-canvas__rectangle--tone-0{color:var(--yisiui-color-paper-sage)}.human2ai-ui-sketch-canvas__rectangle-surface[data-inner-stroke=true]{stroke:color-mix(in srgb,currentColor 25%,var(--yisiui-color-text-primary))}.human2ai-ui-sketch-canvas__rectangle--tone-1{color:var(--yisiui-color-paper-amber)}.human2ai-ui-sketch-canvas__rectangle--tone-2{color:var(--yisiui-color-paper-sky)}.human2ai-ui-sketch-canvas__rectangle--tone-3{color:var(--yisiui-color-paper-rose)}.human2ai-ui-sketch-canvas__rectangle--tone-4{color:var(--yisiui-color-paper-lavender)}.human2ai-ui-sketch-canvas__rectangle--tone-5{color:var(--yisiui-color-paper-clay)}.human2ai-ui-sketch-canvas__rectangle[role=button]:hover .human2ai-ui-sketch-canvas__rectangle-surface{fill-opacity:1}.human2ai-ui-sketch-canvas__text-content{fill:var(--yisiui-color-text-primary);pointer-events:visiblePainted}.human2ai-ui-sketch-canvas__text-content--empty{fill:var(--yisiui-color-text-placeholder)}.human2ai-ui-sketch-canvas__item[data-ui-sketch-visible=false]{opacity:.3}.human2ai-ui-sketch-canvas__item[data-ui-sketch-visible=false] .human2ai-ui-sketch-canvas__rectangle-surface{stroke:var(--yisiui-color-text-secondary);stroke-width:1;stroke-dasharray:6 4}.human2ai-ui-sketch-canvas__marquee,.human2ai-ui-sketch-canvas__multi-selection{vector-effect:non-scaling-stroke;pointer-events:none}.human2ai-ui-sketch-canvas__multi-selection{fill:none;stroke:var(--yisiui-component-focus-outline);stroke-width:var(--yisiui-component-focus-outline-width)}.human2ai-ui-sketch-canvas__marquee{fill:color-mix(in srgb,var(--yisiui-color-action-primary) 10%,transparent);stroke:var(--yisiui-color-action-primary);stroke-width:1;stroke-dasharray:6 4}.human2ai-ui-sketch-canvas__overall-editor{display:grid;gap:var(--yisiui-space-2);color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm);font-weight:var(--yisiui-font-weight-medium);width:min(320px,calc(100vw - 48px))}.human2ai-ui-sketch-canvas__font-size-control{display:inline-grid;grid-template-columns:repeat(3,auto);align-items:center;justify-self:start;gap:var(--yisiui-space-2)}.human2ai-ui-sketch-canvas__editor-layout,.human2ai-ui-sketch-canvas__editor-primary-fields{display:grid;min-width:0;align-content:start;gap:var(--yisiui-space-3)}.human2ai-ui-sketch-canvas__editor-layout--image{grid-template-columns:minmax(0,1fr) minmax(300px,1fr);-moz-column-gap:var(--yisiui-space-6);column-gap:var(--yisiui-space-6)}.human2ai-ui-sketch-canvas__editor-side-fields{min-width:0}.human2ai-ui-sketch-canvas__editor-properties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;-moz-column-gap:var(--yisiui-space-6);column-gap:var(--yisiui-space-6);row-gap:var(--yisiui-space-3)}.human2ai-ui-sketch-canvas__editor-properties>*{min-width:0}.human2ai-ui-sketch-canvas__editor-properties>*>:last-child{width:auto;justify-self:start}.human2ai-ui-sketch-canvas__editor-properties .human2ai-ui-sketch-canvas__visual-weight-select{width:100%;min-width:min(140px,100%)}.human2ai-ui-sketch-canvas__editor-layout--image .human2ai-ui-sketch-canvas__editor-properties{grid-template-columns:repeat(2,minmax(0,1fr));-moz-column-gap:var(--yisiui-space-3);column-gap:var(--yisiui-space-3)}.human2ai-ui-sketch-canvas__editor-field{display:grid;gap:var(--yisiui-space-2)}.human2ai-ui-sketch-canvas__editor-field-label{color:var(--yisiui-color-text-primary);font-weight:var(--yisiui-font-weight-medium)}.human2ai-ui-sketch-canvas__node-description{margin:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm);line-height:var(--yisiui-font-line-height-normal);white-space:pre-wrap;overflow-wrap:anywhere}.human2ai-ui-sketch-canvas__font-size-control output{color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-mono);font-size:var(--yisiui-font-size-sm);text-align:center}.human2ai-ui-sketch-canvas__external-tools{min-width:0}.human2ai-ui-sketch-canvas__notice{position:absolute;z-index:8;top:var(--yisiui-space-6);left:50%;max-width:calc(100% - 48px);padding:var(--yisiui-space-2) var(--yisiui-space-3);color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-panel);border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-md);box-shadow:var(--yisiui-shadow-card);transform:translateX(-50%)}.human2ai-ui-sketch-canvas__notice--success{border-color:var(--yisiui-color-border-success)}.human2ai-ui-sketch-canvas__notice--warning{border-color:var(--yisiui-color-border-warning)}.human2ai-ui-sketch-canvas__notice--error{border-color:var(--yisiui-color-border-error)}.human2ai-ui-sketch-canvas__selection-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-width:720px){.human2ai-ui-sketch-canvas__editor-layout--image{grid-template-columns:1fr}}.yisi-tab-switch{--yisiui-tab-switch-item-height:32px;--yisiui-tab-switch-item-padding-y:var(--yisiui-space-1);box-sizing:border-box;display:inline-flex;align-items:stretch;min-width:0;max-width:100%;position:relative;isolation:isolate;padding:2px;background:var(--yisiui-tab-switch-background,var(--yisiui-color-surface-page));color:var(--yisiui-tab-switch-unselected-text-color,var(--yisiui-color-text-secondary));border-radius:var(--yisiui-radius-sm);box-shadow:inset 0 1px 2px color-mix(in srgb,var(--yisiui-color-neutral-900) 8%,transparent)}.yisi-tab-switch-compact{--yisiui-tab-switch-item-height:26px;--yisiui-tab-switch-item-padding-y:1px;padding-block:1px}.yisi-tab-switch-item{position:relative;z-index:1;display:flex;min-width:0;align-items:stretch;border-radius:var(--yisiui-radius-sm);transition:background-color var(--yisiui-motion-normal) ease,color var(--yisiui-motion-normal) ease}.yisi-tab-switch-label{position:relative;box-sizing:border-box;display:flex;min-height:var(--yisiui-tab-switch-item-height);min-width:0;align-items:center;justify-content:center;padding:var(--yisiui-tab-switch-item-padding-y) var(--yisiui-space-3);border-radius:inherit;cursor:pointer}.yisi-tab-switch-item:not(.yisi-tab-switch-active-item):not(.yisi-tab-switch-disabled-item):has(.yisi-tab-switch-label:hover){background:var(--yisiui-color-surface-hover)}.yisi-tab-switch-active-item{background:var(--yisiui-tab-switch-selected-background,var(--yisiui-color-action-primary));color:var(--yisiui-tab-switch-selected-text-color,var(--yisiui-color-text-inverse));box-shadow:0 1px 2px color-mix(in srgb,var(--yisiui-color-neutral-900) 8%,transparent)}.yisi-tab-switch-selection-layer{position:absolute;inset:0;overflow:clip;pointer-events:none}.yisi-tab-switch-selection{position:absolute;top:0;left:0;pointer-events:none;visibility:hidden;border-radius:var(--yisiui-radius-sm);background:var(--yisiui-tab-switch-selected-background,var(--yisiui-color-action-primary));box-shadow:0 1px 2px color-mix(in srgb,var(--yisiui-color-neutral-900) 8%,transparent)}.yisi-tab-switch-selection[data-animate]{transition:transform var(--yisiui-motion-slow) ease,width var(--yisiui-motion-slow) ease,height var(--yisiui-motion-slow) ease}.yisi-tab-switch[data-indicator-ready]:not([data-drag-state]) .yisi-tab-switch-selection{visibility:visible}.yisi-tab-switch[data-indicator-ready]:not([data-drag-state]) .yisi-tab-switch-active-item{background:transparent;box-shadow:none}.yisi-tab-switch-disabled-item .yisi-tab-switch-label{color:var(--yisiui-color-text-disabled);cursor:not-allowed}.yisi-tab-switch-label:has(.yisi-tab-switch-input:focus-visible){outline:2px solid var(--yisiui-color-border-focus);outline-offset:-2px}.yisi-tab-switch-right-slot{display:flex;flex:0 0 auto;align-items:center;gap:var(--yisiui-space-1);padding-block:var(--yisiui-tab-switch-item-padding-y);padding-inline-end:var(--yisiui-space-2)}.yisi-tab-switch-item:has(.yisi-tab-switch-right-slot) .yisi-tab-switch-label{padding-inline-end:var(--yisiui-space-1)}.yisi-tab-switch-content{min-width:0;gap:var(--yisiui-space-1);font-family:var(--yisiui-typography-body-font-family);font-size:var(--yisiui-typography-body-font-size);line-height:var(--yisiui-typography-body-line-height)}.yisi-tab-switch-content,.yisi-tab-switch-icon{display:inline-flex;align-items:center;justify-content:center}.yisi-tab-switch-icon{flex:0 0 auto;font-size:var(--yisiui-font-size-md);line-height:1}.yisi-tab-switch-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yisi-tab-switch-input,.yisi-tab-switch-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}@media (prefers-reduced-motion:reduce){.yisi-tab-switch-item,.yisi-tab-switch-selection[data-animate]{transition:none}}.yisi-tab-switch-item{flex:0 0 auto}.yisi-tab-switch[data-drag-state] .yisi-tab-switch-item:not([data-dragged]){transition:transform var(--yisiui-motion-normal) ease,background-color var(--yisiui-motion-normal) ease,color var(--yisiui-motion-normal) ease}.yisi-tab-switch-menu,.yisi-tab-switch-trailing-action{display:flex;flex:0 0 auto;align-items:center}.yisi-tab-switch-menu-trigger{opacity:0;width:24px;height:24px}.yisi-tab-switch-item:focus-within .yisi-tab-switch-menu-trigger,.yisi-tab-switch-item:hover .yisi-tab-switch-menu-trigger,.yisi-tab-switch-menu[data-open] .yisi-tab-switch-menu-trigger{opacity:1}@media (hover:none){.yisi-tab-switch-menu-trigger{opacity:1}}.yisi-tab-switch[data-reorderable] .yisi-tab-switch-label{touch-action:pan-x;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.yisi-tab-switch[data-drag-state]{cursor:grabbing}.yisi-tab-switch[data-drag-state] .yisi-tab-switch-label{cursor:inherit}.yisi-tab-switch[data-drag-state] .yisi-tab-switch-right-slot{pointer-events:none}.yisi-tab-switch-item[data-dragged]{position:relative;z-index:2;transition:none;background:var(--yisiui-color-surface-panel);box-shadow:0 2px 6px color-mix(in srgb,var(--yisiui-color-neutral-900) 24%,transparent);outline:2px solid var(--yisiui-color-border-focus);outline-offset:-2px}.yisi-tab-switch[data-drag-state=cancel]{cursor:not-allowed;outline:2px dashed var(--yisiui-color-border-control)}.yisi-tab-switch[data-drag-state=cancel] .yisi-tab-switch-item[data-dragged]{opacity:.6}@media (prefers-reduced-motion:reduce){.yisi-tab-switch-item,.yisi-tab-switch[data-drag-state] .yisi-tab-switch-item:not([data-dragged]){transition:none}}.yisi-tab-switch-viewport{flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.yisi-tab-switch-viewport::-webkit-scrollbar{display:none}.yisi-tab-switch-track{position:relative;isolation:isolate;display:flex;align-items:stretch;width:-moz-max-content;width:max-content;min-width:100%}.yisi-tab-switch-scroll-arrow.ant-btn{flex:0 0 26px;width:26px;height:auto;min-height:var(--yisiui-tab-switch-item-height);align-self:stretch;padding:0;touch-action:none}.yisi-tab-switch[data-scroll-direction=rtl] .yisi-tab-switch-scroll-left{order:1}.yisi-tab-switch[data-scroll-direction=rtl] .yisi-tab-switch-scroll-right{order:-1}.yisi-tab-switch-active-item .yisi-tab-switch-menu-trigger.ant-btn{color:var(--yisiui-tab-switch-selected-text-color)}.yisi-tab-switch-active-item[data-dragged]{background:var(--yisiui-tab-switch-selected-background)}.yisi-tab-switch-menu[data-mode=hover]:not(:focus-within){width:0}.yisi-tab-switch-menu[data-mode=hover] .yisi-tab-switch-menu-trigger:not(:focus-visible){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%)}@media (hover:none){.yisi-tab-switch-menu[data-mode=hover]:not(:focus-within){width:auto}.yisi-tab-switch-menu[data-mode=hover] .yisi-tab-switch-menu-trigger:not(:focus-visible){position:static;width:24px;height:24px;padding:0;margin:0;clip-path:none}}.human2ai-composition-workflow{display:flex;height:100%;min-height:0;flex-direction:column;gap:var(--yisiui-space-3);min-width:0}.human2ai-composition-workflow__toolbar{display:flex;align-items:center;justify-content:center;gap:var(--yisiui-space-3);flex:0 0 auto}.human2ai-composition-workflow__stage{position:relative;display:flex;min-width:0;min-height:0;flex:1 1 auto;flex-direction:column;gap:var(--yisiui-space-3);overflow:auto}.human2ai-composition-workflow__stage>.human2ai-composition-canvas{min-height:0;flex:1 0 100%}.human2ai-composition-workflow[data-active-view=reference] .human2ai-composition-workflow__stage{overflow:hidden}.human2ai-composition-workflow__summary{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr));gap:var(--yisiui-space-4);padding:var(--yisiui-space-4);background:var(--yisiui-color-surface-soft);border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-md)}.human2ai-composition-workflow__summary section{min-width:0}.human2ai-composition-workflow__summary h3{margin:0 0 var(--yisiui-space-2);font-size:var(--yisiui-font-size-sm);line-height:var(--yisiui-font-line-height-tight)}.human2ai-composition-workflow__summary dl,.human2ai-composition-workflow__summary p,.human2ai-composition-workflow__summary ul{margin:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs);line-height:var(--yisiui-font-line-height-normal)}.human2ai-composition-workflow__summary p{overflow-wrap:anywhere}.human2ai-composition-workflow__summary ul{display:grid;gap:var(--yisiui-space-1);padding-left:var(--yisiui-space-4)}.human2ai-composition-workflow__summary code,.human2ai-composition-workflow__summary dd{font-family:var(--yisiui-font-family-mono);font-variant-numeric:var(--yisiui-font-variant-numeric-tabular)}.human2ai-composition-workflow__summary dl{display:grid;gap:var(--yisiui-space-1)}.human2ai-composition-workflow__summary dl div{display:flex;justify-content:space-between;gap:var(--yisiui-space-2)}.human2ai-composition-workflow__summary dd{margin:0;color:var(--yisiui-color-text-primary)}@media (max-width:760px){.human2ai-composition-workflow__summary{grid-template-columns:1fr}.human2ai-composition-workflow__toolbar .yisi-tab-switch.ant-segmented{width:100%;min-width:0}.human2ai-composition-workflow__toolbar .ant-segmented-group{display:flex;width:100%}.human2ai-composition-workflow__toolbar .ant-segmented-item{min-width:0;flex:1}.human2ai-composition-workflow__toolbar .yisi-tab-switch-content{font-size:var(--yisiui-font-size-xs)}}.human2ai-composition-workflow__summary--directed{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.human2ai-composition-workflow__summary--directed p+p{margin-top:var(--yisiui-space-2)}.human2ai-composition-workflow__explanation{margin-top:var(--yisiui-space-4)}.human2ai-composition-workflow__relations{display:grid;gap:var(--yisiui-space-4);padding-left:var(--yisiui-space-4);margin:0;font-size:var(--yisiui-font-size-sm);overflow-wrap:anywhere}.human2ai-composition-workflow__relations dl{margin-top:var(--yisiui-space-2)}.yisi-app-shell-frame{--yisi-app-shell-header-padding-y:var(--yisiui-space-3);--yisi-app-shell-header-title-line-height:calc(var(--yisiui-font-size-lg) * var(--yisiui-font-line-height-normal));box-sizing:border-box;display:grid;grid-template-columns:var(
2
- --yisi-app-shell-sidebar-grid-width,var(--yisiui-app-shell-sidebar-resized-width,var(--yisi-app-shell-sidebar-width,var(--yisiui-surface-desktop-web-sidebar-width)))
3
- ) minmax(var(--yisiui-app-shell-content-min-width,320px),1fr) var(
4
- --yisi-app-shell-right-panel-grid-width,var(--yisiui-app-shell-right-panel-resized-width,var(--yisi-app-shell-right-panel-width,var(--yisiui-surface-desktop-web-sidebar-width)))
5
- );width:100%;height:100dvh;min-height:100vh;overflow:auto hidden;color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-page)}.yisi-app-shell-frame--sidebar-hidden{--yisi-app-shell-sidebar-grid-width:0px}.yisi-app-shell-frame--sidebar-hidden .yisi-app-shell-sidebar{display:none}.yisi-app-shell-frame--right-panel-hidden{--yisi-app-shell-right-panel-grid-width:0px}.yisi-app-shell-frame--right-panel-hidden .yisi-app-shell-right-panel{display:none}.yisi-app-shell-sidebar{position:relative;grid-column:1;grid-row:1;min-width:0;min-height:0}.yisi-app-shell-sidebar-content{display:flex;flex-direction:column;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.yisi-app-shell-sidebar-top{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-start;gap:var(--yisiui-space-4);padding:var(--yisi-app-shell-header-padding-y) var(--yisiui-space-4) var(--yisiui-space-4)}.yisi-app-shell-sidebar-heading{display:flex;width:100%;min-height:var(--yisiui-component-button-height);align-items:center;justify-content:space-between;gap:var(--yisiui-space-3)}.yisi-app-shell-sidebar-title{min-width:0;overflow:hidden;color:var(--yisiui-color-text-primary);font-size:var(--yisiui-font-size-lg);font-weight:var(--yisiui-font-weight-semibold);line-height:var(--yisi-app-shell-header-title-line-height);text-overflow:ellipsis;white-space:nowrap}.yisi-app-shell-sidebar-navigation{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:var(--yisiui-space-1)}.yisi-app-shell-sidebar-slot{min-width:0;min-height:0;flex:1;overflow:hidden}.yisi-app-shell-content{display:grid;grid-column:2;grid-row:1;grid-template-rows:calc(var(--yisiui-component-button-height) + 2 * var(--yisi-app-shell-header-padding-y)) minmax(0,1fr);min-width:0;height:100%;min-height:0;overflow:hidden}.yisi-app-shell-content-header{box-sizing:border-box;display:flex;min-width:0;align-items:center;gap:var(--yisiui-space-3);padding:var(--yisi-app-shell-header-padding-y) var(--yisiui-space-5)}.yisi-app-shell-content-leading,.yisi-app-shell-content-trailing,.yisi-app-shell-sidebar-collapsed-actions{display:flex;flex:0 0 auto;align-items:center;gap:var(--yisiui-space-2)}.yisi-app-shell-content-trailing{flex:0 1 auto;min-width:0;margin-inline-start:auto}.yisi-app-shell-header-extra{display:flex;min-width:0;align-items:center;gap:var(--yisiui-space-2);overflow-x:auto;scrollbar-width:none;white-space:nowrap}.yisi-app-shell-header-extra>*{flex-shrink:0}.yisi-app-shell-content-title{min-width:0;overflow:hidden;color:var(--yisiui-color-text-primary);font-size:var(--yisiui-font-size-md);font-weight:var(--yisiui-font-weight-semibold);line-height:var(--yisi-app-shell-header-title-line-height);text-overflow:ellipsis;white-space:nowrap}.yisi-app-shell-content-body{min-width:0;min-height:0;overflow:auto;padding:0;border-radius:var(--yisiui-radius-lg);background:var(--yisiui-color-surface-panel)}.yisi-app-shell-right-panel{box-sizing:border-box;grid-column:3;grid-row:1;min-width:0;min-height:0;height:100%;overflow:hidden;background:var(--yisiui-color-surface-page)}.yisi-app-shell-content-back,.yisi-app-shell-content-toggle,.yisi-app-shell-right-panel-toggle,.yisi-app-shell-sidebar-toggle{flex:0 0 auto;width:var(--yisiui-component-button-height);height:var(--yisiui-component-button-height)}.yisi-app-shell-resize-handle{position:relative;z-index:2;grid-row:1;align-self:stretch;width:10px;touch-action:none;cursor:col-resize;outline:none}.yisi-app-shell-resize-handle--sidebar{grid-column:1;justify-self:end;margin-right:-5px}.yisi-app-shell-resize-handle--right-panel{grid-column:3;justify-self:start;margin-left:-5px}.yisi-app-shell-resize-handle:after{position:absolute;inset:0 4px;border-radius:var(--yisiui-radius-full);background:var(--yisiui-color-border-focus);opacity:0;content:""}.yisi-app-shell-resize-handle:hover:after{opacity:1}.yisi-app-shell-resize-handle:focus-visible:before{position:absolute;top:50%;left:50%;width:8px;height:8px;border:2px solid var(--yisiui-color-border-focus);border-radius:var(--yisiui-radius-full);background:var(--yisiui-color-surface-panel);transform:translate(-50%,-50%);content:""}.yisi-app-shell-resize-handle[aria-disabled=true]{cursor:default}.yisi-app-shell-resize-shield{position:fixed;inset:0;z-index:2147483647;touch-action:none}.yisi-app-shell-frame[data-resizing],.yisi-app-shell-frame[data-resizing] *,.yisi-app-shell-resize-shield{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}@media (forced-colors:active){.yisi-app-shell-resize-handle:after{background:Highlight;forced-color-adjust:none}}.yisi-animated-icon{display:inline-block;flex:none;vertical-align:-.125em;overflow:visible}.yisi-animated-icon-layer,.yisi-animated-icon-motion{transform-box:view-box;transform-origin:12px 12px}.yisi-animated-icon[data-playing=true] .yisi-animated-icon-layer,.yisi-animated-icon[data-playing=true] .yisi-animated-icon-motion{animation:var(--yisiui-animated-icon-animation) var(--yisiui-animated-icon-duration,.72s) ease-in-out 1}.yisi-animated-icon[data-playing=true][data-loop=true] .yisi-animated-icon-layer,.yisi-animated-icon[data-playing=true][data-loop=true] .yisi-animated-icon-motion{animation-iteration-count:infinite}.yisi-animated-icon[data-icon=plus]{--yisiui-animated-icon-animation:yisi-icon-plus}.yisi-animated-icon[data-icon=upload]{--yisiui-animated-icon-animation:yisi-icon-upload}.yisi-animated-icon[data-icon=send]{--yisiui-animated-icon-animation:yisi-icon-send}.yisi-animated-icon[data-icon=refresh]{--yisiui-animated-icon-animation:yisi-icon-refresh}.yisi-animated-icon[data-icon=copy]{--yisiui-animated-icon-animation:yisi-icon-copy}.yisi-animated-icon[data-icon=star]{--yisiui-animated-icon-animation:yisi-icon-star}.yisi-animated-icon[data-icon=bell]{--yisiui-animated-icon-animation:yisi-icon-bell}.yisi-animated-icon[data-icon=close]{--yisiui-animated-icon-animation:yisi-icon-close}@keyframes yisi-icon-plus{0%,78%,to{transform:scale(1)}22%{transform:scale(.9)}48%{transform:scale(1.08)}64%{transform:scale(.98)}}@keyframes yisi-icon-upload{0%,12%,78%,to{transform:translateY(0)}26%{transform:translateY(.8px)}48%{transform:translateY(-1.8px)}65%{transform:translateY(.4px)}}@keyframes yisi-icon-send{0%,10%,82%,to{transform:translate(0)}38%,48%{transform:translate(1.8px,-1.8px)}}@keyframes yisi-icon-refresh{0%,10%{transform:rotate(0)}23%{transform:rotate(-12deg)}72%{transform:rotate(365deg)}84%,to{transform:rotate(1turn)}}@keyframes yisi-icon-copy{0%,10%,78%,to{transform:translate(0) rotate(0)}26%{transform:translate(-.6px,.4px) rotate(-3deg)}48%{transform:translate(1px,-1.8px) rotate(4deg)}65%{transform:translateY(.5px) rotate(-1deg)}}@keyframes yisi-icon-star{0%,82%,to{transform:scale(1)}22%{transform:scale(.9)}48%{transform:scale(1.06)}66%{transform:scale(.98)}}@keyframes yisi-icon-bell{0%,8%,84%,to{transform:rotate(0)}24%{transform:rotate(11deg)}42%{transform:rotate(-9deg)}58%{transform:rotate(5deg)}72%{transform:rotate(-2deg)}}@keyframes yisi-icon-close{0%,80%,to{transform:scale(1)}30%{transform:scale(.84)}56%{transform:scale(1.04)}}.yisi-animated-icon[data-icon=bell] .yisi-animated-icon-motion,.yisi-icon-bell-clapper{transform-origin:12px 4px}.yisi-icon-bell-clapper{--yisiui-animated-icon-animation:yisi-icon-bell-clapper}@keyframes yisi-icon-bell-clapper{0%,16%,90%,to{transform:rotate(0)}32%{transform:rotate(13deg)}50%{transform:rotate(-10deg)}66%{transform:rotate(6deg)}80%{transform:rotate(-2deg)}}.yisi-animated-icon[data-icon=reset]{--yisiui-animated-icon-animation:yisi-icon-reset}.yisi-animated-icon[data-icon=sidebar-left],.yisi-animated-icon[data-icon=sidebar-right]{--yisiui-animated-icon-animation:yisi-icon-sidebar}.yisi-animated-icon[data-icon=sidebar-left] .yisi-animated-icon-motion,.yisi-animated-icon[data-icon=sidebar-right] .yisi-animated-icon-motion{transform-origin:5.5px 12px}.yisi-animated-icon[data-icon=loading]{--yisiui-animated-icon-animation:yisi-icon-loading}.yisi-animated-icon[data-icon=loading][data-playing=true] .yisi-animated-icon-motion{animation-timing-function:linear}@keyframes yisi-icon-reset{0%,10%{transform:rotate(0)}24%{transform:rotate(12deg)}74%{transform:rotate(-364deg)}86%,to{transform:rotate(-1turn)}}@keyframes yisi-icon-sidebar{0%,12%,84%,to{transform:scaleX(1)}42%{transform:scaleX(.25)}66%{transform:scaleX(1.06)}}@keyframes yisi-icon-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.yisi-animated-icon[data-icon=arrow-down],.yisi-animated-icon[data-icon=arrow-left],.yisi-animated-icon[data-icon=arrow-right],.yisi-animated-icon[data-icon=arrow-up]{--yisiui-animated-icon-animation:yisi-icon-direction-arrow}@keyframes yisi-icon-direction-arrow{0%,10%,82%,to{transform:translateY(0)}38%,48%{transform:translateY(-2px)}}.yisi-icon-arrow-air{--yisiui-animated-icon-animation:yisi-icon-arrow-air;transform-origin:12px 20px;opacity:0}@keyframes yisi-icon-arrow-air{0%,14%{transform:translateY(-1.2px) scale(.5);opacity:0}30%{transform:translateY(-.6px) scale(.8);opacity:.7}44%{transform:translateY(0) scale(1);opacity:.5}64%{transform:translateY(.6px) scale(1.1);opacity:0}82%,to{transform:translateY(0) scale(1);opacity:0}}.yisi-icon-feedback{opacity:0;pointer-events:none}.yisi-icon-plus-spark{--yisiui-animated-icon-animation:yisi-icon-plus-spark}.yisi-icon-upload-ripple{--yisiui-animated-icon-animation:yisi-icon-upload-ripple;transform-origin:12px 17.4px}.yisi-icon-send-wake{--yisiui-animated-icon-animation:yisi-icon-send-wake}.yisi-icon-refresh-trail{--yisiui-animated-icon-animation:yisi-icon-refresh-trail}.yisi-icon-copy-echo{--yisiui-animated-icon-animation:yisi-icon-copy-echo}.yisi-icon-star-spark{--yisiui-animated-icon-animation:yisi-icon-star-spark}.yisi-icon-bell-waves{--yisiui-animated-icon-animation:yisi-icon-bell-waves;transform-origin:12px 10px}.yisi-icon-close-ring{--yisiui-animated-icon-animation:yisi-icon-close-ring}.yisi-icon-reset-ring{--yisiui-animated-icon-animation:yisi-icon-reset-ring}.yisi-icon-sidebar-wake{--yisiui-animated-icon-animation:yisi-icon-sidebar-wake;transform-origin:10px 12px}.yisi-icon-loading-trail{--yisiui-animated-icon-animation:yisi-icon-loading-trail}@keyframes yisi-icon-plus-spark{0%,26%{transform:scale(.6);opacity:0}46%{transform:scale(.95);opacity:.8}70%{transform:scale(1.15);opacity:0}82%,to{transform:scale(1);opacity:0}}@keyframes yisi-icon-upload-ripple{0%,22%{transform:scale(.3,.5);opacity:0}40%{transform:scale(.75,.9);opacity:.65}68%{transform:scale(1.2,1.1);opacity:0}82%,to{transform:scale(1);opacity:0}}@keyframes yisi-icon-send-wake{0%,18%{transform:translate(.8px,-.8px);opacity:0}34%{transform:translate(0);opacity:.7}60%{transform:translate(-1px,1px);opacity:0}82%,to{transform:translate(0);opacity:0}}@keyframes yisi-icon-refresh-trail{0%,20%{transform:rotate(-25deg);opacity:0}38%{transform:rotate(45deg);opacity:.55}68%{transform:rotate(235deg);opacity:0}84%,to{transform:rotate(1turn);opacity:0}}@keyframes yisi-icon-copy-echo{0%,22%{transform:translate(0);opacity:0}42%{transform:translate(-.7px,.5px);opacity:.45}70%{transform:translate(-1.6px,1px);opacity:0}82%,to{transform:translate(0);opacity:0}}@keyframes yisi-icon-star-spark{0%,26%{transform:scale(.75);opacity:0}46%{transform:scale(1);opacity:.9}70%{transform:scale(1.06);opacity:0}82%,to{transform:scale(1);opacity:0}}@keyframes yisi-icon-bell-waves{0%,12%{transform:scaleX(.9);opacity:0}28%{transform:scaleX(1);opacity:.7}42%{transform:scaleX(1.04);opacity:.2}56%{transform:scaleX(1);opacity:.6}76%{transform:scaleX(1.06);opacity:0}86%,to{transform:scaleX(1);opacity:0}}@keyframes yisi-icon-close-ring{0%,20%{transform:scale(.3);opacity:0}30%{transform:scale(.55);opacity:.8}48%{transform:scale(1.15);opacity:.35}66%{transform:scale(1.35);opacity:0}80%,to{transform:scale(1);opacity:0}}@keyframes yisi-icon-reset-ring{0%,30%{transform:scale(1.3);opacity:0}46%{transform:scale(.85);opacity:.65}70%{transform:scale(.25);opacity:0}86%,to{transform:scale(1);opacity:0}}@keyframes yisi-icon-sidebar-wake{0%,30%{transform:translateX(-1.6px) scaleX(.5);opacity:0}44%{transform:translateX(-.7px) scaleX(.7);opacity:.6}70%{transform:translateX(1px) scaleX(1);opacity:0}84%,to{transform:translateX(0) scaleX(1);opacity:0}}@keyframes yisi-icon-loading-trail{0%,to{opacity:0}24%{opacity:.2}50%{opacity:.55}76%{opacity:.2}}@media (prefers-reduced-motion:reduce){.yisi-animated-icon[data-playing=true] .yisi-animated-icon-layer,.yisi-animated-icon[data-playing=true] .yisi-animated-icon-motion{animation:none}}.human2ai-app-shell{width:100%;height:100dvh;min-height:100vh;color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-sans)}.human2ai-app-shell .yisi-app-shell-content-body{border:1px solid var(--yisiui-color-border-subtle);border-bottom:0}.human2ai-app-shell__page-heading{display:flex;min-width:0;align-items:center;gap:var(--yisiui-space-2)}.human2ai-app-shell__title-extra{display:flex;flex-shrink:0;align-items:center;opacity:0;pointer-events:none}.human2ai-app-shell__page-heading:focus-within .human2ai-app-shell__title-extra,.human2ai-app-shell__page-heading:hover .human2ai-app-shell__title-extra{opacity:1;pointer-events:auto}.human2ai-app-shell__page-title{min-width:0;margin:0;overflow:hidden;font:inherit;text-overflow:ellipsis;white-space:nowrap}.human2ai-app-shell__brand{display:inline-flex;align-items:center;gap:var(--yisiui-space-2);color:inherit;text-decoration:none;border-radius:var(--yisiui-radius-sm)}.human2ai-app-shell__brand-icon{flex-shrink:0}.human2ai-app-shell__brand:focus-visible{outline:2px solid var(--yisiui-color-brand-primary);outline-offset:4px}.yisi-status-badge{display:inline-flex;align-items:center;gap:var(--yisiui-space-1);font-family:var(--yisiui-typography-status-font-family);font-size:var(--yisiui-typography-status-font-size);line-height:var(--yisiui-typography-status-line-height);letter-spacing:var(--yisiui-typography-status-letter-spacing)}.yisi-status-badge-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}.ant-tag.ant-tag-filled.yisi-status-badge.ant-tag-green:not(.ant-tag-disabled){color:var(--yisiui-color-feedback-success);background:var(--yisiui-color-feedback-success-bg);border-color:var(--yisiui-color-feedback-success)}.ant-tag.ant-tag-filled.yisi-status-badge.ant-tag-orange:not(.ant-tag-disabled){color:var(--yisiui-color-feedback-warning);background:var(--yisiui-color-feedback-warning-bg);border-color:var(--yisiui-color-feedback-warning)}.ant-tag.ant-tag-filled.yisi-status-badge.ant-tag-red:not(.ant-tag-disabled){color:var(--yisiui-color-feedback-danger);background:var(--yisiui-color-feedback-danger-bg);border-color:var(--yisiui-color-feedback-danger)}.ant-tag.ant-tag-filled.yisi-status-badge.ant-tag-blue:not(.ant-tag-disabled){color:var(--yisiui-color-feedback-info);background:var(--yisiui-color-feedback-info-bg);border-color:var(--yisiui-color-feedback-info)}.ant-tag.ant-tag-filled.yisi-status-badge.ant-tag-processing:not(.ant-tag-disabled){color:var(--yisiui-color-feedback-processing);background:var(--yisiui-color-feedback-processing-bg);border-color:var(--yisiui-color-feedback-processing)}.ant-tag.ant-tag-filled.yisi-status-badge.yisi-status-badge-icon-only:not(.ant-tag-disabled),.yisi-status-badge-icon-only.ant-tag{display:inline-flex;width:var(--yisiui-space-6);height:var(--yisiui-space-6);align-items:center;justify-content:center;padding:0;border:0;background:transparent}.ant-tag.ant-tag-filled.yisi-status-badge.yisi-status-badge-icon-only:not(.ant-tag-disabled):active,.ant-tag.ant-tag-filled.yisi-status-badge.yisi-status-badge-icon-only:not(.ant-tag-disabled):focus,.ant-tag.ant-tag-filled.yisi-status-badge.yisi-status-badge-icon-only:not(.ant-tag-disabled):hover,.yisi-status-badge-icon-only.ant-tag:active,.yisi-status-badge-icon-only.ant-tag:focus,.yisi-status-badge-icon-only.ant-tag:hover{border:0;background:transparent}.yisi-status-badge-icon-only.ant-tag .anticon{font-size:var(--yisiui-font-size-md)}
@@ -1 +0,0 @@
1
- .yisi-asset-skeleton-tree{box-sizing:border-box;display:flex;width:100%;height:100%;flex-direction:column;min-height:0;overflow-x:hidden;overflow-y:auto;min-width:0;color:var(--yisiui-color-text-primary);overscroll-behavior:contain;scrollbar-color:transparent transparent;scrollbar-gutter:stable;scrollbar-width:thin}.yisi-asset-skeleton-tree::-webkit-scrollbar{width:10px;height:10px}.yisi-asset-skeleton-tree::-webkit-scrollbar-track{background:transparent}.yisi-asset-skeleton-tree::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:var(--yisiui-radius-lg);background:transparent;background-clip:padding-box;opacity:0;-webkit-transition:background-color var(--yisiui-motion-normal),opacity var(--yisiui-motion-normal);transition:background-color var(--yisiui-motion-normal),opacity var(--yisiui-motion-normal)}.yisi-asset-skeleton-tree-scrolling{scrollbar-color:var(--yisiui-color-border-interactive) transparent}.yisi-asset-skeleton-tree-scrolling::-webkit-scrollbar-thumb,.yisi-asset-skeleton-tree-scrolling::-webkit-scrollbar-thumb:hover{background:var(--yisiui-color-border-interactive);background-clip:padding-box;opacity:1}.yisi-asset-skeleton-tree-scrolling::-webkit-scrollbar-thumb:hover{background:var(--yisiui-color-text-muted);background-clip:padding-box}.yisi-asset-skeleton-tree-control.ant-tree{flex:0 0 auto;min-height:100%;background:transparent;border:0}.yisi-asset-skeleton-tree-control .ant-tree-treenode{width:100%;padding:0}.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-container,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content{padding:0}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-switcher{display:flex;width:var(--yisiui-space-3);align-items:center;justify-content:center;margin-inline-end:var(--yisiui-space-0);color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-2xs)}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-container>.ant-tree-switcher{box-sizing:border-box;width:var(--yisiui-space-5);height:auto;align-self:stretch;padding-inline:var(--yisiui-space-1)}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-indent-unit{width:var(--yisiui-space-1)}.yisi-asset-skeleton-tree-content-order-layout .yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-indent>.ant-tree-indent-unit:last-child{width:var(--yisiui-space-0)}.yisi-asset-skeleton-tree-content-order-layout .yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-switcher{box-sizing:border-box;width:calc(var(--yisiui-space-8) + var(--yisiui-space-1));align-items:center;justify-content:flex-start;padding-inline:var(--yisiui-space-1)}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-node-content-wrapper{flex:1;min-width:0;overflow:visible;position:relative;border-radius:var(--yisiui-radius-md);padding:var(--yisiui-space-1);background:transparent;border:0;box-shadow:none;transition:background var(--yisiui-motion-normal),box-shadow var(--yisiui-motion-normal)}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-node-content-wrapper>.ant-tree-title{display:block;width:100%}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper{padding-block:var(--yisiui-space-0)}.yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-container>.ant-tree-node-content-wrapper{padding-block:var(--yisiui-space-1);padding-inline:var(--yisiui-space-0)}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper:hover{background:var(--yisiui-color-surface-soft);box-shadow:none}.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-changed>.ant-tree-node-content-wrapper,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-changed>.ant-tree-node-content-wrapper:hover{background:var(--yisiui-color-feedback-warning-bg)}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper:focus-visible{outline:var(--yisiui-component-focus-outline-width) solid var(--yisiui-component-focus-outline);outline-offset:1px}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper.ant-tree-node-selected{background:var(--yisiui-color-action-primary);color:var(--yisiui-color-text-inverse)}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper.ant-tree-node-selected:hover{background:var(--yisiui-color-action-primary)}.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content.yisi-asset-skeleton-tree-item-current>.ant-tree-node-content-wrapper,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper.ant-tree-node-selected{background:var(--yisiui-color-action-primary);color:var(--yisiui-color-text-inverse)}.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content.yisi-asset-skeleton-tree-item-current>.ant-tree-node-content-wrapper:hover,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper.ant-tree-node-selected:hover{background:var(--yisiui-color-action-primary)}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper.ant-tree-node-selected .yisi-asset-skeleton-tree-node,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content.yisi-asset-skeleton-tree-item-current>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-node{color:var(--yisiui-color-text-inverse)}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper.ant-tree-node-selected .yisi-asset-skeleton-tree-title.ant-typography,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content.yisi-asset-skeleton-tree-item-current>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-title.ant-typography{color:inherit}.yisi-asset-skeleton-tree-control .ant-tree-switcher:before,.yisi-asset-skeleton-tree-control .ant-tree-switcher:not(.ant-tree-switcher-noop):hover:before{background:transparent;box-shadow:none}.yisi-asset-skeleton-tree-edit .ant-tree-node-content-wrapper{cursor:grab}.yisi-asset-skeleton-tree-edit .ant-tree-node-content-wrapper:active{cursor:grabbing}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-container>.ant-tree-node-content-wrapper{background:var(--yisiui-color-feedback-info-bg);box-shadow:inset 0 0 0 1px var(--yisiui-color-border-interactive)}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.yisi-asset-skeleton-tree-item-container>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-drop-indicator{display:none}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper,.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper.ant-tree-node-selected{background:var(--yisiui-color-feedback-info-bg);color:var(--yisiui-color-text-primary);box-shadow:none}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper:hover{background:var(--yisiui-color-feedback-info-bg);box-shadow:none}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-node{color:var(--yisiui-color-text-primary)}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-title.ant-typography{color:inherit}.yisi-asset-skeleton-tree-edit .ant-tree-treenode.drop-target.yisi-asset-skeleton-tree-item-content:not(.yisi-asset-skeleton-tree-item-locked)>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-drop-indicator{display:none}.yisi-asset-skeleton-tree-drop-indicator{position:absolute;z-index:3;height:8px;pointer-events:none}.yisi-asset-skeleton-tree-drop-indicator-line{top:2px;right:0;left:0;height:3px;border-radius:var(--yisiui-radius-sm)}.yisi-asset-skeleton-tree-drop-indicator-dot,.yisi-asset-skeleton-tree-drop-indicator-line{position:absolute;background:var(--yisiui-color-brand-primary);box-shadow:0 0 0 1px var(--yisiui-color-surface-panel)}.yisi-asset-skeleton-tree-drop-indicator-dot{top:0;left:-4px;z-index:1;width:8px;height:8px;border-radius:50%}.yisi-asset-skeleton-tree-item-moved{animation:yisi-asset-skeleton-tree-node-attention .72s ease-out}.yisi-asset-skeleton-tree-control [data-yisi-tree-phase=exit]{pointer-events:none}@keyframes yisi-asset-skeleton-tree-node-attention{0%{opacity:.48}45%{opacity:1}72%{opacity:.62}to{opacity:1}}.yisi-asset-skeleton-tree-node{position:relative;display:flex;width:100%;min-width:0;min-height:28px;align-items:center;gap:var(--yisiui-space-2);overflow:visible;white-space:nowrap}.yisi-asset-skeleton-tree-node-content{min-height:var(--yisiui-space-6)}.yisi-asset-skeleton-tree-copy{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;justify-content:center;gap:var(--yisiui-space-0);overflow:hidden}.yisi-asset-skeleton-tree-description.ant-typography{max-width:24%;flex:0 1 24%;align-self:center;color:var(--yisiui-color-text-muted);font-family:var(--yisiui-typography-meta-font-family);font-size:var(--yisiui-typography-meta-font-size);font-weight:var(--yisiui-typography-meta-font-weight);line-height:var(--yisiui-typography-meta-line-height);letter-spacing:var(--yisiui-typography-meta-letter-spacing);text-align:right}.yisi-asset-skeleton-tree-description.ant-typography,.yisi-asset-skeleton-tree-title{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yisi-asset-skeleton-tree-title.ant-typography{margin-bottom:0;font-family:var(--yisiui-typography-body-small-font-family);font-size:var(--yisiui-typography-body-small-font-size);line-height:var(--yisiui-typography-body-small-line-height);letter-spacing:var(--yisiui-typography-body-small-letter-spacing)}.yisi-asset-skeleton-tree-trailing,.yisi-asset-skeleton-tree-trailing-area{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center}.yisi-asset-skeleton-tree-trailing-area{align-self:center;gap:var(--yisiui-space-2)}.yisi-asset-skeleton-tree-trailing{gap:var(--yisiui-space-1)}.yisi-asset-skeleton-tree-trailing-area .yisi-status-badge.ant-tag{display:inline-flex;align-items:center;justify-content:center}.yisi-asset-skeleton-tree-trailing-area .yisi-status-badge-icon-only.ant-tag{line-height:1}.yisi-asset-skeleton-tree-trailing-area .anticon{display:inline-flex;align-items:center;justify-content:center;align-self:center;line-height:1;vertical-align:0}.yisi-asset-skeleton-tree-trailing-area svg{display:block;margin-block:0;vertical-align:0}.yisi-asset-skeleton-tree-content-order{display:inline-flex;align-items:center;justify-content:flex-start;font-variant-numeric:var(--yisiui-font-variant-numeric-tabular)}.yisi-asset-skeleton-tree-state-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}.yisi-asset-skeleton-tree-node>.yisi-status-badge,.yisi-asset-skeleton-tree-trailing-area>.yisi-status-badge,.yisi-asset-skeleton-tree-trailing>.yisi-status-badge{flex:0 0 auto;min-height:var(--yisiui-space-5);align-self:center;margin-inline-end:0}.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper.ant-tree-node-selected .yisi-asset-skeleton-tree-description.ant-typography,.yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content.yisi-asset-skeleton-tree-item-current>.ant-tree-node-content-wrapper .yisi-asset-skeleton-tree-description.ant-typography{color:inherit}.yisi-asset-skeleton-tree-item-deleted>.ant-tree-node-content-wrapper{opacity:.72}.yisi-asset-skeleton-tree-item-deleted .yisi-asset-skeleton-tree-title{color:var(--yisiui-color-text-muted);text-decoration:line-through}@media (prefers-reduced-motion:reduce){.yisi-asset-skeleton-tree-control .ant-tree-node-content-wrapper{transition:none}.yisi-asset-skeleton-tree-item-moved{animation:none}}.human2ai-compact-dropdown-select{display:inline-block;width:100%;min-width:0}.human2ai-compact-dropdown-select__control.ant-select{box-sizing:border-box;width:100%;min-height:var(--yisiui-component-button-height);padding:var(--yisiui-space-2) var(--yisiui-space-3);border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-sm);color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-panel);box-shadow:none;font-family:var(--yisiui-font-family-sans);transition:border-color var(--yisiui-motion-fast),background-color var(--yisiui-motion-fast),box-shadow var(--yisiui-motion-fast),border-radius var(--yisiui-motion-fast)}.human2ai-compact-dropdown-select__control.ant-select:not(.ant-select-disabled):hover{border-color:var(--yisiui-color-border-hover);background:var(--yisiui-color-surface-hover)}.human2ai-compact-dropdown-select__control.ant-select-focused,.human2ai-compact-dropdown-select__control.ant-select-open{border-color:var(--yisiui-color-border-focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--yisiui-color-border-focus) 16%,transparent)}.human2ai-compact-dropdown-select__control.ant-select-disabled{border-color:var(--yisiui-color-border-disabled);background:var(--yisiui-color-surface-disabled);color:var(--yisiui-color-text-disabled)}.human2ai-compact-dropdown-select[data-open=true][data-placement=bottom] .human2ai-compact-dropdown-select__control{border-end-start-radius:0;border-end-end-radius:0}.human2ai-compact-dropdown-select[data-open=true][data-placement=top] .human2ai-compact-dropdown-select__control{border-start-start-radius:0;border-start-end-radius:0}.human2ai-compact-dropdown-select__value{overflow:hidden;color:var(--yisiui-color-text-primary);text-overflow:ellipsis;white-space:nowrap}.human2ai-compact-dropdown-select__control .ant-select-placeholder{color:var(--yisiui-color-text-muted)}.human2ai-compact-dropdown-select__suffix{color:var(--yisiui-color-text-secondary)}.human2ai-compact-dropdown-select__arrow{transition:transform var(--yisiui-motion-normal)}.human2ai-compact-dropdown-select[data-open=true] .human2ai-compact-dropdown-select__arrow{transform:rotate(180deg)}.human2ai-compact-dropdown-select__popup.ant-select-dropdown{box-sizing:border-box;padding:var(--yisiui-space-1);border:1px solid var(--yisiui-color-border-subtle);background:var(--yisiui-color-surface-panel);box-shadow:var(--yisiui-shadow-card)}.human2ai-compact-dropdown-select__popup.ant-select-dropdown-placement-bottomLeft{border-start-start-radius:0;border-start-end-radius:0;border-end-start-radius:var(--yisiui-radius-sm);border-end-end-radius:var(--yisiui-radius-sm)}.human2ai-compact-dropdown-select__popup.ant-select-dropdown-placement-topLeft{border-start-start-radius:var(--yisiui-radius-sm);border-start-end-radius:var(--yisiui-radius-sm);border-end-start-radius:0;border-end-end-radius:0}.human2ai-compact-dropdown-select__list,.human2ai-compact-dropdown-select__popup-content{background:var(--yisiui-color-surface-panel)}.human2ai-compact-dropdown-select__option.ant-select-item-option{min-height:var(--yisiui-component-button-height);align-items:center;padding:var(--yisiui-space-2);border-radius:var(--yisiui-radius-sm);color:var(--yisiui-color-text-primary)}.human2ai-compact-dropdown-select__option.ant-select-item-option-active:not(.ant-select-item-option-disabled){background:var(--yisiui-color-surface-hover)}.human2ai-compact-dropdown-select__option.ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:var(--yisiui-color-selection-text);background:var(--yisiui-color-surface-selected)}.human2ai-compact-dropdown-select__option .ant-select-item-option-content{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.human2ai-compact-dropdown-select__option .ant-select-item-option-state{color:var(--yisiui-color-selection-text)}@media (prefers-reduced-motion:reduce){.human2ai-compact-dropdown-select__arrow,.human2ai-compact-dropdown-select__control.ant-select{transition:none}}.human2ai-workspace-sidebar{box-sizing:border-box;display:flex;width:100%;height:100%;min-height:0;flex-direction:column}.human2ai-workspace-sidebar h2{margin:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs);font-weight:var(--yisiui-font-weight-semibold);line-height:var(--yisiui-font-line-height-normal)}.human2ai-workspace-sidebar__actions{display:flex;flex:0 0 auto;flex-direction:column;gap:var(--yisiui-space-1);padding:0 var(--yisiui-space-4) var(--yisiui-space-4)}.human2ai-workspace-sidebar__actions h2{margin-bottom:var(--yisiui-space-2)}.human2ai-workspace-sidebar__actions-loading{height:auto}.human2ai-workspace-sidebar__error{margin:var(--yisiui-space-1) 0 0;color:var(--yisiui-color-feedback-danger-text);font-size:var(--yisiui-font-size-xs)}.human2ai-workspace-sidebar__projects{display:flex;min-height:0;flex:1 1 auto;flex-direction:column;gap:var(--yisiui-space-2);padding:0 var(--yisiui-space-4) var(--yisiui-space-4)}.human2ai-workspace-sidebar__projects>.yisi-asset-skeleton-tree{min-height:0;flex:1 1 auto}.human2ai-workspace-sidebar__loading{min-height:0;flex:1 1 auto;padding-top:var(--yisiui-space-2)}.human2ai-workspace-sidebar__language-selector{box-sizing:border-box;display:flex;width:100%;flex:0 0 auto;justify-content:center;align-items:center;gap:var(--yisiui-space-2);padding:0 var(--yisiui-space-4) var(--yisiui-space-4)}.human2ai-workspace-sidebar__language-selector>.human2ai-compact-dropdown-select{width:120px;max-width:100%}.human2ai-workspace-sidebar__state{display:flex;min-height:var(--yisiui-space-10);align-items:center;gap:var(--yisiui-space-2);color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-xs)}.human2ai-workspace-sidebar__project-actions{display:inline-flex;align-items:center;gap:var(--yisiui-space-0)}.human2ai-workspace-sidebar__node-menu,.human2ai-workspace-sidebar__project-actions{opacity:0;pointer-events:none;transition:opacity var(--yisiui-motion-fast)}.human2ai-workspace-sidebar__project-actions .human2ai-workspace-sidebar__node-menu{opacity:1;pointer-events:auto}.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-item-container>.ant-tree-node-content-wrapper>.ant-tree-iconEle{display:none}.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.human2ai-workspace-sidebar__group>.ant-tree-node-content-wrapper{padding-block:var(--yisiui-space-0)}.human2ai-workspace-sidebar__group .yisi-asset-skeleton-tree-node{min-height:var(--yisiui-space-6)}.human2ai-workspace-sidebar .human2ai-workspace-sidebar__group>.ant-tree-node-content-wrapper,.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper{display:flex;align-items:center}.human2ai-workspace-sidebar .human2ai-workspace-sidebar__group>.ant-tree-node-content-wrapper>.ant-tree-iconEle{display:inline-block;color:var(--yisiui-color-text-muted)}.human2ai-workspace-sidebar .human2ai-workspace-sidebar__group>.ant-tree-node-content-wrapper>.ant-tree-title,.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper>.ant-tree-title{min-width:0;flex:1 1 auto;width:auto}.human2ai-workspace-sidebar .human2ai-workspace-sidebar__repository-link{color:var(--yisiui-color-text-secondary)}.human2ai-workspace-sidebar .human2ai-workspace-sidebar__repository-link:is(:hover,:focus-visible){color:var(--yisiui-color-action-link)}.human2ai-workspace-sidebar__session-type-icon{display:inline-flex;align-items:center;color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-sm)}.human2ai-workspace-sidebar__tree-node{min-width:0;width:100%}.human2ai-workspace-sidebar__tree-node[data-drop-target=true]{background:var(--yisiui-color-surface-soft);outline:1px solid var(--yisiui-color-action-primary)}.human2ai-workspace-sidebar .ant-tree-node-content-wrapper.ant-tree-node-selected .human2ai-workspace-sidebar__session-type-icon,.human2ai-workspace-sidebar .ant-tree-node-content-wrapper:hover .human2ai-workspace-sidebar__session-type-icon{color:inherit}.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper:hover{background:var(--yisiui-color-surface-soft);color:var(--yisiui-color-text-primary)}.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper.ant-tree-node-selected:hover{color:var(--yisiui-color-brand-primary)}.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper:hover .yisi-asset-skeleton-tree-node,.human2ai-workspace-sidebar .yisi-asset-skeleton-tree-control .ant-tree-treenode.yisi-asset-skeleton-tree-item-content>.ant-tree-node-content-wrapper:hover .yisi-asset-skeleton-tree-title.ant-typography{color:inherit}.human2ai-workspace-sidebar .ant-tree-node-content-wrapper:focus-within .human2ai-workspace-sidebar__node-menu,.human2ai-workspace-sidebar .ant-tree-node-content-wrapper:focus-within .human2ai-workspace-sidebar__project-actions,.human2ai-workspace-sidebar .ant-tree-node-content-wrapper:hover .human2ai-workspace-sidebar__node-menu,.human2ai-workspace-sidebar .ant-tree-node-content-wrapper:hover .human2ai-workspace-sidebar__project-actions,.human2ai-workspace-sidebar .ant-tree-treenode:hover .human2ai-workspace-sidebar__node-menu,.human2ai-workspace-sidebar .ant-tree-treenode:hover .human2ai-workspace-sidebar__project-actions{opacity:1;pointer-events:auto}@media (prefers-reduced-motion:reduce){.human2ai-workspace-sidebar__node-menu,.human2ai-workspace-sidebar__project-actions{transition:none}}.human2ai-session-details{min-width:0}.human2ai-session-details h2{margin:0 0 var(--yisiui-space-3);color:var(--yisiui-color-text-primary);font-size:var(--yisiui-font-size-lg);line-height:var(--yisiui-font-line-height-tight)}.human2ai-session-details__list{display:grid;min-width:0;gap:var(--yisiui-space-3);margin:0}.human2ai-session-details__row{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) minmax(0,auto);align-items:center;gap:var(--yisiui-space-3)}.human2ai-session-details__row dt{min-width:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm)}.human2ai-session-details__row dd{min-width:0;margin:0;text-align:right}.human2ai-session-details__row time,.human2ai-session-details__value{color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-mono);font-size:var(--yisiui-font-size-sm);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.human2ai-session-details__action-button.ant-btn{max-width:100%}.human2ai-session-details__error{margin:var(--yisiui-space-2) 0 0;color:var(--yisiui-color-status-danger);font-size:var(--yisiui-font-size-xs);text-align:right}@media (max-width:340px){.human2ai-session-details__row--agent{grid-template-columns:minmax(0,1fr)}.human2ai-session-details__row--agent .human2ai-session-details__action-button.ant-btn,.human2ai-session-details__row--agent dd{width:100%}}.yisi-aspect-ratio-selector{position:relative;box-sizing:border-box;display:flex;flex-direction:column;width:min(100%,184px);min-width:160px;min-height:156px;gap:var(--yisiui-space-2);margin:0;padding:var(--yisiui-space-2) var(--yisiui-space-2) var(--yisiui-space-3);border:0;color:var(--yisiui-color-text-primary);font-family:var(--yisiui-typography-body-font-family)}.yisi-aspect-ratio-selector-header{display:flex;min-width:0;min-height:24px;align-items:center;justify-content:center;gap:var(--yisiui-space-2)}.yisi-aspect-ratio-selector-title{min-width:0;overflow:hidden;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs);font-weight:var(--yisiui-font-weight-regular);line-height:var(--yisiui-font-line-height-compact);text-overflow:ellipsis;white-space:nowrap}.yisi-aspect-ratio-selector-input-label,.yisi-aspect-ratio-selector-inputs{display:flex;align-items:center}.yisi-aspect-ratio-selector-inputs{flex:0 0 auto;gap:var(--yisiui-space-1);color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs);line-height:1}.yisi-aspect-ratio-selector-input-label{gap:2px}.yisi-aspect-ratio-selector-input{box-sizing:border-box;width:36px;height:24px;min-width:0;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield;border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-sm);outline:none;background:var(--yisiui-color-surface-panel);color:var(--yisiui-color-text-primary);font:inherit;line-height:1;padding:0 3px;text-align:center}.yisi-aspect-ratio-selector-input::-webkit-inner-spin-button,.yisi-aspect-ratio-selector-input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;appearance:none}.yisi-aspect-ratio-selector-input:hover:not(:disabled){border-color:var(--yisiui-color-border-interactive)}.yisi-aspect-ratio-selector-input:focus-visible{border-color:var(--yisiui-color-border-focus);outline:2px solid var(--yisiui-color-border-focus);outline-offset:1px}.yisi-aspect-ratio-selector-input[aria-invalid=true]{border-color:var(--yisiui-color-border-error)}.yisi-aspect-ratio-selector-input:disabled{border-color:var(--yisiui-color-border-disabled);background:var(--yisiui-color-surface-disabled);color:var(--yisiui-color-text-disabled);cursor:not-allowed}.yisi-aspect-ratio-selector-multiply{color:var(--yisiui-color-text-disabled)}.yisi-aspect-ratio-selector-options{display:grid;grid-template-columns:40px minmax(64px,72px) 40px;grid-template-rows:30px 30px 30px;align-items:center;justify-content:center;-moz-column-gap:var(--yisiui-space-2);column-gap:var(--yisiui-space-2);row-gap:var(--yisiui-space-1)}.yisi-aspect-ratio-selector-preview-area{display:flex;grid-column:2;grid-row:1/span 2;width:72px;height:64px;align-items:center;justify-content:center}.yisi-aspect-ratio-selector-preview{box-sizing:border-box;display:block;width:var(--yisiui-aspect-ratio-preview-width);height:var(--yisiui-aspect-ratio-preview-height);border:2px solid var(--yisiui-color-border-interactive);border-radius:var(--yisiui-radius-sm);background:var(--yisiui-color-feedback-info-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--yisiui-color-surface-panel) 72%,transparent);transition:width var(--yisiui-motion-normal) ease,height var(--yisiui-motion-normal) ease}@media (prefers-reduced-motion:reduce){.yisi-aspect-ratio-selector-option,.yisi-aspect-ratio-selector-preview{transition:none}}.yisi-aspect-ratio-selector-current{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;border:0;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%)}.yisi-aspect-ratio-selector-option{box-sizing:border-box;display:flex;width:40px;height:28px;min-width:0;align-items:center;justify-content:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-sm);background:var(--yisiui-color-surface-panel);color:var(--yisiui-color-text-secondary);cursor:pointer;font:inherit;font-size:var(--yisiui-font-size-xs);line-height:1;padding:0 2px;transition:background-color var(--yisiui-motion-normal) ease,border-color var(--yisiui-motion-normal) ease,color var(--yisiui-motion-normal) ease}.yisi-aspect-ratio-selector-option>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yisi-aspect-ratio-selector-option[data-position=left-top]{grid-column:1;grid-row:1}.yisi-aspect-ratio-selector-option[data-position=right-top]{grid-column:3;grid-row:1}.yisi-aspect-ratio-selector-option[data-position=left-middle]{grid-column:1;grid-row:2}.yisi-aspect-ratio-selector-option[data-position=right-middle]{grid-column:3;grid-row:2}.yisi-aspect-ratio-selector-option[data-position=left-bottom]{grid-column:1;grid-row:3}.yisi-aspect-ratio-selector-option[data-position=center-bottom]{grid-column:2;grid-row:3;justify-self:center}.yisi-aspect-ratio-selector-option[data-position=right-bottom]{grid-column:3;grid-row:3}.yisi-aspect-ratio-selector-option:hover:not(:disabled){border-color:var(--yisiui-color-border-interactive);background:var(--yisiui-color-surface-hover);color:var(--yisiui-color-text-primary)}.yisi-aspect-ratio-selector-option[aria-checked=true],.yisi-aspect-ratio-selector-option[aria-checked=true]:hover{border-color:var(--yisiui-color-action-link);background:var(--yisiui-color-feedback-info-bg);color:var(--yisiui-color-action-link);font-weight:var(--yisiui-font-weight-semibold)}.yisi-aspect-ratio-selector-option:focus-visible{z-index:1;outline:2px solid var(--yisiui-color-border-focus);outline-offset:2px}.yisi-aspect-ratio-selector-option:disabled{border-color:var(--yisiui-color-border-subtle);background:var(--yisiui-color-surface-page);color:var(--yisiui-color-text-disabled);cursor:not-allowed}.human2ai-canvas-frame-controls__heading{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-3);margin-bottom:var(--yisiui-space-3)}.human2ai-canvas-frame-controls__heading h2{margin:0}.human2ai-canvas-frame-controls__actions{display:flex;align-items:center;gap:var(--yisiui-space-1)}.human2ai-canvas-frame-controls__size{display:flex;justify-content:center;--yisiui-color-brand-primary:var(--yisiui-color-selection-text)}.yisi-image-title-card{display:flex;min-width:0;margin:0;flex-direction:column;gap:0;color:var(--yisiui-color-text-primary)}.yisi-image-title-card-media{position:relative;width:100%;min-width:0;overflow:visible;border-radius:var(--yisiui-component-card-radius)}.yisi-image-title-card-image{position:absolute;top:var(--yisiui-space-2);bottom:0;left:50%;width:calc(100% - var(--yisiui-space-8));overflow:hidden;border-radius:var(--yisiui-component-card-radius);box-shadow:var(--yisiui-shadow-card);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - var(--yisiui-space-6)),transparent 100%);mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - var(--yisiui-space-6)),transparent 100%);transform:translateX(calc(-50% + var(--yisiui-image-title-card-offset))) translateY(var(--yisiui-image-title-card-lift)) rotate(var(--yisiui-image-title-card-rotation));transform-origin:50% 100%}.yisi-image-title-card-media[data-image-count="1"] .yisi-image-title-card-image{top:0;width:100%;box-shadow:none}.yisi-image-title-card-image>img,.yisi-image-title-card-image>picture,.yisi-image-title-card-image>picture>img,.yisi-image-title-card-image>video{display:block;width:100%;height:100%}.yisi-image-title-card-image>img,.yisi-image-title-card-image>picture>img,.yisi-image-title-card-image>video{-o-object-fit:contain;object-fit:contain}.yisi-image-title-card-title{position:relative;z-index:30;display:block;min-width:0;overflow:hidden;margin-top:calc(var(--yisiui-space-4) * -1);padding:var(--yisiui-space-3) var(--yisiui-space-1) 0;color:var(--yisiui-color-text-primary);font-family:var(--yisiui-typography-card-title-font-family);font-size:var(--yisiui-typography-card-title-font-size);font-weight:var(--yisiui-typography-card-title-font-weight);line-height:var(--yisiui-font-line-height-compact);text-align:center;text-overflow:ellipsis;white-space:nowrap}.human2ai-style-library{box-sizing:border-box;min-height:100%;padding:var(--yisiui-surface-desktop-web-page-padding)}.human2ai-style-library__toolbar{display:flex;align-items:center;gap:var(--yisiui-space-3);margin-bottom:var(--yisiui-space-5)}.human2ai-style-library[data-loading=true]{display:flex;height:100%;flex-direction:column}.human2ai-style-library[data-loading=true]>.human2ai-style-library__toolbar{flex-shrink:0}.human2ai-style-library[data-loading=true]>.yisi-loading-state{height:auto;flex:1}.human2ai-style-library__search{width:min(280px,100%)}.human2ai-style-library__toolbar>:last-child{margin-left:auto}.human2ai-style-library__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:var(--yisiui-space-6) calc(var(--yisiui-space-8) * 2);padding:var(--yisiui-space-8)}.human2ai-style-library__card{position:relative;min-width:0;transition:transform var(--yisiui-motion-fast)}.human2ai-style-library__card:focus-within,.human2ai-style-library__card:hover{transform:translateY(-1px)}.human2ai-style-library__card-trigger{position:absolute;z-index:31;inset:0;width:100%;padding:0;border:0;border-radius:var(--yisiui-radius-lg);background:transparent;cursor:pointer}.human2ai-style-library__card-trigger:focus-visible{outline:2px solid var(--yisiui-color-border-focus);outline-offset:var(--yisiui-space-1)}.human2ai-style-library__preview-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-3);padding-right:var(--yisiui-space-8)}.human2ai-style-library__preview-title{min-width:0;overflow-wrap:anywhere}.human2ai-style-library__badges{flex-shrink:0;font-size:var(--yisiui-font-size-xs);font-weight:var(--yisiui-font-weight-regular)}.human2ai-style-library__badges,.human2ai-style-library__page-state{display:flex;align-items:center;gap:var(--yisiui-space-2);color:var(--yisiui-color-text-muted)}.human2ai-style-library__page-state{min-height:360px;justify-content:center}.human2ai-style-library__preview{display:grid;height:min(560px,calc(100dvh - 200px));min-height:0;grid-template-columns:minmax(0,3fr) minmax(260px,2fr);grid-template-rows:minmax(0,1fr);gap:var(--yisiui-space-6)}.human2ai-style-library__preview>section{display:flex;min-width:0;min-height:0;flex-direction:column}.human2ai-style-library__preview>.human2ai-style-library__specification{display:block;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.human2ai-style-library__specification:focus-visible{outline:2px solid var(--yisiui-color-border-focus);outline-offset:var(--yisiui-space-1)}.human2ai-style-library__preview h2{flex-shrink:0;margin:0 0 var(--yisiui-space-3);color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs);font-weight:var(--yisiui-font-weight-semibold);line-height:var(--yisiui-font-line-height-normal)}.human2ai-style-library__active-reference,.human2ai-style-library__no-reference{display:grid;min-height:0;flex:1 1 auto;grid-template-rows:minmax(0,1fr);place-items:center;background:var(--yisiui-color-surface-soft)}.human2ai-style-library__active-reference img{width:100%;height:100%;max-height:500px;-o-object-fit:contain;object-fit:contain}.human2ai-style-library__no-reference{color:var(--yisiui-color-text-muted)}.human2ai-style-library__thumbnails{display:flex;flex-shrink:0;overflow-x:auto;gap:var(--yisiui-space-2);margin-top:var(--yisiui-space-3);padding-bottom:var(--yisiui-space-1)}.human2ai-style-library__thumbnails button{overflow:hidden;width:72px;height:54px;flex:0 0 auto;padding:0;border:1px solid transparent;border-radius:var(--yisiui-radius-sm);background:var(--yisiui-color-surface-soft);cursor:pointer}.human2ai-style-library__thumbnails button[aria-pressed=true]{border-color:var(--yisiui-color-brand-primary)}.human2ai-style-library__thumbnails img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.human2ai-style-library__description{overflow-wrap:anywhere;margin:0;color:var(--yisiui-color-text-primary);font-size:var(--yisiui-font-size-md);line-height:var(--yisiui-font-line-height-reading);white-space:pre-wrap}.human2ai-style-library__editor-actions,.human2ai-style-library__preview-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-2)}.human2ai-style-library__select-action{margin-inline-start:auto}.human2ai-style-library__editor{display:grid;gap:var(--yisiui-space-4)}.human2ai-style-library__editor label,.human2ai-style-library__field{display:grid;gap:var(--yisiui-space-2);color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm)}.human2ai-style-library__editor-references{display:flex;overflow-x:auto;gap:var(--yisiui-space-2);padding-bottom:var(--yisiui-space-1)}.human2ai-style-library__add-reference,.human2ai-style-library__editor-reference{position:relative;overflow:hidden;width:96px;height:72px;flex:0 0 auto;border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-sm);background:var(--yisiui-color-surface-soft)}.human2ai-style-library__editor-reference>img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.human2ai-style-library__editor-reference>button{position:absolute;top:var(--yisiui-space-1);right:var(--yisiui-space-1);display:grid;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,var(--yisiui-color-surface-panel) 90%,transparent);color:var(--yisiui-color-text-primary);cursor:pointer;place-items:center}.human2ai-style-library__editor-reference>span{position:absolute;right:var(--yisiui-space-1);bottom:var(--yisiui-space-1);color:var(--yisiui-color-text-inverse);font-size:var(--yisiui-font-size-xs);text-shadow:0 1px 4px rgb(0 0 0/70%)}.human2ai-style-library__add-reference{display:grid;align-content:center;justify-items:center;gap:var(--yisiui-space-1);color:var(--yisiui-color-text-secondary);cursor:pointer;font:inherit}.human2ai-style-library__file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.human2ai-style-library__image-hint{color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-xs)}.human2ai-style-library__error{margin:0;color:var(--yisiui-color-feedback-danger-text);font-size:var(--yisiui-font-size-xs)}@media (max-width:960px){.human2ai-style-library__toolbar{flex-wrap:wrap}.human2ai-style-library__toolbar>:last-child{margin-left:0}}@media (max-width:720px){.human2ai-style-library{padding:var(--yisiui-space-3)}.human2ai-style-library__search{width:100%}.human2ai-style-library__preview{grid-template-columns:1fr;grid-template-rows:minmax(0,2fr) minmax(0,3fr)}}@media (prefers-reduced-motion:reduce){.human2ai-style-library__card{transition:none}}.human2ai-style-library__reference-switch{flex-shrink:0;margin-bottom:var(--yisiui-space-3)}.human2ai-style-library__model-cover{display:grid;width:100%;height:100%;align-content:center;justify-items:center;gap:var(--yisiui-space-2);background:var(--yisiui-color-surface-soft);color:var(--yisiui-color-text-muted);font-size:var(--yisiui-font-size-sm)}.human2ai-style-library__model-cover>.anticon{font-size:var(--yisiui-font-size-2xl)}.human2ai-session-style-picker{min-width:0}.human2ai-session-style-picker h2{margin:0 0 var(--yisiui-space-3);color:var(--yisiui-color-text-primary);font-size:var(--yisiui-font-size-lg);line-height:var(--yisiui-font-line-height-tight)}.human2ai-session-style-picker__controls{display:flex;align-items:center;gap:var(--yisiui-space-2)}.human2ai-session-style-picker__choose{flex:1;min-width:0}.human2ai-session-style-picker__choose>span:last-child{overflow:hidden;text-overflow:ellipsis}.human2ai-session-style-picker__error,.human2ai-session-style-picker__status{margin:var(--yisiui-space-2) 0 0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm);overflow-wrap:anywhere}.human2ai-session-style-picker__error{color:var(--yisiui-color-feedback-error)}.human2ai-state-tabs{min-width:0;max-width:100%}.human2ai-state-tabs .yisi-tab-switch-label{max-width:240px}.human2ai-state-tabs [data-yisiui-slot=trailingAction]>button{color:var(--yisiui-color-text-secondary);background:var(--yisiui-color-surface-soft)}.human2ai-state-tabs [data-yisiui-slot=trailingAction]>button:hover{color:var(--yisiui-color-text-primary);background:var(--yisiui-color-surface-hover)}.spatial-workspace{box-sizing:border-box;display:flex;height:100%;min-height:0;min-width:0;overflow:hidden;padding:var(--yisiui-space-3);color:var(--yisiui-color-text-primary)}.spatial-workflow{flex:1}.spatial-workflow .human2ai-composition-workflow__stage{overflow:hidden}.spatial-workspace-controls{position:relative;display:flex;align-items:center}.spatial-workspace-error{position:absolute;right:calc(100% + var(--yisiui-space-2));display:flex;align-items:center}.spatial-center{flex:1;flex-direction:column;overflow:hidden;border-radius:var(--yisiui-radius-md)}.spatial-center,.spatial-space{position:relative;display:flex;min-width:0;min-height:0}.spatial-space{flex:1}.spatial-space[hidden]{display:none}.spatial-camera-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));align-content:start;gap:var(--yisiui-space-4);min-height:0;overflow:auto}.spatial-camera-gallery,.spatial-panel-body{scrollbar-width:none}.spatial-camera-gallery::-webkit-scrollbar,.spatial-panel-body::-webkit-scrollbar{display:none}.spatial-camera-card{width:100%;max-width:420px;position:relative;display:flex;flex-direction:column;gap:var(--yisiui-space-2);min-width:0;margin:0}.spatial-camera-card .spatial-camera-select{position:absolute;inset:0;z-index:1;width:100%;height:100%;border-radius:var(--yisiui-radius-md)}.spatial-camera-card:hover .spatial-camera-image,.spatial-camera-card[data-selected=true] .spatial-camera-image{border-color:var(--yisiui-color-action-primary)}.spatial-camera-image .ant-alert button{position:relative;z-index:2}.spatial-camera-card figcaption{display:flex;align-items:center;gap:var(--yisiui-space-2);min-width:0;font-size:var(--yisiui-font-size-sm)}.spatial-camera-caption-content{display:grid;flex:1;min-width:0;align-items:center}.spatial-camera-caption-content>*{grid-area:1/1;min-width:0}.spatial-camera-name{overflow-wrap:anywhere}.spatial-camera-pass-controls{position:relative;z-index:2;visibility:hidden;opacity:0}.spatial-camera-card:is(:hover,:focus-within) .spatial-camera-name{visibility:hidden}.spatial-camera-card:is(:hover,:focus-within) .spatial-camera-pass-controls{visibility:visible;opacity:1}.spatial-camera-download{position:relative;z-index:2;flex:none}.spatial-camera-image{display:grid;place-items:center;aspect-ratio:4/3;min-width:0;overflow:hidden;border:1px solid var(--yisiui-color-border-subtle);border-radius:var(--yisiui-radius-md);background:var(--yisiui-color-surface-soft)}.spatial-camera-image>*{grid-area:1/1;min-width:0;max-width:100%}.spatial-camera-image>.spatial-reference-image{height:100%}.spatial-reference-image{position:relative;align-self:center;width:100%;min-width:0;min-height:0}.spatial-reference-image>img{display:block;width:100%;height:100%;min-height:0;-o-object-fit:contain;object-fit:contain}.spatial-reference-image>.yisi-loading-state{position:absolute;inset:0}.spatial-camera-image>.ant-alert{box-sizing:border-box}.spatial-camera-pending{margin:0;padding:var(--yisiui-space-3);color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm);text-align:center}.spatial-observation{display:flex;flex:1;flex-direction:column;gap:var(--yisiui-space-4);min-width:0;min-height:0;overflow:hidden}.spatial-observation-toolbar{display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--yisiui-space-3)}.spatial-observation-select{width:180px;max-width:100%}.spatial-observation-directions{display:flex;align-items:center;gap:var(--yisiui-space-2);margin-left:auto}.spatial-observation-cube{flex:none;width:58px;height:60px;overflow:visible}.spatial-observation-cube polygon{fill:var(--yisiui-color-text-secondary);fill-opacity:.03;stroke:var(--yisiui-color-text-secondary);stroke-opacity:.35;stroke-width:1.25;stroke-linejoin:round}.spatial-observation-cube polygon[data-rear=true]{stroke-dasharray:3 3}.spatial-observation-cube polygon[data-enabled=true]{fill:var(--yisiui-color-action-primary);fill-opacity:.25;stroke:var(--yisiui-color-action-primary);stroke-opacity:1}.spatial-observation-cube polygon[data-rear=true][data-enabled=true]{fill-opacity:.14}.spatial-observation-face-buttons{display:grid;grid-template-columns:repeat(7,28px);row-gap:var(--yisiui-space-1);-moz-column-gap:var(--yisiui-space-2);column-gap:var(--yisiui-space-2)}.spatial-observation-face-button{min-width:0;padding-inline:var(--yisiui-space-1);font-size:var(--yisiui-font-size-sm)}.spatial-observation-preview{display:grid;flex:1;grid-template:minmax(0,1fr) /minmax(0,1fr);place-items:center;min-width:0;min-height:0;overflow:auto;background:var(--yisiui-color-surface-soft);border-radius:var(--yisiui-radius-md)}.spatial-observation-preview>img{display:block;width:100%;height:100%;min-width:0;min-height:0;-o-object-fit:contain;object-fit:contain}.spatial-observation-preview>.ant-alert{box-sizing:border-box;max-width:100%}.spatial-observation-actions{display:flex;flex:none;flex-wrap:wrap;justify-content:center;gap:var(--yisiui-space-3)}.spatial-observation-status{margin:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm);text-align:center}.spatial-panel,.spatial-panel-host{height:100%;min-height:0}.spatial-panel{box-sizing:border-box;display:flex;flex-direction:column;gap:var(--yisiui-space-5);padding:var(--yisiui-space-5);color:var(--yisiui-color-text-primary)}.spatial-panel .spatial-panel-tabs{min-width:0}.spatial-panel-tabs .yisi-tab-switch-item{flex:1 0 auto}.spatial-panel-tabs .yisi-tab-switch-label{flex:1;padding-inline:var(--yisiui-space-1)}.spatial-panel-body{display:flex;flex-direction:column;gap:var(--yisiui-space-5);min-height:0;overflow:auto}.spatial-panel h2{margin:0;font-size:var(--yisiui-font-size-lg);font-weight:600}.spatial-objects,.spatial-parameters,.spatial-preview,.spatial-tools{display:flex;flex:none;flex-direction:column;gap:var(--yisiui-space-3);min-width:0}.spatial-add-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--yisiui-space-2)}.spatial-object-actions,.spatial-tool-modes{display:flex;flex-wrap:wrap;gap:var(--yisiui-space-2)}.spatial-tool-modes [aria-pressed=true]{color:var(--yisiui-color-action-primary);background:var(--yisiui-color-surface-panel)}.spatial-parameters-empty{margin:0;color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-sm)}.spatial-object-tree .ant-tree-node-content-wrapper{display:flex;align-items:center}.spatial-object-tree .ant-tree-node-content-wrapper>.ant-tree-title{flex:1;min-width:0}.spatial-object-tree .yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-container>.ant-tree-node-content-wrapper{padding:0 var(--yisiui-space-1)}.spatial-object-tree .yisi-asset-skeleton-tree-control.ant-tree .ant-tree-treenode.yisi-asset-skeleton-tree-item-container>.ant-tree-switcher{width:var(--yisiui-space-3);padding:0}.spatial-object-tree .yisi-asset-skeleton-tree-node{min-height:var(--yisiui-space-6)}.spatial-object-tree .ant-tree-iconEle{flex:none;font-size:var(--yisiui-font-size-sm)}.spatial-tree-locks{display:inline-flex;gap:var(--yisiui-space-1);color:var(--yisiui-color-text-secondary)}.spatial-viewport{position:relative;flex:1;min-height:160px;min-width:0;overflow:hidden;background:linear-gradient(160deg,#f9fafb,#edf0f3)}.spatial-viewport:focus-visible{outline:none}.spatial-viewport>canvas{display:block;width:100%;height:100%;touch-action:none}.spatial-viewport__error{padding:var(--yisiui-space-5)}.spatial-field{display:flex;flex-direction:column;gap:var(--yisiui-space-2);font-size:var(--yisiui-font-size-sm);min-width:0}.spatial-field>span{color:var(--yisiui-color-text-secondary)}.spatial-object-editor-fields{display:grid;gap:var(--yisiui-space-4)}.spatial-note-tooltip{white-space:pre-wrap;overflow-wrap:anywhere}.spatial-vector{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--yisiui-space-1)}.spatial-field .ant-input-number,.spatial-field .ant-select{width:100%;min-width:0}.spatial-locks{display:flex;flex-direction:column;gap:var(--yisiui-space-2)}.spatial-locks .ant-checkbox-wrapper{font-size:var(--yisiui-font-size-sm)}.spatial-output-size{display:grid;grid-template-columns:1fr 1fr;gap:var(--yisiui-space-2)}.spatial-dimensions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--yisiui-space-2)}.spatial-dimensions .spatial-field{justify-content:space-between}.spatial-body-ratio{display:flex;flex-direction:column;gap:var(--yisiui-space-2);font-size:var(--yisiui-font-size-sm)}.spatial-ratio-heading,.spatial-ratio-values{display:flex;align-items:center;justify-content:space-between;gap:var(--yisiui-space-2);color:var(--yisiui-color-text-secondary)}.spatial-ratio-track{position:relative;height:4px;margin-block:var(--yisiui-space-3);border-radius:var(--yisiui-radius-sm)}.spatial-ratio-track .spatial-ratio-slider{position:absolute;top:-4px;margin:0}.spatial-ratio-slider .ant-slider-dot,.spatial-ratio-slider .ant-slider-mark{display:none}.spatial-proportion-error{color:var(--yisiui-color-text-secondary)}.spatial-shape-control{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(56px,1fr) 64px;align-items:center;gap:var(--yisiui-space-2);font-size:var(--yisiui-font-size-sm)}.spatial-shape-control>span{display:flex;align-items:center;gap:var(--yisiui-space-1);color:var(--yisiui-color-text-secondary);overflow-wrap:anywhere}.spatial-shape-control .ant-input-number{width:100%;min-width:0}.spatial-shape-control .ant-slider-dot,.spatial-shape-control .ant-slider-mark{display:none}.spatial-hand-controls{display:flex;flex-direction:column;gap:var(--yisiui-space-2)}.spatial-hand-control{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:var(--yisiui-space-3);font-size:var(--yisiui-font-size-sm)}.spatial-hand-control>span{color:var(--yisiui-color-text-secondary);overflow-wrap:anywhere}.spatial-preview img{align-self:center;width:100%;height:auto;-o-object-fit:contain;object-fit:contain;background:repeating-conic-gradient(#e9edf0 0 25%,#f7f8fa 0 50%) 50% /14px 14px}.spatial-reference-tabs.yisi-tab-switch{min-width:0;width:100%}.spatial-reference-tabs .yisi-tab-switch-label{flex:1;padding-inline:var(--yisiui-space-1)}.spatial-joint-icon{color:#b77931}.spatial-bone-icon{color:#728aa1}.spatial-rig-legend{display:flex;gap:var(--yisiui-space-4);font-size:var(--yisiui-font-size-sm);color:var(--yisiui-color-text-secondary)}.spatial-rig-legend>span{display:inline-flex;align-items:center;gap:var(--yisiui-space-2)}.spatial-bone-dot,.spatial-joint-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#e6a65c}.spatial-bone-dot{width:14px;height:5px;border-radius:2px;background:#728aa1}.yisi-number-badge{box-sizing:border-box;display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;background:var(--yisiui-color-brand-primary);color:var(--yisiui-color-brand-on-primary);font-family:var(--yisiui-typography-body-small-font-family);font-size:var(--yisiui-typography-body-small-font-size);font-variant-numeric:var(--yisiui-typography-numeric-font-variant-numeric);font-weight:var(--yisiui-typography-body-strong-font-weight);line-height:1;text-align:center;white-space:nowrap}.yisi-number-badge-value{display:block;max-width:100%;overflow:hidden}.yisi-cascade-selector{box-sizing:border-box;display:flex;flex-direction:column;min-width:0;min-height:0;max-width:100%;overflow:hidden;border:1px solid var(--yisiui-color-border-default);border-radius:var(--yisiui-radius-lg);background:var(--yisiui-color-surface-panel);color:var(--yisiui-color-text-primary);font-family:var(--yisiui-font-family-sans);font-size:var(--yisiui-font-size-sm)}.yisi-cascade-selector-header{display:flex;flex:0 0 auto;align-items:center;flex-wrap:wrap;gap:var(--yisiui-space-3);padding:var(--yisiui-space-3)}.yisi-cascade-selector-title{flex:0 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere;font-weight:var(--yisiui-font-weight-semibold)}.yisi-cascade-selector-search{flex:1 1 200px;flex-wrap:wrap}.yisi-cascade-selector-search,.yisi-cascade-selector-search-control{display:flex;min-width:0;align-items:center;gap:var(--yisiui-space-2)}.yisi-cascade-selector-search-control{flex:1 1 180px;padding-inline:var(--yisiui-space-2);border:1px solid var(--yisiui-color-border-control);border-radius:var(--yisiui-radius-md);color:var(--yisiui-color-text-secondary)}.yisi-cascade-selector-search-control:focus-within{outline:2px solid var(--yisiui-color-border-focus);outline-offset:2px}.yisi-cascade-selector-search-control input{width:100%;min-width:0;height:32px;border:0;outline:none;padding:0;background:transparent;color:var(--yisiui-color-text-primary);font:inherit}.yisi-cascade-selector-search-control input::-moz-placeholder{color:var(--yisiui-color-text-placeholder);opacity:1}.yisi-cascade-selector-search-control input::placeholder{color:var(--yisiui-color-text-placeholder);opacity:1}.yisi-cascade-selector-search-control input::-webkit-search-cancel-button{-webkit-appearance:none}.yisi-cascade-selector-search-control button{flex:0 0 28px;height:28px;border:0;border-radius:var(--yisiui-radius-sm);background:transparent;color:inherit;font-size:var(--yisiui-font-size-lg);cursor:pointer}.yisi-cascade-selector-search-status{color:var(--yisiui-color-text-secondary);font-size:var(--yisiui-font-size-xs)}.yisi-cascade-selector-search-status:empty{display:none}.yisi-cascade-selector-columns{display:grid;flex:1 1 0;min-height:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior:contain}.yisi-cascade-selector-column{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.yisi-cascade-selector-column+.yisi-cascade-selector-column{border-inline-start:1px solid var(--yisiui-color-border-subtle)}.yisi-cascade-selector-list{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;padding:var(--yisiui-space-1) var(--yisiui-space-2) var(--yisiui-space-2);scrollbar-gutter:stable}.yisi-cascade-selector-option{box-sizing:border-box;display:flex;flex-direction:column;width:100%;min-width:0;gap:var(--yisiui-space-1);border:0;border-radius:var(--yisiui-radius-sm);padding:var(--yisiui-space-2);text-align:start;font:inherit;line-height:1.5;color:inherit;background:transparent;cursor:pointer}.yisi-cascade-selector-option-main{display:flex;align-items:center;gap:var(--yisiui-space-2);width:100%;min-width:0}.yisi-cascade-selector-option-label{flex:1;min-width:0;overflow-wrap:anywhere}.yisi-cascade-selector-chevron,.yisi-cascade-selector-icon{flex:0 0 auto}.yisi-cascade-selector-option:hover:not(:disabled):not([aria-checked=true]),.yisi-cascade-selector-search-control button:hover:not(:disabled){background:var(--yisiui-color-surface-hover)}.yisi-cascade-selector-option:active:not(:disabled),.yisi-cascade-selector-option[aria-checked=true]{background:var(--yisiui-color-surface-active)}.yisi-cascade-selector-list:focus-visible,.yisi-cascade-selector-option:focus-visible,.yisi-cascade-selector-search-control button:focus-visible{outline:2px solid var(--yisiui-color-border-focus);outline-offset:-2px}.yisi-cascade-selector-option:disabled,.yisi-cascade-selector-search-control :disabled{cursor:not-allowed;opacity:.5}.yisi-cascade-selector-option mark{border-radius:2px;color:var(--yisiui-color-text-primary);background:var(--yisiui-color-paper-amber);font-weight:var(--yisiui-font-weight-semibold);text-decoration:underline;text-underline-offset:2px}.yisi-cascade-selector-match-badge{display:inline-flex;flex:0 0 auto;align-items:center;margin-inline-start:auto;gap:1px}.yisi-cascade-selector-match-overflow{color:var(--yisiui-color-selection-text);font-size:var(--yisiui-font-size-xs)}.yisi-cascade-selector-message{padding:var(--yisiui-space-3);color:var(--yisiui-color-text-secondary);overflow-wrap:anywhere}.yisi-cascade-selector-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (forced-colors:active){.yisi-cascade-selector-option mark,.yisi-cascade-selector-option[aria-checked=true]{background:Highlight;color:HighlightText}}.yisi-cascade-selector-columns,.yisi-cascade-selector-list{scrollbar-width:thin;scrollbar-color:transparent transparent}.yisi-cascade-selector-columns[data-scrolling=true],.yisi-cascade-selector-list[data-scrolling=true]{scrollbar-color:var(--yisiui-color-border-control) transparent}.yisi-cascade-selector-columns::-webkit-scrollbar,.yisi-cascade-selector-list::-webkit-scrollbar{width:6px;height:6px}.yisi-cascade-selector-columns::-webkit-scrollbar-track,.yisi-cascade-selector-list::-webkit-scrollbar-track{background:transparent}.yisi-cascade-selector-columns::-webkit-scrollbar-thumb,.yisi-cascade-selector-list::-webkit-scrollbar-thumb{border-radius:999px;background:transparent}.yisi-cascade-selector-columns[data-scrolling=true]::-webkit-scrollbar-thumb,.yisi-cascade-selector-list[data-scrolling=true]::-webkit-scrollbar-thumb{background:var(--yisiui-color-border-control)}.yisi-cascade-selector-columns::-webkit-scrollbar-button,.yisi-cascade-selector-list::-webkit-scrollbar-button{display:none}.human2ai-session-preview-picker{display:grid;gap:var(--yisiui-space-4);max-height:calc(100vh - 240px);overflow:auto}.human2ai-session-preview-picker__content{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,1.5fr);align-items:start;gap:var(--yisiui-space-6)}.human2ai-session-preview-picker__actions{display:flex;min-width:0;flex-direction:column;align-items:stretch;gap:var(--yisiui-space-3)}.human2ai-session-preview-picker__preview{display:grid;min-width:0;min-height:220px;align-items:center;background:var(--yisiui-color-surface-soft)}.human2ai-session-preview-picker__preview>img{width:100%;max-height:360px;-o-object-fit:contain;object-fit:contain}.human2ai-session-preview-picker__preview-column{display:grid;min-width:0;gap:var(--yisiui-space-3)}.human2ai-session-preview-picker__preview-actions{display:flex;justify-content:center;gap:var(--yisiui-space-2)}.human2ai-session-preview-picker__delete-action{display:flex;justify-content:flex-start}