@substrat-run/elements 0.1.0 → 0.3.0

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.
@@ -2,6 +2,10 @@
2
2
  * The session an element draws: its `session` property when the host set one, the
3
3
  * shared read at its `sessionUrl` otherwise. A Lit controller so `<sub-avatar>` and
4
4
  * `<sub-user-menu>` hold the same rule once.
5
+ *
6
+ * An empty `sessionUrl` reads nothing, and the element stays `loading` until `session` is
7
+ * set. React sets a property only after the element is connected, so a host that brings
8
+ * its own session needs this to keep the default URL from being asked first.
5
9
  */
6
10
  import type { ReactiveController, ReactiveControllerHost } from 'lit';
7
11
  import { type Session, type SessionState } from '../session.js';
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.d.ts","sourceRoot":"","sources":["../../src/internal/session-controller.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AACtE,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3E,UAAU,IAAK,SAAQ,sBAAsB;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;;IAK9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,IAAI,EAEtC;IAED,IAAI,KAAK,IAAI,YAAY,CAIxB;IAED,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAEvB;IAED,aAAa,IAAI,IAAI,CAEpB;IAED,UAAU,IAAI,IAAI,CAGjB;IAED,gBAAgB,IAAI,IAAI,CAIvB;CAYF"}
1
+ {"version":3,"file":"session-controller.d.ts","sourceRoot":"","sources":["../../src/internal/session-controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AACtE,OAAO,EAAa,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAE3E,UAAU,IAAK,SAAQ,sBAAsB;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;CACrC;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;;IAK9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,IAAI,EAEtC;IAED,IAAI,KAAK,IAAI,YAAY,CAIxB;IAED,0EAA0E;IAC1E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAIvB;IAED,aAAa,IAAI,IAAI,CAEpB;IAED,UAAU,IAAI,IAAI,CAGjB;IAED,gBAAgB,IAAI,IAAI,CAIvB;CAYF"}
@@ -16,7 +16,9 @@ export class SessionController {
16
16
  }
17
17
  /** Read again; a no-op while the host draws a `session` it was handed. */
18
18
  refresh() {
19
- return this.host.session === undefined ? sessionAt(this.host.sessionUrl).refresh() : Promise.resolve();
19
+ return this.host.session === undefined && this.host.sessionUrl
20
+ ? sessionAt(this.host.sessionUrl).refresh()
21
+ : Promise.resolve();
20
22
  }
21
23
  hostConnected() {
22
24
  this.#bind();
@@ -35,7 +37,7 @@ export class SessionController {
35
37
  this.#unsubscribe?.();
36
38
  this.#unsubscribe = undefined;
37
39
  this.#bound = { url: this.host.sessionUrl, session: this.host.session };
38
- if (this.host.session !== undefined)
40
+ if (this.host.session !== undefined || !this.host.sessionUrl)
39
41
  return;
40
42
  this.#unsubscribe = sessionAt(this.host.sessionUrl).subscribe((s) => {
41
43
  this.#read = s;
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../src/internal/session-controller.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAmC,MAAM,eAAe,CAAC;AAQ3E,MAAM,OAAO,iBAAiB;IAKC,IAAI;IAJjC,KAAK,GAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC3C,YAAY,CAA2B;IACvC,MAAM,CAAmE;IAEzE,YAA6B,IAAU;oBAAV,IAAI;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,0EAA0E;IAC1E,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzG,CAAC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,UAAU;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5F,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO;QAC5C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../src/internal/session-controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,SAAS,EAAmC,MAAM,eAAe,CAAC;AAQ3E,MAAM,OAAO,iBAAiB;IAKC,IAAI;IAJjC,KAAK,GAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC3C,YAAY,CAA2B;IACvC,MAAM,CAAmE;IAEzE,YAA6B,IAAU;oBAAV,IAAI;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK;QACP,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC;QACvC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnF,CAAC;IAED,0EAA0E;IAC1E,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;YAC5D,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;YAC3C,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,aAAa;QACX,IAAI,CAAC,KAAK,EAAE,CAAC;IACf,CAAC;IAED,UAAU;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACtB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC5F,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACxE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QACrE,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;YAClE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -19,7 +19,7 @@
19
19
  * an empty `<span slot="signed-out">` shows nothing
20
20
  *
21
21
  * Attributes: `show` (`avatar` | `name` | `email`, default `avatar`), `size`,
22
- * `session-url` (`/api/me`), `login-url` (`/api/auth/login`), `logout-url`
22
+ * `session-url` (`/api/me`; empty reads nothing, for a host that sets `session`), `login-url` (`/api/auth/login`), `logout-url`
23
23
  * (`/api/auth/logout`), `account-url` (adds "Manage account" when set),
24
24
  * `hide-switch-user`, `placement` (default `bottom-end`).
25
25
  * Property: `session` — set it to draw a session the host already read.
package/dist/user-menu.js CHANGED
@@ -19,7 +19,7 @@
19
19
  * an empty `<span slot="signed-out">` shows nothing
20
20
  *
21
21
  * Attributes: `show` (`avatar` | `name` | `email`, default `avatar`), `size`,
22
- * `session-url` (`/api/me`), `login-url` (`/api/auth/login`), `logout-url`
22
+ * `session-url` (`/api/me`; empty reads nothing, for a host that sets `session`), `login-url` (`/api/auth/login`), `logout-url`
23
23
  * (`/api/auth/logout`), `account-url` (adds "Manage account" when set),
24
24
  * `hide-switch-user`, `placement` (default `bottom-end`).
25
25
  * Property: `session` — set it to draw a session the host already read.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/elements",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Substrat's web components: Lit elements on Web Awesome's free core, themed through its --wa-* tokens, with the model-bound pieces (an entity table first) a vertical drops in",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {