@dfosco/storyboard 0.6.3 → 0.6.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dfosco/storyboard",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Storyboard prototyping framework — core engine, React integration, and canvas",
@@ -398,10 +398,15 @@ if (isInstalled('code')) {
398
398
  p.log.success('Canvas asset directories ready')
399
399
  }
400
400
 
401
- // 7a. Scaffold .gitignore entries for private canvas images
401
+ // 7a. Scaffold .gitignore entries for storyboard runtime + private files
402
402
  {
403
403
  const gitignorePath = '.gitignore'
404
404
  const privatePatterns = [
405
+ // Storyboard runtime state — entirely per-machine, never committed.
406
+ // Files that NEED to be public must be written to .storyboard-public/
407
+ // (or assets/.storyboard-public/) instead.
408
+ '.storyboard/',
409
+ // Private canvas images / snapshots (tilde prefix = not committed)
405
410
  'src/canvas/images/~*',
406
411
  'assets/canvas/images/~*',
407
412
  'assets/canvas/snapshots/~*',
@@ -412,18 +417,16 @@ if (isInstalled('code')) {
412
417
  'src/canvas/~*/',
413
418
  'src/prototypes/~*/',
414
419
  'src/prototypes/**/~*.{flow,object,record,prototype,folder}.json',
415
- // Per-user local state (setup version marker, agent prefs, future onboarding state)
416
- '.storyboard/.user.json',
417
420
  ]
418
421
  if (existsSync(gitignorePath)) {
419
422
  try {
420
423
  let content = readFileSync(gitignorePath, 'utf-8')
421
424
  const missing = privatePatterns.filter(p => !content.includes(p))
422
425
  if (missing.length > 0) {
423
- const block = '\n# Private canvas images (tilde prefix = not committed)\n' + missing.join('\n') + '\n'
426
+ const block = '\n# Storyboard: runtime state (gitignored) + private tilde-prefixed files\n' + missing.join('\n') + '\n'
424
427
  content = content.trimEnd() + '\n' + block
425
428
  writeFileSync(gitignorePath, content, 'utf-8')
426
- p.log.success('Added private image patterns to .gitignore')
429
+ p.log.success('Added storyboard patterns to .gitignore')
427
430
  }
428
431
  } catch { /* ignore */ }
429
432
  }
@@ -1357,7 +1357,13 @@ function WorkspaceImpl({
1357
1357
  >
1358
1358
  {sidebarOpen ? <XIcon size={18} /> : <ThreeBarsIcon size={18} />}
1359
1359
  </button>
1360
- <div className={`${css.logo} smooth-corners`}><Icon name="iconoir/key-command" size={22} color="#fff" /></div>
1360
+ <img
1361
+ src={`${basePath || '/'}favicon.svg`}
1362
+ alt=""
1363
+ width={48}
1364
+ height={48}
1365
+ className={css.logo}
1366
+ />
1361
1367
  <div>
1362
1368
  <div className={css.appName}>{title}</div>
1363
1369
  {subtitle && <div className={css.appSubtitle}>{subtitle}</div>}
@@ -30,13 +30,8 @@
30
30
  .logo {
31
31
  width: 48px;
32
32
  height: 48px;
33
- background: var(--bgColor-emphasis, #313131);
34
- border-radius: 8px;
35
33
  transform: rotate(-1deg);
36
- display: flex;
37
- align-items: center;
38
- justify-content: center;
39
- color: var(--fgColor-onEmphasis, #fff);
34
+ display: block;
40
35
  flex-shrink: 0;
41
36
  }
42
37
 
@@ -1636,6 +1636,15 @@ export default function CanvasPage({ canvasId: canvasIdProp, name, siblingPages
1636
1636
  : [],
1637
1637
  createdAt: snapshot.createdAt ?? null,
1638
1638
  updatedAt: snapshot.updatedAt ?? null,
1639
+ // PR-specific metadata (state, branches, diff stats)
1640
+ state: snapshot.state ?? null,
1641
+ merged: typeof snapshot.merged === 'boolean' ? snapshot.merged : null,
1642
+ draft: typeof snapshot.draft === 'boolean' ? snapshot.draft : null,
1643
+ baseRef: typeof snapshot.baseRef === 'string' ? snapshot.baseRef : null,
1644
+ headRef: typeof snapshot.headRef === 'string' ? snapshot.headRef : null,
1645
+ additions: typeof snapshot.additions === 'number' ? snapshot.additions : null,
1646
+ deletions: typeof snapshot.deletions === 'number' ? snapshot.deletions : null,
1647
+ changedFiles: typeof snapshot.changedFiles === 'number' ? snapshot.changedFiles : null,
1639
1648
  fetchedAt: new Date().toISOString(),
1640
1649
  },
1641
1650
  }
@@ -599,8 +599,8 @@
599
599
  .prStateBadge {
600
600
  display: inline-flex;
601
601
  align-items: center;
602
- gap: 4px;
603
- padding: 3px 8px;
602
+ gap: 6px;
603
+ padding: 5px 10px 5px 9px;
604
604
  border-radius: 2em;
605
605
  font-size: 12px;
606
606
  font-weight: 500;