@questpie/admin 3.0.9 → 3.1.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.
Files changed (41) hide show
  1. package/dist/augmentation.d.mts +39 -0
  2. package/dist/client/builder/types/field-types.d.mts +10 -14
  3. package/dist/client/components/fields/relation-picker.mjs +2 -2
  4. package/dist/client/components/fields/relation-select.mjs +3 -3
  5. package/dist/client/hooks/use-reactive-prop.mjs +308 -0
  6. package/dist/client/preview/block-scope-context.d.mts +2 -2
  7. package/dist/client/preview/preview-banner.d.mts +2 -2
  8. package/dist/client/scope/picker.d.mts +2 -2
  9. package/dist/client/scope/provider.d.mts +2 -2
  10. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  11. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  12. package/dist/client/views/auth/login-form.d.mts +2 -2
  13. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  14. package/dist/client/views/collection/field-renderer.mjs +59 -134
  15. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  16. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  17. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  18. package/dist/client/views/pages/invite-page.d.mts +2 -2
  19. package/dist/client/views/pages/login-page.d.mts +2 -2
  20. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  21. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  22. package/dist/server/augmentation/form-layout.d.mts +48 -4
  23. package/dist/server/augmentation/index.d.mts +1 -1
  24. package/dist/server/augmentation.d.mts +1 -1
  25. package/dist/server/modules/admin/collections/admin-locks.d.mts +50 -50
  26. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  27. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  28. package/dist/server/modules/admin/collections/apikey.d.mts +64 -64
  29. package/dist/server/modules/admin/collections/assets.d.mts +20 -20
  30. package/dist/server/modules/admin/collections/session.d.mts +38 -38
  31. package/dist/server/modules/admin/collections/user.d.mts +32 -32
  32. package/dist/server/modules/admin/collections/verification.d.mts +32 -32
  33. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  34. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  35. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  36. package/dist/server/modules/admin/routes/reactive.d.mts +13 -11
  37. package/dist/server/modules/admin/routes/reactive.mjs +75 -11
  38. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  39. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  40. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +23 -23
  41. package/package.json +3 -3
