@netless/fastboard-ui 0.3.13-canary.0 → 0.3.13-canary.2

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 (3) hide show
  1. package/dist/lite.d.ts +165 -0
  2. package/lite.d.ts +1 -0
  3. package/package.json +17 -6
package/dist/lite.d.ts ADDED
@@ -0,0 +1,165 @@
1
+ import { FastboardApp, FastboardPlayer } from '@netless/fastboard-core/lite';
2
+ import { SvelteComponentTyped } from 'svelte/internal';
3
+ export { SvelteComponentTyped } from 'svelte/internal';
4
+
5
+ interface SvelteAction<T = void> {
6
+ (node: HTMLElement, parameters: T): void | {
7
+ update?: (parameters: T) => void;
8
+ destroy?: () => void;
9
+ };
10
+ }
11
+ type Theme = "light" | "dark";
12
+ type Language = "en" | "zh-CN";
13
+ type IconType = "normal" | "disable";
14
+ type GenericIcon<K extends string, E extends string = IconType> = {
15
+ [key in K]: {
16
+ [kind in E]: string;
17
+ };
18
+ };
19
+ type I18nData<T extends string> = Record<Language, Record<T, string>>;
20
+ type ToolbarItem = "clicker" | "selector" | "pencil" | "text" | "shapes" | "eraser" | "clear" | "hand" | "laserPointer";
21
+ interface ToolbarConfig {
22
+ /** @default "left" */
23
+ placement?: "left" | "right";
24
+ /** @default ["clicker", "selector", "pencil", "text", "shapes", "eraser", "clear"] */
25
+ items?: ToolbarItem[];
26
+ apps?: {
27
+ enable?: boolean;
28
+ };
29
+ }
30
+ interface FastboardUIConfig {
31
+ toolbar?: {
32
+ enable?: boolean;
33
+ } & ToolbarConfig;
34
+ redo_undo?: {
35
+ enable?: boolean;
36
+ };
37
+ zoom_control?: {
38
+ enable?: boolean;
39
+ };
40
+ page_control?: {
41
+ enable?: boolean;
42
+ };
43
+ }
44
+ interface ReplayFastboardUIConfig {
45
+ player_control?: {
46
+ enable?: boolean;
47
+ };
48
+ }
49
+
50
+ declare interface RedoUndoProps {
51
+ app?: FastboardApp | null;
52
+ theme?: Theme;
53
+ language?: Language;
54
+ icons?: GenericIcon<"undo" | "redo">;
55
+ }
56
+
57
+ declare class RedoUndo extends SvelteComponentTyped<RedoUndoProps> {}
58
+
59
+ declare interface PageControlProps {
60
+ app?: FastboardApp | null;
61
+ theme?: Theme;
62
+ language?: Language;
63
+ icons?: GenericIcon<"prev" | "next" | "add">;
64
+ }
65
+
66
+ declare class PageControl extends SvelteComponentTyped<PageControlProps> {}
67
+
68
+ declare interface ZoomControlProps {
69
+ app?: FastboardApp | null;
70
+ theme?: Theme;
71
+ language?: Language;
72
+ icons?: GenericIcon<"plus" | "minus" | "reset">;
73
+ }
74
+
75
+ declare class ZoomControl extends SvelteComponentTyped<ZoomControlProps> {}
76
+
77
+ declare interface ToolbarProps {
78
+ app?: FastboardApp | null;
79
+ theme?: Theme;
80
+ language?: Language;
81
+ config?: ToolbarConfig;
82
+ }
83
+
84
+ declare class Toolbar extends SvelteComponentTyped<ToolbarProps> {}
85
+
86
+ declare interface PlayerControlProps {
87
+ player?: FastboardPlayer | null;
88
+ theme?: Theme;
89
+ language?: Language;
90
+ icons?: GenericIcon<"play" | "pause" | "loading">;
91
+ }
92
+
93
+ declare class PlayerControl extends SvelteComponentTyped<PlayerControlProps> {}
94
+
95
+ declare interface ReplayFastboardProps {
96
+ player?: FastboardPlayer | null;
97
+ theme?: Theme;
98
+ language?: Language;
99
+ containerRef?: (container: HTMLDivElement | null) => void;
100
+ config?: ReplayFastboardUIConfig;
101
+ }
102
+
103
+ declare class ReplayFastboard extends SvelteComponentTyped<ReplayFastboardProps> {}
104
+
105
+ declare interface FastboardProps {
106
+ app?: FastboardApp | null;
107
+ theme?: Theme;
108
+ language?: Language;
109
+ containerRef?: (container: HTMLDivElement | null) => void;
110
+ config?: FastboardUIConfig;
111
+ }
112
+
113
+ declare class Fastboard extends SvelteComponentTyped<FastboardProps> {}
114
+
115
+ interface UI {
116
+ /** render UI to div */
117
+ mount(div: Element, props?: FastboardProps): UI;
118
+ /** update UI (theme, language, etc.) */
119
+ update(props?: FastboardProps): void;
120
+ /** remove UI */
121
+ destroy(): void;
122
+ }
123
+ /**
124
+ * @example
125
+ * let ui = createUI(fastboardApp, document.getElementById("whiteboard"));
126
+ * ui.update({ theme: "dark" })
127
+ */
128
+ declare function createUI(app?: FastboardApp | null, div?: Element): UI;
129
+ interface ReplayUI {
130
+ /** render UI to div */
131
+ mount(div: Element, props?: ReplayFastboardProps): ReplayUI;
132
+ /** update UI (theme, language, etc.) */
133
+ update(props?: ReplayFastboardProps): void;
134
+ /** remove UI */
135
+ destroy(): void;
136
+ }
137
+ /**
138
+ * @example
139
+ * let ui = createReplayUI(fastboardPlayer, document.getElementById("whiteboard"));
140
+ * ui.update({ theme: "dark" })
141
+ */
142
+ declare function createReplayUI(player?: FastboardPlayer | null, div?: Element): ReplayUI;
143
+
144
+ interface AppInToolbar {
145
+ kind: string;
146
+ icon: string;
147
+ label: string;
148
+ onClick: (app: FastboardApp) => void;
149
+ }
150
+ declare class AppsInToolbar {
151
+ private _data;
152
+ _listeners: Array<(data: AppInToolbar[]) => void>;
153
+ constructor(_data: AppInToolbar[]);
154
+ get data(): AppInToolbar[];
155
+ get length(): number;
156
+ subscribe(fn: (data: AppInToolbar[]) => void): () => void;
157
+ push(...data: AppInToolbar[]): void;
158
+ insert(data: AppInToolbar, index: number): void;
159
+ delete(filter: (data: AppInToolbar) => boolean): void;
160
+ clear(): void;
161
+ }
162
+
163
+ declare const apps: AppsInToolbar;
164
+
165
+ export { AppInToolbar, AppsInToolbar, Fastboard, FastboardProps, FastboardUIConfig, GenericIcon, I18nData, IconType, Language, PageControl, PageControlProps, PlayerControl, PlayerControlProps, RedoUndo, RedoUndoProps, ReplayFastboard, ReplayFastboardProps, ReplayFastboardUIConfig, ReplayUI, SvelteAction, Theme, Toolbar, ToolbarConfig, ToolbarItem, ToolbarProps, UI, ZoomControl, ZoomControlProps, apps, createReplayUI, createUI };
package/lite.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./dist/lite";
package/package.json CHANGED
@@ -1,24 +1,25 @@
1
1
  {
2
2
  "name": "@netless/fastboard-ui",
3
- "version": "0.3.13-canary.0",
3
+ "version": "0.3.13-canary.2",
4
4
  "description": "The front-end of @netless/fastboard-core.",
5
5
  "main": "dist/index.js",
6
6
  "svelte": "dist/index.svelte.mjs",
7
7
  "files": [
8
8
  "src",
9
- "dist"
9
+ "dist",
10
+ "lite.d.ts"
10
11
  ],
11
12
  "repository": "netless-io/fastboard",
12
13
  "peerDependencies": {
13
- "@netless/fastboard-core": "0.3.13-canary.0"
14
+ "@netless/fastboard-core": "0.3.13-canary.2"
14
15
  },
15
16
  "dependencies": {
16
17
  "tippy.js": "^6.3.7"
17
18
  },
18
19
  "devDependencies": {
19
- "@netless/buildtool": "0.1.0",
20
20
  "@netless/esbuild-plugin-inline-sass": "0.1.0",
21
- "@netless/fastboard-core": "0.3.13-canary.0"
21
+ "@netless/buildtool": "0.1.0",
22
+ "@netless/fastboard-core": "0.3.13-canary.2"
22
23
  },
23
24
  "scripts": {
24
25
  "cleanup": "rimraf dist",
@@ -28,5 +29,15 @@
28
29
  "test:ssr": "esbuild-dev test/ssr.ts"
29
30
  },
30
31
  "module": "dist/index.mjs",
31
- "types": "dist/index.d.ts"
32
+ "types": "dist/index.d.ts",
33
+ "exports": {
34
+ ".": {
35
+ "types": "./dist/index.d.ts",
36
+ "default": "./dist/index.mjs"
37
+ },
38
+ "./lite": {
39
+ "types": "./dist/lite.d.ts",
40
+ "default": "./dist/index.mjs"
41
+ }
42
+ }
32
43
  }