@questpie/admin 3.5.2 → 3.5.4

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 (195) hide show
  1. package/README.md +8 -0
  2. package/dist/client/blocks/block-renderer.d.mts +2 -2
  3. package/dist/client/builder/index.d.mts +1 -1
  4. package/dist/client/builder/types/collection-types.d.mts +89 -5
  5. package/dist/client/builder/types/common.d.mts +5 -0
  6. package/dist/client/builder/types/field-types.d.mts +41 -1
  7. package/dist/client/builder/view/view.d.mts +3 -2
  8. package/dist/client/components/actions/action-dialog.mjs +5 -0
  9. package/dist/client/components/admin-link.d.mts +2 -2
  10. package/dist/client/components/fields/boolean-field.mjs +2 -1
  11. package/dist/client/components/fields/date-field.mjs +2 -1
  12. package/dist/client/components/fields/datetime-field.mjs +2 -1
  13. package/dist/client/components/fields/email-field.mjs +2 -1
  14. package/dist/client/components/fields/field-utils.d.mts +11 -0
  15. package/dist/client/components/fields/field-utils.mjs +3 -1
  16. package/dist/client/components/fields/field-wrapper.mjs +3 -3
  17. package/dist/client/components/fields/number-field.mjs +2 -1
  18. package/dist/client/components/fields/object-field.mjs +2 -1
  19. package/dist/client/components/fields/relation/displays/types.mjs +3 -3
  20. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +7 -0
  21. package/dist/client/components/fields/rich-text-editor/extensions.mjs +19 -2
  22. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +6 -2
  23. package/dist/client/components/fields/rich-text-editor/image-upload.mjs +2 -1
  24. package/dist/client/components/fields/rich-text-editor/index.d.mts +5 -3
  25. package/dist/client/components/fields/rich-text-editor/index.mjs +38 -76
  26. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +30 -7
  27. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +1 -312
  28. package/dist/client/components/fields/rich-text-editor/types.d.mts +4 -0
  29. package/dist/client/components/fields/rich-text-editor/types.mjs +1 -1
  30. package/dist/client/components/fields/rich-text-editor/utils.mjs +6 -12
  31. package/dist/client/components/fields/select-field.mjs +2 -1
  32. package/dist/client/components/fields/text-field.mjs +2 -1
  33. package/dist/client/components/fields/textarea-field.mjs +2 -1
  34. package/dist/client/components/fields/time-field.mjs +2 -1
  35. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +75 -22
  36. package/dist/client/components/layout/field-layout-renderer.mjs +4 -4
  37. package/dist/client/components/media/media-grid.mjs +2 -1
  38. package/dist/client/components/primitives/asset-preview.mjs +4 -2
  39. package/dist/client/components/primitives/dropzone.d.mts +100 -0
  40. package/dist/client/components/primitives/field-select-control.mjs +2 -1
  41. package/dist/client/components/ui/button.d.mts +23 -0
  42. package/dist/client/components/ui/button.mjs +2 -2
  43. package/dist/client/components/ui/dropdown-menu.d.mts +49 -0
  44. package/dist/client/components/ui/dropdown-menu.mjs +7 -19
  45. package/dist/client/components/ui/popover.mjs +1 -1
  46. package/dist/client/components/ui/search-input.d.mts +56 -0
  47. package/dist/client/components/ui/select.mjs +2 -2
  48. package/dist/client/components/ui/sheet.d.mts +40 -0
  49. package/dist/client/components/ui/table.d.mts +49 -0
  50. package/dist/client/components/ui/table.mjs +15 -1
  51. package/dist/client/components/ui/tooltip.d.mts +21 -0
  52. package/dist/client/contexts/focus-context.d.mts +2 -2
  53. package/dist/client/hooks/query-access.d.mts +9 -0
  54. package/dist/client/hooks/query-access.mjs +20 -0
  55. package/dist/client/hooks/typed-hooks.d.mts +4 -2
  56. package/dist/client/hooks/typed-hooks.mjs +30 -29
  57. package/dist/client/hooks/use-admin-config.mjs +20 -1
  58. package/dist/client/hooks/use-autosave.mjs +91 -0
  59. package/dist/client/hooks/use-collection.mjs +65 -23
  60. package/dist/client/hooks/use-reactive-fields.d.mts +1 -0
  61. package/dist/client/hooks/use-reactive-fields.mjs +16 -1
  62. package/dist/client/hooks/use-server-actions.mjs +12 -1
  63. package/dist/client/hooks/use-upload.d.mts +40 -0
  64. package/dist/client/hooks/use-upload.mjs +4 -2
  65. package/dist/client/hooks/use-view-state.mjs +15 -7
  66. package/dist/client/i18n/hooks.d.mts +20 -0
  67. package/dist/client/lib/utils.d.mts +6 -0
  68. package/dist/client/lib/view-filter-utils.mjs +30 -0
  69. package/dist/client/preview/block-scope-context.d.mts +2 -2
  70. package/dist/client/preview/preview-banner.d.mts +2 -2
  71. package/dist/client/preview/preview-field.d.mts +4 -4
  72. package/dist/client/runtime/provider.mjs +22 -3
  73. package/dist/client/scope/picker.d.mts +2 -2
  74. package/dist/client/scope/provider.d.mts +2 -2
  75. package/dist/client/styles/base.css +75 -79
  76. package/dist/client/utils/asset-url.mjs +27 -0
  77. package/dist/client/utils/build-field-definitions-from-schema.mjs +1 -0
  78. package/dist/client/views/auth/accept-invite-form.d.mts +2 -2
  79. package/dist/client/views/auth/auth-layout.d.mts +3 -3
  80. package/dist/client/views/auth/forgot-password-form.d.mts +2 -2
  81. package/dist/client/views/auth/login-form.d.mts +2 -2
  82. package/dist/client/views/auth/reset-password-form.d.mts +2 -2
  83. package/dist/client/views/auth/setup-form.d.mts +2 -2
  84. package/dist/client/views/collection/auto-form-fields.mjs +7 -6
  85. package/dist/client/views/collection/cells/primitive-cells.mjs +9 -6
  86. package/dist/client/views/collection/cells/shared/asset-thumbnail.d.mts +7 -0
  87. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +3 -2
  88. package/dist/client/views/collection/cells/shared/cell-helpers.mjs +3 -2
  89. package/dist/client/views/collection/cells/upload-cells.mjs +2 -1
  90. package/dist/client/views/collection/columns/build-columns.mjs +3 -1
  91. package/dist/client/views/collection/document-view.d.mts +30 -0
  92. package/dist/client/views/collection/document-view.mjs +377 -0
  93. package/dist/client/views/collection/field-context.mjs +3 -2
  94. package/dist/client/views/collection/field-renderer.mjs +13 -5
  95. package/dist/client/views/collection/form-view.mjs +221 -282
  96. package/dist/client/views/collection/list-view.mjs +592 -190
  97. package/dist/client/views/collection/outline.mjs +44 -19
  98. package/dist/client/views/collection/quick-filter-bar.mjs +45 -0
  99. package/dist/client/views/collection/table-view.mjs +61 -17
  100. package/dist/client/views/globals/global-form-view.mjs +12 -9
  101. package/dist/client/views/layout/admin-layout-provider.mjs +4 -3
  102. package/dist/client/views/layout/admin-layout.mjs +108 -21
  103. package/dist/client/views/layout/admin-router.mjs +19 -3
  104. package/dist/client/views/layout/admin-sidebar.mjs +70 -20
  105. package/dist/client/views/layout/admin-theme.mjs +5 -4
  106. package/dist/client/views/layout/admin-view-layout.d.mts +36 -0
  107. package/dist/client/views/pages/accept-invite-page.d.mts +2 -2
  108. package/dist/client/views/pages/dashboard-page.d.mts +2 -2
  109. package/dist/client/views/pages/forgot-password-page.d.mts +2 -2
  110. package/dist/client/views/pages/invite-page.d.mts +2 -2
  111. package/dist/client/views/pages/login-page.d.mts +2 -2
  112. package/dist/client/views/pages/reset-password-page.d.mts +2 -2
  113. package/dist/client/views/pages/setup-page.d.mts +2 -2
  114. package/dist/client.d.mts +17 -2
  115. package/dist/client.mjs +17 -2
  116. package/dist/components/rich-text/rich-text-renderer.d.mts +5 -5
  117. package/dist/components/rich-text/rich-text-renderer.mjs +5 -2
  118. package/dist/factories.d.mts +4 -2
  119. package/dist/factories.mjs +2 -2
  120. package/dist/index.d.mts +17 -3
  121. package/dist/index.mjs +17 -2
  122. package/dist/modules/admin.d.mts +1 -1
  123. package/dist/server/adapters/index.d.mts +2 -0
  124. package/dist/server/adapters/nextjs.d.mts +1 -0
  125. package/dist/server/augmentation/actions.d.mts +9 -3
  126. package/dist/server/augmentation/dashboard.d.mts +11 -11
  127. package/dist/server/augmentation/form-layout.d.mts +16 -6
  128. package/dist/server/augmentation/index.d.mts +7 -0
  129. package/dist/server/augmentation/sidebar.d.mts +8 -8
  130. package/dist/server/augmentation/views.d.mts +4 -1
  131. package/dist/server/auth-helpers.d.mts +1 -0
  132. package/dist/server/codegen/admin-client-template.mjs +7 -6
  133. package/dist/server/fields/blocks.mjs +4 -1
  134. package/dist/server/fields/index.d.mts +1 -1
  135. package/dist/server/fields/reactive-runtime.mjs +3 -0
  136. package/dist/server/fields/rich-text.d.mts +16 -17
  137. package/dist/server/fields/rich-text.mjs +18 -7
  138. package/dist/server/i18n/messages/cs.mjs +2 -0
  139. package/dist/server/i18n/messages/de.mjs +2 -0
  140. package/dist/server/i18n/messages/en.mjs +4 -0
  141. package/dist/server/i18n/messages/es.mjs +2 -0
  142. package/dist/server/i18n/messages/fr.mjs +2 -0
  143. package/dist/server/i18n/messages/pl.mjs +2 -0
  144. package/dist/server/i18n/messages/pt.mjs +2 -0
  145. package/dist/server/i18n/messages/sk.mjs +2 -0
  146. package/dist/server/modules/admin/.generated/module.d.mts +1 -1
  147. package/dist/server/modules/admin/auth-helpers.mjs +7 -1
  148. package/dist/server/modules/admin/block/block-builder.d.mts +0 -8
  149. package/dist/server/modules/admin/block/introspection.d.mts +2 -2
  150. package/dist/server/modules/admin/block/introspection.mjs +28 -4
  151. package/dist/server/modules/admin/block/prefetch.d.mts +11 -0
  152. package/dist/server/modules/admin/block/prefetch.mjs +108 -27
  153. package/dist/server/modules/admin/client/.generated/module.d.mts +68 -67
  154. package/dist/server/modules/admin/client/.generated/module.mjs +2 -0
  155. package/dist/server/modules/admin/client/views/collection-document.d.mts +6 -0
  156. package/dist/server/modules/admin/client/views/collection-document.mjs +10 -0
  157. package/dist/server/modules/admin/collections/account.d.mts +53 -52
  158. package/dist/server/modules/admin/collections/admin-locks.d.mts +57 -56
  159. package/dist/server/modules/admin/collections/admin-preferences.d.mts +38 -37
  160. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +50 -49
  161. package/dist/server/modules/admin/collections/apikey.d.mts +76 -67
  162. package/dist/server/modules/admin/collections/assets.d.mts +37 -36
  163. package/dist/server/modules/admin/collections/session.d.mts +42 -41
  164. package/dist/server/modules/admin/collections/user.d.mts +57 -56
  165. package/dist/server/modules/admin/collections/verification.d.mts +34 -33
  166. package/dist/server/modules/admin/dto/admin-config.dto.mjs +34 -4
  167. package/dist/server/modules/admin/factories.mjs +4 -34
  168. package/dist/server/modules/admin/index.d.mts +3 -3
  169. package/dist/server/modules/admin/routes/admin-config.d.mts +4 -2
  170. package/dist/server/modules/admin/routes/admin-config.mjs +56 -24
  171. package/dist/server/modules/admin/routes/execute-action.d.mts +9 -9
  172. package/dist/server/modules/admin/routes/execute-action.mjs +35 -9
  173. package/dist/server/modules/admin/routes/locales.mjs +1 -1
  174. package/dist/server/modules/admin/routes/preview.d.mts +11 -11
  175. package/dist/server/modules/admin/routes/preview.mjs +6 -5
  176. package/dist/server/modules/admin/routes/reactive.d.mts +9 -9
  177. package/dist/server/modules/admin/routes/reactive.mjs +2 -2
  178. package/dist/server/modules/admin/routes/route-helpers.d.mts +11 -7
  179. package/dist/server/modules/admin/routes/route-helpers.mjs +1 -1
  180. package/dist/server/modules/admin/routes/setup.d.mts +7 -7
  181. package/dist/server/modules/admin/routes/translations.d.mts +4 -4
  182. package/dist/server/modules/admin/routes/widget-data.d.mts +5 -5
  183. package/dist/server/modules/admin/routes/widget-data.mjs +12 -4
  184. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +45 -45
  185. package/dist/server/modules/audit/.generated/module.d.mts +6 -6
  186. package/dist/server/modules/audit/collections/audit-log.d.mts +81 -80
  187. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +2 -2
  188. package/dist/server/plugin.mjs +10 -5
  189. package/dist/server/proxy-factories.d.mts +8 -1
  190. package/dist/server/proxy-factories.mjs +33 -1
  191. package/dist/server.d.mts +3 -1
  192. package/dist/shared/types/index.d.mts +1 -0
  193. package/dist/shared/types/saved-views.types.d.mts +14 -7
  194. package/dist/shared.d.mts +3 -2
  195. package/package.json +5 -4
