@brass-build/client 0.2.0 → 0.4.0

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 (168) hide show
  1. package/AGENTS.md +26 -5
  2. package/CHANGELOG.md +61 -2
  3. package/README.md +247 -87
  4. package/dist/acting-organization.d.ts +131 -0
  5. package/dist/acting-organization.d.ts.map +1 -0
  6. package/dist/acting-organization.js +278 -0
  7. package/dist/acting-organization.js.map +1 -0
  8. package/dist/api-headers.js +7 -7
  9. package/dist/api-headers.js.map +1 -1
  10. package/dist/call-service.d.ts +74 -0
  11. package/dist/call-service.d.ts.map +1 -0
  12. package/dist/call-service.js +253 -0
  13. package/dist/call-service.js.map +1 -0
  14. package/dist/client.d.ts +29 -0
  15. package/dist/client.d.ts.map +1 -1
  16. package/dist/client.js +583 -12
  17. package/dist/client.js.map +1 -1
  18. package/dist/document-checkpoints.d.ts +1 -0
  19. package/dist/document-checkpoints.d.ts.map +1 -1
  20. package/dist/document-checkpoints.js +27 -0
  21. package/dist/document-checkpoints.js.map +1 -1
  22. package/dist/document-contents.d.ts +15 -0
  23. package/dist/document-contents.d.ts.map +1 -0
  24. package/dist/document-contents.js +88 -0
  25. package/dist/document-contents.js.map +1 -0
  26. package/dist/document-signals.d.ts +31 -1
  27. package/dist/document-signals.d.ts.map +1 -1
  28. package/dist/document-signals.js +59 -0
  29. package/dist/document-signals.js.map +1 -1
  30. package/dist/document-streams.d.ts +4 -2
  31. package/dist/document-streams.d.ts.map +1 -1
  32. package/dist/document-streams.js +6 -0
  33. package/dist/document-streams.js.map +1 -1
  34. package/dist/document-thumbnail-capture.d.ts +20 -0
  35. package/dist/document-thumbnail-capture.d.ts.map +1 -1
  36. package/dist/document-thumbnail-capture.js +247 -9
  37. package/dist/document-thumbnail-capture.js.map +1 -1
  38. package/dist/documents-namespace.d.ts.map +1 -1
  39. package/dist/documents-namespace.js +3 -0
  40. package/dist/documents-namespace.js.map +1 -1
  41. package/dist/documents.d.ts +51 -3
  42. package/dist/documents.d.ts.map +1 -1
  43. package/dist/documents.js +415 -36
  44. package/dist/documents.js.map +1 -1
  45. package/dist/export-guest.d.ts.map +1 -1
  46. package/dist/export-guest.js +5 -0
  47. package/dist/export-guest.js.map +1 -1
  48. package/dist/handle-types.d.ts +23 -0
  49. package/dist/handle-types.d.ts.map +1 -1
  50. package/dist/handles.d.ts +1 -1
  51. package/dist/handles.d.ts.map +1 -1
  52. package/dist/handles.js +3 -3
  53. package/dist/handles.js.map +1 -1
  54. package/dist/hosted-ui.d.ts +10 -0
  55. package/dist/hosted-ui.d.ts.map +1 -1
  56. package/dist/hosted-ui.js +115 -30
  57. package/dist/hosted-ui.js.map +1 -1
  58. package/dist/importer.d.ts.map +1 -1
  59. package/dist/importer.js +28 -66
  60. package/dist/importer.js.map +1 -1
  61. package/dist/index.d.ts +8 -3
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +25 -1
  64. package/dist/index.js.map +1 -1
  65. package/dist/internal.d.ts +2 -0
  66. package/dist/internal.d.ts.map +1 -1
  67. package/dist/internal.js +2 -0
  68. package/dist/internal.js.map +1 -1
  69. package/dist/mutate-batching.js +2 -2
  70. package/dist/mutate-batching.js.map +1 -1
  71. package/dist/open-document.d.ts +16 -1
  72. package/dist/open-document.d.ts.map +1 -1
  73. package/dist/open-document.js +123 -35
  74. package/dist/open-document.js.map +1 -1
  75. package/dist/presence.d.ts +10 -0
  76. package/dist/presence.d.ts.map +1 -1
  77. package/dist/presence.js.map +1 -1
  78. package/dist/record-paging.d.ts +13 -14
  79. package/dist/record-paging.d.ts.map +1 -1
  80. package/dist/record-paging.js +13 -14
  81. package/dist/record-paging.js.map +1 -1
  82. package/dist/serializer.d.ts +3 -3
  83. package/dist/session-toolbar.d.ts +9 -0
  84. package/dist/session-toolbar.d.ts.map +1 -1
  85. package/dist/session-toolbar.js +191 -21
  86. package/dist/session-toolbar.js.map +1 -1
  87. package/dist/tail-ops.js +2 -2
  88. package/dist/tail-ops.js.map +1 -1
  89. package/dist/types.d.ts +0 -42
  90. package/dist/types.d.ts.map +1 -1
  91. package/dist/undo.d.ts +1 -1
  92. package/dist/undo.d.ts.map +1 -1
  93. package/dist/undo.js +1 -1
  94. package/dist/undo.js.map +1 -1
  95. package/dist/version-bar.d.ts.map +1 -1
  96. package/dist/version-bar.js +75 -4
  97. package/dist/version-bar.js.map +1 -1
  98. package/dist/version.d.ts +2 -2
  99. package/dist/version.js +1 -1
  100. package/dist/wasm-ready-gate.d.ts +13 -0
  101. package/dist/wasm-ready-gate.d.ts.map +1 -0
  102. package/dist/wasm-ready-gate.js +28 -0
  103. package/dist/wasm-ready-gate.js.map +1 -0
  104. package/dist/wasm-runtime.browser.d.ts +11 -0
  105. package/dist/wasm-runtime.browser.d.ts.map +1 -0
  106. package/dist/wasm-runtime.browser.js +44 -0
  107. package/dist/wasm-runtime.browser.js.map +1 -0
  108. package/dist/wasm-runtime.d.ts +6 -0
  109. package/dist/wasm-runtime.d.ts.map +1 -0
  110. package/dist/wasm-runtime.js +20 -0
  111. package/dist/wasm-runtime.js.map +1 -0
  112. package/dist/when-saved.d.ts +2 -0
  113. package/dist/when-saved.d.ts.map +1 -0
  114. package/dist/when-saved.js +70 -0
  115. package/dist/when-saved.js.map +1 -0
  116. package/dist/ws-client.d.ts +4 -0
  117. package/dist/ws-client.d.ts.map +1 -1
  118. package/dist/ws-client.js +70 -1
  119. package/dist/ws-client.js.map +1 -1
  120. package/dist/ws-frame-limit.d.ts.map +1 -1
  121. package/dist/ws-frame-limit.js +9 -10
  122. package/dist/ws-frame-limit.js.map +1 -1
  123. package/docs/app-manifest.md +335 -5
  124. package/docs/custom-chrome.md +7 -2
  125. package/docs/presence.md +12 -0
  126. package/docs/services.md +265 -0
  127. package/docs/text-fields.md +191 -0
  128. package/package.json +4 -5
  129. package/src/acting-organization.ts +396 -0
  130. package/src/api-headers.ts +7 -7
  131. package/src/call-service.ts +354 -0
  132. package/src/client.ts +655 -15
  133. package/src/document-checkpoints.ts +30 -0
  134. package/src/document-contents.ts +104 -0
  135. package/src/document-signals.ts +113 -1
  136. package/src/document-streams.ts +15 -1
  137. package/src/document-thumbnail-capture.ts +253 -9
  138. package/src/documents-namespace.ts +20 -10
  139. package/src/documents.ts +460 -33
  140. package/src/export-guest.ts +5 -0
  141. package/src/handle-types.ts +35 -0
  142. package/src/handles.ts +7 -6
  143. package/src/hosted-ui.ts +155 -29
  144. package/src/importer.ts +28 -62
  145. package/src/index.ts +43 -4
  146. package/src/internal.ts +10 -0
  147. package/src/mutate-batching.ts +2 -2
  148. package/src/open-document.ts +179 -39
  149. package/src/presence.ts +6 -0
  150. package/src/record-paging.ts +13 -14
  151. package/src/serializer.ts +3 -3
  152. package/src/session-toolbar.ts +219 -22
  153. package/src/tail-ops.ts +2 -2
  154. package/src/types.ts +6 -4
  155. package/src/undo.ts +1 -1
  156. package/src/version-bar.ts +77 -7
  157. package/src/version.ts +1 -1
  158. package/src/wasm-ready-gate.ts +30 -0
  159. package/src/wasm-runtime.browser.ts +48 -0
  160. package/src/wasm-runtime.ts +21 -0
  161. package/src/when-saved.ts +66 -0
  162. package/src/ws-client.ts +70 -1
  163. package/src/ws-frame-limit.ts +9 -10
  164. package/dist/vite.d.ts +0 -31
  165. package/dist/vite.d.ts.map +0 -1
  166. package/dist/vite.js +0 -161
  167. package/dist/vite.js.map +0 -1
  168. package/src/vite.ts +0 -214
