fix(dees-workspace): fix demo wrapper and workspace layout; always render terminal preview

This commit is contained in:
2025-12-31 12:45:19 +00:00
parent 826689ec0e
commit cfe3490bcf
4 changed files with 28 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View File

@@ -1,5 +1,14 @@
# Changelog # Changelog
## 2025-12-31 - 3.20.1 - fix(dees-workspace)
fix demo wrapper and workspace layout; always render terminal preview
- Import @design.estate/dees-wcctools/demotools and wrap demo content in <dees-demowrapper>
- Create an absolute-positioned container so the dees-workspace fills 100% height/width
- Always render dees-workspace-terminal-preview (use empty command when none) to avoid conditional rendering issues
- Set a fixed height (200px) for the terminal preview in the initializing state
- Add Playwright demo asset .playwright-mcp/dees-workspace-demo-4k.png
## 2025-12-31 - 3.20.0 - feat(workspace) ## 2025-12-31 - 3.20.0 - feat(workspace)
rename editor components to workspace group and move terminal & TypeScript intellisense into workspace rename editor components to workspace group and move terminal & TypeScript intellisense into workspace

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@design.estate/dees-catalog', name: '@design.estate/dees-catalog',
version: '3.20.0', version: '3.20.1',
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.' description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
} }

View File

@@ -22,6 +22,7 @@ import '../../dees-icon/dees-icon.js';
import { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js'; import { DeesWorkspaceMonaco } from '../dees-workspace-monaco/dees-workspace-monaco.js';
import { TypeScriptIntelliSenseManager } from './typescript-intellisense.js'; import { TypeScriptIntelliSenseManager } from './typescript-intellisense.js';
import { DeesContextmenu } from '../../dees-contextmenu/dees-contextmenu.js'; import { DeesContextmenu } from '../../dees-contextmenu/dees-contextmenu.js';
import '@design.estate/dees-wcctools/demotools';
declare global { declare global {
interface HTMLElementTagNameMap { interface HTMLElementTagNameMap {
@@ -174,13 +175,19 @@ testSmartPromise();
await env.mount(fileTree); await env.mount(fileTree);
})(); })();
// Create container element for proper 100% height like dees-appui-base
const containerElement = document.createElement('div');
containerElement.style.cssText = 'position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden;';
const workspaceElement = document.createElement('dees-workspace') as DeesWorkspace;
workspaceElement.executionEnvironment = env;
workspaceElement.initializationPromise = mountPromise;
containerElement.appendChild(workspaceElement);
return html` return html`
<div style="width: 100%; height: 600px; position: relative;"> <dees-demowrapper>
<dees-workspace ${containerElement}
.executionEnvironment=${env} </dees-demowrapper>
.initializationPromise=${mountPromise}
></dees-workspace>
</div>
`; `;
}; };
@@ -662,6 +669,7 @@ testSmartPromise();
margin-top: 24px; margin-top: 24px;
width: 80%; width: 80%;
max-width: 600px; max-width: 600px;
height: 200px;
} }
dees-workspace-filetree { dees-workspace-filetree {
@@ -702,12 +710,10 @@ testSmartPromise();
<div class="initializing"> <div class="initializing">
<dees-icon .icon=${'lucide:loader2'} iconSize="32"></dees-icon> <dees-icon .icon=${'lucide:loader2'} iconSize="32"></dees-icon>
<span>Initializing workspace...</span> <span>Initializing workspace...</span>
${this.initCommand ? html`
<dees-workspace-terminal-preview <dees-workspace-terminal-preview
.command=${this.initCommand} .command=${this.initCommand || ''}
.lines=${this.initOutput} .lines=${this.initOutput}
></dees-workspace-terminal-preview> ></dees-workspace-terminal-preview>
` : ''}
</div> </div>
`; `;
} }