@design.estate/dees-wcctools 1.0.101 → 1.1.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/dist_bundle/bundle.js +695 -123
- package/dist_bundle/bundle.js.map +3 -3
- package/dist_ts_web/00_commitinfo_data.js +2 -2
- package/dist_ts_web/elements/wcc-dashboard.js +8 -1
- package/dist_ts_web/elements/wcc-frame.d.ts +1 -0
- package/dist_ts_web/elements/wcc-frame.js +11 -2
- package/dist_ts_web/elements/wcc-properties.d.ts +13 -0
- package/dist_ts_web/elements/wcc-properties.js +592 -92
- package/dist_ts_web/elements/wcc-sidebar.js +93 -32
- package/dist_watch/bundle.js +695 -123
- package/dist_watch/bundle.js.map +3 -3
- package/package.json +1 -1
- package/readme.hints.md +102 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-dashboard.ts +7 -0
- package/ts_web/elements/wcc-frame.ts +5 -1
- package/ts_web/elements/wcc-properties.ts +631 -106
- package/ts_web/elements/wcc-sidebar.ts +92 -31
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-wcctools",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.",
|
|
6
6
|
"exports": {
|
package/readme.hints.md
CHANGED
|
@@ -1,5 +1,107 @@
|
|
|
1
1
|
# Project Hints and Findings
|
|
2
2
|
|
|
3
|
+
## UI Redesign with Shadcn-like Styles (2025-06-27)
|
|
4
|
+
|
|
5
|
+
### Changes Made
|
|
6
|
+
Updated the WCC Dashboard UI components (properties and sidebar) to use shadcn-like design patterns:
|
|
7
|
+
|
|
8
|
+
1. **Color System**: Implemented CSS variables for theming:
|
|
9
|
+
- `--background`, `--foreground`, `--card`, `--primary`, `--secondary`
|
|
10
|
+
- `--muted`, `--accent`, `--border`, `--input`, `--ring`
|
|
11
|
+
- Consistent dark theme with subtle borders and proper contrast
|
|
12
|
+
- Dynamic theme switching between light and dark modes
|
|
13
|
+
|
|
14
|
+
2. **Properties Panel Improvements (Updated)**:
|
|
15
|
+
- Changed from fixed 3-column grid to flexible flexbox layout
|
|
16
|
+
- Properties now wrap and use space more efficiently
|
|
17
|
+
- Added rounded corners (using --radius-md) and better spacing
|
|
18
|
+
- Property items use flexbox with min-width for responsive layout
|
|
19
|
+
- Property labels now show as styled headers with type info
|
|
20
|
+
- Form controls updated with shadcn-style focus states and transitions
|
|
21
|
+
- Complex properties (Objects/Arrays) show "Edit" button
|
|
22
|
+
- Advanced JSON editor appears above properties panel when editing complex types
|
|
23
|
+
- Dynamic height adjustment (50px when editor is open, 120px normally)
|
|
24
|
+
|
|
25
|
+
3. **Sidebar Styling**:
|
|
26
|
+
- Updated with consistent color scheme
|
|
27
|
+
- Added rounded corners to menu items
|
|
28
|
+
- Improved hover states with smooth transitions
|
|
29
|
+
- Better typography with proper font weights
|
|
30
|
+
|
|
31
|
+
4. **Advanced Property Editor**:
|
|
32
|
+
- JSON editor for complex types (Objects and Arrays)
|
|
33
|
+
- Monaco-style monospace font for code editing
|
|
34
|
+
- Live updates to element properties
|
|
35
|
+
- Positioned above the properties panel with smooth transitions
|
|
36
|
+
|
|
37
|
+
5. **Theme and Viewport Selectors (New)**:
|
|
38
|
+
- Redesigned buttons with flexbox layout for better icon/text alignment
|
|
39
|
+
- Added hover effects with transform and shadow
|
|
40
|
+
- Smooth transitions on all interactive elements
|
|
41
|
+
- Selected state uses primary color variables
|
|
42
|
+
- Icons reduced in size for better balance
|
|
43
|
+
|
|
44
|
+
6. **Form Controls (New)**:
|
|
45
|
+
- Input fields and selects now have:
|
|
46
|
+
- Rounded corners (--radius-sm)
|
|
47
|
+
- Consistent padding (0.5rem 0.75rem)
|
|
48
|
+
- Focus states with ring effect using box-shadow
|
|
49
|
+
- Smooth transition animations
|
|
50
|
+
- Checkboxes use accent-color for theming
|
|
51
|
+
|
|
52
|
+
### Technical Details
|
|
53
|
+
- Uses system font stack ('Inter' preferred) for better native appearance
|
|
54
|
+
- Subtle borders with CSS variables for consistency
|
|
55
|
+
- Consistent spacing using rem units
|
|
56
|
+
- Smooth transitions (0.2s ease) for interactive elements
|
|
57
|
+
- Custom scrollbar styling for better visual integration
|
|
58
|
+
- Grid layout with 1px gaps creating subtle dividers
|
|
59
|
+
- Warning display with backdrop blur and rounded corners
|
|
60
|
+
|
|
61
|
+
## Advanced Complex Properties Editor (2025-06-27)
|
|
62
|
+
|
|
63
|
+
### Overview
|
|
64
|
+
Implemented an advanced editor for complex properties (Arrays and Objects) that appears between the wcc-properties panel and frame when activated.
|
|
65
|
+
|
|
66
|
+
### Features
|
|
67
|
+
1. **Dynamic Layout**: Frame shrinks by 300px from bottom when editor opens
|
|
68
|
+
2. **Multiple Editors**: Can edit multiple properties simultaneously side by side
|
|
69
|
+
3. **JSON Editor**:
|
|
70
|
+
- Monospace font for code editing
|
|
71
|
+
- Tab key support for indentation
|
|
72
|
+
- Syntax validation with error messages
|
|
73
|
+
- Live preview of changes
|
|
74
|
+
4. **Smooth Transitions**: Animated opening/closing with 0.3s ease
|
|
75
|
+
5. **Error Handling**: Invalid JSON shows clear error messages that disappear on typing
|
|
76
|
+
6. **Close All Button**: Single button to close all open editors at once
|
|
77
|
+
|
|
78
|
+
### Technical Implementation (Updated)
|
|
79
|
+
- **State Management**: Changed from single editor to array of editors with unique IDs
|
|
80
|
+
- **Editor Structure**: Each editor instance contains:
|
|
81
|
+
- `id`: Unique identifier (`propertyName-timestamp`)
|
|
82
|
+
- `name`: Property name
|
|
83
|
+
- `value`: Original value
|
|
84
|
+
- `element`: Reference to the element
|
|
85
|
+
- `editorValue`: Current JSON string
|
|
86
|
+
- `editorError`: Validation error message
|
|
87
|
+
- **Event System**: Uses custom 'editorStateChanged' event to communicate with parent dashboard
|
|
88
|
+
- **Dynamic Styling**: wcc-frame's bottom position changes from 100px to 400px when any editor is open
|
|
89
|
+
- **Property Types**: Object and Array properties show "Edit Object/Array" button instead of inline controls
|
|
90
|
+
|
|
91
|
+
### User Flow
|
|
92
|
+
1. Click "Edit Object/Array" button on complex property
|
|
93
|
+
2. Editor slides up between properties panel and frame
|
|
94
|
+
3. Click additional "Edit" buttons to open more properties side by side
|
|
95
|
+
4. Each editor can be saved/cancelled independently
|
|
96
|
+
5. "Close All" button dismisses all editors at once
|
|
97
|
+
6. Frame automatically resizes back when all editors are closed
|
|
98
|
+
|
|
99
|
+
### Layout Details
|
|
100
|
+
- **Container**: Flexbox with horizontal scrolling when multiple editors overflow
|
|
101
|
+
- **Editor Width**: Min 300px, max 500px, flexible between
|
|
102
|
+
- **Scrollbar**: Custom styled thin scrollbar for horizontal overflow
|
|
103
|
+
- **Header Bar**: Fixed top bar with "Property Editors" title and "Close All" button
|
|
104
|
+
|
|
3
105
|
## Properties Panel Element Detection Issue (Fixed)
|
|
4
106
|
|
|
5
107
|
### Problem
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-wcctools',
|
|
6
|
-
version: '1.0
|
|
6
|
+
version: '1.1.0',
|
|
7
7
|
description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
|
|
8
8
|
}
|
|
@@ -99,6 +99,13 @@ export class WccDashboard extends DeesElement {
|
|
|
99
99
|
@selectedTheme=${(eventArg) => {
|
|
100
100
|
this.selectedTheme = eventArg.detail;
|
|
101
101
|
}}
|
|
102
|
+
@editorStateChanged=${async (eventArg) => {
|
|
103
|
+
const frame = await this.wccFrame;
|
|
104
|
+
if (frame) {
|
|
105
|
+
frame.advancedEditorOpen = eventArg.detail.isOpen;
|
|
106
|
+
frame.requestUpdate();
|
|
107
|
+
}
|
|
108
|
+
}}
|
|
102
109
|
></wcc-properties>
|
|
103
110
|
<wcc-frame id="wccFrame" viewport=${this.selectedViewport}>
|
|
104
111
|
</wcc-frame>
|
|
@@ -13,6 +13,9 @@ export class WccFrame extends DeesElement {
|
|
|
13
13
|
@property()
|
|
14
14
|
public viewport: string;
|
|
15
15
|
|
|
16
|
+
@property({ type: Boolean })
|
|
17
|
+
public advancedEditorOpen: boolean = false;
|
|
18
|
+
|
|
16
19
|
public static styles = [
|
|
17
20
|
css`
|
|
18
21
|
:host {
|
|
@@ -22,7 +25,6 @@ export class WccFrame extends DeesElement {
|
|
|
22
25
|
left: 200px;
|
|
23
26
|
right: 0px;
|
|
24
27
|
top: 0px;
|
|
25
|
-
bottom: 100px;
|
|
26
28
|
overflow-y: auto;
|
|
27
29
|
overflow-x: auto;
|
|
28
30
|
overscroll-behavior: contain;
|
|
@@ -41,6 +43,8 @@ export class WccFrame extends DeesElement {
|
|
|
41
43
|
return html`
|
|
42
44
|
<style>
|
|
43
45
|
:host {
|
|
46
|
+
bottom: ${this.advancedEditorOpen ? '400px' : '100px'};
|
|
47
|
+
transition: bottom 0.3s ease;
|
|
44
48
|
${(() => {
|
|
45
49
|
switch (this.viewport) {
|
|
46
50
|
case 'desktop':
|