@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
package/README.md CHANGED
@@ -39,22 +39,24 @@ externalised so npm consumers dedupe with their own copies.
39
39
 
40
40
  ## Quickstart — drop on a page
41
41
 
42
- The 90% case: render the element, point the typed Flow API client at your
43
- backend, set a locale.
42
+ The 90% case: configure the SDK once, render the element, optionally set a
43
+ language. `<zitadel-login>` reads the global project handle from
44
+ `configureZitadel()` via `getZitadelConfig()` — no per-element wiring needed.
44
45
 
45
46
  ```html
46
- <script type="module" src="@zitadel/components"></script>
47
-
48
- <zitadel-login id="login" purpose="login" project-id="proj_123"></zitadel-login>
49
-
50
47
  <script type="module">
51
- import { setProxyPath } from '@zitadel/api/runtime/base-url';
48
+ import '@zitadel/components';
49
+ import { configureZitadel } from '@zitadel/api/config';
52
50
 
53
- setProxyPath('https://api.tenant.com');
51
+ // Write-once: sets the global project handle (and the proxy path the
52
+ // generated client uses). The element picks this up automatically.
53
+ configureZitadel({ projectId: 'proj_123', proxyPath: '/__nextgen' });
54
54
 
55
55
  const el = document.getElementById('login');
56
- el.locale = await fetch('/i18n/en.json').then((r) => r.json());
56
+ el.lang = 'en'; // optional; defaults to <html lang> / navigator.language
57
57
  </script>
58
+
59
+ <zitadel-login id="login" purpose="login"></zitadel-login>
58
60
  ```
59
61
 
60
62
  What `<zitadel-login>` handles for you:
@@ -75,22 +77,26 @@ What `<zitadel-login>` handles for you:
75
77
 
76
78
  Same element, lifted into JSX. Pass objects through `ref` rather than as
77
79
  attributes (web component properties are typed objects, not stringified
78
- attributes).
80
+ attributes). Either configure the SDK globally with `configureZitadel()` and
81
+ let the element read it, or assign the returned handle to `el.project`.
79
82
 
