@design.estate/dees-wcctools 3.8.5 โ†’ 3.9.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.
@@ -83493,4 +83493,4 @@ lit-html/directives/keyed.js:
83493
83493
  * SPDX-License-Identifier: BSD-3-Clause
83494
83494
  *)
83495
83495
  */
83496
- //# sourceMappingURL=bundle-1776036117035.js.map
83496
+ //# sourceMappingURL=bundle-1776036856198.js.map
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-wcctools',
6
- version: '3.8.5',
6
+ version: '3.9.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
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSxtSkFBbUo7Q0FDakssQ0FBQSJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-wcctools",
3
- "version": "3.8.5",
3
+ "version": "3.9.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.md CHANGED
@@ -10,7 +10,7 @@
10
10
  - ๐Ÿ”ง **Real-time Property Editing** โ€” Modify component props on the fly with auto-detected editors
11
11
  - ๐ŸŒ“ **Theme Switching** โ€” Test light/dark modes instantly
12
12
  - ๐Ÿ“ฑ **Responsive Viewport Testing** โ€” Phone, phablet, tablet, and desktop views
13
- - ๐ŸŽฌ **Screen Recording** โ€” Record component demos with audio support and video trimming
13
+ - ๐ŸŽฌ **Screen Recording** โ€” Record component demos with audio, trimming, and MP4/WebM export
14
14
  - ๐Ÿงช **Advanced Demo Tools** โ€” Post-render hooks for interactive testing
15
15
  - ๐Ÿ“‚ **Section-based Organization** โ€” Group components into custom sections with filtering and sorting
16
16
  - ๐Ÿš€ **Zero-config Setup** โ€” TypeScript and Lit support out of the box
@@ -235,15 +235,17 @@ public static styles = [
235
235
 
236
236
  ### ๐ŸŽฌ Screen Recording
237
237
 
238
- Record component demos directly from the catalogue:
238
+ Record component demos directly from the catalogue with full export control:
239
239
 
240
240
  - **Viewport Recording** โ€” Record just the component viewport
241
241
  - **Full Screen Recording** โ€” Capture the entire screen
242
242
  - **Audio Support** โ€” Add microphone commentary with live level monitoring
243
- - **Video Trimming** โ€” Trim start/end before export with visual timeline
244
- - **WebM Export** โ€” High-quality video output
243
+ - **Video Trimming** โ€” Trim start/end before export with a visual timeline
244
+ - **60fps Capture** โ€” Smooth, high-bitrate recording at up to 60 frames per second
245
+ - **MP4 Export** โ€” Universal H.264/AAC format via [mediabunny](https://mediabunny.dev) WebCodecs conversion (plays everywhere: WhatsApp, iMessage, Slack, etc.)
246
+ - **WebM Export** โ€” Native VP9 output for maximum quality
245
247
 
246
- Click the red record button in the bottom toolbar to start.
248
+ Click the red record button in the bottom toolbar, choose your format (MP4 or WebM), and start recording.
247
249
 
248
250
  ### ๐Ÿงช Demo Tools
249
251
 
@@ -438,7 +440,7 @@ The wrapper provides full DOM API access:
438
440
  For custom recording integrations:
439
441
 
440
442
  ```typescript
441
- import { RecorderService } from '@design.estate/dees-wcctools';
443
+ import { RecorderService, type TOutputFormat } from '@design.estate/dees-wcctools';
442
444
 
443
445
  const recorder = new RecorderService({
444
446
  onDurationUpdate: (duration) => console.log(`${duration}s`),
@@ -446,9 +448,13 @@ const recorder = new RecorderService({
446
448
  onAudioLevelUpdate: (level) => console.log(`Audio: ${level}%`),
447
449
  });
448
450
 
451
+ // Record (always captures as WebM internally)
449
452
  await recorder.startRecording({ mode: 'viewport' });
450
453
  // ... later
451
454
  recorder.stopRecording();
455
+
456
+ // Convert to MP4 for universal playback (H.264 + AAC via WebCodecs)
457
+ const mp4Blob = await recorder.convertToMp4(recorder.recordedBlob);
452
458
  ```
453
459
 
454
460
  ## Project Structure
@@ -481,7 +487,7 @@ my-component-library/
481
487
 
482
488
  ## License and Legal Information
483
489
 
484
- This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license) file.
490
+ This repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [LICENSE](./LICENSE) file.
485
491
 
486
492
  **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.
487
493
 
@@ -493,7 +499,7 @@ Use of these trademarks must comply with Task Venture Capital GmbH's Trademark G
493
499
 
494
500
  ### Company Information
495
501
 
496
- Task Venture Capital GmbH
502
+ Task Venture Capital GmbH
497
503
  Registered at District Court Bremen HRB 35230 HB, Germany
498
504
 
499
505
  For any legal inquiries or further information, please contact us via email at hello@task.vc.
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-wcctools',
6
- version: '3.8.5',
6
+ version: '3.9.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
  }
