@zitadel/components 0.1.0-alpha.0 → 0.1.0-alpha.3

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 (46) hide show
  1. package/README.md +41 -36
  2. package/dist/atoms/index.d.mts +1 -1
  3. package/dist/atoms/index.mjs +1 -1
  4. package/dist/atoms/zl-alert.d.ts.map +1 -1
  5. package/dist/atoms/zl-button.d.ts +7 -1
  6. package/dist/atoms/zl-button.d.ts.map +1 -1
  7. package/dist/atoms/zl-card.d.ts +7 -0
  8. package/dist/atoms/zl-card.d.ts.map +1 -1
  9. package/dist/atoms/zl-field.d.ts +6 -0
  10. package/dist/atoms/zl-field.d.ts.map +1 -1
  11. package/dist/atoms/zl-icon.d.ts.map +1 -1
  12. package/dist/atoms/zl-page-shell.d.ts +6 -0
  13. package/dist/atoms/zl-page-shell.d.ts.map +1 -1
  14. package/dist/atoms/zl-pill.d.ts +0 -1
  15. package/dist/atoms/zl-pill.d.ts.map +1 -1
  16. package/dist/{atoms-B9yd0c-i.mjs → atoms-eOxuoGDq.mjs} +118 -73
  17. package/dist/atoms-eOxuoGDq.mjs.map +1 -0
  18. package/dist/{index-Dd8hfOWt.d.mts → index-DmtnqUIY.d.mts} +1223 -572
  19. package/dist/index-DmtnqUIY.d.mts.map +1 -0
  20. package/dist/{index-B74_igDN.d.mts → index-QC-a9dn0.d.mts} +81 -17
  21. package/dist/index-QC-a9dn0.d.mts.map +1 -0
  22. package/dist/index.d.mts +2 -2
  23. package/dist/index.mjs +2 -2
  24. package/dist/internal/emit.d.ts +12 -0
  25. package/dist/internal/emit.d.ts.map +1 -0
  26. package/dist/internal/escape-html.d.ts +10 -0
  27. package/dist/internal/escape-html.d.ts.map +1 -0
  28. package/dist/manifests.mjs +1 -1
  29. package/dist/orchestrator/index.d.mts +1 -1
  30. package/dist/orchestrator/index.mjs +1 -1
  31. package/dist/orchestrator/locales/en.d.ts.map +1 -1
  32. package/dist/orchestrator/resolve-api.d.ts +37 -0
  33. package/dist/orchestrator/resolve-api.d.ts.map +1 -0
  34. package/dist/orchestrator/zitadel-login.d.ts +27 -2
  35. package/dist/orchestrator/zitadel-login.d.ts.map +1 -1
  36. package/dist/orchestrator/zitadel-logout.d.ts +33 -5
  37. package/dist/orchestrator/zitadel-logout.d.ts.map +1 -1
  38. package/dist/{orchestrator-B8eXcPRi.mjs → orchestrator-Dds72XrU.mjs} +349 -125
  39. package/dist/orchestrator-Dds72XrU.mjs.map +1 -0
  40. package/dist/standalone.mjs +12002 -0
  41. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  42. package/package.json +8 -2
  43. package/dist/atoms-B9yd0c-i.mjs.map +0 -1
  44. package/dist/index-B74_igDN.d.mts.map +0 -1
  45. package/dist/index-Dd8hfOWt.d.mts.map +0 -1
  46. package/dist/orchestrator-B8eXcPRi.mjs.map +0 -1
