@twick/studio 0.15.24 → 0.15.25

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/studio.css CHANGED
@@ -135,6 +135,124 @@ html {
135
135
  margin-bottom: 0.50rem;
136
136
  }
137
137
 
138
+ /* Captions panel */
139
+
140
+ .captions-panel {
141
+ gap: 0.75rem;
142
+ }
143
+
144
+ .captions-panel-header {
145
+ display: flex;
146
+ align-items: center;
147
+ justify-content: space-between;
148
+ gap: 0.75rem;
149
+ }
150
+
151
+ .captions-panel-header-meta {
152
+ display: flex;
153
+ flex-direction: column;
154
+ align-items: flex-end;
155
+ gap: 0.25rem;
156
+ font-size: 0.75rem;
157
+ color: rgba(148, 163, 184, 0.9);
158
+ }
159
+
160
+ .captions-panel-count {
161
+ opacity: 0.8;
162
+ }
163
+
164
+ .captions-panel-add-button {
165
+ font-size: 0.75rem;
166
+ padding: 0.25rem 0.75rem;
167
+ }
168
+
169
+ .captions-panel-empty {
170
+ border-radius: 0.5rem;
171
+ border-width: 1px;
172
+ border-style: dashed;
173
+ border-color: rgba(255, 255, 255, 0.1);
174
+ background-color: rgba(148, 163, 184, 0.08);
175
+ padding: 1.25rem 1rem;
176
+ text-align: center;
177
+ font-size: 0.75rem;
178
+ color: rgba(209, 213, 219, 0.9);
179
+ }
180
+
181
+ .captions-panel-empty-title {
182
+ margin-bottom: 0.25rem;
183
+ font-weight: 600;
184
+ }
185
+
186
+ .captions-panel-empty-subtitle {
187
+ margin-bottom: 0.75rem;
188
+ color: rgba(148, 163, 184, 0.9);
189
+ }
190
+
191
+ .captions-panel-empty-button {
192
+ font-size: 0.75rem;
193
+ padding: 0.35rem 1rem;
194
+ }
195
+
196
+ .captions-panel-list {
197
+ overflow-y: auto;
198
+ padding-right: 0.25rem;
199
+ gap: 0.5rem;
200
+ }
201
+
202
+ .captions-panel-item {
203
+ border-radius: 0.5rem;
204
+ border: 1px solid rgba(255, 255, 255, 0.06);
205
+ background: rgba(23, 23, 28, 0.96);
206
+ padding: 0.75rem;
207
+ border: 1px solid rgba(255, 255, 255, 0.06);
208
+ border-radius: 0.25rem;
209
+ box-shadow: 0 4px 24px rgba(0, 0, 0, 0.3);
210
+ }
211
+
212
+ .captions-panel-item-header {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: space-between;
216
+ gap: 0.75rem;
217
+ margin-bottom: 0.35rem;
218
+ font-size: 0.6875rem;
219
+ color: rgba(148, 163, 184, 0.9);
220
+ }
221
+
222
+ .captions-panel-time {
223
+ font-variant-numeric: tabular-nums;
224
+ }
225
+
226
+ .captions-panel-time-start {
227
+ color: rgba(226, 232, 240, 0.95);
228
+ }
229
+
230
+ .captions-panel-time-end {
231
+ opacity: 0.8;
232
+ }
233
+
234
+ .captions-panel-item-body {
235
+ display: flex;
236
+ align-items: flex-start;
237
+ gap: 0.5rem;
238
+ }
239
+
240
+ .captions-panel-textarea {
241
+ min-height: 2.5rem;
242
+ resize: vertical;
243
+ font-size: 0.8125rem;
244
+ }
245
+
246
+ .captions-panel-actions {
247
+ display: flex;
248
+ flex-direction: column;
249
+ gap: 0.25rem;
250
+ }
251
+
252
+ .captions-panel-action-button {
253
+ padding: 0.25rem 0.5rem;
254
+ }
255
+
138
256
  .panel-content {
139
257
  flex: 1;
140
258
  overflow-y: auto;
@@ -1368,7 +1486,7 @@ html {
1368
1486
  }
1369
1487
 
1370
1488
  .checkbox-purple:checked {
1371
- background-color: var(--color-neutral-500);
1489
+ background: linear-gradient(135deg, var(--color-purple-600), var(--color-purple-700));
1372
1490
  border-color: var(--color-neutral-400);
1373
1491
  }
1374
1492
 
@@ -35,6 +35,11 @@ export interface CaptionEntry {
35
35
  s: number;
36
36
  e: number;
37
37
  t: string;
38
+ /**
39
+ * Optional per-word start times in seconds (relative to full media timeline).
40
+ * When present, consumers can use this for precise karaoke-style word timing.
41
+ */
42
+ w?: number[];
38
43
  }
39
44
  /**
40
45
  * Response from POST /generate-captions
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twick/studio",
3
- "version": "0.15.24",
3
+ "version": "0.15.25",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -34,17 +34,17 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@twick/ai-models": "0.15.24",
38
- "@twick/canvas": "0.15.24",
39
- "@twick/core": "^0.15.24",
40
- "@twick/workflow": "0.15.24",
41
- "@twick/live-player": "0.15.24",
42
- "@twick/media-utils": "0.15.24",
43
- "@twick/player-react": "^0.15.24",
44
- "@twick/timeline": "0.15.24",
45
- "@twick/video-editor": "0.15.24",
46
- "@twick/visualizer": "0.15.24",
47
- "@twick/effects": "0.15.24",
37
+ "@twick/ai-models": "0.15.25",
38
+ "@twick/canvas": "0.15.25",
39
+ "@twick/core": "^0.15.25",
40
+ "@twick/workflow": "0.15.25",
41
+ "@twick/live-player": "0.15.25",
42
+ "@twick/media-utils": "0.15.25",
43
+ "@twick/player-react": "^0.15.25",
44
+ "@twick/timeline": "0.15.25",
45
+ "@twick/video-editor": "0.15.25",
46
+ "@twick/visualizer": "0.15.25",
47
+ "@twick/effects": "0.15.25",
48
48
  "lucide-react": "^0.511.0"
49
49
  },
50
50
  "peerDependencies": {
@@ -57,9 +57,9 @@
57
57
  "@types/react-dom": "^18.0.0 || ^19.0.0",
58
58
  "react": "^18.0.0 || ^19.0.0",
59
59
  "react-dom": "^18.0.0 || ^19.0.0",
60
- "@twick/timeline": "0.15.24",
61
- "@twick/live-player": "0.15.24",
62
- "@twick/video-editor": "0.15.24",
60
+ "@twick/timeline": "0.15.25",
61
+ "@twick/live-player": "0.15.25",
62
+ "@twick/video-editor": "0.15.25",
63
63
  "rimraf": "^5.0.5",
64
64
  "typedoc": "^0.25.8",
65
65
  "typedoc-plugin-markdown": "^3.17.1",