package/ts_web/readme.md CHANGED
@@ -71,11 +71,12 @@ setupWccTools({
71
71
 
72
72
  | Export | Description |
73
73
  |--------|-------------|
74
- | `RecorderService` | Service class for screen/viewport recording |
74
+ | `RecorderService` | Service class for screen/viewport recording and MP4 conversion |
75
75
  | `WccRecordButton` | Record button UI component |
76
76
  | `WccRecordingPanel` | Recording options and preview panel |
77
77
  | `IRecorderEvents` | TypeScript interface for recorder callbacks |
78
78
  | `IRecordingOptions` | TypeScript interface for recording options |
79
+ | `TOutputFormat` | Type for output format selection (`'webm' \| 'mp4'`) |
79
80
 
80
81
  ## Section Configuration
81
82
 
@@ -96,15 +97,15 @@ The module includes these internal web components:
96
97
  | Component | Description |
97
98
  |-----------|-------------|
98
99
  | `wcc-dashboard` | Main dashboard container with routing |
99
- | `wcc-sidebar` | Navigation sidebar with collapsible sections |
100
+ | `wcc-sidebar` | Navigation sidebar with collapsible sections and search |
100
101
  | `wcc-frame` | Responsive viewport with size controls |
101
102
  | `wcc-properties` | Property panel with live editing |
102
103
  | `wcc-record-button` | Recording state indicator button |
103
- | `wcc-recording-panel` | Recording workflow UI |
104
+ | `wcc-recording-panel` | Recording workflow UI with format selection |
104
105
 
105
106
  ## RecorderService API
106
107
 
107
- For programmatic recording control:
108
+ For programmatic recording and MP4 conversion:
108
109
 
109
110
  ```typescript
110
111
  import { RecorderService, type IRecorderEvents } from '@design.estate/dees-wcctools';
@@ -125,7 +126,7 @@ const mics = await recorder.loadMicrophones(true);
125
126
  // Start audio level monitoring
126
127
  await recorder.startAudioMonitoring(mics[0].deviceId);
127
128
 
128
- // Start recording
129
+ // Start recording (always captures as WebM internally at up to 60fps)
129
130
  await recorder.startRecording({
130
131
  mode: 'viewport',
131
132
  audioDeviceId: mics[0].deviceId,
@@ -135,7 +136,10 @@ await recorder.startRecording({
135
136
  // Stop recording
136
137
  recorder.stopRecording();
137
138
 
138
- // Export trimmed video
139
+ // Convert to MP4 for universal playback (H.264 + AAC via WebCodecs)
140
+ const mp4Blob = await recorder.convertToMp4(recorder.recordedBlob);
141
+
142
+ // Or export trimmed video
139
143
  const trimmedBlob = await recorder.exportTrimmedVideo(videoElement, startTime, endTime);
140
144
 
141
145
  // Cleanup
@@ -148,6 +152,9 @@ recorder.dispose();
148
152
  ts_web/
149
153
  โ”œโ”€โ”€ index.ts # Main exports
150
154
  โ”œโ”€โ”€ wcctools.interfaces.ts # Type definitions
155
+ โ”œโ”€โ”€ types/
156
+ โ”‚ โ”œโ”€โ”€ dom-webcodecs-stub/ # TS6 compatibility shim
157
+ โ”‚ โ””โ”€โ”€ dom-mediacapture-stub/ # MediaCapture Transform types
151
158
  โ”œโ”€โ”€ elements/
152
159
  โ”‚ โ”œโ”€โ”€ wcc-dashboard.ts # Root dashboard component
153
160
  โ”‚ โ”œโ”€โ”€ wcc-sidebar.ts # Navigation sidebar
@@ -157,7 +164,7 @@ ts_web/
157
164
  โ”‚ โ”œโ”€โ”€ wcc-recording-panel.ts # Recording options/preview
158
165
  โ”‚ โ””โ”€โ”€ wcctools.helpers.ts # Shared utilities
159
166
  โ”œโ”€โ”€ services/
160
- โ”‚ โ””โ”€โ”€ recorder.service.ts # MediaRecorder abstraction
167
+ โ”‚ โ””โ”€โ”€ recorder.service.ts # MediaRecorder + mediabunny MP4 conversion
161
168
  โ””โ”€โ”€ pages/
162
169
  โ””โ”€โ”€ index.ts # Built-in pages
163
170
  ```
@@ -165,9 +172,9 @@ ts_web/
165
172
  ## Features
166
173
 
167
174
  - ๐ŸŽจ Interactive component preview
168
- - ๐Ÿ“‚ Section-based sidebar with filtering & sorting
175
+ - ๐Ÿ“‚ Section-based sidebar with filtering, sorting & search (by name, tag, or group)
169
176
  - ๐Ÿ”ง Real-time property editing with type detection
170
177
  - ๐ŸŒ“ Theme switching (light/dark)
171
178
  - ๐Ÿ“ฑ Responsive viewport testing
172
- - ๐ŸŽฌ Screen recording with trimming
179
+ - ๐ŸŽฌ Screen recording with MP4/WebM export, trimming, and audio
173
180
  - ๐Ÿ”— URL-based deep linking