microboard-temp 0.14.18 → 0.14.19

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.
@@ -0,0 +1,4 @@
1
+ import type { OverlayIcon } from "./OverlayMetadata";
2
+ export declare const OVERLAY_ICON_SPRITE_PATH = "src/Overlay/overlay-icons.svg";
3
+ export declare function overlaySymbolIcon(key: string): OverlayIcon;
4
+ export declare function overlayAssetIcon(path: string): OverlayIcon;
@@ -6,6 +6,33 @@ export type OverlayValueSource = {
6
6
  kind: "toolProperty";
7
7
  property: string;
8
8
  };
9
+ export type OverlayCondition = {
10
+ kind: "equals";
11
+ source: OverlayValueSource;
12
+ value: unknown;
13
+ } | {
14
+ kind: "truthy";
15
+ source: OverlayValueSource;
16
+ } | {
17
+ kind: "falsy";
18
+ source: OverlayValueSource;
19
+ } | {
20
+ kind: "itemTypeIn";
21
+ itemTypes: string[];
22
+ } | {
23
+ kind: "selectionSize";
24
+ min?: number;
25
+ max?: number;
26
+ } | {
27
+ kind: "allOf";
28
+ conditions: OverlayCondition[];
29
+ } | {
30
+ kind: "anyOf";
31
+ conditions: OverlayCondition[];
32
+ } | {
33
+ kind: "not";
34
+ condition: OverlayCondition;
35
+ };
9
36
  export interface OverlayIconStateHint {
10
37
  swatch?: OverlayValueSource;
11
38
  note?: string;
@@ -18,6 +45,7 @@ export type OverlayIcon = {
18
45
  } | {
19
46
  kind: "symbol";
20
47
  key: string;
48
+ sourcePath?: string;
21
49
  state?: OverlayIconStateHint;
22
50
  };
23
51
  export interface OverlayOptionDefinition {
@@ -26,6 +54,7 @@ export interface OverlayOptionDefinition {
26
54
  value: unknown;
27
55
  icon?: OverlayIcon;
28
56
  description?: string;
57
+ family?: string;
29
58
  }
30
59
  export interface OverlayCatalogDefinition {
31
60
  kind: "catalog";
@@ -42,11 +71,20 @@ export interface OverlayColorEditor extends OverlayEditorBase {
42
71
  kind: "color";
43
72
  palette?: string[];
44
73
  allowTransparent?: boolean;
74
+ presentation?: "circle" | "square" | "sticker";
75
+ }
76
+ export interface OverlayQuickOptionsDefinition {
77
+ family?: string;
78
+ optionIds?: string[];
79
+ maxVisible?: number;
80
+ overflow?: "clip" | "scroll" | "show-more";
45
81
  }
46
82
  export interface OverlayEnumIconEditor extends OverlayEditorBase {
47
83
  kind: "enum-icon";
48
84
  options: OverlayOptionDefinition[];
49
85
  catalog?: OverlayCatalogDefinition;
86
+ layout?: "row" | "grid" | "list";
87
+ quickOptions?: OverlayQuickOptionsDefinition;
50
88
  }
51
89
  export interface OverlayEnumListEditor extends OverlayEditorBase {
52
90
  kind: "enum-list";
@@ -79,6 +117,20 @@ export interface OverlayDynamicOptionsEditor extends OverlayEditorBase {
79
117
  providerId: string;
80
118
  presentation: "list" | "icon-grid";
81
119
  }
120
+ export interface OverlayAssetUploadFieldDefinition {
121
+ id: string;
122
+ label: string;
123
+ description?: string;
124
+ accept?: string[];
125
+ multiple?: boolean;
126
+ required?: boolean;
127
+ }
128
+ export interface OverlayAssetUploadEditor extends OverlayEditorBase {
129
+ kind: "asset-upload";
130
+ mode: "single" | "multiple" | "paired";
131
+ accept?: string[];
132
+ fields?: OverlayAssetUploadFieldDefinition[];
133
+ }
82
134
  export interface OverlayToggleEditor extends OverlayEditorBase {
83
135
  kind: "toggle";
84
136
  trueLabel?: string;
@@ -90,7 +142,7 @@ export interface OverlayCatalogEditor extends OverlayEditorBase {
90
142
  options: OverlayOptionDefinition[];
91
143
  presentation?: "grid" | "list";
92
144
  }
93
- export type OverlayEditor = OverlayColorEditor | OverlayEnumIconEditor | OverlayEnumListEditor | OverlayNumberEditor | OverlayNumberStepperEditor | OverlaySliderEditor | OverlayDynamicOptionsEditor | OverlayToggleEditor | OverlayCatalogEditor;
145
+ export type OverlayEditor = OverlayColorEditor | OverlayEnumIconEditor | OverlayEnumListEditor | OverlayNumberEditor | OverlayNumberStepperEditor | OverlaySliderEditor | OverlayDynamicOptionsEditor | OverlayAssetUploadEditor | OverlayToggleEditor | OverlayCatalogEditor;
94
146
  export type OverlayInvocationArg = {
95
147
  kind: "control";
96
148
  controlId: string;
@@ -132,6 +184,7 @@ export interface OverlayControlDefinition {
132
184
  editor: OverlayEditor;
133
185
  valueAdapter?: OverlayControlValueAdapter;
134
186
  invoke?: OverlayInvocation;
187
+ when?: OverlayCondition;
135
188
  }
136
189
  export interface OverlayControlGroupDefinition {
137
190
  id: string;
@@ -139,6 +192,7 @@ export interface OverlayControlGroupDefinition {
139
192
  icon?: OverlayIcon;
140
193
  controlIds: string[];
141
194
  description?: string;
195
+ when?: OverlayCondition;
142
196
  }
143
197
  export type OverlayActionTarget = "single" | "each" | "selection";
144
198
  export interface OverlayActionDefinition {
@@ -150,10 +204,19 @@ export interface OverlayActionDefinition {
150
204
  invoke?: OverlayInvocation;
151
205
  controls?: OverlayControlDefinition[];
152
206
  groups?: OverlayControlGroupDefinition[];
207
+ when?: OverlayCondition;
208
+ }
209
+ export interface OverlayActionSectionDefinition {
210
+ id: string;
211
+ label: string;
212
+ icon?: OverlayIcon;
213
+ actionIds: string[];
214
+ description?: string;
153
215
  }
154
216
  export interface ItemOverlayDefinition {
155
217
  itemType: string;
156
218
  actions: OverlayActionDefinition[];
219
+ sections?: OverlayActionSectionDefinition[];
157
220
  }
158
221
  export interface SelectionOverlayActionDefinition {
159
222
  id: string;
@@ -169,6 +232,32 @@ export interface ToolDefaultsDefinition {
169
232
  controls: OverlayControlDefinition[];
170
233
  groups?: OverlayControlGroupDefinition[];
171
234
  }
235
+ export interface OverlayWorkflowDefinition {
236
+ kind: "property-sheet";
237
+ controls: OverlayControlDefinition[];
238
+ groups?: OverlayControlGroupDefinition[];
239
+ submitLabel?: string;
240
+ description?: string;
241
+ }
242
+ export interface OverlayToolGroupDefinition {
243
+ id: string;
244
+ label: string;
245
+ icon?: OverlayIcon;
246
+ description?: string;
247
+ order?: number;
248
+ behavior?: "open-panel" | "activate-last-used";
249
+ }
250
+ export interface OverlayToolSurfaceDefinition {
251
+ order?: number;
252
+ group?: OverlayToolGroupDefinition;
253
+ relatedToolNames?: string[];
254
+ }
255
+ export type OverlayToolLaunchDefinition = {
256
+ kind: "activate-tool";
257
+ } | {
258
+ kind: "workflow";
259
+ workflow: OverlayWorkflowDefinition;
260
+ };
172
261
  export interface ToolOverlayDefinition {
173
262
  toolName: string;
174
263
  label: string;
@@ -178,5 +267,7 @@ export interface ToolOverlayDefinition {
178
267
  description?: string;
179
268
  createsItemType?: string;
180
269
  defaults?: ToolDefaultsDefinition;
270
+ launch?: OverlayToolLaunchDefinition;
271
+ surface?: OverlayToolSurfaceDefinition;
181
272
  }
182
273
  export {};
@@ -1,3 +1,4 @@
1
1
  export * from "./OverlayMetadata";
2
2
  export * from "./OverlayIcons";
3
3
  export * from "./overlayRegistry";
4
+ export * from "./IconPack";
@@ -1,12 +1,28 @@
1
1
  import type { BaseItem } from "../Items/BaseItem/BaseItem";
2
2
  import type { Tool } from "../Tools/Tool";
3
- import type { ItemOverlayDefinition, OverlayActionDefinition, OverlayOptionDefinition, SelectionOverlayActionDefinition, ToolOverlayDefinition } from "./OverlayMetadata";
3
+ import type { ItemOverlayDefinition, OverlayActionDefinition, OverlayCondition, OverlayOptionDefinition, SelectionOverlayActionDefinition, ToolOverlayDefinition } from "./OverlayMetadata";
4
4
  export interface OverlayDynamicOptionsContext {
5
5
  item?: BaseItem;
6
6
  items?: readonly BaseItem[];
7
7
  tool?: Tool;
8
8
  }
9
9
  export type OverlayDynamicOptionsResolver = (context: OverlayDynamicOptionsContext) => OverlayOptionDefinition[];
10
+ export interface OverlayCreateSurfaceGroupEntry {
11
+ kind: "group";
12
+ id: string;
13
+ label: string;
14
+ description?: string;
15
+ icon?: ToolOverlayDefinition["icon"];
16
+ order?: number;
17
+ behavior?: "open-panel" | "activate-last-used";
18
+ tools: ToolOverlayDefinition[];
19
+ }
20
+ export interface OverlayCreateSurfaceToolEntry {
21
+ kind: "tool";
22
+ tool: ToolOverlayDefinition;
23
+ order?: number;
24
+ }
25
+ export type OverlayCreateSurfaceEntry = OverlayCreateSurfaceGroupEntry | OverlayCreateSurfaceToolEntry;
10
26
  export declare const itemOverlays: Record<string, ItemOverlayDefinition>;
11
27
  export declare const toolOverlays: Record<string, ToolOverlayDefinition>;
12
28
  export declare const dynamicOptionsResolvers: Record<string, OverlayDynamicOptionsResolver>;
@@ -18,7 +34,9 @@ export declare function registerDynamicOptionsResolver(id: string, resolver: Ove
18
34
  export declare function getItemOverlay(itemOrType: BaseItem | string): ItemOverlayDefinition | undefined;
19
35
  export declare function getToolOverlay(toolName: string): ToolOverlayDefinition | undefined;
20
36
  export declare function listToolOverlays(): ToolOverlayDefinition[];
37
+ export declare function listCreateSurfaceEntries(): OverlayCreateSurfaceEntry[];
21
38
  export declare function listSelectionActions(): SelectionOverlayActionDefinition[];
22
39
  export declare function getSelectionOverlayActions(items: readonly BaseItem[]): SelectionOverlayActionDefinition[];
23
40
  export declare function resolveDynamicOptions(providerId: string, context: OverlayDynamicOptionsContext): OverlayOptionDefinition[];
41
+ export declare function matchesOverlayCondition(condition: OverlayCondition | undefined, context: OverlayDynamicOptionsContext): boolean;
24
42
  export declare function intersectOverlayActions(items: readonly BaseItem[]): OverlayActionDefinition[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "microboard-temp",
3
- "version": "0.14.18",
3
+ "version": "0.14.19",
4
4
  "description": "A flexible interactive whiteboard library",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",