@bitbitpress/client 1.1.0 → 1.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 (107) hide show
  1. package/README.md +71 -0
  2. package/dist/generated/openapi.d.ts +487 -15
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/react/index.d.ts +29 -54
  6. package/dist/react/index.d.ts.map +1 -1
  7. package/dist/react/index.js +69 -81
  8. package/dist/react/index.js.map +1 -1
  9. package/dist/react-native-expo/index.d.ts +1 -52
  10. package/dist/react-native-expo/index.d.ts.map +1 -1
  11. package/dist/react-native-expo/index.js +1 -91
  12. package/dist/react-native-expo/index.js.map +1 -1
  13. package/dist/runtime/index.d.ts +60 -0
  14. package/dist/runtime/index.d.ts.map +1 -0
  15. package/dist/runtime/index.js +84 -0
  16. package/dist/runtime/index.js.map +1 -0
  17. package/dist/synthesisUi/context.d.ts +18 -0
  18. package/dist/synthesisUi/context.d.ts.map +1 -0
  19. package/dist/synthesisUi/context.js +15 -0
  20. package/dist/synthesisUi/context.js.map +1 -0
  21. package/dist/synthesisUi/types.d.ts +30 -0
  22. package/dist/synthesisUi/types.d.ts.map +1 -0
  23. package/dist/{synthesisView → synthesisUi}/types.js.map +1 -1
  24. package/dist/user/index.d.ts +59 -11
  25. package/dist/user/index.d.ts.map +1 -1
  26. package/dist/user/index.js +12 -6
  27. package/dist/user/index.js.map +1 -1
  28. package/dist/user/interaction.d.ts +7 -0
  29. package/dist/user/interaction.d.ts.map +1 -1
  30. package/dist/user/interaction.js +7 -0
  31. package/dist/user/interaction.js.map +1 -1
  32. package/dist/user/submissions.d.ts +65 -0
  33. package/dist/user/submissions.d.ts.map +1 -1
  34. package/dist/user/submissions.js +57 -0
  35. package/dist/user/submissions.js.map +1 -1
  36. package/dist/user/synthesize-batch-manager.js +2 -0
  37. package/dist/user/synthesize-batch-manager.js.map +1 -1
  38. package/dist/user/synthesize.d.ts +26 -0
  39. package/dist/user/synthesize.d.ts.map +1 -1
  40. package/dist/user/synthesize.js +11 -2
  41. package/dist/user/synthesize.js.map +1 -1
  42. package/dist/user/synthesizeUi.d.ts +67 -0
  43. package/dist/user/synthesizeUi.d.ts.map +1 -0
  44. package/dist/user/synthesizeUi.js +51 -0
  45. package/dist/user/synthesizeUi.js.map +1 -0
  46. package/dist/user/track-batch-manager.d.ts +17 -0
  47. package/dist/user/track-batch-manager.d.ts.map +1 -0
  48. package/dist/user/track-batch-manager.js +52 -0
  49. package/dist/user/track-batch-manager.js.map +1 -0
  50. package/dist/user/track.d.ts +17 -0
  51. package/dist/user/track.d.ts.map +1 -0
  52. package/dist/user/track.js +24 -0
  53. package/dist/user/track.js.map +1 -0
  54. package/dist/user/typeDefs.d.ts +9 -3
  55. package/dist/user/typeDefs.d.ts.map +1 -1
  56. package/package.json +1 -1
  57. package/dist/react/primitives.d.ts +0 -54
  58. package/dist/react/primitives.d.ts.map +0 -1
  59. package/dist/react/primitives.js +0 -223
  60. package/dist/react/primitives.js.map +0 -1
  61. package/dist/react-native-expo/primitives.d.ts +0 -58
  62. package/dist/react-native-expo/primitives.d.ts.map +0 -1
  63. package/dist/react-native-expo/primitives.js +0 -218
  64. package/dist/react-native-expo/primitives.js.map +0 -1
  65. package/dist/synthesisView/context.d.ts +0 -18
  66. package/dist/synthesisView/context.d.ts.map +0 -1
  67. package/dist/synthesisView/context.js +0 -15
  68. package/dist/synthesisView/context.js.map +0 -1
  69. package/dist/synthesisView/createComponentMap.d.ts +0 -18
  70. package/dist/synthesisView/createComponentMap.d.ts.map +0 -1
  71. package/dist/synthesisView/createComponentMap.js +0 -40
  72. package/dist/synthesisView/createComponentMap.js.map +0 -1
  73. package/dist/synthesisView/devLog.d.ts +0 -10
  74. package/dist/synthesisView/devLog.d.ts.map +0 -1
  75. package/dist/synthesisView/devLog.js +0 -23
  76. package/dist/synthesisView/devLog.js.map +0 -1
  77. package/dist/synthesisView/engine.d.ts +0 -35
  78. package/dist/synthesisView/engine.d.ts.map +0 -1
  79. package/dist/synthesisView/engine.js +0 -139
  80. package/dist/synthesisView/engine.js.map +0 -1
  81. package/dist/synthesisView/primitives.d.ts +0 -180
  82. package/dist/synthesisView/primitives.d.ts.map +0 -1
  83. package/dist/synthesisView/primitives.js +0 -29
  84. package/dist/synthesisView/primitives.js.map +0 -1
  85. package/dist/synthesisView/resolve.d.ts +0 -17
  86. package/dist/synthesisView/resolve.d.ts.map +0 -1
  87. package/dist/synthesisView/resolve.js +0 -42
  88. package/dist/synthesisView/resolve.js.map +0 -1
  89. package/dist/synthesisView/types.d.ts +0 -121
  90. package/dist/synthesisView/types.d.ts.map +0 -1
  91. package/dist/synthesisView/useEventDrivenView.d.ts +0 -32
  92. package/dist/synthesisView/useEventDrivenView.d.ts.map +0 -1
  93. package/dist/synthesisView/useEventDrivenView.js +0 -157
  94. package/dist/synthesisView/useEventDrivenView.js.map +0 -1
  95. package/dist/synthesisView/useSynthesisView.d.ts +0 -13
  96. package/dist/synthesisView/useSynthesisView.d.ts.map +0 -1
  97. package/dist/synthesisView/useSynthesisView.js +0 -49
  98. package/dist/synthesisView/useSynthesisView.js.map +0 -1
  99. package/dist/user/synthesize-view-batch-manager.d.ts +0 -17
  100. package/dist/user/synthesize-view-batch-manager.d.ts.map +0 -1
  101. package/dist/user/synthesize-view-batch-manager.js +0 -52
  102. package/dist/user/synthesize-view-batch-manager.js.map +0 -1
  103. package/dist/user/synthesizeView.d.ts +0 -41
  104. package/dist/user/synthesizeView.d.ts.map +0 -1
  105. package/dist/user/synthesizeView.js +0 -26
  106. package/dist/user/synthesizeView.js.map +0 -1
  107. /package/dist/{synthesisView → synthesisUi}/types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/user/synthesize.ts"],"names":[],"mappings":";;AAwEA,gCA0BC;AAlGD,6BAAmC;AAEnC,8CAA4C;AAoC5C,gDAAgD;AAChD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED,oHAAoH;AACpH,SAAS,wBAAwB,CAAC,KAAsB;IACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAClC,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzF,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,MAAM;gBACd,MAAM,EAAE,YAAY;aACrB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAqB,EACrB,KAAsB,EACtB,OAA2B;IAE3B,MAAM,eAAe,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAW,EAAiC,MAAM,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;KACjC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,CAAC;IACjD,IAAI,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI;QAC1B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IACE,OAAO,IAAI,KAAK;gBAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAC/B,KAAK,CAAC,QAAQ,KAAK,KAAK;gBACxB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,CAAC;gBACD,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/user/synthesize.ts"],"names":[],"mappings":";;AAqGA,gCA0BC;AA/HD,6BAAmC;AAEnC,8CAA4C;AAwD5C,gDAAgD;AAChD,SAAS,WAAW,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,KAAsB;IACtD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAsC,EAAE;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAA,kBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACzF,OAAO;YACL,GAAG,IAAI;YACP,MAAM,EAAE;gBACN,GAAG,IAAI,CAAC,MAAM;gBACd,MAAM,EAAE,YAAY;aACrB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;;;;;GAOG;AACI,KAAK,UAAU,UAAU,CAC9B,MAAqB,EACrB,KAAsB,EACtB,OAA2B;IAE3B,MAAM,eAAe,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAW,EAAiC,MAAM,EAAE;QACvE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;KACjC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,OAAO,EAAE,eAAe,CAAC;IACjD,IAAI,CAAC,eAAe;QAAE,OAAO,MAAM,CAAC;IACpC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,IAAI;QAC1B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IACE,OAAO,IAAI,KAAK;gBAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gBAC/B,KAAK,CAAC,QAAQ,KAAK,KAAK;gBACxB,KAAK,CAAC,KAAK,IAAI,IAAI,EACnB,CAAC;gBACD,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -0,0 +1,67 @@