@@ -1,4 +1,4 @@
1
- import * as questpie151 from "questpie";
1
+ import * as questpie466 from "questpie";
2
2
 
3
3
  //#region src/server/modules/audit/jobs/audit-cleanup.d.ts
4
4
 
@@ -6,7 +6,7 @@ import * as questpie151 from "questpie";
6
6
  * Audit log cleanup job.
7
7
  * Runs daily (via cron) to delete entries older than the configured retention period.
8
8
  */
9
- declare const auditCleanupJob: questpie151.JobDefinition<{
9
+ declare const auditCleanupJob: questpie466.JobDefinition<{
10
10
  retentionDays: number;
11
11
  }, void, "audit-cleanup">;
12
12
  //#endregion
@@ -131,12 +131,13 @@ function adminPlugin() {
131
131
  from: "@questpie/admin/factories"
132
132
  }
133
133
  ],
134
- configType: "(ctx: ListViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"list\">>) => ListViewConfig",
134
+ configType: "(ctx: ListViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, unknown> } ? F : Record<string, unknown>, FilterViewsByKind<$VIEWS_RECORD, \"list\">, $COMPONENTS>) => ListViewConfig",
135
135
  isCallback: true,
136
136
  callbackContextParams: [
137
137
  "v",
138
138
  "f",
139
- "a"
139
+ "a",
140
+ "c"
140
141
  ],
141
142
  defaults: {
142
143
  view: "collection-table",
@@ -161,7 +162,7 @@ function adminPlugin() {
161
162
  from: "@questpie/admin/factories"
162
163
  }
163
164
  ],
164
- configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
165
+ configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, unknown> } ? F : Record<string, unknown>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
165
166
  isCallback: true,
166
167
  callbackContextParams: ["v", "f"],
167
168
  defaults: {
@@ -192,7 +193,11 @@ function adminPlugin() {
192
193
  "a",
193
194
  "c",
194
195
  "f"
195
- ]
196
+ ],
197
+ callbackParams: { f: {
198
+ factory: "createActionFieldBuilderProxy",
199
+ from: "@questpie/admin/factories"
200
+ } }
196
201
  }
197
202
  },
198
203
  globalExtensions: {
@@ -225,7 +230,7 @@ function adminPlugin() {
225
230
  from: "@questpie/admin/factories"
226
231
  }
227
232
  ],
228
- configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, any> } ? F : Record<string, any>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
233
+ configType: "(ctx: FormViewConfigContext<TState extends { fieldDefinitions: infer F extends Record<string, unknown> } ? F : Record<string, unknown>, FilterViewsByKind<$VIEWS_RECORD, \"form\">>) => FormViewConfig",
229
234
  isCallback: true,