@@ -86,29 +86,28 @@ export declare function assertUsableRecordKey(key: string): void;
86
86
  export declare const OVERLAY_PREFIX = "brass:r:";
87
87
  /** Pack one stored value into a page triple. A `null` tag is what says the
88
88
  * body IS the record: an app's map holds whatever the app assigned, which has
89
- * no tag to split off. A codec's records arrive already split, and a codec
90
- * tag is a string, so the two forms cannot be confused however a codec names
91
- * its records. */
89
+ * no tag to split off. A typed record arrives already split, and its tag is a
90
+ * string, so the two forms cannot be confused whatever the tag says. */
92
91
  export declare function packWholeValue<B>(key: string, value: B): PackedRecord<B>;
93
92
  /** Re-pack `value` in the same triple shape `packed` already uses, so a page
94
- * rewritten in place keeps the form its readers expect: a codec's records
95
- * stay a tag beside a body, and an app's stay one whole value. A streaming
93
+ * rewritten in place keeps the form its readers expect: a typed record stays
94
+ * a tag beside a body, and an app's stays one whole value. A streaming
96
95
  * read visits a page's triples without unpacking them, so a rewrite that
97
96
  * changed the shape would hand it the wrong half of the record. */
98
97
  export declare function repackRecord(packed: PackedRecord<unknown>, value: unknown): PackedRecord<unknown>;
