@mosetta/editor 0.0.0-stage → 0.0.28

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 (115) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/LICENSE +21 -0
  3. package/README.md +10 -2
  4. package/mosetta.json +6 -0
  5. package/package.json +35 -3
  6. package/prefabs/workbench/prefab.json +11 -0
  7. package/prefabs/workbench/versions/1.json +120 -0
  8. package/prefabs/workbench/versions/2.json +13 -0
  9. package/prefabs/workbench/versions/3.json +19 -0
  10. package/prefabs/workbench/versions/4.json +29 -0
  11. package/prefabs/workbench/versions/5.json +29 -0
  12. package/tiles/canvas/canvas.component.tsx +2038 -0
  13. package/tiles/canvas/canvas.css +973 -0
  14. package/tiles/canvas/canvasTools.ts +66 -0
  15. package/tiles/canvas/chromeNodes.ts +35 -0
  16. package/tiles/canvas/ghosts.ts +33 -0
  17. package/tiles/canvas/insertPopover.tsx +56 -0
  18. package/tiles/canvas/popoverPlacement.ts +104 -0
  19. package/tiles/canvas/popoverSize.ts +87 -0
  20. package/tiles/canvas/providerChrome.tsx +191 -0
  21. package/tiles/canvas/scrollWatch.ts +43 -0
  22. package/tiles/canvas/settingsPopover.tsx +257 -0
  23. package/tiles/canvas/settingsTabs.ts +78 -0
  24. package/tiles/canvas/toolPanel.tsx +86 -0
  25. package/tiles/content/autoBind.ts +61 -0
  26. package/tiles/content/blockPage.css +390 -0
  27. package/tiles/content/blockPage.tsx +379 -0
  28. package/tiles/content/blockPicker.css +215 -0
  29. package/tiles/content/blockPicker.tsx +501 -0
  30. package/tiles/content/blockUpgrades.ts +145 -0
  31. package/tiles/content/blockVariants.ts +185 -0
  32. package/tiles/content/blockVocabulary.ts +77 -0
  33. package/tiles/content/catalogVersions.ts +106 -0
  34. package/tiles/content/componentPreview.css +82 -0
  35. package/tiles/content/componentPreview.tsx +249 -0
  36. package/tiles/content/content.server.ts +593 -0
  37. package/tiles/content/contentCommon.ts +133 -0
  38. package/tiles/content/disconnected.ts +56 -0
  39. package/tiles/content/distributions.css +256 -0
  40. package/tiles/content/distributions.tsx +271 -0
  41. package/tiles/content/editingAutosave.ts +125 -0
  42. package/tiles/content/editingClipboard.ts +185 -0
  43. package/tiles/content/editingConflicts.ts +223 -0
  44. package/tiles/content/editingHotkeys.ts +59 -0
  45. package/tiles/content/editingNotices.ts +105 -0
  46. package/tiles/content/formRoot.ts +18 -0
  47. package/tiles/content/fuzzySearch.ts +121 -0
  48. package/tiles/content/mediaUpload.ts +55 -0
  49. package/tiles/content/moduleSiblings.ts +9 -0
  50. package/tiles/content/mountedTree.ts +136 -0
  51. package/tiles/content/nodeSettings.css +483 -0
  52. package/tiles/content/nodeSettings.tsx +963 -0
  53. package/tiles/content/pasteText.ts +131 -0
  54. package/tiles/content/prefabFields.tsx +158 -0
  55. package/tiles/content/prefabParts.ts +105 -0
  56. package/tiles/content/previewEnvironment.ts +46 -0
  57. package/tiles/content/projectConfig.ts +46 -0
  58. package/tiles/content/projectPrefabs.ts +57 -0
  59. package/tiles/content/publishModal.css +109 -0
  60. package/tiles/content/publishModal.tsx +92 -0
  61. package/tiles/content/refsEditing.ts +412 -0
  62. package/tiles/content/scaledStage.ts +63 -0
  63. package/tiles/content/searchField.css +32 -0
  64. package/tiles/content/searchField.tsx +32 -0
  65. package/tiles/content/settingsDraft.ts +178 -0
  66. package/tiles/content/settingsIssues.tsx +124 -0
  67. package/tiles/content/themeScope.ts +72 -0
  68. package/tiles/content/themeVariables.ts +47 -0
  69. package/tiles/content/tooltipPlacement.ts +17 -0
  70. package/tiles/content/tooltips.tsx +131 -0
  71. package/tiles/content/treeMounter.ts +33 -0
  72. package/tiles/content/updatesModal.css +124 -0
  73. package/tiles/content/updatesModal.tsx +110 -0
  74. package/tiles/content/useCtrlHeld.ts +24 -0
  75. package/tiles/content/useEditingSession.ts +115 -0
  76. package/tiles/content/useMountedTree.ts +47 -0
  77. package/tiles/content/workbenchScale.css +27 -0
  78. package/tiles/hostFallback/hostFallback.component.tsx +32 -0
  79. package/tiles/hostFallback/hostFallback.css +12 -0
  80. package/tiles/hostFallback/hostFallback.editor.tsx +10 -0
  81. package/tiles/page/page.component.tsx +7 -0
  82. package/tiles/page/page.script.tsx +5 -0
  83. package/tiles/pageModules/pageModules.component.tsx +740 -0
  84. package/tiles/pageModules/pageModules.css +383 -0
  85. package/tiles/pageModules/pageModules.icon.svg +1 -0
  86. package/tiles/pageModules/servedPage.ts +465 -0
  87. package/tiles/pagesPanel/pagesPanel.component.tsx +1645 -0
  88. package/tiles/pagesPanel/pagesPanel.css +713 -0
  89. package/tiles/pagesPanel/pagesPanel.editor.tsx +23 -0
  90. package/tiles/pagesPanel/pagesSearch.ts +194 -0
  91. package/tiles/pagesPanel/routeTree.ts +98 -0
  92. package/tiles/previewBridge/landing.ts +66 -0
  93. package/tiles/previewBridge/previewAgent.ts +457 -0
  94. package/tiles/previewBridge/previewBridge.component.tsx +137 -0
  95. package/tiles/previewBridge/previewBridge.editor.tsx +10 -0
  96. package/tiles/previewBridge/previewBridgeCommon.ts +172 -0
  97. package/tiles/previewBridge/standIn.ts +22 -0
  98. package/tiles/treeView/treeView.component.tsx +514 -0
  99. package/tiles/treeView/treeView.css +303 -0
  100. package/tiles/treeView/treeView.editor.tsx +12 -0
  101. package/tiles/workbench/assistant.css +401 -0
  102. package/tiles/workbench/assistant.tsx +516 -0
  103. package/tiles/workbench/assistantChat.ts +165 -0
  104. package/tiles/workbench/dictation.ts +354 -0
  105. package/tiles/workbench/projectInfo.ts +72 -0
  106. package/tiles/workbench/recent.ts +67 -0
  107. package/tiles/workbench/workbench.component.tsx +476 -0
  108. package/tiles/workbench/workbench.css +376 -0
  109. package/tiles/workbench/workbenchAddress.ts +202 -0
  110. package/tiles/workbench/workspace.ts +775 -0
  111. package/tiles/workbenchEditor/workbenchEditor.component.tsx +461 -0
  112. package/tiles/workbenchEditor/workbenchEditor.css +370 -0
  113. package/tiles/workbenchHome/workbenchHome.component.tsx +196 -0
  114. package/tiles/workbenchHome/workbenchHome.css +271 -0
  115. package/tsconfig.json +3 -0
