@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.
- package/README.md +71 -0
- package/dist/generated/openapi.d.ts +487 -15
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/react/index.d.ts +29 -54
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +69 -81
- package/dist/react/index.js.map +1 -1
- package/dist/react-native-expo/index.d.ts +1 -52
- package/dist/react-native-expo/index.d.ts.map +1 -1
- package/dist/react-native-expo/index.js +1 -91
- package/dist/react-native-expo/index.js.map +1 -1
- package/dist/runtime/index.d.ts +60 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +84 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/synthesisUi/context.d.ts +18 -0
- package/dist/synthesisUi/context.d.ts.map +1 -0
- package/dist/synthesisUi/context.js +15 -0
- package/dist/synthesisUi/context.js.map +1 -0
- package/dist/synthesisUi/types.d.ts +30 -0
- package/dist/synthesisUi/types.d.ts.map +1 -0
- package/dist/{synthesisView → synthesisUi}/types.js.map +1 -1
- package/dist/user/index.d.ts +59 -11
- package/dist/user/index.d.ts.map +1 -1
- package/dist/user/index.js +12 -6
- package/dist/user/index.js.map +1 -1
- package/dist/user/interaction.d.ts +7 -0
- package/dist/user/interaction.d.ts.map +1 -1
- package/dist/user/interaction.js +7 -0
- package/dist/user/interaction.js.map +1 -1
- package/dist/user/submissions.d.ts +65 -0
- package/dist/user/submissions.d.ts.map +1 -1
- package/dist/user/submissions.js +57 -0
- package/dist/user/submissions.js.map +1 -1
- package/dist/user/synthesize-batch-manager.js +2 -0
- package/dist/user/synthesize-batch-manager.js.map +1 -1
- package/dist/user/synthesize.d.ts +26 -0
- package/dist/user/synthesize.d.ts.map +1 -1
- package/dist/user/synthesize.js +11 -2
- package/dist/user/synthesize.js.map +1 -1
- package/dist/user/synthesizeUi.d.ts +67 -0
- package/dist/user/synthesizeUi.d.ts.map +1 -0
- package/dist/user/synthesizeUi.js +51 -0
- package/dist/user/synthesizeUi.js.map +1 -0
- package/dist/user/track-batch-manager.d.ts +17 -0
- package/dist/user/track-batch-manager.d.ts.map +1 -0
- package/dist/user/track-batch-manager.js +52 -0
- package/dist/user/track-batch-manager.js.map +1 -0
- package/dist/user/track.d.ts +17 -0
- package/dist/user/track.d.ts.map +1 -0
- package/dist/user/track.js +24 -0
- package/dist/user/track.js.map +1 -0
- package/dist/user/typeDefs.d.ts +9 -3
- package/dist/user/typeDefs.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/react/primitives.d.ts +0 -54
- package/dist/react/primitives.d.ts.map +0 -1
- package/dist/react/primitives.js +0 -223
- package/dist/react/primitives.js.map +0 -1
- package/dist/react-native-expo/primitives.d.ts +0 -58
- package/dist/react-native-expo/primitives.d.ts.map +0 -1
- package/dist/react-native-expo/primitives.js +0 -218
- package/dist/react-native-expo/primitives.js.map +0 -1
- package/dist/synthesisView/context.d.ts +0 -18
- package/dist/synthesisView/context.d.ts.map +0 -1
- package/dist/synthesisView/context.js +0 -15
- package/dist/synthesisView/context.js.map +0 -1
- package/dist/synthesisView/createComponentMap.d.ts +0 -18
- package/dist/synthesisView/createComponentMap.d.ts.map +0 -1
- package/dist/synthesisView/createComponentMap.js +0 -40
- package/dist/synthesisView/createComponentMap.js.map +0 -1
- package/dist/synthesisView/devLog.d.ts +0 -10
- package/dist/synthesisView/devLog.d.ts.map +0 -1
- package/dist/synthesisView/devLog.js +0 -23
- package/dist/synthesisView/devLog.js.map +0 -1
- package/dist/synthesisView/engine.d.ts +0 -35
- package/dist/synthesisView/engine.d.ts.map +0 -1
- package/dist/synthesisView/engine.js +0 -139
- package/dist/synthesisView/engine.js.map +0 -1
- package/dist/synthesisView/primitives.d.ts +0 -180
- package/dist/synthesisView/primitives.d.ts.map +0 -1
- package/dist/synthesisView/primitives.js +0 -29
- package/dist/synthesisView/primitives.js.map +0 -1
- package/dist/synthesisView/resolve.d.ts +0 -17
- package/dist/synthesisView/resolve.d.ts.map +0 -1
- package/dist/synthesisView/resolve.js +0 -42
- package/dist/synthesisView/resolve.js.map +0 -1
- package/dist/synthesisView/types.d.ts +0 -121
- package/dist/synthesisView/types.d.ts.map +0 -1
- package/dist/synthesisView/useEventDrivenView.d.ts +0 -32
- package/dist/synthesisView/useEventDrivenView.d.ts.map +0 -1
- package/dist/synthesisView/useEventDrivenView.js +0 -157
- package/dist/synthesisView/useEventDrivenView.js.map +0 -1
- package/dist/synthesisView/useSynthesisView.d.ts +0 -13
- package/dist/synthesisView/useSynthesisView.d.ts.map +0 -1
- package/dist/synthesisView/useSynthesisView.js +0 -49
- package/dist/synthesisView/useSynthesisView.js.map +0 -1
- package/dist/user/synthesize-view-batch-manager.d.ts +0 -17
- package/dist/user/synthesize-view-batch-manager.d.ts.map +0 -1
- package/dist/user/synthesize-view-batch-manager.js +0 -52
- package/dist/user/synthesize-view-batch-manager.js.map +0 -1
- package/dist/user/synthesizeView.d.ts +0 -41
- package/dist/user/synthesizeView.d.ts.map +0 -1
- package/dist/user/synthesizeView.js +0 -26
- package/dist/user/synthesizeView.js.map +0 -1
- /package/dist/{synthesisView → synthesisUi}/types.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synthesize.js","sourceRoot":"","sources":["../../src/user/synthesize.ts"],"names":[],"mappings":";;
|
|
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"}
|
package/dist/user/typeDefs.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
|
12
|
-
schema
|
|
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
|
|
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,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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"}
|
package/dist/react/primitives.js
DELETED
|
@@ -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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"}
|