230
235
  callbackContextParams: ["v", "f"],
231
236
  defaults: {
@@ -19,6 +19,13 @@ declare function createViewCallbackProxy(): Record<string, (config?: Record<stri
19
19
  * Used as the `c` callback param: `c.icon("ph:article")` → `{ type: "icon", props: { name: "ph:article" } }`.
20
20
  */
21
21
  declare function createComponentCallbackProxy(): Record<string, (...args: unknown[]) => Record<string, unknown>>;
22
+ /**
23
+ * Create a field builder proxy for action form contexts.
24
+ *
25
+ * Returns a chainable builder: `f.text().required().label({en: "Title"})` → `{ type: "text", required: true, label: {en: "Title"} }`.
26
+ * Used as the `f` callback param in `.actions()` for defining form fields.
27
+ */
28
+ declare function createActionFieldBuilderProxy(): Record<string, (...args: unknown[]) => Record<string, unknown>>;
22
29
  /**
23
30
  * Create an action proxy for builder callback contexts.
24
31
  *
@@ -83,4 +90,4 @@ declare function resolveSidebarCallback(value: unknown): SidebarContribution | u
83
90
  */
84
91
  declare function resolveDashboardCallback(value: unknown): DashboardContribution | undefined;
85
92
  //#endregion
86
- export { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback };
93
+ export { createActionCallbackProxy, createActionFieldBuilderProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback };
@@ -66,6 +66,38 @@ function createComponentCallbackProxy() {
66
66
  });
67
67
  } });