1
+ import type { RequestConfig } from '../request.js';
2
+ export type SynthesisUiPlatform = 'web' | 'mobile';
3
+ /** One UI to resolve in a `synthesizeUis` request. */
4
+ export interface SynthesizeUiRequestItem {
5
+ /** Stable identifier of the UI to load. Configured in the BitBitPress CMS;
6
+ * same value you pass as `<BitBitSynthesis keyName="…">`. */
7
+ keyName: string;
8
+ }
9
+ /** Request to resolve a single generated UI by `keyName` for a platform. */
10
+ export interface SynthesizeUiRequest extends SynthesizeUiRequestItem {
11
+ /** Target platform for the artifact. Defaults to `web`. */
12
+ platform?: SynthesisUiPlatform;
13
+ }
14
+ /**
15
+ * Streamed `/v1/user/synthesize-ui` events (SSE):
16
+ * - `connected` / `complete` — connection lifecycle.
17
+ * - `manifest` — emitted once: the deployment `theme` and, per index-matched
18
+ * item, the bundle reference. The SDK loads bundles as soon as this arrives.
19
+ * - data — `{ index, data, complete }`; may stream partials before the final
20
+ * `complete: true`. `{ index, error }` on failure.
21
+ */
22
+ export type SynthesizeUiEvent = {
23
+ type: 'connected';
24
+ } | {
25
+ type: 'complete';
26
+ } | {
27
+ type: 'manifest';
28
+ theme: Record<string, string>;
29
+ items: {
30
+ index: number;
31
+ bundleUrl?: string | null;
32
+ bundleSource?: string | null;
33
+ }[];
34
+ } | {
35
+ index: number;
36
+ data?: unknown;
37
+ complete: boolean;
38
+ error?: string;
39
+ };
40
+ /** Per-UI stream event `<BitBitSynthesis>` consumes (one UI, not the batch). */
41
+ export type SynthesisUiStreamEvent = {
42
+ type: 'manifest';
43
+ bundleUrl?: string | null;
44
+ bundleSource?: string | null;
45
+ theme: Record<string, string>;
46
+ } | {
47
+ type: 'data';
48
+ data: unknown;
49
+ complete: boolean;
50
+ } | {
51
+ type: 'error';
52
+ error: string;
53
+ };
54
+ /**
55
+ * Resolve generated SynthesisUIs by `keyName` for a platform. Streams a
56
+ * `manifest` (bundles + theme) followed by per-item `data` events, index-matched
57
+ * to `items`. The bundle is served from a CDN by versioned `bundleUrl` and
58
+ * cached across renders/users; `data` is the per-request piece.
59
+ */
60
+ export declare function synthesizeUis(config: RequestConfig, items: SynthesizeUiRequestItem[], platform?: SynthesisUiPlatform): Promise<AsyncIterable<SynthesizeUiEvent>>;
61
+ /**
62
+ * Resolve a single generated SynthesisUI by `keyName`, as a per-UI stream
63
+ * (manifest, then data). Most apps reach this through `<BitBitSynthesis
64
+ * keyName="…">` rather than calling it directly.
65
+ */
66
+ export declare function synthesizeUi(config: RequestConfig, request: SynthesizeUiRequest): Promise<AsyncIterable<SynthesisUiStreamEvent>>;
67
+ //# sourceMappingURL=synthesizeUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesizeUi.d.ts","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEnD,sDAAsD;AACtD,MAAM,WAAW,uBAAuB;IACtC;kEAC8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,4EAA4E;AAC5E,MAAM,WAAW,mBAAoB,SAAQ,uBAAuB;IAClE,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GACrB;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;CACrF,GACD;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzE,gFAAgF;AAChF,MAAM,MAAM,sBAAsB,GAC9B;IACE,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B,GACD;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,uBAAuB,EAAE,EAChC,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAM3C;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAwBhD"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.synthesizeUis = synthesizeUis;
4
+ exports.synthesizeUi = synthesizeUi;
5
+ const request_js_1 = require("../request.js");
6
+ /**
7
+ * Resolve generated SynthesisUIs by `keyName` for a platform. Streams a
8
+ * `manifest` (bundles + theme) followed by per-item `data` events, index-matched
9
+ * to `items`. The bundle is served from a CDN by versioned `bundleUrl` and
10
+ * cached across renders/users; `data` is the per-request piece.
11
+ */
12
+ async function synthesizeUis(config, items, platform) {
13
+ return (0, request_js_1.makeRequest)(config, {
14
+ method: 'POST',
15
+ path: '/v1/user/synthesize-ui',
16
+ body: { platform, items },
17
+ });
18
+ }
19
+ /**
20
+ * Resolve a single generated SynthesisUI by `keyName`, as a per-UI stream
21
+ * (manifest, then data). Most apps reach this through `<BitBitSynthesis
22
+ * keyName="…">` rather than calling it directly.
23
+ */
24
+ async function synthesizeUi(config, request) {
25
+ const stream = await synthesizeUis(config, [{ keyName: request.keyName }], request.platform);
26
+ return (async function* perUi() {
27
+ for await (const event of stream) {
28
+ if ('type' in event) {
29
+ if (event.type === 'manifest') {
30
+ const item = event.items.find((i) => i.index === 0);
31
+ yield {
32
+ type: 'manifest',
33
+ bundleUrl: item?.bundleUrl,
34
+ bundleSource: item?.bundleSource,
35
+ theme: event.theme,
36
+ };
37
+ }
38
+ continue;
39
+ }
40
+ if (event.index !== 0)
41
+ continue;
42
+ if (event.error != null) {
43
+ yield { type: 'error', error: event.error };
44
+ }
45
+ else {
46
+ yield { type: 'data', data: event.data, complete: event.complete };
47
+ }
48
+ }
49
+ })();
50
+ }
51
+ //# sourceMappingURL=synthesizeUi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"synthesizeUi.js","sourceRoot":"","sources":["../../src/user/synthesizeUi.ts"],"names":[],"mappings":";;AAqDA,sCAUC;AAOD,oCA2BC;AAhGD,8CAA4C;AA8C5C;;;;;GAKG;AACI,KAAK,UAAU,aAAa,CACjC,MAAqB,EACrB,KAAgC,EAChC,QAA8B;IAE9B,OAAO,IAAA,wBAAW,EAAmC,MAAM,EAAE;QAC3D,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,wBAAwB;QAC9B,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;KAC1B,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7F,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,KAAK;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YACjC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC;oBACpD,MAAM;wBACJ,IAAI,EAAE,UAAU;wBAChB,SAAS,EAAE,IAAI,EAAE,SAAS;wBAC1B,YAAY,EAAE,IAAI,EAAE,YAAY;wBAChC,KAAK,EAAE,KAAK,CAAC,KAAK;qBACnB,CAAC;gBACJ,CAAC;gBACD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC;gBAAE,SAAS;YAChC,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBACxB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrE,CAAC;QACH,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { RequestConfig } from '../request.js';
2
+ import { type TrackEvent, type TrackResponse } from './track.js';
3
+ /**
4
+ * Batch manager for `trackItem` — batches individual events and sends them
5
+ * together after the timeout. Mirrors SignalBatchManager.
6
+ */
7
+ export declare class TrackBatchManager {
8
+ private queue;
9
+ private timer;
10
+ private getConfig;
11
+ private batchTimeout;
12
+ constructor(getConfig: () => Promise<RequestConfig>, batchTimeout: number);
13
+ updateConfig(config: RequestConfig): void;
14
+ addEvent(event: TrackEvent): Promise<NonNullable<TrackResponse>>;
15
+ private flush;
16
+ }
17
+ //# sourceMappingURL=track-batch-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-batch-manager.d.ts","sourceRoot":"","sources":["../../src/user/track-batch-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAgB,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAK/E;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAIL;IACR,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,YAAY,CAAS;gBAEjB,SAAS,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,MAAM;IAKzE,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAIzC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAQlD,KAAK;CAqBpB"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrackBatchManager = void 0;
4
+ const track_js_1 = require("./track.js");
5
+ /**
6
+ * Batch manager for `trackItem` — batches individual events and sends them
7
+ * together after the timeout. Mirrors SignalBatchManager.
8
+ */
9
+ class TrackBatchManager {
10
+ queue = [];
11
+ timer = null;
12
+ getConfig;
13
+ batchTimeout;
14
+ constructor(getConfig, batchTimeout) {
15
+ this.getConfig = getConfig;
16
+ this.batchTimeout = batchTimeout;
17
+ }
18
+ updateConfig(config) {
19
+ this.getConfig = () => Promise.resolve(config);
20
+ }
21
+ addEvent(event) {
22
+ return new Promise((resolve, reject) => {
23
+ this.queue.push({ event, resolve, reject });
24
+ if (this.timer)
25
+ clearTimeout(this.timer);
26
+ this.timer = setTimeout(() => this.flush(), this.batchTimeout);
27
+ });
28
+ }
29
+ async flush() {
30
+ if (this.queue.length === 0)
31
+ return;
32
+ const batch = [...this.queue];
33
+ this.queue = [];
34
+ this.timer = null;
35
+ try {
36
+ const config = await this.getConfig();
37
+ const events = batch.map((b) => b.event);
38
+ const response = await (0, track_js_1.recordEvents)(config, { events });
39
+ for (const { resolve } of batch) {
40
+ resolve(response);
41
+ }
42
+ }
43
+ catch (error) {
44
+ const err = error instanceof Error ? error : new Error(String(error));
45
+ for (const { reject } of batch) {
46
+ reject(err);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ exports.TrackBatchManager = TrackBatchManager;
52
+ //# sourceMappingURL=track-batch-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-batch-manager.js","sourceRoot":"","sources":["../../src/user/track-batch-manager.ts"],"names":[],"mappings":";;;AACA,yCAA+E;AAK/E;;;GAGG;AACH,MAAa,iBAAiB;IACpB,KAAK,GAIR,EAAE,CAAC;IACA,KAAK,GAAiB,IAAI,CAAC;IAC3B,SAAS,CAA+B;IACxC,YAAY,CAAS;IAE7B,YAAY,SAAuC,EAAE,YAAoB;QACvE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,MAAqB;QAChC,IAAI,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,KAAiB;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK;gBAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,KAAK;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEpC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAY,EAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,KAAK,MAAM,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAhDD,8CAgDC"}
@@ -0,0 +1,17 @@
1
+ import type { paths } from '../generated/openapi.js';
2
+ import type { RequestConfig } from '../request.js';
3
+ export type TrackRequest = paths['/v1/user/events']['post']['requestBody']['content']['application/json'];
4
+ export type TrackResponse = paths['/v1/user/events']['post']['responses'][200]['content']['application/json']['data'];
5
+ /** One event from the events array. `type` is VIEW or CLICK; `name` is the
6
+ * action/label for CLICK, omitted for VIEW. */
7
+ export type TrackEvent = TrackRequest['events'][number];
8
+ /**
9
+ * Record behavioral events (views, clicks) for synthesis UIs, addressed by
10
+ * `keyName`. Powers UI analytics.
11
+ *
12
+ * @param config - Request configuration with base URL, timeout, fetch, and optional token
13
+ * @param options - events array
14
+ * @returns Promise that resolves with response data (recorded: boolean)
15
+ */
16
+ export declare function recordEvents(config: RequestConfig, options: TrackRequest): Promise<NonNullable<TrackResponse>>;
17
+ //# sourceMappingURL=track.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/user/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,MAAM,MAAM,YAAY,GACtB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACjF,MAAM,MAAM,aAAa,GACvB,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5F;gDACgD;AAChD,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAYrC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.recordEvents = recordEvents;
4
+ const request_js_1 = require("../request.js");
5
+ /**
6
+ * Record behavioral events (views, clicks) for synthesis UIs, addressed by
7
+ * `keyName`. Powers UI analytics.
8
+ *
9
+ * @param config - Request configuration with base URL, timeout, fetch, and optional token
10
+ * @param options - events array
11
+ * @returns Promise that resolves with response data (recorded: boolean)
12
+ */
13
+ async function recordEvents(config, options) {
14
+ const response = await (0, request_js_1.makeRequest)(config, {
15
+ method: 'POST',
16
+ path: '/v1/user/events',
17
+ body: options,
18
+ });
19
+ if (!response) {
20
+ throw new Error('Failed to record events: no data in response');
21
+ }
22
+ return response;
23
+ }
24
+ //# sourceMappingURL=track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track.js","sourceRoot":"","sources":["../../src/user/track.ts"],"names":[],"mappings":";;AAsBA,oCAeC;AAnCD,8CAA4C;AAY5C;;;;;;;GAOG;AACI,KAAK,UAAU,YAAY,CAChC,MAAqB,EACrB,OAAqB;IAErB,MAAM,QAAQ,GAAG,MAAM,IAAA,wBAAW,EAAgB,MAAM,EAAE;QACxD,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -6,10 +6,16 @@ export type SynthesizeRequest = paths['/v1/user/synthesize']['post']['requestBod
6
6
  export type BitBitPressSynthesizeRequest = SynthesizeRequest;
7
7
  /** Array of synthesize items (API shape). */
8
8
  export type SynthesizeItems = SynthesizeItem[];
9
- /** Single synthesize item (API shape). */
9
+ /**
10
+ * Single synthesize item (API shape).
11
+ *
12
+ * `output` is optional: omit it (or its `schema`) to let the server use the
13
+ * output schema declared on the config named by `configurationKeyName`
14
+ * (`output.outputSchema`). A provided schema still wins.
15
+ */
10
16
  export type SynthesizeItem = Omit<SynthesizeRequest['items'][number], 'output'> & {
11
- output: Omit<SynthesizeRequest['items'][number]['output'], 'schema'> & {
12
- schema: SynthesizeOutputSchema;
17
+ output?: {
18
+ schema?: SynthesizeOutputSchema;
13
19
  };
14
20
  };
15
21
  /** Single input in an item's inputs array (externalId, text, or excludeExternalIds). */
@@ -1 +1 @@
1
- {"version":3,"file":"typeDefs.d.ts","sourceRoot":"","sources":["../../src/user/typeDefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAErF,+EAA+E;AAC/E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAE/C,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG;IAChF,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG;QACrE,MAAM,EAAE,sBAAsB,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,oIAAoI;AACpI,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,qEAAqE;AACrE,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"typeDefs.d.ts","sourceRoot":"","sources":["../../src/user/typeDefs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,gDAAgD;AAChD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAErF,+EAA+E;AAC/E,MAAM,MAAM,4BAA4B,GAAG,iBAAiB,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG,cAAc,EAAE,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG;IAChF,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,sBAAsB,CAAC;KACjC,CAAC;CACH,CAAC;AAEF,wFAAwF;AACxF,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,oIAAoI;AACpI,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,qEAAqE;AACrE,MAAM,MAAM,0BAA0B,GAAG,WAAW,CAClD,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,CACzD,CAAC,SAAS,CAAC,CAAC,kBAAkB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitbitpress/client",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "BitBitPress TypeScript client library",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -1,54 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/react/primitives.tsx"],"names":[],"mappings":"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"}
@@ -1,223 +0,0 @@
1
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Children, isValidElement, useState, } from 'react';
3
- /**
4
- * BB built-in primitive implementations for the web (React DOM). Each
5
- * primitive forwards extra props (`style`, `className`, ARIA, …) to its host
6
- * element so the UI tree author owns the look. Layout primitives (Column,
7
- * Card, List) merge a minimal structural style with the author-supplied
8
- * `style`, with the author's keys winning on conflict.
9
- */
10
- /** Merge two style objects; the second's keys win. Skipped when neither is set. */
11
- function mergeStyle(base, extra) {
12
- if (!base && !extra)
13
- return undefined;
14
- return { ...(base ?? {}), ...(extra ?? {}) };
15
- }
16
- // --- Text -------------------------------------------------------------------
17
- export function Text({ text, children, ...rest }) {
18
- return _jsx("span", { ...rest, children: text ?? children });
19
- }
20
- // --- Image ------------------------------------------------------------------
21
- export function Image({ src, alt = '', ...rest }) {
22
- return _jsx("img", { src: src, alt: alt, ...rest });
23
- }
24
- // --- Button -----------------------------------------------------------------
25
- export function Button({ title, children, disabled, onPress, ...rest }) {
26
- return (_jsx("button", { type: "button", disabled: disabled, onClick: () => onPress?.(), ...rest, children: title ?? children }));
27
- }
28
- // --- Pressable --------------------------------------------------------------
29
- export function Pressable({ children, disabled, onPress, style, ...rest }) {
30
- const handleClick = () => {
31
- if (!disabled)
32
- onPress?.();
33
- };
34
- const handleKey = (e) => {
35
- if (disabled)
36
- return;
37
- if (e.key === 'Enter' || e.key === ' ') {
38
- e.preventDefault();
39
- onPress?.();
40
- }
41
- };
42
- return (_jsx(_Fragment, { children: _jsx("div", { role: "button", tabIndex: disabled ? -1 : 0, "aria-disabled": disabled || undefined, onClick: handleClick, onKeyDown: handleKey, style: mergeStyle({ cursor: disabled ? 'not-allowed' : 'pointer' }, style), ...rest, children: children }) }));
43
- }
44
- // --- Icon -------------------------------------------------------------------
45
- export function Icon({ name, ...rest }) {
46
- return (_jsx("span", { "aria-label": name, role: "img", ...rest, children: name }));
47
- }
48
- // --- Video / Audio ----------------------------------------------------------
49
- export function Video({ src, poster, ...rest }) {
50
- return _jsx("video", { src: src, poster: poster, ...rest });
51
- }
52
- export function Audio({ src, ...rest }) {
53
- return _jsx("audio", { src: src, ...rest });
54
- }
55
- // --- Row / Column / List / Card / Divider -----------------------------------
56
- export function Column({ children, style, ...rest }) {
57
- return (_jsx("div", { style: mergeStyle({ display: 'flex', flexDirection: 'column' }, style), ...rest, children: children }));
58
- }
59
- export function Row({ children, style, ...rest }) {
60
- return (_jsx("div", { style: mergeStyle({ display: 'flex', flexDirection: 'row' }, style), ...rest, children: children }));
61
- }
62
- export function List({ children, style, ...rest }) {
63
- return (_jsx("div", { style: mergeStyle({ display: 'flex', flexDirection: 'column' }, style), ...rest, children: Children.toArray(children) }));
64
- }
65
- export function Card({ children, style, ...rest }) {
66
- return (_jsx("div", { style: mergeStyle({ border: '1px solid #e5e7eb', borderRadius: 8, padding: 12, background: '#ffffff' }, style), ...rest, children: children }));
67
- }
68
- export function Divider({ style, ...rest }) {
69
- return _jsx("div", { style: mergeStyle({ height: 1, background: '#e5e7eb' }, style), ...rest });
70
- }
71
- // --- Scroll: VerticalScroll / HorizontalScroll -----------------------------
72
- export function VerticalScroll({ children, style, ...rest }) {
73
- return (_jsx("div", { style: mergeStyle({ display: 'flex', flexDirection: 'column', overflowY: 'auto' }, style), ...rest, children: children }));
74
- }
75
- export function HorizontalScroll({ children, style, ...rest }) {
76
- return (_jsx("div", { style: mergeStyle({ display: 'flex', flexDirection: 'row', overflowX: 'auto' }, style), ...rest, children: children }));
77
- }
78
- // --- Gradient ---------------------------------------------------------------
79
- const DEFAULT_GRADIENT_START = { x: 0, y: 0 };
80
- const DEFAULT_GRADIENT_END = { x: 0, y: 1 };
81
- /** Convert a start→end vector (each axis in [0,1], y pointing down) to a CSS
82
- * gradient angle, where 0° = "to top" and angle increases clockwise. */
83
- function gradientAngleDeg(start, end) {
84
- const dx = end.x - start.x;
85
- const dy = end.y - start.y;
86
- const rad = Math.atan2(dx, -dy);
87
- return ((rad * 180) / Math.PI + 360) % 360;
88
- }
89
- function gradientStops(colors, locations) {
90
- return colors
91
- .map((color, i) => {
92
- const loc = locations?.[i];
93
- return loc !== undefined ? `${color} ${loc * 100}%` : color;
94
- })
95
- .join(', ');
96
- }
97
- export function Gradient({ colors, start = DEFAULT_GRADIENT_START, end = DEFAULT_GRADIENT_END, locations, children, style, ...rest }) {
98
- const angle = gradientAngleDeg(start, end);
99
- const backgroundImage = `linear-gradient(${angle}deg, ${gradientStops(colors, locations)})`;
100
- return (_jsx("div", { style: mergeStyle({ backgroundImage }, style), ...rest, children: children }));
101
- }
102
- function isTabsItem(node) {
103
- return isValidElement(node) && node.props?.value !== undefined;
104
- }
105
- export function Tabs({ defaultValue, children, ...rest }) {
106
- const items = Children.toArray(children).filter(isTabsItem);
107
- const firstValue = items[0]?.props.value;
108
- const [active, setActive] = useState(defaultValue ?? firstValue);
109
- const activeItem = items.find((item) => item.props.value === active) ?? items[0];
110
- return (_jsxs("div", { ...rest, children: [_jsx("div", { style: { display: 'flex', gap: 4, borderBottom: '1px solid #e5e7eb' }, children: items.map((item) => {
111
- const isActive = item.props.value === active;
112
- return (_jsx("button", { type: "button", onClick: () => setActive(item.props.value), style: {
113
- background: 'transparent',
114
- border: 'none',
115
- padding: '8px 12px',
116
- cursor: 'pointer',
117
- borderBottom: isActive ? '2px solid currentColor' : '2px solid transparent',
118
- marginBottom: -1,
119
- font: 'inherit',
120
- }, children: item.props.label }, item.props.value));
121
- }) }), _jsx("div", { children: activeItem?.props.children })] }));
122
- }
123
- export function TabsItem({ children }) {
124
- // Rendered inertly when used outside Tabs; Tabs reads `value`/`label`/`children` directly.
125
- return _jsx(_Fragment, { children: children });
126
- }
127
- // --- Modal ------------------------------------------------------------------
128
- export function Modal({ open = true, children, onClose, style, ...rest }) {
129
- const [visible, setVisible] = useState(open);
130
- if (!visible || !open)
131
- return null;
132
- const dismiss = () => {
133
- setVisible(false);
134
- onClose?.();
135
- };
136
- return (_jsx("div", { role: "dialog", "aria-modal": "true", onClick: dismiss, onKeyDown: (e) => {
137
- if (e.key === 'Escape')
138
- dismiss();
139
- }, style: {
140
- position: 'fixed',
141
- inset: 0,
142
- background: 'rgba(0,0,0,0.4)',
143
- display: 'flex',
144
- alignItems: 'center',
145
- justifyContent: 'center',
146
- zIndex: 1000,
147
- }, children: _jsx("div", { onClick: (e) => e.stopPropagation(), style: mergeStyle({ background: '#ffffff', borderRadius: 8, padding: 16, maxWidth: 480, width: '90%' }, style), ...rest, children: children }) }));
148
- }
149
- // --- Form -------------------------------------------------------------------
150
- export function TextField({ defaultValue, placeholder, multiline, disabled, onChange, ...rest }) {
151
- const [value, setValue] = useState(defaultValue ?? '');
152
- const handle = (v) => {
153
- setValue(v);
154
- onChange?.({ value: v });
155
- };
156
- return multiline ? (_jsx("textarea", { value: value, placeholder: placeholder, disabled: disabled, onChange: (e) => handle(e.target.value), ...rest })) : (_jsx("input", { type: "text", value: value, placeholder: placeholder, disabled: disabled, onChange: (e) => handle(e.target.value), ...rest }));
157
- }
158
- export function Checkbox({ label, defaultChecked, disabled, onChange, ...rest }) {
159
- const [checked, setChecked] = useState(defaultChecked ?? false);
160
- const handle = (v) => {
161
- setChecked(v);
162
- onChange?.({ value: v });
163
- };
164
- return (_jsxs("label", { style: { display: 'inline-flex', alignItems: 'center', gap: 6, cursor: 'pointer' }, children: [_jsx("input", { type: "checkbox", checked: checked, disabled: disabled, onChange: (e) => handle(e.target.checked), ...rest }), label && _jsx("span", { children: label })] }));
165
- }
166
- export function ChoicePicker({ defaultValue, options, disabled, onChange, ...rest }) {
167
- const [value, setValue] = useState(defaultValue ?? options[0]?.value ?? '');
168
- const handle = (v) => {
169
- setValue(v);
170
- onChange?.({ value: v });
171
- };
172
- return (_jsx("div", { ...rest, children: options.map((opt) => (_jsxs("label", { style: { display: 'flex', alignItems: 'center', gap: 6, cursor: 'pointer' }, children: [_jsx("input", { type: "radio", checked: value === opt.value, disabled: disabled, onChange: () => handle(opt.value) }), _jsx("span", { children: opt.label })] }, opt.value))) }));
173
- }
174
- export function Slider({ defaultValue, min = 0, max = 100, step = 1, disabled, onChange, ...rest }) {
175
- const [value, setValue] = useState(defaultValue ?? min);
176
- const handle = (v) => {
177
- setValue(v);
178
- onChange?.({ value: v });
179
- };
180
- return (_jsx("input", { type: "range", min: min, max: max, step: step, value: value, disabled: disabled, onChange: (e) => handle(Number(e.target.value)), ...rest }));
181
- }
182
- export function DateTimeInput({ defaultValue, mode = 'date', disabled, onChange, ...rest }) {
183
- const [value, setValue] = useState(defaultValue ?? '');
184
- const handle = (v) => {
185
- setValue(v);
186
- onChange?.({ value: v });
187
- };
188
- const type = mode === 'time' ? 'time' : mode === 'datetime' ? 'datetime-local' : 'date';
189
- return (_jsx("input", { type: type, value: value, disabled: disabled, onChange: (e) => handle(e.target.value), ...rest }));
190
- }
191
- // --- Registry ---------------------------------------------------------------
192
- /**
193
- * Default component map: every primitive name → its web implementation. Used
194
- * as the fallback registry by `<BitBitView>` so a customer renders a view
195
- * with zero registration. Spread it into a custom map to add or override:
196
- * `<BitBitProvider components={{ ...bitBitBuiltins, MyCard }}>`.
197
- */
198
- export const bitBitBuiltins = {
199
- Text: Text,
200
- Image: Image,
201
- Button: Button,
202
- Pressable: Pressable,
203
- Icon: Icon,
204
- Video: Video,
205
- Audio: Audio,
206
- Column: Column,
207
- Row: Row,
208
- List: List,
209
- Card: Card,
210
- VerticalScroll: VerticalScroll,
211
- HorizontalScroll: HorizontalScroll,
212
- Tabs: Tabs,
213
- TabsItem: TabsItem,
214
- Modal: Modal,
215
- Divider: Divider,
216
- Gradient: Gradient,
217
- TextField: TextField,
218
- Checkbox: Checkbox,
219
- ChoicePicker: ChoicePicker,
220
- Slider: Slider,
221
- DateTimeInput: DateTimeInput,
222
- };
223
- //# sourceMappingURL=primitives.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/react/primitives.tsx"],"names":[],"mappings":"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"}