@@ -205,6 +205,45 @@ interface RelationFieldAdminMeta extends BaseAdminMeta {
205
205
  allowEdit?: boolean;
206
206
  preload?: boolean;
207
207
  maxItems?: number;
208
+ /**
209
+ * Restrict which related records can be picked. Static `Record` is used
210
+ * as-is; a function or `{ handler, deps?, debounce? }` config stays on
211
+ * the server (introspection emits a `ReactivePropPlaceholder`) and is
212
+ * resolved on demand via `/admin/reactive` against current form data.
213
+ *
214
+ * @example Static
215
+ * ```ts
216
+ * f.relation("users").admin({ filter: { role: "admin" } })
217
+ * ```
218
+ *
219
+ * @example Reactive — depends on form state
220
+ * ```ts
221
+ * f.relation("users").admin({
222
+ * filter: ({ data }) => ({ role: "admin", team: data.team }),
223
+ * })
224
+ * ```
225
+ */
226
+ filter?: Record<string, unknown> | ((ctx: {
227
+ data: Record<string, unknown>;
228
+ sibling: Record<string, unknown>;
229
+ prev: {
230
+ data: Record<string, unknown>;
231
+ sibling: Record<string, unknown>;
232
+ };
233
+ ctx: unknown;
234
+ }) => Record<string, unknown> | Promise<Record<string, unknown>>) | {
235
+ handler: (ctx: {
236
+ data: Record<string, unknown>;
237
+ sibling: Record<string, unknown>;
238
+ prev: {
239
+ data: Record<string, unknown>;
240
+ sibling: Record<string, unknown>;
241
+ };
242
+ ctx: unknown;
243
+ }) => Record<string, unknown> | Promise<Record<string, unknown>>;
244
+ deps?: string[];
245
+ debounce?: number;
246
+ };
208
247
  /**
209
248
  * List table cell rendering for relation values.
210
249
  * - "chip": default text chip
@@ -501,22 +501,18 @@ interface FieldReactiveConfig<TData = any> {
501
501
  compute?: FieldReactiveHandlerConfig<TData, any> | SerializedReactiveDepsConfig;
502
502
  }
503
503
  /**
504
- * Field layout item with optional reactive config
504
+ * Field layout item single-field reference variant.
505
+ *
506
+ * On the wire this matches the server's `FormFieldLayoutItem` after
507
+ * introspection has serialized any function-valued `props.<key>` to a
508
+ * `ReactivePropPlaceholder`. Kept as `Record<string, unknown>` here because
509
+ * the client only ever consumes the post-serialization shape.
505
510
  */
506
- interface FieldLayoutItemWithReactive<TData = any> extends FieldReactiveConfig<TData> {
511
+ interface FieldLayoutItemRef<TData = any> extends FieldReactiveConfig<TData> {
507
512
  field: string;
508
513
  className?: string;
509
- /**
510
- * Extra props forwarded to the field component. Use for component-specific
511
- * configuration that doesn't have a dedicated layout key (e.g. relation
512
- * field's `filter`, custom render functions).
513
- *
514
- * @example
515
- * ```ts
516
- * { field: f.counselorId, props: { filter: () => ({ role: "admin" }) } }
517
- * ```
518
- */
519
- props?: Record<string, any>;
514
+ /** Forwarded to the field component. See server `FormFieldLayoutItem.props`. */
515
+ props?: Record<string, unknown>;
520
516
  }
521
517
  /**
522
518
  * Field layout item - can be a simple field name, field with config, section, or tabs
@@ -533,7 +529,7 @@ interface FieldLayoutItemWithReactive<TData = any> extends FieldReactiveConfig<T
533
529
  * ]
534
530
  * ```
535
531
  */
536
- type FieldLayoutItem<TData = any> = string | FieldLayoutItemWithReactive<TData> | SectionLayout<TData> | TabsLayout<TData>;
532
+ type FieldLayoutItem<TData = any> = string | FieldLayoutItemRef<TData> | SectionLayout<TData> | TabsLayout<TData>;
537
533
  /**
538
534
  * Form sidebar configuration
539
535
  * Uses `fields` array (same structure as main form)
@@ -89,7 +89,7 @@ function RelationPicker({ name, value, onChange, targetCollection, label, filter
89
89
  try {
90
90
  const options = { limit: 50 };
91
91
  if (search) options.search = search;
92
- if (filter) options.where = filter({});
92
+ if (filter) options.where = filter;
93
93
  const response_0 = await client.collections[targetCollection].find(options);
94
94
  let docs;
95
95
  if (response_0) if (response_0.docs) docs = response_0.docs;
@@ -244,7 +244,7 @@ function RelationPicker({ name, value, onChange, targetCollection, label, filter
244
244
  {
245
245
  limit: 50,
246
246
  search: search_0,
247
- where: filter ? filter({}) : void 0,
247
+ where: filter ?? void 0,
248
248
  selectedIds
249
249
  }
250
250
  ]),
@@ -49,7 +49,7 @@ function RelationSelect({ name, value, onChange, targetCollection, label, filter
49
49
  locale
50
50
  };
51
51
  if (search) options.search = search;
52
- if (filter) options.where = filter({});
52
+ if (filter) options.where = filter;
53
53
  const response = await client.collections[targetCollection].find(options);
54
54
  let docs;
55
55
  if (response) if (response.docs) docs = response.docs;
@@ -168,7 +168,7 @@ function RelationSelect({ name, value, onChange, targetCollection, label, filter
168
168
  limit: 50,
169
169
  locale,
170
170
  search: search_0,
171
- where: filter ? filter({}) : void 0
171
+ where: filter ?? void 0
172
172
  }
173
173
  ]),
174
174
  prefetchOnMount: true,
@@ -222,7 +222,7 @@ function RelationSelect({ name, value, onChange, targetCollection, label, filter
222
222
  limit: 50,
223
223
  locale,
224
224
  search: search_1,
225
- where: filter ? filter({}) : void 0
225
+ where: filter ?? void 0
226
226
  }
227
227
  ]),
228
228
  prefetchOnMount: true,
@@ -0,0 +1,308 @@
1
+ import { useAdminStore } from "../runtime/provider.mjs";
2
+ import { c } from "react/compiler-runtime";
3
+ import * as React from "react";
4
+ import { useQuery } from "@tanstack/react-query";
5
+ import { useFormContext, useWatch } from "react-hook-form";
6
+ import { isReactivePropPlaceholder } from "questpie/client";
7
+
8
+ //#region src/client/hooks/use-reactive-prop.ts
9
+ /**
10
+ * useReactiveProps — resolve `extraProps` placeholders against the live form.
11
+ *
12
+ * Field components (relation-select, relation-picker, …) accept user-supplied
13
+ * config via the layout escape hatch:
14
+ *
15
+ * v.collectionForm({
16
+ * fields: [
17
+ * { field: f.author, props: { filter: ({ data }) => ({ team: data.team }) } },
18
+ * ],
19
+ * })
20
+ *
21
+ * Functions never cross the wire — introspection serializes them to a
22
+ * `ReactivePropPlaceholder` carrying just the dependency list. This hook is
23
+ * called by `FieldRenderer` *before* it spreads `extraProps` into the field
24
+ * component's props:
25
+ *
26
+ * - Static JSON / `undefined` → returned synchronously, **no network**.
27
+ * - Placeholder shape `{ "~reactive": "prop", watch, debounce? }` → resolved
28
+ * by calling `/admin/reactive` (`type: "prop"`) with current `formData`.
29
+ *
30
+ * All placeholders inside a single `extraProps` record share **one** TanStack
31
+ * Query — both for cache locality and to collapse N round-trips into one.
32
+ * The query refetches only when any of the union of `watch` deps changes,
33
+ * debounced by `max(placeholder.debounce)` (or the caller-supplied override,
34
+ * default 100ms).
35
+ */
36
+ /**
37
+ * Stable hash of the watched dep values. Replacer keeps `undefined` slots so
38
+ * `[1, undefined, 2]` ≠ `[1, 2]`.
39
+ */
40
+ function hashDeps(values) {
41
+ return JSON.stringify(values, (_, v) => v === void 0 ? "__undef__" : v);
42
+ }
43
+ function useDebounced(value, delay) {
44
+ const $ = c(4);
45
+ const [debounced, setDebounced] = React.useState(value);
46
+ let t0;
47
+ let t1;
48
+ if ($[0] !== delay || $[1] !== value) {
49
+ t0 = () => {
50
+ if (delay <= 0) {
51
+ setDebounced(value);
52
+ return;
53
+ }
54
+ const timer = setTimeout(() => setDebounced(value), delay);
55
+ return () => clearTimeout(timer);
56
+ };
57
+ t1 = [value, delay];
58
+ $[0] = delay;
59
+ $[1] = value;
60
+ $[2] = t0;
61
+ $[3] = t1;
62
+ } else {
63
+ t0 = $[2];
64
+ t1 = $[3];
65
+ }
66
+ React.useEffect(t0, t1);
67
+ return debounced;
68
+ }
69
+ const EMPTY_PROPS = Object.freeze({});
70
+ function useReactiveProps(t0) {
71
+ const $ = c(52);
72
+ const { entity, entityType: t1, field, props, enabled: t2, debounce: debounceOverride } = t0;
73
+ const entityType = t1 === void 0 ? "collection" : t1;
74
+ const enabled = t2 === void 0 ? true : t2;
75
+ let dbMax;
76
+ let dynamicOut;
77
+ let staticOut;
78
+ let watchSet;
79
+ if ($[0] !== props) {
80
+ staticOut = {};
81
+ dynamicOut = [];
82
+ watchSet = /* @__PURE__ */ new Set();
83
+ dbMax = 0;
84
+ if (props) for (const [key, value] of Object.entries(props)) if (isReactivePropPlaceholder(value)) {
85
+ dynamicOut.push({
86
+ key,
87
+ placeholder: value
88
+ });
89
+ for (const dep of value.watch) watchSet.add(dep);
90
+ if (typeof value.debounce === "number" && value.debounce > dbMax) dbMax = value.debounce;
91
+ } else staticOut[key] = value;
92
+ $[0] = props;
93
+ $[1] = dbMax;
94
+ $[2] = dynamicOut;
95
+ $[3] = staticOut;
96
+ $[4] = watchSet;
97
+ } else {
98
+ dbMax = $[1];
99
+ dynamicOut = $[2];
100
+ staticOut = $[3];
101
+ watchSet = $[4];
102
+ }
103
+ const t3 = dynamicOut.length === 0 ? props ?? EMPTY_PROPS : staticOut;
104
+ let t4;
105
+ if ($[5] !== watchSet) {
106
+ t4 = [...watchSet];
107
+ $[5] = watchSet;
108
+ $[6] = t4;
109
+ } else t4 = $[6];
110
+ let t5;
111
+ if ($[7] !== dbMax || $[8] !== dynamicOut || $[9] !== t3 || $[10] !== t4) {
112
+ t5 = {
113
+ staticProps: t3,
114
+ placeholders: dynamicOut,
115
+ watchUnion: t4,
116
+ debounceMax: dbMax
117
+ };
118
+ $[7] = dbMax;
119
+ $[8] = dynamicOut;
120
+ $[9] = t3;
121
+ $[10] = t4;
122
+ $[11] = t5;
123
+ } else t5 = $[11];
124
+ const { staticProps, placeholders, watchUnion, debounceMax } = t5;
125
+ const debounce = debounceOverride ?? (debounceMax > 0 ? debounceMax : 100);
126
+ const formContext = useFormContext();
127
+ const t6 = formContext?.control;
128
+ const t7 = watchUnion;
129
+ const t8 = placeholders.length === 0 || !formContext || watchUnion.length === 0;
130
+ let t9;
131
+ if ($[12] !== t6 || $[13] !== t7 || $[14] !== t8) {
132
+ t9 = {
133
+ control: t6,
134
+ name: t7,
135
+ disabled: t8
136
+ };
137
+ $[12] = t6;
138
+ $[13] = t7;
139
+ $[14] = t8;
140
+ $[15] = t9;
141
+ } else t9 = $[15];
142
+ const watchedRaw = useWatch(t9);
143
+ let t10;
144
+ bb0: {
145
+ if (placeholders.length === 0) {
146
+ let t11$2;
147
+ if ($[16] === Symbol.for("react.memo_cache_sentinel")) {
148
+ t11$2 = [];
149
+ $[16] = t11$2;
150
+ } else t11$2 = $[16];
151
+ t10 = t11$2;
152
+ break bb0;
153
+ }
154
+ if (watchUnion.length === 0) {
155
+ let t11$2;
156
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
157
+ t11$2 = [];
158
+ $[17] = t11$2;
159
+ } else t11$2 = $[17];
160
+ t10 = t11$2;
161
+ break bb0;
162
+ }
163
+ let t11$1;
164
+ if ($[18] !== watchedRaw) {
165
+ t11$1 = Array.isArray(watchedRaw) ? watchedRaw : [watchedRaw];
166
+ $[18] = watchedRaw;
167
+ $[19] = t11$1;
168
+ } else t11$1 = $[19];
169
+ t10 = t11$1;
170
+ }
171
+ const debouncedDeps = useDebounced(t10, debounce);
172
+ let t11;
173
+ if ($[20] !== debouncedDeps) {
174
+ t11 = hashDeps(debouncedDeps);
175
+ $[20] = debouncedDeps;
176
+ $[21] = t11;
177
+ } else t11 = $[21];
178
+ const depHash = t11;
179
+ let t12;
180
+ if ($[22] !== placeholders) {
181
+ t12 = placeholders.map(_temp).sort();
182
+ $[22] = placeholders;
183
+ $[23] = t12;
184
+ } else t12 = $[23];
185
+ const placeholderKeys = t12;
186
+ const client = useAdminStore(_temp2);
187
+ const queryEnabled = enabled && placeholders.length > 0 && !!client;
188
+ let t13;
189
+ if ($[24] !== depHash || $[25] !== entity || $[26] !== entityType || $[27] !== field || $[28] !== placeholderKeys) {
190
+ t13 = [
191
+ "questpie",
192
+ "reactive-props",
193
+ entityType,
194
+ entity,
195
+ field,
196
+ placeholderKeys,
197
+ depHash
198
+ ];
199
+ $[24] = depHash;
200
+ $[25] = entity;
201
+ $[26] = entityType;
202
+ $[27] = field;
203
+ $[28] = placeholderKeys;
204
+ $[29] = t13;
205
+ } else t13 = $[29];
206
+ let t14;
207
+ if ($[30] !== client || $[31] !== entity || $[32] !== entityType || $[33] !== field || $[34] !== formContext || $[35] !== placeholders) {
208
+ t14 = async () => {
209
+ if (!client || placeholders.length === 0) return {};
210
+ const formData = formContext?.getValues?.() ?? {};
211
+ const response = await client.routes.batchReactive({
212
+ collection: entity,
213
+ type: entityType,
214
+ formData,
215
+ requests: placeholders.map((t15$1) => {
216
+ const { key: key_0 } = t15$1;
217
+ return {
218
+ field,
219
+ type: "prop",
220
+ propPath: key_0
221
+ };
222
+ })
223
+ });
224
+ const out = {};
225
+ for (const r of response.results) {
226
+ if (r.field !== field || r.type !== "prop" || !r.propPath) continue;
227
+ if (r.error) throw new Error(`[${r.propPath}] ${r.error}`);
228
+ out[r.propPath] = r.value;
229
+ }
230
+ return out;
231
+ };
232
+ $[30] = client;
233
+ $[31] = entity;
234
+ $[32] = entityType;
235
+ $[33] = field;
236
+ $[34] = formContext;
237
+ $[35] = placeholders;
238
+ $[36] = t14;
239
+ } else t14 = $[36];
240
+ let t15;
241
+ if ($[37] !== queryEnabled || $[38] !== t13 || $[39] !== t14) {
242
+ t15 = {
243
+ queryKey: t13,
244
+ queryFn: t14,
245
+ enabled: queryEnabled,
246
+ placeholderData: _temp3,
247
+ staleTime: 3e4
248
+ };
249
+ $[37] = queryEnabled;
250
+ $[38] = t13;
251
+ $[39] = t14;
252
+ $[40] = t15;
253
+ } else t15 = $[40];
254
+ const query = useQuery(t15);
255
+ let t16;
256
+ bb1: {
257
+ if (placeholders.length === 0) {
258
+ t16 = staticProps;
259
+ break bb1;
260
+ }
261
+ let out_0;
262
+ if ($[41] !== placeholders || $[42] !== query.data || $[43] !== staticProps) {
263
+ out_0 = { ...staticProps };
264
+ let t17$1;
265
+ if ($[45] !== query.data) {
266
+ t17$1 = query.data ?? {};
267
+ $[45] = query.data;
268
+ $[46] = t17$1;
269
+ } else t17$1 = $[46];
270
+ const resolved = t17$1;
271
+ for (const { key: key_1 } of placeholders) out_0[key_1] = resolved[key_1];
272
+ $[41] = placeholders;
273
+ $[42] = query.data;
274
+ $[43] = staticProps;
275
+ $[44] = out_0;
276
+ } else out_0 = $[44];
277
+ t16 = out_0;
278
+ }
279
+ const merged = t16;
280
+ const t17 = query.error ?? null;
281
+ let t18;
282
+ if ($[47] !== merged || $[48] !== query.isFetching || $[49] !== query.isLoading || $[50] !== t17) {
283
+ t18 = {
284
+ props: merged,
285
+ isLoading: query.isLoading,
286
+ isFetching: query.isFetching,
287
+ error: t17
288
+ };
289
+ $[47] = merged;
290
+ $[48] = query.isFetching;
291
+ $[49] = query.isLoading;
292
+ $[50] = t17;
293
+ $[51] = t18;
294
+ } else t18 = $[51];
295
+ return t18;
296
+ }
297
+ function _temp3(prev) {
298
+ return prev;
299
+ }
300
+ function _temp2(s) {
301
+ return s.client;
302
+ }
303
+ function _temp(p) {
304
+ return p.key;
305
+ }
306
+
307
+ //#endregion
308
+ export { useReactiveProps };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime24 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime25 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/preview/block-scope-context.d.ts
5
5
 
@@ -35,7 +35,7 @@ declare function BlockScopeProvider({
35
35
  blockId,
36
36
  basePath,
37
37
  children
38
- }: BlockScopeProviderProps): react_jsx_runtime24.JSX.Element;
38
+ }: BlockScopeProviderProps): react_jsx_runtime25.JSX.Element;
39
39
  /**
40
40
  * Get current block scope context.
41
41
  *
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime20 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime24 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/preview/preview-banner.d.ts
4
4
 
@@ -40,6 +40,6 @@ declare function PreviewBanner({
40
40
  isPreviewMode,
41
41
  className,
42
42
  exitPreviewUrl
43
- }: PreviewBannerProps): react_jsx_runtime20.JSX.Element | null;
43
+ }: PreviewBannerProps): react_jsx_runtime24.JSX.Element | null;
44
44
  //#endregion
45
45
  export { PreviewBanner, PreviewBannerProps };
@@ -1,5 +1,5 @@
1
1
  import { ScopePickerProps } from "./types.mjs";
2
- import * as react_jsx_runtime26 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime27 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/scope/picker.d.ts
5
5
 
@@ -48,6 +48,6 @@ declare function ScopePicker({
48
48
  clearText,
49
49
  className,
50
50
  compact
51
- }: ScopePickerProps): react_jsx_runtime26.JSX.Element;
51
+ }: ScopePickerProps): react_jsx_runtime27.JSX.Element;
52
52
  //#endregion
53
53
  export { ScopePicker };
@@ -1,5 +1,5 @@
1
1
  import { ScopeContextValue, ScopeProviderProps } from "./types.mjs";
2
- import * as react_jsx_runtime27 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime26 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/scope/provider.d.ts
5
5
 
@@ -29,7 +29,7 @@ declare function ScopeProvider({
29
29
  headerName,
30
30
  storageKey,
31
31
  defaultScope
32
- }: ScopeProviderProps): react_jsx_runtime27.JSX.Element;
32
+ }: ScopeProviderProps): react_jsx_runtime26.JSX.Element;
33
33
  /**
34
34
  * Hook to access the current scope context.
35
35
  *
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime2 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/accept-invite-form.d.ts
4
4
  /**
@@ -67,6 +67,6 @@ declare function AcceptInviteForm({
67
67
  className,
68
68
  error,
69
69
  minPasswordLength
70
- }: AcceptInviteFormProps): react_jsx_runtime2.JSX.Element;
70
+ }: AcceptInviteFormProps): react_jsx_runtime0.JSX.Element;
71
71
  //#endregion
72
72
  export { AcceptInviteForm };
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/client/views/auth/auth-layout.d.ts
5
5
 
@@ -26,7 +26,7 @@ declare function AuthDefaultLogo({
26
26
  brandName
27
27
  }: {
28
28
  brandName: string;
29
- }): react_jsx_runtime0.JSX.Element;
29
+ }): react_jsx_runtime1.JSX.Element;
30
30
  /**
31
31
  * Minimal split layout for authentication pages (login, register, forgot password, etc.)
32
32
  *
@@ -50,6 +50,6 @@ declare function AuthDefaultLogo({
50
50
  * </AuthLayout>
51
51
  * ```
52
52
  */
53
- declare function AuthLayout(props: AuthLayoutProps): react_jsx_runtime0.JSX.Element;
53
+ declare function AuthLayout(props: AuthLayoutProps): react_jsx_runtime1.JSX.Element;
54
54
  //#endregion
55
55
  export { AuthDefaultLogo, AuthLayout, AuthLayoutProps };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime4 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/login-form.d.ts
4
4
  /**
@@ -70,6 +70,6 @@ declare function LoginForm({
70
70
  className,
71
71
  error,
72
72
  minPasswordLength
73
- }: LoginFormProps): react_jsx_runtime4.JSX.Element;
73
+ }: LoginFormProps): react_jsx_runtime5.JSX.Element;
74
74
  //#endregion
75
75
  export { LoginForm };
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime5 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/client/views/auth/reset-password-form.d.ts
4
4
  /**
@@ -60,6 +60,6 @@ declare function ResetPasswordForm({
60
60
  minPasswordLength,
61
61
  className,
62
62
  error
63
- }: ResetPasswordFormProps): react_jsx_runtime5.JSX.Element;
63
+ }: ResetPasswordFormProps): react_jsx_runtime4.JSX.Element;
64
64
  //#endregion
65
65
  export { ResetPasswordForm };