@alfadocs/ui-kit 1.82.0 → 1.84.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.
@@ -0,0 +1,385 @@
1
+ import { jsxs as f, jsx as s } from "react/jsx-runtime";
2
+ import { forwardRef as ge, useId as k, useState as l, useEffect as me, useRef as ce } from "react";
3
+ import { useTranslation as ze } from "react-i18next";
4
+ import { c as B } from "./index-D2ZczOXr.js";
5
+ import { E as Pe, i as Te } from "./email-input-C7THAwh2.js";
6
+ import { B as he } from "./button-DohK_Ak_.js";
7
+ import { C as je } from "./checkbox-BjDv-r3o.js";
8
+ import { C as b } from "./card-BA4Ig_kn.js";
9
+ import { T as De } from "./text-input-CaG9ApoE.js";
10
+ import { E as He } from "./error-summary-mGxIyDAY.js";
11
+ import { F as ue } from "./form-field-CyHfOVKF.js";
12
+ import { P as Oe } from "./password-input-BokZ_rnT.js";
13
+ import { i as $e } from "./is-development-CLUAnsU7.js";
14
+ import { i as ve } from "./safe-href-5dbsfbQn.js";
15
+ import { u as _e, w as Ge } from "./use-state-backed-input-DhRQo6gM.js";
16
+ import { u as We, a as Je, A as Ke, b as Qe, d as _, E as Ue, c as Xe } from "./auth-form-parts-B3GWChvG.js";
17
+ import { u as Ye, b as Ze, a as Ve } from "./use-registration-submit-CLGHxwoT.js";
18
+ import { M as es } from "./matrix-rain-sDOUUwZp.js";
19
+ import { a as ss } from "./error-page-illustration-BdJLuMdV.js";
20
+ const W = ["email", "password"], rs = B(
21
+ "ds:flex ds:w-full ds:flex-col ds:items-center ds:justify-center ds:gap-[var(--spacing-lg)] ds:text-start ds:text-[var(--foreground)] ds:lg:flex-row ds:lg:items-stretch"
22
+ ), fe = B("ds:w-full ds:max-w-[400px]"), as = B(
23
+ "ds:flex ds:flex-wrap ds:justify-center ds:gap-x-[var(--spacing-lg)] ds:gap-y-[var(--spacing-lg)]"
24
+ ), G = (a) => a && ve(a) ? a : void 0, ts = (a) => Object.values(a).some(Boolean), os = (a) => W.some((m) => !!a[m]), pe = (a) => W.find((m) => a[m]) ?? (a.form ? "password" : void 0), ns = ge(
25
+ ({
26
+ title: a,
27
+ description: m,
28
+ headingLevel: w = 1,
29
+ showLogo: L = !0,
30
+ logoMotion: R = "assemble",
31
+ children: x,
32
+ initialValues: t,
33
+ allowUsername: F = !1,
34
+ errors: u,
35
+ forgotPasswordHref: d,
36
+ showRememberMe: A = !1,
37
+ registerDoctorHref: be,
38
+ registerPatientHref: we,
39
+ submitLabel: xe,
40
+ submitting: Fe = !1,
41
+ onSubmit: N,
42
+ fieldNames: o,
43
+ action: ye,
44
+ hiddenFields: Me,
45
+ devCard: J,
46
+ className: Ee,
47
+ ...Ce
48
+ }, Ie) => {
49
+ const { t: n } = ze("ui"), K = k(), S = k(), ke = k(), q = (e) => `${ke}-${e}`, i = o !== void 0, [p, g] = l(() => (t == null ? void 0 : t.email) ?? ""), [y, M] = l(""), [Q, Be] = l(
50
+ () => (t == null ? void 0 : t.rememberMe) === !0
51
+ ), z = A || !!(o != null && o.rememberMe), U = i && z && !(o != null && o.rememberMe);
52
+ me(() => {
53
+ U && $e() && console.warn(
54
+ "LoginForm: the remember-me box is shown but `fieldNames.rememberMe` is not set, so the server will not read it."
55
+ );
56
+ }, [U]);
57
+ const [Le, X] = l(() => ({ email: !!(t != null && t.email) })), [Re, Y] = l(!1), [Z, V] = l(
58
+ () => u ?? {}
59
+ ), P = (e) => X(
60
+ (r) => r[e] ? r : { ...r, [e]: !0 }
61
+ ), T = (e) => V(
62
+ (r) => r[e] ? { ...r, [e]: void 0 } : r
63
+ ), E = ce(null), j = ce(null), C = _e(p, E), ee = () => {
64
+ M(""), X((e) => ({ ...e, password: !1 }));
65
+ }, se = () => {
66
+ var v, le;
67
+ const e = ((v = E.current) == null ? void 0 : v.value) ?? p;
68
+ e.trim() !== e && Ge(E.current, e.trim());
69
+ const r = {
70
+ email: e.trim(),
71
+ password: ((le = j.current) == null ? void 0 : le.value) ?? y,
72
+ rememberMe: z && Q
73
+ };
74
+ return r.email !== p && g(r.email), r.password !== y && M(r.password), r;
75
+ }, re = (e) => {
76
+ const r = e.trim();
77
+ return r === "" || (!F || /[@\uFF20\uFE6B]/.test(r)) && !Te(r);
78
+ }, ae = {
79
+ email: re(p),
80
+ password: y === ""
81
+ }, te = (e) => Re || Le[e] === !0, Ae = {
82
+ email: te("email") && ae.email ? p.trim() === "" ? n("loginForm.emailRequired") : n("inputs.email.invalid") : void 0,
83
+ password: te("password") && ae.password ? n("loginForm.passwordRequired") : void 0
84
+ }, I = (e) => Z[e] ?? Ae[e], [oe] = l(
85
+ () => os(u ?? {})
86
+ ), c = Ye(
87
+ W,
88
+ I,
89
+ oe
90
+ ), [D, ne] = l(() => {
91
+ const e = oe ? void 0 : pe(u ?? {});
92
+ return e ? { target: e } : null;
93
+ });
94
+ me(() => {
95
+ var e;
96
+ D && ((e = (D.target === "email" ? E : j).current) == null || e.focus());
97
+ }, [D]);
98
+ const de = Ze({
99
+ errors: u,
100
+ submitting: Fe,
101
+ native: i,
102
+ captcha: !1,
103
+ firstProblem: () => {
104
+ const e = se();
105
+ return re(e.email) ? "email" : e.password === "" ? "password" : void 0;
106
+ },
107
+ onRefused: (e) => {
108
+ Y(!0), c.open(() => ne({ target: e }));
109
+ },
110
+ // Only a React host gets here: a native post is the browser's own.
111
+ deliver: () => N == null ? void 0 : N(se()),
112
+ onAnswer: (e) => {
113
+ const r = e;
114
+ V(r), ts(r) && (ee(), Y(!1), c.open(() => {
115
+ const v = pe(r);
116
+ v && ne({ target: v });
117
+ }));
118
+ },
119
+ // The page came back from the browser's cache as it was left: the
120
+ // password must not come back with it.
121
+ onRestore: ee
122
+ }), { busy: H } = de, Ne = We("LoginForm", i, ye), ie = G(d), O = G(be), $ = G(we), Se = Je(
123
+ "LoginForm",
124
+ i,
125
+ o,
126
+ Me
127
+ ), h = Z.form, qe = Ve(
128
+ h,
129
+ c.listed.length > 0
130
+ );
131
+ return /* @__PURE__ */ f(
132
+ "div",
133
+ {
134
+ ref: Ie,
135
+ ...Ce,
136
+ "data-component": "login-form",
137
+ className: rs({ className: Ee }),
138
+ children: [
139
+ /* @__PURE__ */ s("div", { className: fe(), children: /* @__PURE__ */ s(b, { variant: "elevated", className: "ds:h-full", children: /* @__PURE__ */ f(b.Body, { className: "ds:flex ds:flex-col ds:gap-[var(--spacing-lg)]", children: [
140
+ /* @__PURE__ */ s(
141
+ Ke,
142
+ {
143
+ id: K,
144
+ title: a ?? n("loginForm.title"),
145
+ description: m,
146
+ level: w,
147
+ showLogo: L,
148
+ logoMotion: R
149
+ }
150
+ ),
151
+ x ? /* @__PURE__ */ s(
152
+ "div",
153
+ {
154
+ "data-slot": "host-content",
155
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
156
+ children: x
157
+ }
158
+ ) : null,
159
+ /* @__PURE__ */ f(
160
+ "form",
161
+ {
162
+ noValidate: !0,
163
+ method: "post",
164
+ action: Ne,
165
+ "aria-labelledby": K,
166
+ "aria-busy": H || void 0,
167
+ onSubmit: de.handleSubmit,
168
+ className: "ds:flex ds:flex-col ds:gap-[var(--spacing-md)]",
169
+ children: [
170
+ /* @__PURE__ */ s(
171
+ He,
172
+ {
173
+ ref: c.ref,
174
+ headingLevel: w + 1,
175
+ "aria-describedby": h ? S : void 0,
176
+ errors: c.listed.map((e) => ({
177
+ field: e,
178
+ message: I(e) ?? "",
179
+ targetId: q(e)
180
+ }))
181
+ }
182
+ ),
183
+ h && /* @__PURE__ */ s(
184
+ Qe,
185
+ {
186
+ id: S,
187
+ announce: qe,
188
+ children: h
189
+ }
190
+ ),
191
+ /* @__PURE__ */ s(
192
+ ue,
193
+ {
194
+ id: q("email"),
195
+ label: n("loginForm.email"),
196
+ required: !0,
197
+ error: I("email"),
198
+ announceError: !c.lists("email"),
199
+ "data-field": "email",
200
+ children: F ? (
201
+ // A plain text field: a type="email" field holding a
202
+ // username is "invalid" to a screen reader, whatever
203
+ // `noValidate` says.
204
+ /* @__PURE__ */ s(
205
+ De,
206
+ {
207
+ ref: C.ref,
208
+ name: i ? o.email : "email",
209
+ type: "text",
210
+ inputMode: "email",
211
+ autoComplete: "username",
212
+ autoCapitalize: "none",
213
+ autoCorrect: "off",
214
+ spellCheck: !1,
215
+ onChange: C.quiet((e) => {
216
+ g(e.target.value), T("email");
217
+ }),
218
+ onBlur: (e) => {
219
+ const r = e.target.value.trim();
220
+ g(r), r !== "" && P("email");
221
+ }
222
+ }
223
+ )
224
+ ) : /* @__PURE__ */ s(
225
+ Pe,
226
+ {
227
+ ref: C.ref,
228
+ name: i ? o.email : "email",
229
+ autoComplete: "username",
230
+ disableBuiltInValidation: !0,
231
+ onChange: C.quiet((e) => {
232
+ g(e.target.value), T("email");
233
+ }),
234
+ onBlur: (e) => {
235
+ const r = e.target.value.trim();
236
+ g(r), r !== "" && P("email");
237
+ }
238
+ }
239
+ )
240
+ }
241
+ ),
242
+ /* @__PURE__ */ s(
243
+ ue,
244
+ {
245
+ id: q("password"),
246
+ label: n("loginForm.password"),
247
+ required: !0,
248
+ error: I("password"),
249
+ announceError: !c.lists("password"),
250
+ "data-field": "password",
251
+ children: /* @__PURE__ */ s(
252
+ Oe,
253
+ {
254
+ ref: j,
255
+ name: i ? o.password : "password",
256
+ autoComplete: "current-password",
257
+ "aria-describedby": h ? S : void 0,
258
+ value: y,
259
+ onChange: (e) => {
260
+ M(e.target.value), T("password");
261
+ },
262
+ onBlur: (e) => {
263
+ M(e.target.value), e.target.value !== "" && P("password");
264
+ }
265
+ }
266
+ )
267
+ }
268
+ ),
269
+ ie && /* @__PURE__ */ s(
270
+ _,
271
+ {
272
+ href: ie,
273
+ action: "forgot-password",
274
+ align: "end",
275
+ children: n("loginForm.forgot")
276
+ }
277
+ ),
278
+ z && /* @__PURE__ */ s("div", { "data-field": "remember-me", children: /* @__PURE__ */ s(
279
+ je,
280
+ {
281
+ name: i && o.rememberMe || "rememberMe",
282
+ checked: Q,
283
+ onCheckedChange: (e) => Be(e === !0),
284
+ label: n("loginForm.rememberMe")
285
+ }
286
+ ) }),
287
+ /* @__PURE__ */ s(Ue, { fields: Se }),
288
+ /* @__PURE__ */ s(
289
+ he,
290
+ {
291
+ type: "submit",
292
+ intent: "primary",
293
+ size: "lg",
294
+ loading: H,
295
+ className: "ds:w-full",
296
+ "data-action": "submit",
297
+ children: xe ?? n("loginForm.submit")
298
+ }
299
+ )
300
+ ]
301
+ }
302
+ ),
303
+ (O || $) && /* @__PURE__ */ f(
304
+ "div",
305
+ {
306
+ "data-slot": "register-links",
307
+ className: as(),
308
+ children: [
309
+ O && /* @__PURE__ */ s(_, { href: O, action: "register-doctor", children: n("signedOutHeader.registerDoctor") }),
310
+ $ && /* @__PURE__ */ s(_, { href: $, action: "register-patient", children: n("signedOutHeader.registerPatient") })
311
+ ]
312
+ }
313
+ ),
314
+ /* @__PURE__ */ s(Xe, { busy: H })
315
+ ] }) }) }),
316
+ J ? /* @__PURE__ */ s("div", { className: fe(), children: J }) : null
317
+ ]
318
+ }
319
+ );
320
+ }
321
+ );
322
+ ns.displayName = "LoginForm";
323
+ const ds = B("ds:h-full ds:w-full"), is = ge(
324
+ ({ title: a, options: m, headingLevel: w = 2, className: L, ...R }, x) => {
325
+ const t = k(), F = `h${w}`, u = m.filter((d) => ve(d.href));
326
+ return /* @__PURE__ */ s(
327
+ "div",
328
+ {
329
+ ref: x,
330
+ ...R,
331
+ "data-component": "login-dev-card",
332
+ className: ds({ className: L }),
333
+ children: /* @__PURE__ */ f(
334
+ b,
335
+ {
336
+ variant: "elevated",
337
+ "aria-labelledby": t,
338
+ className: "ds:relative ds:isolate ds:flex ds:h-full ds:flex-col ds:overflow-hidden",
339
+ children: [
340
+ /* @__PURE__ */ s("div", { className: "ds:absolute ds:inset-0 ds:z-0 ds:[display:var(--accessible-off,block)]", children: /* @__PURE__ */ s(
341
+ es,
342
+ {
343
+ glyphs: "hex",
344
+ decay: "fast",
345
+ mask: "center",
346
+ maskRadius: "xl",
347
+ className: "ds:size-full"
348
+ }
349
+ ) }),
350
+ /* @__PURE__ */ s(b.Header, { className: "ds:relative ds:z-[1]", children: /* @__PURE__ */ f("div", { className: "ds:flex ds:flex-col ds:items-center ds:gap-[var(--spacing-sm)] ds:text-center", children: [
351
+ /* @__PURE__ */ s("div", { className: "ds:[&>div]:w-24", children: /* @__PURE__ */ s(ss, { mood: "melt" }) }),
352
+ /* @__PURE__ */ s(
353
+ F,
354
+ {
355
+ id: t,
356
+ className: "type-title-card ds:text-[var(--foreground)]",
357
+ children: a
358
+ }
359
+ )
360
+ ] }) }),
361
+ /* @__PURE__ */ s(b.Body, { className: "ds:relative ds:z-[1] ds:flex ds:flex-1 ds:flex-col ds:justify-center", children: /* @__PURE__ */ s("div", { className: "ds:mt-[var(--spacing-md)] ds:flex ds:flex-col ds:gap-[var(--spacing-xs)]", children: u.map((d, A) => /* @__PURE__ */ s(
362
+ he,
363
+ {
364
+ asChild: !0,
365
+ intent: "primary",
366
+ startIcon: d.icon,
367
+ className: "ds:min-h-[var(--min-target-size)] ds:w-full",
368
+ children: /* @__PURE__ */ s("a", { href: d.href, "data-action": "dev-login", children: d.label })
369
+ },
370
+ `${A}:${d.href}`
371
+ )) }) })
372
+ ]
373
+ }
374
+ )
375
+ }
376
+ );
377
+ }
378
+ );
379
+ is.displayName = "LoginDevCard";
380
+ export {
381
+ W as L,
382
+ is as a,
383
+ ns as b
384
+ };
385
+ //# sourceMappingURL=login-dev-card-DYwbL5sD.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "packageVersion": "1.82.0",
3
+ "packageVersion": "1.84.0",
4
4
  "components": [
5
5
  {
6
6
  "kind": "component",
@@ -20249,7 +20249,7 @@
20249
20249
  {
20250
20250
  "name": "sign_in",
20251
20251
  "safety": "write",
20252
- "description": "Sign in (`data-action=\"submit\"`). The person types the email and the password themselves; the form does not submit until the email is a valid address and the password is not empty; it lists what is wrong in its error summary and moves focus there. The host then signs the person in: through its `onSubmit` handler, or as a native form post to its own field names.",
20252
+ "description": "Sign in (`data-action=\"submit\"`). The person types the email and the password themselves; the form does not submit until the email field is filled in and the password is not empty; text with an `@` must be a valid email address, and text without one is accepted as a username only when the host sets `allowUsername`; it lists what is wrong in its error summary and moves focus there. The host then signs the person in: through its `onSubmit` handler, or as a native form post to its own field names.",
20253
20253
  "descriptionKey": "ui.agent.loginForm.workflows.signIn",
20254
20254
  "uiActions": [],
20255
20255
  "apiActions": [
@@ -1897,7 +1897,7 @@
1897
1897
  "loginForm": {
1898
1898
  "workflows": {
1899
1899
  "readForm": "Read the sign-in form and what is wrong with it. Each field sits in a wrapper with `data-field` (`email`, `password`, and `remember-me` when the host turns it on). A field with a problem has `aria-invalid=\"true\"` on its control and its message in a `data-slot=\"error\"` element inside the wrapper. After a refused submit the fields with a problem are also listed in `data-component=\"error-summary\"` at the top of the form, one item per field (`data-error-field`). A message about the whole form, such as a refused sign-in, is in `data-field=\"form\"`; it never says which of the two values was wrong. Never read or repeat the password.",
1900
- "signIn": "Sign in (`data-action=\"submit\"`). The person types the email and the password themselves; the form does not submit until the email is a valid address and the password is not empty; it lists what is wrong in its error summary and moves focus there. The host then signs the person in: through its `onSubmit` handler, or as a native form post to its own field names.",
1900
+ "signIn": "Sign in (`data-action=\"submit\"`). The person types the email and the password themselves; the form does not submit until the email field is filled in and the password is not empty; text with an `@` must be a valid email address, and text without one is accepted as a username only when the host sets `allowUsername`; it lists what is wrong in its error summary and moves focus there. The host then signs the person in: through its `onSubmit` handler, or as a native form post to its own field names.",
1901
1901
  "rememberMe": "Tick or untick \"Remember me on this computer\" (`data-field=\"remember-me\"`, a checkbox, unticked by default). Present only when the host turns it on. It reports the choice to the host, which decides what it means; it changes nothing until the form is submitted.",
1902
1902
  "forgotPassword": "Go to the page that asks for a password reset link (`data-action=\"forgot-password\"`). Present only when the host gives its address.",
1903
1903
  "register": "Go to a registration page: `data-action=\"register-doctor\"` or `data-action=\"register-patient\"`, under the sign-in button. Each is present only when the host gives its address.",
@@ -1,4 +1,4 @@
1
- import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-dsgiuhKg.js";
1
+ import { B as A, C as R, O as a, b as s } from "../../_chunks/booking-CsA9IIkg.js";
2
2
  export {
3
3
  A as Booking,
4
4
  R as CONFIRMATION_CHANNEL_ORDER,
@@ -6,4 +6,17 @@
6
6
  * repaired focus visible, which is the point of moving it.
7
7
  */
8
8
  export declare const stepRegionFocusClasses: string;
9
+ /**
10
+ * True when movement should be instant: the patient asked for reduced motion,
11
+ * or the theme turned animation off (`.theme-accessible`, a zero
12
+ * `--animation-duration`).
13
+ */
14
+ export declare function motionIsOff(root: HTMLElement | null): boolean;
15
+ /**
16
+ * Brings `element` into view with one smooth scroll, and only when part of it
17
+ * is hidden: a step that is already on screen does not move. A host with a
18
+ * sticky header sets `scroll-margin-top` on the booking, which both the
19
+ * visibility check and the scroll respect. Instant when motion is off.
20
+ */
21
+ export declare function glideIntoView(element: HTMLElement | null, block: ScrollLogicalPosition): void;
9
22
  //# sourceMappingURL=step-focus.d.ts.map
package/dist/index.js CHANGED
@@ -217,7 +217,7 @@ import { V as tf, v as nf } from "./_chunks/voice-control-panel-BziKE-KK.js";
217
217
  import { A as mf } from "./_chunks/anamnesis-card-BcadMmEM.js";
218
218
  import { D as df, F as Af, a as ff, M as cf, b as Sf, e as gf, f as Cf, g as Tf, c as xf, m as uf, r as Pf, v as Ef } from "./_chunks/muscle-scheme-C66WlCxG.js";
219
219
  import { A as Rf, a as _f, b as bf, c as Nf, d as Df, e as Of, C as Ff, f as Lf, g as hf, D as Mf, h as yf, E as kf, L as Bf, O as Gf, P as vf, i as Hf, j as Wf, k as wf, l as Uf, R as Vf, S as Kf, m as Yf, n as Xf, o as qf, p as zf, q as jf, r as Qf, s as Zf, t as Jf, u as $f, v as ac, w as ec, x as sc, y as rc, z as oc, B as tc, F as nc } from "./_chunks/optical-prescription-CMM1Y6Xg.js";
220
- import { B as pc, C as mc, O as lc, b as dc } from "./_chunks/booking-dsgiuhKg.js";
220
+ import { B as pc, C as mc, O as lc, b as dc } from "./_chunks/booking-CsA9IIkg.js";
221
221
  import { C as fc, c as cc, r as Sc } from "./_chunks/calendar-ClB-jWH1.js";
222
222
  import { C as Cc } from "./_chunks/calendar-event-card-DXAYWH6k.js";
223
223
  import { R as xc, a as uc } from "./_chunks/resource-chip-DB5jDwUO.js";
@@ -267,7 +267,7 @@ import { E as eu, a as su, b as ru, e as ou, r as tu } from "./_chunks/error-pag
267
267
  import { E as iu } from "./_chunks/error-page-illustration-BdJLuMdV.js";
268
268
  import { F as mu, a as lu } from "./_chunks/forgot-password-form-BQPvDS7i.js";
269
269
  import { A as Au, a as fu, H as cu, b as Su, u as gu } from "./_chunks/help-me-write-templates-BJSf24xS.js";
270
- import { L as Tu, a as xu, b as uu } from "./_chunks/login-dev-card-CvLHj-_N.js";
270
+ import { L as Tu, a as xu, b as uu } from "./_chunks/login-dev-card-DYwbL5sD.js";
271
271
  import { C as Eu, M as Iu, P as Ru } from "./_chunks/marketplace-app-shell-vON3WhD0.js";
272
272
  import { P as bu } from "./_chunks/payment-automation-upsell-D1YdO1xY.js";
273
273
  import { R as Du, a as Ou } from "./_chunks/registration-form-DmP3YUfp.js";
@@ -1,4 +1,4 @@
1
- import { L, a as r, b as s } from "../../_chunks/login-dev-card-CvLHj-_N.js";
1
+ import { L, a as r, b as s } from "../../_chunks/login-dev-card-DYwbL5sD.js";
2
2
  export {
3
3
  L as LOGIN_FORM_FIELDS,
4
4
  r as LoginDevCard,
@@ -53,6 +53,13 @@ export interface LoginFormProps extends Omit<HTMLAttributes<HTMLDivElement>, 'ti
53
53
  * it is posted. Keep any heading inside it below the card's own level.
54
54
  */
55
55
  children?: ReactNode;
56
+ /**
57
+ * For hosts whose server also signs people in by a username. The first
58
+ * field is still labelled "Email", but text without an "@" is accepted as
59
+ * a username: it only has to be filled in. Text with an "@" must be a
60
+ * valid email address, as when this is off. Default false.
61
+ */
62
+ allowUsername?: boolean;
56
63
  /** The email to show when the form opens, such as the one last used,
57
64
  * and whether "Remember me" starts ticked (default false). Read once.
58
65
  * There is never an initial password. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfadocs/ui-kit",
3
- "version": "1.82.0",
3
+ "version": "1.84.0",
4
4
  "type": "module",
5
5
  "description": "AlfaDocs shared design system — tokens, components, patterns, and translations for platform, booking, and alfascribe.",
6
6
  "license": "BUSL-1.1",