@bitbitpress/client 1.0.2 → 1.1.0-alpha.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 (87) hide show
  1. package/README.md +160 -5
  2. package/dist/auth.d.ts.map +1 -1
  3. package/dist/auth.js +2 -4
  4. package/dist/auth.js.map +1 -1
  5. package/dist/client.d.ts.map +1 -1
  6. package/dist/client.js.map +1 -1
  7. package/dist/data/index.d.ts.map +1 -1
  8. package/dist/data/index.js.map +1 -1
  9. package/dist/examples/basic-usage.d.ts +1 -1
  10. package/dist/examples/basic-usage.d.ts.map +1 -1
  11. package/dist/examples/basic-usage.js +1 -1
  12. package/dist/examples/basic-usage.js.map +1 -1
  13. package/dist/generated/openapi.d.ts +166 -77
  14. package/dist/index.d.ts +9 -8
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/react/index.d.ts +41 -0
  17. package/dist/react/index.d.ts.map +1 -0
  18. package/dist/react/index.js +68 -0
  19. package/dist/react/index.js.map +1 -0
  20. package/dist/react/primitives.d.ts +54 -0
  21. package/dist/react/primitives.d.ts.map +1 -0
  22. package/dist/react/primitives.js +223 -0
  23. package/dist/react/primitives.js.map +1 -0
  24. package/dist/react-native-expo/index.d.ts +42 -0
  25. package/dist/react-native-expo/index.d.ts.map +1 -0
  26. package/dist/react-native-expo/index.js +78 -0
  27. package/dist/react-native-expo/index.js.map +1 -0
  28. package/dist/react-native-expo/primitives.d.ts +58 -0
  29. package/dist/react-native-expo/primitives.d.ts.map +1 -0
  30. package/dist/react-native-expo/primitives.js +218 -0
  31. package/dist/react-native-expo/primitives.js.map +1 -0
  32. package/dist/synthesisView/context.d.ts +18 -0
  33. package/dist/synthesisView/context.d.ts.map +1 -0
  34. package/dist/synthesisView/context.js +15 -0
  35. package/dist/synthesisView/context.js.map +1 -0
  36. package/dist/synthesisView/createComponentMap.d.ts +18 -0
  37. package/dist/synthesisView/createComponentMap.d.ts.map +1 -0
  38. package/dist/synthesisView/createComponentMap.js +40 -0
  39. package/dist/synthesisView/createComponentMap.js.map +1 -0
  40. package/dist/synthesisView/engine.d.ts +35 -0
  41. package/dist/synthesisView/engine.d.ts.map +1 -0
  42. package/dist/synthesisView/engine.js +113 -0
  43. package/dist/synthesisView/engine.js.map +1 -0
  44. package/dist/synthesisView/primitives.d.ts +180 -0
  45. package/dist/synthesisView/primitives.d.ts.map +1 -0
  46. package/dist/synthesisView/primitives.js +29 -0
  47. package/dist/synthesisView/primitives.js.map +1 -0
  48. package/dist/synthesisView/resolve.d.ts +17 -0
  49. package/dist/synthesisView/resolve.d.ts.map +1 -0
  50. package/dist/synthesisView/resolve.js +42 -0
  51. package/dist/synthesisView/resolve.js.map +1 -0
  52. package/dist/synthesisView/types.d.ts +72 -0
  53. package/dist/synthesisView/types.d.ts.map +1 -0
  54. package/dist/synthesisView/types.js +2 -0
  55. package/dist/synthesisView/types.js.map +1 -0
  56. package/dist/synthesisView/useSynthesisView.d.ts +13 -0
  57. package/dist/synthesisView/useSynthesisView.d.ts.map +1 -0
  58. package/dist/synthesisView/useSynthesisView.js +49 -0
  59. package/dist/synthesisView/useSynthesisView.js.map +1 -0
  60. package/dist/user/index.d.ts +38 -8
  61. package/dist/user/index.d.ts.map +1 -1
  62. package/dist/user/index.js +12 -4
  63. package/dist/user/index.js.map +1 -1
  64. package/dist/user/profile.d.ts +6 -5
  65. package/dist/user/profile.d.ts.map +1 -1
  66. package/dist/user/profile.js +6 -5
  67. package/dist/user/profile.js.map +1 -1
  68. package/dist/user/submissions.d.ts +24 -0
  69. package/dist/user/submissions.d.ts.map +1 -0
  70. package/dist/user/submissions.js +43 -0
  71. package/dist/user/submissions.js.map +1 -0
  72. package/dist/user/synthesize-batch-manager.d.ts +1 -1
  73. package/dist/user/synthesize-batch-manager.d.ts.map +1 -1
  74. package/dist/user/synthesize-batch-manager.js.map +1 -1
  75. package/dist/user/synthesize-view-batch-manager.d.ts +17 -0
  76. package/dist/user/synthesize-view-batch-manager.d.ts.map +1 -0
  77. package/dist/user/synthesize-view-batch-manager.js +52 -0
  78. package/dist/user/synthesize-view-batch-manager.js.map +1 -0
  79. package/dist/user/synthesize.d.ts.map +1 -1
  80. package/dist/user/synthesize.js +1 -3
  81. package/dist/user/synthesize.js.map +1 -1
  82. package/dist/user/synthesizeView.d.ts +41 -0
  83. package/dist/user/synthesizeView.d.ts.map +1 -0
  84. package/dist/user/synthesizeView.js +26 -0
  85. package/dist/user/synthesizeView.js.map +1 -0
  86. package/dist/user/typeDefs.d.ts.map +1 -1
  87. package/package.json +31 -7
