dsh-mutipleagent 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.en.md +34 -4
- package/README.md +34 -5
- package/assets/kenney/LICENSE-mini-characters.txt +27 -27
- package/client.js +62 -8
- package/package.json +4 -2
- package/public/app.js +1 -1
- package/public/chunks/{chunk-RQUUGNU7.js → chunk-MU3LEDFF.js} +2 -2
- package/public/demo.css +55 -3
- package/public/demo.html +7 -4
- package/public/demo.js +6 -6
- package/public/vendor/office.js +1631 -1631
- package/vendor/licenses/PLAYWRIGHT-LICENSE.txt +202 -202
package/public/demo.css
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
:root{--blue:#0862f7;--blue-dark:#084ecb;--ink:#101e40;--muted:#8590a5;--line:#e9edf5;--font:"Segoe UI","Microsoft YaHei UI","PingFang SC",sans-serif;--side:394px;--dock:200px}
|
|
2
2
|
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:14px/1.45 var(--font);color:var(--ink);background:#e8eef8}button,input,select{font:inherit}button{cursor:pointer}button,a,input,select{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #94bfff;outline-offset:3px}button:disabled{cursor:default;opacity:.6}a{text-decoration:none;color:inherit}[hidden]{display:none!important}img{display:block}.icon{width:20px;height:20px}.glass{background:rgba(255,255,255,.96);border:1px solid rgba(239,244,253,.9);box-shadow:0 7px 25px #274d9814,0 2px 5px #334f7d05;border-radius:17px;backdrop-filter:blur(14px)}.demo-space,.demo-scene{position:fixed;inset:0}.demo-scene>canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.demo-scene>.office-canvas{z-index:1}.scene-loading{position:absolute;left:40%;top:48%;transform:translate(-50%,-50%);padding:13px 22px;background:#fffffff0;border-radius:10px;color:#687d9e;box-shadow:0 6px 24px #627ba720;z-index:5}.nav{position:fixed;left:16px;right:16px;top:8px;height:72px;z-index:30;display:flex;align-items:center;padding:10px 20px 10px 23px;gap:24px;border-radius:17px;background:#ffffffed}.brand{display:flex;align-items:center;gap:12px;flex:0 0 206px;font-size:24px;letter-spacing:-.7px;font-weight:700;white-space:nowrap}.brand-light{font-weight:650}.brand-icon{width:39px;height:43px;display:grid;place-items:center}.brand-icon img{width:36px;height:36px;filter:invert(27%) sepia(98%) saturate(4035%) hue-rotate(214deg) brightness(105%) contrast(105%);text-shadow:0 3px 4px #3079dd40}.search-wrap{position:relative;flex:1;min-width:150px;max-width:480px}.search-box{display:flex;align-items:center;gap:13px;height:47px;border:1px solid #e3e7ef;border-radius:12px;background:#fcfdff;box-shadow:0 2px 5px #3d548a04;padding:0 13px}.search-box>.icon{width:18px;height:18px;opacity:.75}.search-box input{border:0;background:transparent;outline:0;min-width:0;flex:1;font-size:12px;color:#273c5f}.search-box input::placeholder{color:#7e899a}.search-box kbd{font:14px var(--font);padding:1px 8px;border:1px solid #e4e9f0;border-radius:5px;color:#79849a;background:#f6f8fc}.icon-btn{display:grid;place-items:center;border:0;background:transparent;width:29px;height:30px;flex-shrink:0;border-radius:6px;padding:4px}.icon-btn:hover{background:#f0f5fd}.clear-search{width:22px}.clear-search img{width:12px;height:12px}.workspace-switch{display:flex;align-items:center;gap:10px;height:49px;flex:0 0 224px;margin-left:auto;border:1px solid #e6eaf2;box-shadow:0 2px 5px #314f8510;padding:6px 10px;border-radius:12px;background:#fff}.workspace-icon{width:33px;height:33px;border-radius:9px;background:#1069ef;display:grid;place-items:center;box-shadow:inset 0 2px 5px #b9deff66,0 3px 7px #3686e62a}.workspace-icon img{width:21px;height:21px;filter:brightness(0) invert(1)}.workspace-switch label{min-width:0;flex:1}.workspace-switch strong{font-size:12px;display:block;font-weight:650;line-height:1.4}.workspace-switch select{appearance:none;border:0;background:transparent url('./demo-icons/chevron-down.svg') no-repeat right 0 center;background-size:11px;color:#929bad;font-size:10px;padding:0 16px 0 0;width:100%;outline-offset:0}.nav-right{display:flex;align-items:center;gap:18px;flex-shrink:0}.live-badge{display:flex;align-items:center;gap:7px;font-size:11px;white-space:nowrap;color:#238553;background:#eef9f3;padding:7px 10px;border-radius:20px}.live-badge>i{height:7px;width:7px;background:#34af67;border-radius:50%;box-shadow:0 0 0 3px #dff4e8}.live-badge>span{color:#60738d;margin-left:2px;font-size:11px;font-variant-numeric:tabular-nums}.notification{position:relative;width:24px}.notification>.icon{width:21px;height:21px}.notification>i{position:absolute;right:2px;top:1px;width:5px;height:5px;border-radius:50%;background:#ef7375;box-shadow:0 0 0 2px #fff}.nav-divider{height:28px;border-left:1px solid #e3e9f3}.profile{display:flex;gap:10px;align-items:center;white-space:nowrap}.profile-avatar{background:#e6f0ff;width:39px;height:39px;border-radius:50%;display:grid;place-items:center}.profile-avatar img{width:25px;height:25px}.profile strong{font-size:12px;display:block;font-weight:650}.profile small{font-size:10px;color:#8993a6;display:block;margin-top:2px}.stats{max-width:920px;position:fixed;z-index:20;left:16px;top:96px;right:calc(var(--side) + 48px);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat{display:flex;align-items:center;gap:15px;height:95px;padding:17px 16px;border-radius:16px;min-width:0}.stat-icon{flex:0 0 58px;height:58px;display:grid;place-items:center;background:#f1f6ff;border-radius:14px;box-shadow:inset 0 0 14px #dfeaff60}.stat-icon img{width:29px;height:29px;filter:invert(34%) sepia(98%) saturate(2811%) hue-rotate(204deg) brightness(101%) contrast(103%)}.stat>div{min-width:0}.stat p{font-size:13px;margin:0 0 2px;white-space:nowrap}.stat-value{display:flex;align-items:center;gap:10px;white-space:nowrap}.stat strong{font-size:27px;line-height:1.3;letter-spacing:-.5px;font-weight:700}.stat .positive{font-size:10px;color:#26925e;background:#f2fbf4;line-height:1.2;padding:2px 0}.stat small{font-size:11px;color:#8b94a7;white-space:nowrap;display:block;margin-top:1px}.stat canvas{width:56px;height:56px;flex-shrink:0}
|
|
3
|
-
.details{position:fixed;z-index:25;top:96px;right:16px;width:var(--side);padding:18px 24px 14px;max-height:calc(100vh - var(--dock) - 160px);overflow:auto;border-radius:17px;scrollbar-width:thin}.detail-head{display:flex;gap:12px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}.detail-icon{width:53px;height:54px;border-radius:13px;background:#f0f5ff;display:grid;place-items:center;flex-shrink:0}.detail-icon img{width:29px;height:29px;filter:invert(34%) sepia(98%) saturate(2811%) hue-rotate(204deg) brightness(101%) contrast(103%)}.detail-head h1{font-size:16px;font-weight:700;margin:0;white-space:nowrap;letter-spacing:-.2px;flex:1}.detail-head .icon-btn{width:20px;padding:1px}.detail-head .icon{height:16px;width:16px}.badge{font-size:10px;background:#ecf4ff;color:#2866b2;padding:5px 8px;border-radius:5px;white-space:nowrap}.badge.done{color:#2f9165;background:#eaf7ef}.detail-facts{margin:14px 0 16px;display:grid;gap:9px}.detail-facts>div,.detail-meta>div{display:flex;justify-content:space-between;align-items:center;gap:15px;min-width:0}.detail-facts dt{font-size:13px;color:#8a91a2;flex-shrink:0}.detail-facts dd{font-size:13px;margin:0;text-align:right;font-weight:500;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-progress{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0 16px}.detail-progress>div:first-child{font-size:12px;margin-bottom:5px}.detail-progress>strong{font-size:16px;font-weight:600;display:block}.progress-line{display:flex;align-items:center;gap:17px;margin-top:11px}.progress-track{height:16px;border-radius:12px;background:#eaf0f9;overflow:hidden;flex:1}.progress-track>div{height:100%;background:#0b62f6;border-radius:12px;transition:width .4s linear}.progress-line>span{font-size:12px;min-width:30px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.detail-meta{display:grid;gap:0;margin:12px 0 14px}.detail-meta>div{min-height:40px;border-bottom:1px solid #f0f3f8}.detail-meta>div:last-child{border-bottom:0}.detail-meta dt{display:flex;align-items:center;gap:9px;color:#818c9e;font-size:13px;white-space:nowrap}.detail-meta dt>img{width:16px;height:16px;padding:0;opacity:.7}.detail-meta dd{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;margin:0}.mini-avatar{height:25px;width:25px;background:#eff4fb;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.mini-avatar>img{width:14px;height:14px;filter:invert(29%) sepia(55%) saturate(4010%) hue-rotate(211deg) brightness(106%) contrast(103%)}.primary-button{width:100%;height:49px;border:1px solid #075ae0;border-radius:10px;display:flex;gap:18px;align-items:center;justify-content:center;background:#075ffc;box-shadow:0 2px 6px #0c60fb1c;color:#fff;font-size:13px;font-weight:600}.primary-button:hover{background:#0053e8}.primary-button>img{width:17px;height:17px;filter:invert(1)}.
|
|
4
|
-
.workflow-dock{position:fixed;left:16px;right:16px;bottom:36px;z-index:26;height:var(--dock);padding:14px 22px 15px;border-radius:17px;background:#ffffffF5}.dock-content{display:grid;grid-template-columns:54% 20% 26%;height:100%;gap:0}.workflow{padding:0 25px 0 0;min-width:0}.workflow-title{display:flex;gap:12px;align-items:center}.workflow-icon{width:43px;height:43px;display:grid;place-items:center}.workflow-icon>img{width:31px;height:31px;filter:invert(29%) sepia(90%) saturate(4100%) hue-rotate(212deg) brightness(104%)}.workflow-title h2{font-size:23px;line-height:1.3;margin:0 0 2px;font-weight:700;letter-spacing:-.5px}.workflow-title p{margin:0;font-size:11px;color:#8e98aa}.stages{position:relative;display:grid;grid-template-columns:repeat(4,1fr);padding-top:12px;margin-top:5px}.stage-track{position:absolute;height:4px;background:#e0e5ed;left:4%;right:4%;top:35px;border-radius:5px;overflow:hidden}.stage-track>div{height:100%;background:#4389f6;transition:width .4s}.stage{position:relative;z-index:1;border:0;background:transparent;text-align:center;display:flex;flex-direction:column;align-items:center;padding:0;min-width:0}.stage-icon{height:45px;width:45px;background:#fafbfd;box-shadow:0 0 0 2px #e1e6ee,0 0 0 6px #f5f7fa;border-radius:50%;display:grid;place-items:center;margin-bottom:9px}.stage-icon>img{height:21px;width:21px;opacity:.35}.stage strong{font-size:13px;font-weight:600;line-height:1.5}.stage small{font-size:11px;color:#949caf;margin-top:1px;line-height:1.4;white-space:nowrap}.stage em{font-size:10px;line-height:1.4;color:#6494cf;font-style:normal;min-height:13px}.stage.active .stage-icon{background:#0968fc;box-shadow:0 0 0 4px #e3efff,0 0 16px #448cff55}.stage.active .stage-icon>img{filter:invert(1);opacity:1}.stage.completed .stage-icon{background:#f1f7ff;border-color:#b5d2ff;box-shadow:0 0 0 2px #c5dcff,0 0 0 6px #f7faff}.stage.completed .stage-icon>img{filter:invert(35%) sepia(99%) saturate(3532%) hue-rotate(209deg);opacity:1}.current-task{min-width:0;padding:6px 14px 0;border-left:1px solid #f0f3f8;background:#f9fbff8a}.current-task h3,.upcoming h3{font-size:11px;font-weight:600;margin:0 0 12px}.current-task-card{display:flex;align-items:center;gap:12px;width:100%;height:120px;border:0;border-radius:11px;background:#fff;box-shadow:0 2px 10px #43639704;text-align:left;padding:10px;min-width:0}.current-task-card:hover{background:#f4f8ff}.task-thumb{height:61px;width:61px;flex-shrink:0;border-radius:12px;background:#eef5ff;display:grid;place-items:center}.task-thumb>img{height:34px;width:34px;filter:invert(32%) sepia(93%) saturate(3460%) hue-rotate(211deg) brightness(103%)}.current-task-text{display:flex;flex-direction:column;min-width:0;flex:1}.current-task-text strong{font-size:12px;white-space:nowrap;font-weight:600}.current-task-text small{font-size:10px;color:#8a96aa;margin-top:3px}.current-task-text>span:not(.mini-progress){font-size:10px;color:#8a96aa;margin-top:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-progress{height:6px;border-radius:5px;width:100%;max-width:105px;background:#eaf0fa;margin-top:7px;overflow:hidden}.mini-progress>i{height:100%;display:block;background:#1470fc;border-radius:5px}.arrow-icon{height:14px;width:14px;opacity:.65;flex-shrink:0}.upcoming{padding:6px 0 0 20px;min-width:0;border-left:1px solid #f0f3f8}.queue-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.queue-heading>button{border:0;background:none;font-size:10px;color:#2d68b0;padding:0}.task-queue{display:grid;gap:2px}.queue-item{width:100%;height:40px;border:0;background:transparent;display:grid;grid-template-columns:minmax(70px,1.1fr) minmax(40px,.7fr) auto;gap:9px;align-items:center;font-size:10px;padding:0;text-align:left;border-radius:6px}.queue-item:hover{background:#f4f8ff}.queue-item>strong{font-size:10px;font-weight:600}.queue-item>span{color:#8e98aa;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.queue-item .queue-status{font-size:9px;text-align:center;background:#f1f4f9;color:#8e9db0;padding:4px 8px;border-radius:5px;min-width:51px}.queue-status.done{background:#edf8f0;color:#5c9573}.queue-status.running{background:#edf4ff;color:#5886c0}.queue-empty{font-size:11px;color:#99a5b7;padding:20px 0}.dock-toggle{display:none}
|
|
3
|
+
.details{position:fixed;z-index:25;top:96px;right:16px;width:var(--side);padding:18px 24px 14px;max-height:calc(100vh - var(--dock) - 160px);overflow:auto;border-radius:17px;scrollbar-width:thin}.detail-head{display:flex;gap:12px;align-items:center;padding-bottom:16px;border-bottom:1px solid var(--line)}.detail-actions{display:flex;flex-direction:column;margin:14px 0 2px}.detail-actions-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 18px}.detail-actions-row .text-button{margin:6px 0 0}@media (max-height: 720px){.detail-actions{margin:10px 0 0}.detail-actions .primary-button{height:42px}}.detail-icon{width:53px;height:54px;border-radius:13px;background:#f0f5ff;display:grid;place-items:center;flex-shrink:0}.detail-icon img{width:29px;height:29px;filter:invert(34%) sepia(98%) saturate(2811%) hue-rotate(204deg) brightness(101%) contrast(103%)}.detail-head h1{font-size:16px;font-weight:700;margin:0;white-space:nowrap;letter-spacing:-.2px;flex:1}.detail-head .icon-btn{width:20px;padding:1px}.detail-head .icon{height:16px;width:16px}.badge{font-size:10px;background:#ecf4ff;color:#2866b2;padding:5px 8px;border-radius:5px;white-space:nowrap}.badge.done{color:#2f9165;background:#eaf7ef}.detail-facts{margin:14px 0 16px;display:grid;gap:9px}.detail-facts>div,.detail-meta>div{display:flex;justify-content:space-between;align-items:center;gap:15px;min-width:0}.detail-facts dt{font-size:13px;color:#8a91a2;flex-shrink:0}.detail-facts dd{font-size:13px;margin:0;text-align:right;font-weight:500;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-progress{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0 16px}.detail-progress>div:first-child{font-size:12px;margin-bottom:5px}.detail-progress>strong{font-size:16px;font-weight:600;display:block}.progress-line{display:flex;align-items:center;gap:17px;margin-top:11px}.progress-track{height:16px;border-radius:12px;background:#eaf0f9;overflow:hidden;flex:1}.progress-track>div{height:100%;background:#0b62f6;border-radius:12px;transition:width .4s linear}.progress-line>span{font-size:12px;min-width:30px;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.detail-meta{display:grid;gap:0;margin:12px 0 14px}.detail-meta>div{min-height:40px;border-bottom:1px solid #f0f3f8}.detail-meta>div:last-child{border-bottom:0}.detail-meta dt{display:flex;align-items:center;gap:9px;color:#818c9e;font-size:13px;white-space:nowrap}.detail-meta dt>img{width:16px;height:16px;padding:0;opacity:.7}.detail-meta dd{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;text-align:right;min-width:0;overflow-wrap:anywhere;margin:0}.mini-avatar{height:25px;width:25px;background:#eff4fb;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.mini-avatar>img{width:14px;height:14px;filter:invert(29%) sepia(55%) saturate(4010%) hue-rotate(211deg) brightness(106%) contrast(103%)}.primary-button{width:100%;height:49px;border:1px solid #075ae0;border-radius:10px;display:flex;gap:18px;align-items:center;justify-content:center;background:#075ffc;box-shadow:0 2px 6px #0c60fb1c;color:#fff;font-size:13px;font-weight:600}.primary-button:hover{background:#0053e8}.primary-button>img{width:17px;height:17px;filter:invert(1)}.open-details{position:fixed;right:16px;top:97px;z-index:24;border:0;padding:13px 16px;display:flex;align-items:center;gap:9px;font-size:12px}.open-details>img{width:17px;height:17px;filter:invert(30%) sepia(98%) saturate(2530%) hue-rotate(210deg)}.scene-tools{position:fixed;bottom:calc(var(--dock) + 69px);left:22px;z-index:21;display:flex;gap:4px;align-items:center;padding:7px 9px;border-radius:11px;background:#fffffff0}.scene-tools button{height:30px;display:flex;align-items:center;gap:7px;padding:5px 9px;border:0;border-radius:7px;background:transparent;font-size:11px;color:#5274a6}.scene-tools button:hover{background:#edf4ff}.scene-tools img{height:16px;width:16px;opacity:.8}.tool-separator{height:21px;border-left:1px solid #e1e7f0;margin:0 4px}.reduce-label{display:flex;gap:5px;align-items:center;font-size:10px;color:#7c8da5;margin:0 6px;cursor:pointer}.reduce-label input{height:12px;width:12px;accent-color:var(--blue)}.scene-instruction{position:fixed;z-index:10;bottom:calc(var(--dock) + 47px);left:28px;font-size:9px;color:#8296b3;pointer-events:none}
|
|
4
|
+
.workflow-dock{position:fixed;left:16px;right:16px;bottom:36px;z-index:26;height:var(--dock);padding:14px 22px 15px;border-radius:17px;background:#ffffffF5}.dock-content{display:grid;grid-template-columns:54% 20% 26%;height:100%;gap:0}.workflow{padding:0 25px 0 0;min-width:0}.workflow-title{display:flex;gap:12px;align-items:center}.workflow-icon{width:43px;height:43px;display:grid;place-items:center}.workflow-icon>img{width:31px;height:31px;filter:invert(29%) sepia(90%) saturate(4100%) hue-rotate(212deg) brightness(104%)}.workflow-title h2{font-size:23px;line-height:1.3;margin:0 0 2px;font-weight:700;letter-spacing:-.5px}.workflow-title p{margin:0;font-size:11px;color:#8e98aa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workflow-title>div{min-width:0}.stages{position:relative;display:grid;grid-template-columns:repeat(4,1fr);padding-top:12px;margin-top:5px}.stage-track{position:absolute;height:4px;background:#e0e5ed;left:4%;right:4%;top:35px;border-radius:5px;overflow:hidden}.stage-track>div{height:100%;background:#4389f6;transition:width .4s}.stage{position:relative;z-index:1;border:0;background:transparent;text-align:center;display:flex;flex-direction:column;align-items:center;padding:0;min-width:0}.stage-icon{height:45px;width:45px;background:#fafbfd;box-shadow:0 0 0 2px #e1e6ee,0 0 0 6px #f5f7fa;border-radius:50%;display:grid;place-items:center;margin-bottom:9px}.stage-icon>img{height:21px;width:21px;opacity:.35}.stage strong{font-size:13px;font-weight:600;line-height:1.5}.stage small{font-size:11px;color:#949caf;margin-top:1px;line-height:1.4;white-space:nowrap}.stage em{font-size:10px;line-height:1.4;color:#6494cf;font-style:normal;min-height:13px}.stage.active .stage-icon{background:#0968fc;box-shadow:0 0 0 4px #e3efff,0 0 16px #448cff55}.stage.active .stage-icon>img{filter:invert(1);opacity:1}.stage.completed .stage-icon{background:#f1f7ff;border-color:#b5d2ff;box-shadow:0 0 0 2px #c5dcff,0 0 0 6px #f7faff}.stage.completed .stage-icon>img{filter:invert(35%) sepia(99%) saturate(3532%) hue-rotate(209deg);opacity:1}.current-task{min-width:0;padding:6px 14px 0;border-left:1px solid #f0f3f8;background:#f9fbff8a}.current-task h3,.upcoming h3{font-size:11px;font-weight:600;margin:0 0 12px}.current-task-card{display:flex;align-items:center;gap:12px;width:100%;height:120px;border:0;border-radius:11px;background:#fff;box-shadow:0 2px 10px #43639704;text-align:left;padding:10px;min-width:0}.current-task-card:hover{background:#f4f8ff}.task-thumb{height:61px;width:61px;flex-shrink:0;border-radius:12px;background:#eef5ff;display:grid;place-items:center}.task-thumb>img{height:34px;width:34px;filter:invert(32%) sepia(93%) saturate(3460%) hue-rotate(211deg) brightness(103%)}.current-task-text{display:flex;flex-direction:column;min-width:0;flex:1}.current-task-text strong{font-size:12px;white-space:nowrap;font-weight:600}.current-task-text small{font-size:10px;color:#8a96aa;margin-top:3px}.current-task-text>span:not(.mini-progress){font-size:10px;color:#8a96aa;margin-top:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-progress{height:6px;border-radius:5px;width:100%;max-width:105px;background:#eaf0fa;margin-top:7px;overflow:hidden}.mini-progress>i{height:100%;display:block;background:#1470fc;border-radius:5px}.arrow-icon{height:14px;width:14px;opacity:.65;flex-shrink:0}.upcoming{padding:6px 0 0 20px;min-width:0;border-left:1px solid #f0f3f8}.queue-heading{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.queue-heading>button{border:0;background:none;font-size:10px;color:#2d68b0;padding:0}.task-queue{display:grid;gap:2px}.queue-item{width:100%;height:40px;border:0;background:transparent;display:grid;grid-template-columns:minmax(70px,1.1fr) minmax(40px,.7fr) auto;gap:9px;align-items:center;font-size:10px;padding:0;text-align:left;border-radius:6px}.queue-item:hover{background:#f4f8ff}.queue-item>strong{font-size:10px;font-weight:600}.queue-item>span{color:#8e98aa;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.queue-item .queue-status{font-size:9px;text-align:center;background:#f1f4f9;color:#8e9db0;padding:4px 8px;border-radius:5px;min-width:51px}.queue-status.done{background:#edf8f0;color:#5c9573}.queue-status.running{background:#edf4ff;color:#5886c0}.queue-empty{font-size:11px;color:#99a5b7;padding:20px 0}.dock-toggle{display:none}
|
|
5
5
|
.scene-pins{position:fixed;inset:0;z-index:12;pointer-events:none}.scene-pin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;display:flex;align-items:center;gap:9px;border:1px solid #d7e4f8;border-radius:9px;padding:8px 12px;background:#ffffffed;box-shadow:0 5px 14px #1c56a529;white-space:nowrap;color:#416182;font-size:11px;transition:background .15s}.scene-pin img{height:20px;width:20px;filter:invert(37%) sepia(77%) saturate(2118%) hue-rotate(199deg)}.scene-pin strong{display:block;font-size:11px;font-weight:600}.scene-pin small{font-size:9px;color:#96a9bd;display:block;text-align:left}.scene-pin.selected{background:#0969f9;border-color:#1479ff;color:#fff;box-shadow:0 5px 18px #0474ff54}.scene-pin.selected img{filter:brightness(0) invert(1)}.scene-pin.selected small{color:#c4e0ff}.scene-pin.selected:after{content:"";position:absolute;bottom:-7px;left:calc(50% - 7px);width:14px;height:14px;border-radius:2px;background:#0969f9;transform:rotate(45deg)}.scene-pin.done:not(.selected){border-color:#c6e4d1}.search-results{position:absolute;top:54px;left:0;right:0;padding:8px;border-radius:11px;max-height:320px;overflow:auto}.search-result{border:0;width:100%;text-align:left;background:transparent;border-radius:7px;padding:10px;display:flex;gap:11px;align-items:center}.search-result:hover{background:#f2f7ff}.search-result>img{width:19px;height:19px;opacity:.6}.search-result strong{font-size:12px;display:block;font-weight:500}.search-result small{font-size:10px;color:#8e9cb1;display:block}.notifications{position:fixed;right:140px;top:87px;z-index:96;width:320px;padding:17px 18px;border-radius:12px}.popover-title{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:4px}.popover-title>span{font-size:10px;font-weight:400;color:#97a6ba}.notification-item{padding:11px 0;border-bottom:1px solid #f0f3f8;font-size:11px;color:#5d7394}.notification-item small{font-size:10px;display:block;color:#9aa8bb;margin-top:4px}.notifications .empty{padding:18px 0;color:#95a3b7;font-size:12px}
|
|
6
6
|
dialog{width:min(700px,90vw);max-height:85vh;border:1px solid #e2eaf7;border-radius:18px;padding:25px 28px;color:var(--ink);box-shadow:0 30px 110px #163a7840;background:#fff}dialog::backdrop{background:#203c6e4a;backdrop-filter:blur(5px)}dialog header{display:flex;align-items:center;gap:14px;padding-bottom:21px;border-bottom:1px solid var(--line)}.dialog-icon{display:grid;place-items:center;height:49px;width:49px;border-radius:12px;background:#f0f6ff}.dialog-icon>img{width:27px;height:27px;filter:invert(32%) sepia(80%) saturate(3333%) hue-rotate(208deg)}dialog header>div{flex:1}dialog header small{font-size:9px;letter-spacing:1px;color:#94a3b9}dialog h2{font-size:18px;margin:5px 0 0}dialog pre{font:13px/1.95 var(--font);white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto;margin:20px 0 24px;color:#577092}dialog footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:17px;font-size:10px;color:#9ba9bd}dialog footer button{border:0;background:#1267ef;color:#fff;padding:9px 15px;border-radius:7px;font-size:12px}.toast{position:fixed;z-index:100;left:50%;bottom:calc(var(--dock) + 60px);transform:translateX(-50%);padding:11px 19px;background:#163f79ed;color:#fff;border-radius:9px;font-size:12px;box-shadow:0 6px 20px #2759ab30}
|
|
7
7
|
@media(min-width:1600px){:root{--side:410px;--dock:210px}.stats{right:calc(var(--side) + 70px);max-width:1060px}.stat{height:100px}.nav{gap:32px}.search-wrap{max-width:600px}.details{padding:22px 27px}.detail-facts{gap:13px;margin-bottom:24px}.detail-meta>div{min-height:49px}.workflow-dock{padding:17px 25px}.workflow-title h2{font-size:23px}.stages{margin-top:7px}}
|
|
@@ -10,7 +10,7 @@ dialog{width:min(700px,90vw);max-height:85vh;border:1px solid #e2eaf7;border-rad
|
|
|
10
10
|
@media(max-width:760px){:root{--dock:72px}.nav{height:61px;left:10px;right:10px;padding:7px 12px;border-radius:13px;gap:12px}.brand{font-size:20px;flex:1}.brand-icon{width:30px;height:36px}.brand-icon img{width:30px;height:30px}.workspace-switch{display:none}.nav-right{gap:8px}.live-badge{font-size:10px;gap:6px;padding:6px 9px}.live-badge>span{font-size:10px}.search-wrap{position:fixed;left:0;right:0;top:68px;max-width:none;padding:0;min-width:0}.search-box{height:41px;background:#fffffff5;border-radius:10px;box-shadow:0 3px 12px #3b6caa14}.search-results{top:48px}.search-box input{font-size:11px}.stats{left:10px;right:10px;top:131px;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.stat{height:79px;padding:9px;display:block;border-radius:11px}.stat-icon{display:none}.stat p{font-size:10px}.stat strong{font-size:23px}.stat small{font-size:8px;letter-spacing:-.3px}.stat canvas{display:none}.details{top:224px;left:12px;right:12px;bottom:98px;width:auto;max-height:none;padding:17px 20px;box-shadow:0 15px 80px #174a9140}.detail-head{padding-bottom:12px}.detail-head h1{font-size:14px}.detail-facts{margin:13px 0;gap:7px}.detail-progress{padding:13px 0}.detail-meta{margin:6px 0 10px}.detail-meta>div{min-height:38px}.detail-progress>strong{font-size:14px}.progress-track{height:11px}.primary-button{height:44px}.detail-facts dt,.detail-facts dd,.detail-meta dt{font-size:11px}.open-details{right:12px;top:225px;padding:10px 13px;font-size:11px;border-radius:10px}.scene-pin{padding:6px 9px;gap:6px}.scene-pin img{width:16px;height:16px}.scene-pin strong{font-size:10px}.scene-pin small{font-size:8px}.workflow-dock{left:10px;right:10px;bottom:12px;height:72px;padding:0;border-radius:13px;overflow:hidden}.dock-toggle{height:70px;width:100%;display:flex;align-items:center;justify-content:space-between;border:0;background:transparent;padding:0 19px;color:#16375f;font-size:14px;font-weight:600}.dock-toggle img{width:15px;height:15px;opacity:.6;transform:rotate(180deg)}.dock-content{display:none}.workflow-dock.expanded{height:330px}.workflow-dock.expanded .dock-toggle{height:53px;border-bottom:1px solid var(--line)}.workflow-dock.expanded .dock-toggle img{transform:none}.workflow-dock.expanded .dock-content{display:block;padding:13px 17px}.workflow-dock.expanded .workflow{padding:0}.workflow-title{gap:8px}.workflow-title h2{font-size:15px}.workflow-title p{font-size:9px}.workflow-icon{width:31px;height:31px}.workflow-icon img{width:24px;height:24px}.stages{padding-top:12px;margin-top:3px}.stage-icon{height:36px;width:36px;margin-bottom:7px}.stage-icon img{height:17px;width:17px}.stage-track{top:29px}.stage strong{font-size:9px}.stage small{font-size:8px}.stage em{font-size:8px}.current-task{padding:10px 0 0;border-left:0;background:none;margin-top:7px}.current-task h3{display:none}.current-task-card{height:72px;background:#f8faff;padding:8px 12px;border-radius:8px}.task-thumb{height:44px;width:44px}.current-task-text>span:not(.mini-progress){margin-top:3px}.current-task-text small{margin-top:1px}.mini-progress{margin-top:4px;height:4px}.scene-tools{bottom:96px;left:12px;padding:5px 6px;border-radius:9px}.scene-tools button{height:28px;padding:4px 7px;font-size:10px}.scene-tools img{height:14px;width:14px}.reduce-label{font-size:9px;margin:0 3px}.toast{bottom:155px;max-width:90%;font-size:11px;white-space:nowrap}.scene-loading{left:50%;top:48%;font-size:11px;width:max-content;max-width:85%}dialog{padding:20px;width:calc(100vw - 28px)}dialog h2{font-size:16px}dialog pre{font-size:12px}dialog footer{font-size:9px}}
|
|
11
11
|
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
|
|
12
12
|
|
|
13
|
-
.live-badge{border:0}.live-badge #mode-label{color:inherit;margin:0}.live-badge.disconnected{background:#fff4df;color:#9c6d24}.live-badge.disconnected>i{background:#dba43b;box-shadow:0 0 0 3px #faeac8}.text-button{display:block;margin:9px auto 0;border:0;background:transparent;color:#3c76bf;font-size:11px;padding:4px}.source-status{position:fixed;top:205px;left:20px;z-index:22;max-width:min(520px,85vw);padding:10px 16px;font-size:12px;color:#926a31}.unrecorded{background:repeating-linear-gradient(135deg,#eaf0f9,#eaf0f9 8px,#f5f8fc 8px,#f5f8fc 16px)}body[data-mode=live] .
|
|
13
|
+
.live-badge{border:0}.live-badge #mode-label{color:inherit;margin:0}.live-badge.disconnected{background:#fff4df;color:#9c6d24}.live-badge.disconnected>i{background:#dba43b;box-shadow:0 0 0 3px #faeac8}.text-button{display:block;margin:9px auto 0;border:0;background:transparent;color:#3c76bf;font-size:11px;padding:4px}.source-status{position:fixed;top:205px;left:20px;z-index:22;max-width:min(520px,85vw);padding:10px 16px;font-size:12px;color:#926a31}.unrecorded{background:repeating-linear-gradient(135deg,#eaf0f9,#eaf0f9 8px,#f5f8fc 8px,#f5f8fc 16px)}body[data-mode=live] .task-queue{max-height:130px;overflow:auto;scrollbar-width:thin}body[data-mode=live] .queue-item>strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body[data-mode=live] .notifications{width:360px}body[data-mode=live] #notification-list{max-height:55vh;overflow:auto;scrollbar-width:thin}body[data-mode=live] .notification-item{display:block;width:100%;border:0;border-bottom:1px solid #f0f3f8;background:transparent;text-align:left;cursor:pointer}body[data-mode=live] .notification-item:hover{background:#f5f8ff}body[data-mode=live] .event-preview{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a8ca7;font-size:10px;margin-top:4px}body[data-mode=live] .workflow-title p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}body[data-mode=live] .workflow-title>div{min-width:0}body[data-mode=live] .detail-meta dd{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}body[data-mode=live] .detail-meta dd:has(.mini-avatar){display:flex}body[data-mode=live] .scene-pin strong{max-width:140px;overflow:hidden;text-overflow:ellipsis}body[data-mode=live] #profile-caption{max-width:140px;overflow:hidden;text-overflow:ellipsis}body[data-mode=live] .detail-head h1{font-size:13px}body[data-mode=live] .scene-tools{max-width:calc(100vw - 24px);flex-wrap:wrap}body[data-mode=live] .detail-progress>strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
|
|
14
14
|
@media(max-width:760px){body[data-mode=live] .source-status{top:218px;left:12px}body[data-mode=live] #history-toggle{font-size:9px;padding:4px}body[data-mode=live] .scene-tools{gap:1px}body[data-mode=live] .scene-tools button{padding:4px 5px}body[data-mode=live] .reduce-label{margin:0 2px}body[data-mode=live] .detail-head h1{font-size:12px}body[data-mode=live] .detail-meta dd{max-width:55%}}
|
|
15
15
|
|
|
16
16
|
|
|
@@ -171,3 +171,55 @@ body[data-mode=live] .notifications{width:360px}
|
|
|
171
171
|
.lang-switch button:hover{color:#2f4c70;background:#eef4ff}
|
|
172
172
|
.lang-switch button[aria-pressed=true],.lang-switch button.active{background:#fff;color:#2f6fbf;box-shadow:0 1px 3px rgba(47,76,112,.14)}
|
|
173
173
|
@media(max-width:760px){.lang-switch{gap:0;padding:1px}.lang-switch button{padding:4px 5px;font-size:10px}}
|
|
174
|
+
|
|
175
|
+
/* 会话内嵌(Harness 会话标签):宿主已经有会话标题、搜索和通知,
|
|
176
|
+
这里把整条浮动顶栏收掉,让三维画面直接铺到标签页顶部。 */
|
|
177
|
+
body[data-embed='true'] .nav {
|
|
178
|
+
display: none;
|
|
179
|
+
}
|
|
180
|
+
body[data-embed='true'] .stats {
|
|
181
|
+
top: 14px;
|
|
182
|
+
}
|
|
183
|
+
body[data-embed='true'] .open-details {
|
|
184
|
+
top: 14px;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/* 真实会话里三维操作提示与左下角工具条重复,这行小字直接收起。 */
|
|
188
|
+
body[data-mode=live] .scene-instruction {
|
|
189
|
+
display: none;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
/* 场景聚焦模式:只留 3D 办公室,其余浮层全部收起。 */
|
|
194
|
+
body[data-shell='scene'] .nav,
|
|
195
|
+
body[data-shell='scene'] .stats,
|
|
196
|
+
body[data-shell='scene'] .details,
|
|
197
|
+
body[data-shell='scene'] .open-details,
|
|
198
|
+
body[data-shell='scene'] .workflow-dock,
|
|
199
|
+
body[data-shell='scene'] .scene-tools,
|
|
200
|
+
body[data-shell='scene'] .scene-instruction,
|
|
201
|
+
body[data-shell='scene'] .notifications { display: none !important; }
|
|
202
|
+
|
|
203
|
+
.shell-restore {
|
|
204
|
+
position: fixed;
|
|
205
|
+
right: 16px;
|
|
206
|
+
bottom: 16px;
|
|
207
|
+
z-index: 40;
|
|
208
|
+
display: inline-flex;
|
|
209
|
+
align-items: center;
|
|
210
|
+
gap: 6px;
|
|
211
|
+
height: 34px;
|
|
212
|
+
padding: 0 15px;
|
|
213
|
+
border: 1px solid rgba(255, 255, 255, 0.78);
|
|
214
|
+
border-radius: 999px;
|
|
215
|
+
background: rgba(255, 255, 255, 0.86);
|
|
216
|
+
color: #2c4f7c;
|
|
217
|
+
font-size: 12px;
|
|
218
|
+
font-weight: 500;
|
|
219
|
+
cursor: pointer;
|
|
220
|
+
box-shadow: 0 8px 22px rgba(31, 60, 105, 0.16);
|
|
221
|
+
backdrop-filter: blur(10px);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.shell-restore:hover { background: #fff; }
|
|
225
|
+
.shell-restore[hidden] { display: none; }
|
package/public/demo.html
CHANGED
|
@@ -31,15 +31,17 @@
|
|
|
31
31
|
</section>
|
|
32
32
|
<aside id="agent-details" class="details glass" aria-label="Agent 任务详情" data-i18n-aria-label="demo.detailAria">
|
|
33
33
|
<div class="detail-head"><span class="detail-icon"><img id="detail-icon" src="./demo-icons/file-earmark-code-fill.svg" alt=""></span><h1 id="detail-code">任务 TASK-07845</h1><span id="detail-badge" class="badge">执行中</span><button id="close-details" class="icon-btn" aria-label="关闭 Agent 详情" data-i18n-aria-label="demo.closeDetails"><img class="icon" src="./demo-icons/x-lg.svg" alt=""></button></div>
|
|
34
|
+
<div class="detail-actions">
|
|
35
|
+
<button id="view-report" class="primary-button"><span data-i18n="demo.viewReport">查看任务详情</span><img src="./demo-icons/arrow-right.svg" alt=""></button>
|
|
36
|
+
<div class="detail-actions-row"><button id="view-task" class="text-button" hidden data-i18n="demo.viewSource">查看任务原文</button></div>
|
|
37
|
+
</div>
|
|
34
38
|
<dl class="detail-facts"><div><dt data-i18n="demo.taskName">任务名称</dt><dd id="detail-task-title">搜索与筛选界面</dd></div><div><dt data-i18n="demo.project">所属项目</dt><dd id="detail-project">task-board</dd></div><div><dt data-i18n="demo.role">当前角色</dt><dd id="detail-role">前端实现</dd></div><div><dt data-i18n="demo.type">任务类型</dt><dd id="detail-type">界面开发</dd></div></dl>
|
|
35
39
|
<div class="detail-progress"><div data-i18n="demo.progressLabel">任务进度</div><strong id="detail-progress-label">正在执行分配任务</strong><div class="progress-line"><div class="progress-track"><div id="detail-progress-fill"></div></div><span id="detail-percent">42%</span></div></div>
|
|
36
40
|
<dl class="detail-meta"><div><dt><img src="./demo-icons/box-seam-fill.svg" alt=""><span data-i18n="demo.zone">工作区域</span></dt><dd id="detail-zone">A2 · 前端工作区</dd></div><div><dt><img src="./demo-icons/file-earmark-code-fill.svg" alt=""><span id="detail-activity-label" data-i18n="demo.files">相关文件</span></dt><dd id="detail-file">src/views/Tasks.vue</dd></div><div><dt><img src="./demo-icons/stack.svg" alt=""><span data-i18n="demo.relation">协作关系</span></dt><dd id="detail-parent">主 Agent → 子 Agent</dd></div><div><dt><img src="./demo-icons/people-fill.svg" alt=""><span data-i18n="demo.assignedTo">分配给</span></dt><dd><span class="mini-avatar"><img id="detail-agent-icon" src="./demo-icons/file-earmark-code-fill.svg" alt=""></span><span id="detail-name">前端 Agent</span></dd></div><div><dt><img src="./demo-icons/check-lg.svg" alt=""><span data-i18n="demo.stageMeta">当前阶段</span></dt><dd id="detail-stage">并行执行</dd></div></dl>
|
|
37
|
-
<button id="view-report" class="primary-button"><span data-i18n="demo.viewReport">查看任务详情</span><img src="./demo-icons/arrow-right.svg" alt=""></button>
|
|
38
|
-
<button id="view-task" class="text-button" hidden data-i18n="demo.viewSource">查看任务原文</button><p id="detail-disclaimer" class="demo-disclaimer" data-i18n="demo.disclaimer">模拟协作数据 · 不读取或执行真实任务</p>
|
|
39
41
|
</aside>
|
|
40
42
|
<button id="open-details" class="open-details glass" hidden><img src="./demo-icons/people-fill.svg" alt=""><span data-i18n="demo.agentDetails">Agent 详情</span></button>
|
|
41
43
|
<div id="notifications" class="notifications glass" hidden><div class="popover-title"><strong data-i18n="demo.updates">协作动态</strong><span class="popover-actions"><span id="event-mode" data-i18n="demo.simulatedEvents">模拟事件</span><button id="mark-read" type="button" data-i18n="demo.markAllRead">全部已读</button></span></div><div id="notification-list"></div></div>
|
|
42
|
-
<div class="scene-tools glass"><button id="toggle-play" aria-label="播放演示" data-i18n-aria-label="demo.play" title="播放演示" data-i18n-title="demo.play"><img id="play-icon" src="./demo-icons/play-fill.svg" alt=""><span id="play-label" data-i18n="demo.play">播放演示</span></button><span class="tool-separator"></span><button id="restart-demo" aria-label="重新开始演示" data-i18n-aria-label="demo.restart" title="重新开始" data-i18n-title="demo.restartTitle"><img src="./demo-icons/arrow-counterclockwise.svg" alt=""></button><button id="reset-demo-camera" aria-label="复位三维镜头" data-i18n-aria-label="demo.resetCamera" title="复位镜头" data-i18n-title="demo.resetCameraTitle"><img src="./demo-icons/crosshair.svg" alt=""></button><button id="team-picker" hidden data-i18n="demo.team">团队</button><button id="history-toggle" hidden data-i18n="demo.history">查看历史成员</button><label class="reduce-label"><input id="demo-reduced" type="checkbox"><span data-i18n="demo.reduceMotion">减少动画</span></label></div>
|
|
44
|
+
<div class="scene-tools glass"><button id="toggle-play" aria-label="播放演示" data-i18n-aria-label="demo.play" title="播放演示" data-i18n-title="demo.play"><img id="play-icon" src="./demo-icons/play-fill.svg" alt=""><span id="play-label" data-i18n="demo.play">播放演示</span></button><span class="tool-separator"></span><button id="restart-demo" aria-label="重新开始演示" data-i18n-aria-label="demo.restart" title="重新开始" data-i18n-title="demo.restartTitle"><img src="./demo-icons/arrow-counterclockwise.svg" alt=""></button><button id="reset-demo-camera" aria-label="复位三维镜头" data-i18n-aria-label="demo.resetCamera" title="复位镜头" data-i18n-title="demo.resetCameraTitle"><img src="./demo-icons/crosshair.svg" alt=""></button><button id="team-picker" hidden data-i18n="demo.team">团队</button><button id="history-toggle" hidden data-i18n="demo.history">查看历史成员</button><button id="toggle-shell" data-i18n="demo.hidePanels" aria-label="隐藏面板" data-i18n-aria-label="demo.hidePanels" title="隐藏面板" data-i18n-title="demo.hidePanels">隐藏面板</button><span class="tool-separator"></span><label class="reduce-label"><input id="demo-reduced" type="checkbox"><span data-i18n="demo.reduceMotion">减少动画</span></label></div>
|
|
43
45
|
<span class="scene-instruction" data-i18n="demo.instruction">拖动旋转 · 滚轮缩放 · 点击工位或显示器查看详情</span>
|
|
44
46
|
<section id="workflow-dock" class="workflow-dock glass" aria-label="任务协作流程" data-i18n-aria-label="demo.workflowAria">
|
|
45
47
|
<button id="dock-toggle" class="dock-toggle" aria-expanded="false"><span data-i18n="demo.workflowToggle">协作流程与任务</span><img src="./demo-icons/chevron-down.svg" alt=""></button>
|
|
@@ -58,7 +60,8 @@
|
|
|
58
60
|
</section>
|
|
59
61
|
<dialog id="demo-dialog"><header><span class="dialog-icon"><img id="dialog-icon" src="./demo-icons/file-earmark-code-fill.svg" alt=""></span><div><small id="dialog-mode">CODEX OFFICE / DEMO</small><h2 id="dialog-title">任务详情</h2></div><button id="close-demo-dialog" class="icon-btn" aria-label="关闭任务弹窗" data-i18n-aria-label="demo.closeDialog"><img class="icon" src="./demo-icons/x-lg.svg" alt=""></button></header><pre id="dialog-content"></pre><footer><span id="dialog-caption" data-i18n="demo.dialogCaption">以上内容仅用于协作演示</span><button id="copy-demo-report" data-i18n="demo.copy">复制内容</button></footer></dialog>
|
|
60
62
|
<div id="source-status" class="source-status glass" role="status" hidden></div><div id="demo-toast" class="toast" role="status" hidden></div>
|
|
61
|
-
<
|
|
63
|
+
<button id="shell-restore" class="shell-restore glass" hidden data-i18n="demo.showPanels" aria-label="显示面板" data-i18n-aria-label="demo.showPanels">显示面板</button>
|
|
64
|
+
<script src="./vendor/office.js"></script>
|
|
62
65
|
<script type="module" src="./demo.js"></script>
|
|
63
66
|
</body>
|
|
64
67
|
</html>
|