@design.estate/wcctools 5.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.
Files changed (55) hide show
  1. package/.smartconfig.json +65 -0
  2. package/changelog.md +414 -0
  3. package/dist_bundle/bundle.js +92419 -0
  4. package/dist_bundle/bundle.js.map +1 -0
  5. package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
  6. package/dist_ts_web/00_commitinfo_data.js +9 -0
  7. package/dist_ts_web/elements/wcc-contextmenu.d.ts +41 -0
  8. package/dist_ts_web/elements/wcc-contextmenu.js +329 -0
  9. package/dist_ts_web/elements/wcc-dashboard.d.ts +119 -0
  10. package/dist_ts_web/elements/wcc-dashboard.js +700 -0
  11. package/dist_ts_web/elements/wcc-frame.d.ts +22 -0
  12. package/dist_ts_web/elements/wcc-frame.js +256 -0
  13. package/dist_ts_web/elements/wcc-properties.d.ts +43 -0
  14. package/dist_ts_web/elements/wcc-properties.js +1147 -0
  15. package/dist_ts_web/elements/wcc-record-button.d.ts +12 -0
  16. package/dist_ts_web/elements/wcc-record-button.js +165 -0
  17. package/dist_ts_web/elements/wcc-recording-panel.d.ts +44 -0
  18. package/dist_ts_web/elements/wcc-recording-panel.js +1103 -0
  19. package/dist_ts_web/elements/wcc-sidebar.d.ts +91 -0
  20. package/dist_ts_web/elements/wcc-sidebar.js +1497 -0
  21. package/dist_ts_web/elements/wcctools.helpers.d.ts +46 -0
  22. package/dist_ts_web/elements/wcctools.helpers.js +106 -0
  23. package/dist_ts_web/index.d.ts +18 -0
  24. package/dist_ts_web/index.js +30 -0
  25. package/dist_ts_web/pages/index.d.ts +1 -0
  26. package/dist_ts_web/pages/index.js +2 -0
  27. package/dist_ts_web/services/recorder.service.d.ts +55 -0
  28. package/dist_ts_web/services/recorder.service.js +353 -0
  29. package/dist_ts_web/wcctools.interfaces.d.ts +29 -0
  30. package/dist_ts_web/wcctools.interfaces.js +2 -0
  31. package/dist_ts_web/wcctools.plugins.d.ts +2 -0
  32. package/dist_ts_web/wcctools.plugins.js +3 -0
  33. package/license.md +19 -0
  34. package/package.json +64 -0
  35. package/readme.md +568 -0
  36. package/ts_web/00_commitinfo_data.ts +8 -0
  37. package/ts_web/elements/wcc-contextmenu.ts +291 -0
  38. package/ts_web/elements/wcc-dashboard.ts +672 -0
  39. package/ts_web/elements/wcc-frame.ts +189 -0
  40. package/ts_web/elements/wcc-properties.ts +1089 -0
  41. package/ts_web/elements/wcc-record-button.ts +108 -0
  42. package/ts_web/elements/wcc-recording-panel.ts +1010 -0
  43. package/ts_web/elements/wcc-sidebar.ts +1470 -0
  44. package/ts_web/elements/wcctools.helpers.ts +153 -0
  45. package/ts_web/index.ts +38 -0
  46. package/ts_web/pages/index.ts +1 -0
  47. package/ts_web/readme.md +177 -0
  48. package/ts_web/services/recorder.service.ts +451 -0
  49. package/ts_web/tspublish.json +3 -0
  50. package/ts_web/types/dom-mediacapture-stub/index.d.ts +12 -0
  51. package/ts_web/types/dom-mediacapture-stub/package.json +6 -0
  52. package/ts_web/types/dom-webcodecs-stub/index.d.ts +2 -0
  53. package/ts_web/types/dom-webcodecs-stub/package.json +6 -0
  54. package/ts_web/wcctools.interfaces.ts +31 -0
  55. package/ts_web/wcctools.plugins.ts +5 -0