99
98
  /** The stored value a page triple carries: the value itself for a whole-value
100
- * record, else the `{ type, params }` pair a codec split it into. */
99
+ * record, else the `{ type, params }` pair a typed one was split into. */
101
100
  export declare function unpackRecord(packed: PackedRecord<unknown>): unknown;
102
101
  /** The tag + body a page triple names, for a reader that walks the two
103
102
  * separately, or null when the triple packs a whole value that is not a
104
103
  * record.
105
104
  *
106
- * A page holds both forms: a codec packs a record it has already split into a
107
- * tag and a body, and a map an app writes packs whatever the app assigned as
108
- * one whole value. Both forms occur in ONE store, because an app's bulk add
109
- * to a codec's record map seals its own pages, so a reader that took
110
- * `packed[1]` for the tag would report every record those pages hold as
111
- * having no type at all. */
105
+ * A page holds both forms: a typed record is packed as the tag and body it
106
+ * was already split into, and a map an app writes packs whatever the app
107
+ * assigned as one whole value. Both forms occur in ONE store, because an
108
+ * app's bulk add to a store of typed records seals its own pages, so a reader
109
+ * that took `packed[1]` for the tag would report every record those pages
110
+ * hold as having no type at all. */
112
111
  export declare function unpackRecordPair(packed: PackedRecord<unknown>): {
113
112
  tag: string;
114
113
  body: unknown;
@@ -199,7 +198,7 @@ export declare function decodePageRecords(page: unknown): PackedRecord<unknown>[
199
198
  /** Mean JSON bytes of a record body, over a stride sample of at most
200
199
  * `WIDTH_SAMPLE` records, which is what `recordsPerPage` sizes a page
201
200
  * against. `bodyOf` returns the value the caller will pack as the triple's
202
- * body: a codec's records carry a tag beside a body, and an app's map packs
201
+ * body: a typed record carries a tag beside a body, and an app's map packs
203
202
  * its whole stored value (`packWholeValue`), so each caller weighs the bytes
204
203
  * its own pages will hold.
205
204
  *
@@ -324,7 +323,7 @@ export declare function applyRecordPatches(base: unknown, patches: RecordPatch[]
324
323
  * value and as the `(tag, body)` pair split out of it, and return all three
325
324
  * after the fold.
326
325
  *
327
- * A patch names the record's own fields, which for a codec record are
326
+ * A patch names the record's own fields, which for a typed record are
328
327
  * `type` and `params` together, so a reader that walks tag and body
329
328
  * separately has to re-split the result. Both readers of a paged store
330
329
  * (the flattening one and the streaming one) resolve patches through this
@@ -1 +1 @@
1
- {"version":3,"file":"record-paging.d.ts","sourceRoot":"","sources":["../src/record-paging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-paging.d.ts","sourceRoot":"","sources":["../src/record-paging.ts"],"names":[],"mappings":"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"}
@@ -192,15 +192,14 @@ export const OVERLAY_PREFIX = `${RESERVED_KEY_PREFIX}r:`;
192
192
  const TOMBSTONE_PREFIX = `${RESERVED_KEY_PREFIX}x:`;
193
193
  /** Pack one stored value into a page triple. A `null` tag is what says the
194
194
  * body IS the record: an app's map holds whatever the app assigned, which has
195
- * no tag to split off. A codec's records arrive already split, and a codec
196
- * tag is a string, so the two forms cannot be confused however a codec names
197
- * its records. */
195
+ * no tag to split off. A typed record arrives already split, and its tag is a
196
+ * string, so the two forms cannot be confused whatever the tag says. */
198
197
  export function packWholeValue(key, value) {
199
198
  return [key, null, value];
200
199
  }
201
200
  /** Re-pack `value` in the same triple shape `packed` already uses, so a page
202
- * rewritten in place keeps the form its readers expect: a codec's records
203
- * stay a tag beside a body, and an app's stay one whole value. A streaming
201
+ * rewritten in place keeps the form its readers expect: a typed record stays
202
+ * a tag beside a body, and an app's stays one whole value. A streaming
204
203
  * read visits a page's triples without unpacking them, so a rewrite that
205
204
  * changed the shape would hand it the wrong half of the record. */
206
205
  export function repackRecord(packed, value) {
@@ -215,7 +214,7 @@ export function repackRecord(packed, value) {
215
214
  ];
216
215
  }
217
216
  /** The stored value a page triple carries: the value itself for a whole-value
218
- * record, else the `{ type, params }` pair a codec split it into. */
217
+ * record, else the `{ type, params }` pair a typed one was split into. */
219
218
  export function unpackRecord(packed) {
220
219
  if (packed[1] === null)
221
220
  return packed[2];
@@ -225,12 +224,12 @@ export function unpackRecord(packed) {
225
224
  * separately, or null when the triple packs a whole value that is not a
226
225
  * record.
227
226
  *
228
- * A page holds both forms: a codec packs a record it has already split into a
229
- * tag and a body, and a map an app writes packs whatever the app assigned as
230
- * one whole value. Both forms occur in ONE store, because an app's bulk add
231
- * to a codec's record map seals its own pages, so a reader that took
232
- * `packed[1]` for the tag would report every record those pages hold as
233
- * having no type at all. */
227
+ * A page holds both forms: a typed record is packed as the tag and body it
228
+ * was already split into, and a map an app writes packs whatever the app
229
+ * assigned as one whole value. Both forms occur in ONE store, because an
230
+ * app's bulk add to a store of typed records seals its own pages, so a reader
231
+ * that took `packed[1]` for the tag would report every record those pages
232
+ * hold as having no type at all. */
234
233
  export function unpackRecordPair(packed) {
235
234
  if (packed[1] !== null)
236
235
  return { tag: packed[1], body: packed[2] };
@@ -379,7 +378,7 @@ const WIDTH_SAMPLE = 256;
379
378
  /** Mean JSON bytes of a record body, over a stride sample of at most
380
379
  * `WIDTH_SAMPLE` records, which is what `recordsPerPage` sizes a page
381
380
  * against. `bodyOf` returns the value the caller will pack as the triple's
382
- * body: a codec's records carry a tag beside a body, and an app's map packs
381
+ * body: a typed record carries a tag beside a body, and an app's map packs
383
382
  * its whole stored value (`packWholeValue`), so each caller weighs the bytes
384
383
  * its own pages will hold.
385
384
  *
@@ -555,7 +554,7 @@ export function applyRecordPatches(base, patches) {
555
554
  * value and as the `(tag, body)` pair split out of it, and return all three
556
555
  * after the fold.
557
556
  *
558
- * A patch names the record's own fields, which for a codec record are
557
+ * A patch names the record's own fields, which for a typed record are
559
558
  * `type` and `params` together, so a reader that walks tag and body
560
559
  * separately has to re-split the result. Both readers of a paged store
561
560
  * (the flattening one and the streaming one) resolve patches through this
@@ -1 +1 @@
1
- {"version":3,"file":"record-paging.js","sourceRoot":"","sources":["../src/record-paging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"record-paging.js","sourceRoot":"","sources":["../src/record-paging.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,9 @@ export interface StoredList<T = unknown> extends ListHandle<T> {
19
19
  /**
20
20
  * The document as a serializer sees it: the same containers, readable whole.
21
21
  *
22
- * A `Document` satisfies this, which is what keeps a built-in codec and a
23
- * third-party one on one surface. The difference between them is where they
24
- * run, not what they are allowed to reach.
22
+ * A `Document` satisfies this, which is what keeps a serializer the platform
23
+ * ships and one an app registers on one surface. The difference between them
24
+ * is where they run, not what they are allowed to reach.
25
25
  */
26
26
  export interface StoredDocument {
27
27
  readonly id: string | null;
@@ -29,6 +29,15 @@ export interface AccountMenuDeps {
29
29
  signIn: () => void;
30
30
  signOut: () => void;
31
31
  dashboardBaseUrl: string;
32
+ getActingOrganization?: () => {
33
+ id: string;
34
+ name: string;
35
+ } | null;
36
+ subscribeActingOrganization?: (listener: (organization: {
37
+ id: string;
38
+ name: string;
39
+ } | null) => void) => () => void;
40
+ switchOrganization?: () => void;
32
41
  }
33
42
  export type SessionToolbarDeps = FileMenuDeps & DocumentTitleDeps & UndoRedoDeps & PresenceRosterDeps & AccountMenuDeps & VersionPreviewDeps;
34
43
  export interface SessionToolbarOptions {
@@ -1 +1 @@
1
- {"version":3,"file":"session-toolbar.d.ts","sourceRoot":"","sources":["../src/session-toolbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-toolbar.d.ts","sourceRoot":"","sources":["../src/session-toolbar.ts"],"names":[],"mappings":"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"}
@@ -90,7 +90,8 @@ const CSS = `
90
90
  margin:4px 2px; }
91
91
  /* [hidden] must beat the block rule above (the account menu swaps its body
92
92
  between signed-in actions and the guest's "Sign in"). */
93
- .b-pop button[hidden], .b-pop a[hidden], .b-pop .b-email[hidden] { display:none; }
93
+ .b-pop button[hidden], .b-pop a[hidden], .b-pop .b-email[hidden],
94
+ .b-pop .b-account-org[hidden] { display:none; }
94
95
  .b-identity { display:flex; flex-direction:column; align-items:flex-start;
95
96
  gap:1px; min-width:0; }
96
97
  /* Cancels the horizontal padding the title and location carry for their focus
@@ -157,9 +158,12 @@ const CSS = `
157
158
  /* minmax(0,1fr) so a long name or email ellipsizes instead of widening the
158
159
  menu: a grid item's default min-width is its content's intrinsic size. */
159
160
  .b-account-id { display:grid; grid-template-columns:minmax(0,1fr); gap:1px; min-width:0; }
160
- .b-account-name, .b-email { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
161
+ .b-account-name, .b-email, .b-account-org {
162
+ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
161
163
  .b-account-name { font-size:13px; font-weight:600; line-height:1.3; }
162
- .b-email { color:var(--brass-fg-muted); font-size:12px; line-height:1.3; }
164
+ /* The organization line qualifies the identity rather than naming it, so it
165
+ sits at the address's quiet tier and never competes with the name above. */
166
+ .b-email, .b-account-org { color:var(--brass-fg-muted); font-size:12px; line-height:1.3; }
163
167
  .b-account .b-pop button, .b-account .b-pop a {
164
168
  display:flex; align-items:center; gap:10px; font-size:13px; }
165
169
  .b-account .b-pop svg { flex:0 0 auto; color:var(--brass-fg-muted); }
@@ -202,6 +206,10 @@ const CSS = `
202
206
  .b-drive-source { font-size:12px; color:var(--brass-accent); text-decoration:none; white-space:nowrap; }
203
207
  .b-drive-source:hover { text-decoration:underline; }
204
208
  .b-drive-detail { margin:0; padding:0 10px 6px; font-size:12px; color:var(--brass-fg-muted); }
209
+ /* The drive rejecting a published file is the one line in this panel that
210
+ reports a problem, so it carries the danger tone rather than the muted one
211
+ every other line uses. */
212
+ .b-drive-unreadable { margin:0; padding:0 10px 6px; font-size:12px; color:var(--brass-danger, #b3261e); }
205
213
  /* Historical-version preview bar: a full-width strip the toolbar shows below
206
214
  the bar whenever the active doc is previewing an earlier version. The strip
207
215
  itself is the platform-served version-bar iframe (the SDK owns only this
@@ -784,6 +792,7 @@ function buildDriveSync(deps) {
784
792
  // document that was closed.
785
793
  let boundDoc = null;
786
794
  let statusOff = null;
795
+ let publishOff = null;
787
796
  // A publish runs on a server worker and reaches `synced` only after the
788
797
  // worker (and, on a file-roundtrip, the drive's importer) confirms. In that
789
798
  // gap the drive state still reads `ahead`, which would flash "unpublished
@@ -796,23 +805,105 @@ function buildDriveSync(deps) {
796
805
  let publishing = false;
797
806
  let publishError = false;
798
807
  let publishTimer = null;
808
+ // Set on a click, cleared by the next publish-state frame. Between the two,
809
+ // the held state describes the PREVIOUS attempt, and rendering it would
810
+ // report the last failure over the publish just started.
811
+ let publishStateStale = false;
799
812
  let currentStatus = null;
800
813
  const clearPublishing = () => {
801
814
  publishing = false;
815
+ // The stale mark is cleared with the hold it belongs to. It is otherwise
816
+ // cleared only by a publish-state frame, so a publish that draws none
817
+ // would leave the panel reading the target's resting sentence for the
818
+ // life of the document.
819
+ publishStateStale = false;
802
820
  if (publishTimer !== null) {
803
821
  clearTimeout(publishTimer);
804
822
  publishTimer = null;
805
823
  }
806
824
  };
825
+ // The panel for a document with no source item: the server's sentence about
826
+ // where the file lands, and the publish that puts it there. The first
827
+ // publish creates the artifact and makes the document its mirror, at which
828
+ // point the drive status arrives and the mirror panel above replaces this
829
+ // one.
830
+ const renderPublishOffer = (target) => {
831
+ root.hidden = false;
832
+ // A document the drive has never received is as far out of sync as one
833
+ // whose edits have not been published, so the icon carries the same
834
+ // attention an `ahead` document's does. What separates them is what the
835
+ // panel offers, not how much the reader is told to look.
836
+ root.classList.add('has-changes');
837
+ root.classList.remove('is-broken');
838
+ const state = publishStateStale ? null : (boundDoc?._publishState ?? null);
839
+ const inFlight = publishing || state?.publishing === true || target.publishing;
840
+ button.title = inFlight
841
+ ? 'Publishing...'
842
+ : state?.failed
843
+ ? `Publish to ${target.driveName} failed`
844
+ : `Publish to ${target.driveName}`;
845
+ const failed = !inFlight && (state?.failed === true || target.publishFailed === true);
846
+ const rows = [];
847
+ // One line, server-authored either way: the worker's phase copy while it
848
+ // runs, its account of the failure when it stopped, and the resting
849
+ // sentence otherwise. Marked as a problem when it is one, since nothing
850
+ // else in this panel distinguishes a document whose publish failed from
851
+ // one that has simply never published.
852
+ const p = el('p', failed ? 'b-drive-unreadable' : 'b-drive-detail');
853
+ p.textContent = inFlight
854
+ ? (state?.publishing === true ? (state.detail ?? 'Publishing...') : 'Publishing...')
855
+ : (state?.detail ?? target.detail);
856
+ rows.push(p);
857
+ const pub = el('button');
858
+ pub.type = 'button';
859
+ pub.disabled = inFlight;
860
+ pub.textContent = inFlight
861
+ ? 'Publishing...'
862
+ : publishError || failed
863
+ ? `Publish to ${target.driveName}, retry`
864
+ : `Publish to ${target.driveName}`;
865
+ pub.onclick = () => {
866
+ const doc = deps.session.document;
867
+ if (!doc)
868
+ return;
869
+ publishError = false;
870
+ publishing = true;
871
+ publishStateStale = true;
872
+ // The same safety net the mirror panel keeps: a publish that neither
873
+ // errors nor lands leaves the panel offering the action again rather
874
+ // than held forever.
875
+ publishTimer = setTimeout(() => {
876
+ clearPublishing();
877
+ render(currentStatus);
878
+ }, PUBLISH_HOLD_MS);
879
+ render(currentStatus);
880
+ void doc.pushToDrive().catch(() => {
881
+ clearPublishing();
882
+ publishError = true;
883
+ render(currentStatus);
884
+ });
885
+ };
886
+ rows.push(pub);
887
+ pop.replaceChildren(...rows);
888
+ };
807
889
  const render = (status) => {
808
890
  currentStatus = status;
809
- // Hidden only when the doc is not drive-linked.
891
+ // A document that mirrors nothing can still have somewhere to go: its
892
+ // project may be linked to a drive that takes it as a new file, which is
893
+ // what an upload into a linked project sits waiting for. Offer that
894
+ // publish here, so an app gets it by mounting this piece rather than by
895
+ // building a surface of its own.
810
896
  if (status === null) {
811
- root.hidden = true;
812
- menu.close();
813
- clearPublishing();
814
- root.classList.remove('has-changes', 'is-broken');
815
- pop.replaceChildren();
897
+ const target = boundDoc?._publishTarget ?? null;
898
+ if (target === null) {
899
+ root.hidden = true;
900
+ menu.close();
901
+ clearPublishing();
902
+ root.classList.remove('has-changes', 'is-broken');
903
+ pop.replaceChildren();
904
+ return;
905
+ }
906
+ renderPublishOffer(target);
816
907
  return;
817
908
  }
818
909
  // The publish settles once the doc actually reaches synced; drop the
@@ -874,6 +965,14 @@ function buildDriveSync(deps) {
874
965
  p.textContent = description;
875
966
  rows.push(p);
876
967
  }
968
+ // The drive could not read what the last publish delivered. Shown in the
969
+ // drive's own words, above the commands: the publish succeeded, so
970
+ // nothing else in this panel says anything is wrong.
971
+ if (status.sourceUnreadable) {
972
+ const warn = el('p', 'b-drive-unreadable');
973
+ warn.textContent = status.sourceUnreadable;
974
+ rows.push(warn);
975
+ }
877
976
  if (isPublishing) {
878
977
  // Held while the publish is in flight (a local click hold, or the doc's
879
978
  // pending work-status), until it reaches synced (see `isPublishing`).
@@ -884,8 +983,9 @@ function buildDriveSync(deps) {
884
983
  rows.push(pub);
885
984
  }
886
985
  else if (status.canPush) {
887
- // `canPush` already encodes two-way + not broken + local edits, so this
888
- // never offers a no-op publish.
986
+ // `canPush` already encodes two-way + not broken + local edits + a
987
+ // server-writable format, so this never offers a publish the server
988
+ // would refuse.
889
989
  const pub = el('button');
890
990
  pub.type = 'button';
891
991
  pub.textContent = publishError ? 'Publish failed, retry' : 'Publish changes';
@@ -931,6 +1031,8 @@ function buildDriveSync(deps) {
931
1031
  function bind() {
932
1032
  statusOff?.();
933
1033
  statusOff = null;
1034
+ publishOff?.();
1035
+ publishOff = null;
934
1036
  const doc = deps.session.document;
935
1037
  if (!doc) {
936
1038
  render(null);
@@ -941,6 +1043,18 @@ function buildDriveSync(deps) {
941
1043
  // started from any surface (the dashboard card, the app) flips it and the
942
1044
  // indicator holds "Publishing..." without a local click.
943
1045
  statusOff = doc.onDriveStatus(render);
1046
+ // The same signal for a document that mirrors nothing yet, which has no
1047
+ // drive status to carry it: its first publish is the one that creates the
1048
+ // artifact, and this is how its progress and its failure arrive.
1049
+ publishOff = doc._onPublishState(() => {
1050
+ publishStateStale = false;
1051
+ // A publish the server has finished with ends the local click hold:
1052
+ // holding "Publishing..." for the rest of it would report a push that
1053
+ // is over as one still running.
1054
+ if (!doc._publishState.publishing)
1055
+ clearPublishing();
1056
+ render(currentStatus);
1057
+ });
944
1058
  }
945
1059
  const onSession = () => {
946
1060
  const doc = deps.session.document;
@@ -956,6 +1070,7 @@ function buildDriveSync(deps) {
956
1070
  destroy() {
957
1071
  unsub();
958
1072
  statusOff?.();
1073
+ publishOff?.();
959
1074
  clearPublishing();
960
1075
  menu.destroy();
961
1076
  },
@@ -970,28 +1085,40 @@ function buildAccountMenu(deps) {
970
1085
  align: 'end',
971
1086
  });
972
1087
  // The menu opens on the identity it acts for: the avatar at reading size,
973
- // the display name, and the email under it. The name line drops out when the
974
- // user has none, leaving the email as the single identifying line.
1088
+ // the display name, the email under it, and the organization the app acts in
1089
+ // under that. The name line drops out when the user has none, leaving the
1090
+ // email as the single identifying line.
975
1091
  const head = el('div', 'b-account-head');
976
1092
  const headFace = buildAvatarFace();
977
1093
  const faceEl = el('span', 'b-account-face');
978
1094
  faceEl.append(...headFace.nodes);
979
1095
  const nameEl = el('div', 'b-account-name');
980
1096
  const emailEl = el('div', 'b-email');
1097
+ const orgEl = el('div', 'b-account-org');
981
1098
  const identity = el('div', 'b-account-id');
982
- identity.append(nameEl, emailEl);
1099
+ identity.append(nameEl, emailEl, orgEl);
983
1100
  head.append(faceEl, identity);
984
1101
  const headSep = el('hr', 'b-sep');
985
1102
  headSep.setAttribute('role', 'separator');
986
1103
  // Opens the dashboard in a new tab, so the user keeps the app open in the
987
- // current one. `/home` is the authenticated landing (resolves the active
988
- // org); the bare origin is the sign-in page.
1104
+ // current one, and lands in the organization the app is working in rather
1105
+ // than wherever the dashboard was left. `/home` is the authenticated
1106
+ // landing and stands in when the app is working in none.
989
1107
  const dashboardLink = el('a');
990
1108
  dashboardLink.append(strokeIcon('M14 3h7v7', 'M10 14 21 3', 'M21 14v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5'), 'Open Brass dashboard');
991
1109
  dashboardLink.href = `${deps.dashboardBaseUrl}/home`;
992
1110
  dashboardLink.target = '_blank';
993
1111
  dashboardLink.rel = 'noopener noreferrer';
994
1112
  dashboardLink.onclick = () => menu.close();
1113
+ // Sits directly above the dashboard link, so the organization the header
1114
+ // names and the action that changes it read as one block.
1115
+ const switchOrgBtn = el('button');
1116
+ switchOrgBtn.type = 'button';
1117
+ switchOrgBtn.append(strokeIcon('m17 2 4 4-4 4', 'M3 11v-1a4 4 0 0 1 4-4h14', 'm7 22-4-4 4-4', 'M21 13v1a4 4 0 0 1-4 4H3'), 'Switch organization...');
1118
+ switchOrgBtn.onclick = () => {
1119
+ menu.close();
1120
+ deps.switchOrganization?.();
1121
+ };
995
1122
  const signOutBtn = el('button');
996
1123
  signOutBtn.append(strokeIcon('M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4', 'm16 17 5-5-5-5', 'M21 12H9'), 'Sign out');
997
1124
  signOutBtn.onclick = () => {
@@ -1008,10 +1135,15 @@ function buildAccountMenu(deps) {
1008
1135
  menu.close();
1009
1136
  deps.signIn();
1010
1137
  };
1011
- menu.pop.append(head, headSep, dashboardLink, signOutBtn, signInBtn);
1138
+ menu.pop.append(head, headSep, switchOrgBtn, dashboardLink, signOutBtn, signInBtn);
1012
1139
  const triggerFace = buildAvatarFace();
1013
1140
  menu.trigger.append(...triggerFace.nodes);
1014
- const renderUser = (user) => {
1141
+ // The menu acts for a (user, organization) pair, and each half arrives on
1142
+ // its own listener, so both are held here and one render draws them.
1143
+ let currentUser = deps.getUser();
1144
+ let organization = deps.getActingOrganization?.() ?? null;
1145
+ const render = () => {
1146
+ const user = currentUser;
1015
1147
  triggerFace.render(user);
1016
1148
  headFace.render(user);
1017
1149
  nameEl.textContent = user?.display_name ?? '';
@@ -1029,13 +1161,40 @@ function buildAccountMenu(deps) {
1029
1161
  dashboardLink.hidden = !signedIn;
1030
1162
  signOutBtn.hidden = !signedIn;
1031
1163
  signInBtn.hidden = signedIn;
1164
+ // The organization line names what the app is acting in, so it is drawn
1165
+ // only when there is something to name: an app that has not needed an
1166
+ // organization yet has not resolved one, and resolving one to fill this
1167
+ // line is the boot-time question the platform refuses.
1168
+ const organizationName = signedIn ? (organization?.name ?? '') : '';
1169
+ orgEl.textContent = organizationName;
1170
+ orgEl.title = organizationName;
1171
+ orgEl.hidden = organizationName === '';
1172
+ dashboardLink.href =
1173
+ signedIn && organization
1174
+ ? `${deps.dashboardBaseUrl}/organizations/${encodeURIComponent(organization.id)}`
1175
+ : `${deps.dashboardBaseUrl}/home`;
1176
+ // Offered to every signed-in reader, including one the line has nothing
1177
+ // to name and one who belongs to a single organization. The surface
1178
+ // behind it both moves the app and creates an organization, so gating it
1179
+ // on already having somewhere else to go would withhold it from exactly
1180
+ // the person it is for; and an app reached by its own URL has resolved
1181
+ // nothing to name, which is the state a deliberate choice settles.
1182
+ switchOrgBtn.hidden = !signedIn || deps.switchOrganization === undefined;
1032
1183
  };
1033
- renderUser(deps.getUser());
1034
- const unsub = deps.onUserChange(renderUser);
1184
+ render();
1185
+ const unsub = deps.onUserChange((user) => {
1186
+ currentUser = user;
1187
+ render();
1188
+ });
1189
+ const unsubOrganization = deps.subscribeActingOrganization?.((next) => {
1190
+ organization = next;
1191
+ render();
1192
+ });
1035
1193
  return {
1036
1194
  root: menu.root,
1037
1195
  destroy() {
1038
1196
  unsub();
1197
+ unsubOrganization?.();
1039
1198
  menu.destroy();
1040
1199
  },
1041
1200
  };
@@ -1134,8 +1293,19 @@ function buildVersionPreview(deps) {
1134
1293
  // left it checked out would leave an app read-only with nothing to
1135
1294
  // clear it. A document pinned to its version has no head to return to
1136
1295
  // and keeps showing it; `dismissedAt` is what keeps the bar dismissed.
1296
+ // Once the return lands, the dismissal has nothing left to hold
1297
+ // against: the doc is live, and a LATER pick of the same version in
1298
+ // the history dialog is a fresh preview that must latch the bar (its
1299
+ // pick sets only `version`, so a stale `dismissedAt` equal to it would
1300
+ // otherwise leave the reader checked out, read-only, with no bar and
1301
+ // no exit).
1137
1302
  if (doc && doc.version !== null) {
1138
- void attempt(doc, () => doc.returnToHead()).catch(() => { });
1303
+ void attempt(doc, () => doc.returnToHead())
1304
+ .then(() => {
1305
+ if (session.document === doc)
1306
+ dismissedAt = undefined;
1307
+ })
1308
+ .catch(() => { });
1139
1309
  }
1140
1310
  hideBar();
1141
1311
  },