@netless/fastboard-ui 1.0.0-canary.1 → 1.0.0-canary.11

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 (45) hide show
  1. package/dist/index.css +888 -0
  2. package/dist/index.d.ts +95 -69
  3. package/dist/index.js +7315 -1969
  4. package/dist/index.mjs +7317 -1969
  5. package/dist/index.svelte.mjs +9976 -3731
  6. package/package.json +6 -3
  7. package/src/actions/scroll.ts +1 -1
  8. package/src/actions/tippy.ts +9 -5
  9. package/src/behaviors/apps.ts +1 -1
  10. package/src/components/Button/Button.svelte +4 -1
  11. package/src/components/Button/Button.svelte.d.ts +2 -2
  12. package/src/components/Fastboard/Fastboard.scss +2 -3
  13. package/src/components/Fastboard/Fastboard.svelte +3 -3
  14. package/src/components/Fastboard/{Fastboard.svelte.ts → Fastboard.svelte.d.ts} +1 -1
  15. package/src/components/Fastboard/ReplayFastboard.svelte +5 -2
  16. package/src/components/Fastboard/{ReplayFastboard.svelte.ts → ReplayFastboard.svelte.d.ts} +2 -1
  17. package/src/components/Icons/Curve.svelte +10 -0
  18. package/src/components/Icons/CurveDashed.svelte +16 -0
  19. package/src/components/Icons/Eraser.svelte +35 -1
  20. package/src/components/Icons/EraserFilled.svelte +2 -2
  21. package/src/components/Icons/PencilEraser.svelte +16 -0
  22. package/src/components/Icons/PencilEraserFilled.svelte +16 -0
  23. package/src/components/Icons/index.ts +11 -0
  24. package/src/components/PageControl/PageControl.svelte +2 -2
  25. package/src/components/Toolbar/README.md +1 -1
  26. package/src/components/Toolbar/Toolbar.scss +5 -5
  27. package/src/components/Toolbar/Toolbar.svelte +24 -10
  28. package/src/components/Toolbar/Toolbar.svelte.d.ts +18 -1
  29. package/src/components/Toolbar/components/Contents.scss +14 -3
  30. package/src/components/Toolbar/components/Contents.svelte +191 -22
  31. package/src/components/Toolbar/components/PencilEraserSize.svelte +27 -0
  32. package/src/components/Toolbar/components/Shapes.svelte +1 -0
  33. package/src/components/Toolbar/components/Slider.svelte +0 -1
  34. package/src/components/Toolbar/components/StrokeColor.svelte +1 -0
  35. package/src/components/Toolbar/components/TextColor.svelte +1 -0
  36. package/src/components/Toolbar/components/constants.ts +32 -4
  37. package/src/components/Toolbar/components/helper.ts +1 -1
  38. package/src/components/theme.scss +11 -4
  39. package/src/helpers/index.ts +72 -48
  40. package/src/index.ts +8 -4
  41. package/src/style.scss +4 -0
  42. package/src/typings.ts +16 -6
  43. package/dist/index.js.map +0 -1
  44. package/dist/index.mjs.map +0 -1
  45. package/dist/index.svelte.mjs.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,41 +1,24 @@
1
1
  import { FastboardApp, FastboardPlayer } from '@netless/fastboard-core';
2
2
  import { SvelteComponentTyped } from 'svelte';
3
3
 