@@ -0,0 +1,65 @@
1
+ {
2
+ "@git.zone/cli": {
3
+ "projectType": "wcc",
4
+ "module": {
5
+ "githost": "code.foss.global",
6
+ "gitscope": "design.estate",
7
+ "gitrepo": "wcctools",
8
+ "description": "A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.",
9
+ "npmPackagename": "@design.estate/wcctools",
10
+ "license": "MIT",
11
+ "projectDomain": "design.estate",
12
+ "keywords": [
13
+ "web components",
14
+ "element catalogues",
15
+ "custom elements",
16
+ "documentation",
17
+ "typescript",
18
+ "lit",
19
+ "component development",
20
+ "design system",
21
+ "element testing",
22
+ "page development"
23
+ ]
24
+ },
25
+ "release": {
26
+ "targets": {
27
+ "git": {
28
+ "enabled": true,
29
+ "remote": "origin",
30
+ "pushBranch": true,
31
+ "pushTags": true
32
+ },
33
+ "npm": {
34
+ "enabled": true,
35
+ "registries": [
36
+ "https://verdaccio.lossless.digital",
37
+ "https://registry.npmjs.org"
38
+ ],
39
+ "accessLevel": "public",
40
+ "alreadyPublished": "success"
41
+ },
42
+ "docker": {
43
+ "enabled": false
44
+ }
45
+ }
46
+ },
47
+ "schemaVersion": 2
48
+ },
49
+ "@git.zone/tsdoc": {
50
+ "legal": "\n## License and Legal Information\n\nThis repository contains open-source code that is licensed under the MIT License. A copy of the MIT License can be found in the [license](license.md) file within this repository. \n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH and are not included within the scope of the MIT license granted herein. Use of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines, and any usage must be approved in writing by Task Venture Capital GmbH.\n\n### Company Information\n\nTask Venture Capital GmbH \nRegistered at District court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or if you require further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
51
+ },
52
+ "@git.zone/tsbundle": {
53
+ "bundles": [
54
+ {
55
+ "from": "./html/index.ts",
56
+ "to": "./dist_bundle/bundle.js",
57
+ "outputMode": "bundle",
58
+ "bundler": "esbuild"
59
+ }
60
+ ]
61
+ },
62
+ "@git.zone/tswatch": {
63
+ "preset": "element"
64
+ }
65
+ }
package/changelog.md ADDED
@@ -0,0 +1,414 @@
1
+ # Changelog
2
+
3
+ ## 2026-10-06 - 5.1.0
4
+
5
+ ### Features
6
+
7
+ - The package is published as `@design.estate/wcctools` (formerly `@design.estate/dees-wcctools`) from the `design.estate/wcctools` repository on code.foss.global. The API is unchanged: replace the dependency and the import specifier (readme section "Migrating from `@design.estate/dees-wcctools`").
8
+
9
+ ### Maintenance
10
+
11
+ - Release tooling: pnpm 12.8.1 and `@git.zone/tstest` ^7.1.0.
12
+
13
+ ## 2026-10-03 - 5.0.0
14
+
15
+ ### Breaking Changes
16
+
17
+ - The tools run on `@design.estate/dees-element` 4 and `@design.estate/dees-domtools` 5: the exported `WccRecordButton` and `WccRecordingPanel` extend dees-element 4's `DeesElement` (whose `domtools` drops `convenience.smartdelay` in favour of `convenience.smartpromise` and uses typedrequest 9); a catalogue still on dees-element 3 moves to 4 together with this release.
18
+ - `setupWccTools()` takes only the config object: the two-argument `setupWccTools(elements, pages)` form is removed (pass `{ sections: [{ name: 'Pages', type: 'pages', items: pages }, { name: 'Elements', type: 'elements', items: elements }] }`), and the `@design.estate/dees-wcctools/demotools` subpath is removed (import `DeesDemoWrapper` from `@design.estate/dees-element/demotools`).
19
+
20
+ ### Fixes
21
+
22
+ - The production tree no longer reaches the deprecated `@push.rocks/smartdelay` or `@push.rocks/isounique`; the lockfile takes lik 6.4.4, smartstring 4.2.1 and smarttime 5.0.1.
23
+
24
+ ### Maintenance
25
+
26
+ - Release tooling: pnpm 12.7.0, `@git.zone/tsbuild` ^5.1.2, `@git.zone/tsbundle` ^3.1.3, `@git.zone/tsdoc` ^3.0.2, `@git.zone/tstest` ^7.0.0, `@git.zone/tswatch` ^6.0.1 and `@types/node` ^26.6.3.
27
+
28
+ ## 2026-10-01 - 4.0.1
29
+
30
+ ### Fixes
31
+
32
+ - Remove the unused, deprecated `@push.rocks/smartdelay` dependency.
33
+
34
+ ### Maintenance
35
+
36
+ - Release tooling currency: pin `packageManager` to `pnpm@12.6.0` (from 12.5.1) and `@git.zone/tsrun` `^3.0.2` (from ^3.0.1); `@git.zone/tsbuild` `^5.0.0`, `@git.zone/tsbundle` `^3.0.0`, `@git.zone/tstest` `^6.3.2` and `@types/node` `^26.6.2` are already current. Drop the empty `@ship.zone/szci` config block.
37
+ - Raise `@git.zone/tsdoc` to `^3.0.0` (from ^2.2.2) and `@git.zone/tswatch` to `^5.0.0` (from ^4.0.2). `buildDocs` keeps calling `tsdoc` without arguments, which tsdoc 3 still runs as its default TypeDoc build; `watch` keeps calling `tswatch`, which reads the existing `element` preset from `.smartconfig.json`.
38
+
39
+ ## 2026-09-29 - 4.0.0
40
+
41
+ ### Breaking Changes
42
+
43
+ - The tools run on `@design.estate/dees-element` 3 and `@design.estate/dees-domtools` 3 (from 2.4 and 2.5). The exported `WccRecordButton` and `WccRecordingPanel` extend dees-element 3's `DeesElement`, and `./demotools` re-exports dees-element 3's demo tools; a catalogue still on dees-element 2 moves to 3 together with this release.
44
+ - `WccDashboard.setWarning()` and `WccDashboard.warning` are removed, and so is `WccFrame.getDisplayedInstance()`, which resolved nothing; the properties panel finds the displayed demo instance itself.
45
+ - The sidebar no longer lists exports that are not elements with a demo; a section `filter` sees only those entries.
46
+
47
+ ### Features
48
+
49
+ - The sidebar lists only elements that have a demo. Exports that are not elements — helpers, types, constants — are left out, and registered elements without a demo sit in a collapsed "Without demo" group, so the element list is the catalogue of demos and nothing else. Routes to an entry that cannot be shown get an empty state instead of a blank frame.
50
+ - The sidebar is a keyboard-navigable tree: arrows, Home, End, Enter and Space move and open, the search field hands over with ArrowDown and clears with Escape, and the context menu opens with the menu key or Shift+F10. The toolbar's theme and viewport buttons report their state, the resize handle is a separator that arrow keys move, and the frame and properties panel are named regions.
51
+
52
+ ### Fixes
53
+
54
+ - A demo renders once when it is selected and no longer again on every dashboard update, so its state survives viewport and theme changes; the route is applied once, stale renders are dropped, and the dashboard's route handlers and Escape listener end when it is removed.
55
+ - The dashboard's scroll listeners and its scroll, route and setup timers end when it is removed and return when it is added again, so a removed dashboard no longer rewrites the URL or updates its frame; the sidebar's native-mode hide and group highlight timers end the same way, and leaving native mode within 300 ms no longer hides the sidebar anyway.
56
+ - Debug logging is gone from the dashboard, frame and properties panel.
57
+
58
+ ### Maintenance
59
+
60
+ - The development plan and hints moved out of the repository into the untracked `.nogit/` folder, so the published package no longer carries `readme.plan.md` and `readme.hints.md`.
61
+ - Release tooling currency: `packageManager` pnpm@12.5.1, `@git.zone/tsbuild` ^5.0.0, `@git.zone/tsbundle` ^3.0.0, `@git.zone/tstest` ^6.3.2, `@git.zone/tswatch` ^4.0.2, `@git.zone/tsrun` ^3.0.1, `@git.zone/tsdoc` ^2.2.2 and `@types/node` ^26.6.2. No migration moves anything: no source folder has its own `tsconfig.json`, the demo bundle is not a production bundle and so carries no third-party notices, the tests use no `TapNodeTools` helpers, and nothing reads `process.argv`.
62
+
63
+ ## 2026-09-05 - 3.9.4
64
+
65
+ ### Fixes
66
+
67
+ - find demo instances through deeply composed DOM (properties)
68
+ - Replace the properties panel's depth-limited recursive search with a reusable helper that traverses light DOM and open shadow roots.
69
+ - Add browser test coverage for deeply nested composed demo instances and nearest-match selection.
70
+ - Document composed demo instance discovery in the properties panel.
71
+ - update development tooling dependencies (deps)
72
+ - Bump @git.zone/tsbundle to ^2.13.0
73
+ - Bump @types/node to ^26.4.1
74
+ - Update package manager to pnpm 12.3.4
75
+ - remove tag release job from default workflow (ci)
76
+ - Removes the tag-triggered npm publish job from .gitea/workflows/default_tags.yaml.
77
+ - Keeps tag-based metadata handling dependent on the test job.
78
+
79
+ ## 2026-08-10 - 3.9.3
80
+
81
+ ### Fixes
82
+
83
+ - Make property inspection compatible with Lit standard accessors by skipping internal state and properties without supported runtime type metadata.
84
+ - Keep phone, phablet, and tablet preview containers at their declared widths without body-width-derived padding.
85
+ - Stack and constrain WCC chrome on narrow browser viewports so the preview and toolbar remain usable without document overflow, including after resize.
86
+ - keep WCC layout contained on narrow viewports (dashboard)
87
+ - Constrain dashboard, sidebar, frame, and property controls on browser viewports up to 600px to prevent document overflow.
88
+ - Preserve exact phone, phablet, and tablet preview widths inside the scrollable frame.
89
+ - Centralize property type detection and skip internal state or unsupported runtime metadata before rendering editors.
90
+ - Add Chromium coverage for property metadata classification, 375px layouts, resize behavior, and fixed preview widths.
91
+
92
+ ### Tests
93
+
94
+ - Cover standard-decorator property metadata, fresh 375px layout, desktop-to-375px resize, and fixed phone/tablet preview widths in Chromium.
95
+
96
+ ### Changes
97
+
98
+ - Refresh the release toolchain and include changelog and license files in the published package.
99
+
100
+ ## 2026-06-16 - 3.9.2
101
+
102
+ ### Fixes
103
+
104
+ - re-export demo wrapper from dees-element (demotools)
105
+ - Use the canonical @design.estate/dees-element/demotools implementation while keeping the existing dees-wcctools demotools subpath available
106
+ - Update demotools documentation to recommend importing from dees-element
107
+ - Bump @design.estate/dees-element to ^2.4.0
108
+
109
+ ## 2026-06-08 - 3.9.1
110
+
111
+ ### Fixes
112
+
113
+ - update release and pnpm workspace configuration (config)
114
+ - Migrate smartconfig release settings to target-based schema
115
+ - Move pnpm overrides into pnpm-workspace.yaml with explicit build allowances
116
+ - Update pnpm version and development tooling dependencies
117
+ - Align commitinfo metadata with patch release
118
+
119
+ ## 2026-04-12 - 3.9.0 - feat(docs)
120
+ document MP4 export support and enhanced recording capabilities
121
+
122
+ - Update recording documentation to cover MP4/WebM export options, 60fps capture, and conversion via RecorderService
123
+ - Add API and type references for output format selection and MP4 conversion in the TypeScript web docs
124
+ - Clarify related UI capabilities such as recording panel format selection and sidebar search support
125
+
126
+ ## 2026-04-12 - 3.8.5 - fix(recording)
127
+ improve recording capture quality and align preview button loading state
128
+
129
+ - request 60fps screen capture and increase recorder bitrate to 8 Mbps for smoother, higher-quality videos
130
+ - update preview button layout to use inline flex alignment so spinner and label stay properly aligned
131
+
132
+ ## 2026-04-12 - 3.8.4 - fix(repo)
133
+ no changes to commit
134
+
135
+
136
+ ## 2026-04-12 - 3.8.3 - fix(sidebar)
137
+ include component tag names in sidebar search filtering
138
+
139
+ - Updates sidebar section and entry filtering to match search queries against each item's custom element tag name via the `is` field.
140
+ - Keeps existing name and demo group matching behavior while making search results easier to find by tag.
141
+
142
+ ## 2026-04-12 - 3.8.2 - fix(sidebar)
143
+ restore search input focus after clearing the sidebar search
144
+
145
+ - Updates the sidebar clearSearch behavior to focus the .search-input element after resetting the query and dispatching searchChanged.
146
+ - Improves search usability by letting users continue typing immediately after clearing the current search.
147
+
148
+ ## 2026-04-12 - 3.8.1 - fix(build)
149
+ migrate smart config and update build tooling for latest tsbundle and TypeScript defaults
150
+
151
+ - rename npmextra.json to .smartconfig.json and add tsbundle bundle configuration
152
+ - update build script to use the new tsbundle invocation without the removed element subcommand
153
+ - adjust tsconfig and dashboard property defaults for newer TypeScript compiler behavior
154
+ - refresh package dependencies and include the new config file in published package contents
155
+
156
+ ## 2026-01-27 - 3.8.0 - feat(sidebar)
157
+ rename demoGroup to demoGroups, add multi-group support, search by group name, and context menu group navigation
158
+
159
+ - Static property demoGroup renamed to demoGroups; accepts string | string[] for multi-group membership
160
+ - Elements with multiple demoGroups appear in each group's sidebar section simultaneously and show the library_books icon instead of featured_video
161
+ - Sidebar search now matches group names in addition to element names; groups are sorted alphabetically by group name
162
+ - Context menu for elements includes a "Show in Group:" section with navigable group entries that scroll to and briefly highlight the target group; group headers also have a context menu entry to filter by that group
163
+ - Added data-group attribute on .item-group for DOM querying and visual classes for group highlight and filter match
164
+ - Updated test elements to use demoGroups and updated docs/changelog/readme.hints to document the new behavior
165
+ - Bumped several devDependencies (@api.global/typedserver, @git.zone/tsbuild, @git.zone/tsbundle, @git.zone/tstest, @git.zone/tswatch, @types/node) and adjusted npm script `watch` to use tswatch
166
+
167
+ ## 2026-01-27 - 3.8.0 - feat(sidebar)
168
+ rename demoGroup to demoGroups, add multi-group support, search by group name, and context menu group navigation
169
+
170
+ - Rename static property `demoGroup` to `demoGroups` on element classes; accepts `string | string[]` for multi-group membership
171
+ - Elements with an array of `demoGroups` appear in each group's sidebar section simultaneously
172
+ - Search now matches group names in addition to element names (e.g. searching "Buttons" shows all elements in the Buttons group)
173
+ - Groups are sorted alphabetically by group name instead of by first element name
174
+ - Elements belonging to multiple groups display a `library_books` icon instead of `featured_video`
175
+ - Right-click context menu on elements with groups shows "Show in Group:" section with navigable group entries
176
+ - Clicking a group name in the context menu scrolls to and briefly highlights that group in the sidebar
177
+ - Updated test elements (test-button-primary, test-button-secondary, test-button-danger, test-input-text, test-input-checkbox) to use `demoGroups`
178
+
179
+ ## 2026-01-04 - 3.7.1 - fix(sidebar)
180
+ increase scrolled sidebar header box-shadow intensity and size to improve visual separation
181
+
182
+ - Changed .sidebar-header.scrolled box-shadow from `0 4px 12px -2px rgba(0, 0, 0, 0.4)` to `0 8px 24px -2px rgba(0, 0, 0, 1)`
183
+ - File modified: ts_web/elements/wcc-sidebar.ts — stronger, larger, and fully opaque shadow for better contrast when scrolled
184
+
185
+ ## 2026-01-04 - 3.7.0 - feat(wcc-sidebar)
186
+ add header shadow and scrolled state for sidebar menu to show elevation when content is scrolled
187
+
188
+ - Introduce isMenuScrolled state to track whether the menu has been scrolled
189
+ - Add handleMenuScroll handler and bind it to the menu scroll event
190
+ - Apply a 'scrolled' class to .sidebar-header to add box-shadow and border-bottom color with transitions
191
+ - Update template to conditionally add scrolled class and attach scroll listener
192
+
193
+ ## 2026-01-04 - 3.6.2 - fix(wcc-sidebar)
194
+ use sidebar's internal .menu element for scroll management and expose scrollableContainer getter
195
+
196
+ - Add public scrollableContainer getter to wcc-sidebar that returns the .menu element for external scroll control
197
+ - Update wcc-dashboard to query wcc-sidebar as WccSidebar and attach scroll listeners to sidebar.scrollableContainer instead of the host element
198
+ - Restore sidebar scroll position by setting scrollTop on the scrollableContainer when applying saved positions
199
+ - TypeScript casting added to avoid nullable/implicit any issues when querying the sidebar element
200
+
201
+ ## 2026-01-04 - 3.6.1 - fix(wcc-sidebar)
202
+ sort sidebar items alphabetically and unify grouped and ungrouped items for consistent ordering
203
+
204
+ - Unifies ungrouped elements and groups into a single render list using a RenderItem type with a sortKey.
205
+ - Sorts all top-level items alphabetically by element name (case-insensitive via toLowerCase) so sidebar order is deterministic.
206
+ - Groups are ordered by the first element's name; individual items inside a group preserve their original order.
207
+ - Replaces previous separate rendering paths with a single sorted render pass that returns TemplateResult array.
208
+
209
+ ## 2026-01-04 - 3.6.0 - feat(sidebar)
210
+ restructure sidebar layout, add search clear button, and improve scrolling behavior
211
+
212
+ - Change sidebar root to a flex column layout and add a .sidebar-header to separate header content from the scrollable menu
213
+ - Move pinned section into the header and make .menu flex: 1 with min-height: 0 so the menu becomes the scrollable area
214
+ - Replace overflow-y on the root with overflow:hidden to avoid double scrolling and constrain scrolling to .menu
215
+ - Add a clear button for the search input (.search-clear) with positioning, hover styles, and a clearSearch() method to reset the query and emit searchChanged
216
+ - Adjust search input padding and make .search-container position: relative to correctly position the clear button
217
+
218
+ ## 2026-01-04 - 3.5.3 - fix(deps)
219
+ bump dependency versions: @design.estate/dees-domtools to ^2.3.7, @design.estate/dees-element to ^2.1.5, lit to ^3.3.2; update devDependencies @api.global/typedserver to ^8.1.0 and @git.zone/tstest to ^3.1.4
220
+
221
+ - Updated runtime dependencies: @design.estate/dees-domtools ^2.3.7, @design.estate/dees-element ^2.1.5, lit ^3.3.2.
222
+ - Updated devDependencies: @api.global/typedserver ^8.1.0 (major bump), @git.zone/tstest ^3.1.4.
223
+ - @api.global/typedserver major bump affects development tooling only (devDependency), not runtime API.
224
+ - Current package version is 3.5.2; recommend a patch release to 3.5.3.
225
+
226
+ ## 2026-01-04 - 3.5.2 - fix(elements)
227
+ delay hiding sidebar and properties panels during native-mode transition and use transparent rgba border for frame to avoid layout jumps
228
+
229
+ - Add isHidden state to wcc-sidebar and wcc-properties and switch display bindings to use isHidden instead of directly using isNative
230
+ - Introduce a 300ms delayed hide when entering native mode so UI hides after frame animation completes; show immediately when exiting native mode
231
+ - Replace hardcoded hex border values in wcc-frame with rgba and set native border to a transparent 0px to prevent abrupt visual jumps
232
+
233
+ ## 2026-01-04 - 3.5.1 - fix(sidebar)
234
+ disable frame CSS transition while user is resizing the sidebar to prevent janky animations
235
+
236
+ - Added isResizing boolean property to wcc-frame to toggle transitions during resize
237
+ - Set frame.isResizing = true at resize start and false on mouseup to re-enable transitions
238
+ - Updated CSS to skip transition while isResizing is true
239
+ - Files changed: ts_web/elements/wcc-frame.ts, ts_web/elements/wcc-sidebar.ts
240
+
241
+ ## 2026-01-04 - 3.5.0 - feat(wcctools)
242
+ add context menu and pinning support, persist pinned state in URL, and add grouped demo test elements
243
+
244
+ - Add wcc-contextmenu custom element with a static show() API, proper positioning, visibility transitions, outside-click and Escape handling, and menu item actions.
245
+ - Introduce pinnedItems (Set<string>) on wcc-dashboard and wcc-sidebar; pass pinnedItems to the sidebar, handle pinnedChanged events, and persist pinned item keys in the URL query param 'pinned'. Changes include defensive updates to avoid unnecessary update loops.
246
+ - Enhance wcc-sidebar to render pinned state: new styles for pinned items and pinned sections, contextmenu integration for element items, adjusted layout (grid-template-columns) and improved element/demo rendering logic.
247
+ - Add grouped demo test components and exports to demo the demoGroup feature: test-button-primary, test-button-secondary, test-button-danger, test-input-text, and test-input-checkbox.
248
+ - Misc: adjust dashboard URL state serialization/deserialization to include pinned items and ensure scroll/search state handling remains stable.
249
+
250
+ ## 2025-12-30 - 3.4.0 - feat(sidebar)
251
+ add searchable sidebar with URL-backed query state and highlighted matches
252
+
253
+ - Add search input to wcc-sidebar and expose a searchQuery property
254
+ - Filter sidebar sections and items client-side based on the search query and hide sections with no matches
255
+ - Highlight matching substrings in sidebar item labels
256
+ - Emit a 'searchChanged' event from the sidebar and handle it in wcc-dashboard to keep dashboard.searchQuery in sync
257
+ - Persist the search query in the route query parameter 'search' when building URLs and restore/clear it on navigation
258
+ - Preserve existing scroll-state handling while adding search state to URL updates
259
+
260
+ ## 2025-12-28 - 3.3.0 - feat(wcctools)
261
+ Add section-based configuration API for setupWccTools, new Views, and section-aware routing/sidebar
262
+
263
+ - Introduce IWccSection and IWccConfig types and migrate setupWccTools to accept a sections config while preserving legacy (elements, pages) format
264
+ - WccDashboard and WccSidebar updated to support sections, filtering, sorting, collapsed sections, and section-aware URL routing (uses sectionName in routes with legacy fallbacks)
265
+ - Add Views: view-dashboard, view-settings, view-empty-state plus test/views index exports and demo variations
266
+ - Add helpers: getSectionItems, convertLegacyToConfig and isWccConfig; update build URL and routing logic to be section-aware
267
+ - Update docs and README/readme.hints with sections API, examples, migration notes and UI/UX updates
268
+
269
+ ## 2025-12-22 - 3.2.0 - feat(wcc-sidebar)
270
+ auto-expand sidebar folder when selecting an element with multiple demos
271
+
272
+ - Add updated() lifecycle to auto-expand folder when selectedItem changes
273
+ - Find element name by matching selectedItem against dashboardRef.elements
274
+ - Only auto-expand when the element has multiple demos (checks item.demo and hasMultipleDemos)
275
+ - Immutably update expandedElements set to trigger re-render and avoid duplicate additions
276
+
277
+ ## 2025-12-21 - 3.1.2 - fix(wcc-properties)
278
+ Use LitElement.updated to recreate properties only when selectedItem changes and handle errors; remove custom scheduleUpdate implementation
279
+
280
+ - Replaced public async scheduleUpdate() with protected updated(changedProperties) lifecycle method
281
+ - Call super.updated(...) and only recreate properties when selectedItem changed to avoid unnecessary work
282
+ - Preserve error handling and clear propertyContent on failure
283
+ - Removed explicit super.scheduleUpdate() call to rely on LitElement's update lifecycle
284
+
285
+ ## 2025-12-21 - 3.1.1 - fix(wcc-properties)
286
+ Improve wcc-properties CSS to prevent grid overflow, properly size and center icon glyphs, and adjust right-side offset
287
+
288
+ - Use minmax(0, 1fr) for grid-template-columns (selectorButtons1/2/4/5) to avoid flexbox overflow and ensure consistent column sizing
289
+ - Add min-width/min-height and inline-flex centering to .material-symbols-outlined to stabilize icon sizing and vertical/horizontal alignment
290
+ - Increase right calc offset from 520px to 600px to accommodate wider content/controls
291
+ - Changes applied in ts_web/elements/wcc-properties.ts
292
+
293
+ ## 2025-12-19 - 3.1.0 - feat(wcc-properties)
294
+ add Share selector with inline Record button and adjust properties panel grid layout
295
+
296
+ - Increase rightmost column width from 70px to 100px in properties grid
297
+ - Introduce .shareSelector and .selectorButtons1 CSS classes and markup
298
+ - Replace <wcc-record-button> with inline Record button that toggles icon based on isRecording
299
+ - Add Share panel heading and integrate record control into selector area
300
+
301
+ ## 2025-12-19 - 3.0.0 - BREAKING CHANGE(ts_web)
302
+ Replace fullscreen boolean with native viewport mode across components, add native viewport selector and toggle, and update dev deps and npmextra config
303
+
304
+ - Introduce isNative (derived from selectedViewport === 'native') replacing isFullscreen on WccDashboard, WccFrame, WccProperties and WccSidebar (property and styling changes).
305
+ - WccDashboard: remove isFullscreen property, add isNative getter, implement toggleNative to switch selectedViewport between 'native' and 'desktop', update ESC handler to exit native mode and call buildUrl().
306
+ - WccProperties: add Native button to viewport selector, adjust grid columns and selector layout, replace fullscreen toggle with toggleNative (dispatches 'toggleNative' event).
307
+ - WccFrame: rename isFullscreen -> isNative and update style/markup branching to use isNative.
308
+ - WccSidebar: visibility now driven by isNative instead of isFullscreen.
309
+ - API/event changes: 'toggleFullscreen' event renamed to 'toggleNative' — this is an incompatible change for consumers relying on the old event/property.
310
+ - package.json: bump devDependencies @git.zone/tsbuild -> ^4.0.2, @git.zone/tsrun -> ^2.0.1, @git.zone/tswatch -> ^2.3.13, @types/node -> ^25.0.3.
311
+ - npmextra.json: rename keys (e.g. "gitzone" -> "@git.zone/cli", "tsdoc" -> "@git.zone/tsdoc"), add @ship.zone/szci entry and add release registries/accessLevel for @git.zone/cli.
312
+
313
+ ## 2025-12-11 - 2.0.1 - fix(@git.zone/tswatch)
314
+ Bump @git.zone/tswatch devDependency to ^2.3.12
315
+
316
+ - Updated devDependency @git.zone/tswatch from ^2.3.11 to ^2.3.12 in package.json
317
+
318
+ ## 2025-12-11 - 2.0.0 - BREAKING CHANGE(recorder)
319
+ Remove FFmpeg-based MP4 conversion; simplify recorder/export to WebM and improve recorder/editor robustness
320
+
321
+ - Removed FFmpegService and all client-side MP4 conversion logic — exports are now WebM-only (MP4 conversion and related UI/controls removed).
322
+ - ts_web/elements/wcc-recording-panel: dropped outputFormat and conversion states/UI; download flow simplified to always export WebM.
323
+ - ts_web/index.ts: removed FFmpegService exports and conversion types from public API.
324
+ - package.json: removed @ffmpeg/* dependencies.
325
+ - RecorderService: handleRecordingComplete is now async and fixes recorded blob assignment and cleanup timing.
326
+ - wcc-properties: improved element detection and robustness — recursive search through light/shadow DOM with retry/delay, plus an advanced JSON editor for Object/Array props (supports multiple open editors and frame resize events).
327
+ - wcc-sidebar: force re-render after selecting demos to ensure child demo selection indicators update correctly.
328
+ - dees-demowrapper: ensure slotted content is rendered before calling runAfterRender (small timing/stability improvements).
329
+ - Test update: demo definitions can be arrays (multiple demos) — test-demoelement updated to use multiple demo entries.
330
+
331
+ ## 2025-12-11 - 1.3.0 - feat(recording-panel)
332
+ Add demo wrapper utilities, improve recording trim behavior, and harden property panel element detection; update documentation
333
+
334
+ - Add dees-demowrapper (ts_demotools) with runAfterRender callback to run post-render demo logic (supports async callbacks).
335
+ - Improve recording UI and trimming: handle WebM files with Infinity/NaN durations by falling back to tracked recording duration; replace numeric handle positioning with CSS calc strings for responsive trim handles.
336
+ - Harden property extraction: implement recursive element search (including shadowRoots), add an initial delay and retry loop to wait for demo rendering, and add an advanced JSON editor for Object/Array properties with open/save/cancel and per-editor error reporting.
337
+ - Add and expand documentation: new ts_web/ and ts_demotools/ READMEs, reorganized main README with clearer feature list, usage examples, and API reference.
338
+ - Minor exports and module/docs housekeeping (index exports, readme reorder, examples updated to import classes).
339
+
340
+ ## 2025-11-16 - 1.2.1 - fix(dependencies)
341
+ Bump dependencies and developer tooling versions
342
+
343
+ - Bump @design.estate/dees-domtools from ^2.3.3 to ^2.3.6
344
+ - Bump @design.estate/dees-element from ^2.1.2 to ^2.1.3
345
+ - Upgrade @git.zone/tsbuild from ^2.6.8 to ^2.7.1
346
+ - Upgrade @git.zone/tsrun from ^1.2.44 to ^1.6.2
347
+ - Upgrade @git.zone/tstest from ^2.3.8 to ^2.7.0
348
+
349
+ ## 2025-09-19 - 1.2.0 - feat(wcc-properties)
350
+ Add advanced property editors, recursive element detection, demo wrapper, UI refresh and test fixtures
351
+
352
+ - Advanced JSON property editor: multiple side-by-side editors with save/cancel, syntax validation and inline error display; editors affect frame layout (frame bottom increases when editors open).
353
+ - Improved properties panel element detection: recursive search through nested children and shadow DOM, initial delay and retry mechanism to handle async Lit rendering.
354
+ - Add dees-demowrapper component in ts_demotools to run post-render callbacks and support async demo setup and DOM access for demos.
355
+ - UI refresh with shadcn-like styles: CSS variables for theming, redesigned properties panel and sidebar, improved form controls, theme and viewport selectors.
356
+ - Viewport and frame improvements: responsive padding based on viewport type, theme-aware background rendering, and scroll position tracking with URL/state restoration for frame and sidebar.
357
+ - Add test fixtures and demo elements/pages under test/ to exercise properties, complex types, nested elements and scroll restoration; include node test for resolveTemplateFactory.
358
+ - Expose setupWccTools entry point and plugin wiring (wcctools.plugins exports for dees-domtools and smartdelay) for easier integration.
359
+
360
+ ## 2025-06-27 - 1.1.0 - feat(wcctools)
361
+ Enhance component tools with an advanced property editor, improved element detection and modernized UI styling for a more responsive dashboard experience.
362
+
363
+ - Updated documentation and in-code hints with new shadcn-like design patterns for the dashboard UI.
364
+ - Introduced an advanced complex properties editor supporting JSON validation and multi-editor handling.
365
+ - Refined recursive element search in the properties panel to improve asynchronous rendering detection.
366
+ - Expanded test coverage with scenarios for edge cases, nested elements and wrapper components.
367
+
368
+ ## 2025-06-26 - 1.0.101 - fix(wcc-dashboard)
369
+ Improve scroll listener management and add new test pages
370
+
371
+ - Removed the pages/ directory entry from .gitignore to allow test pages to be tracked
372
+ - Added new test pages: page1 and pageLongScroll for enhanced scroll and navigation testing
373
+ - Refactored wcc-dashboard: changed scroll position properties to private variables and added a flag to prevent duplicate scroll listener attachment
374
+
375
+ ## 2025-06-26 - 1.0.100 - fix(wcc-dashboard)
376
+ Prevent duplicate application of scroll positions in dashboard to avoid interfering with user scrolling
377
+
378
+ - Added a private 'scrollPositionsApplied' property to track if scroll positions have already been applied
379
+ - Introduced a guard in the applyScrollPositions method to ensure the scroll state is applied only once
380
+
381
+ ## 2025-06-26 - 1.0.99 - fix(dashboard)
382
+ Fix scroll state preservation in dashboard by tracking frame and sidebar scroll positions and updating the URL accordingly.
383
+
384
+ - Added frameScrollY and sidebarScrollY properties to capture scroll positions.
385
+ - Set up scroll listeners on wcc-frame and wcc-sidebar to update scroll state.
386
+ - Implemented debounced updates to modify the URL with current scroll positions without navigation.
387
+ - Restored scroll positions from URL query parameters during initialization.
388
+
389
+ ## 2025-06-16 - 1.0.97 - properties-panel
390
+ - Improve element detection timing and value handling in properties panel
391
+
392
+ ## 2025-06-16 - 1.0.96 - properties-panel
393
+ - Enhance element detection and error handling for nested structures
394
+
395
+ ## 2025-06-16 - 1.0.95 - package
396
+ - Correct path for demotools export in package.json
397
+
398
+ ## 2025-06-16 - 1.0.94 - demotools
399
+ - Enhance runAfterRender to provide full DOM API access and improve element selection
400
+
401
+ ## 2025-06-16 - 1.0.92 - demotools
402
+ - Update DeesDemoWrapper to handle multiple slotted elements in runAfterRender callback
403
+
404
+ ## 2025-06-16 - 1.0.91 - readme
405
+ - Update documentation with comprehensive overview, quick start guide, and detailed feature descriptions
406
+
407
+ ## 2025-06-16 - 1.0.90 - demo/properties/refactor
408
+ - Add DeesDemoWrapper component for enhanced demo element handling
409
+ - Enhance element detection in properties panel with recursive search and retry mechanism
410
+ - Refactor code structure for improved readability and maintainability
411
+
412
+ ## 2024-05-06 to 2020-05-10 - 1.0.89–1.0.17 - core
413
+ - Over a series of releases, trivial core fixes and updates were applied.
414
+ - (Note: Version 1.0.87 also included an update to the documentation.)