@glassly/miniapp 0.3.5-dev.706 → 0.3.5

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.
@@ -4,10 +4,11 @@
4
4
  * Both ends of a dashboard widget:
5
5
  * - Provider: `provide(id, hooks)` serves a widget declared in `miniapp.json`.
6
6
  * The host hands it a box; the provider pushes a frame for that box with
7
- * `update()` whenever its state changes and answers the wearer's input
8
- * through `onEvent`. A provider runs in widget mode while a host has its
9
- * widget placed: no card in the app switcher, no frame of its own on the
10
- * glasses, no touch input of its own.
7
+ * `update()` whenever its state changes and takes the wearer's input
8
+ * through `onEvent` while the widget is active: a tap on the selected
9
+ * card activates it, a double tap hands input back. A provider runs in
10
+ * widget mode while a host has its widget placed: no card in the app
11
+ * switcher, no frame of its own on the glasses, no touch input of its own.
11
12
  * - Host (HOST_WIDGETS): `list()` the declared widgets, `place()` one in a
12
13
  * box, hear its frames through `onFrame()`, forward input with `send()`
13
14
  * and `unplace()` it. A provider with nothing placed stops.
@@ -24,34 +25,31 @@ export interface WidgetBox {
24
25
  width: number;
25
26
  height: number;
26
27
  }
27
- /** The wearer's input, forwarded by the host while the widget is focused. */
28
+ /** The wearer's input, forwarded by the host while the widget is active. */
28
29
  export type WidgetEvent =
29
- /** Focus entered the widget from one side: select the stop nearest that side. */
30
+ /** The wearer tapped the selected widget: it owns every swipe and tap until it is deactivated. */
30
31
  {
31
- type: "focus";
32
- from: "left" | "right";
32
+ type: "activate";
33
33
  }
34
- /** A swipe while focused; answer `{exit}` to hand focus back past that side. */
34
+ /** The wearer double-tapped out, or the dashboard closed: show no selection. */
35
+ | {
36
+ type: "deactivate";
37
+ }
38
+ /** A swipe while active. */
35
39
  | {
36
40
  type: "swipe";
37
41
  direction: "left" | "right" | "up" | "down";
38
42
  }
39
- /** A tap on the focused stop. */
43
+ /** A tap while active. */
40
44
  | {
41
45
  type: "tap";
42
46
  }
43
- /** Focus left the widget. */
44
- | {
45
- type: "blur";
46
- }
47
47
  /** The host is about to show the widget: refresh what it draws, then return. */
48
48
  | {
49
49
  type: "beforeShow";
50
50
  };
51
51
  /** A provider's answer to an event; nothing means handled. */
52
52
  export type WidgetEventResult = {
53
- exit: "left" | "right";
54
- } | {
55
53
  handled?: boolean;
56
54
  } | void;
57
55
  export interface WidgetProviderHooks {
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@
4
4
  * Both ends of a dashboard widget:
5
5
  * - Provider: `provide(id, hooks)` serves a widget declared in `miniapp.json`.
6
6
  * The host hands it a box; the provider pushes a frame for that box with
7
- * `update()` whenever its state changes and answers the wearer's input
8
- * through `onEvent`. A provider runs in widget mode while a host has its
9
- * widget placed: no card in the app switcher, no frame of its own on the
10
- * glasses, no touch input of its own.
7
+ * `update()` whenever its state changes and takes the wearer's input
8
+ * through `onEvent` while the widget is active: a tap on the selected
9
+ * card activates it, a double tap hands input back. A provider runs in
10
+ * widget mode while a host has its widget placed: no card in the app
11
+ * switcher, no frame of its own on the glasses, no touch input of its own.
11
12
  * - Host (HOST_WIDGETS): `list()` the declared widgets, `place()` one in a
12
13
  * box, hear its frames through `onFrame()`, forward input with `send()`
13
14
  * and `unplace()` it. A provider with nothing placed stops.
@@ -1 +1 @@
1
- {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glassly/miniapp",
3
- "version": "0.3.5-dev.706",
3
+ "version": "0.3.5",
4
4
  "description": "SDK for building Glassly local miniapps (browser/WebView)",
5
5
  "author": "Glassly Labs",
6
6
  "license": "MIT",
@@ -73,7 +73,7 @@
73
73
  }
74
74
  },
75
75
  "dependencies": {
76
- "@glassly/cloud-protocol": "0.3.5-dev.706",
76
+ "@glassly/cloud-protocol": "0.3.5",
77
77
  "eventemitter3": "^5.0.1"
78
78
  },
79
79
  "devDependencies": {
@@ -4,10 +4,11 @@
4
4
  * Both ends of a dashboard widget:
5
5
  * - Provider: `provide(id, hooks)` serves a widget declared in `miniapp.json`.
6
6
  * The host hands it a box; the provider pushes a frame for that box with
7
- * `update()` whenever its state changes and answers the wearer's input
8
- * through `onEvent`. A provider runs in widget mode while a host has its
9
- * widget placed: no card in the app switcher, no frame of its own on the
10
- * glasses, no touch input of its own.
7
+ * `update()` whenever its state changes and takes the wearer's input
8
+ * through `onEvent` while the widget is active: a tap on the selected
9
+ * card activates it, a double tap hands input back. A provider runs in
10
+ * widget mode while a host has its widget placed: no card in the app
11
+ * switcher, no frame of its own on the glasses, no touch input of its own.
11
12
  * - Host (HOST_WIDGETS): `list()` the declared widgets, `place()` one in a
12
13
  * box, hear its frames through `onFrame()`, forward input with `send()`
13
14
  * and `unplace()` it. A provider with nothing placed stops.
@@ -29,21 +30,21 @@ export interface WidgetBox {
29
30
  height: number
30
31
  }
31
32
 
32
- /** The wearer's input, forwarded by the host while the widget is focused. */
33
+ /** The wearer's input, forwarded by the host while the widget is active. */
33
34
  export type WidgetEvent =
34
- /** Focus entered the widget from one side: select the stop nearest that side. */
35
- | {type: "focus"; from: "left" | "right"}
36
- /** A swipe while focused; answer `{exit}` to hand focus back past that side. */
35
+ /** The wearer tapped the selected widget: it owns every swipe and tap until it is deactivated. */
36
+ | {type: "activate"}
37
+ /** The wearer double-tapped out, or the dashboard closed: show no selection. */
38
+ | {type: "deactivate"}
39
+ /** A swipe while active. */
37
40
  | {type: "swipe"; direction: "left" | "right" | "up" | "down"}
38
- /** A tap on the focused stop. */
41
+ /** A tap while active. */
39
42
  | {type: "tap"}
40
- /** Focus left the widget. */
41
- | {type: "blur"}
42
43
  /** The host is about to show the widget: refresh what it draws, then return. */
43
44
  | {type: "beforeShow"}
44
45
 
45
46
  /** A provider's answer to an event; nothing means handled. */
46
- export type WidgetEventResult = {exit: "left" | "right"} | {handled?: boolean} | void
47
+ export type WidgetEventResult = {handled?: boolean} | void
47
48
 
48
49
  export interface WidgetProviderHooks {
49
50
  /** The widget was placed in this box, resized, or taken off (null). */