4
- interface SvelteAction<T = void> {
5
- (node: HTMLElement, parameters: T): void | {
6
- update?: (parameters: T) => void;
7
- destroy?: () => void;
8
- };
9
- }
10
- declare type Theme = "light" | "dark";
11
- declare type Language = "en" | "zh-CN";
12
- declare type IconType = "normal" | "disable";
13
- declare type GenericIcon<K extends string, E extends string = IconType> = {
14
- [key in K]: {
15
- [kind in E]: string;
16
- };
17
- };
18
- declare type I18nData<T extends string> = Record<Language, Record<T, string>>;
19
- interface ToolbarConfig {
20
- apps?: {
21
- enable?: boolean;
22
- };
4
+ declare interface PageControlProps {
5
+ app?: FastboardApp | null;
6
+ theme?: Theme;
7
+ language?: Language;
8
+ icons?: GenericIcon<"prev" | "next" | "add">;
23
9
  }
24
- interface FastboardUIConfig {
25
- toolbar?: {
26
- enable?: boolean;
27
- } & ToolbarConfig;
28
- redo_undo?: {
29
- enable?: boolean;
30
- };
31
- zoom_control?: {
32
- enable?: boolean;
33
- };
34
- page_control?: {
35
- enable?: boolean;
36
- };
10
+
11
+ declare class PageControl extends SvelteComponentTyped<PageControlProps> {}
12
+
13
+ declare interface PlayerControlProps {
14
+ player?: FastboardPlayer | null;
15
+ theme?: Theme;
16
+ language?: Language;
17
+ icons?: GenericIcon<"play" | "pause" | "loading">;
37
18
  }
38
19
 
20
+ declare class PlayerControl extends SvelteComponentTyped<PlayerControlProps> {}
21
+
39
22
  declare interface RedoUndoProps {
40
23
  app?: FastboardApp | null;
41
24
  theme?: Theme;
@@ -45,14 +28,31 @@ declare interface RedoUndoProps {
45
28
 
46
29
  declare class RedoUndo extends SvelteComponentTyped<RedoUndoProps> {}
47
30
 
48
- declare interface PageControlProps {
31
+ declare interface ToolbarConfig {
32
+ pencil?: {
33
+ dotted?: boolean;
34
+ };
35
+ apps?: {
36
+ enable?: boolean;
37
+ };
38
+ eraser?: {
39
+ /**
40
+ * - delete: remove shapes under eraser
41
+ * - pencil: wipe out part of strokes under eraser, like a real eraser
42
+ * - both (default): will show a panel to choose different behavior
43
+ */
44
+ behavior?: "delete" | "pencil" | "both";
45
+ };
46
+ }
47
+
48
+ declare interface ToolbarProps {
49
49
  app?: FastboardApp | null;
50
50
  theme?: Theme;
51
51
  language?: Language;
52
- icons?: GenericIcon<"prev" | "next" | "add">;
52
+ config?: ToolbarConfig;
53
53
  }
54
54
 
55
- declare class PageControl extends SvelteComponentTyped<PageControlProps> {}
55
+ declare class Toolbar extends SvelteComponentTyped<ToolbarProps> {}
56
56
 
57
57
  declare interface ZoomControlProps {
58
58
  app?: FastboardApp | null;
@@ -63,71 +63,97 @@ declare interface ZoomControlProps {
63
63
 
64
64
  declare class ZoomControl extends SvelteComponentTyped<ZoomControlProps> {}
65
65
 
66
- declare interface ToolbarProps {
67
- app?: FastboardApp | null;
68
- theme?: Theme;
69
- language?: Language;
70
- config?: ToolbarConfig;
66
+ interface SvelteAction<T = void> {
67
+ (node: HTMLElement, parameters: T): void | {
68
+ update?: (parameters: T) => void;
69
+ destroy?: () => void;
70
+ };
71
+ }
72
+ type Theme = "light" | "dark";
73
+ type Language = "en" | "zh-CN";
74
+ type IconType = "normal" | "disable";
75
+ type GenericIcon<K extends string, E extends string = IconType> = {
76
+ [key in K]: {
77
+ [kind in E]: string;
78
+ };
79
+ };
80
+ type I18nData<T extends string> = Record<Language, Record<T, string>>;
81
+ interface FastboardUIConfig {
82
+ toolbar?: {
83
+ enable?: boolean;
84
+ } & ToolbarConfig;
85
+ redo_undo?: {
86
+ enable?: boolean;
87
+ icons?: RedoUndoProps["icons"];
88
+ };
89
+ zoom_control?: {
90
+ enable?: boolean;
91
+ icons?: ZoomControlProps["icons"];
92
+ };
93
+ page_control?: {
94
+ enable?: boolean;
95
+ icons?: PageControlProps["icons"];
96
+ };
97
+ }
98
+ interface ReplayFastboardUIConfig {
99
+ player_control?: {
100
+ enable?: boolean;
101
+ icons?: PlayerControlProps["icons"];
102
+ };
71
103
  }
72
104
 
73
- declare class Toolbar extends SvelteComponentTyped<ToolbarProps> {}
74
-
75
- declare interface PlayerControlProps {
105
+ declare interface ReplayFastboardProps {
76
106
  player?: FastboardPlayer | null;
77
107
  theme?: Theme;
78
108
  language?: Language;
79
- icons?: GenericIcon<"play" | "pause" | "loading">;
109
+ config?: ReplayFastboardUIConfig;
110
+ containerRef?: (container: HTMLDivElement | null) => void;
80
111
  }
81
112
 
82
- declare class PlayerControl extends SvelteComponentTyped<PlayerControlProps> {}
83
-
84
- declare interface ReplayFastboardProps {
85
- player?: FastboardPlayer | null;
86
- theme?: Theme;
87
- language?: Language;
88
- containerRef?: (container: HTMLDivElement | null) => void;
89
- }
90
- declare class ReplayFastboard extends SvelteComponentTyped<ReplayFastboardProps> {
91
- }
113
+ declare class ReplayFastboard extends SvelteComponentTyped<ReplayFastboardProps> {}
92
114
 
93
115
  declare interface FastboardProps {
94
- app?: FastboardApp | null;
95
- theme?: Theme;
96
- language?: Language;
97
- containerRef?: (container: HTMLDivElement | null) => void;
98
- config?: FastboardUIConfig;
99
- }
100
- declare class Fastboard extends SvelteComponentTyped<FastboardProps> {
116
+ app?: FastboardApp | null;
117
+ theme?: Theme;
118
+ language?: Language;
119
+ containerRef?: (container: HTMLDivElement | null) => void;
120
+ config?: FastboardUIConfig;
101
121
  }
102
122
 
123
+ declare class Fastboard extends SvelteComponentTyped<FastboardProps> {}
124
+
103
125
  interface UI {
104
126
  /** render UI to div */
105
- mount(div: Element, props?: Omit<FastboardProps, "app">): UI;
127
+ mount(div: Element, props?: FastboardProps): UI;
106
128
  /** update UI (theme, language, etc.) */
107
- update(props?: Omit<FastboardProps, "app">): void;
129
+ update(props?: FastboardProps): void;
108
130
  /** remove UI */
109
131
  destroy(): void;
132
+ /** div == null ? destroy() : mount() */
133
+ setElement(div: Element | null): void;
110
134
  }
111
135
  /**
112
136
  * @example
113
137
  * let ui = createUI(fastboardApp, document.getElementById("whiteboard"));
114
138
  * ui.update({ theme: "dark" })
115
139
  */
116
- declare function createUI(app: FastboardApp, div?: Element): UI;
140
+ declare function createUI(app?: FastboardApp | null, div?: Element): UI;
117
141
  interface ReplayUI {
118
142
  /** render UI to div */
119
- mount(div: Element, props?: Omit<ReplayFastboardProps, "player">): ReplayUI;
143
+ mount(div: Element, props?: ReplayFastboardProps): ReplayUI;
120
144
  /** update UI (theme, language, etc.) */
121
- update(props?: Omit<ReplayFastboardProps, "player">): void;
145
+ update(props?: ReplayFastboardProps): void;
122
146
  /** remove UI */
123
147
  destroy(): void;
148
+ /** div == null ? destroy() : mount() */
149
+ setElement(div: Element | null): void;
124
150
  }
125
151
  /**
126
152
  * @example
127
153
  * let ui = createReplayUI(fastboardPlayer, document.getElementById("whiteboard"));
128
154
  * ui.update({ theme: "dark" })
129
155
  */
130
- declare function createReplayUI(player: FastboardPlayer, div?: Element): ReplayUI;
156
+ declare function createReplayUI(player?: FastboardPlayer | null, div?: Element): ReplayUI;
131
157
 
132
158
  interface AppInToolbar {
133
159
  kind: string;
@@ -148,6 +174,6 @@ declare class AppsInToolbar {
148
174
  clear(): void;
149
175
  }
150
176
 
151
- declare const apps: AppsInToolbar;
177
+ declare const stockedApps: AppsInToolbar;
152
178
 
153
- export { AppInToolbar, AppsInToolbar, Fastboard, FastboardProps, FastboardUIConfig, GenericIcon, I18nData, IconType, Language, PageControl, PageControlProps, PlayerControl, PlayerControlProps, RedoUndo, RedoUndoProps, ReplayFastboard, ReplayFastboardProps, ReplayUI, SvelteAction, Theme, Toolbar, ToolbarConfig, ToolbarProps, UI, ZoomControl, ZoomControlProps, apps, createReplayUI, createUI };
179
+ export { AppInToolbar, AppsInToolbar, Fastboard, FastboardProps, FastboardUIConfig, GenericIcon, I18nData, IconType, Language, PageControl, PageControlProps, PlayerControl, PlayerControlProps, RedoUndo, RedoUndoProps, ReplayFastboard, ReplayFastboardProps, ReplayFastboardUIConfig, ReplayUI, SvelteAction, Theme, Toolbar, ToolbarProps, UI, ZoomControl, ZoomControlProps, createReplayUI, createUI, stockedApps };