@@ -160,6 +160,10 @@ export interface paths {
160
160
  * ]
161
161
  */
162
162
  suggestedInterestTags: string[];
163
+ /** @description User's job title. */
164
+ jobTitle?: string;
165
+ /** @description User's company. */
166
+ company?: string;
163
167
  };
164
168
  };
165
169
  };
@@ -209,7 +213,7 @@ export interface paths {
209
213
  };
210
214
  /**
211
215
  * Profile - Update User Profile
212
- * @description **PUT** `/v1/user/profile` Updates the user's interest tags. Supports full replace via `interestTags`, or add/remove via `addInterestTags` and `removeInterestTags` arrays.
216
+ * @description **PUT** `/v1/user/profile` Updates the user's profile. Supports interest tags (full replace via `interestTags`, or add/remove via `addInterestTags` / `removeInterestTags`) and optional `jobTitle` / `company` fields. Pass empty string to clear.
213
217
  */
214
218
  put: {
215
219
  parameters: {
@@ -230,6 +234,10 @@ export interface paths {
230
234
  addInterestTags?: string[];
231
235
  /** @description Remove these tags from the current list (ignored if interestTags is provided). */
232
236
  removeInterestTags?: string[];
237
+ /** @description User's job title. Pass an empty string to clear. */
238
+ jobTitle?: string;
239
+ /** @description User's company or organization. Pass an empty string to clear. */
240
+ company?: string;
233
241
  };
234
242
  };
235
243
  };
@@ -718,7 +726,7 @@ export interface paths {
718
726
  * "complete": false | true
719
727
  * }
720
728
  * ```
721
- * `data` is the synthesized object (keys match your output schema). `complete` is `false` for partial streaming updates and `true` for the final validated object for that index.
729
+ * `data` is the synthesized object (keys match your output schema). `complete` is `false` for partial streaming updates and `true` for the final validated payload. When `limit` > 1 and user reranking is configured, items at the reranking field are pooled across the N stored outputs and the final object is capped at the original array size.
722
730
  *
723
731
  * **Data Events (error):**
724
732
  * ```json
@@ -1129,7 +1137,7 @@ export interface paths {
1129
1137
  patch?: never;
1130
1138
  trace?: never;
1131
1139
  };
