@dfosco/storyboard-core 4.2.1 → 4.2.3

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 (57) hide show
  1. package/dist/storyboard-ui.css +1 -1
  2. package/dist/storyboard-ui.js +7973 -8418
  3. package/dist/storyboard-ui.js.map +1 -1
  4. package/package.json +2 -12
  5. package/scaffold/AGENTS.md +432 -0
  6. package/scaffold/manifest.json +13 -8
  7. package/src/ActionMenuButton.jsx +1 -1
  8. package/src/AutosyncMenuButton.jsx +1 -1
  9. package/src/CanvasAgentsMenu.jsx +1 -1
  10. package/src/CanvasCreateMenu.jsx +1 -1
  11. package/src/CanvasSnap.jsx +1 -1
  12. package/src/CanvasZoomToFit.jsx +1 -1
  13. package/src/CommandMenu.jsx +2 -2
  14. package/src/CommandPalette.jsx +1 -1
  15. package/src/CommandPaletteTrigger.jsx +1 -1
  16. package/src/CommentsMenuButton.jsx +1 -1
  17. package/src/CoreUIBar.jsx +18 -2
  18. package/src/CreateMenuButton.jsx +1 -1
  19. package/src/HideChromeTrigger.jsx +1 -1
  20. package/src/{svelte-plugin-ui/components/Icon.jsx → Icon.jsx} +8 -10
  21. package/src/ThemeMenuButton.jsx +1 -1
  22. package/src/comments/ui/authModal.js +1 -1
  23. package/src/configSchema.js +2 -0
  24. package/src/configStore.js +1 -1
  25. package/src/devtools-consumer.js +2 -2
  26. package/src/index.js +3 -3
  27. package/src/loader.js +9 -2
  28. package/src/mountStoryboardCore.js +3 -3
  29. package/src/sidepanel.css +1 -1
  30. package/src/toolbarConfigStore.js +1 -1
  31. package/src/ui/design-modes.ts +4 -51
  32. package/src/ui/viewfinder.ts +4 -55
  33. package/src/ui-entry.js +5 -5
  34. package/src/vite/server-plugin.js +9 -0
  35. package/src/workshop/features/createFlow/index.js +1 -1
  36. package/src/workshop/features/createPrototype/index.js +1 -1
  37. package/src/workshop/features/registry-server.js +1 -1
  38. package/src/workshop/ui/mount.ts +3 -65
  39. package/scaffold/svelte.config.js +0 -1
  40. package/src/svelte-plugin-ui/__tests__/ModeSwitch.test.ts +0 -75
  41. package/src/svelte-plugin-ui/__tests__/ToolbarShell.test.ts +0 -126
  42. package/src/svelte-plugin-ui/__tests__/designModes.test.ts +0 -58
  43. package/src/svelte-plugin-ui/__tests__/modeStore.test.ts +0 -53
  44. package/src/svelte-plugin-ui/__tests__/mount.test.ts +0 -29
  45. package/src/svelte-plugin-ui/components/Icon.css +0 -11
  46. package/src/svelte-plugin-ui/components/ModeSwitch.css +0 -90
  47. package/src/svelte-plugin-ui/components/ModeSwitch.jsx +0 -47
  48. package/src/svelte-plugin-ui/components/ToolbarShell.css +0 -80
  49. package/src/svelte-plugin-ui/components/ToolbarShell.jsx +0 -84
  50. package/src/svelte-plugin-ui/components/Viewfinder.css +0 -412
  51. package/src/svelte-plugin-ui/components/Viewfinder.jsx +0 -513
  52. package/src/svelte-plugin-ui/index.ts +0 -20
  53. package/src/svelte-plugin-ui/mount.ts +0 -120
  54. package/src/svelte-plugin-ui/stores/modeStore.ts +0 -91
  55. package/src/svelte-plugin-ui/stores/toolStore.ts +0 -71
  56. package/src/svelte-plugin-ui/stores/types.ts +0 -55
  57. package/src/svelte-plugin-ui/styles/base.css +0 -69
