golem-ui 0.1.1

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 (150) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/dist/abi/define-component.d.ts +28 -0
  4. package/dist/abi/define-component.d.ts.map +1 -0
  5. package/dist/abi/docs.d.ts +104 -0
  6. package/dist/abi/docs.d.ts.map +1 -0
  7. package/dist/abi/error-card.d.ts +18 -0
  8. package/dist/abi/error-card.d.ts.map +1 -0
  9. package/dist/abi/fields.d.ts +71 -0
  10. package/dist/abi/fields.d.ts.map +1 -0
  11. package/dist/abi/index.d.ts +8 -0
  12. package/dist/abi/index.d.ts.map +1 -0
  13. package/dist/adapters/chat.d.ts +28 -0
  14. package/dist/adapters/chat.d.ts.map +1 -0
  15. package/dist/adapters/chat.docs.d.ts +3 -0
  16. package/dist/adapters/chat.docs.d.ts.map +1 -0
  17. package/dist/adapters/clock.d.ts +5 -0
  18. package/dist/adapters/clock.d.ts.map +1 -0
  19. package/dist/adapters/clock.docs.d.ts +3 -0
  20. package/dist/adapters/clock.docs.d.ts.map +1 -0
  21. package/dist/adapters/common.d.ts +3 -0
  22. package/dist/adapters/common.d.ts.map +1 -0
  23. package/dist/adapters/fake/chat.d.ts +13 -0
  24. package/dist/adapters/fake/chat.d.ts.map +1 -0
  25. package/dist/adapters/fake/clock.d.ts +4 -0
  26. package/dist/adapters/fake/clock.d.ts.map +1 -0
  27. package/dist/adapters/fake/emitter.d.ts +7 -0
  28. package/dist/adapters/fake/emitter.d.ts.map +1 -0
  29. package/dist/adapters/fake/files.d.ts +42 -0
  30. package/dist/adapters/fake/files.d.ts.map +1 -0
  31. package/dist/adapters/fake/identity.d.ts +24 -0
  32. package/dist/adapters/fake/identity.d.ts.map +1 -0
  33. package/dist/adapters/fake/index.d.ts +11 -0
  34. package/dist/adapters/fake/index.d.ts.map +1 -0
  35. package/dist/adapters/fake/navigation.d.ts +3 -0
  36. package/dist/adapters/fake/navigation.d.ts.map +1 -0
  37. package/dist/adapters/fake/records.d.ts +32 -0
  38. package/dist/adapters/fake/records.d.ts.map +1 -0
  39. package/dist/adapters/files.d.ts +59 -0
  40. package/dist/adapters/files.d.ts.map +1 -0
  41. package/dist/adapters/files.docs.d.ts +3 -0
  42. package/dist/adapters/files.docs.d.ts.map +1 -0
  43. package/dist/adapters/identity.d.ts +41 -0
  44. package/dist/adapters/identity.d.ts.map +1 -0
  45. package/dist/adapters/identity.docs.d.ts +3 -0
  46. package/dist/adapters/identity.docs.d.ts.map +1 -0
  47. package/dist/adapters/index.d.ts +10 -0
  48. package/dist/adapters/index.d.ts.map +1 -0
  49. package/dist/adapters/navigation.d.ts +11 -0
  50. package/dist/adapters/navigation.d.ts.map +1 -0
  51. package/dist/adapters/navigation.docs.d.ts +3 -0
  52. package/dist/adapters/navigation.docs.d.ts.map +1 -0
  53. package/dist/adapters/records.d.ts +99 -0
  54. package/dist/adapters/records.d.ts.map +1 -0
  55. package/dist/adapters/records.docs.d.ts +3 -0
  56. package/dist/adapters/records.docs.d.ts.map +1 -0
  57. package/dist/components/Auth/Auth.config.d.ts +33 -0
  58. package/dist/components/Auth/Auth.config.d.ts.map +1 -0
  59. package/dist/components/Auth/Auth.d.ts +146 -0
  60. package/dist/components/Auth/Auth.d.ts.map +1 -0
  61. package/dist/components/Auth/Auth.docs.d.ts +3 -0
  62. package/dist/components/Auth/Auth.docs.d.ts.map +1 -0
  63. package/dist/components/Auth/index.d.ts +6 -0
  64. package/dist/components/Auth/index.d.ts.map +1 -0
  65. package/dist/components/Chat/Chat.config.d.ts +13 -0
  66. package/dist/components/Chat/Chat.config.d.ts.map +1 -0
  67. package/dist/components/Chat/Chat.d.ts +34 -0
  68. package/dist/components/Chat/Chat.d.ts.map +1 -0
  69. package/dist/components/Chat/Chat.docs.d.ts +3 -0
  70. package/dist/components/Chat/Chat.docs.d.ts.map +1 -0
  71. package/dist/components/Chat/index.d.ts +6 -0
  72. package/dist/components/Chat/index.d.ts.map +1 -0
  73. package/dist/components/Editor/Editor.config.d.ts +21 -0
  74. package/dist/components/Editor/Editor.config.d.ts.map +1 -0
  75. package/dist/components/Editor/Editor.d.ts +46 -0
  76. package/dist/components/Editor/Editor.d.ts.map +1 -0
  77. package/dist/components/Editor/Editor.docs.d.ts +3 -0
  78. package/dist/components/Editor/Editor.docs.d.ts.map +1 -0
  79. package/dist/components/Editor/index.d.ts +6 -0
  80. package/dist/components/Editor/index.d.ts.map +1 -0
  81. package/dist/components/Editor/source.d.ts +29 -0
  82. package/dist/components/Editor/source.d.ts.map +1 -0
  83. package/dist/components/RecordForm/RecordForm.config.d.ts +52 -0
  84. package/dist/components/RecordForm/RecordForm.config.d.ts.map +1 -0
  85. package/dist/components/RecordForm/RecordForm.d.ts +96 -0
  86. package/dist/components/RecordForm/RecordForm.d.ts.map +1 -0
  87. package/dist/components/RecordForm/RecordForm.docs.d.ts +3 -0
  88. package/dist/components/RecordForm/RecordForm.docs.d.ts.map +1 -0
  89. package/dist/components/RecordForm/index.d.ts +6 -0
  90. package/dist/components/RecordForm/index.d.ts.map +1 -0
  91. package/dist/components/RecordForm/values.d.ts +26 -0
  92. package/dist/components/RecordForm/values.d.ts.map +1 -0
  93. package/dist/components/RecordList/RecordList.config.d.ts +43 -0
  94. package/dist/components/RecordList/RecordList.config.d.ts.map +1 -0
  95. package/dist/components/RecordList/RecordList.d.ts +76 -0
  96. package/dist/components/RecordList/RecordList.d.ts.map +1 -0
  97. package/dist/components/RecordList/RecordList.docs.d.ts +3 -0
  98. package/dist/components/RecordList/RecordList.docs.d.ts.map +1 -0
  99. package/dist/components/RecordList/index.d.ts +6 -0
  100. package/dist/components/RecordList/index.d.ts.map +1 -0
  101. package/dist/components/Report/Report.config.d.ts +23 -0
  102. package/dist/components/Report/Report.config.d.ts.map +1 -0
  103. package/dist/components/Report/Report.d.ts +53 -0
  104. package/dist/components/Report/Report.d.ts.map +1 -0
  105. package/dist/components/Report/Report.docs.d.ts +3 -0
  106. package/dist/components/Report/Report.docs.d.ts.map +1 -0
  107. package/dist/components/Report/index.d.ts +6 -0
  108. package/dist/components/Report/index.d.ts.map +1 -0
  109. package/dist/components/Shell/Shell.config.d.ts +13 -0
  110. package/dist/components/Shell/Shell.config.d.ts.map +1 -0
  111. package/dist/components/Shell/Shell.d.ts +35 -0
  112. package/dist/components/Shell/Shell.d.ts.map +1 -0
  113. package/dist/components/Shell/Shell.docs.d.ts +3 -0
  114. package/dist/components/Shell/Shell.docs.d.ts.map +1 -0
  115. package/dist/components/Shell/index.d.ts +6 -0
  116. package/dist/components/Shell/index.d.ts.map +1 -0
  117. package/dist/components/Timeline/Timeline.config.d.ts +48 -0
  118. package/dist/components/Timeline/Timeline.config.d.ts.map +1 -0
  119. package/dist/components/Timeline/Timeline.d.ts +62 -0
  120. package/dist/components/Timeline/Timeline.d.ts.map +1 -0
  121. package/dist/components/Timeline/Timeline.docs.d.ts +3 -0
  122. package/dist/components/Timeline/Timeline.docs.d.ts.map +1 -0
  123. package/dist/components/Timeline/index.d.ts +6 -0
  124. package/dist/components/Timeline/index.d.ts.map +1 -0
  125. package/dist/components/Upload/Upload.config.d.ts +47 -0
  126. package/dist/components/Upload/Upload.config.d.ts.map +1 -0
  127. package/dist/components/Upload/Upload.d.ts +80 -0
  128. package/dist/components/Upload/Upload.d.ts.map +1 -0
  129. package/dist/components/Upload/Upload.docs.d.ts +3 -0
  130. package/dist/components/Upload/Upload.docs.d.ts.map +1 -0
  131. package/dist/components/Upload/index.d.ts +6 -0
  132. package/dist/components/Upload/index.d.ts.map +1 -0
  133. package/dist/docs.d.ts +23 -0
  134. package/dist/docs.d.ts.map +1 -0
  135. package/dist/golem-ui.css +1 -0
  136. package/dist/index.d.ts +14 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +5237 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/lib/diff3.d.ts +41 -0
  141. package/dist/lib/diff3.d.ts.map +1 -0
  142. package/dist/lib/format.d.ts +19 -0
  143. package/dist/lib/format.d.ts.map +1 -0
  144. package/dist/lib/locale.d.ts +13 -0
  145. package/dist/lib/locale.d.ts.map +1 -0
  146. package/dist/lib/markdown.d.ts +15 -0
  147. package/dist/lib/markdown.d.ts.map +1 -0
  148. package/dist/lib/use-container-width.d.ts +11 -0
  149. package/dist/lib/use-container-width.d.ts.map +1 -0
  150. package/package.json +103 -0
