diff --git a/readme.hints.md b/readme.hints.md
index 9eadb15..4222b83 100644
--- a/readme.hints.md
+++ b/readme.hints.md
@@ -58,6 +58,34 @@ Updated the WCC Dashboard UI components (properties and sidebar) to use shadcn-l
- Grid layout with 1px gaps creating subtle dividers
- Warning display with backdrop blur and rounded corners
+## Advanced Complex Properties Editor (2025-06-27)
+
+### Overview
+Implemented an advanced editor for complex properties (Arrays and Objects) that appears between the wcc-properties panel and frame when activated.
+
+### Features
+1. **Dynamic Layout**: Frame shrinks by 300px from bottom when editor opens
+2. **JSON Editor**:
+ - Monospace font for code editing
+ - Tab key support for indentation
+ - Syntax validation with error messages
+ - Live preview of changes
+3. **Smooth Transitions**: Animated opening/closing with 0.3s ease
+4. **Error Handling**: Invalid JSON shows clear error messages that disappear on typing
+
+### Technical Implementation
+- **State Management**: Added showAdvancedEditor, editingProperty, editorValue, editorError states
+- **Event System**: Uses custom 'editorStateChanged' event to communicate with parent dashboard
+- **Dynamic Styling**: wcc-frame's bottom position changes from 100px to 400px when editor is open
+- **Property Types**: Object and Array properties show "Edit Object/Array" button instead of inline controls
+
+### User Flow
+1. Click "Edit Object/Array" button on complex property
+2. Editor slides up between properties panel and frame
+3. Edit JSON with live validation
+4. Save applies changes and refreshes properties, Cancel discards changes
+5. Frame automatically resizes back when editor closes
+
## Properties Panel Element Detection Issue (Fixed)
### Problem
diff --git a/ts_web/elements/wcc-dashboard.ts b/ts_web/elements/wcc-dashboard.ts
index 54a1abd..d805e8c 100644
--- a/ts_web/elements/wcc-dashboard.ts
+++ b/ts_web/elements/wcc-dashboard.ts
@@ -99,6 +99,13 @@ export class WccDashboard extends DeesElement {
@selectedTheme=${(eventArg) => {
this.selectedTheme = eventArg.detail;
}}
+ @editorStateChanged=${async (eventArg) => {
+ const frame = await this.wccFrame;
+ if (frame) {
+ frame.advancedEditorOpen = eventArg.detail.isOpen;
+ frame.requestUpdate();
+ }
+ }}
>