@@ -1,412 +0,0 @@
1
- .container {
2
- min-height: 100vh;
3
- background-color: var(--bgColor-default, #0d1117);
4
- color: var(--fgColor-default, #e6edf3);
5
- padding: 80px 32px 48px;
6
- max-width: 960px;
7
- margin: 0 auto;
8
- }
9
-
10
- .header {
11
- max-width: 720px;
12
- margin: 0 auto 40px;
13
- }
14
-
15
- .headerTop {
16
- display: flex;
17
- align-items: baseline;
18
- gap: 16px;
19
- }
20
-
21
- .title {
22
- font: var(--text-display-shorthand);
23
- margin: 0 0 12px;
24
- color: var(--fgColor-default, #e6edf3);
25
- letter-spacing: -0.03em;
26
- line-height: 1;
27
- }
28
-
29
- .subtitle {
30
- font-size: 15px;
31
- color: var(--fgColor-muted, #848d97);
32
- margin: 4px 0 0;
33
- letter-spacing: 0.01em;
34
- }
35
-
36
- .controlsRow {
37
- display: flex;
38
- align-items: center;
39
- gap: 8px;
40
- margin: 16px 0 0;
41
- }
42
-
43
- .sortToggle {
44
- display: flex;
45
- gap: 2px;
46
- background: var(--bgColor-inset);
47
- padding: var(--base-size-4) var(--base-size-6);
48
- border-radius: 9999px;
49
- }
50
-
51
- .sortButton {
52
- display: inline-flex;
53
- align-items: center;
54
- border-radius: 9999px;
55
- gap: 6px;
56
- padding: 6px 10px;
57
- font-size: 12px;
58
- font-family: inherit;
59
- color: var(--fgColor-muted, #848d97);
60
- background: transparent;
61
- border: none;
62
- cursor: pointer;
63
- transition: color 0.15s, background 0.15s, border-color 0.15s;
64
- }
65
-
66
- .sortButton:first-child {
67
- transform: translateX(-1px);
68
- }
69
-
70
- .sortButton:last-child {
71
- transform: translateX(1px);
72
- }
73
-
74
- .sortButton:hover {
75
- color: var(--fgColor-default, #e6edf3);
76
- background: var(--bgColor-neutral-muted, rgba(110, 118, 129, 0.1));
77
- }
78
-
79
- .sortButtonActive {
80
- color: var(--fgColor-default, #e6edf3);
81
- background: var(--bgColor-neutral-muted, rgba(110, 118, 129, 0.15));
82
- border: none;
83
- }
84
-
85
- .branchDropdown {
86
- display: flex;
87
- align-items: center;
88
- gap: 0;
89
- flex-shrink: 0;
90
- position: relative;
91
- margin-left: auto;
92
- }
93
-
94
- .branchIcon {
95
- position: absolute;
96
- left: 10px;
97
- color: var(--fgColor-muted, #848d97);
98
- pointer-events: none;
99
- z-index: 1;
100
- }
101
-
102
- .branchSelect {
103
- appearance: none;
104
- background-color: transparent;
105
- color: var(--fgColor-default, #e6edf3);
106
- border: 1px solid var(--borderColor-default, #30363d);
107
- border-radius: 20px;
108
- padding: 6px 32px 6px 32px;
109
- font-size: 13px;
110
- font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
111
- cursor: pointer;
112
- background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23848d97'%3E%3Cpath d='M6 8.5L1.5 4h9L6 8.5z'/%3E%3C/svg%3E");
113
- background-repeat: no-repeat;
114
- background-position: right 12px center;
115
- min-width: 140px;
116
- max-width: 220px;
117
- text-overflow: ellipsis;
118
- overflow: hidden;
119
- transition: border-color 0.15s ease;
120
- }
121
-
122
- .branchSelect:hover {
123
- border-color: #bbbbbb;
124
- }
125
-
126
- .branchSelect:focus-visible {
127
- outline: 2px solid var(--borderColor-accent-emphasis, #1f6feb);
128
- outline-offset: -1px;
129
- }
130
-
131
- .list {
132
- display: flex;
133
- flex-direction: column;
134
- gap: var(--base-size-8);
135
- max-width: 720px;
136
- margin: 0 auto;
137
- }
138
-
139
- .protoGroup {
140
- display: flex;
141
- flex-direction: column;
142
- gap: var(--base-size-8);
143
- }
144
-
145
- .protoGroup > .listItem {
146
- border: 1px solid var(--borderColor-muted, #30363d);
147
- border-radius: var(--base-size-6);
148
- }
149
-
150
- .folderGroup {
151
- display: flex;
152
- flex-direction: column;
153
- gap: var(--base-size-8);
154
- }
155
-
156
- .folderHeader {
157
- display: flex;
158
- flex-direction: row;
159
- align-items: baseline;
160
- justify-content: flex-start;
161
- gap: var(--base-size-8);
162
- appearance: none;
163
- border: none;
164
- border-radius: var(--base-size-6);
165
- border: 1px solid var(--borderColor-muted, #30363d);
166
- background: none;
167
- width: 100%;
168
- text-align: left;
169
- cursor: pointer;
170
- color: inherit;
171
- padding: var(--base-size-16);
172
- }
173
-
174
- .folderHeader:hover,
175
- .folderGroupOpen .folderHeader {
176
- background-color: var(--bgColor-muted, #161b22);
177
- }
178
-
179
- .folderName {
180
- display: inline-flex;
181
- align-items: center;
182
- gap: var(--base-size-8);
183
- font-size: var(--text-body-size-small);
184
- font-weight: 600;
185
- color: var(--fgColor-default);
186
- margin: 0;
187
- letter-spacing: 0.04em;
188
- text-transform: uppercase;
189
- line-height: 1.6;
190
- }
191
-
192
- .folderDesc {
193
- font-size: var(--text-body-size-small);
194
- color: var(--fgColor-muted, #848d97);
195
- margin: 0;
196
- letter-spacing: 0.01em;
197
- text-transform: none;
198
- font-weight: 400;
199
- }
200
-
201
- .folderContent {
202
- display: flex;
203
- flex-direction: column;
204
- gap: var(--base-size-8);
205
- }
206
-
207
- .listItem {
208
- display: block;
209
- text-decoration: none;
210
- color: inherit;
211
- }
212
-
213
- .listItem:hover {
214
- text-decoration: none !important;
215
- }
216
-
217
- .protoHeader {
218
- appearance: none;
219
- border: none;
220
- background: none;
221
- border-radius: var(--base-size-6);
222
- width: 100%;
223
- text-align: left;
224
- cursor: pointer;
225
- color: inherit;
226
- padding: 0;
227
- }
228
-
229
- .protoHeader[aria-expanded="true"] .cardBody {
230
- background-color: var(--bgColor-muted);
231
- border-radius: var(--base-size-6);
232
- }
233
-
234
- .cardBody {
235
- padding: 12px 16px;
236
- }
237
-
238
- .cardBody:hover {
239
- background-color: var(--bgColor-muted);
240
- border-radius: var(--base-size-6);
241
- }
242
-
243
- .protoName {
244
- font-size: var(--text-title-size-medium);
245
- font-weight: 400;
246
- color: var(--fgColor-default, #e6edf3);
247
- margin: 0;
248
- letter-spacing: -0.02em;
249
- line-height: 1.6;
250
- transition: font-style 0.15s ease;
251
- }
252
-
253
- .protoName.otherflows {
254
- font-size: var(--text-body-size-small);
255
- font-weight: 600;
256
- text-transform: uppercase;
257
- direction: rtl;
258
- }
259
-
260
- .protoName.otherflows .protoChevron {
261
- margin-right: var(--base-size-8);
262
- }
263
-
264
- .protoDesc {
265
- font-size: 13px;
266
- color: var(--fgColor-muted, #848d97);
267
- margin: 4px 0 0;
268
- letter-spacing: 0.01em;
269
- }
270
-
271
- .externalBadge {
272
- display: inline-flex;
273
- align-items: center;
274
- gap: 4px;
275
- font-size: 11px;
276
- font-weight: 500;
277
- color: var(--fgColor-muted, #848d97);
278
- background: var(--bgColor-neutral-muted, rgba(110, 118, 129, 0.1));
279
- border-radius: 9999px;
280
- padding: 2px 8px;
281
- margin-left: 8px;
282
- vertical-align: middle;
283
- letter-spacing: 0.02em;
284
- }
285
-
286
- .author {
287
- display: flex;
288
- align-items: center;
289
- gap: 8px;
290
- margin-top: 6px;
291
- }
292
-
293
- .authorAvatars {
294
- display: flex;
295
- flex-direction: row;
296
- }
297
-
298
- .authorAvatars:hover .authorAvatar:not(:first-child) {
299
- margin-left: -2px;
300
- }
301
-
302
- .authorAvatar {
303
- width: 24px;
304
- height: 24px;
305
- border-radius: 50%;
306
- margin-left: -8px;
307
- transition: margin-left 50ms linear;
308
- outline: 2px solid var(--bgColor-default, #0d1117);
309
- position: relative;
310
- }
311
-
312
- .authorAvatar:first-child {
313
- margin-left: 0;
314
- }
315
-
316
- .authorName {
317
- font-size: 13px;
318
- color: var(--fgColor-muted, #848d97);
319
- letter-spacing: 0.01em;
320
- }
321
-
322
- .authorPlain {
323
- font-size: 13px;
324
- color: var(--fgColor-muted);
325
- margin: 4px 0 0;
326
- letter-spacing: 0.01em;
327
- }
328
-
329
- .flowList {
330
- margin: 0;
331
- padding: 0;
332
- display: flex;
333
- flex-direction: column;
334
- }
335
-
336
- .flowItem {
337
- border: 1px solid var(--borderColor-muted);
338
- padding: 0;
339
- }
340
-
341
- .flowItem:not(:first-child) {
342
- margin-top: -1px;
343
- }
344
-
345
- .flowItem:first-child {
346
- border-top-left-radius: var(--base-size-6);
347
- border-top-right-radius: var(--base-size-6);
348
- }
349
-
350
- .flowItem:last-child {
351
- border-bottom-left-radius: var(--base-size-6);
352
- border-bottom-right-radius: var(--base-size-6);
353
- }
354
-
355
- .flowItem:only-child {
356
- border-radius: var(--base-size-6);
357
- }
358
-
359
- .flowItem .protoName {
360
- font-size: var(--text-title-size-small);
361
- color: var(--fgColor-muted);
362
- }
363
-
364
- .flowDesc {
365
- font-size: 13px;
366
- color: var(--fgColor-muted, #848d97);
367
- margin: 4px 0 0;
368
- letter-spacing: 0.01em;
369
- }
370
-
371
- .thumbnail {
372
- aspect-ratio: 16 / 10;
373
- display: flex;
374
- align-items: center;
375
- justify-content: center;
376
- overflow: hidden;
377
- background: var(--bgColor-inset, #010409);
378
-
379
- --sb--placeholder-bg: var(--bgColor-inset, #010409);
380
- --sb--placeholder-grid: var(--borderColor-default, #30363d);
381
- --sb--placeholder-accent: var(--fgColor-accent, #58a6ff);
382
- --sb--placeholder-fg: var(--fgColor-default, #c9d1d9);
383
- --sb--placeholder-muted: var(--fgColor-muted, #484f58);
384
- }
385
-
386
- .thumbnail svg {
387
- width: 100%;
388
- height: 100%;
389
- }
390
-
391
- .empty {
392
- text-align: center;
393
- padding: 80px 24px;
394
- color: var(--fgColor-muted, #848d97);
395
- font-size: 15px;
396
- max-width: 720px;
397
- margin: 0 auto;
398
- }
399
-
400
- .canvasWarning {
401
- display: flex;
402
- align-items: center;
403
- gap: 8px;
404
- padding: 10px 14px;
405
- margin-bottom: 16px;
406
- border-radius: 8px;
407
- border: 1px solid var(--borderColor-default, var(--sb--color-border, #d0d7de));
408
- background: var(--bgColor-attention-muted, #3d2e00);
409
- color: var(--fgColor-attention, #9a6700);
410
- font-size: 13px;
411
- line-height: 1.4;
412
- }