68
68
  }
69
+ /**
70
+ * Create a field builder proxy for action form contexts.
71
+ *
72
+ * Returns a chainable builder: `f.text().required().label({en: "Title"})` → `{ type: "text", required: true, label: {en: "Title"} }`.
73
+ * Used as the `f` callback param in `.actions()` for defining form fields.
74
+ */
75
+ function createActionFieldBuilderProxy() {
76
+ function chainable(def) {
77
+ return new Proxy(def, { get: (target, prop) => {
78
+ if (typeof prop !== "string") return Reflect.get(target, prop);
79
+ if (prop in target) return target[prop];
80
+ if (prop === "set") return (key, value) => chainable({
81
+ ...target,
82
+ [key]: value
83
+ });
84
+ return (...args) => chainable({
85
+ ...target,
86
+ [prop]: args.length === 0 ? true : args[0]
87
+ });
88
+ } });
89
+ }
90
+ return new Proxy({}, { get: (_, prop) => {
91
+ if (typeof prop !== "string") return void 0;
92
+ return (...args) => {
93
+ const def = { type: prop };
94
+ if (Array.isArray(args[0])) def.options = args[0];
95
+ else if (args[0] && typeof args[0] === "object") Object.assign(def, args[0]);
96
+ else if (args[0] !== void 0) def.value = args[0];
97
+ return chainable(def);
98
+ };
99
+ } });
100
+ }
69
101
  function createBuiltinActionReference(name) {
70
102
  const ref = (() => name);
71
103
  Object.defineProperties(ref, {
@@ -325,4 +357,4 @@ function resolveDashboardCallback(value) {
325
357
  }
326
358
 
327
359
  //#endregion
328
- export { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback };
360
+ export { createActionCallbackProxy, createActionFieldBuilderProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback };
package/dist/server.d.mts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { ActionReference, AdminLocaleConfig, ComponentReference, ComponentType, ComponentTypeRegistry } from "./server/augmentation/common.mjs";
2
+ import { FilterOperator, FilterRule, SortConfig, ViewConfiguration } from "./shared/types/saved-views.types.mjs";
2
3
  import { AdminBlockConfig, AdminCollectionConfig, AdminGlobalConfig, BlockCategoryConfig, FieldLayoutItem, FormFieldLayoutItem, FormReactiveConfig, FormReactiveContext, FormSectionLayout, FormSidebarConfig, FormTabConfig, FormTabsLayout, FormViewConfig, ListViewConfig, PreviewConfig } from "./server/augmentation/form-layout.mjs";
3
4
  import { AdminConfigContext, ComponentDefinition, ComponentFactory, EditViewDefinition, EditViewFactory, FilterViewsByKind, FormViewConfigContext, ListViewConfigContext, ListViewDefinition, ListViewFactory, ViewDefinition, ViewKind, ViewKindRegistry } from "./server/augmentation/views.mjs";
4
5
  import { DashboardActionFactory, DashboardActionProxy, DashboardCallback, DashboardCallbackContext, DashboardConfigContext, DashboardContribution, DashboardItemDef, DashboardProxy, DashboardSectionDef, ServerBrandingConfig, ServerChartWidget, ServerCustomWidget, ServerDashboardAction, ServerDashboardConfig, ServerDashboardItem, ServerDashboardSection, ServerDashboardTab, ServerDashboardTabs, ServerDashboardWidget, ServerProgressWidget, ServerQuickAction, ServerQuickActionsWidget, ServerRecentItemsWidget, ServerStatsWidget, ServerTableWidget, ServerTimelineWidget, ServerValueWidget, WidgetAccessRule, WidgetFetchContext } from "./server/augmentation/dashboard.mjs";
@@ -17,14 +18,15 @@ import "./server/block/index.mjs";
17
18
  import { component, editView, filterViewsByKind, listView, view } from "./server/registry-helpers.mjs";
18
19
  import { createActionCallbackProxy, createActionProxy, createComponentCallbackProxy, createComponentProxy, createDashboardCallbackContext, createDashboardContributionProxy, createFieldProxy, createSidebarCallbackContext, createSidebarContributionProxy, createViewCallbackProxy, createViewProxy, resolveDashboardCallback, resolveSidebarCallback } from "./server/proxy-factories.mjs";
19
20
  import { AuthSession, GetAdminSessionOptions, RequireAdminAuthOptions, getAdminSession, isAdminUser, requireAdminAuth } from "./server/modules/admin/auth-helpers.mjs";
21
+ import "./server/auth-helpers.mjs";
20
22
  import { NextAuthMiddlewareOptions, createNextAuthMiddleware, getNextAdminSession } from "./server/adapters/nextjs.mjs";
21
23
  import { BeforeLoadContext, TanStackAuthGuardOptions, createTanStackAuthGuard, createTanStackSessionLoader } from "./server/adapters/tanstack.mjs";
24
+ import "./server/adapters/index.mjs";
22
25
  import { ExecuteActionRequest, ExecuteActionResponse, actionFunctions, executeAction, executeActionFn, getActionsConfig, getActionsConfigFn } from "./server/modules/admin/routes/execute-action.mjs";
23
26
  import { PreviewTokenPayload, createPreviewFunctions, createPreviewTokenVerifier, verifyPreviewTokenDirect } from "./server/modules/admin/routes/preview.mjs";
24
27
  import { batchReactive, fieldOptions, reactiveFunctions } from "./server/modules/admin/routes/reactive.mjs";
25
28
  import { createFirstAdmin, isSetupRequired, setupFunctions } from "./server/modules/admin/routes/setup.mjs";
26
29
  import { fetchWidgetData, widgetDataFunctions } from "./server/modules/admin/routes/widget-data.mjs";
27
- import { FilterOperator, FilterRule, SortConfig, ViewConfiguration } from "./shared/types/saved-views.types.mjs";
28
30
  import { savedViewsCollection } from "./server/modules/admin-preferences/collections/saved-views.mjs";
29
31
  import { AdminModule, adminModule, adminRoutes } from "./server/modules/admin/index.mjs";
30
32
  import { auditLogCollection } from "./server/modules/audit/collections/audit-log.mjs";
@@ -0,0 +1 @@
1
+ import { FilterOperator, FilterRule, QuickFilterConfig, SortConfig, ViewConfiguration } from "./saved-views.types.mjs";
@@ -1,10 +1,7 @@
1
+ import { ComponentReference, I18nText } from "questpie/shared";
2
+
1
3
  //#region src/shared/types/saved-views.types.d.ts
2
- /**
3
- * Saved Views Types
4
- *
5
- * Shared types used by both server and client code.
6
- * This file must NOT import any server-only dependencies like drizzle-orm.
7
- */
4
+
8
5
  /**
9
6
  * Filter operator types supported by the saved views filter builder
10
7
  */
@@ -22,6 +19,16 @@ interface FilterRule {
22
19
  operator: FilterOperator;
23
20
  value: FilterValue;
24
21
  }
22
+ /**
23
+ * Serializable quick filter preset for collection list views.
24
+ */
25
+ interface QuickFilterConfig {
26
+ id: string;
27
+ label: I18nText;
28
+ description?: I18nText;
29
+ icon?: ComponentReference;
30
+ filters: FilterRule[];
31
+ }
25
32
  /**
26
33
  * Sort configuration for a view
27
34
  */
@@ -46,4 +53,4 @@ interface ViewConfiguration {
46
53
  };
47
54
  }
48
55
  //#endregion
49
- export { FilterOperator, FilterRule, SortConfig, ViewConfiguration };
56
+ export { FilterOperator, FilterRule, QuickFilterConfig, SortConfig, ViewConfiguration };
package/dist/shared.d.mts CHANGED
@@ -1,3 +1,4 @@
1
- import { FilterOperator, FilterRule, SortConfig, ViewConfiguration } from "./shared/types/saved-views.types.mjs";
1
+ import { FilterOperator, FilterRule, QuickFilterConfig, SortConfig, ViewConfiguration } from "./shared/types/saved-views.types.mjs";
2
2
  import { ADMIN_API_PREFIX, DRAFT_MODE_COOKIE, createDraftModeCookie, getPreviewSecret, isAdminRequest, isDraftMode } from "./shared/preview-utils.mjs";
3
- export { ADMIN_API_PREFIX, DRAFT_MODE_COOKIE, type FilterOperator, type FilterRule, type SortConfig, type ViewConfiguration, createDraftModeCookie, getPreviewSecret, isAdminRequest, isDraftMode };
3
+ import "./shared/types/index.mjs";
4
+ export { ADMIN_API_PREFIX, DRAFT_MODE_COOKIE, type FilterOperator, type FilterRule, type QuickFilterConfig, type SortConfig, type ViewConfiguration, createDraftModeCookie, getPreviewSecret, isAdminRequest, isDraftMode };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@questpie/admin",
3
- "version": "3.5.2",
3
+ "version": "3.5.4",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/questpie/questpie.git",
@@ -72,7 +72,7 @@
72
72
  "@fontsource-variable/jetbrains-mono": "^5.2.8",
73
73
  "@hookform/resolvers": "^5.1.0",
74
74
  "@iconify/react": "^6.0.2",
75
- "@questpie/tanstack-query": "^3.5.2",
75
+ "@questpie/tanstack-query": "^3.5.4",
76
76
  "@tailwindcss/vite": "^4.0.6",
77
77
  "@tiptap/core": "^2.x",
78
78
  "@tiptap/extension-character-count": "^2.x",
@@ -98,7 +98,7 @@
98
98
  "date-fns": "^4.1.0",
99
99
  "lowlight": "^3.x",
100
100
  "next-themes": "^0.4.6",
101
- "questpie": "^3.5.2",
101
+ "questpie": "^3.5.4",
102
102
  "react-day-picker": "^9.12.0",
103
103
  "react-hook-form": "^7.54.0",
104
104
  "react-resizable-panels": "^4.4.2",
@@ -107,6 +107,7 @@
107
107
  "tailwind-merge": "^3.4.0",
108
108
  "tailwindcss": "^4.0.6",
109
109
  "tippy.js": "^6.3.7",
110
+ "tiptap-markdown": "^0.9.0",
110
111
  "tw-animate-css": "^1.4.0",
111
112
  "vaul": "^1.1.2",
112
113
  "zustand": "^5.0.10"
@@ -125,7 +126,7 @@
125
126
  "@tanstack/db": "^0.x",
126
127
  "@tanstack/react-query": "^5.x",
127
128
  "@tanstack/react-table": "^8.x",
128
- "better-auth": "^1.4.9",
129
+ "better-auth": "^1.6.11",
129
130
  "drizzle-orm": "1.0.0-beta.6-4414a19",
130
131
  "react": "^19.2.0",
131
132
  "react-dom": "^19.2.0",