@glassly/miniapp 0.3.5-beta.707 → 0.3.5-beta.710
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
|
|
8
|
-
* through `onEvent
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
28
|
+
/** The wearer's input, forwarded by the host while the widget is active. */
|
|
28
29
|
export type WidgetEvent =
|
|
29
|
-
/**
|
|
30
|
+
/** The wearer tapped the selected widget: it owns every swipe and tap until it is deactivated. */
|
|
30
31
|
{
|
|
31
|
-
type: "
|
|
32
|
-
from: "left" | "right";
|
|
32
|
+
type: "activate";
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
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
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"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"}
|
package/dist/modules/widgets.js
CHANGED
|
@@ -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
|
|
8
|
-
* through `onEvent
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/modules/widgets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAC,gBAAgB,EAAE,kBAAkB,EAAC,MAAM,aAAa,CAAA;AA8EhE;;;GAGG;AACH,MAAM,gBAAgB,GAAG,IAAK,CAAA;AAE9B,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,QAAgB,EAAU,EAAE,CAAC,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAA;AAEjG,MAAM,MAAM;IAGV,YACW,EAAU,EACV,KAA0B,EAClB,MAAqB;QAF7B,OAAE,GAAF,EAAE,CAAQ;QACV,UAAK,GAAL,KAAK,CAAqB;QAClB,WAAM,GAAN,MAAM,CAAe;QALxC,QAAG,GAAqB,IAAI,CAAA;IAMzB,CAAC;IAEJ,MAAM,CAAC,QAAyB;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IACrC,CAAC;CACF;AAED,MAAM,OAAO,aAAa;IAKxB,YAA6B,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;QAJnC,YAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;QACnC,aAAQ,GAAG,IAAI,GAAG,EAA0B,CAAA;QAC5C,mBAAc,GAAG,IAAI,GAAG,EAAgC,CAAA;IAElB,CAAC;IAExD,+EAA+E;IAE/E;;;;OAIG;IACH,OAAO,CAAC,QAAgB,EAAE,QAA6B,EAAE;QACvD,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,oCAAoC,QAAQ,uBAAuB,CAAC,CAAA;QACtF,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YAC9B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBACxB,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;YAC1E,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,QAAgB,EAAE,QAAyB;QACjD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAA;IACxF,CAAC;IAED,gBAAgB;IAChB,QAAQ,CAAC,QAAgB,EAAE,MAAc;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM;YAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAC1E,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAqB,EAAE,GAAqB,EAAE,KAAyB;QACpH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACzC,IAAI,MAAM,EAAE,CAAC;YACX,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;YACpD,OAAM;QACR,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,CAAC,IAAI;gBAAE,OAAM;YACjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAA;YAC9D,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,OAAM;YACxB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;YACrD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;gBACnC,IAAI,EAAE,gBAAgB,CAAC,gBAAgB;gBACvC,OAAO,EAAE,sCAAsC,QAAQ,YAAY,gBAAgB,IAAI;aACxF,CAAC,CAAA;QACJ,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAC9C,IAAI,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAA;QAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,MAAc,EACd,MAAc,EACd,IAAqB,EACrB,GAAqB,EACrB,KAAyB;QAEzB,IAAI,CAAC;YACH,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;gBACnB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAA;gBAChB,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAA;gBACzB,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;gBAC9B,OAAM;YACR,CAAC;YACD,MAAM,MAAM,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC5F,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,CAAA;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAChE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAC,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,MAAc,EAAE,EAAW,EAAE,MAAgB,EAAE,KAAuC;QAClG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACvB,IAAI,EAAE,kBAAkB,CAAC,aAAa;YACtC,MAAM;YACN,EAAE;YACF,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,MAAM,EAAE,MAAM,IAAI,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC;SAC7C,CAAC,CAAA;IACJ,CAAC;IAED,+EAA+E;IAE/E,qEAAqE;IACrE,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAA;IAC5D,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAe,EAAC,IAAI,EAAE,kBAAkB,CAAC,YAAY,EAAC,CAAC,CAAA;QACpG,OAAO,MAAM,IAAI,EAAE,CAAA;IACrB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,WAAmB,EAAE,QAAgB,EAAE,GAAc;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAkC;YAC7E,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,WAAW;YACX,QAAQ;YACR,GAAG;SACJ,CAAC,CAAA;QACF,OAAO,MAAM,EAAE,KAAK,IAAI,IAAI,CAAA;IAC9B,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,OAAO,CAAC,WAAmB,EAAE,QAAgB;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAO,EAAC,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAC,CAAC,CAAA;IACxG,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC,WAAmB,EAAE,QAAgB,EAAE,KAAkB,EAAE,IAAkB;QAChF,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAoB;YACjD,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,WAAW;YACX,QAAQ;YACR,KAAK;YACL,GAAG,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SAChE,CAAC,CAAA;IACJ,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,QAAsC;QAC5C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACjC,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,CAAC,CAAA;IACH,CAAC;IAED,6EAA6E;IAC7E,aAAa,CAAC,KAAkB;QAC9B,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,QAAQ,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,yDAAyD,SAAS,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;YAC5H,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glassly/miniapp",
|
|
3
|
-
"version": "0.3.5-beta.
|
|
3
|
+
"version": "0.3.5-beta.710",
|
|
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-beta.
|
|
76
|
+
"@glassly/cloud-protocol": "0.3.5-beta.710",
|
|
77
77
|
"eventemitter3": "^5.0.1"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
package/src/modules/widgets.ts
CHANGED
|
@@ -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
|
|
8
|
-
* through `onEvent
|
|
9
|
-
*
|
|
10
|
-
*
|
|
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
|
|
33
|
+
/** The wearer's input, forwarded by the host while the widget is active. */
|
|
33
34
|
export type WidgetEvent =
|
|
34
|
-
/**
|
|
35
|
-
| {type: "
|
|
36
|
-
/**
|
|
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
|
|
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 = {
|
|
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). */
|