Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
d7b690621e | |||
60951330d1 | |||
7095197d07 | |||
3ee48e80ad |
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@design.estate/dees-catalog",
|
||||
"version": "1.10.1",
|
||||
"version": "1.10.3",
|
||||
"private": false,
|
||||
"description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
|
||||
"main": "dist_ts_web/index.js",
|
||||
|
@ -35,12 +35,24 @@ export class DeesInputTypelist extends DeesInputBase<DeesInputTypelist> {
|
||||
}
|
||||
.mainbox {
|
||||
border-radius: 3px;
|
||||
background: #222;
|
||||
background: ${cssManager.bdTheme('#fafafa', '#222222')};
|
||||
overflow: hidden;
|
||||
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #444')};
|
||||
border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #333')};
|
||||
border-right: ${cssManager.bdTheme('1px solid #CCC', 'none')};
|
||||
border-left: ${cssManager.bdTheme('1px solid #CCC', 'none')};
|
||||
border-top: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};
|
||||
border-bottom: ${cssManager.bdTheme('1px solid #CCC', '1px solid #222')};
|
||||
border-right: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};
|
||||
border-left: ${cssManager.bdTheme('1px solid #CCC', '1px solid #ffffff10')};
|
||||
box-shadow: ${cssManager.bdTheme('0px 1px 4px rgba(0,0,0,0.3)', 'none')};
|
||||
transition: all 0.2s;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.mainbox:hover {
|
||||
filter: ${cssManager.bdTheme('brightness(0.98)', 'brightness(1.05)')};
|
||||
}
|
||||
|
||||
.mainbox:focus-within {
|
||||
outline: 2px solid ${cssManager.bdTheme('#0069f2', '#0084ff')};
|
||||
outline-offset: -2px;
|
||||
}
|
||||
|
||||
.tags {
|
||||
@ -50,14 +62,15 @@ export class DeesInputTypelist extends DeesInputBase<DeesInputTypelist> {
|
||||
|
||||
.notags {
|
||||
text-align: center;
|
||||
opacity: 0.5;
|
||||
font-size: 12px;
|
||||
color: ${cssManager.bdTheme('#999', '#666')};
|
||||
font-size: 13px;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
input {
|
||||
display: block;
|
||||
box-sizing: border-box;
|
||||
background: #181818;
|
||||
background: ${cssManager.bdTheme('#f5f5f5', '#181818')};
|
||||
width: 100%;
|
||||
outline: none;
|
||||
border: none;
|
||||
@ -67,30 +80,68 @@ export class DeesInputTypelist extends DeesInputBase<DeesInputTypelist> {
|
||||
line-height: 32px;
|
||||
height: 0px;
|
||||
transition: height 0.2s;
|
||||
border-top: 1px solid ${cssManager.bdTheme('#e0e0e0', '#333')};
|
||||
}
|
||||
|
||||
input:focus {
|
||||
height: 32px;
|
||||
background: ${cssManager.bdTheme('#fafafa', '#1a1a1a')};
|
||||
}
|
||||
|
||||
input::placeholder {
|
||||
color: ${cssManager.bdTheme('#999', '#666')};
|
||||
}
|
||||
|
||||
.tag {
|
||||
display: inline-block;
|
||||
background: ${cssManager.bdTheme('#e0e0e0', '#444')};
|
||||
color: ${cssManager.bdTheme('#333', '#fff')};
|
||||
padding: 4px 8px;
|
||||
border-radius: 3px;
|
||||
margin: 2px;
|
||||
font-size: 12px;
|
||||
background: ${cssManager.bdTheme('#e8f5e9', '#2d3a2d')};
|
||||
color: ${cssManager.bdTheme('#2e7d32', '#81c784')};
|
||||
padding: 4px 10px;
|
||||
border-radius: 4px;
|
||||
margin: 3px;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
transition: all 0.2s;
|
||||
border: 1px solid ${cssManager.bdTheme('#c8e6c9', '#1b5e20')};
|
||||
}
|
||||
|
||||
.tag:hover {
|
||||
background: ${cssManager.bdTheme('#c8e6c9', '#3d4f3d')};
|
||||
transform: translateY(-1px);
|
||||
}
|
||||
|
||||
.tag .remove {
|
||||
margin-left: 6px;
|
||||
margin-left: 8px;
|
||||
cursor: pointer;
|
||||
opacity: 0.6;
|
||||
opacity: 0.7;
|
||||
font-weight: 700;
|
||||
font-size: 16px;
|
||||
line-height: 1;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
.tag .remove:hover {
|
||||
opacity: 1;
|
||||
color: ${cssManager.bdTheme('#c62828', '#ef5350')};
|
||||
}
|
||||
|
||||
/* Disabled state */
|
||||
:host([disabled]) .mainbox {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
:host([disabled]) .tags {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
:host([disabled]) .tag {
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
:host([disabled]) input {
|
||||
cursor: not-allowed;
|
||||
background: ${cssManager.bdTheme('#f0f0f0', '#1a1a1a')};
|
||||
}
|
||||
`,
|
||||
];
|
||||
|
@ -46,10 +46,14 @@ export class DeesFormattingMenu extends DeesElement {
|
||||
:host {
|
||||
position: fixed;
|
||||
pointer-events: none;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.formatting-menu {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
background: ${cssManager.bdTheme('#ffffff', '#262626')};
|
||||
border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#404040')};
|
||||
border-radius: 6px;
|
||||
@ -159,12 +163,12 @@ export class DeesFormattingMenu extends DeesElement {
|
||||
this.position = position;
|
||||
this.callback = callback;
|
||||
|
||||
// Get z-index from registry
|
||||
// Get z-index from registry and apply immediately
|
||||
this.menuZIndex = zIndexRegistry.getNextZIndex();
|
||||
zIndexRegistry.register(this, this.menuZIndex);
|
||||
this.style.zIndex = this.menuZIndex.toString();
|
||||
|
||||
this.visible = true;
|
||||
console.log('FormattingMenu.show - visible set to:', this.visible);
|
||||
}
|
||||
|
||||
public hide(): void {
|
||||
|
@ -1,6 +1,5 @@
|
||||
import {
|
||||
customElement,
|
||||
property,
|
||||
html,
|
||||
DeesElement,
|
||||
type TemplateResult,
|
||||
@ -54,10 +53,14 @@ export class DeesSlashMenu extends DeesElement {
|
||||
:host {
|
||||
position: fixed;
|
||||
pointer-events: none;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
.slash-menu {
|
||||
position: absolute;
|
||||
position: fixed;
|
||||
background: ${cssManager.bdTheme('#ffffff', '#262626')};
|
||||
border: 1px solid ${cssManager.bdTheme('#e0e0e0', '#404040')};
|
||||
border-radius: 8px;
|
||||
@ -121,7 +124,7 @@ export class DeesSlashMenu extends DeesElement {
|
||||
render(): TemplateResult {
|
||||
if (!this.visible) return html``;
|
||||
|
||||
// Apply z-index to host element
|
||||
// Ensure z-index is applied to host element
|
||||
this.style.zIndex = this.menuZIndex.toString();
|
||||
|
||||
const menuItems = this.getFilteredMenuItems();
|
||||
@ -168,9 +171,10 @@ export class DeesSlashMenu extends DeesElement {
|
||||
this.filter = '';
|
||||
this.selectedIndex = 0;
|
||||
|
||||
// Get z-index from registry
|
||||
// Get z-index from registry and apply immediately
|
||||
this.menuZIndex = zIndexRegistry.getNextZIndex();
|
||||
zIndexRegistry.register(this, this.menuZIndex);
|
||||
this.style.zIndex = this.menuZIndex.toString();
|
||||
|
||||
this.visible = true;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ import '../elements/dees-input-tags.js';
|
||||
import '../elements/dees-input-wysiwyg.js';
|
||||
import '../elements/dees-appui-profiledropdown.js';
|
||||
|
||||
export const showcasePage = () => html`
|
||||
export const zIndexShowcase = () => html`
|
||||
<style>
|
||||
${css`
|
||||
.page-wrapper {
|
||||
@ -245,6 +245,16 @@ export const showcasePage = () => html`
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* Consistent panel spacing */
|
||||
dees-panel {
|
||||
display: block;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
dees-panel:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.test-area {
|
||||
position: relative;
|
||||
height: 200px;
|
||||
@ -665,14 +675,23 @@ export const showcasePage = () => html`
|
||||
.placeholder=${'Type "/" to see slash commands or select text to format...'}
|
||||
.outputFormat=${'html'}
|
||||
.description=${'The slash menu and formatting menu should appear above this modal'}
|
||||
.value=${`<p>Welcome to the WYSIWYG editor demo!</p>
|
||||
<p>This editor demonstrates proper z-index management:</p>
|
||||
<ul>
|
||||
<li>Type <strong>/</strong> to open the slash command menu</li>
|
||||
<li>Select any text to see the formatting toolbar</li>
|
||||
<li>Both menus will appear <em>above</em> this modal</li>
|
||||
</ul>
|
||||
<p>Try it now: Type / here or select this text to format it.</p>`}
|
||||
></dees-input-wysiwyg>
|
||||
</dees-form>
|
||||
<p style="margin-top: 16px; color: ${cssManager.bdTheme('#666', '#999')}">
|
||||
<strong>Tips:</strong><br>
|
||||
• Type "/" to open the slash command menu<br>
|
||||
• Select text to see the formatting toolbar<br>
|
||||
• Both menus should appear above this modal
|
||||
</p>
|
||||
<div style="margin-top: 16px; padding: 16px; background: ${cssManager.bdTheme('#e3f2fd', '#1e3a5f')}; border-radius: 8px;">
|
||||
<strong style="color: ${cssManager.bdTheme('#1976d2', '#90caf9')}">✨ Z-Index Fix Applied!</strong><br>
|
||||
<span style="color: ${cssManager.bdTheme('#1976d2', '#90caf9')}">
|
||||
The WYSIWYG menus now properly use the dynamic z-index registry.<br>
|
||||
They will always appear above the modal, regardless of stacking order.
|
||||
</span>
|
||||
</div>
|
||||
`,
|
||||
menuOptions: [
|
||||
{ name: 'Cancel', action: async (modal) => modal.destroy() },
|
||||
|
Reference in New Issue
Block a user