@@ -40,10 +40,28 @@ export declare class ZitadelLogin extends LitElement {
40
40
  static styles: import("lit").CSSResult;
41
41
  accessor purpose: CreateFlowBodyPurpose;
42
42
  /**
43
- * SDK project handle returned by `configureZitadel()`. When set, takes
44
- * precedence over the global singleton from `getZitadelConfig()`.
43
+ * SDK project handle returned by `configureZitadel()`. Set from JS (or a
44
+ * framework binding). When set, takes precedence over both the
45
+ * `project-id`/`proxy-path`/`url` attributes and the global singleton from
46
+ * `getZitadelConfig()`.
45
47
  */
46
48
  accessor project: ZitadelProject | undefined;
49
+ /**
50
+ * Project ID, set declaratively in HTML. Lets the component be configured on
51
+ * a plain page without JS or `configureZitadel()`. Ignored when the `project`
52
+ * property or a `configureZitadel()` global is set. See {@link projectAttrs}.
53
+ */
54
+ accessor projectId: string;
55
+ /**
56
+ * Proxy path for API requests (e.g. `/__nextgen`), set declaratively in HTML.
57
+ * Defaults to `/__nextgen` when omitted, matching `configureZitadel()`.
58
+ */
59
+ accessor proxyPath: string;
60
+ /**
61
+ * Full URL of the Zitadel auth backend, set declaratively in HTML. Optional —
62
+ * not needed in client-only setups.
63
+ */
64
+ accessor url: string;
47
65
  /**
48
66
  * URL to navigate to after a successful embedded sign-in. When set, the
49
67
  * orchestrator exchanges the terminal `handoff_token` via the generated
@@ -116,6 +134,7 @@ export declare class ZitadelLogin extends LitElement {
116
134
  private resolveLocale;
117
135
  willUpdate(changed: PropertyValues<this>): void;
118
136
  updated(changed: PropertyValues<this>): void;
137
+ private hydrateStepAfterRender;
119
138
  render(): import("lit").TemplateResult<1>;
120
139
  /**
121
140
  * Inject the attribution badge into the rendered template's
@@ -124,6 +143,10 @@ export declare class ZitadelLogin extends LitElement {
124
143
  * Figma sign-in frame where the pill sits 24px below the card, both
125
144
  * centred on the page). It can't be a sibling of the page-shell because
126
145
  * the page-shell already occupies the full viewport height.
146
+ *
147
+ * This markup is appended AFTER `renderStep` has sanitised the Liquid
148
+ * output, so it is not run through DOMPurify. It is orchestrator-owned and
149
+ * any tenant-supplied values (`custom_link`) are escaped via `escapeHtml`.
127
150
  */
128
151
  private injectAttribution;
129
152
  /**
@@ -134,6 +157,8 @@ export declare class ZitadelLogin extends LitElement {
134
157
  * entirely or swap it for a `custom_link` value.
135
158
  */
136
159
  private renderAttributionHtml;
160
+ /** Declarative config read from this element's attributes. */
161
+ private get projectAttrs();
137
162
  private startFlow;
138
163
  private applyResponse;
139
164
  private maybeCompleteFlow;
@@ -1 +1 @@
1
- {"version":3,"file":"zitadel-login.d.ts","sourceRoot":"","sources":["../../src/orchestrator/zitadel-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAGV,qBAAqB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAa,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAKjE,OAAO,mBAAmB,CAAC;AAa3B,OAAO,EAAsB,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAQrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAOF,OAAgB,MAAM,0BAMpB;IAE0B,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAW;IAE9E;;;OAGG;IAC6B,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IAE7E;;;;;;;OAOG;IACwD,QAAQ,CAAC,aAAa,SAAM;IAEvF;;;;;OAKG;IACsD,QAAQ,CAAC,YAAY,SAAM;IAEpF;;;;OAIG;IACH,SAA8C,IAAI,SAAM;IAExD;;;;;;;;;;;OAWG;IAC6B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAE5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IAEvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;IAEpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAElE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;IAE7D,OAAO,CAAC,MAAM,CAAuB;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C;;;OAGG;IACH,OAAO,CAAC,mBAAmB,CAAyD;IAE3E,gBAAgB,IAAI,WAAW,GAAG,gBAAgB,CA+B1D;IAED;;;;;;;;;OASG;IACH,UAAmB,YAAY,IAAI,IAAI,CAItC;IAED;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IAYZ,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAavD;IAEQ,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAQpD;IAEQ,MAAM,oCAkBd;IAED;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IASzB;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;YAkBf,SAAS;IAmCvB,OAAO,CAAC,aAAa;YA0BP,iBAAiB;IAwC/B,OAAO,CAAC,UAAU;IAuDlB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,eAAe,CAYrB;IAEF,OAAO,CAAC,gBAAgB,CAGtB;IAEF,yEAAyE;IACzE,OAAO,CAAC,qBAAqB,CAO3B;IAEF,OAAO,CAAC,gBAAgB,CAatB;IAEF;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAUzB;IAEF;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,kBAAkB,CAexB;IAEF,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,qBAAqB;YAUf,MAAM;IA4CpB,OAAO,CAAC,oBAAoB;CAa7B;AAWD,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"zitadel-login.d.ts","sourceRoot":"","sources":["../../src/orchestrator/zitadel-login.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,12 @@ import { type ZitadelProject } from "@zitadel/api/config";
7
7
  * Reads the user's display name + email from the `__nextgen_display` cookie
8
8
  * (set by the auth backend on sign-in), renders an avatar trigger with a
9
9
  * dropdown that exposes a "Sign out" action, and calls the typed
10
- * `endSession` operation in `@zitadel/api`
11
- * (`GET /auth/end-session`). The server clears the session cookie via
10
+ * `revokeMySession` operation in `@zitadel/api`
11
+ * (`DELETE /sessions/me`). The server clears the session cookie via
12
12
  * `Set-Cookie: Max-Age=0`; on success the element fires `zitadel-signout`
13
- * and optionally navigates to `post-sign-out-url`.
13
+ * and optionally navigates to `post-sign-out-url`. (`getEndSessionUrl()`
14
+ * additionally exposes the OIDC end-session URL for consumers that prefer a
15
+ * user-agent-driven redirect.)
14
16
  *
15
17
  * ## Template-slot mode
16
18
  *
@@ -27,10 +29,28 @@ import { type ZitadelProject } from "@zitadel/api/config";
27
29
  export declare class ZitadelLogout extends LitElement {
28
30
  static styles: import("lit").CSSResult[];
29
31
  /**
30
- * SDK project handle returned by `configureZitadel()`. When set, takes
31
- * precedence over the global singleton from `getZitadelConfig()`.
32
+ * SDK project handle returned by `configureZitadel()`. Set from JS (or a
33
+ * framework binding). When set, takes precedence over both the
34
+ * `project-id`/`proxy-path`/`url` attributes and the global singleton from
35
+ * `getZitadelConfig()`.
32
36
  */
33
37
  accessor project: ZitadelProject | undefined;
38
+ /**
39
+ * Project ID, set declaratively in HTML. Lets the component be configured on
40
+ * a plain page without JS or `configureZitadel()`. Ignored when the `project`
41
+ * property or a `configureZitadel()` global is set.
42
+ */
43
+ accessor projectId: string;
44
+ /**
45
+ * Proxy path for API requests (e.g. `/__nextgen`), set declaratively in HTML.
46
+ * Defaults to `/__nextgen` when omitted, matching `configureZitadel()`.
47
+ */
48
+ accessor proxyPath: string;
49
+ /**
50
+ * Full URL of the Zitadel auth backend, set declaratively in HTML. Optional —
51
+ * not needed in client-only setups.
52
+ */
53
+ accessor url: string;
34
54
  /** URL to navigate to after a successful sign-out. */
35
55
  accessor postSignOutUrl: string;
36
56
  /**
@@ -67,6 +87,14 @@ export declare class ZitadelLogout extends LitElement {
67
87
  private readonly handleDocumentClick;
68
88
  private readonly handleDocumentKeydown;
69
89
  private toggleOpen;
90
+ /**
91
+ * Calls `DELETE /sessions/me` (`revokeMySession`) with `credentials: "include"`.
92
+ * The server validates the `__nextgen_session` cookie, deletes the session, and
93
+ * clears the cookie via `Set-Cookie: Max-Age=0`. On success this element fires
94
+ * `zitadel-signout` and optionally navigates to `postSignOutUrl`.
95
+ */
96
+ /** Declarative config read from this element's attributes. */
97
+ private get projectAttrs();
70
98
  private doLogout;
71
99
  /**
72
100
  * Returns the absolute URL the end-session request will hit. Useful for
@@ -1 +1 @@
1
- {"version":3,"file":"zitadel-logout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/zitadel-logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAkBpF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BA2IpB;IAEF;;;OAGG;IAC6B,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IAE7E,sDAAsD;IACM,QAAQ,CAAC,cAAc,SAAM;IAEzF;;;;;OAKG;IACiD,QAAQ,CAAC,QAAQ,SAAM;IAElE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAM;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAM;IAEnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAM;IAK5C,OAAO,CAAC,YAAY,CAAS;IAEpB,iBAAiB,IAAI,IAAI,CAajC;IAEQ,oBAAoB,IAAI,IAAI,CAIpC;IAEQ,OAAO,IAAI,IAAI,CAKvB;IAED;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAezB,OAAO,KAAK,OAAO,GAGlB;IAED;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAIlC;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAKpC;IAEF,OAAO,CAAC,UAAU;YAWJ,QAAQ;IAgCtB;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM,CAQzB;IAED,OAAO,CAAC,kBAAkB;IAKjB,MAAM,qDAsEd;CACF;AA0BD,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}
1
+ {"version":3,"file":"zitadel-logout.d.ts","sourceRoot":"","sources":["../../src/orchestrator/zitadel-logout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAErD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAoB1D;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBACa,aAAc,SAAQ,UAAU;IAC3C,OAAgB,MAAM,4BA2IpB;IAEF;;;;;OAKG;IAC6B,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,SAAS,CAAC;IAE7E;;;;OAIG;IACkD,QAAQ,CAAC,SAAS,SAAM;IAE7E;;;OAGG;IACkD,QAAQ,CAAC,SAAS,SAAM;IAE7E;;;OAGG;IACyB,QAAQ,CAAC,GAAG,SAAM;IAE9C,sDAAsD;IACM,QAAQ,CAAC,cAAc,SAAM;IAEzF;;;;;OAKG;IACiD,QAAQ,CAAC,QAAQ,SAAM;IAElE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAM;IAElC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAM;IAEnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAM;IAK5C,OAAO,CAAC,YAAY,CAAS;IAEpB,iBAAiB,IAAI,IAAI,CAajC;IAEQ,oBAAoB,IAAI,IAAI,CAIpC;IAEQ,OAAO,IAAI,IAAI,CAKvB;IAED;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAazB,OAAO,KAAK,OAAO,GAGlB;IAED;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAIlC;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAKpC;IAEF,OAAO,CAAC,UAAU;IAKlB;;;;;OAKG;IACH,8DAA8D;IAC9D,OAAO,KAAK,YAAY,GAEvB;YAEa,QAAQ;IAwBtB;;;;;OAKG;IACH,gBAAgB,IAAI,MAAM,CAOzB;IAED,OAAO,CAAC,kBAAkB;IAKjB,MAAM,qDAsEd;CACF;AA0BD,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,aAAa,CAAC;KACjC;CACF"}