@luckydraw/blex 0.1.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.
- package/README.md +298 -0
- package/dist/blex-chart.min.global.js +23 -0
- package/dist/blex-chart.min.global.js.map +1 -0
- package/dist/blex.min.global.js +105 -0
- package/dist/blex.min.global.js.map +1 -0
- package/dist/esm/base-renderer.d.ts +28 -0
- package/dist/esm/base-renderer.d.ts.map +1 -0
- package/dist/esm/calendar-HUZDQQN2.js +314 -0
- package/dist/esm/calendar-HUZDQQN2.js.map +1 -0
- package/dist/esm/chart/index.d.ts +14 -0
- package/dist/esm/chart/index.d.ts.map +1 -0
- package/dist/esm/chart/index.js +3 -0
- package/dist/esm/chart/index.js.map +1 -0
- package/dist/esm/chart-2QT47W6E.js +38 -0
- package/dist/esm/chart-2QT47W6E.js.map +1 -0
- package/dist/esm/chunk-ODHF7VXV.js +74 -0
- package/dist/esm/chunk-ODHF7VXV.js.map +1 -0
- package/dist/esm/chunk-PBRPD4A5.js +91 -0
- package/dist/esm/chunk-PBRPD4A5.js.map +1 -0
- package/dist/esm/chunk-ZKSJGHJI.js +1573 -0
- package/dist/esm/chunk-ZKSJGHJI.js.map +1 -0
- package/dist/esm/defaults.d.ts +6 -0
- package/dist/esm/defaults.d.ts.map +1 -0
- package/dist/esm/fallback.d.ts +11 -0
- package/dist/esm/fallback.d.ts.map +1 -0
- package/dist/esm/gallery-ISM7FZA3.js +130 -0
- package/dist/esm/gallery-ISM7FZA3.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +91 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/kanban-XUXVTRX2.js +126 -0
- package/dist/esm/kanban-XUXVTRX2.js.map +1 -0
- package/dist/esm/mermaid-W3HX2CK2.js +130 -0
- package/dist/esm/mermaid-W3HX2CK2.js.map +1 -0
- package/dist/esm/placeholder.d.ts +8 -0
- package/dist/esm/placeholder.d.ts.map +1 -0
- package/dist/esm/plugin.d.ts +34 -0
- package/dist/esm/plugin.d.ts.map +1 -0
- package/dist/esm/react/chart.d.ts +12 -0
- package/dist/esm/react/chart.d.ts.map +1 -0
- package/dist/esm/react/chart.js +50 -0
- package/dist/esm/react/chart.js.map +1 -0
- package/dist/esm/react/index.d.ts +13 -0
- package/dist/esm/react/index.d.ts.map +1 -0
- package/dist/esm/react/index.js +66 -0
- package/dist/esm/react/index.js.map +1 -0
- package/dist/esm/registry.d.ts +46 -0
- package/dist/esm/registry.d.ts.map +1 -0
- package/dist/esm/render.d.ts +13 -0
- package/dist/esm/render.d.ts.map +1 -0
- package/dist/esm/renderers/calendar.d.ts +34 -0
- package/dist/esm/renderers/calendar.d.ts.map +1 -0
- package/dist/esm/renderers/chart.d.ts +12 -0
- package/dist/esm/renderers/chart.d.ts.map +1 -0
- package/dist/esm/renderers/code.d.ts +19 -0
- package/dist/esm/renderers/code.d.ts.map +1 -0
- package/dist/esm/renderers/confirm.d.ts +13 -0
- package/dist/esm/renderers/confirm.d.ts.map +1 -0
- package/dist/esm/renderers/diff.d.ts +24 -0
- package/dist/esm/renderers/diff.d.ts.map +1 -0
- package/dist/esm/renderers/file-tree.d.ts +24 -0
- package/dist/esm/renderers/file-tree.d.ts.map +1 -0
- package/dist/esm/renderers/form.d.ts +27 -0
- package/dist/esm/renderers/form.d.ts.map +1 -0
- package/dist/esm/renderers/gallery.d.ts +24 -0
- package/dist/esm/renderers/gallery.d.ts.map +1 -0
- package/dist/esm/renderers/image.d.ts +17 -0
- package/dist/esm/renderers/image.d.ts.map +1 -0
- package/dist/esm/renderers/kanban.d.ts +29 -0
- package/dist/esm/renderers/kanban.d.ts.map +1 -0
- package/dist/esm/renderers/layout.d.ts +17 -0
- package/dist/esm/renderers/layout.d.ts.map +1 -0
- package/dist/esm/renderers/mermaid.d.ts +19 -0
- package/dist/esm/renderers/mermaid.d.ts.map +1 -0
- package/dist/esm/renderers/metric.d.ts +16 -0
- package/dist/esm/renderers/metric.d.ts.map +1 -0
- package/dist/esm/renderers/poll.d.ts +17 -0
- package/dist/esm/renderers/poll.d.ts.map +1 -0
- package/dist/esm/renderers/progress.d.ts +18 -0
- package/dist/esm/renderers/progress.d.ts.map +1 -0
- package/dist/esm/renderers/status.d.ts +17 -0
- package/dist/esm/renderers/status.d.ts.map +1 -0
- package/dist/esm/renderers/svg.d.ts +13 -0
- package/dist/esm/renderers/svg.d.ts.map +1 -0
- package/dist/esm/renderers/table.d.ts +20 -0
- package/dist/esm/renderers/table.d.ts.map +1 -0
- package/dist/esm/renderers/terminal.d.ts +16 -0
- package/dist/esm/renderers/terminal.d.ts.map +1 -0
- package/dist/esm/renderers/timeline.d.ts +20 -0
- package/dist/esm/renderers/timeline.d.ts.map +1 -0
- package/dist/esm/theme.d.ts +10 -0
- package/dist/esm/theme.d.ts.map +1 -0
- package/dist/esm/types-C42V92x6.d.ts +75 -0
- package/dist/esm/types.d.ts +81 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/package.json +82 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A content block to be rendered. Generic over the data payload type.
|
|
3
|
+
*/
|
|
4
|
+
export interface ContentBlock<T = unknown> {
|
|
5
|
+
type: string;
|
|
6
|
+
data: T;
|
|
7
|
+
id: string;
|
|
8
|
+
streaming?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Renderer implementation for a specific block type.
|
|
12
|
+
* All renderers must implement render() and destroy().
|
|
13
|
+
* Streaming-capable renderers implement update().
|
|
14
|
+
* Interactive renderers implement onInteraction().
|
|
15
|
+
*/
|
|
16
|
+
export interface BlockRenderer<T = unknown> {
|
|
17
|
+
render(block: ContentBlock<T>, container: HTMLElement): void;
|
|
18
|
+
update?(block: ContentBlock<T>): void;
|
|
19
|
+
onInteraction?(callback: (interaction: BlockInteraction) => void): void;
|
|
20
|
+
destroy(): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Handle returned from renderBlock(). Allows updating, listening for
|
|
24
|
+
* interactions, and cleanup.
|
|
25
|
+
*/
|
|
26
|
+
export interface BlockHandle {
|
|
27
|
+
update(block: ContentBlock): void;
|
|
28
|
+
onInteraction(callback: (interaction: BlockInteraction) => void): void;
|
|
29
|
+
destroy(): void;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* User interaction with a rendered block. Every interaction includes
|
|
33
|
+
* a serialized text form suitable for chat input injection.
|
|
34
|
+
*/
|
|
35
|
+
export interface BlockInteraction {
|
|
36
|
+
blockId: string;
|
|
37
|
+
type: string;
|
|
38
|
+
payload: unknown;
|
|
39
|
+
serialized: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Options for renderBlock().
|
|
43
|
+
*/
|
|
44
|
+
export interface RenderOptions {
|
|
45
|
+
onReady?: () => void;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Factory function or class that creates a BlockRenderer.
|
|
49
|
+
* Used by the registry to instantiate renderers on demand.
|
|
50
|
+
*/
|
|
51
|
+
export type BlockRendererFactory<T = unknown> = () => BlockRenderer<T>;
|
|
52
|
+
/**
|
|
53
|
+
* Registry entry: either a factory (sync) or a lazy loader (async).
|
|
54
|
+
*/
|
|
55
|
+
export interface RegistryEntry {
|
|
56
|
+
factory?: BlockRendererFactory;
|
|
57
|
+
loader?: () => Promise<BlockRendererFactory>;
|
|
58
|
+
}
|
|
59
|
+
export interface ChartConfig {
|
|
60
|
+
type: 'bar' | 'line' | 'pie' | 'doughnut';
|
|
61
|
+
data: {
|
|
62
|
+
labels: string[];
|
|
63
|
+
datasets: DataSet[];
|
|
64
|
+
};
|
|
65
|
+
options?: ChartOptions;
|
|
66
|
+
}
|
|
67
|
+
export interface ChartOptions {
|
|
68
|
+
title?: string;
|
|
69
|
+
legend?: boolean;
|
|
70
|
+
responsive?: boolean;
|
|
71
|
+
}
|
|
72
|
+
export interface DataSet {
|
|
73
|
+
label: string;
|
|
74
|
+
values: number[];
|
|
75
|
+
color?: string;
|
|
76
|
+
}
|
|
77
|
+
export interface ChartInstance {
|
|
78
|
+
update(config: Partial<ChartConfig>): void;
|
|
79
|
+
destroy(): void;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7D,MAAM,CAAC,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,CAAC;IACxE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,aAAa,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,CAAC;IACvE,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;CAC9C;AAID,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;IAC1C,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;IAChD,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,IAAI,IAAI,CAAC;CACjB"}
|
package/package.json
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@luckydraw/blex",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Interactive content block rendering library — framework-agnostic, streaming-aware",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"import": "./dist/esm/index.js",
|
|
9
|
+
"types": "./dist/esm/index.d.ts"
|
|
10
|
+
},
|
|
11
|
+
"./chart": {
|
|
12
|
+
"import": "./dist/esm/chart/index.js",
|
|
13
|
+
"types": "./dist/esm/chart/index.d.ts"
|
|
14
|
+
},
|
|
15
|
+
"./react": {
|
|
16
|
+
"import": "./dist/esm/react/index.js",
|
|
17
|
+
"types": "./dist/esm/react/index.d.ts"
|
|
18
|
+
},
|
|
19
|
+
"./react/chart": {
|
|
20
|
+
"import": "./dist/esm/react/chart.js",
|
|
21
|
+
"types": "./dist/esm/react/chart.d.ts"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"main": "./dist/esm/index.js",
|
|
25
|
+
"types": "./dist/esm/index.d.ts",
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"scripts": {
|
|
30
|
+
"build": "tsup",
|
|
31
|
+
"build:types": "tsc --emitDeclarationOnly --outDir dist/esm",
|
|
32
|
+
"dev": "tsup --watch",
|
|
33
|
+
"test": "vitest run",
|
|
34
|
+
"test:watch": "vitest",
|
|
35
|
+
"lint": "eslint src/ --ext .ts,.tsx",
|
|
36
|
+
"typecheck": "tsc --noEmit",
|
|
37
|
+
"prepublishOnly": "npm run build && npm run build:types"
|
|
38
|
+
},
|
|
39
|
+
"keywords": [
|
|
40
|
+
"content-blocks",
|
|
41
|
+
"rendering",
|
|
42
|
+
"streaming",
|
|
43
|
+
"charts",
|
|
44
|
+
"interactive"
|
|
45
|
+
],
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@testing-library/dom": "^10.4.1",
|
|
49
|
+
"@testing-library/react": "^16.3.2",
|
|
50
|
+
"@types/react": "^18.3.28",
|
|
51
|
+
"@types/react-dom": "^19.2.3",
|
|
52
|
+
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
53
|
+
"@typescript-eslint/parser": "^7.0.0",
|
|
54
|
+
"chart.js": "^4.5.1",
|
|
55
|
+
"eslint": "^8.57.0",
|
|
56
|
+
"jsdom": "^24.0.0",
|
|
57
|
+
"react": "^19.2.4",
|
|
58
|
+
"react-dom": "^19.2.4",
|
|
59
|
+
"tsup": "^8.0.0",
|
|
60
|
+
"typescript": "^5.4.0",
|
|
61
|
+
"vitest": "^1.6.0"
|
|
62
|
+
},
|
|
63
|
+
"dependencies": {
|
|
64
|
+
"dompurify": "^3.1.0"
|
|
65
|
+
},
|
|
66
|
+
"peerDependencies": {
|
|
67
|
+
"chart.js": "^4.0.0",
|
|
68
|
+
"mermaid": "^10.0.0",
|
|
69
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
70
|
+
},
|
|
71
|
+
"peerDependenciesMeta": {
|
|
72
|
+
"chart.js": {
|
|
73
|
+
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"mermaid": {
|
|
76
|
+
"optional": true
|
|
77
|
+
},
|
|
78
|
+
"react": {
|
|
79
|
+
"optional": true
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|