80
83
  ```tsx
81
84
  import '@zitadel/components';
82
- import { setProxyPath } from '@zitadel/api/runtime/base-url';
85
+ import { configureZitadel } from '@zitadel/api/config';
83
86
 
84
- setProxyPath(import.meta.env.VITE_ZITADEL_API_BASE);
87
+ const project = configureZitadel({
88
+ projectId: 'proj_123',
89
+ proxyPath: import.meta.env.VITE_ZITADEL_PROXY_PATH,
90
+ });
85
91
 
86
- export function Login({ locale }: Props) {
92
+ export function Login({ locales }: Props) {
87
93
  return (
88
94
  <zitadel-login
89
95
  purpose="login"
90
- project-id="proj_123"
91
96
  ref={(el) => {
92
97
  if (!el) return;
93
- el.locale = locale;
98
+ el.project = project;
99
+ el.locales = locales;
94
100
  }}
95
101
  />
96
102
  );
@@ -159,17 +165,18 @@ form-associated inputs.
159
165
 
160
166
  | Tier | Surface | Use when |
161
167
  | --- | --- | --- |
162
- | API base | `setProxyPath()` from `@zitadel/api/runtime/base-url` | every consumer — points at your backend |
168
+ | SDK config | `configureZitadel({ projectId, proxyPath })` from `@zitadel/api/config` | every consumer — sets the project + proxy path the element reads |
163
169
  | Tokens | branding payload returned from the server | tenant colour / logo / font |
164
170
  | CSS hooks | `zitadel-login::part(form)`, `zl-field::part(input)` | targeted overrides from the host page |
165
- | Locale | `el.locale = { ... }` | i18n / custom copy |
171
+ | Locale | `el.lang = 'de'` / `el.locales = { ... }` | i18n / custom copy |
166
172
  | MSW mocks | `setupWorker` / `setupServer` from `msw` | offline / staging / fixtures |
167
173
  | Custom template | (planned) | tenant-supplied Liquid layouts |
168
174
  | Atoms-only | hand-built form | non-standard flow shells |
169
175
 
170
- The "Custom template" surface is not yet exposed on `<zitadel-login>`; the
171
- orchestrator currently uses the bundled `auth_form.liquid`. Tracked as a
172
- follow-up.
176
+ A tenant Liquid template can already be supplied through the branding
177
+ payload's `liquid_template` field; a dedicated declarative `template`
178
+ surface on `<zitadel-login>` is not yet exposed. The orchestrator otherwise
179
+ renders the bundled `default.liquid`. Tracked as a follow-up.
173
180
 
174
181
  ## Element APIs
175
182
 
@@ -178,31 +185,29 @@ follow-up.
178
185
  | Property | Type | Notes |
179
186
  | --- | --- | --- |
180
187
  | `purpose` | `'login' \| 'register' \| 'reset_password' \| string` | Which flow purpose to drive |
181
- | `projectId` / `project-id` | `string` | Project / tenant id sent with `POST /flow` |
182
- | `apiBase` / `api-base` | `string` | Optional declarative override for `setProxyPath()` |
183
- | `sessionExchangePath` / `session-exchange-path` | `string` | Handoff exchange path (default `/sessions/exchange`, prefixed with `api-base`). Any other value is resolved from `location.origin` instead — use when exchange is rewritten separately (e.g. `/api/auth/exchange`) |
184
- | `postSignInUrl` / `post-sign-in-url` | `string` | After `complete: "show"`, exchange the `handoff_token` at the configured exchange path and navigate here |
188
+ | `project` | `ZitadelProject` | SDK handle from `configureZitadel()`. Object property (not an attribute). When unset, the element falls back to the global handle from `getZitadelConfig()` |
189
+ | `lang` | `string` | BCP 47 tag (e.g. `"de"`, `"en-US"`). Resolves to a built-in dictionary; falls back to `<html lang>` / `navigator.language` |
190
+ | `locales` | `Record<string, Locale>` | Custom locale dictionaries keyed by language code; spread over the built-in dictionary so partial overrides work |
191
+ | `postSignInUrl` / `post-sign-in-url` | `string` | After `complete: "show"`, exchange the `handoff_token` for a session cookie and navigate here |
185
192
  | `resumeFlowId` / `resume-flow-id` | `string` | Resume an existing flow handle instead of starting fresh |
186
- | `locale` | `Record<string, string>` | i18n dictionary consumed by Liquid's `\| t` filter |
187
193
 
188
- Events: `zitadel-flow-input`, `zitadel-flow-action`, `zitadel-flow-step`,
189
- `zitadel-flow-complete`, `zitadel-flow-error`. The orchestrator exposes
190
- `::part(form)` for tenant-side CSS hooks. Adopts design tokens and
191
- `branding.font_url` into its shadow root on each update.
194
+ Events: `zitadel-flow-input`, `zitadel-flow-step`, `zitadel-flow-complete`,
195
+ `zitadel-flow-error`. The orchestrator exposes `::part(form)` for tenant-side
196
+ CSS hooks. Adopts design tokens and `branding.font_url` into its shadow root
197
+ on each update.
192
198
 
193
199
  ### `<zitadel-logout>`
194
200
 
195
201
  Session menu / sign-out control for embedded apps. Reads the
196
- `__nextgen_display` cookie set during sign-in, calls `GET /auth/end-session`
197
- through `api-base`, and clears the session. Uses the same token adoption as
198
- `<zitadel-login>` (`applyBaseTokens` + optional `font_url` when hosted on a
199
- page without global tokens).
202
+ `__nextgen_display` cookie set during sign-in, calls `revokeMySession`
203
+ (`DELETE /sessions/me`) through the SDK handle, and clears the session. Uses
204
+ the same token adoption as `<zitadel-login>` (`applyBaseTokens`).
200
205
 
201
206
  | Property | Type | Notes |
202
207
  | --- | --- | --- |
203
- | `apiBase` / `api-base` | `string` | Proxied auth API prefix (e.g. `/__nextgen`) |
208
+ | `project` | `ZitadelProject` | SDK handle from `configureZitadel()`. Object property; falls back to the global handle from `getZitadelConfig()` |
204
209
  | `postSignOutUrl` / `post-sign-out-url` | `string` | Navigate here after sign-out |
205
- | `clientId` / `client-id` | `string` | Optional OIDC client id forwarded to end-session |
210
+ | `clientId` / `client-id` | `string` | Optional OIDC client id forwarded to `getEndSessionUrl()` |
206
211
 
207
212
  Supports a light-DOM `<template>` slot for a fully custom menu; default UI is
208
213
  the avatar trigger + dropdown.
@@ -270,7 +275,7 @@ packages/components/
270
275
  │ │ zl-card, zl-page-shell + tests
271
276
  │ ├── orchestrator/ <zitadel-login>, <zitadel-logout>, api-client, liquid, branding
272
277
  │ │ ├── locales/ bundled English fallback
273
- │ │ └── templates/ auth-form / passkey-upsell / signed-in liquid partials
278
+ │ │ └── templates/ default.liquid (all steps) + layout-chrome.css
274
279
  │ ├── tokens/ re-export of @zitadel/design-tokens
275
280
  │ ├── styles/ shared host styles, focus ring, t() css-var bridge
276
281
  │ ├── manifests.ts per-atom attribute / part / event manifests
@@ -1,2 +1,2 @@
1
- import { Bt as zlAlertManifest, Ft as ZlCard, Ht as ZlIcon, It as zlCardManifest, Lt as ZlButton, Rt as zlButtonManifest, Ut as zlIconManifest, Vt as IconName, a as ZlPasskeyResultDetail, c as zlPageShellManifest, d as zlFieldManifest, i as ZlPasskeyErrorDetail, l as ZlField, n as zlPillManifest, o as zlPasskeyManifest, r as ZlPasskey, s as ZlPageShell, t as ZlPill, u as ZlFieldType, zt as ZlAlert } from "../index-Dd8hfOWt.mjs";
1
+ import { Gt as ZlAlert, Ht as zlCardManifest, Jt as ZlIcon, Kt as zlAlertManifest, Ut as ZlButton, Vt as ZlCard, Wt as zlButtonManifest, Yt as zlIconManifest, a as ZlPasskeyResultDetail, c as zlPageShellManifest, d as zlFieldManifest, i as ZlPasskeyErrorDetail, l as ZlField, n as zlPillManifest, o as zlPasskeyManifest, qt as IconName, r as ZlPasskey, s as ZlPageShell, t as ZlPill, u as ZlFieldType } from "../index-DmtnqUIY.mjs";
2
2
  export { IconName, ZlAlert, ZlButton, ZlCard, ZlField, ZlFieldType, ZlIcon, ZlPageShell, ZlPasskey, ZlPasskeyErrorDetail, ZlPasskeyResultDetail, ZlPill, zlAlertManifest, zlButtonManifest, zlCardManifest, zlFieldManifest, zlIconManifest, zlPageShellManifest, zlPasskeyManifest, zlPillManifest };
@@ -1,2 +1,2 @@
1
- import { a as ZlPageShell, c as zlFieldManifest, d as ZlButton, f as zlButtonManifest, g as zlIconManifest, h as ZlIcon, i as zlPasskeyManifest, l as ZlCard, m as zlAlertManifest, n as zlPillManifest, o as zlPageShellManifest, p as ZlAlert, r as ZlPasskey, s as ZlField, t as ZlPill, u as zlCardManifest } from "../atoms-B9yd0c-i.mjs";
1
+ import { a as ZlPageShell, c as zlFieldManifest, d as ZlButton, f as zlButtonManifest, g as zlIconManifest, h as ZlIcon, i as zlPasskeyManifest, l as ZlCard, m as zlAlertManifest, n as zlPillManifest, o as zlPageShellManifest, p as ZlAlert, r as ZlPasskey, s as ZlField, t as ZlPill, u as zlCardManifest } from "../atoms-eOxuoGDq.mjs";
2
2
  export { ZlAlert, ZlButton, ZlCard, ZlField, ZlIcon, ZlPageShell, ZlPasskey, ZlPill, zlAlertManifest, zlButtonManifest, zlCardManifest, zlFieldManifest, zlIconManifest, zlPageShellManifest, zlPasskeyManifest, zlPillManifest };
@@ -1 +1 @@
1
- {"version":3,"file":"zl-alert.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,4BAGpB;IAE2B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAW;IAEvF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IAEjB,QAAQ,CAAC,WAAW,UAAS;IAEhE,MAAM,oCA6Bd;IAED,OAAO,CAAC,aAAa,CAKnB;CACH;AASD,eAAO,MAAM,eAAe,EAAE,YAMpB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"zl-alert.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-alert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAGtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,OAAgB,MAAM,4BAGpB;IAE2B,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAW;IAEvF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IAEjB,QAAQ,CAAC,WAAW,UAAS;IAEhE,MAAM,oCA6Bd;IAED,OAAO,CAAC,aAAa,CAGnB;CACH;AASD,eAAO,MAAM,eAAe,EAAE,YAMpB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -67,10 +67,16 @@ export declare class ZlButton extends LitElement {
67
67
  accessor disabled: boolean;
68
68
  accessor block: boolean;
69
69
  accessor label: string | undefined;
70
+ /**
71
+ * Forces a visual interaction state on the inner button, projected to its
72
+ * `data-state` attribute. Used by the design playground to capture
73
+ * hover/pressed/focus states; reactive so toggling the host attribute
74
+ * re-renders.
75
+ */
76
+ accessor forcedState: string | null;
70
77
  private readonly internals;
71
78
  constructor();
72
79
  focus(options?: FocusOptions): void;
73
- private surfaceClasses;
74
80
  render(): import("lit").TemplateResult<1>;
75
81
  private handleClick;
76
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zl-button.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAMhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,OAAgB,MAAM,4BAGpB;IAE2B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAa;IAEjE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAY;IAE9D,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAExD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/B,QAAQ,CAAC,OAAO,UAAS;IAEV,QAAQ,CAAC,QAAQ,UAAS;IAE1B,QAAQ,CAAC,KAAK,UAAS;IAEvD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAE3D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,cAGC;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAED,OAAO,CAAC,cAAc;IAYb,MAAM,oCAyBd;IAED,OAAO,CAAC,WAAW,CAuBjB;CACH;AAED,eAAO,MAAM,gBAAgB,EAAE,YAOrB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"zl-button.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAQhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,OAAgB,MAAM,4BAGpB;IAE2B,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAa;IAEjE,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAY;IAE9D,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAExD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAE/B,QAAQ,CAAC,OAAO,UAAS;IAEV,QAAQ,CAAC,QAAQ,UAAS;IAE1B,QAAQ,CAAC,KAAK,UAAS;IAEvD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAE3D;;;;;OAKG;IACoC,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,cAGC;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,MAAM,oCA8Bd;IAED,OAAO,CAAC,WAAW,CAiBjB;CACH;AAED,eAAO,MAAM,gBAAgB,EAAE,YAOrB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -34,6 +34,13 @@ export declare class ZlCard extends LitElement {
34
34
  static styles: import("lit").CSSResult[];
35
35
  accessor compact: boolean;
36
36
  render(): import("lit").TemplateResult<1>;
37
+ /**
38
+ * `lightDomSlotFilled` is a render-time snapshot, so re-run render whenever a
39
+ * named slot's assignment changes (e.g. a header added after first paint).
40
+ * The initial render still reads children synchronously, avoiding the
41
+ * empty-then-filled flash a slotchange-only approach would introduce.
42
+ */
43
+ private onSlotChange;
37
44
  /** Slotted nodes are always light-DOM children of the host in our templates. */
38
45
  private lightDomSlotFilled;
39
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zl-card.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,4BAA6D;IAEvC,QAAQ,CAAC,OAAO,UAAS;IAE5D,MAAM,oCAmBd;IAED,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;CAM3B;AAED,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
1
+ {"version":3,"file":"zl-card.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-card.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,4BAA6D;IAEvC,QAAQ,CAAC,OAAO,UAAS;IAE5D,MAAM,oCAmBd;IAED;;;;;OAKG;IACH,OAAO,CAAC,YAAY,CAElB;IAEF,gFAAgF;IAChF,OAAO,CAAC,kBAAkB;CAM3B;AAED,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -7,6 +7,11 @@ import "./zl-icon.js";
7
7
  * accepted `type` values track the API contract exactly.
8
8
  */
9
9
  export type ZlFieldType = CreateFlow201StepFieldsType;
10
+ /** Detail shape emitted by the `zl-input` event (input + clear). */
11
+ export type ZlFieldInputDetail = {
12
+ name: string;
13
+ value: string;
14
+ };
10
15
  /**
11
16
  * Atom: `<zl-field>` — labelled input bound to a step `field`. Visual
12
17
  * spec lineage:
@@ -52,6 +57,7 @@ export declare class ZlField extends LitElement {
52
57
  accessor invalid: boolean;
53
58
  private accessor hasHelp;
54
59
  private accessor hasSuffixSlot;
60
+ private accessor inputEl;
55
61
  private readonly inputId;
56
62
  private readonly internals;
57
63
  constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"zl-field.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAOrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAGtB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEtD;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,OAAgB,MAAM,4BAGpB;IAEF;;;;;OAKG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IACW,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAU;IACpC,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,WAAW,SAAM;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAa;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,OAAO,SAAM;IACe,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CACpF;IACsC,QAAQ,CAAC,mBAAmB,SACzD;IACoC,QAAQ,CAAC,YAAY,UAAQ;IACzD,QAAQ,CAAC,QAAQ,UAAS;IACX,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,OAAO,UAAS;IAE5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEhD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,cAGC;IAEQ,iBAAiB,IAAI,IAAI,CAGjC;IAEQ,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAIvD;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnD;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,MAAM,oCA2Ed;IAED,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,WAAW,CAWjB;IAEF,OAAO,CAAC,WAAW,CAUjB;IAEF,OAAO,CAAC,YAAY,CAIlB;IAEF,OAAO,CAAC,aAAa,CAenB;CACH;AAED,eAAO,MAAM,eAAe,EAAE,YAmCpB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"zl-field.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-field.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,UAAU,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAWrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD,OAAO,cAAc,CAAC;AAGtB;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEtD,oEAAoE;AACpE,MAAM,MAAM,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjE;;;;;;;;;;;;;;;;GAgBG;AACH,qBACa,OAAQ,SAAQ,UAAU;IACrC,MAAM,CAAC,cAAc,UAAQ;IAE7B,OAAgB,iBAAiB,EAAE,cAAc,CAG/C;IAEF,OAAgB,MAAM,4BAGpB;IAEF;;;;;OAKG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAErB;IACW,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAU;IACpC,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,WAAW,SAAM;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAa;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IACjD,QAAQ,CAAC,KAAK,SAAM;IACpB,QAAQ,CAAC,OAAO,SAAM;IACe,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CACpF;IACsC,QAAQ,CAAC,mBAAmB,SACzD;IACoC,QAAQ,CAAC,YAAY,UAAQ;IACzD,QAAQ,CAAC,QAAQ,UAAS;IACX,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,OAAO,UAAS;IAE5D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAErB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IAEpF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,cAGC;IAEQ,iBAAiB,IAAI,IAAI,CAGjC;IAEQ,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAIvD;IAED,iBAAiB,IAAI,IAAI,CAExB;IAED,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEnD;IAEQ,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAE3C;IAEQ,MAAM,oCAuEd;IAED,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,kBAAkB;IAqC1B,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,oBAAoB,CAG1B;IAEF,OAAO,CAAC,sBAAsB,CAG5B;IAEF,OAAO,CAAC,WAAW,CAKjB;IAEF,OAAO,CAAC,WAAW,CAIjB;IAEF,OAAO,CAAC,YAAY,CAQlB;IAEF,OAAO,CAAC,aAAa,CAenB;CACH;AAED,eAAO,MAAM,eAAe,EAAE,YAmCpB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"zl-icon.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAuBhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,MAAO,SAAQ,UAAU;IAEpC,OAAgB,MAAM,4BAAwC;IAElD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAU;IAEhB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ;IAE/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAa;IAErB,QAAQ,CAAC,IAAI,UAAS;IAEtB,QAAQ,CAAC,UAAU,UAAS;IAE5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAElD,MAAM,oCA0Bd;CACF;AAED,uGAAuG;AACvG,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,aAAa,GACb,YAAY,GACZ,SAAS,GACT,OAAO,GACP,OAAO,GACP,SAAS,GACT,cAAc,GACd,MAAM,GACN,SAAS,GACT,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,qJAcS,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAoDpE,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
1
+ {"version":3,"file":"zl-icon.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAwBhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBACa,MAAO,SAAQ,UAAU;IAEpC,OAAgB,MAAM,4BAAwC;IAElD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAU;IAEhB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAQ;IAE/B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAa;IAErB,QAAQ,CAAC,IAAI,UAAS;IAEtB,QAAQ,CAAC,UAAU,UAAS;IAE5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAElD,MAAM,oCAwBd;CACF;AAED,uGAAuG;AACvG,MAAM,MAAM,QAAQ,GAChB,MAAM,GACN,aAAa,GACb,YAAY,GACZ,SAAS,GACT,OAAO,GACP,OAAO,GACP,SAAS,GACT,cAAc,GACd,MAAM,GACN,SAAS,GACT,MAAM,GACN,KAAK,GACL,SAAS,CAAC;AAEd,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,qJAcS,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAoDpE,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -31,6 +31,12 @@ import type { AtomManifest } from "../manifest.js";
31
31
  export declare class ZlPageShell extends LitElement {
32
32
  static styles: import("lit").CSSResult[];
33
33
  render(): import("lit").TemplateResult<1>;
34
+ /**
35
+ * Re-render when a named slot's assignment changes so a footer/header added
36
+ * after first paint updates the empty-region class. The initial render reads
37
+ * children synchronously (no empty-then-filled flash).
38
+ */
39
+ private onSlotChange;
34
40
  private lightDomSlotFilled;
35
41
  }
36
42
  export declare const zlPageShellManifest: AtomManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"zl-page-shell.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-page-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAGpB;IAEO,MAAM,oCAsBd;IAED,OAAO,CAAC,kBAAkB;CAM3B;AAED,eAAO,MAAM,mBAAmB,EAAE,YAMxB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
1
+ {"version":3,"file":"zl-page-shell.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-page-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAMvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,WAAY,SAAQ,UAAU;IACzC,OAAgB,MAAM,4BAGpB;IAEO,MAAM,oCAsBd;IAED;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,kBAAkB;CAM3B;AAED,eAAO,MAAM,mBAAmB,EAAE,YAMxB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}
@@ -43,7 +43,6 @@ export declare class ZlPill extends LitElement {
43
43
  accessor tone: "neutral" | "pink" | "purple" | "orange" | "success";
44
44
  accessor href: string | undefined;
45
45
  accessor ariaLabel: string | null;
46
- private surfaceClasses;
47
46
  render(): import("lit").TemplateResult<1>;
48
47
  }
49
48
  export declare const zlPillManifest: AtomManifest;
@@ -1 +1 @@
1
- {"version":3,"file":"zl-pill.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-pill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAMhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,4BAA6D;IAEvE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAa;IAEhF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAE1D,SACkB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAElD,OAAO,CAAC,cAAc;IAIb,MAAM,oCAYd;CACF;AAED,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
1
+ {"version":3,"file":"zl-pill.d.ts","sourceRoot":"","sources":["../../src/atoms/zl-pill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAiB,MAAM,KAAK,CAAC;AAOhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,4BAA6D;IAEvE,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAa;IAEhF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAE1D,SACkB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAEzC,MAAM,oCAed;CACF;AAED,eAAO,MAAM,cAAc,EAAE,YAMnB,CAAC;AAEX,OAAO,CAAC,MAAM,CAAC,CAAC;IACd,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}