@questpie/admin 3.0.8 → 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 (53) hide show
  1. package/dist/augmentation.d.mts +39 -0
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/builder/types/field-types.d.mts +10 -14
  4. package/dist/client/components/actions/action-button.mjs +2 -1
  5. package/dist/client/components/admin-link.d.mts +2 -2
  6. package/dist/client/components/fields/relation-picker.mjs +2 -2
  7. package/dist/client/components/fields/relation-select.mjs +3 -3
  8. package/dist/client/hooks/use-reactive-prop.mjs +308 -0
  9. package/dist/client/hooks/use-server-actions.mjs +2 -1
  10. package/dist/client/preview/block-scope-context.d.mts +2 -2
  11. package/dist/client/preview/preview-banner.d.mts +2 -2
  12. package/dist/client/preview/preview-field.d.mts +4 -4
  13. package/dist/client/scope/picker.d.mts +2 -2
  14. package/dist/client/scope/provider.d.mts +2 -2
  15. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  16. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  17. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  18. package/dist/client/views/auth/login-form.d.mts +2 -2
  19. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  20. package/dist/client/views/collection/field-renderer.mjs +59 -134
  21. package/dist/client/views/collection/form-view.mjs +34 -6
  22. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  23. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  24. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  25. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  26. package/dist/client/views/pages/setup-page.d.mts +2 -2
  27. package/dist/components/rich-text/rich-text-renderer.d.mts +2 -2
  28. package/dist/server/augmentation/form-layout.d.mts +48 -4
  29. package/dist/server/augmentation/index.d.mts +1 -1
  30. package/dist/server/augmentation.d.mts +1 -1
  31. package/dist/server/modules/admin/collections/account.d.mts +30 -30
  32. package/dist/server/modules/admin/collections/admin-locks.d.mts +54 -54
  33. package/dist/server/modules/admin/collections/admin-preferences.d.mts +39 -39
  34. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +47 -47
  35. package/dist/server/modules/admin/collections/apikey.d.mts +68 -68
  36. package/dist/server/modules/admin/collections/assets.d.mts +8 -8
  37. package/dist/server/modules/admin/collections/session.d.mts +42 -42
  38. package/dist/server/modules/admin/collections/user.d.mts +32 -32
  39. package/dist/server/modules/admin/collections/verification.d.mts +23 -23
  40. package/dist/server/modules/admin/routes/admin-config.d.mts +2 -2
  41. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  42. package/dist/server/modules/admin/routes/locales.d.mts +2 -2
  43. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  44. package/dist/server/modules/admin/routes/reactive.d.mts +13 -11
  45. package/dist/server/modules/admin/routes/reactive.mjs +75 -11
  46. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  47. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  48. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  49. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +45 -45
  50. package/dist/server/modules/audit/.generated/module.d.mts +6 -6
  51. package/dist/server/modules/audit/collections/audit-log.d.mts +78 -78
  52. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +2 -2
  53. package/package.json +3 -3
@@ -1,63 +1,63 @@
1
- import * as questpie_shared44 from "questpie/shared";
2
- import * as questpie398 from "questpie";
3
- import * as questpie_src_server_modules_core_fields_email_js8 from "questpie/src/server/modules/core/fields/email.js";
4
- import * as questpie_src_server_modules_core_fields_json_js8 from "questpie/src/server/modules/core/fields/json.js";
5
- import * as drizzle_orm_pg_core120 from "drizzle-orm/pg-core";
6
- import * as drizzle_orm73 from "drizzle-orm";
1
+ import * as questpie_shared41 from "questpie/shared";
2
+ import * as questpie304 from "questpie";
3
+ import * as questpie_src_server_modules_core_fields_email_js7 from "questpie/src/server/modules/core/fields/email.js";
4
+ import * as questpie_src_server_modules_core_fields_json_js7 from "questpie/src/server/modules/core/fields/json.js";
5
+ import * as drizzle_orm_pg_core83 from "drizzle-orm/pg-core";
6
+ import * as drizzle_orm55 from "drizzle-orm";
7
7
 
8
8
  //#region src/server/modules/admin/collections/session.d.ts