@@ -0,0 +1,11 @@
1
+ export { fakeRecords } from './records';
2
+ export type { FakeRecords, FakeRecordsOptions, FakeRow } from './records';
3
+ export { fakeFiles, placeholderImage } from './files';
4
+ export type { FakeFileSeed, FakeFilesOptions } from './files';
5
+ export { fakeIdentity, fakeUser } from './identity';
6
+ export type { FakeIdentityOptions } from './identity';
7
+ export { fakeChat } from './chat';
8
+ export type { FakeChatOptions } from './chat';
9
+ export { fakeClock } from './clock';
10
+ export { fakeNavigation } from './navigation';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/fake/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AACvC,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzE,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACrD,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACjC,YAAY,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { NavigationAdapter, Route } from '../navigation';
2
+ export declare function fakeNavigation(initial?: Route): NavigationAdapter;
3
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/adapters/fake/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAG7D,wBAAgB,cAAc,CAAC,OAAO,GAAE,KAAiC,GAAG,iBAAiB,CAY5F"}
@@ -0,0 +1,32 @@
1
+ import { type RecordsAdapter } from '../records';
2
+ export type FakeRow = Record<string, unknown> & {
3
+ id: string;
4
+ };
5
+ /**
6
+ * The fake's store, on top of the adapter interface. `insert` is not part of `RecordsAdapter`: it
7
+ * is the synchronous way a story or a test puts a row in without going through `create`, so a
8
+ * seeded collection can grow while a refusal is switched on.
9
+ */
10
+ export interface FakeRecords extends RecordsAdapter {
11
+ insert(collection: string, row: Record<string, unknown>): FakeRow;
12
+ }
13
+ export interface FakeRecordsOptions {
14
+ /**
15
+ * Makes every `create` and `update` reject, naming this field. It is how a story shows what an
16
+ * adapter's refusal looks like landing under one control.
17
+ */
18
+ refuse?: {
19
+ field: string;
20
+ message: string;
21
+ };
22
+ }
23
+ /**
24
+ * An in-memory `Records` adapter, seeded per collection. Filtering, sorting, searching and paging
25
+ * all happen over the seeded rows, so a story runs the same code path a server would.
26
+ *
27
+ * The cursor is an offset into the matching rows. That is what makes `nextCursor` honest and it is
28
+ * also its limit: a row inserted while the reader is on page three shifts the pages under them,
29
+ * which is why a live update re-lists from the start rather than paging on.
30
+ */
31
+ export declare function fakeRecords(seed?: Record<string, Record<string, unknown>[]>, options?: FakeRecordsOptions): FakeRecords;
32
+ //# sourceMappingURL=records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../../src/adapters/fake/records.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,cAAc,EAEpB,MAAM,YAAY,CAAA;AAGnB,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9D;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,cAAc;IACjD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAA;CAClE;AAED,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAwBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CACzB,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM,EACpD,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAgHb"}
@@ -0,0 +1,59 @@
1
+ import type { Unsubscribe } from './common';
2
+ /**
3
+ * A stored file, as everything downstream refers to it. Plain JSON: an agent can put one in a
4
+ * record, a chat message or a config and it survives the round trip. It carries no bytes — the
5
+ * bytes are behind `url`.
6
+ */
7
+ export interface FileRef {
8
+ id: string;
9
+ /** The name it was uploaded under, extension included. */
10
+ name: string;
11
+ /** The MIME type it is stored as, e.g. `image/jpeg`. A gallery reads it to know it has a photo. */
12
+ contentType: string;
13
+ /** Bytes. */
14
+ size: number;
15
+ /** The folder it lives in: the same string `upload` and `list` are given. */
16
+ folder: string;
17
+ /** The instant the store accepted it, as a full ISO datetime. */
18
+ uploadedAt: string;
19
+ /** One line the reader wrote under it. Absent until something captions it. */
20
+ caption?: string;
21
+ }
22
+ export interface UploadOptions {
23
+ /** Where the file lands, and where `list` and `subscribe` will find it again. */
24
+ folder: string;
25
+ /**
26
+ * Called as the bytes go up, with the fraction done between 0 and 1. A store that cannot report
27
+ * progress calls it once with 1 rather than never — the caller draws a bar either way.
28
+ */
29
+ onProgress?: (fraction: number) => void;
30
+ }
31
+ /**
32
+ * A stored file, or just its id. A caller that kept only the id — an attachment on a record, say —
33
+ * can still open and delete the file without having the whole ref to hand.
34
+ */
35
+ export type FileHandle = FileRef | string;
36
+ export declare const fileId: (ref: FileHandle) => string;
37
+ /**
38
+ * Files is a folder of blobs and the four things you do to one: put it there, open it, caption it,
39
+ * take it away. Every method that can be refused rejects with an `Error` whose `message` is shown
40
+ * to the reader as it is written.
41
+ */
42
+ export interface FilesAdapter {
43
+ upload(file: File, options: UploadOptions): Promise<FileRef>;
44
+ /**
45
+ * A URL to open. `thumbnail` asks for a small one; a store that keeps no thumbnail returns the
46
+ * full URL, so a caller never has to ask whether it has one.
47
+ */
48
+ url(ref: FileHandle, options?: {
49
+ thumbnail?: boolean;
50
+ }): Promise<string>;
51
+ remove(ref: FileHandle): Promise<void>;
52
+ /** Everything in the folder, newest first. */
53
+ list(folder: string): Promise<FileRef[]>;
54
+ /** Writes the caption on a stored file and returns the whole ref back. */
55
+ caption(ref: FileHandle, caption: string): Promise<FileRef>;
56
+ /** Called with no argument whenever the folder changed; the caller re-lists. */
57
+ subscribe(folder: string, listener: () => void): Unsubscribe;
58
+ }
59
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/adapters/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C;;;;GAIG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAA;IACZ,mGAAmG;IACnG,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,6EAA6E;IAC7E,MAAM,EAAE,MAAM,CAAA;IACd,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAA;IAClB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;CACxC;AAED;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,CAAA;AAEzC,eAAO,MAAM,MAAM,GAAI,KAAK,UAAU,KAAG,MAAkD,CAAA;AAE3F;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC5D;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACxE,MAAM,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtC,8CAA8C;IAC9C,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IACxC,0EAA0E;IAC1E,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC3D,gFAAgF;IAChF,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,WAAW,CAAA;CAC7D"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterDocs } from '../abi';
2
+ export declare const filesAdapterDocs: AdapterDocs;
3
+ //# sourceMappingURL=files.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.docs.d.ts","sourceRoot":"","sources":["../../src/adapters/files.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,eAAO,MAAM,gBAAgB,EAAE,WAoG9B,CAAA"}
@@ -0,0 +1,41 @@
1
+ import type { Unsubscribe } from './common';
2
+ export interface User {
3
+ id: string;
4
+ name: string;
5
+ email?: string;
6
+ /** Every role this person holds. A guard lets them through when one of these is on its list. */
7
+ roles: string[];
8
+ }
9
+ /** What creating an account needs. */
10
+ export interface SignUpInput {
11
+ name: string;
12
+ email: string;
13
+ /** Asked for in `password` mode and absent in `code` mode. */
14
+ password?: string;
15
+ /** The token from an invite link, when the reader arrived on one. It decides the new role. */
16
+ invite?: string;
17
+ }
18
+ /**
19
+ * Identity is who is here, how they got here, and who else may come in.
20
+ *
21
+ * Every method that can be refused rejects with an `Error` whose `message` is shown to the reader
22
+ * as it is written — so write those messages for a person: "That password is not right."
23
+ */
24
+ export interface IdentityAdapter {
25
+ currentUser(): Promise<User | null>;
26
+ /** Called with the new user on every sign-in, sign-up and sign-out; `null` means signed out. */
27
+ subscribe(listener: (user: User | null) => void): Unsubscribe;
28
+ signIn(email: string, password: string): Promise<User>;
29
+ signUp(input: SignUpInput): Promise<User>;
30
+ /** Sends a one-time code to the address. `code` mode only. */
31
+ requestCode(email: string): Promise<void>;
32
+ verifyCode(email: string, code: string): Promise<User>;
33
+ signOut(): Promise<void>;
34
+ listMembers(): Promise<User[]>;
35
+ /** Mints an invite for that role and returns the URL to hand out. */
36
+ invite(role: string): Promise<string>;
37
+ removeMember(userId: string): Promise<void>;
38
+ /** Replaces the member's roles with this one. */
39
+ setRole(userId: string, role: string): Promise<void>;
40
+ }
41
+ //# sourceMappingURL=identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/adapters/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,gGAAgG;IAChG,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,IAAI,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACnC,gGAAgG;IAChG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,WAAW,CAAA;IAC7D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,8DAA8D;IAC9D,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACtD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACxB,WAAW,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IAC9B,qEAAqE;IACrE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3C,iDAAiD;IACjD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrD"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterDocs } from '../abi';
2
+ export declare const identityAdapterDocs: AdapterDocs;
3
+ //# sourceMappingURL=identity.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.docs.d.ts","sourceRoot":"","sources":["../../src/adapters/identity.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,eAAO,MAAM,mBAAmB,EAAE,WA0HjC,CAAA"}
@@ -0,0 +1,10 @@
1
+ export type { Unsubscribe } from './common';
2
+ export { RecordRefusedError, VersionConflictError, VERSION_FIELD, conflictingRecord, refusedFields, } from './records';
3
+ export type { RecordsAdapter, RecordQuery, RecordPage, FilterValue, FieldRefusal, UpdateOptions, } from './records';
4
+ export { fileId } from './files';
5
+ export type { FileHandle, FileRef, FilesAdapter, UploadOptions } from './files';
6
+ export type { IdentityAdapter, SignUpInput, User } from './identity';
7
+ export type { ChatAdapter, ChatAttachment, ChatMessage } from './chat';
8
+ export type { ClockAdapter } from './clock';
9
+ export type { NavigationAdapter, Route } from './navigation';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAC3C,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,YAAY,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAC/E,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACpE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAC3C,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,11 @@
1
+ import type { Unsubscribe } from './common';
2
+ export interface Route {
3
+ path: string;
4
+ params: Record<string, string>;
5
+ }
6
+ export interface NavigationAdapter {
7
+ current(): Route;
8
+ go(path: string): void;
9
+ subscribe(listener: (route: Route) => void): Unsubscribe;
10
+ }
11
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/adapters/navigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,IAAI,KAAK,CAAA;IAChB,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,WAAW,CAAA;CACzD"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterDocs } from '../abi';
2
+ export declare const navigationAdapterDocs: AdapterDocs;
3
+ //# sourceMappingURL=navigation.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.docs.d.ts","sourceRoot":"","sources":["../../src/adapters/navigation.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,eAAO,MAAM,qBAAqB,EAAE,WA4DnC,CAAA"}
@@ -0,0 +1,99 @@
1
+ import type { Unsubscribe } from './common';
2
+ /**
3
+ * One value a filter matches, or a list of them meaning "any of these". Arrays are how a scoped
4
+ * list says `status is waiting or in progress` without a query language.
5
+ */
6
+ export type FilterValue = string | number | boolean | null | Array<string | number | boolean | null>;
7
+ export interface RecordQuery {
8
+ /** Field-by-field equality. A row matches when every entry matches. */
9
+ filter?: Record<string, FilterValue>;
10
+ sort?: {
11
+ field: string;
12
+ direction: 'asc' | 'desc';
13
+ };
14
+ /** Substring match, case-insensitive, against the listed fields only. */
15
+ search?: {
16
+ text: string;
17
+ fields: string[];
18
+ };
19
+ /** `nextCursor` from the previous page, or absent for the first one. */
20
+ cursor?: string | null;
21
+ limit?: number;
22
+ }
23
+ export interface RecordPage<T> {
24
+ rows: T[];
25
+ /** Pass back as `cursor` for the next page. `null` means this was the last one. */
26
+ nextCursor: string | null;
27
+ }
28
+ /** One field the write was refused over, and the sentence the reader sees under that control. */
29
+ export interface FieldRefusal {
30
+ /** The field `key`, as the component's config spells it. */
31
+ field: string;
32
+ /** Written for a person: "A quote over $500 needs the owner's sign-off." */
33
+ message: string;
34
+ }
35
+ /**
36
+ * A write the adapter refused for reasons only it knows — a uniqueness clash, a business rule, a
37
+ * server-side validator. Naming the fields is what lets a form put the sentence under the right
38
+ * control instead of at the top of the page.
39
+ */
40
+ export declare class RecordRefusedError extends Error {
41
+ readonly fields: FieldRefusal[];
42
+ constructor(message: string, fields?: FieldRefusal[]);
43
+ }
44
+ /**
45
+ * Reads the refusal out of anything thrown, by shape rather than by class: an adapter that crosses
46
+ * a bundle boundary, or one that never imported this module, still gets its fields honoured.
47
+ * Returns `null` for a rejection that names no field, which a form shows as one line instead.
48
+ */
49
+ export declare function refusedFields(error: unknown): FieldRefusal[] | null;
50
+ /**
51
+ * What a writer knew about the row when it started writing. A store that is handed this refuses the
52
+ * write rather than letting the last writer win, which is what makes two writers on one document —
53
+ * a person and an agent — safe.
54
+ */
55
+ export interface UpdateOptions {
56
+ /** The value the writer read out of `versionField` before it began editing. */
57
+ expectedVersion: number;
58
+ /** The field the version lives on. */
59
+ versionField?: string;
60
+ }
61
+ /** The default `versionField`, so a caller with a plainly named field passes only the number. */
62
+ export declare const VERSION_FIELD = "version";
63
+ /**
64
+ * An `update` the store refused because the row moved on since the writer read it. It carries the
65
+ * row as it stands now, so the caller can merge against it without a second round trip.
66
+ */
67
+ export declare class VersionConflictError extends Error {
68
+ readonly current: Record<string, unknown> | null;
69
+ constructor(message: string, current?: Record<string, unknown> | null);
70
+ }
71
+ /**
72
+ * Reads the current row out of anything thrown, by shape rather than by class — the same reason
73
+ * `refusedFields` does. Returns `null` for a rejection that is not a version conflict, which the
74
+ * caller shows as an error instead of merging.
75
+ */
76
+ export declare function conflictingRecord(error: unknown): Record<string, unknown> | null;
77
+ /**
78
+ * Records is a collection of rows and the four writes that change one.
79
+ *
80
+ * Every method that can be refused rejects with an `Error` whose `message` is shown to the reader
81
+ * as it is written. Throw a `RecordRefusedError` when the refusal belongs to particular fields, and
82
+ * a `VersionConflictError` when an `update` carrying `expectedVersion` arrived too late.
83
+ */
84
+ export interface RecordsAdapter {
85
+ list<T>(collection: string, query?: RecordQuery): Promise<RecordPage<T>>;
86
+ /** One row by id, or `null` when the collection has no such row. */
87
+ get<T>(collection: string, id: string): Promise<T | null>;
88
+ /** Returns the stored row, including whatever id the store minted for it. */
89
+ create<T>(collection: string, data: Record<string, unknown>): Promise<T>;
90
+ /**
91
+ * Merges the patch into the stored row and returns the whole row back. With `options`, the write
92
+ * is refused with a `VersionConflictError` when the row has moved on since the writer read it.
93
+ */
94
+ update<T>(collection: string, id: string, patch: Record<string, unknown>, options?: UpdateOptions): Promise<T>;
95
+ remove(collection: string, id: string): Promise<void>;
96
+ /** Called with no argument whenever the collection changed; the caller re-lists. */
97
+ subscribe(collection: string, listener: () => void): Unsubscribe;
98
+ }
99
+ //# sourceMappingURL=records.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.d.ts","sourceRoot":"","sources":["../../src/adapters/records.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { AdapterDocs } from '../abi';
2
+ export declare const recordsAdapterDocs: AdapterDocs;
3
+ //# sourceMappingURL=records.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"records.docs.d.ts","sourceRoot":"","sources":["../../src/adapters/records.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAEzC,eAAO,MAAM,kBAAkB,EAAE,WA2GhC,CAAA"}
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ declare const roleSchema: z.ZodObject<{
3
+ id: z.ZodString;
4
+ label: z.ZodString;
5
+ manages: z.ZodDefault<z.ZodBoolean>;
6
+ }, z.core.$strict>;
7
+ export declare const authConfigSchema: z.ZodObject<{
8
+ workspaceName: z.ZodString;
9
+ mode: z.ZodDefault<z.ZodEnum<{
10
+ code: "code";
11
+ password: "password";
12
+ }>>;
13
+ allowSignUp: z.ZodDefault<z.ZodBoolean>;
14
+ inviteOnly: z.ZodDefault<z.ZodBoolean>;
15
+ roles: z.ZodPrefault<z.ZodArray<z.ZodObject<{
16
+ id: z.ZodString;
17
+ label: z.ZodString;
18
+ manages: z.ZodDefault<z.ZodBoolean>;
19
+ }, z.core.$strict>>>;
20
+ copy: z.ZodPrefault<z.ZodObject<{
21
+ signInTitle: z.ZodDefault<z.ZodString>;
22
+ signUpTitle: z.ZodDefault<z.ZodString>;
23
+ hint: z.ZodDefault<z.ZodString>;
24
+ submit: z.ZodDefault<z.ZodString>;
25
+ membersTitle: z.ZodDefault<z.ZodString>;
26
+ denied: z.ZodDefault<z.ZodString>;
27
+ }, z.core.$strict>>;
28
+ }, z.core.$strict>;
29
+ export type AuthConfig = z.output<typeof authConfigSchema>;
30
+ export type AuthConfigInput = z.input<typeof authConfigSchema>;
31
+ export type AuthRole = z.output<typeof roleSchema>;
32
+ export {};
33
+ //# sourceMappingURL=Auth.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.config.d.ts","sourceRoot":"","sources":["../../../src/components/Auth/Auth.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,QAAA,MAAM,UAAU;;;;kBAML,CAAA;AAaX,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;kBA0ClB,CAAA;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,UAAU,CAAC,CAAA"}
@@ -0,0 +1,146 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type GolemProps } from '../../abi';
3
+ import type { IdentityAdapter, NavigationAdapter } from '../../adapters';
4
+ export interface AuthAdapters {
5
+ identity: IdentityAdapter;
6
+ navigation: NavigationAdapter;
7
+ }
8
+ export interface AuthGuardSlots {
9
+ /** Roles allowed through. Empty — or left out — means any signed-in person. */
10
+ roles?: string[];
11
+ /** What the allowed reader sees. */
12
+ children?: ReactNode;
13
+ }
14
+ /**
15
+ * Everything an app needs around identity. `Auth` is the screen — sign in when nobody is signed in,
16
+ * the member list when someone is; `Auth.Guard` wraps what only certain roles may see; and
17
+ * `Auth.AccountMenu` is the name-and-sign-out control a top bar hosts.
18
+ */
19
+ export declare const Auth: import("react").FunctionComponent<GolemProps<{
20
+ workspaceName: string;
21
+ mode?: "code" | "password" | undefined;
22
+ allowSignUp?: boolean | undefined;
23
+ inviteOnly?: boolean | undefined;
24
+ roles?: {
25
+ id: string;
26
+ label: string;
27
+ manages?: boolean | undefined;
28
+ }[] | undefined;
29
+ copy?: {
30
+ signInTitle?: string | undefined;
31
+ signUpTitle?: string | undefined;
32
+ hint?: string | undefined;
33
+ submit?: string | undefined;
34
+ membersTitle?: string | undefined;
35
+ denied?: string | undefined;
36
+ } | undefined;
37
+ }, AuthAdapters, object>> & {
38
+ schema: import("zod").ZodObject<{
39
+ workspaceName: import("zod").ZodString;
40
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
41
+ code: "code";
42
+ password: "password";
43
+ }>>;
44
+ allowSignUp: import("zod").ZodDefault<import("zod").ZodBoolean>;
45
+ inviteOnly: import("zod").ZodDefault<import("zod").ZodBoolean>;
46
+ roles: import("zod").ZodPrefault<import("zod").ZodArray<import("zod").ZodObject<{
47
+ id: import("zod").ZodString;
48
+ label: import("zod").ZodString;
49
+ manages: import("zod").ZodDefault<import("zod").ZodBoolean>;
50
+ }, import("zod/v4/core").$strict>>>;
51
+ copy: import("zod").ZodPrefault<import("zod").ZodObject<{
52
+ signInTitle: import("zod").ZodDefault<import("zod").ZodString>;
53
+ signUpTitle: import("zod").ZodDefault<import("zod").ZodString>;
54
+ hint: import("zod").ZodDefault<import("zod").ZodString>;
55
+ submit: import("zod").ZodDefault<import("zod").ZodString>;
56
+ membersTitle: import("zod").ZodDefault<import("zod").ZodString>;
57
+ denied: import("zod").ZodDefault<import("zod").ZodString>;
58
+ }, import("zod/v4/core").$strict>>;
59
+ }, import("zod/v4/core").$strict>;
60
+ } & {
61
+ Guard: import("react").FunctionComponent<GolemProps<{
62
+ workspaceName: string;
63
+ mode?: "code" | "password" | undefined;
64
+ allowSignUp?: boolean | undefined;
65
+ inviteOnly?: boolean | undefined;
66
+ roles?: {
67
+ id: string;
68
+ label: string;
69
+ manages?: boolean | undefined;
70
+ }[] | undefined;
71
+ copy?: {
72
+ signInTitle?: string | undefined;
73
+ signUpTitle?: string | undefined;
74
+ hint?: string | undefined;
75
+ submit?: string | undefined;
76
+ membersTitle?: string | undefined;
77
+ denied?: string | undefined;
78
+ } | undefined;
79
+ }, AuthAdapters, AuthGuardSlots>> & {
80
+ schema: import("zod").ZodObject<{
81
+ workspaceName: import("zod").ZodString;
82
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
83
+ code: "code";
84
+ password: "password";
85
+ }>>;
86
+ allowSignUp: import("zod").ZodDefault<import("zod").ZodBoolean>;
87
+ inviteOnly: import("zod").ZodDefault<import("zod").ZodBoolean>;
88
+ roles: import("zod").ZodPrefault<import("zod").ZodArray<import("zod").ZodObject<{
89
+ id: import("zod").ZodString;
90
+ label: import("zod").ZodString;
91
+ manages: import("zod").ZodDefault<import("zod").ZodBoolean>;
92
+ }, import("zod/v4/core").$strict>>>;
93
+ copy: import("zod").ZodPrefault<import("zod").ZodObject<{
94
+ signInTitle: import("zod").ZodDefault<import("zod").ZodString>;
95
+ signUpTitle: import("zod").ZodDefault<import("zod").ZodString>;
96
+ hint: import("zod").ZodDefault<import("zod").ZodString>;
97
+ submit: import("zod").ZodDefault<import("zod").ZodString>;
98
+ membersTitle: import("zod").ZodDefault<import("zod").ZodString>;
99
+ denied: import("zod").ZodDefault<import("zod").ZodString>;
100
+ }, import("zod/v4/core").$strict>>;
101
+ }, import("zod/v4/core").$strict>;
102
+ };
103
+ AccountMenu: import("react").FunctionComponent<GolemProps<{
104
+ workspaceName: string;
105
+ mode?: "code" | "password" | undefined;
106
+ allowSignUp?: boolean | undefined;
107
+ inviteOnly?: boolean | undefined;
108
+ roles?: {
109
+ id: string;
110
+ label: string;
111
+ manages?: boolean | undefined;
112
+ }[] | undefined;
113
+ copy?: {
114
+ signInTitle?: string | undefined;
115
+ signUpTitle?: string | undefined;
116
+ hint?: string | undefined;
117
+ submit?: string | undefined;
118
+ membersTitle?: string | undefined;
119
+ denied?: string | undefined;
120
+ } | undefined;
121
+ }, AuthAdapters, object>> & {
122
+ schema: import("zod").ZodObject<{
123
+ workspaceName: import("zod").ZodString;
124
+ mode: import("zod").ZodDefault<import("zod").ZodEnum<{
125
+ code: "code";
126
+ password: "password";
127
+ }>>;
128
+ allowSignUp: import("zod").ZodDefault<import("zod").ZodBoolean>;
129
+ inviteOnly: import("zod").ZodDefault<import("zod").ZodBoolean>;
130
+ roles: import("zod").ZodPrefault<import("zod").ZodArray<import("zod").ZodObject<{
131
+ id: import("zod").ZodString;
132
+ label: import("zod").ZodString;
133
+ manages: import("zod").ZodDefault<import("zod").ZodBoolean>;
134
+ }, import("zod/v4/core").$strict>>>;
135
+ copy: import("zod").ZodPrefault<import("zod").ZodObject<{
136
+ signInTitle: import("zod").ZodDefault<import("zod").ZodString>;
137
+ signUpTitle: import("zod").ZodDefault<import("zod").ZodString>;
138
+ hint: import("zod").ZodDefault<import("zod").ZodString>;
139
+ submit: import("zod").ZodDefault<import("zod").ZodString>;
140
+ membersTitle: import("zod").ZodDefault<import("zod").ZodString>;
141
+ denied: import("zod").ZodDefault<import("zod").ZodString>;
142
+ }, import("zod/v4/core").$strict>>;
143
+ }, import("zod/v4/core").$strict>;
144
+ };
145
+ };
146
+ //# sourceMappingURL=Auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.d.ts","sourceRoot":"","sources":["../../../src/components/Auth/Auth.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAQ,MAAM,gBAAgB,CAAA;AAG9E,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,eAAe,CAAA;IACzB,UAAU,EAAE,iBAAiB,CAAA;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAieD;;;;GAIG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAuD,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentDocs } from '../../abi';
2
+ export declare const authDocs: ComponentDocs;
3
+ //# sourceMappingURL=Auth.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Auth.docs.d.ts","sourceRoot":"","sources":["../../../src/components/Auth/Auth.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,eAAO,MAAM,QAAQ,EAAE,aA8HtB,CAAA"}
@@ -0,0 +1,6 @@
1
+ export { Auth } from './Auth';
2
+ export type { AuthAdapters, AuthGuardSlots } from './Auth';
3
+ export { authConfigSchema } from './Auth.config';
4
+ export type { AuthConfig, AuthConfigInput, AuthRole } from './Auth.config';
5
+ export { authDocs } from './Auth.docs';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const chatConfigSchema: z.ZodObject<{
3
+ placeholder: z.ZodDefault<z.ZodString>;
4
+ emptyState: z.ZodDefault<z.ZodString>;
5
+ agentName: z.ZodDefault<z.ZodString>;
6
+ userName: z.ZodDefault<z.ZodString>;
7
+ markdown: z.ZodDefault<z.ZodBoolean>;
8
+ showTimestamps: z.ZodDefault<z.ZodBoolean>;
9
+ maxComposerLines: z.ZodDefault<z.ZodNumber>;
10
+ }, z.core.$strict>;
11
+ export type ChatConfig = z.output<typeof chatConfigSchema>;
12
+ export type ChatConfigInput = z.input<typeof chatConfigSchema>;
13
+ //# sourceMappingURL=Chat.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.config.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/Chat.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,gBAAgB;;;;;;;;kBA0ClB,CAAA;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAC1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,34 @@
1
+ import { type ReactNode } from 'react';
2
+ import { type GolemProps } from '../../abi';
3
+ import type { ChatAdapter, ChatAttachment } from '../../adapters';
4
+ export interface ChatAdapters {
5
+ chat: ChatAdapter;
6
+ }
7
+ export interface ChatSlots {
8
+ /**
9
+ * Replaces the built-in attach button and the staged-chip row above the composer. It is handed
10
+ * `stage`, which is what the composer sends with the next message; `Upload.Picker` is what
11
+ * belongs here, so an attachment comes from a real upload rather than a name and a size.
12
+ */
13
+ attach?: (stage: (attachments: ChatAttachment[]) => void) => ReactNode;
14
+ }
15
+ export declare const Chat: import("react").FunctionComponent<GolemProps<{
16
+ placeholder?: string | undefined;
17
+ emptyState?: string | undefined;
18
+ agentName?: string | undefined;
19
+ userName?: string | undefined;
20
+ markdown?: boolean | undefined;
21
+ showTimestamps?: boolean | undefined;
22
+ maxComposerLines?: number | undefined;
23
+ }, ChatAdapters, ChatSlots>> & {
24
+ schema: import("zod").ZodObject<{
25
+ placeholder: import("zod").ZodDefault<import("zod").ZodString>;
26
+ emptyState: import("zod").ZodDefault<import("zod").ZodString>;
27
+ agentName: import("zod").ZodDefault<import("zod").ZodString>;
28
+ userName: import("zod").ZodDefault<import("zod").ZodString>;
29
+ markdown: import("zod").ZodDefault<import("zod").ZodBoolean>;
30
+ showTimestamps: import("zod").ZodDefault<import("zod").ZodBoolean>;
31
+ maxComposerLines: import("zod").ZodDefault<import("zod").ZodNumber>;
32
+ }, import("zod/v4/core").$strict>;
33
+ };
34
+ //# sourceMappingURL=Chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACpF,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAA;AAI9E,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,WAAW,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACxB;;;;OAIG;IACH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,cAAc,EAAE,KAAK,IAAI,KAAK,SAAS,CAAA;CACvE;AAyRD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;CAIf,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentDocs } from '../../abi';
2
+ export declare const chatDocs: ComponentDocs;
3
+ //# sourceMappingURL=Chat.docs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chat.docs.d.ts","sourceRoot":"","sources":["../../../src/components/Chat/Chat.docs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE9C,eAAO,MAAM,QAAQ,EAAE,aAmFtB,CAAA"}