@spotpatch/runtime 1.15.4 → 1.15.5

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/motion.cjs CHANGED
@@ -31,6 +31,14 @@ module.exports = __toCommonJS(motion_entry_exports);
31
31
 
32
32
  // src/ui/motion-controller.ts
33
33
  var import_gsap = require("gsap");
34
+
35
+ // src/ui/theme.ts
36
+ var THEME_MOTION_COLORS = Object.freeze({
37
+ dispatchGlowRest: "0 0 0 0 rgb(124 77 255 / 0%)",
38
+ dispatchGlow: "0 0 0 4px rgb(124 77 255 / 22%)"
39
+ });
40
+
41
+ // src/ui/motion-controller.ts
34
42
  var MOTION = Object.freeze({
35
43
  contentMilliseconds: 220,
36
44
  detailRevealDelaySeconds: 0.1,
@@ -40,12 +48,22 @@ var MOTION = Object.freeze({
40
48
  expandSeconds: 0.54,
41
49
  morphSeconds: 0.48,
42
50
  pressSeconds: 0.12,
43
- revealSeconds: 0.26,
44
- sceneRevealDelaySeconds: 0.06,
51
+ revealSeconds: 0.36,
52
+ revealStaggerSeconds: 0.05,
53
+ sceneRevealDelaySeconds: 0.12,
45
54
  sweepSeconds: 0.68,
46
55
  targetFeedbackDelaySeconds: 0.08,
47
56
  targetFeedbackSeconds: 0.22
48
57
  });
58
+ var PLANNER_SECTION_COUNT = 3;
59
+ function milliseconds(seconds) {
60
+ return `${String(Math.round(seconds * 1e3))}ms`;
61
+ }
62
+ function sectionRevealDelay(index) {
63
+ return milliseconds(
64
+ MOTION.sceneRevealDelaySeconds + MOTION.revealStaggerSeconds * index
65
+ );
66
+ }
49
67
  var ISLAND_SIZE = Object.freeze({
50
68
  checkingWidth: 440,
51
69
  compactHeight: 62,
@@ -105,52 +123,23 @@ function createFloatingSurfaceMotionStyles(document) {
105
123
  const style = document.createElement("style");
106
124
  style.textContent = `
107
125
  .spotpatch-floating-surface {
108
- --spotpatch-island-surface: #050608;
109
- --spotpatch-island-primary: #f7f7fb;
110
- --spotpatch-island-subtle: #5f646e;
111
- --spotpatch-island-line: rgb(255 255 255 / 10%);
112
- --spotpatch-island-violet: #8b67ff;
113
- --spotpatch-island-cyan: #4dc8ff;
114
- --spotpatch-island-mint: #59dcb6;
115
- --spotpatch-island-error: #ef6f88;
116
126
  --spotpatch-island-compact-height: ${String(ISLAND_SIZE.compactHeight)}px;
117
127
  --spotpatch-island-compact-width: ${String(ISLAND_SIZE.runningWidth)}px;
118
128
  --spotpatch-island-expanded-height: ${String(ISLAND_SIZE.expandedHeight)}px;
119
129
  --spotpatch-island-expanded-width: ${String(ISLAND_SIZE.expandedWidth)}px;
120
- --spotpatch-island-ease: cubic-bezier(.22, 1, .36, 1);
121
- position: fixed;
122
- box-sizing: border-box;
123
- color-scheme: dark;
124
- -webkit-font-smoothing: antialiased;
125
- overflow: hidden;
126
- border: 1px solid var(--spotpatch-island-line);
127
- background:
128
- linear-gradient(180deg, rgb(255 255 255 / 2.8%), transparent 24%),
129
- rgb(5 6 8 / 98.8%);
130
- box-shadow:
131
- 0 24px 60px rgb(13 17 28 / 18%),
132
- 0 3px 10px rgb(13 17 28 / 10%),
133
- inset 0 1px rgb(255 255 255 / 6.5%),
134
- inset 0 0 0 1px rgb(255 255 255 / 1.2%);
135
- transform-origin: 100% 100%;
136
130
  }
137
131
  .spotpatch-floating-surface::before {
138
132
  position: absolute;
139
133
  z-index: 0;
140
134
  inset: 0;
141
135
  background:
142
- radial-gradient(180px 70px at 0% 50%, rgb(139 103 255 / 7%), transparent 72%),
143
- radial-gradient(180px 70px at 100% 50%, rgb(77 200 255 / 4.5%), transparent 72%);
136
+ radial-gradient(160px 70px at 0% 50%, var(--spotpatch-accent-tint), transparent 72%),
137
+ radial-gradient(160px 70px at 100% 50%, var(--spotpatch-cyan-tint), transparent 72%);
144
138
  content: "";
145
139
  opacity: 0;
146
140
  pointer-events: none;
141
+ transition: opacity var(--spotpatch-duration-slow) ease;
147
142
  }
148
- .spotpatch-floating-surface[data-scene="pill"],
149
- .spotpatch-floating-surface[data-scene="capturing"] {
150
- width: max-content;
151
- border-radius: 999px;
152
- }
153
- .spotpatch-floating-surface[data-scene="planner"] { border-radius: 18px; }
154
143
  .spotpatch-floating-surface[data-scene="agent-charging"],
155
144
  .spotpatch-floating-surface[data-scene="handoff"],
156
145
  .spotpatch-floating-surface[data-scene="running"],
@@ -159,17 +148,17 @@ function createFloatingSurfaceMotionStyles(document) {
159
148
  width: min(var(--spotpatch-island-compact-width), calc(100vw - 32px));
160
149
  height: var(--spotpatch-island-compact-height);
161
150
  max-width: calc(100vw - 32px);
162
- border-radius: 31px;
151
+ border-radius: var(--spotpatch-radius-pill);
163
152
  }
164
153
  .spotpatch-floating-surface[data-scene="agent-charging"]::before,
165
154
  .spotpatch-floating-surface[data-scene="handoff"]::before,
166
- .spotpatch-floating-surface[data-scene="running"]::before,
167
- .spotpatch-floating-surface[data-scene="success"]::before,
168
- .spotpatch-floating-surface[data-scene="failed"]::before { opacity: .82; }
155
+ .spotpatch-floating-surface[data-scene="running"]::before { opacity: 1; }
156
+ .spotpatch-floating-surface[data-scene="success"] { border-color: color-mix(in srgb, var(--spotpatch-success) 32%, transparent); }
157
+ .spotpatch-floating-surface[data-scene="failed"] { border-color: var(--spotpatch-danger-line); }
169
158
  .spotpatch-floating-surface:has(.spotpatch-execution-island[data-expanded="true"]) {
170
159
  width: min(var(--spotpatch-island-expanded-width), calc(100vw - 32px));
171
160
  height: min(var(--spotpatch-island-expanded-height), calc(100vh - 32px));
172
- border-radius: 30px;
161
+ border-radius: 28px;
173
162
  }
174
163
  .spotpatch-floating-surface > .spotpatch-trigger,
175
164
  .spotpatch-floating-surface > .spotpatch-dialog,
@@ -177,75 +166,8 @@ function createFloatingSurfaceMotionStyles(document) {
177
166
  position: relative;
178
167
  z-index: 1;
179
168
  }
180
- .spotpatch-floating-surface > .spotpatch-trigger {
181
- display: inline-flex;
182
- min-height: 44px;
183
- align-items: center;
184
- gap: 10px;
185
- border: 0;
186
- border-radius: 999px;
187
- padding: 10px 17px;
188
- color: #f8fafc;
189
- background: transparent;
190
- box-shadow: none;
191
- cursor: pointer;
192
- font-size: 14px;
193
- font-weight: 650;
194
- touch-action: none;
195
- user-select: none;
196
- }
197
- .spotpatch-trigger::before {
198
- width: 9px;
199
- height: 9px;
200
- border-radius: 999px;
201
- background: var(--spotpatch-accent);
202
- box-shadow: 0 0 0 4px rgb(99 102 241 / 10%);
203
- content: "";
204
- }
205
- .spotpatch-trigger:hover { transform: translateY(-1px); }
206
- .spotpatch-trigger[aria-pressed="true"] { background: rgb(139 123 255 / 14%); }
207
- .spotpatch-trigger[aria-pressed="true"]::before {
208
- animation: spotpatch-motion-pill-pulse 1.8s ease-in-out infinite;
209
- }
210
- .spotpatch-trigger[data-dragging="true"] {
211
- cursor: grabbing;
212
- transform: scale(.98);
213
- }
214
- .spotpatch-floating-surface .spotpatch-dialog { filter: none; }
215
- .spotpatch-floating-surface .spotpatch-shell {
216
- border: 0;
217
- border-radius: 0;
218
- background: transparent;
219
- box-shadow: none;
220
- }
221
- .spotpatch-brand-name {
222
- color: #fff;
223
- font-size: 13.5px;
224
- font-weight: 680;
225
- letter-spacing: -.01em;
226
- }
227
- .spotpatch-brand-context {
228
- color: #8e98aa;
229
- font-size: 10.5px;
230
- font-weight: 560;
231
- letter-spacing: .02em;
232
- }
233
- .spotpatch-title {
234
- margin: 0;
235
- color: #fff;
236
- font-size: 18px;
237
- font-weight: 680;
238
- letter-spacing: -.015em;
239
- }
240
- .spotpatch-subtitle {
241
- max-width: 390px;
242
- margin: 4px 0 0;
243
- color: var(--spotpatch-text-secondary);
244
- font-size: 12.5px;
245
- line-height: 1.5;
246
- }
169
+
247
170
  .spotpatch-execution-island {
248
- position: relative;
249
171
  display: grid;
250
172
  box-sizing: border-box;
251
173
  width: 100%;
@@ -257,7 +179,7 @@ function createFloatingSurfaceMotionStyles(document) {
257
179
  border: 0;
258
180
  border-radius: inherit;
259
181
  padding: 0 18px;
260
- color: var(--spotpatch-island-primary);
182
+ color: var(--spotpatch-text);
261
183
  background: transparent;
262
184
  cursor: pointer;
263
185
  text-align: left;
@@ -265,17 +187,15 @@ function createFloatingSurfaceMotionStyles(document) {
265
187
  }
266
188
  .spotpatch-execution-island[data-expanded="true"] {
267
189
  min-height: var(--spotpatch-island-expanded-height);
268
- grid-template-columns: auto minmax(0, 1fr) auto;
269
190
  grid-template-rows: auto 1fr;
270
191
  align-items: start;
271
192
  row-gap: 16px;
272
- border-radius: 30px;
273
193
  padding: 18px 20px 16px;
274
194
  }
275
195
  .spotpatch-execution-mark {
276
196
  display: grid;
277
- width: 23px;
278
- height: 23px;
197
+ width: 24px;
198
+ height: 24px;
279
199
  flex: none;
280
200
  place-items: center;
281
201
  }
@@ -283,7 +203,11 @@ function createFloatingSurfaceMotionStyles(document) {
283
203
  width: 22px;
284
204
  height: 22px;
285
205
  overflow: visible;
286
- filter: drop-shadow(0 0 7px rgb(139 103 255 / 16%));
206
+ }
207
+ [data-execution-scene="agent-charging"] .spotpatch-execution-logo,
208
+ [data-execution-scene="handoff"] .spotpatch-execution-logo,
209
+ [data-execution-scene="running"] .spotpatch-execution-logo {
210
+ animation: spotpatch-motion-logo-glow 2.4s ease-in-out infinite;
287
211
  }
288
212
  .spotpatch-execution-content {
289
213
  display: flex;
@@ -312,17 +236,15 @@ function createFloatingSurfaceMotionStyles(document) {
312
236
  }
313
237
  .spotpatch-execution-headline,
314
238
  .spotpatch-execution-headline-outgoing {
315
- color: var(--spotpatch-island-primary);
316
- font-size: 15px;
317
- font-weight: 690;
318
- letter-spacing: -.018em;
239
+ font-size: 14.5px;
240
+ font-weight: 650;
241
+ letter-spacing: -.015em;
319
242
  line-height: 1.35;
320
243
  }
321
244
  .spotpatch-execution-action,
322
245
  .spotpatch-execution-action-outgoing {
323
- color: #696f79;
324
- font-size: 11px;
325
- font-weight: 400;
246
+ color: var(--spotpatch-text-muted);
247
+ font-size: 11.5px;
326
248
  line-height: 1.35;
327
249
  }
328
250
  .spotpatch-execution-headline-outgoing,
@@ -334,7 +256,7 @@ function createFloatingSurfaceMotionStyles(document) {
334
256
  }
335
257
  .spotpatch-execution-copy-changing .spotpatch-execution-headline,
336
258
  .spotpatch-execution-copy-changing .spotpatch-execution-action {
337
- animation: spotpatch-motion-copy-in ${String(MOTION.contentMilliseconds)}ms var(--spotpatch-island-ease) both;
259
+ animation: spotpatch-motion-copy-in ${String(MOTION.contentMilliseconds)}ms var(--spotpatch-ease-out) both;
338
260
  }
339
261
  .spotpatch-execution-copy-changing .spotpatch-execution-headline-outgoing,
340
262
  .spotpatch-execution-copy-changing .spotpatch-execution-action-outgoing {
@@ -342,13 +264,13 @@ function createFloatingSurfaceMotionStyles(document) {
342
264
  }
343
265
  .spotpatch-execution-meta {
344
266
  display: inline-flex;
267
+ flex: none;
345
268
  align-items: center;
346
269
  justify-content: flex-end;
347
270
  gap: 10px;
348
- flex: none;
349
- color: #989da8;
350
- font-size: 11px;
351
- font-weight: 620;
271
+ color: var(--spotpatch-text-secondary);
272
+ font-size: 11.5px;
273
+ font-weight: 600;
352
274
  white-space: nowrap;
353
275
  }
354
276
  .spotpatch-execution-meta-dot {
@@ -356,49 +278,53 @@ function createFloatingSurfaceMotionStyles(document) {
356
278
  height: 6px;
357
279
  flex: none;
358
280
  border-radius: 50%;
359
- background: var(--spotpatch-island-violet);
360
- box-shadow: 0 0 8px rgb(139 103 255 / 38%);
281
+ background: var(--spotpatch-accent);
282
+ box-shadow: 0 0 10px var(--spotpatch-accent-line);
361
283
  }
362
284
  [data-execution-scene="agent-charging"] .spotpatch-execution-meta-dot,
363
285
  [data-execution-scene="handoff"] .spotpatch-execution-meta-dot,
364
286
  [data-execution-scene="running"] .spotpatch-execution-meta-dot {
365
287
  animation: spotpatch-motion-status-breathe 1.8s ease-in-out infinite;
366
288
  }
289
+ .spotpatch-execution-meta[data-tone="success"] { color: var(--spotpatch-success-text); }
367
290
  .spotpatch-execution-meta[data-tone="success"] .spotpatch-execution-meta-dot {
368
- background: var(--spotpatch-island-mint);
369
- box-shadow: 0 0 8px rgb(89 220 182 / 24%);
291
+ background: var(--spotpatch-success);
292
+ box-shadow: 0 0 10px color-mix(in srgb, var(--spotpatch-success) 45%, transparent);
370
293
  }
294
+ .spotpatch-execution-meta[data-tone="danger"] { color: var(--spotpatch-danger-text); }
371
295
  .spotpatch-execution-meta[data-tone="danger"] .spotpatch-execution-meta-dot {
372
- background: var(--spotpatch-island-error);
373
- box-shadow: 0 0 8px rgb(239 111 136 / 22%);
296
+ background: var(--spotpatch-danger);
297
+ box-shadow: 0 0 10px var(--spotpatch-danger-line);
374
298
  }
375
299
  .spotpatch-execution-timer {
376
- width: 34px;
377
- color: #737985;
378
- font: 400 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
300
+ width: 36px;
301
+ color: var(--spotpatch-text-muted);
302
+ font: 500 11px/1 var(--spotpatch-font-mono);
303
+ font-variant-numeric: tabular-nums;
379
304
  text-align: right;
380
305
  }
381
306
  .spotpatch-execution-more {
382
307
  display: grid;
383
308
  width: 24px;
384
309
  height: 24px;
385
- padding: 0;
310
+ place-items: center;
386
311
  border: 0;
312
+ border-radius: 50%;
313
+ padding: 0;
314
+ color: var(--spotpatch-text-muted);
387
315
  background: transparent;
388
- color: #686e78;
389
316
  font-size: 15px;
390
317
  line-height: 1;
391
- place-items: center;
318
+ transition: background var(--spotpatch-duration-fast) ease;
392
319
  }
320
+ .spotpatch-execution-island:hover .spotpatch-execution-more { background: var(--spotpatch-hover); }
393
321
  [data-expanded="true"] .spotpatch-execution-meta-dot,
394
322
  [data-expanded="true"] .spotpatch-execution-meta-label,
395
323
  [data-expanded="true"] .spotpatch-execution-timer { display: none; }
396
324
  [data-expanded="true"] .spotpatch-execution-more {
397
325
  width: 28px;
398
326
  height: 28px;
399
- border-radius: 50%;
400
- background: rgb(255 255 255 / 4.5%);
401
- color: #828894;
327
+ background: var(--spotpatch-hover);
402
328
  }
403
329
  .spotpatch-execution-recent {
404
330
  position: absolute;
@@ -406,82 +332,75 @@ function createFloatingSurfaceMotionStyles(document) {
406
332
  right: 20px;
407
333
  left: 20px;
408
334
  display: grid;
409
- margin-top: 0;
410
335
  }
411
- .spotpatch-execution-recent[hidden] { display: none; }
412
336
  .spotpatch-execution-recent-item {
413
337
  display: grid;
414
338
  min-height: 28px;
415
- grid-template-columns: 52px minmax(0, 1fr) auto;
339
+ grid-template-columns: 56px minmax(0, 1fr) auto;
416
340
  align-items: center;
417
- border-top: 1px solid rgb(255 255 255 / 5.5%);
341
+ border-top: 1px solid var(--spotpatch-border-subtle);
418
342
  }
419
343
  .spotpatch-execution-recent-item:first-child { border-top: 0; }
420
- .spotpatch-execution-recent-kind {
421
- color: #666c76;
422
- font: 600 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
423
- text-transform: uppercase;
344
+ .spotpatch-execution-recent-kind,
345
+ .spotpatch-execution-recent-state {
346
+ color: var(--spotpatch-text-muted);
347
+ font: 500 10.5px/1 var(--spotpatch-font-mono);
424
348
  }
349
+ .spotpatch-execution-recent-kind { text-transform: uppercase; }
425
350
  .spotpatch-execution-recent-detail {
426
351
  overflow: hidden;
427
- color: #b2b6bf;
428
- font-size: 11px;
352
+ color: var(--spotpatch-text-secondary);
353
+ font-size: 11.5px;
429
354
  text-overflow: ellipsis;
430
355
  white-space: nowrap;
431
356
  }
432
- .spotpatch-execution-recent-state {
433
- color: #626974;
434
- font: 500 10px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
435
- }
436
- .spotpatch-execution-recent-item[data-state="active"] .spotpatch-execution-recent-kind {
437
- color: var(--spotpatch-island-violet);
438
- }
439
- .spotpatch-execution-recent-item[data-state="active"] .spotpatch-execution-recent-detail {
440
- color: #f2f3f7;
441
- }
442
- .spotpatch-execution-recent-item[data-state="failure"] .spotpatch-execution-recent-kind {
443
- color: var(--spotpatch-island-error);
444
- }
357
+ .spotpatch-execution-recent-item[data-state="active"] .spotpatch-execution-recent-kind { color: var(--spotpatch-accent-soft); }
358
+ .spotpatch-execution-recent-item[data-state="active"] .spotpatch-execution-recent-detail { color: var(--spotpatch-text); }
359
+ .spotpatch-execution-recent-item[data-state="failure"] .spotpatch-execution-recent-kind { color: var(--spotpatch-danger-text); }
445
360
  .spotpatch-island-sweep {
446
361
  position: absolute;
447
362
  z-index: 2;
448
363
  bottom: 0;
449
364
  left: 44px;
450
- width: 20%;
365
+ width: 22%;
451
366
  height: 1px;
452
- border-radius: 999px;
453
- background: linear-gradient(90deg, transparent, var(--spotpatch-island-violet), var(--spotpatch-island-cyan), transparent);
454
- box-shadow: 0 0 7px rgb(139 103 255 / 18%);
367
+ border-radius: var(--spotpatch-radius-pill);
368
+ background: linear-gradient(90deg, transparent, var(--spotpatch-accent), var(--spotpatch-accent-cyan), transparent);
369
+ box-shadow: 0 0 8px var(--spotpatch-accent-line);
455
370
  opacity: 0;
456
371
  pointer-events: none;
457
372
  transform: translate3d(-160%, 0, 0);
458
373
  }
374
+ [data-motion-reveal="true"] .spotpatch-shell > * {
375
+ animation: spotpatch-motion-section-in ${milliseconds(MOTION.revealSeconds)} var(--spotpatch-ease-out) both;
376
+ animation-delay: ${sectionRevealDelay(0)};
377
+ }
378
+ [data-motion-reveal="true"] .spotpatch-shell > :nth-child(2) { animation-delay: ${sectionRevealDelay(1)}; }
379
+ [data-motion-reveal="true"] .spotpatch-shell > :nth-child(3) { animation-delay: ${sectionRevealDelay(2)}; }
380
+ @keyframes spotpatch-motion-section-in {
381
+ from { opacity: 0; transform: translate3d(0, 8px, 0); }
382
+ }
459
383
  @keyframes spotpatch-motion-copy-in {
460
- from { opacity: 0; filter: blur(2px); transform: translate3d(0, 3px, 0); }
461
- to { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
384
+ from { opacity: 0; filter: blur(2px); transform: translate3d(0, 4px, 0); }
462
385
  }
463
386
  @keyframes spotpatch-motion-copy-out {
464
- from { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
465
- to { opacity: 0; filter: blur(2px); transform: translate3d(0, -3px, 0); }
387
+ to { opacity: 0; filter: blur(2px); transform: translate3d(0, -4px, 0); }
466
388
  }
467
389
  @keyframes spotpatch-motion-status-breathe {
468
- 50% { opacity: .42; transform: scale(.82); }
390
+ 50% { opacity: .4; transform: scale(.8); }
469
391
  }
470
- @keyframes spotpatch-motion-pill-pulse {
471
- 50% { box-shadow: 0 0 0 6px rgb(99 102 241 / 5%); opacity: .72; }
392
+ @keyframes spotpatch-motion-logo-glow {
393
+ 50% { filter: drop-shadow(0 0 7px var(--spotpatch-accent-line)); }
472
394
  }
473
- .spotpatch-floating-surface[data-motion-paused="true"] .spotpatch-execution-meta-dot,
474
- .spotpatch-floating-surface[data-motion-paused="true"] .spotpatch-trigger::before {
395
+ .spotpatch-floating-surface[data-motion-paused="true"] *,
396
+ .spotpatch-floating-surface[data-motion-paused="true"] *::before {
475
397
  animation-play-state: paused;
476
398
  }
477
399
  @media (prefers-reduced-motion: reduce) {
478
- .spotpatch-trigger::before,
479
- .spotpatch-execution-meta-dot,
480
400
  .spotpatch-execution-headline,
481
401
  .spotpatch-execution-headline-outgoing,
482
402
  .spotpatch-execution-action,
483
403
  .spotpatch-execution-action-outgoing {
484
- animation: none !important;
485
404
  filter: none !important;
486
405
  transform: none !important;
487
406
  }
@@ -489,7 +408,6 @@ function createFloatingSurfaceMotionStyles(document) {
489
408
  }
490
409
  @media (max-width: 520px) {
491
410
  .spotpatch-execution-island {
492
- grid-template-columns: auto minmax(0, 1fr) auto;
493
411
  gap: 10px;
494
412
  padding-right: 14px;
495
413
  padding-left: 14px;
@@ -563,6 +481,7 @@ function createFloatingSurfaceMotionController(document, elements, reconcile) {
563
481
  clearProps: "borderRadius,filter,height,opacity,transform,visibility,width,willChange"
564
482
  });
565
483
  delete elements.surface.dataset.motionMorphing;
484
+ delete elements.planner.dataset.motionReveal;
566
485
  syncRecentVisibility();
567
486
  }
568
487
  function clearMorph() {
@@ -715,15 +634,22 @@ function createFloatingSurfaceMotionController(document, elements, reconcile) {
715
634
  0
716
635
  );
717
636
  }
718
- if (reveal) {
637
+ if (reveal && activeScene === elements.planner) {
638
+ elements.planner.dataset.motionReveal = "true";
639
+ morphTimeline.call(
640
+ () => void 0,
641
+ [],
642
+ MOTION.sceneRevealDelaySeconds + MOTION.revealSeconds + MOTION.revealStaggerSeconds * (PLANNER_SECTION_COUNT - 1)
643
+ );
644
+ } else if (reveal) {
719
645
  morphTimeline.fromTo(
720
646
  activeScene,
721
- { autoAlpha: 0, y: 4 },
647
+ { autoAlpha: 0, y: 8 },
722
648
  {
723
649
  autoAlpha: 1,
724
650
  y: 0,
725
651
  duration: MOTION.revealSeconds,
726
- ease: "power2.out",
652
+ ease: "power3.out",
727
653
  clearProps: "transform,opacity,visibility"
728
654
  },
729
655
  MOTION.sceneRevealDelaySeconds
@@ -847,9 +773,9 @@ function createFloatingSurfaceMotionController(document, elements, reconcile) {
847
773
  );
848
774
  dispatchTimeline.fromTo(
849
775
  target,
850
- { boxShadow: "0 0 0 rgb(100 120 255 / 0%)" },
776
+ { boxShadow: THEME_MOTION_COLORS.dispatchGlowRest },
851
777
  {
852
- boxShadow: "0 0 18px rgb(100 120 255 / 14%)",
778
+ boxShadow: THEME_MOTION_COLORS.dispatchGlow,
853
779
  duration: MOTION.targetFeedbackSeconds,
854
780
  yoyo: true,
855
781
  repeat: 1,
@@ -1004,8 +930,8 @@ function createBrandMark(document, content, idPrefix) {
1004
930
 
1005
931
  // src/ui/execution-island.ts
1006
932
  var TIMER_INTERVAL_MS = 1e3;
1007
- function formatElapsed(milliseconds) {
1008
- const totalSeconds = Math.max(0, Math.floor(milliseconds / TIMER_INTERVAL_MS));
933
+ function formatElapsed(milliseconds2) {
934
+ const totalSeconds = Math.max(0, Math.floor(milliseconds2 / TIMER_INTERVAL_MS));
1009
935
  const seconds = totalSeconds % 60;
1010
936
  const totalMinutes = Math.floor(totalSeconds / 60);
1011
937
  const minutes = totalMinutes % 60;