9
- declare const _default: questpie398.CollectionBuilder<questpie_shared44.Override<questpie398.EmptyCollectionState<"session", undefined, {
10
- readonly text: typeof questpie398.text;
11
- readonly textarea: typeof questpie398.textarea;
12
- readonly email: typeof questpie_src_server_modules_core_fields_email_js8.email;
13
- readonly url: typeof questpie398.url;
14
- readonly number: typeof questpie398.number;
15
- readonly boolean: typeof questpie398.boolean;
16
- readonly date: typeof questpie398.date;
17
- readonly datetime: typeof questpie398.datetime;
18
- readonly time: typeof questpie398.time;
19
- readonly select: typeof questpie398.select;
20
- readonly upload: typeof questpie398.upload;
21
- readonly relation: typeof questpie398.relation;
22
- readonly object: typeof questpie398.object;
23
- readonly json: typeof questpie_src_server_modules_core_fields_json_js8.json;
24
- readonly from: typeof questpie398.from;
9
+ declare const _default: questpie304.CollectionBuilder<questpie_shared41.Override<questpie304.EmptyCollectionState<"session", undefined, {
10
+ readonly text: typeof questpie304.text;
11
+ readonly textarea: typeof questpie304.textarea;
12
+ readonly email: typeof questpie_src_server_modules_core_fields_email_js7.email;
13
+ readonly url: typeof questpie304.url;
14
+ readonly number: typeof questpie304.number;
15
+ readonly boolean: typeof questpie304.boolean;
16
+ readonly date: typeof questpie304.date;
17
+ readonly datetime: typeof questpie304.datetime;
18
+ readonly time: typeof questpie304.time;
19
+ readonly select: typeof questpie304.select;
20
+ readonly upload: typeof questpie304.upload;
21
+ readonly relation: typeof questpie304.relation;
22
+ readonly object: typeof questpie304.object;
23
+ readonly json: typeof questpie_src_server_modules_core_fields_json_js7.json;
24
+ readonly from: typeof questpie304.from;
25
25
  }>, {
26
26
  name: "session";
27
27
  fields: Record<string, any> & {
28
- readonly userId: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>>;
29
- readonly token: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>>;
30
- readonly expiresAt: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgTimestampBuilder>;
31
- readonly ipAddress: drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>;
32
- readonly userAgent: drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>;
33
- readonly impersonatedBy: drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>;
28
+ readonly userId: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
29
+ readonly token: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
30
+ readonly expiresAt: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgTimestampBuilder>;
31
+ readonly ipAddress: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
32
+ readonly userAgent: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
33
+ readonly impersonatedBy: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
34
34
  };
35
35
  virtuals: undefined;
36
- relations: Record<string, questpie398.RelationConfig>;
36
+ relations: Record<string, questpie304.RelationConfig>;
37
37
  indexes: Record<string, any>;
38
38
  title: "token";
39
- options: questpie398.CollectionOptions & {
39
+ options: questpie304.CollectionOptions & {
40
40
  timestamps: true;
41
41
  };
42
42
  hooks: Record<string, any>;
43
43
  access: Record<string, any>;
44
44
  searchable: undefined;
45
45
  fieldDefinitions: {
46
- readonly userId: questpie398.FieldWithMethods<Omit<questpie398.TextFieldState, "notNull" | "column"> & {
46
+ readonly userId: questpie304.FieldWithMethods<Omit<questpie304.TextFieldState, "notNull" | "column"> & {
47
47
  notNull: true;
48
- column: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>>;
49
- }, questpie398.TextFieldMethods>;
50
- readonly token: questpie398.FieldWithMethods<Omit<questpie398.TextFieldState, "notNull" | "column"> & {
48
+ column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
49
+ }, questpie304.TextFieldMethods>;
50
+ readonly token: questpie304.FieldWithMethods<Omit<questpie304.TextFieldState, "notNull" | "column"> & {
51
51
  notNull: true;
52
- column: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgVarcharBuilder<[string, ...string[]]>>;
53
- }, questpie398.TextFieldMethods>;
54
- readonly expiresAt: questpie398.FieldWithMethods<Omit<questpie398.DatetimeFieldState, "notNull" | "column"> & {
52
+ column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
53
+ }, questpie304.TextFieldMethods>;
54
+ readonly expiresAt: questpie304.FieldWithMethods<Omit<questpie304.DatetimeFieldState, "notNull" | "column"> & {
55
55
  notNull: true;
56
- column: drizzle_orm73.NotNull<drizzle_orm_pg_core120.PgTimestampBuilder>;
57
- }, questpie398.DatetimeFieldMethods>;
58
- readonly ipAddress: questpie398.FieldWithMethods<questpie398.TextFieldState, questpie398.TextFieldMethods>;
59
- readonly userAgent: questpie398.FieldWithMethods<questpie398.TextFieldState, questpie398.TextFieldMethods>;
60
- readonly impersonatedBy: questpie398.FieldWithMethods<questpie398.TextFieldState, questpie398.TextFieldMethods>;
56
+ column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgTimestampBuilder>;
57
+ }, questpie304.DatetimeFieldMethods>;
58
+ readonly ipAddress: questpie304.FieldWithMethods<questpie304.TextFieldState, questpie304.TextFieldMethods>;
59
+ readonly userAgent: questpie304.FieldWithMethods<questpie304.TextFieldState, questpie304.TextFieldMethods>;
60
+ readonly impersonatedBy: questpie304.FieldWithMethods<questpie304.TextFieldState, questpie304.TextFieldMethods>;
61
61
  };
62
62
  upload: undefined;
63
63
  output: {};
@@ -1,7 +1,7 @@
1
- import * as questpie_shared41 from "questpie/shared";
2
- import * as questpie303 from "questpie";
3
- import * as drizzle_orm_pg_core83 from "drizzle-orm/pg-core";
4
- import * as drizzle_orm55 from "drizzle-orm";
1
+ import * as questpie_shared43 from "questpie/shared";
2
+ import * as questpie408 from "questpie";
3
+ import * as drizzle_orm_pg_core115 from "drizzle-orm/pg-core";
4
+ import * as drizzle_orm71 from "drizzle-orm";
5
5
  import * as questpie_src_server_fields_operators_builtin_js7 from "questpie/src/server/fields/operators/builtin.js";
6
6
 
7
7
  //#region src/server/modules/admin/collections/user.d.ts
@@ -18,7 +18,7 @@ import * as questpie_src_server_fields_operators_builtin_js7 from "questpie/src/
18
18
  * @see account.ts for explanation of the collection().merge().set() pattern.
19
19
  * stateKey mapping: admin=".admin()", adminList=".list()", adminForm=".form()", adminActions=".actions()"
20
20
  */
21
- declare const adminUserCollection: questpie303.CollectionBuilder<questpie_shared41.Override<{
21
+ declare const adminUserCollection: questpie408.CollectionBuilder<questpie_shared43.Override<{
22
22
  name: "user";
23
23
  fields: Record<string, never>;
24
24
  localized: [];
@@ -38,18 +38,18 @@ declare const adminUserCollection: questpie303.CollectionBuilder<questpie_shared
38
38
  }, {
39
39
  name: "user";
40
40
  fields: Record<string, never> & {
41
- readonly name: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
42
- readonly email: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
43
- readonly emailVerified: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgBooleanBuilder>;
44
- readonly image: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
45
- readonly avatar: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
46
- readonly role: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
47
- readonly banned: drizzle_orm55.HasDefault<drizzle_orm_pg_core83.PgBooleanBuilder>;
48
- readonly banReason: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
49
- readonly banExpires: drizzle_orm_pg_core83.PgTimestampBuilder;
41
+ readonly name: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>>;
42
+ readonly email: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>>;
43
+ readonly emailVerified: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgBooleanBuilder>;
44
+ readonly image: drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>;
45
+ readonly avatar: drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>;
46
+ readonly role: drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>;
47
+ readonly banned: drizzle_orm71.HasDefault<drizzle_orm_pg_core115.PgBooleanBuilder>;
48
+ readonly banReason: drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>;
49
+ readonly banExpires: drizzle_orm_pg_core115.PgTimestampBuilder;
50
50
  };
51
51
  virtuals: undefined;
52
- relations: Record<string, never> & Record<string, questpie303.RelationConfig>;
52
+ relations: Record<string, never> & Record<string, questpie408.RelationConfig>;
53
53
  indexes: Record<string, never> & Record<string, any>;
54
54
  title: "name";
55
55
  options: Record<string, never> & {
@@ -59,36 +59,36 @@ declare const adminUserCollection: questpie303.CollectionBuilder<questpie_shared
59
59
  access: Record<string, any>;
60
60
  searchable: undefined;
61
61
  fieldDefinitions: {
62
- readonly name: questpie303.FieldWithMethods<Omit<questpie303.TextFieldState, "notNull" | "column"> & {
62
+ readonly name: questpie408.FieldWithMethods<Omit<questpie408.TextFieldState, "notNull" | "column"> & {
63
63
  notNull: true;
64
- column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
65
- }, questpie303.TextFieldMethods>;
66
- readonly email: questpie303.FieldWithMethods<Omit<questpie303.EmailFieldState, "notNull" | "column"> & {
64
+ column: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>>;
65
+ }, questpie408.TextFieldMethods>;
66
+ readonly email: questpie408.FieldWithMethods<Omit<questpie408.EmailFieldState, "notNull" | "column"> & {
67
67
  notNull: true;
68
- column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>>;
69
- }, questpie303.EmailFieldMethods>;
70
- readonly emailVerified: questpie303.Field<Omit<questpie303.BooleanFieldState, "notNull" | "column"> & {
68
+ column: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>>;
69
+ }, questpie408.EmailFieldMethods>;
70
+ readonly emailVerified: questpie408.Field<Omit<questpie408.BooleanFieldState, "notNull" | "column"> & {
71
71
  notNull: true;
72
- column: drizzle_orm55.NotNull<drizzle_orm_pg_core83.PgBooleanBuilder>;
72
+ column: drizzle_orm71.NotNull<drizzle_orm_pg_core115.PgBooleanBuilder>;
73
73
  }>;
74
- readonly image: questpie303.FieldWithMethods<questpie303.UrlFieldState, questpie303.UrlFieldMethods>;
75
- readonly avatar: questpie303.Field<questpie303.DefaultFieldState & {
74
+ readonly image: questpie408.FieldWithMethods<questpie408.UrlFieldState, questpie408.UrlFieldMethods>;
75
+ readonly avatar: questpie408.Field<questpie408.DefaultFieldState & {
76
76
  type: "upload";
77
77
  data: string;
78
- column: drizzle_orm_pg_core83.PgVarcharBuilder<[string, ...string[]]>;
78
+ column: drizzle_orm_pg_core115.PgVarcharBuilder<[string, ...string[]]>;
79
79
  operators: typeof questpie_src_server_fields_operators_builtin_js7.belongsToOps;
80
80
  relationTo: "assets";
81
81
  relationKind: "one";
82
82
  } & {
83
- label: questpie_shared41.I18nText;
83
+ label: questpie_shared43.I18nText;
84
84
  }>;
85
- readonly role: questpie303.FieldWithMethods<questpie303.TextFieldState, questpie303.TextFieldMethods>;
86
- readonly banned: questpie303.Field<Omit<questpie303.BooleanFieldState, "column" | "hasDefault"> & {
85
+ readonly role: questpie408.FieldWithMethods<questpie408.TextFieldState, questpie408.TextFieldMethods>;
86
+ readonly banned: questpie408.Field<Omit<questpie408.BooleanFieldState, "column" | "hasDefault"> & {
87
87
  hasDefault: true;
88
- column: drizzle_orm55.HasDefault<drizzle_orm_pg_core83.PgBooleanBuilder>;
88
+ column: drizzle_orm71.HasDefault<drizzle_orm_pg_core115.PgBooleanBuilder>;
89
89
  }>;
90
- readonly banReason: questpie303.FieldWithMethods<questpie303.TextFieldState, questpie303.TextFieldMethods>;
91
- readonly banExpires: questpie303.FieldWithMethods<questpie303.DatetimeFieldState, questpie303.DatetimeFieldMethods>;
90
+ readonly banReason: questpie408.FieldWithMethods<questpie408.TextFieldState, questpie408.TextFieldMethods>;
91
+ readonly banExpires: questpie408.FieldWithMethods<questpie408.DatetimeFieldState, questpie408.DatetimeFieldMethods>;
92
92
  };
93
93
  upload: undefined;
94
94
  output: {};
@@ -1,27 +1,27 @@
1
1
  import * as questpie_shared45 from "questpie/shared";
2
- import * as questpie433 from "questpie";
2
+ import * as questpie434 from "questpie";
3
3
  import * as questpie_src_server_modules_core_fields_email_js9 from "questpie/src/server/modules/core/fields/email.js";
4
4
  import * as questpie_src_server_modules_core_fields_json_js9 from "questpie/src/server/modules/core/fields/json.js";
5
5
  import * as drizzle_orm_pg_core129 from "drizzle-orm/pg-core";
6
6
  import * as drizzle_orm79 from "drizzle-orm";
7
7
 
8
8
  //#region src/server/modules/admin/collections/verification.d.ts
9
- declare const _default: questpie433.CollectionBuilder<questpie_shared45.Override<questpie433.EmptyCollectionState<"verification", undefined, {
10
- readonly text: typeof questpie433.text;
11
- readonly textarea: typeof questpie433.textarea;
9
+ declare const _default: questpie434.CollectionBuilder<questpie_shared45.Override<questpie434.EmptyCollectionState<"verification", undefined, {
10
+ readonly text: typeof questpie434.text;
11
+ readonly textarea: typeof questpie434.textarea;
12
12
  readonly email: typeof questpie_src_server_modules_core_fields_email_js9.email;
13
- readonly url: typeof questpie433.url;
14
- readonly number: typeof questpie433.number;
15
- readonly boolean: typeof questpie433.boolean;
16
- readonly date: typeof questpie433.date;
17
- readonly datetime: typeof questpie433.datetime;
18
- readonly time: typeof questpie433.time;
19
- readonly select: typeof questpie433.select;
20
- readonly upload: typeof questpie433.upload;
21
- readonly relation: typeof questpie433.relation;
22
- readonly object: typeof questpie433.object;
13
+ readonly url: typeof questpie434.url;
14
+ readonly number: typeof questpie434.number;
15
+ readonly boolean: typeof questpie434.boolean;
16
+ readonly date: typeof questpie434.date;
17
+ readonly datetime: typeof questpie434.datetime;
18
+ readonly time: typeof questpie434.time;
19
+ readonly select: typeof questpie434.select;
20
+ readonly upload: typeof questpie434.upload;
21
+ readonly relation: typeof questpie434.relation;
22
+ readonly object: typeof questpie434.object;
23
23
  readonly json: typeof questpie_src_server_modules_core_fields_json_js9.json;
24
- readonly from: typeof questpie433.from;
24
+ readonly from: typeof questpie434.from;
25
25
  }>, {
26
26
  name: "verification";
27
27
  fields: Record<string, any> & {
@@ -30,28 +30,28 @@ declare const _default: questpie433.CollectionBuilder<questpie_shared45.Override
30
30
  readonly expiresAt: drizzle_orm79.NotNull<drizzle_orm_pg_core129.PgTimestampBuilder>;
31
31
  };
32
32
  virtuals: undefined;
33
- relations: Record<string, questpie433.RelationConfig>;
33
+ relations: Record<string, questpie434.RelationConfig>;
34
34
  indexes: Record<string, any>;
35
35
  title: "identifier";
36
- options: questpie433.CollectionOptions & {
36
+ options: questpie434.CollectionOptions & {
37
37
  timestamps: true;
38
38
  };
39
39
  hooks: Record<string, any>;
40
40
  access: Record<string, any>;
41
41
  searchable: undefined;
42
42
  fieldDefinitions: {
43
- readonly identifier: questpie433.FieldWithMethods<Omit<questpie433.TextFieldState, "notNull" | "column"> & {
43
+ readonly identifier: questpie434.FieldWithMethods<Omit<questpie434.TextFieldState, "notNull" | "column"> & {
44
44
  notNull: true;
45
45
  column: drizzle_orm79.NotNull<drizzle_orm_pg_core129.PgVarcharBuilder<[string, ...string[]]>>;
46
- }, questpie433.TextFieldMethods>;
47
- readonly value: questpie433.FieldWithMethods<Omit<questpie433.TextFieldState, "notNull" | "column"> & {
46
+ }, questpie434.TextFieldMethods>;
47
+ readonly value: questpie434.FieldWithMethods<Omit<questpie434.TextFieldState, "notNull" | "column"> & {
48
48
  notNull: true;
49
49
  column: drizzle_orm79.NotNull<drizzle_orm_pg_core129.PgVarcharBuilder<[string, ...string[]]>>;
50
- }, questpie433.TextFieldMethods>;
51
- readonly expiresAt: questpie433.FieldWithMethods<Omit<questpie433.DatetimeFieldState, "notNull" | "column"> & {
50
+ }, questpie434.TextFieldMethods>;
51
+ readonly expiresAt: questpie434.FieldWithMethods<Omit<questpie434.DatetimeFieldState, "notNull" | "column"> & {
52
52
  notNull: true;
53
53
  column: drizzle_orm79.NotNull<drizzle_orm_pg_core129.PgTimestampBuilder>;
54
- }, questpie433.DatetimeFieldMethods>;
54
+ }, questpie434.DatetimeFieldMethods>;
55
55
  };
56
56
  upload: undefined;
57
57
  output: {};
@@ -1,4 +1,4 @@
1
- import * as questpie459 from "questpie";
1
+ import * as questpie460 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/admin-config.d.ts
4
4
 
@@ -22,7 +22,7 @@ import * as questpie459 from "questpie";
22
22
  * Registered via module routes and exposed through the fetch handler.
23
23
  */
24
24
  declare const adminConfigFunctions: {
25
- readonly getAdminConfig: questpie459.JsonRouteDefinition<Record<string, never> | undefined, any, questpie459.JsonRouteParams>;
25
+ readonly getAdminConfig: questpie460.JsonRouteDefinition<Record<string, never> | undefined, any, questpie460.JsonRouteParams>;
26
26
  };
27
27
  //#endregion
28
28
  export { adminConfigFunctions };
@@ -1,7 +1,7 @@
1
1
  import { ServerActionDefinition, ServerActionResult } from "../../../augmentation/actions.mjs";
2
2
  import "../../../augmentation.mjs";
3
3
  import { App } from "./route-helpers.mjs";
4
- import * as questpie70 from "questpie";
4
+ import * as questpie139 from "questpie";
5
5
 
6
6
  //#region src/server/modules/admin/routes/execute-action.d.ts
7
7
 
@@ -56,37 +56,37 @@ declare function executeAction(app: App, request: ExecuteActionRequest, session?
56
56
  * });
57
57
  * ```
58
58
  */
59
- declare const executeActionFn: questpie70.JsonRouteDefinition<{
59
+ declare const executeActionFn: questpie139.JsonRouteDefinition<{
60
60
  collection: string;
61
61
  actionId: string;
62
62
  itemId?: string | undefined;
63
63
  itemIds?: string[] | undefined;
64
64
  data?: Record<string, unknown> | undefined;
65
65
  locale?: string | undefined;
66
- }, any, questpie70.JsonRouteParams>;
66
+ }, any, questpie139.JsonRouteParams>;
67
67
  /**
68
68
  * Get actions configuration for a collection.
69
69
  * Returns action definitions without handlers for client rendering.
70
70
  */
71
- declare const getActionsConfigFn: questpie70.JsonRouteDefinition<{
71
+ declare const getActionsConfigFn: questpie139.JsonRouteDefinition<{
72
72
  collection: string;
73
- }, any, questpie70.JsonRouteParams>;
73
+ }, any, questpie139.JsonRouteParams>;
74
74
  /**
75
75
  * QUESTPIE functions for action execution.
76
76
  * These are registered on the `adminModule`.
77
77
  */
78
78
  declare const actionFunctions: {
79
- executeAction: questpie70.JsonRouteDefinition<{
79
+ executeAction: questpie139.JsonRouteDefinition<{
80
80
  collection: string;
81
81
  actionId: string;
82
82
  itemId?: string | undefined;
83
83
  itemIds?: string[] | undefined;
84
84
  data?: Record<string, unknown> | undefined;
85
85
  locale?: string | undefined;
86
- }, any, questpie70.JsonRouteParams>;
87
- getActionsConfig: questpie70.JsonRouteDefinition<{
86
+ }, any, questpie139.JsonRouteParams>;
87
+ getActionsConfig: questpie139.JsonRouteDefinition<{
88
88
  collection: string;
89
- }, any, questpie70.JsonRouteParams>;
89
+ }, any, questpie139.JsonRouteParams>;
90
90
  };
91
91
  //#endregion
92
92
  export { ExecuteActionRequest, ExecuteActionResponse, actionFunctions, executeAction, executeActionFn, getActionsConfig, getActionsConfigFn };
@@ -1,4 +1,4 @@
1
- import * as questpie461 from "questpie";
1
+ import * as questpie462 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/locales.d.ts
4
4
 
@@ -12,7 +12,7 @@ import * as questpie461 from "questpie";
12
12
  * Bundle of locale-related functions.
13
13
  */
14
14
  declare const localeFunctions: {
15
- readonly getContentLocales: questpie461.JsonRouteDefinition<Record<string, never> | undefined, any, questpie461.JsonRouteParams>;
15
+ readonly getContentLocales: questpie462.JsonRouteDefinition<Record<string, never> | undefined, any, questpie462.JsonRouteParams>;
16
16
  };
17
17
  //#endregion
18
18
  export { localeFunctions };
@@ -1,4 +1,4 @@
1
- import * as questpie32 from "questpie";
1
+ import * as questpie113 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/preview.d.ts
4
4
 
@@ -21,13 +21,13 @@ interface PreviewTokenPayload {
21
21
  * @returns Object with preview functions
22
22
  */
23
23
  declare function createPreviewFunctions(secret: string): {
24
- mintPreviewToken: questpie32.JsonRouteDefinition<{
24
+ mintPreviewToken: questpie113.JsonRouteDefinition<{
25
25
  path: string;
26
26
  ttlMs?: number | undefined;
27
- }, any, questpie32.JsonRouteParams>;
28
- verifyPreviewToken: questpie32.JsonRouteDefinition<{
27
+ }, any, questpie113.JsonRouteParams>;
28
+ verifyPreviewToken: questpie113.JsonRouteDefinition<{
29
29
  token: string;
30
- }, any, questpie32.JsonRouteParams>;
30
+ }, any, questpie113.JsonRouteParams>;
31
31
  };
32
32
  /**
33
33
  * Verify a preview token without RPC.
@@ -63,18 +63,18 @@ declare function createPreviewTokenVerifier(secret?: string): (token: string) =>
63
63
  * Used by the `adminModule` to register preview RPC functions.
64
64
  */
65
65
  declare const previewFunctions: {
66
- getPreviewUrl: questpie32.JsonRouteDefinition<{
66
+ getPreviewUrl: questpie113.JsonRouteDefinition<{
67
67
  collection: string;
68
68
  record: Record<string, unknown>;
69
69
  locale?: string | undefined;
70
- }, any, questpie32.JsonRouteParams>;
71
- mintPreviewToken: questpie32.JsonRouteDefinition<{
70
+ }, any, questpie113.JsonRouteParams>;
71
+ mintPreviewToken: questpie113.JsonRouteDefinition<{
72
72
  path: string;
73
73
  ttlMs?: number | undefined;
74
- }, any, questpie32.JsonRouteParams>;
75
- verifyPreviewToken: questpie32.JsonRouteDefinition<{
74
+ }, any, questpie113.JsonRouteParams>;
75
+ verifyPreviewToken: questpie113.JsonRouteDefinition<{
76
76
  token: string;
77
- }, any, questpie32.JsonRouteParams>;
77
+ }, any, questpie113.JsonRouteParams>;
78
78
  };
79
79
  //#endregion
80
80
  export { PreviewTokenPayload, createPreviewFunctions, createPreviewTokenVerifier, previewFunctions, verifyPreviewTokenDirect };
@@ -1,4 +1,4 @@
1
- import * as questpie78 from "questpie";
1
+ import * as questpie123 from "questpie";
2
2
 
3
3
  //#region src/server/modules/admin/routes/reactive.d.ts
4
4
 
@@ -13,12 +13,13 @@ import * as questpie78 from "questpie";
13
13
  * Batch reactive endpoint.
14
14
  * Executes multiple reactive handlers in a single request.
15
15
  */
16
- declare const batchReactive: questpie78.JsonRouteDefinition<{
16
+ declare const batchReactive: questpie123.JsonRouteDefinition<{
17
17
  collection: string;
18
18
  type: "collection" | "global";
19
19
  requests: {
20
20
  field: string;
21
- type: "hidden" | "readOnly" | "disabled" | "compute";
21
+ type: "hidden" | "readOnly" | "disabled" | "compute" | "prop";
22
+ propPath?: string | undefined;
22
23
  formData?: Record<string, unknown> | undefined;
23
24
  siblingData?: Record<string, unknown> | null | undefined;
24
25
  prevData?: Record<string, unknown> | null | undefined;
@@ -26,12 +27,12 @@ declare const batchReactive: questpie78.JsonRouteDefinition<{
26
27
  }[];
27
28
  formData?: Record<string, unknown> | undefined;
28
29
  prevData?: Record<string, unknown> | null | undefined;
29
- }, any, questpie78.JsonRouteParams>;
30
+ }, any, questpie123.JsonRouteParams>;
30
31
  /**
31
32
  * Dynamic options endpoint.
32
33
  * Fetches options for select/relation fields with search and pagination.
33
34
  */
34
- declare const fieldOptions: questpie78.JsonRouteDefinition<{
35
+ declare const fieldOptions: questpie123.JsonRouteDefinition<{
35
36
  collection: string;
36
37
  type: "collection" | "global";
37
38
  field: string;
@@ -40,17 +41,18 @@ declare const fieldOptions: questpie78.JsonRouteDefinition<{
40
41
  page: number;
41
42
  limit: number;
42
43
  siblingData?: Record<string, unknown> | null | undefined;
43
- }, any, questpie78.JsonRouteParams>;
44
+ }, any, questpie123.JsonRouteParams>;
44
45
  /**
45
46
  * Reactive functions bundle.
46
47
  */
47
48
  declare const reactiveFunctions: {
48
- readonly batchReactive: questpie78.JsonRouteDefinition<{
49
+ readonly batchReactive: questpie123.JsonRouteDefinition<{
49
50
  collection: string;
50
51
  type: "collection" | "global";
51
52
  requests: {
52
53
  field: string;
53
- type: "hidden" | "readOnly" | "disabled" | "compute";
54
+ type: "hidden" | "readOnly" | "disabled" | "compute" | "prop";
55
+ propPath?: string | undefined;
54
56
  formData?: Record<string, unknown> | undefined;
55
57
  siblingData?: Record<string, unknown> | null | undefined;
56
58
  prevData?: Record<string, unknown> | null | undefined;
@@ -58,8 +60,8 @@ declare const reactiveFunctions: {
58
60
  }[];
59
61
  formData?: Record<string, unknown> | undefined;
60
62
  prevData?: Record<string, unknown> | null | undefined;
61
- }, any, questpie78.JsonRouteParams>;
62
- readonly fieldOptions: questpie78.JsonRouteDefinition<{
63
+ }, any, questpie123.JsonRouteParams>;
64
+ readonly fieldOptions: questpie123.JsonRouteDefinition<{
63
65
  collection: string;
64
66
  type: "collection" | "global";
65
67
  field: string;
@@ -68,7 +70,7 @@ declare const reactiveFunctions: {
68
70
  page: number;
69
71
  limit: number;
70
72
  siblingData?: Record<string, unknown> | null | undefined;
71
- }, any, questpie78.JsonRouteParams>;
73
+ }, any, questpie123.JsonRouteParams>;
72
74
  };
73
75
  //#endregion
74
76
  export { batchReactive, fieldOptions, reactiveFunctions };
@@ -179,6 +179,49 @@ function getReactiveHandler(app, entityName, fieldPath, handlerType, type = "col
179
179
  return null;
180
180
  }
181
181
  /**
182
+ * Coerce a `function | { handler }` config-like value to the underlying
183
+ * handler function. Returns `null` for static values.
184
+ */
185
+ function unwrapHandler(value) {
186
+ if (typeof value === "function") return value;
187
+ if (value !== null && typeof value === "object" && "handler" in value && typeof value.handler === "function") return value.handler;
188
+ return null;
189
+ }
190
+ /**
191
+ * Get a reactive prop handler. Resolution chain (first hit wins):
192
+ *
193
+ * 1. **Layout-level** `state.adminForm.fields[*].props[propPath]`
194
+ * (per-instance `.form()` override)
195
+ * 2. **Field-level** `state.fieldDefinitions[fieldPath]._state.extensions.admin[propPath]`
196
+ * (default attached to the field via `f.<x>().admin({ ... })`)
197
+ *
198
+ * The wire-side counterpart is the `ReactivePropPlaceholder` introspection
199
+ * emits for function values in either location.
200
+ */
201
+ function getReactivePropHandler(app, entityName, fieldPath, propPath, type = "collection") {
202
+ const formConfig = getEntity(app, entityName, type).state.adminForm;
203
+ const fieldEntry = findReactiveFieldEntry(formConfig, fieldPath);
204
+ if (fieldEntry) {
205
+ const props = fieldEntry.props;
206
+ if (props && typeof props === "object") {
207
+ const layoutHandler = unwrapHandler(props[propPath]);
208
+ if (layoutHandler) return layoutHandler;
209
+ }
210
+ }
211
+ let fieldDef;
212
+ try {
213
+ fieldDef = getFieldDefinition(app, entityName, fieldPath, type);
214
+ } catch {
215
+ return null;
216
+ }
217
+ const adminMeta = fieldDef._state?.extensions?.admin;
218
+ if (adminMeta && typeof adminMeta === "object") {
219
+ const fieldHandler = unwrapHandler(adminMeta[propPath]);
220
+ if (fieldHandler) return fieldHandler;
221
+ }
222
+ return null;
223
+ }
224
+ /**
182
225
  * Get options handler from field config.
183
226
  */
184
227
  function getOptionsHandler(fieldDef) {
@@ -196,8 +239,10 @@ const reactiveRequestSchema = z.object({
196
239
  "hidden",
197
240
  "readOnly",
198
241
  "disabled",
199
- "compute"
242
+ "compute",
243
+ "prop"
200
244
  ]),
245
+ propPath: z.string().optional(),
201
246
  formData: z.record(z.string(), z.unknown()).optional(),
202
247
  siblingData: z.record(z.string(), z.unknown()).nullable().optional(),
203
248
  prevData: z.record(z.string(), z.unknown()).nullable().optional(),
@@ -222,8 +267,10 @@ const reactiveResultSchema = z.object({
222
267
  "hidden",
223
268
  "readOnly",
224
269
  "disabled",
225
- "compute"
270
+ "compute",
271
+ "prop"
226
272
  ]),
273
+ propPath: z.string().optional(),
227
274
  value: z.unknown(),
228
275
  error: z.string().optional()
229
276
  });
@@ -264,27 +311,44 @@ const batchReactive = route().post().schema(batchReactiveInputSchema).outputSche
264
311
  const { collection: entityName, type: entityType, requests, formData: sharedFormData, prevData: sharedPrevData } = ctx.input;
265
312
  const serverCtx = buildServerContext(ctx);
266
313
  return { results: await Promise.all(requests.map(async (request) => {
267
- const { field: field$1, type, formData, siblingData, prevData, prevSiblingData } = request;
314
+ const { field: field$1, type, propPath, formData, siblingData, prevData, prevSiblingData } = request;
268
315
  const resolvedFormData = formData ?? sharedFormData ?? {};
269
316
  const resolvedPrevData = prevData ?? sharedPrevData ?? null;
270
317
  try {
271
318
  getFieldDefinition(app, entityName, field$1, entityType);
272
- const handler = getReactiveHandler(app, entityName, field$1, type, entityType);
273
- if (!handler) return {
274
- field: field$1,
275
- type,
276
- value: void 0,
277
- error: `No ${type} handler found for field '${field$1}'`
278
- };
319
+ let handler;
320
+ if (type === "prop") {
321
+ if (!propPath) return {
322
+ field: field$1,
323
+ type,
324
+ value: void 0,
325
+ error: "propPath is required when type === 'prop'"
326
+ };
327
+ handler = getReactivePropHandler(app, entityName, field$1, propPath, entityType);
328
+ } else handler = getReactiveHandler(app, entityName, field$1, type, entityType);
329
+ if (!handler) {
330
+ const what = type === "prop" ? `prop '${propPath}'` : `${type} handler`;
331
+ return {
332
+ field: field$1,
333
+ type,
334
+ ...propPath ? { propPath } : {},
335
+ value: void 0,
336
+ error: `No ${what} found for field '${field$1}'`
337
+ };
338
+ }
339
+ const reactiveCtx = buildReactiveContext(resolvedFormData, siblingData, resolvedPrevData, prevSiblingData, serverCtx);
340
+ const value = await handler(reactiveCtx);
279
341
  return {
280
342
  field: field$1,
281
343
  type,
282
- value: await handler(buildReactiveContext(resolvedFormData, siblingData, resolvedPrevData, prevSiblingData, serverCtx))
344
+ ...propPath ? { propPath } : {},
345
+ value
283
346
  };
284
347
  } catch (error) {
285
348
  return {
286
349
  field: field$1,
287
350
  type,
351
+ ...propPath ? { propPath } : {},
288
352
  value: void 0,
289
353
  error: error instanceof Error ? error.message : String(error)
290
354
  };