1132
- "/admin/v1/assets/upsert": {
1140
+ "/v1/user-submissions": {
1133
1141
  parameters: {
1134
1142
  query?: never;
1135
1143
  header?: never;
@@ -1139,88 +1147,151 @@ export interface paths {
1139
1147
  get?: never;
1140
1148
  put?: never;
1141
1149
  /**
1142
- * Upsert Asset
1143
- * @description **POST** `/admin/v1/assets/upsert` Creates or updates an asset in the system. If an asset with the same `externalId` already exists it will be updated; otherwise a new asset is created and queued for ingestion.
1150
+ * User Submissions - Create Submission
1151
+ * @description **POST** `/v1/user-submissions` Creates a structured user submission and optional presigned file upload URLs.
1144
1152
  */
1145
1153
  post: {
1146
1154
  parameters: {
1147
1155
  query?: never;
1148
- header?: never;
1156
+ header: {
1157
+ authorization: string;
1158
+ };
1149
1159
  path?: never;
1150
1160
  cookie?: never;
1151
1161
  };
1152
1162
  requestBody: {
1153
1163
  content: {
1154
1164
  "application/json": {
1155
- /** @description Key name of the Admin API data source to associate this asset with */
1156
- dataSourceKey: string;
1157
- /** @description Unique identifier for the asset in your system */
1158
- externalId: string;
1159
- /** @description Title of the asset */
1160
- title: string;
1161
- /** @description Full text content of the asset */
1162
- content: string;
1163
- /**
1164
- * @description Format of the content field. Defaults to text/plain.
1165
- * @enum {string}
1166
- */
1167
- mimeType?: "text/plain" | "text/markdown" | "text/html";
1168
- /** @description Canonical URL of the original source */
1169
- sourceUrl?: string;
1170
- /** @description ISO 8601 publication timestamp */
1171
- publishedAt?: string;
1172
- /** @description Author or byline */
1173
- byline?: string;
1174
- /** @description List of tags or categories */
1175
- tags?: string[];
1176
- /** @description Images associated with the asset */
1177
- images?: {
1178
- /** @description Image URL */
1179
- src: string;
1180
- /** @description Alt text */
1181
- alt?: string;
1182
- /** @description External identifier for the image */
1183
- externalId?: string;
1184
- /** @description Image width in pixels */
1185
- width?: number;
1186
- /** @description Image height in pixels */
1187
- height?: number;
1188
- /** @description Photo credit or attribution */
1189
- credit?: string;
1190
- }[];
1191
- /** @description Videos associated with the asset */
1192
- videos?: {
1193
- /** @description One or more video source URLs with MIME types */
1194
- sources: {
1195
- /** @description MIME type of the video source (e.g. video/mp4) */
1196
- mimeType: string;
1197
- /** @description Video source URL */
1198
- src: string;
1199
- }[];
1200
- /** @description Alt text for the video */
1201
- alt?: string;
1202
- /** @description External identifier for the video */
1203
- externalId?: string;
1204
- /** @description Video credit or attribution */
1205
- credit?: string;
1206
- /** @description Poster image URL */
1207
- posterUrl?: string;
1208
- /** @description Video caption */
1209
- caption?: string;
1210
- /** @description Video width in pixels */
1211
- width?: number;
1212
- /** @description Video height in pixels */
1213
- height?: number;
1214
- }[];
1215
- /** @description Arbitrary additional data to store with the asset */
1216
- externalData?: {
1165
+ keyName: string;
1166
+ data: {
1217
1167
  [key: string]: unknown;
1218
1168
  };
1169
+ files?: {
1170
+ field: string;
1171
+ contentType: string;
1172
+ fileName?: string;
1173
+ }[];
1219
1174
  };
1220
1175
  };
1221
1176
  };
1222
1177
  responses: {
1223
- /** @description Successful response */
1178
+ /** @description Default Response */
1179
+ 200: {
1180
+ headers: {
1181
+ [name: string]: unknown;
1182
+ };
1183
+ content: {
1184
+ "application/json": {
1185
+ success: boolean;
1186
+ data: {
1187
+ submission: {
1188
+ id: string;
1189
+ userSubmissionSchemaId: string;
1190
+ userId: string;
1191
+ state: string;
1192
+ createdAt: string;
1193
+ updatedAt?: string;
1194
+ } & {
1195
+ [key: string]: unknown;
1196
+ };
1197
+ uploads: {
1198
+ field: string;
1199
+ s3Key: string;
1200
+ uploadUrl: string;
1201
+ }[];
1202
+ };
1203
+ };
1204
+ };
1205
+ };
1206
+ /** @description Bad request - missing or invalid parameters */
1207
+ 400: {
1208
+ headers: {
1209
+ [name: string]: unknown;
1210
+ };
1211
+ content: {
1212
+ "application/json": {
1213
+ /** @example Bad request */
1214
+ error?: string;
1215
+ };
1216
+ };
1217
+ };
1218
+ /** @description Unauthorized errors */
1219
+ 401: {
1220
+ headers: {
1221
+ [name: string]: unknown;
1222
+ };
1223
+ content: {
1224
+ "application/json": {
1225
+ /**
1226
+ * @example Unauthorized: No authentication token provided
1227
+ * @enum {string}
1228
+ */
1229
+ error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
1230
+ };
1231
+ };
1232
+ };
1233
+ /** @description Not found */
1234
+ 404: {
1235
+ headers: {
1236
+ [name: string]: unknown;
1237
+ };
1238
+ content: {
1239
+ "application/json": {
1240
+ /** @example Not found */
1241
+ error?: string;
1242
+ };
1243
+ };
1244
+ };
1245
+ /** @description Internal server error */
1246
+ 500: {
1247
+ headers: {
1248
+ [name: string]: unknown;
1249
+ };
1250
+ content: {
1251
+ "application/json": {
1252
+ /** @example false */
1253
+ success?: boolean;
1254
+ /** @example Internal server error: An unknown error occurred */
1255
+ error?: string;
1256
+ };
1257
+ };
1258
+ };
1259
+ };
1260
+ };
1261
+ delete?: never;
1262
+ options?: never;
1263
+ head?: never;
1264
+ patch?: never;
1265
+ trace?: never;
1266
+ };
1267
+ "/v1/user-submission-schemas/{keyName}/submissions": {
1268
+ parameters: {
1269
+ query?: never;
1270
+ header?: never;
1271
+ path?: never;
1272
+ cookie?: never;
1273
+ };
1274
+ /**
1275
+ * User Submissions - List Live Submissions
1276
+ * @description **GET** `/v1/user-submission-schemas/:keyName/submissions` Lists live submissions for a schema. Customer apps cannot read non-live submissions.
1277
+ */
1278
+ get: {
1279
+ parameters: {
1280
+ query?: {
1281
+ first?: number;
1282
+ after?: string;
1283
+ };
1284
+ header: {
1285
+ authorization: string;
1286
+ };
1287
+ path: {
1288
+ keyName: string;
1289
+ };
1290
+ cookie?: never;
1291
+ };
1292
+ requestBody?: never;
1293
+ responses: {
1294
+ /** @description Default Response */
1224
1295
  200: {
1225
1296
  headers: {
1226
1297
  [name: string]: unknown;
@@ -1229,12 +1300,10 @@ export interface paths {
1229
1300
  "application/json": {
1230
1301
  success: boolean;
1231
1302
  data: {
1232
- /** @description Internal asset identifier */
1233
- assetId: string;
1234
- /** @description True if a new asset was created */
1235
- created: boolean;
1236
- /** @description True if the asset was queued for ingestion */
1237
- queued: boolean;
1303
+ cursor: null | string;
1304
+ items: {
1305
+ [key: string]: unknown;
1306
+ }[];
1238
1307
  };
1239
1308
  };
1240
1309
  };
@@ -1246,6 +1315,7 @@ export interface paths {
1246
1315
  };
1247
1316
  content: {
1248
1317
  "application/json": {
1318
+ /** @example Bad request */
1249
1319
  error?: string;
1250
1320
  };
1251
1321
  };
@@ -1257,8 +1327,23 @@ export interface paths {
1257
1327
  };
1258
1328
  content: {
1259
1329
  "application/json": {
1260
- /** @enum {string} */
1261
- error?: "Unauthorized: No API key provided" | "Unauthorized: Invalid or revoked API key";
1330
+ /**
1331
+ * @example Unauthorized: No authentication token provided
1332
+ * @enum {string}
1333
+ */
1334
+ error?: "Unauthorized: No authentication token provided" | "Unauthorized: Token has expired" | "Unauthorized: Invalid token" | "Unauthorized: Authentication failed";
1335
+ };
1336
+ };
1337
+ };
1338
+ /** @description Not found */
1339
+ 404: {
1340
+ headers: {
1341
+ [name: string]: unknown;
1342
+ };
1343
+ content: {
1344
+ "application/json": {
1345
+ /** @example Not found */
1346
+ error?: string;
1262
1347
  };
1263
1348
  };
1264
1349
  };
@@ -1269,13 +1354,17 @@ export interface paths {
1269
1354
  };
1270
1355
  content: {
1271
1356
  "application/json": {
1357
+ /** @example false */
1272
1358
  success?: boolean;
1359
+ /** @example Internal server error: An unknown error occurred */
1273
1360
  error?: string;
1274
1361
  };
1275
1362
  };
1276
1363
  };
1277
1364
  };
1278
1365
  };
1366
+ put?: never;
1367
+ post?: never;
1279
1368
  delete?: never;
1280
1369
  options?: never;
1281
1370
  head?: never;
package/dist/index.d.ts CHANGED
@@ -6,18 +6,19 @@
6
6
  */
7
7
  export type { BitBitPressClientConfig, BitBitPressClientOptions } from './client.js';
8
8
  export { BitBitPressClient } from './client.js';
9
- export type { BitBitPressFetch, FetchHeaders, FetchReadableStream, FetchReadableStreamReader, RequestInit, Response, } from './request.js';
9
+ export type { AssetsRequest, AssetsResponse } from './data/assets.js';
10
+ export type { DataMethods } from './data/index.js';
10
11
  export type * from './generated/openapi.js';
12
+ export type { BitBitPressFetch, FetchHeaders, FetchReadableStream, FetchReadableStreamReader, RequestInit, Response, } from './request.js';
11
13
  export type { UserMethods } from './user/index.js';
12
- export type { DataMethods } from './data/index.js';
13
- export type { AssetsRequest, AssetsResponse } from './data/assets.js';
14
- export type { Signal, SignalRequest, SignalResponse } from './user/signal.js';
15
- export type { RecommendationsRequest, RecommendationsResponse } from './user/recommendations.js';
14
+ export type { InteractionItem, InteractionResponseRequest, InteractionResponseResponse, InteractionsRequest, InteractionsResponse, } from './user/interaction.js';
16
15
  export type { ProfileResponse, ProfileUpdateRequest } from './user/profile.js';
16
+ export type { RecommendationsRequest, RecommendationsResponse } from './user/recommendations.js';
17
17
  export type { ReportRequest, ReportResponse } from './user/report.js';
18
+ export type { Signal, SignalRequest, SignalResponse } from './user/signal.js';
19
+ export type { CreateUserSubmissionRequest, CreateUserSubmissionResponse, ListUserSubmissionsRequest, ListUserSubmissionsResponse, } from './user/submissions.js';
20
+ export type { SynthesizeEvent, SynthesizeItemResponse, SynthesizeOptions, } from './user/synthesize.js';
21
+ export type { SynthesizeOnStreamingData } from './user/synthesize-batch-manager.js';
18
22
  export type { TokenRequest, TokenResponse } from './user/token.js';
19
23
  export type { BitBitPressSynthesizeRequest, RecommendationsRequestBody, SynthesizeInput, SynthesizeItem, SynthesizeItems, SynthesizeOutputSchema, SynthesizeRequest, } from './user/typeDefs.js';
20
- export type { SynthesizeEvent, SynthesizeItemResponse, SynthesizeOptions } from './user/synthesize.js';
21
- export type { SynthesizeOnStreamingData } from './user/synthesize-batch-manager.js';
22
- export type { InteractionItem, InteractionResponseRequest, InteractionResponseResponse, InteractionsRequest, InteractionsResponse, } from './user/interaction.js';
23
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,QAAQ,GACT,MAAM,cAAc,CAAC;AAGtB,mBAAmB,wBAAwB,CAAC;AAG5C,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACjG,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvG,YAAY,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,mBAAmB,wBAAwB,CAAC;AAC5C,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EACV,eAAe,EACf,0BAA0B,EAC1B,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACjG,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC9E,YAAY,EACV,2BAA2B,EAC3B,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,eAAe,EACf,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACpF,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EACV,4BAA4B,EAC5B,0BAA0B,EAC1B,eAAe,EACf,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { type RenderUnknown, type SynthesisViewTreeProps } from '../synthesisView/engine.js';
2
+ import type { ComponentMap, ContentInput, SynthesisViewEvent, SynthesizeViewFetcher } from '../synthesisView/types.js';
3
+ export { type BitBitContextValue, BitBitProvider } from '../synthesisView/context.js';
4
+ export { createComponentMap, type GlobModules, type RequireContext, } from '../synthesisView/createComponentMap.js';
5
+ export type { ComponentMap, ContentInput, FlatUiKeyNameNode, FlatUiNode, FlatUiPrimitiveNode, SynthesisViewEvent, SynthesizeViewFetcher, ViewInputs, } from '../synthesisView/types.js';
6
+ export { bitBitBuiltins } from './primitives.js';
7
+ export type BitBitViewRendererProps = Omit<SynthesisViewTreeProps, 'renderUnknown' | 'defaultComponents'> & {
8
+ /** Override how unregistered components render. Defaults to a labeled marker. */
9
+ renderUnknown?: RenderUnknown;
10
+ };
11
+ /** Web renderer for a pre-fetched `uiData` array. BB built-in primitives are
12
+ * registered automatically; pass `components` to add or override entries by
13
+ * name. Use `<BitBitView>` if you want it to fetch for you. */
14
+ export declare function BitBitViewRenderer({ renderUnknown, ...rest }: BitBitViewRendererProps): import("react").FunctionComponentElement<SynthesisViewTreeProps>;
15
+ export type BitBitViewProps = {
16
+ /** A BitBitPressClient (or anything with `user.synthesizeViewItem`). */
17
+ client: SynthesizeViewFetcher;
18
+ keyName: string;
19
+ contentInputs?: ContentInput[];
20
+ components?: ComponentMap;
21
+ onEvent?: (event: SynthesisViewEvent) => void;
22
+ renderUnknown?: RenderUnknown;
23
+ /** Force a dark/light mode. Defaults to the browser's
24
+ * `prefers-color-scheme` (live-updates if the user toggles their OS
25
+ * theme). */
26
+ darkMode?: boolean;
27
+ };
28
+ /**
29
+ * Web view: fetches a synthesis view by `keyName` and renders it in place.
30
+ * Renders nothing while loading. Multiple `<BitBitView>` mounts within a
31
+ * short window are coalesced into a single batched request.
32
+ */
33
+ export declare function BitBitView({ client, keyName, contentInputs, components, onEvent, renderUnknown, darkMode, }: BitBitViewProps): import("react").DetailedReactHTMLElement<{
34
+ 'data-bitbit-error': boolean;
35
+ style: {
36
+ color: "#b00020";
37
+ fontFamily: "monospace";
38
+ fontSize: number;
39
+ };
40
+ }, HTMLElement> | import("react").FunctionComponentElement<BitBitViewRendererProps> | null;
41
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAElB,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,qBAAqB,EAEtB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,KAAK,kBAAkB,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EACL,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,cAAc,GACpB,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,GACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAsBjD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,sBAAsB,EACtB,eAAe,GAAG,mBAAmB,CACtC,GAAG;IACF,iFAAiF;IACjF,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B,CAAC;AAYF;;gEAEgE;AAChE,wBAAgB,kBAAkB,CAAC,EAAE,aAAa,EAAE,GAAG,IAAI,EAAE,EAAE,uBAAuB,oEAMrF;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,wEAAwE;IACxE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;kBAEc;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,OAAO,EACP,aAAa,EACb,UAAU,EACV,OAAO,EACP,aAAa,EACb,QAAQ,GACT,EAAE,eAAe;;;;;;;2FAwBjB"}
@@ -0,0 +1,68 @@
1
+ import { createElement, useEffect, useState } from 'react';
2
+ import { SynthesisViewTree, } from '../synthesisView/engine.js';
3
+ import { useSynthesisView } from '../synthesisView/useSynthesisView.js';
4
+ import { bitBitBuiltins } from './primitives.js';
5
+ export { BitBitProvider } from '../synthesisView/context.js';
6
+ export { createComponentMap, } from '../synthesisView/createComponentMap.js';
7
+ export { bitBitBuiltins } from './primitives.js';
8
+ /** Track the browser's `prefers-color-scheme` and re-render on change. Returns
9
+ * `null` during SSR or when the API isn't available — callers fall back to
10
+ * the server's default. */
11
+ function useSystemDarkMode() {
12
+ const [isDark, setIsDark] = useState(() => {
13
+ if (typeof window === 'undefined' || !window.matchMedia)
14
+ return null;
15
+ return window.matchMedia('(prefers-color-scheme: dark)').matches;
16
+ });
17
+ useEffect(() => {
18
+ if (typeof window === 'undefined' || !window.matchMedia)
19
+ return;
20
+ const mq = window.matchMedia('(prefers-color-scheme: dark)');
21
+ const onChange = (e) => setIsDark(e.matches);
22
+ mq.addEventListener('change', onChange);
23
+ return () => mq.removeEventListener('change', onChange);
24
+ }, []);
25
+ return isDark;
26
+ }
27
+ const defaultRenderUnknown = (name) => createElement('span', {
28
+ 'data-bitbit-unknown': name,
29
+ style: { color: '#b00020', fontFamily: 'monospace', fontSize: 12 },
30
+ }, `⚠ Unknown component: ${name}`);
31
+ /** Web renderer for a pre-fetched `uiData` array. BB built-in primitives are
32
+ * registered automatically; pass `components` to add or override entries by
33
+ * name. Use `<BitBitView>` if you want it to fetch for you. */
34
+ export function BitBitViewRenderer({ renderUnknown, ...rest }) {
35
+ return createElement(SynthesisViewTree, {
36
+ ...rest,
37
+ defaultComponents: bitBitBuiltins,
38
+ renderUnknown: renderUnknown ?? defaultRenderUnknown,
39
+ });
40
+ }
41
+ /**
42
+ * Web view: fetches a synthesis view by `keyName` and renders it in place.
43
+ * Renders nothing while loading. Multiple `<BitBitView>` mounts within a
44
+ * short window are coalesced into a single batched request.
45
+ */
46
+ export function BitBitView({ client, keyName, contentInputs, components, onEvent, renderUnknown, darkMode, }) {
47
+ const systemDark = useSystemDarkMode();
48
+ const resolvedDark = darkMode ?? systemDark ?? undefined;
49
+ const viewInputs = resolvedDark !== undefined ? { darkMode: resolvedDark } : undefined;
50
+ const { uiData, loading, error } = useSynthesisView(client, keyName, contentInputs, viewInputs);
51
+ if (loading)
52
+ return null;
53
+ if (error) {
54
+ return createElement('div', {
55
+ 'data-bitbit-error': true,
56
+ style: { color: '#b00020', fontFamily: 'monospace', fontSize: 12 },
57
+ }, error);
58
+ }
59
+ if (!uiData.length)
60
+ return null;
61
+ return createElement(BitBitViewRenderer, {
62
+ uiData,
63
+ components,
64
+ onEvent,
65
+ renderUnknown,
66
+ });
67
+ }
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { type CSSProperties } from 'react';
2
+ import type { AudioProps, ButtonProps, CardProps, CheckboxProps, ChoicePickerProps, ColumnProps, DateTimeInputProps, DividerProps, GradientProps, HorizontalScrollProps, IconProps, ImageProps, ListProps, ModalProps, PressableProps, RowProps, SliderProps, TabsItemProps, TabsProps, TextFieldProps, TextProps, VerticalScrollProps, VideoProps } from '../synthesisView/primitives.js';
3
+ import type { ComponentMap } from '../synthesisView/types.js';
4
+ export declare function Text({ text, children, ...rest }: TextProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function Image({ src, alt, ...rest }: ImageProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function Button({ title, children, disabled, onPress, ...rest }: ButtonProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare function Pressable({ children, disabled, onPress, style, ...rest }: PressableProps & {
8
+ style?: CSSProperties;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function Icon({ name, ...rest }: IconProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function Video({ src, poster, ...rest }: VideoProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Audio({ src, ...rest }: AudioProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare function Column({ children, style, ...rest }: ColumnProps & {
14
+ style?: CSSProperties;
15
+ }): import("react/jsx-runtime").JSX.Element;
16
+ export declare function Row({ children, style, ...rest }: RowProps & {
17
+ style?: CSSProperties;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ export declare function List({ children, style, ...rest }: ListProps & {
20
+ style?: CSSProperties;
21
+ }): import("react/jsx-runtime").JSX.Element;
22
+ export declare function Card({ children, style, ...rest }: CardProps & {
23
+ style?: CSSProperties;
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ export declare function Divider({ style, ...rest }: DividerProps & {
26
+ style?: CSSProperties;
27
+ }): import("react/jsx-runtime").JSX.Element;
28
+ export declare function VerticalScroll({ children, style, ...rest }: VerticalScrollProps & {
29
+ style?: CSSProperties;
30
+ }): import("react/jsx-runtime").JSX.Element;
31
+ export declare function HorizontalScroll({ children, style, ...rest }: HorizontalScrollProps & {
32
+ style?: CSSProperties;
33
+ }): import("react/jsx-runtime").JSX.Element;
34
+ export declare function Gradient({ colors, start, end, locations, children, style, ...rest }: GradientProps & {
35
+ style?: CSSProperties;
36
+ }): import("react/jsx-runtime").JSX.Element;
37
+ export declare function Tabs({ defaultValue, children, ...rest }: TabsProps): import("react/jsx-runtime").JSX.Element;
38
+ export declare function TabsItem({ children }: TabsItemProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function Modal({ open, children, onClose, style, ...rest }: ModalProps & {
40
+ style?: CSSProperties;
41
+ }): import("react/jsx-runtime").JSX.Element | null;
42
+ export declare function TextField({ defaultValue, placeholder, multiline, disabled, onChange, ...rest }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
43
+ export declare function Checkbox({ label, defaultChecked, disabled, onChange, ...rest }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
44
+ export declare function ChoicePicker({ defaultValue, options, disabled, onChange, ...rest }: ChoicePickerProps): import("react/jsx-runtime").JSX.Element;
45
+ export declare function Slider({ defaultValue, min, max, step, disabled, onChange, ...rest }: SliderProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function DateTimeInput({ defaultValue, mode, disabled, onChange, ...rest }: DateTimeInputProps): import("react/jsx-runtime").JSX.Element;
47
+ /**
48
+ * Default component map: every primitive name → its web implementation. Used
49
+ * as the fallback registry by `<BitBitView>` so a customer renders a view
50
+ * with zero registration. Spread it into a custom map to add or override:
51
+ * `<BitBitProvider components={{ ...bitBitBuiltins, MyCard }}>`.
52
+ */
53
+ export declare const bitBitBuiltins: ComponentMap;
54
+ //# sourceMappingURL=primitives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/react/primitives.tsx"],"names":[],"mappings":"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"}