@@ -0,0 +1,383 @@
1
+ /* the modules of a page: a head, a scrolled tree, the visits at the foot */
2
+ .page-modules {
3
+ --pm-bytes: 76px;
4
+ --pm-gzip: 86px;
5
+
6
+ display: flex;
7
+ flex-direction: column;
8
+ height: 100%;
9
+ min-height: 0;
10
+ font: var(--mosetta-wb-font, 14px)/1.45 ui-sans-serif, system-ui, sans-serif;
11
+ color: #27272a;
12
+ background: #fff;
13
+ }
14
+
15
+ .page-modules--bare {
16
+ padding: 16px;
17
+ color: #71717a;
18
+ }
19
+
20
+ .page-modules__head {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: 8px;
24
+ padding: 6px 8px 6px 12px;
25
+ border-bottom: 1px solid #e4e4e7;
26
+ }
27
+
28
+ .page-modules__title {
29
+ font-weight: 600;
30
+ color: #18181b;
31
+ }
32
+
33
+ .page-modules__status {
34
+ flex: 1;
35
+ min-width: 0;
36
+ overflow: hidden;
37
+ color: #a1a1aa;
38
+ font-size: var(--mosetta-wb-font-sm, 13px);
39
+ white-space: nowrap;
40
+ text-overflow: ellipsis;
41
+ }
42
+
43
+ .page-modules__action {
44
+ width: var(--mosetta-wb-icon-box, 24px);
45
+ height: var(--mosetta-wb-icon-box, 24px);
46
+ padding: 0;
47
+ border: 0;
48
+ border-radius: 6px;
49
+ background: transparent;
50
+ color: #52525b;
51
+ font-size: 15px;
52
+ cursor: pointer;
53
+ }
54
+
55
+ .page-modules__action:hover {
56
+ background: #f4f4f5;
57
+ }
58
+
59
+ .page-modules__body {
60
+ flex: 1;
61
+ min-height: 0;
62
+ overflow-y: auto;
63
+ }
64
+
65
+ .page-modules[data-busy] .page-modules__body,
66
+ .page-modules[data-busy] .page-modules__sum {
67
+ opacity: 0.6;
68
+ }
69
+
70
+ .page-modules__section {
71
+ border-bottom: 1px solid #e4e4e7;
72
+ }
73
+
74
+ /* ---- the tree ---- */
75
+
76
+ .page-modules__columns {
77
+ display: flex;
78
+ gap: 8px;
79
+ padding: 6px 12px 4px 34px;
80
+ color: #a1a1aa;
81
+ font-size: var(--mosetta-wb-font-xs, 12px);
82
+ }
83
+
84
+ .page-modules__columns > :first-child {
85
+ flex: 1;
86
+ text-align: left;
87
+ }
88
+
89
+ /* a column orders the tree by what it shows */
90
+ .page-modules__column {
91
+ padding: 0;
92
+ border: 0;
93
+ background: none;
94
+ color: inherit;
95
+ font: inherit;
96
+ cursor: pointer;
97
+ }
98
+
99
+ .page-modules__column:hover,
100
+ .page-modules__column--on {
101
+ color: #18181b;
102
+ }
103
+
104
+ .page-modules__line {
105
+ --depth: 0;
106
+
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 8px;
110
+ min-height: 30px;
111
+ padding: 0 12px 0 calc(8px + var(--depth) * 20px);
112
+ border-top: 1px solid #f4f4f5;
113
+ cursor: default;
114
+ }
115
+
116
+ .page-modules__line:has(.page-modules__opener:not(.page-modules__opener--none)) {
117
+ cursor: pointer;
118
+ }
119
+
120
+ .page-modules__line:hover {
121
+ background-color: #fafafa;
122
+ }
123
+
124
+ /* the share of the first visit the row weighs, drawn behind it — green for a crumb, red for a third
125
+ of the page (the hue comes with the row) */
126
+ .page-modules__line--bar {
127
+ background-image: linear-gradient(90deg, hsl(var(--hue, 120) 70% 46% / 16%) var(--share, 0%), transparent var(--share, 0%));
128
+ background-repeat: no-repeat;
129
+ }
130
+
131
+ .page-modules__opener {
132
+ display: inline-flex;
133
+ flex: none;
134
+ align-items: center;
135
+ justify-content: center;
136
+ width: 18px;
137
+ height: 18px;
138
+ padding: 0;
139
+ border: 0;
140
+ border-radius: 4px;
141
+ background: transparent;
142
+ color: #71717a;
143
+ cursor: pointer;
144
+ }
145
+
146
+ .page-modules__opener svg {
147
+ width: 14px;
148
+ height: 14px;
149
+ transition: transform 0.12s ease;
150
+ }
151
+
152
+ .page-modules__opener--open svg {
153
+ transform: rotate(90deg);
154
+ }
155
+
156
+ .page-modules__opener:hover {
157
+ background: #e4e4e7;
158
+ }
159
+
160
+ .page-modules__opener--none {
161
+ visibility: hidden;
162
+ }
163
+
164
+ .page-modules__name {
165
+ flex: none;
166
+ max-width: 55%;
167
+ overflow: hidden;
168
+ color: #18181b;
169
+ font-weight: 500;
170
+ white-space: nowrap;
171
+ text-overflow: ellipsis;
172
+ }
173
+
174
+ /* a dependency reads as code — a package and its version */
175
+ [data-test-id="page-modules-dep"] > .page-modules__line .page-modules__name {
176
+ font: 500 var(--mosetta-wb-font-sm, 13px)/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
177
+ }
178
+
179
+ .page-modules__meta {
180
+ flex: 1;
181
+ min-width: 0;
182
+ overflow: hidden;
183
+ color: #a1a1aa;
184
+ font-size: var(--mosetta-wb-font-sm, 13px);
185
+ white-space: nowrap;
186
+ text-overflow: ellipsis;
187
+ }
188
+
189
+ .page-modules__node--quiet > .page-modules__line .page-modules__name {
190
+ color: #a1a1aa;
191
+ text-decoration: line-through;
192
+ }
193
+
194
+ .page-modules__version {
195
+ font: var(--mosetta-wb-font-sm, 13px)/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
196
+ color: #52525b;
197
+ }
198
+
199
+ .page-modules__version s {
200
+ color: #a1a1aa;
201
+ }
202
+
203
+ .page-modules__version--crossed {
204
+ color: #1d4ed8;
205
+ }
206
+
207
+ .page-modules__version--lower {
208
+ color: #b91c1c;
209
+ }
210
+
211
+ .page-modules__version--absent {
212
+ color: #a1a1aa;
213
+ }
214
+
215
+ .page-modules__weight {
216
+ display: inline-flex;
217
+ flex: none;
218
+ color: #3f3f46;
219
+ font: var(--mosetta-wb-font-xs, 12px)/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
220
+ white-space: nowrap;
221
+ }
222
+
223
+ .page-modules__bytes,
224
+ .page-modules__gzip {
225
+ flex: none;
226
+ text-align: right;
227
+ }
228
+
229
+ .page-modules__bytes {
230
+ width: var(--pm-bytes);
231
+ }
232
+
233
+ .page-modules__gzip {
234
+ width: var(--pm-gzip);
235
+ color: #a1a1aa;
236
+ }
237
+
238
+ .page-modules__weight--quiet .page-modules__bytes {
239
+ color: #a1a1aa;
240
+ text-decoration: line-through;
241
+ }
242
+
243
+ /* ---- the rules ---- */
244
+
245
+ .page-modules__rules {
246
+ padding-bottom: 8px;
247
+ }
248
+
249
+ .page-modules__rule {
250
+ display: flex;
251
+ align-items: baseline;
252
+ gap: 10px;
253
+ padding: 5px 12px 5px 34px;
254
+ border-top: 1px solid #f4f4f5;
255
+ }
256
+
257
+ .page-modules__key {
258
+ padding: 0 6px;
259
+ border-radius: 4px;
260
+ background: #f4f4f5;
261
+ font: var(--mosetta-wb-font-xs, 12px)/1.6 ui-monospace, SFMono-Regular, Menlo, monospace;
262
+ }
263
+
264
+ .page-modules__rule-text {
265
+ flex: 1;
266
+ min-width: 0;
267
+ color: #52525b;
268
+ }
269
+
270
+ .page-modules__tag {
271
+ padding: 0 6px;
272
+ border-radius: 4px;
273
+ background: #dbeafe;
274
+ color: #1d4ed8;
275
+ font-size: var(--mosetta-wb-font-xs, 12px);
276
+ }
277
+
278
+ .page-modules__tag--quiet {
279
+ background: #f4f4f5;
280
+ color: #71717a;
281
+ }
282
+
283
+ .page-modules__link {
284
+ padding: 0;
285
+ border: 0;
286
+ background: none;
287
+ color: #71717a;
288
+ font: inherit;
289
+ font-size: var(--mosetta-wb-font-sm, 13px);
290
+ cursor: pointer;
291
+ }
292
+
293
+ .page-modules__link:hover {
294
+ color: #b91c1c;
295
+ }
296
+
297
+ .page-modules__add {
298
+ display: flex;
299
+ flex-wrap: wrap;
300
+ align-items: center;
301
+ gap: 6px;
302
+ padding: 8px 12px 0 34px;
303
+ }
304
+
305
+ .page-modules__input {
306
+ height: calc(var(--mosetta-wb-icon-box, 24px) + 4px);
307
+ padding: 0 8px;
308
+ border: 1px solid #d4d4d8;
309
+ border-radius: 6px;
310
+ font: inherit;
311
+ font-size: var(--mosetta-wb-font-sm, 13px);
312
+ color: #27272a;
313
+ background: #fff;
314
+ }
315
+
316
+ input.page-modules__input {
317
+ width: 200px;
318
+ }
319
+
320
+ .page-modules__button {
321
+ height: calc(var(--mosetta-wb-icon-box, 24px) + 4px);
322
+ padding: 0 12px;
323
+ border: 1px solid #d4d4d8;
324
+ border-radius: 6px;
325
+ font: inherit;
326
+ font-size: var(--mosetta-wb-font-sm, 13px);
327
+ color: #27272a;
328
+ background: #fff;
329
+ cursor: pointer;
330
+ }
331
+
332
+ .page-modules__button:hover {
333
+ background: #f4f4f5;
334
+ }
335
+
336
+ .page-modules__error {
337
+ margin: 0;
338
+ padding: 6px 12px;
339
+ color: #b91c1c;
340
+ font-size: var(--mosetta-wb-font-sm, 13px);
341
+ }
342
+
343
+ .page-modules__add .page-modules__error {
344
+ flex-basis: 100%;
345
+ padding: 0;
346
+ }
347
+
348
+ .page-modules__note {
349
+ margin: 6px 12px 0 34px;
350
+ color: #a1a1aa;
351
+ font-size: var(--mosetta-wb-font-sm, 13px);
352
+ }
353
+
354
+ /* ---- the visits ---- */
355
+
356
+ .page-modules__sum {
357
+ max-height: 45%;
358
+ overflow-y: auto;
359
+ border-top: 1px solid #d4d4d8;
360
+ background: #fafafa;
361
+ }
362
+
363
+ .page-modules__sum > .page-modules__node:first-child > .page-modules__line {
364
+ border-top: 0;
365
+ }
366
+
367
+ [data-test-id="page-modules-visit"] > .page-modules__line .page-modules__name,
368
+ [data-test-id="page-modules-visit"] > .page-modules__line .page-modules__bytes {
369
+ color: #18181b;
370
+ font-weight: 600;
371
+ }
372
+
373
+ /* the total under the list: what the rows above weigh together */
374
+ [data-test-id="page-modules-total-row"] > .page-modules__line {
375
+ border-top: 1px solid #d4d4d8;
376
+ }
377
+
378
+ [data-test-id="page-modules-total-row"] > .page-modules__line .page-modules__name,
379
+ [data-test-id="page-modules-total-row"] > .page-modules__line .page-modules__bytes,
380
+ [data-test-id="page-modules-packages"] > .page-modules__line .page-modules__name {
381
+ color: #18181b;
382
+ font-weight: 600;
383
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g fill="none" stroke="#52525b" stroke-width="1.3" stroke-linejoin="round"><path d="M8 1.8l5 2.6v5.2l-5 2.6-5-2.6V4.4z"/><path d="M3 4.4l5 2.6 5-2.6M8 7v5.2"/><path d="M3.5 13.3l4.5 1.9 4.5-1.9" stroke-linecap="round"/></g></svg>