@questpie/admin 1.1.1 → 3.0.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 (566) hide show
  1. package/README.md +256 -488
  2. package/dist/augmentation.d.mts +414 -0
  3. package/dist/client/blocks/block-renderer.d.mts +45 -0
  4. package/dist/client/blocks/block-renderer.mjs +105 -0
  5. package/dist/client/blocks/index.d.mts +2 -0
  6. package/dist/client/blocks/types.d.mts +68 -0
  7. package/dist/client/blocks/types.mjs +19 -0
  8. package/dist/client/builder/admin-types.d.mts +40 -0
  9. package/dist/client/builder/admin.d.mts +110 -0
  10. package/dist/client/builder/admin.mjs +151 -0
  11. package/dist/client/builder/field/field.d.mts +51 -0
  12. package/dist/client/builder/field/field.mjs +37 -0
  13. package/dist/client/builder/index.d.mts +31 -0
  14. package/dist/client/builder/page/page.d.mts +24 -0
  15. package/dist/client/builder/page/page.mjs +31 -0
  16. package/dist/client/builder/registry.d.mts +50 -0
  17. package/dist/client/builder/types/action-registry.mjs +276 -0
  18. package/dist/client/builder/types/action-types.d.mts +226 -0
  19. package/dist/client/builder/types/collection-types.mjs +10 -0
  20. package/dist/client/builder/types/common.d.mts +46 -0
  21. package/dist/client/builder/types/field-types.d.mts +592 -0
  22. package/dist/client/builder/types/field-types.mjs +18 -0
  23. package/dist/client/builder/types/ui-config.d.mts +158 -0
  24. package/dist/client/builder/types/widget-types.d.mts +562 -0
  25. package/dist/client/builder/validation.d.mts +33 -0
  26. package/dist/client/builder/validation.mjs +227 -0
  27. package/dist/client/builder/view/view.d.mts +49 -0
  28. package/dist/client/builder/view/view.mjs +27 -0
  29. package/dist/client/builder/widget/widget.d.mts +27 -0
  30. package/dist/client/builder/widget/widget.mjs +21 -0
  31. package/dist/client/components/actions/action-button.mjs +245 -0
  32. package/dist/client/components/actions/action-dialog.mjs +559 -0
  33. package/dist/client/components/actions/confirmation-dialog.mjs +201 -0
  34. package/dist/client/components/actions/header-actions.mjs +210 -0
  35. package/dist/client/components/admin-link.d.mts +66 -0
  36. package/dist/client/components/admin-link.mjs +171 -0
  37. package/dist/client/components/auth/auth-guard.d.mts +50 -0
  38. package/dist/client/components/auth/auth-guard.mjs +60 -0
  39. package/dist/client/components/auth/auth-loading.d.mts +35 -0
  40. package/dist/client/components/auth/auth-loading.mjs +55 -0
  41. package/dist/client/components/blocks/block-canvas.mjs +159 -0
  42. package/dist/client/components/blocks/block-editor-context.mjs +125 -0
  43. package/dist/client/components/blocks/block-editor-layout.mjs +199 -0
  44. package/dist/client/components/blocks/block-editor-provider.mjs +235 -0
  45. package/dist/client/components/blocks/block-fields-renderer.mjs +240 -0
  46. package/dist/client/components/blocks/block-insert-button.mjs +189 -0
  47. package/dist/client/components/blocks/block-item-menu.mjs +363 -0
  48. package/dist/client/components/blocks/block-item.mjs +434 -0
  49. package/dist/client/components/blocks/block-library-sidebar.mjs +285 -0
  50. package/dist/client/components/blocks/block-tree.mjs +103 -0
  51. package/dist/client/components/blocks/block-type-icon.mjs +95 -0
  52. package/dist/client/components/blocks/utils/tree-utils.mjs +185 -0
  53. package/dist/client/components/component-renderer.d.mts +114 -0
  54. package/dist/client/components/component-renderer.mjs +258 -0
  55. package/dist/client/components/error-boundary.mjs +144 -0
  56. package/dist/client/components/fields/array-field.mjs +506 -0
  57. package/dist/client/components/fields/asset-preview-field.mjs +159 -0
  58. package/dist/client/components/fields/blocks-field/blocks-field.mjs +209 -0
  59. package/dist/client/components/fields/boolean-field.mjs +77 -0
  60. package/dist/client/components/fields/date-field.mjs +76 -0
  61. package/dist/client/components/fields/datetime-field.mjs +74 -0
  62. package/dist/client/components/fields/email-field.mjs +67 -0
  63. package/dist/client/components/fields/field-utils.mjs +64 -0
  64. package/dist/client/components/fields/field-wrapper.mjs +124 -0
  65. package/dist/client/components/fields/json-field.mjs +461 -0
  66. package/dist/client/components/fields/locale-badge.mjs +25 -0
  67. package/dist/client/components/fields/number-field.mjs +73 -0
  68. package/dist/client/components/fields/object-array-field.mjs +707 -0
  69. package/dist/client/components/fields/object-field.mjs +686 -0
  70. package/dist/client/components/fields/relation/displays/cards-display.mjs +254 -0
  71. package/dist/client/components/fields/relation/displays/chips-display.mjs +173 -0
  72. package/dist/client/components/fields/relation/displays/grid-display.mjs +209 -0
  73. package/dist/client/components/fields/relation/displays/list-display.mjs +247 -0
  74. package/dist/client/components/fields/relation/displays/table-display.mjs +309 -0
  75. package/dist/client/components/fields/relation/displays/types.mjs +72 -0
  76. package/dist/client/components/fields/relation/relation-items-display.mjs +143 -0
  77. package/dist/client/components/fields/relation-field.mjs +161 -0
  78. package/dist/client/components/fields/relation-picker.mjs +296 -0
  79. package/dist/client/components/fields/relation-select.mjs +232 -0
  80. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +105 -0
  81. package/dist/client/components/fields/rich-text-editor/extensions.mjs +144 -0
  82. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +221 -0
  83. package/dist/client/components/fields/rich-text-editor/index.mjs +520 -0
  84. package/dist/client/components/fields/rich-text-editor/link-popover.mjs +85 -0
  85. package/dist/client/components/fields/rich-text-editor/presets.mjs +123 -0
  86. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +188 -0
  87. package/dist/client/components/fields/rich-text-editor/table-controls.mjs +433 -0
  88. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +541 -0
  89. package/dist/client/components/fields/rich-text-editor/types.mjs +30 -0
  90. package/dist/client/components/fields/rich-text-editor/utils.mjs +50 -0
  91. package/dist/client/components/fields/rich-text-field.mjs +64 -0
  92. package/dist/client/components/fields/select-field.mjs +88 -0
  93. package/dist/client/components/fields/text-field.mjs +72 -0
  94. package/dist/client/components/fields/textarea-field.mjs +71 -0
  95. package/dist/client/components/fields/time-field.mjs +67 -0
  96. package/dist/client/components/fields/upload-field.mjs +621 -0
  97. package/dist/client/components/filter-builder/columns-tab.mjs +325 -0
  98. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +456 -0
  99. package/dist/client/components/filter-builder/filters-tab.mjs +663 -0
  100. package/dist/client/components/filter-builder/saved-views-tab.mjs +278 -0
  101. package/dist/client/components/history-sidebar.mjs +496 -0
  102. package/dist/client/components/layout/field-layout-renderer.mjs +301 -0
  103. package/dist/client/components/locale-switcher.mjs +251 -0
  104. package/dist/client/components/media/media-grid.mjs +314 -0
  105. package/dist/client/components/media/media-picker-dialog.mjs +563 -0
  106. package/dist/client/components/preview/live-preview-mode.mjs +503 -0
  107. package/dist/client/components/preview/preview-pane.mjs +388 -0
  108. package/dist/client/components/primitives/asset-preview.mjs +771 -0
  109. package/dist/client/components/primitives/checkbox-input.mjs +59 -0
  110. package/dist/client/components/primitives/date-input.mjs +461 -0
  111. package/dist/client/components/primitives/dropzone.mjs +368 -0
  112. package/dist/client/components/primitives/number-input.mjs +117 -0
  113. package/dist/client/components/primitives/select-multi.mjs +590 -0
  114. package/dist/client/components/primitives/select-single.mjs +473 -0
  115. package/dist/client/components/primitives/text-input.mjs +45 -0
  116. package/dist/client/components/primitives/textarea-input.mjs +43 -0
  117. package/dist/client/components/primitives/time-input.mjs +145 -0
  118. package/dist/client/components/primitives/toggle-input.mjs +51 -0
  119. package/dist/client/components/primitives/types.mjs +12 -0
  120. package/dist/client/components/sheets/resource-sheet.mjs +86 -0
  121. package/dist/client/components/ui/accordion.mjs +169 -0
  122. package/dist/client/components/ui/alert.mjs +85 -0
  123. package/dist/client/components/ui/badge.mjs +76 -0
  124. package/dist/client/components/ui/button.mjs +84 -0
  125. package/dist/client/components/ui/card.mjs +206 -0
  126. package/dist/client/components/ui/checkbox.mjs +82 -0
  127. package/dist/client/components/ui/command.mjs +239 -0
  128. package/dist/client/components/ui/dialog.mjs +296 -0
  129. package/dist/client/components/ui/drawer.mjs +278 -0
  130. package/dist/client/components/ui/dropdown-menu.mjs +315 -0
  131. package/dist/client/components/ui/empty-state.mjs +99 -0
  132. package/dist/client/components/ui/field.mjs +354 -0
  133. package/dist/client/components/ui/input-group.mjs +201 -0
  134. package/dist/client/components/ui/input.mjs +46 -0
  135. package/dist/client/components/ui/kbd.mjs +53 -0
  136. package/dist/client/components/ui/label.mjs +45 -0
  137. package/dist/client/components/ui/popover.mjs +176 -0
  138. package/dist/client/components/ui/responsive-dialog.mjs +308 -0
  139. package/dist/client/components/ui/search-input.mjs +139 -0
  140. package/dist/client/components/ui/select.mjs +325 -0
  141. package/dist/client/components/ui/separator.mjs +47 -0
  142. package/dist/client/components/ui/sheet.mjs +280 -0
  143. package/dist/client/components/ui/sidebar.mjs +774 -0
  144. package/dist/client/components/ui/skeleton.mjs +40 -0
  145. package/dist/client/components/ui/sonner.d.mts +13 -0
  146. package/dist/client/components/ui/sonner.mjs +85 -0
  147. package/dist/client/components/ui/spinner.mjs +52 -0
  148. package/dist/client/components/ui/switch.mjs +58 -0
  149. package/dist/client/components/ui/table.mjs +276 -0
  150. package/dist/client/components/ui/tabs.mjs +160 -0
  151. package/dist/client/components/ui/textarea.mjs +40 -0
  152. package/dist/client/components/ui/toolbar.mjs +136 -0
  153. package/dist/client/components/ui/tooltip.mjs +146 -0
  154. package/dist/client/components/widgets/chart-widget.mjs +582 -0
  155. package/dist/client/components/widgets/progress-widget.mjs +200 -0
  156. package/dist/client/components/widgets/quick-actions-widget.mjs +209 -0
  157. package/dist/client/components/widgets/recent-items-widget.mjs +196 -0
  158. package/dist/client/components/widgets/stats-widget.mjs +261 -0
  159. package/dist/client/components/widgets/table-widget.mjs +273 -0
  160. package/dist/client/components/widgets/timeline-widget.mjs +279 -0
  161. package/dist/client/components/widgets/value-widget.mjs +312 -0
  162. package/dist/client/components/widgets/widget-skeletons.mjs +427 -0
  163. package/dist/client/contexts/breadcrumb-context.mjs +60 -0
  164. package/dist/client/contexts/focus-context.d.mts +87 -0
  165. package/dist/client/contexts/focus-context.mjs +250 -0
  166. package/dist/client/hooks/typed-hooks.d.mts +110 -0
  167. package/dist/client/hooks/typed-hooks.mjs +888 -0
  168. package/dist/client/hooks/use-action.mjs +329 -0
  169. package/dist/client/hooks/use-admin-config.mjs +69 -0
  170. package/dist/client/hooks/use-admin-preferences.mjs +171 -0
  171. package/dist/client/hooks/use-admin-routes.mjs +130 -0
  172. package/dist/client/hooks/use-audit-history.mjs +157 -0
  173. package/dist/client/hooks/use-auth.d.mts +97 -0
  174. package/dist/{use-auth-BoLmWtmU.mjs → client/hooks/use-auth.mjs} +9 -10
  175. package/dist/client/hooks/use-collection-fields.mjs +71 -0
  176. package/dist/client/hooks/use-collection-meta.mjs +153 -0
  177. package/dist/client/hooks/use-collection-schema.mjs +90 -0
  178. package/dist/client/hooks/use-collection-validation.mjs +88 -0
  179. package/dist/client/hooks/use-collection.d.mts +96 -0
  180. package/dist/client/hooks/use-collection.mjs +673 -0
  181. package/dist/client/hooks/use-current-user.d.mts +60 -0
  182. package/dist/client/hooks/use-current-user.mjs +79 -0
  183. package/dist/client/hooks/use-field-hooks.mjs +199 -0
  184. package/dist/client/hooks/use-field-options.d.mts +57 -0
  185. package/dist/client/hooks/use-field-options.mjs +269 -0
  186. package/dist/client/hooks/use-global-fields.mjs +58 -0
  187. package/dist/client/hooks/use-global-meta.mjs +105 -0
  188. package/dist/client/hooks/use-global-schema.mjs +53 -0
  189. package/dist/client/hooks/use-global.d.mts +51 -0
  190. package/dist/client/hooks/use-global.mjs +284 -0
  191. package/dist/client/hooks/use-locks.mjs +452 -0
  192. package/dist/client/hooks/use-media-query.d.mts +22 -0
  193. package/dist/client/hooks/use-media-query.mjs +81 -0
  194. package/dist/client/hooks/use-prefill-params.mjs +47 -0
  195. package/dist/client/hooks/use-questpie-query-options.mjs +50 -0
  196. package/dist/client/hooks/use-reactive-fields.d.mts +78 -0
  197. package/dist/client/hooks/use-reactive-fields.mjs +201 -0
  198. package/dist/client/hooks/use-realtime-highlight.mjs +158 -0
  199. package/dist/client/hooks/use-saved-views.mjs +140 -0
  200. package/dist/client/hooks/use-search-param-toggle.d.mts +12 -0
  201. package/dist/client/hooks/use-search-param-toggle.mjs +115 -0
  202. package/dist/client/hooks/use-search.mjs +258 -0
  203. package/dist/client/hooks/use-server-actions.mjs +191 -0
  204. package/dist/client/hooks/use-server-validation.mjs +291 -0
  205. package/dist/client/hooks/use-server-widget-data.d.mts +25 -0
  206. package/dist/client/hooks/use-server-widget-data.mjs +65 -0
  207. package/dist/client/hooks/use-setup-status.d.mts +38 -0
  208. package/dist/client/hooks/use-setup-status.mjs +62 -0
  209. package/dist/client/hooks/use-sidebar-search-param.d.mts +9 -0
  210. package/dist/client/hooks/use-sidebar-search-param.mjs +104 -0
  211. package/dist/client/hooks/use-transition-stage.mjs +125 -0
  212. package/dist/client/hooks/use-upload-collection.mjs +31 -0
  213. package/dist/client/hooks/use-upload.mjs +209 -0
  214. package/dist/client/hooks/use-validation-error-map.mjs +57 -0
  215. package/dist/client/hooks/use-view-state.mjs +479 -0
  216. package/dist/client/i18n/hooks.mjs +284 -0
  217. package/dist/client/i18n/intl-cache.mjs +64 -0
  218. package/dist/client/i18n/messages.mjs +6 -0
  219. package/dist/client/i18n/simple.d.mts +21 -0
  220. package/dist/client/i18n/simple.mjs +156 -0
  221. package/dist/client/i18n/types.d.mts +109 -0
  222. package/dist/client/lib/cookies.mjs +9 -0
  223. package/dist/client/lib/events.mjs +5 -0
  224. package/dist/client/lib/render-profiler.mjs +51 -0
  225. package/dist/client/lib/utils.mjs +23 -0
  226. package/dist/client/preview/block-scope-context.d.mts +73 -0
  227. package/dist/client/preview/block-scope-context.mjs +116 -0
  228. package/dist/client/preview/index.d.mts +5 -0
  229. package/dist/client/preview/preview-banner.d.mts +45 -0
  230. package/dist/client/preview/preview-banner.mjs +134 -0
  231. package/dist/client/preview/preview-field.d.mts +107 -0
  232. package/dist/client/preview/preview-field.mjs +227 -0
  233. package/dist/client/preview/types.d.mts +114 -0
  234. package/dist/client/preview/types.mjs +20 -0
  235. package/dist/client/preview/use-collection-preview.d.mts +70 -0
  236. package/dist/client/preview/use-collection-preview.mjs +163 -0
  237. package/dist/client/runtime/content-locales-provider.d.mts +1 -0
  238. package/dist/client/runtime/content-locales-provider.mjs +136 -0
  239. package/dist/client/runtime/index.d.mts +5 -0
  240. package/dist/client/runtime/index.mjs +6 -0
  241. package/dist/client/runtime/locale-scope.d.mts +2 -0
  242. package/dist/client/runtime/locale-scope.mjs +108 -0
  243. package/dist/client/runtime/provider.d.mts +203 -0
  244. package/dist/client/runtime/provider.mjs +393 -0
  245. package/dist/client/runtime/routes.d.mts +49 -0
  246. package/dist/client/runtime/routes.mjs +91 -0
  247. package/dist/client/runtime/translations-provider.mjs +242 -0
  248. package/dist/client/scope/index.d.mts +3 -0
  249. package/dist/client/scope/picker.d.mts +53 -0
  250. package/dist/client/scope/picker.mjs +395 -0
  251. package/dist/client/scope/provider.d.mts +103 -0
  252. package/dist/client/scope/provider.mjs +167 -0
  253. package/dist/client/scope/types.d.mts +111 -0
  254. package/dist/client/styles/index.css +344 -188
  255. package/dist/client/utils/auto-expand-fields.mjs +83 -0
  256. package/dist/client/utils/build-field-definitions-from-schema.mjs +259 -0
  257. package/dist/client/utils/dependency-tracker.mjs +61 -0
  258. package/dist/client/utils/detect-relations.mjs +45 -0
  259. package/dist/client/utils/locale-to-flag.d.mts +119 -0
  260. package/dist/client/utils/locale-to-flag.mjs +129 -0
  261. package/dist/client/utils/routes.mjs +195 -0
  262. package/dist/client/views/auth/accept-invite-form.d.mts +72 -0
  263. package/dist/client/views/auth/accept-invite-form.mjs +473 -0
  264. package/dist/client/views/auth/auth-layout.d.mts +43 -0
  265. package/dist/client/views/auth/auth-layout.mjs +116 -0
  266. package/dist/client/views/auth/forgot-password-form.d.mts +58 -0
  267. package/dist/client/views/auth/forgot-password-form.mjs +386 -0
  268. package/dist/client/views/auth/invite-form.mjs +497 -0
  269. package/dist/client/views/auth/login-form.d.mts +75 -0
  270. package/dist/client/views/auth/login-form.mjs +387 -0
  271. package/dist/client/views/auth/reset-password-form.d.mts +65 -0
  272. package/dist/client/views/auth/reset-password-form.mjs +515 -0
  273. package/dist/client/views/auth/setup-form.d.mts +60 -0
  274. package/dist/client/views/auth/setup-form.mjs +526 -0
  275. package/dist/client/views/collection/auto-form-fields.mjs +873 -0
  276. package/dist/client/views/collection/bulk-action-toolbar.mjs +480 -0
  277. package/dist/client/views/collection/cells/complex-cells.mjs +746 -0
  278. package/dist/client/views/collection/cells/primitive-cells.mjs +395 -0
  279. package/dist/client/views/collection/cells/relation-cells.mjs +260 -0
  280. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +509 -0
  281. package/dist/client/views/collection/cells/shared/cell-helpers.mjs +125 -0
  282. package/dist/client/views/collection/cells/shared/relation-chip.mjs +121 -0
  283. package/dist/client/views/collection/cells/upload-cells.mjs +28 -0
  284. package/dist/client/views/collection/columns/build-columns.mjs +195 -0
  285. package/dist/client/views/collection/columns/column-defaults.mjs +123 -0
  286. package/dist/client/views/collection/field-context.mjs +126 -0
  287. package/dist/client/views/collection/field-renderer.mjs +368 -0
  288. package/dist/client/views/collection/form-view.mjs +1566 -0
  289. package/dist/client/views/collection/table-view.mjs +832 -0
  290. package/dist/client/views/collection/view-skeletons.mjs +215 -0
  291. package/dist/client/views/common/global-search.mjs +700 -0
  292. package/dist/client/views/dashboard/dashboard-grid.mjs +881 -0
  293. package/dist/client/views/dashboard/dashboard-widget.mjs +265 -0
  294. package/dist/client/views/dashboard/widget-card.mjs +372 -0
  295. package/dist/client/views/globals/global-form-view.mjs +1306 -0
  296. package/dist/client/views/layout/admin-layout-provider.d.mts +137 -0
  297. package/dist/client/views/layout/admin-layout-provider.mjs +193 -0
  298. package/dist/client/views/layout/admin-layout.d.mts +133 -0
  299. package/dist/client/views/layout/admin-layout.mjs +302 -0
  300. package/dist/client/views/layout/admin-router.d.mts +93 -0
  301. package/dist/client/views/layout/admin-router.mjs +1254 -0
  302. package/dist/client/views/layout/admin-sidebar.d.mts +99 -0
  303. package/dist/client/views/layout/admin-sidebar.mjs +1379 -0
  304. package/dist/client/views/layout/admin-topbar.mjs +236 -0
  305. package/dist/client/views/pages/accept-invite-page.d.mts +66 -0
  306. package/dist/client/views/pages/accept-invite-page.mjs +349 -0
  307. package/dist/client/views/pages/dashboard-page.d.mts +43 -0
  308. package/dist/client/views/pages/dashboard-page.mjs +84 -0
  309. package/dist/client/views/pages/forgot-password-page.d.mts +56 -0
  310. package/dist/client/views/pages/forgot-password-page.mjs +152 -0
  311. package/dist/client/views/pages/invite-page.d.mts +70 -0
  312. package/dist/client/views/pages/invite-page.mjs +161 -0
  313. package/dist/client/views/pages/login-page.d.mts +69 -0
  314. package/dist/client/views/pages/login-page.mjs +193 -0
  315. package/dist/client/views/pages/reset-password-page.d.mts +63 -0
  316. package/dist/client/views/pages/reset-password-page.mjs +257 -0
  317. package/dist/client/views/pages/setup-page.d.mts +61 -0
  318. package/dist/client/views/pages/setup-page.mjs +156 -0
  319. package/dist/client-module.d.mts +3 -0
  320. package/dist/client-module.mjs +3 -0
  321. package/dist/client.d.mts +99 -3
  322. package/dist/client.mjs +52 -12
  323. package/dist/components/rich-text/index.d.mts +1 -0
  324. package/dist/components/rich-text/rich-text-renderer.d.mts +103 -0
  325. package/dist/components/rich-text/rich-text-renderer.mjs +237 -0
  326. package/dist/index.d.mts +59 -3
  327. package/dist/index.mjs +52 -12
  328. package/dist/plugin.d.mts +2 -0
  329. package/dist/plugin.mjs +3 -0
  330. package/dist/server/adapters/nextjs.d.mts +120 -0
  331. package/dist/server/adapters/nextjs.mjs +110 -0
  332. package/dist/server/adapters/tanstack.d.mts +132 -0
  333. package/dist/server/adapters/tanstack.mjs +89 -0
  334. package/dist/server/augmentation/actions.d.mts +279 -0
  335. package/dist/server/augmentation/common.d.mts +76 -0
  336. package/dist/server/augmentation/dashboard.d.mts +547 -0
  337. package/dist/server/augmentation/form-layout.d.mts +303 -0
  338. package/dist/server/augmentation/index.d.mts +44 -0
  339. package/dist/server/augmentation/index.mjs +10 -0
  340. package/dist/server/augmentation/sidebar.d.mts +181 -0
  341. package/dist/server/augmentation/views.d.mts +237 -0
  342. package/dist/server/augmentation.d.mts +7 -0
  343. package/dist/server/block/index.d.mts +4 -0
  344. package/dist/server/codegen/admin-client-template.mjs +93 -0
  345. package/dist/server/codegen/projection-validator.mjs +67 -0
  346. package/dist/server/fields/blocks.d.mts +71 -0
  347. package/dist/server/fields/blocks.mjs +151 -0
  348. package/dist/server/fields/index.d.mts +15 -0
  349. package/dist/server/fields/index.mjs +15 -0
  350. package/dist/server/fields/rich-text.d.mts +68 -0
  351. package/dist/server/fields/rich-text.mjs +147 -0
  352. package/dist/server/i18n/index.mjs +43 -0
  353. package/dist/server/i18n/messages/cs.mjs +461 -0
  354. package/dist/server/i18n/messages/de.mjs +461 -0
  355. package/dist/server/i18n/messages/en.mjs +707 -0
  356. package/dist/server/i18n/messages/es.mjs +461 -0
  357. package/dist/server/i18n/messages/fr.mjs +461 -0
  358. package/dist/server/i18n/messages/index.mjs +23 -0
  359. package/dist/server/i18n/messages/pl.mjs +461 -0
  360. package/dist/server/i18n/messages/pt.mjs +464 -0
  361. package/dist/server/i18n/messages/sk.mjs +689 -0
  362. package/dist/server/modules/admin/.generated/module.d.mts +52 -0
  363. package/dist/server/modules/admin/.generated/module.mjs +78 -0
  364. package/dist/server/modules/admin/.generated/registries.d.mts +22 -0
  365. package/dist/server/modules/admin/auth-helpers.d.mts +142 -0
  366. package/dist/server/modules/admin/auth-helpers.mjs +107 -0
  367. package/dist/server/modules/admin/block/block-builder.d.mts +383 -0
  368. package/dist/server/modules/admin/block/block-builder.mjs +315 -0
  369. package/dist/server/modules/admin/block/index.d.mts +3 -0
  370. package/dist/server/modules/admin/block/introspection.d.mts +89 -0
  371. package/dist/server/modules/admin/block/introspection.mjs +100 -0
  372. package/dist/server/modules/admin/block/prefetch.d.mts +78 -0
  373. package/dist/server/modules/admin/block/prefetch.mjs +241 -0
  374. package/dist/server/modules/admin/client/.generated/module.d.mts +94 -0
  375. package/dist/server/modules/admin/client/.generated/module.mjs +91 -0
  376. package/dist/server/modules/admin/client/components/badge.d.mts +1 -0
  377. package/dist/server/modules/admin/client/components/icon.d.mts +1 -0
  378. package/dist/server/modules/admin/client/fields/array.d.mts +6 -0
  379. package/dist/server/modules/admin/client/fields/array.mjs +12 -0
  380. package/dist/server/modules/admin/client/fields/assetPreview.d.mts +6 -0
  381. package/dist/server/modules/admin/client/fields/assetPreview.mjs +18 -0
  382. package/dist/server/modules/admin/client/fields/blocks.d.mts +6 -0
  383. package/dist/server/modules/admin/client/fields/blocks.mjs +12 -0
  384. package/dist/server/modules/admin/client/fields/boolean.d.mts +6 -0
  385. package/dist/server/modules/admin/client/fields/boolean.mjs +12 -0
  386. package/dist/server/modules/admin/client/fields/date.d.mts +6 -0
  387. package/dist/server/modules/admin/client/fields/date.mjs +12 -0
  388. package/dist/server/modules/admin/client/fields/datetime.d.mts +6 -0
  389. package/dist/server/modules/admin/client/fields/datetime.mjs +12 -0
  390. package/dist/server/modules/admin/client/fields/email.d.mts +6 -0
  391. package/dist/server/modules/admin/client/fields/email.mjs +12 -0
  392. package/dist/server/modules/admin/client/fields/json.d.mts +6 -0
  393. package/dist/server/modules/admin/client/fields/json.mjs +11 -0
  394. package/dist/server/modules/admin/client/fields/number.d.mts +6 -0
  395. package/dist/server/modules/admin/client/fields/number.mjs +12 -0
  396. package/dist/server/modules/admin/client/fields/object.d.mts +6 -0
  397. package/dist/server/modules/admin/client/fields/object.mjs +12 -0
  398. package/dist/server/modules/admin/client/fields/relation.d.mts +6 -0
  399. package/dist/server/modules/admin/client/fields/relation.mjs +12 -0
  400. package/dist/server/modules/admin/client/fields/richText.d.mts +6 -0
  401. package/dist/server/modules/admin/client/fields/richText.mjs +11 -0
  402. package/dist/server/modules/admin/client/fields/select.d.mts +6 -0
  403. package/dist/server/modules/admin/client/fields/select.mjs +12 -0
  404. package/dist/server/modules/admin/client/fields/text.d.mts +6 -0
  405. package/dist/server/modules/admin/client/fields/text.mjs +12 -0
  406. package/dist/server/modules/admin/client/fields/textarea.d.mts +6 -0
  407. package/dist/server/modules/admin/client/fields/textarea.mjs +12 -0
  408. package/dist/server/modules/admin/client/fields/time.d.mts +6 -0
  409. package/dist/server/modules/admin/client/fields/time.mjs +12 -0
  410. package/dist/server/modules/admin/client/fields/upload.d.mts +6 -0
  411. package/dist/server/modules/admin/client/fields/upload.mjs +12 -0
  412. package/dist/server/modules/admin/client/fields/url.d.mts +6 -0
  413. package/dist/server/modules/admin/client/fields/url.mjs +12 -0
  414. package/dist/server/modules/admin/client/index.d.mts +1 -0
  415. package/dist/server/modules/admin/client/pages/dashboard.d.mts +6 -0
  416. package/dist/server/modules/admin/client/pages/dashboard.mjs +11 -0
  417. package/dist/server/modules/admin/client/pages/forgotPassword.d.mts +6 -0
  418. package/dist/server/modules/admin/client/pages/forgotPassword.mjs +11 -0
  419. package/dist/server/modules/admin/client/pages/login.d.mts +6 -0
  420. package/dist/server/modules/admin/client/pages/login.mjs +11 -0
  421. package/dist/server/modules/admin/client/pages/resetPassword.d.mts +6 -0
  422. package/dist/server/modules/admin/client/pages/resetPassword.mjs +11 -0
  423. package/dist/server/modules/admin/client/pages/setup.d.mts +6 -0
  424. package/dist/server/modules/admin/client/pages/setup.mjs +11 -0
  425. package/dist/server/modules/admin/client/views/collection-form.mjs +10 -0
  426. package/dist/server/modules/admin/client/views/collection-table.mjs +10 -0
  427. package/dist/server/modules/admin/client/views/global-form.mjs +10 -0
  428. package/dist/server/modules/admin/client/widgets/chart.d.mts +6 -0
  429. package/dist/server/modules/admin/client/widgets/chart.mjs +7 -0
  430. package/dist/server/modules/admin/client/widgets/progress.d.mts +6 -0
  431. package/dist/server/modules/admin/client/widgets/progress.mjs +7 -0
  432. package/dist/server/modules/admin/client/widgets/quickActions.d.mts +6 -0
  433. package/dist/server/modules/admin/client/widgets/quickActions.mjs +7 -0
  434. package/dist/server/modules/admin/client/widgets/recentItems.d.mts +6 -0
  435. package/dist/server/modules/admin/client/widgets/recentItems.mjs +7 -0
  436. package/dist/server/modules/admin/client/widgets/stats.d.mts +6 -0
  437. package/dist/server/modules/admin/client/widgets/stats.mjs +7 -0
  438. package/dist/server/modules/admin/client/widgets/table.d.mts +6 -0
  439. package/dist/server/modules/admin/client/widgets/table.mjs +7 -0
  440. package/dist/server/modules/admin/client/widgets/timeline.d.mts +6 -0
  441. package/dist/server/modules/admin/client/widgets/timeline.mjs +7 -0
  442. package/dist/server/modules/admin/client/widgets/value.d.mts +6 -0
  443. package/dist/server/modules/admin/client/widgets/value.mjs +7 -0
  444. package/dist/server/modules/admin/collections/account.d.mts +77 -0
  445. package/dist/server/modules/admin/collections/account.mjs +23 -0
  446. package/dist/server/modules/admin/collections/admin-locks.d.mts +90 -0
  447. package/dist/server/modules/admin/collections/admin-locks.mjs +16 -0
  448. package/dist/server/modules/admin/collections/admin-preferences.d.mts +69 -0
  449. package/dist/server/modules/admin/collections/admin-preferences.mjs +16 -0
  450. package/dist/server/modules/admin/collections/admin-saved-views.d.mts +83 -0
  451. package/dist/server/modules/admin/collections/admin-saved-views.mjs +16 -0
  452. package/dist/server/modules/admin/collections/apikey.d.mts +99 -0
  453. package/dist/server/modules/admin/collections/apikey.mjs +15 -0
  454. package/dist/server/modules/admin/collections/assets.d.mts +72 -0
  455. package/dist/server/modules/admin/collections/assets.mjs +71 -0
  456. package/dist/server/modules/admin/collections/session.d.mts +69 -0
  457. package/dist/server/modules/admin/collections/session.mjs +15 -0
  458. package/dist/server/modules/admin/collections/user.d.mts +85 -0
  459. package/dist/server/modules/admin/collections/user.mjs +204 -0
  460. package/dist/server/modules/admin/collections/verification.d.mts +63 -0
  461. package/dist/server/modules/admin/collections/verification.mjs +15 -0
  462. package/dist/server/modules/admin/components/badge.d.mts +10 -0
  463. package/dist/server/modules/admin/components/badge.mjs +10 -0
  464. package/dist/server/modules/admin/components/icon.d.mts +9 -0
  465. package/dist/server/modules/admin/components/icon.mjs +11 -0
  466. package/dist/server/modules/admin/config/admin.mjs +34 -0
  467. package/dist/server/modules/admin/dto/admin-config.dto.mjs +102 -0
  468. package/dist/server/modules/admin/factories.mjs +172 -0
  469. package/dist/server/modules/admin/index.d.mts +1093 -0
  470. package/dist/server/modules/admin/index.mjs +26 -0
  471. package/dist/server/modules/admin/modules.mjs +11 -0
  472. package/dist/server/modules/admin/plugin.mjs +13 -0
  473. package/dist/server/modules/admin/routes/admin-config.d.mts +28 -0
  474. package/dist/server/modules/admin/routes/admin-config.mjs +552 -0
  475. package/dist/server/modules/admin/routes/execute-action.d.mts +92 -0
  476. package/dist/server/modules/admin/routes/execute-action.mjs +433 -0
  477. package/dist/server/modules/admin/routes/locales.d.mts +18 -0
  478. package/dist/server/modules/admin/routes/locales.mjs +69 -0
  479. package/dist/server/modules/admin/routes/preview.d.mts +80 -0
  480. package/dist/server/modules/admin/routes/preview.mjs +230 -0
  481. package/dist/server/modules/admin/routes/reactive.d.mts +74 -0
  482. package/dist/server/modules/admin/routes/reactive.mjs +350 -0
  483. package/dist/server/modules/admin/routes/route-helpers.d.mts +23 -0
  484. package/dist/server/modules/admin/routes/route-helpers.mjs +76 -0
  485. package/dist/server/modules/admin/routes/setup.d.mts +63 -0
  486. package/dist/server/modules/admin/routes/setup.mjs +114 -0
  487. package/dist/server/modules/admin/routes/translations.d.mts +26 -0
  488. package/dist/server/modules/admin/routes/translations.mjs +114 -0
  489. package/dist/server/modules/admin/routes/widget-data.d.mts +32 -0
  490. package/dist/server/modules/admin/routes/widget-data.mjs +62 -0
  491. package/dist/server/modules/admin/views/form.d.mts +8 -0
  492. package/dist/server/modules/admin/views/form.mjs +7 -0
  493. package/dist/server/modules/admin/views/global-form.d.mts +8 -0
  494. package/dist/server/modules/admin/views/global-form.mjs +7 -0
  495. package/dist/server/modules/admin/views/table.d.mts +8 -0
  496. package/dist/server/modules/admin/views/table.mjs +7 -0
  497. package/dist/server/modules/admin-preferences/collections/admin-preferences.mjs +37 -0
  498. package/dist/server/modules/admin-preferences/collections/locks.collection.mjs +55 -0
  499. package/dist/server/modules/admin-preferences/collections/saved-views.d.mts +99 -0
  500. package/dist/server/modules/admin-preferences/collections/saved-views.mjs +38 -0
  501. package/dist/server/modules/audit/.generated/module.d.mts +60 -0
  502. package/dist/server/modules/audit/.generated/module.mjs +30 -0
  503. package/dist/server/modules/audit/collections/audit-log.d.mts +214 -0
  504. package/dist/server/modules/audit/collections/audit-log.mjs +107 -0
  505. package/dist/server/modules/audit/config/admin.mjs +21 -0
  506. package/dist/server/modules/audit/config/app.mjs +262 -0
  507. package/dist/server/modules/audit/index.d.mts +2 -0
  508. package/dist/server/modules/audit/jobs/audit-cleanup.d.mts +13 -0
  509. package/dist/server/modules/audit/jobs/audit-cleanup.mjs +28 -0
  510. package/dist/server/plugin.d.mts +26 -0
  511. package/dist/server/plugin.mjs +385 -0
  512. package/dist/server/proxy-factories.d.mts +85 -0
  513. package/dist/server/proxy-factories.mjs +302 -0
  514. package/dist/server/registry-helpers.d.mts +83 -0
  515. package/dist/server/registry-helpers.mjs +104 -0
  516. package/dist/server.d.mts +33 -250
  517. package/dist/server.mjs +22 -832
  518. package/dist/shared/preview-utils.d.mts +53 -0
  519. package/dist/{preview-utils-BKQ9-TMa.mjs → shared/preview-utils.mjs} +2 -3
  520. package/dist/{saved-views.types-BMsz5mCy.d.mts → shared/types/saved-views.types.d.mts} +7 -2
  521. package/dist/shared.d.mts +3 -57
  522. package/dist/shared.mjs +1 -1
  523. package/package.json +56 -51
  524. package/skills/questpie-admin/SKILL.md +397 -0
  525. package/skills/questpie-admin/blocks/SKILL.md +305 -0
  526. package/skills/questpie-admin/custom-ui/SKILL.md +307 -0
  527. package/skills/questpie-admin/views/SKILL.md +442 -0
  528. package/dist/auth-layout-M8K8_q5R.mjs +0 -181
  529. package/dist/auth-layout-M8K8_q5R.mjs.map +0 -1
  530. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs +0 -273
  531. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs.map +0 -1
  532. package/dist/card-BKHjBQfw.mjs +0 -58
  533. package/dist/card-BKHjBQfw.mjs.map +0 -1
  534. package/dist/client-D1DqawtP.d.mts +0 -13403
  535. package/dist/client-D1DqawtP.d.mts.map +0 -1
  536. package/dist/client-njX1rZmi.mjs +0 -22612
  537. package/dist/client-njX1rZmi.mjs.map +0 -1
  538. package/dist/content-locales-provider-BXvuIgfg.mjs +0 -1650
  539. package/dist/content-locales-provider-BXvuIgfg.mjs.map +0 -1
  540. package/dist/dashboard-page-B4PGEdc2.mjs +0 -2500
  541. package/dist/dashboard-page-B4PGEdc2.mjs.map +0 -1
  542. package/dist/dashboard-page-mCY0pgZv.mjs +0 -3
  543. package/dist/dropzone-Do3awXKd.mjs +0 -634
  544. package/dist/dropzone-Do3awXKd.mjs.map +0 -1
  545. package/dist/forgot-password-page-Bcp-An4Y.mjs +0 -221
  546. package/dist/forgot-password-page-Bcp-An4Y.mjs.map +0 -1
  547. package/dist/forgot-password-page-CEwsdLwn.mjs +0 -3
  548. package/dist/index-B4H3amCD.d.mts +0 -2753
  549. package/dist/index-B4H3amCD.d.mts.map +0 -1
  550. package/dist/login-page-BUnpCbCa.mjs +0 -3
  551. package/dist/login-page-CP4gA-dl.mjs +0 -298
  552. package/dist/login-page-CP4gA-dl.mjs.map +0 -1
  553. package/dist/preview-utils-BKQ9-TMa.mjs.map +0 -1
  554. package/dist/reset-password-page-BqfDmLxA.mjs +0 -281
  555. package/dist/reset-password-page-BqfDmLxA.mjs.map +0 -1
  556. package/dist/reset-password-page-CufHz3h3.mjs +0 -3
  557. package/dist/runtime-6VZM878K.mjs +0 -69
  558. package/dist/runtime-6VZM878K.mjs.map +0 -1
  559. package/dist/saved-views.types-BMsz5mCy.d.mts.map +0 -1
  560. package/dist/server.d.mts.map +0 -1
  561. package/dist/server.mjs.map +0 -1
  562. package/dist/setup-page-BNNzt_Z6.mjs +0 -3
  563. package/dist/setup-page-YAP_fzqh.mjs +0 -264
  564. package/dist/setup-page-YAP_fzqh.mjs.map +0 -1
  565. package/dist/shared.d.mts.map +0 -1
  566. package/dist/use-auth-BoLmWtmU.mjs.map +0 -1
@@ -0,0 +1,157 @@
1
+ import { selectClient, useAdminStore } from "../runtime/provider.mjs";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useQuery } from "@tanstack/react-query";
4
+
5
+ //#region src/client/hooks/use-audit-history.ts
6
+ function useAuditFetcher(path) {
7
+ const $ = c(5);
8
+ const client = useAdminStore(selectClient);
9
+ let t0;
10
+ if ($[0] !== client) {
11
+ t0 = client.getBasePath?.() ?? "";
12
+ $[0] = client;
13
+ $[1] = t0;
14
+ } else t0 = $[1];
15
+ const basePath = t0;
16
+ let t1;
17
+ if ($[2] !== basePath || $[3] !== path) {
18
+ t1 = async (signal) => {
19
+ const response = await fetch(`${basePath}${path}`, {
20
+ credentials: "include",
21
+ headers: { Accept: "application/json" },
22
+ signal
23
+ });
24
+ if (!response.ok) throw new Error(`Failed to fetch audit history: ${response.status}`);
25
+ const data = await response.json();
26
+ return Array.isArray(data) ? data : data?.docs ?? data ?? [];
27
+ };
28
+ $[2] = basePath;
29
+ $[3] = path;
30
+ $[4] = t1;
31
+ } else t1 = $[4];
32
+ return t1;
33
+ }
34
+ function useCollectionAuditHistory(collection, id, options, queryOptions) {
35
+ const $ = c(17);
36
+ let t0;
37
+ let t1;
38
+ let t2;
39
+ if ($[0] !== collection || $[1] !== id || $[2] !== options) {
40
+ const params = new URLSearchParams();
41
+ if (options?.limit) params.set("limit", String(options.limit));
42
+ t0 = collection;
43
+ t1 = id;
44
+ t2 = params.toString() ? `?${params}` : "";
45
+ $[0] = collection;
46
+ $[1] = id;
47
+ $[2] = options;
48
+ $[3] = t0;
49
+ $[4] = t1;
50
+ $[5] = t2;
51
+ } else {
52
+ t0 = $[3];
53
+ t1 = $[4];
54
+ t2 = $[5];
55
+ }
56
+ const fetchAudit = useAuditFetcher(`/${t0}/${t1}/audit${t2}`);
57
+ let t3;
58
+ if ($[6] !== collection || $[7] !== id || $[8] !== options) {
59
+ t3 = [
60
+ "questpie",
61
+ "audit",
62
+ "collection",
63
+ collection,
64
+ id,
65
+ options
66
+ ];
67
+ $[6] = collection;
68
+ $[7] = id;
69
+ $[8] = options;
70
+ $[9] = t3;
71
+ } else t3 = $[9];
72
+ let t4;
73
+ if ($[10] !== fetchAudit) {
74
+ t4 = (t5$1) => {
75
+ const { signal } = t5$1;
76
+ return fetchAudit(signal);
77
+ };
78
+ $[10] = fetchAudit;
79
+ $[11] = t4;
80
+ } else t4 = $[11];
81
+ const t5 = !!collection && !!id && (queryOptions?.enabled ?? true);
82
+ let t6;
83
+ if ($[12] !== queryOptions || $[13] !== t3 || $[14] !== t4 || $[15] !== t5) {
84
+ t6 = {
85
+ queryKey: t3,
86
+ queryFn: t4,
87
+ enabled: t5,
88
+ ...queryOptions
89
+ };
90
+ $[12] = queryOptions;
91
+ $[13] = t3;
92
+ $[14] = t4;
93
+ $[15] = t5;
94
+ $[16] = t6;
95
+ } else t6 = $[16];
96
+ return useQuery(t6);
97
+ }
98
+ function useGlobalAuditHistory(globalName, options, queryOptions) {
99
+ const $ = c(14);
100
+ let t0;
101
+ let t1;
102
+ if ($[0] !== globalName || $[1] !== options) {
103
+ const params = new URLSearchParams();
104
+ if (options?.limit) params.set("limit", String(options.limit));
105
+ t0 = globalName;
106
+ t1 = params.toString() ? `?${params}` : "";
107
+ $[0] = globalName;
108
+ $[1] = options;
109
+ $[2] = t0;
110
+ $[3] = t1;
111
+ } else {
112
+ t0 = $[2];
113
+ t1 = $[3];
114
+ }
115
+ const fetchAudit = useAuditFetcher(`/globals/${t0}/audit${t1}`);
116
+ let t2;
117
+ if ($[4] !== globalName || $[5] !== options) {
118
+ t2 = [
119
+ "questpie",
120
+ "audit",
121
+ "global",
122
+ globalName,
123
+ options
124
+ ];
125
+ $[4] = globalName;
126
+ $[5] = options;
127
+ $[6] = t2;
128
+ } else t2 = $[6];
129
+ let t3;
130
+ if ($[7] !== fetchAudit) {
131
+ t3 = (t4$1) => {
132
+ const { signal } = t4$1;
133
+ return fetchAudit(signal);
134
+ };
135
+ $[7] = fetchAudit;
136
+ $[8] = t3;
137
+ } else t3 = $[8];
138
+ const t4 = !!globalName && (queryOptions?.enabled ?? true);
139
+ let t5;
140
+ if ($[9] !== queryOptions || $[10] !== t2 || $[11] !== t3 || $[12] !== t4) {
141
+ t5 = {
142
+ queryKey: t2,
143
+ queryFn: t3,
144
+ enabled: t4,
145
+ ...queryOptions
146
+ };
147
+ $[9] = queryOptions;
148
+ $[10] = t2;
149
+ $[11] = t3;
150
+ $[12] = t4;
151
+ $[13] = t5;
152
+ } else t5 = $[13];
153
+ return useQuery(t5);
154
+ }
155
+
156
+ //#endregion
157
+ export { useCollectionAuditHistory, useGlobalAuditHistory };
@@ -0,0 +1,97 @@
1
+ import { QuestpieApp } from "questpie/client";
2
+ import { createAuthClient } from "better-auth/react";
3
+ import { BetterAuthOptions } from "better-auth";
4
+
5
+ //#region src/client/hooks/use-auth.d.ts
6
+
7
+ /**
8
+ * Extract auth options type from app config
9
+ */
10
+ type ExtractAuthOptions<T extends QuestpieApp> = T["auth"] extends BetterAuthOptions ? T["auth"] : BetterAuthOptions;
11
+ /**
12
+ * Options for creating admin auth client
13
+ */
14
+ type AdminAuthClientOptions = {
15
+ /**
16
+ * Base URL of the app API
17
+ * @example 'http://localhost:3000'
18
+ */
19
+ baseURL: string;
20
+ /**
21
+ * Base path for auth routes
22
+ * @default '/auth'
23
+ */
24
+ basePath?: string;
25
+ /**
26
+ * Custom fetch implementation
27
+ */
28
+ fetchOptions?: {
29
+ credentials?: RequestCredentials;
30
+ headers?: Record<string, string>;
31
+ };
32
+ };
33
+ /**
34
+ * Internal client options type that includes $InferAuth
35
+ */
36
+ type InternalClientOptions<T extends QuestpieApp> = {
37
+ baseURL: string;
38
+ fetchOptions?: {
39
+ credentials?: RequestCredentials;
40
+ headers?: Record<string, string>;
41
+ };
42
+ $InferAuth: ExtractAuthOptions<T>;
43
+ };
44
+ /**
45
+ * Create a type-safe Better Auth client for the admin UI
46
+ *
47
+ * The returned client includes full type inference from your app auth configuration:
48
+ * - `useSession()` - React hook for session state (typed based on your user/session schema)
49
+ * - `signIn` methods (email, social providers configured in QUESTPIE)
50
+ * - `signOut` - Sign out the current user
51
+ * - `signUp` - Register new users
52
+ * - Plugin-specific hooks (e.g., `useListAccounts` for admin plugin)
53
+ *
54
+ * @example
55
+ * ```tsx
56
+ * import { createAdminAuthClient } from '@questpie/admin/hooks'
57
+ * import type { app } from "./server/app"
58
+ *
59
+ * // Create client with type inference from your app
60
+ * export const authClient = createAdminAuthClient<typeof app>({
61
+ * baseURL: 'http://localhost:3000'
62
+ * })
63
+ *
64
+ * // Session data is fully typed based on your app auth config
65
+ * function App() {
66
+ * const { data: session, isPending } = authClient.useSession()
67
+ *
68
+ * if (isPending) return <Loading />
69
+ * if (!session) return <LoginPage authClient={authClient} />
70
+ *
71
+ * // session.user has all fields from your user schema
72
+ * return <AdminDashboard user={session.user} />
73
+ * }
74
+ * ```
75
+ */
76
+ declare function createAdminAuthClient<T extends QuestpieApp>(options: AdminAuthClientOptions): ReturnType<typeof createAuthClient<InternalClientOptions<T>>>;
77
+ /**
78
+ * Hook to access the auth client from AdminProvider context.
79
+ *
80
+ * @example
81
+ * ```tsx
82
+ * import { useAuthClient } from '@questpie/admin/hooks'
83
+ *
84
+ * function LoginPage() {
85
+ * const authClient = useAuthClient()
86
+ *
87
+ * const handleLogin = async (email: string, password: string) => {
88
+ * await authClient.signIn.email({ email, password })
89
+ * }
90
+ *
91
+ * return <LoginForm onSubmit={handleLogin} />
92
+ * }
93
+ * ```
94
+ */
95
+ declare function useAuthClient<T = any>(): T;
96
+ //#endregion
97
+ export { createAdminAuthClient, useAuthClient };
@@ -1,13 +1,13 @@
1
- import { f as useAdminStore, i as selectAuthClient } from "./content-locales-provider-BXvuIgfg.mjs";
1
+ import { selectAuthClient, useAdminStore } from "../runtime/provider.mjs";
2
2
  import { createAuthClient } from "better-auth/react";
3
3
 
4
4
  //#region src/client/hooks/use-auth.ts
5
5
  /**
6
6
  * Create a type-safe Better Auth client for the admin UI
7
7
  *
8
- * The returned client includes full type inference from your CMS auth configuration:
8
+ * The returned client includes full type inference from your app auth configuration:
9
9
  * - `useSession()` - React hook for session state (typed based on your user/session schema)
10
- * - `signIn` methods (email, social providers configured in CMS)
10
+ * - `signIn` methods (email, social providers configured in QUESTPIE)
11
11
  * - `signOut` - Sign out the current user
12
12
  * - `signUp` - Register new users
13
13
  * - Plugin-specific hooks (e.g., `useListAccounts` for admin plugin)
@@ -15,14 +15,14 @@ import { createAuthClient } from "better-auth/react";
15
15
  * @example
16
16
  * ```tsx
17
17
  * import { createAdminAuthClient } from '@questpie/admin/hooks'
18
- * import type { cms } from './server/cms'
18
+ * import type { app } from "./server/app"
19
19
  *
20
- * // Create client with type inference from your CMS
21
- * export const authClient = createAdminAuthClient<typeof cms>({
20
+ * // Create client with type inference from your app
21
+ * export const authClient = createAdminAuthClient<typeof app>({
22
22
  * baseURL: 'http://localhost:3000'
23
23
  * })
24
24
  *
25
- * // Session data is fully typed based on your CMS auth config
25
+ * // Session data is fully typed based on your app auth config
26
26
  * function App() {
27
27
  * const { data: session, isPending } = authClient.useSession()
28
28
  *
@@ -35,7 +35,7 @@ import { createAuthClient } from "better-auth/react";
35
35
  * ```
36
36
  */
37
37
  function createAdminAuthClient(options) {
38
- const basePath = options.basePath ?? "/cms/auth";
38
+ const basePath = options.basePath ?? "/auth";
39
39
  return createAuthClient({
40
40
  baseURL: `${options.baseURL}${basePath}`,
41
41
  fetchOptions: {
@@ -84,5 +84,4 @@ function useAuthClientSafe() {
84
84
  }
85
85
 
86
86
  //#endregion
87
- export { useAuthClient as n, useAuthClientSafe as r, createAdminAuthClient as t };
88
- //# sourceMappingURL=use-auth-BoLmWtmU.mjs.map
87
+ export { createAdminAuthClient, useAuthClient, useAuthClientSafe };
@@ -0,0 +1,71 @@
1
+ import { selectAdmin, useAdminStore } from "../runtime/provider.mjs";
2
+ import { buildFieldDefinitionsFromSchema } from "../utils/build-field-definitions-from-schema.mjs";
3
+ import { useCollectionSchema } from "./use-collection-schema.mjs";
4
+ import { c } from "react/compiler-runtime";
5
+
6
+ //#region src/client/hooks/use-collection-fields.ts
7
+ function useCollectionFields(collection, t0) {
8
+ const $ = c(16);
9
+ let t1;
10
+ if ($[0] !== t0) {
11
+ t1 = t0 === void 0 ? {} : t0;
12
+ $[0] = t0;
13
+ $[1] = t1;
14
+ } else t1 = $[1];
15
+ const options = t1;
16
+ const admin = useAdminStore(selectAdmin);
17
+ const { data: schema, isLoading, error } = useCollectionSchema(collection, options.schemaQueryOptions);
18
+ let t2;
19
+ bb0: {
20
+ let t3$1;
21
+ if ($[2] !== options.fallbackFields) {
22
+ t3$1 = options.fallbackFields ?? {};
23
+ $[2] = options.fallbackFields;
24
+ $[3] = t3$1;
25
+ } else t3$1 = $[3];
26
+ const fallback = t3$1;
27
+ if (!schema || !admin) {
28
+ t2 = fallback;
29
+ break bb0;
30
+ }
31
+ let t4;
32
+ if ($[4] !== admin || $[5] !== options.buildOptions || $[6] !== schema) {
33
+ t4 = buildFieldDefinitionsFromSchema(schema, admin.getFields(), options.buildOptions);
34
+ $[4] = admin;
35
+ $[5] = options.buildOptions;
36
+ $[6] = schema;
37
+ $[7] = t4;
38
+ } else t4 = $[7];
39
+ const schemaFields = t4;
40
+ let t5;
41
+ if ($[8] !== fallback || $[9] !== schemaFields) {
42
+ t5 = {
43
+ ...schemaFields,
44
+ ...fallback
45
+ };
46
+ $[8] = fallback;
47
+ $[9] = schemaFields;
48
+ $[10] = t5;
49
+ } else t5 = $[10];
50
+ t2 = t5;
51
+ }
52
+ const fields = t2;
53
+ let t3;
54
+ if ($[11] !== error || $[12] !== fields || $[13] !== isLoading || $[14] !== schema) {
55
+ t3 = {
56
+ fields,
57
+ schema,
58
+ isLoading,
59
+ error
60
+ };
61
+ $[11] = error;
62
+ $[12] = fields;
63
+ $[13] = isLoading;
64
+ $[14] = schema;
65
+ $[15] = t3;
66
+ } else t3 = $[15];
67
+ return t3;
68
+ }
69
+
70
+ //#endregion
71
+ export { useCollectionFields };
@@ -0,0 +1,153 @@
1
+ import { selectClient, useAdminStore } from "../runtime/provider.mjs";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
4
+
5
+ //#region src/client/hooks/use-collection-meta.ts
6
+ /**
7
+ * Hook for fetching collection metadata from the backend
8
+ *
9
+ * Used to get introspection info about collections like:
10
+ * - Title field configuration (which field to display first)
11
+ * - Whether timestamps are enabled
12
+ * - Whether soft delete is enabled
13
+ * - Localized fields
14
+ * - Virtual fields
15
+ */
16
+ /**
17
+ * Hook to fetch collection metadata from the backend
18
+ *
19
+ * Returns introspection info useful for building dynamic UIs:
20
+ * - title.fieldName: The field to use as display title (instead of _title)
21
+ * - title.type: "field" (sortable) or "virtual" (computed)
22
+ * - timestamps: Whether createdAt/updatedAt are enabled
23
+ * - softDelete: Whether soft delete is enabled
24
+ * - localizedFields: Fields that support i18n
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const { data: meta } = useCollectionMeta("posts");
29
+ *
30
+ * // Use title.fieldName instead of _title for first column
31
+ * const firstColumn = meta?.title.fieldName || "_title";
32
+ *
33
+ * // Only show timestamps columns if enabled
34
+ * if (meta?.timestamps) {
35
+ * columns.push("createdAt", "updatedAt");
36
+ * }
37
+ * ```
38
+ */
39
+ function useCollectionMeta(collection, queryOptions) {
40
+ const $ = c(10);
41
+ const client = useAdminStore(selectClient);
42
+ let t0;
43
+ if ($[0] !== collection) {
44
+ t0 = [
45
+ "questpie",
46
+ "collections",
47
+ collection,
48
+ "meta"
49
+ ];
50
+ $[0] = collection;
51
+ $[1] = t0;
52
+ } else t0 = $[1];
53
+ let t1;
54
+ if ($[2] !== client || $[3] !== collection) {
55
+ t1 = async () => client.collections[collection].meta();
56
+ $[2] = client;
57
+ $[3] = collection;
58
+ $[4] = t1;
59
+ } else t1 = $[4];
60
+ const t2 = !!collection && (queryOptions?.enabled ?? true);
61
+ let t3;
62
+ if ($[5] !== queryOptions || $[6] !== t0 || $[7] !== t1 || $[8] !== t2) {
63
+ t3 = {
64
+ queryKey: t0,
65
+ queryFn: t1,
66
+ staleTime: 3e5,
67
+ gcTime: 18e5,
68
+ ...queryOptions,
69
+ enabled: t2
70
+ };
71
+ $[5] = queryOptions;
72
+ $[6] = t0;
73
+ $[7] = t1;
74
+ $[8] = t2;
75
+ $[9] = t3;
76
+ } else t3 = $[9];
77
+ return useQuery(t3);
78
+ }
79
+ /**
80
+ * Query key for collection meta
81
+ * Useful for prefetching or invalidation
82
+ */
83
+ function getCollectionMetaQueryKey(collection) {
84
+ return [
85
+ "questpie",
86
+ "collections",
87
+ collection,
88
+ "meta"
89
+ ];
90
+ }
91
+ /**
92
+ * Query options factory for collection metadata.
93
+ * Can be used with TanStack Query's prefetching in loaders or with useSuspenseQuery.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * // In TanStack Start loader
98
+ * export const Route = createFileRoute("/admin/collections/:name")({
99
+ * loader: async ({ context, params }) => {
100
+ * await context.queryClient.ensureQueryData(
101
+ * getCollectionMetaQueryOptions(params.name, context.client)
102
+ * );
103
+ * },
104
+ * });
105
+ * ```
106
+ */
107
+ function getCollectionMetaQueryOptions(collection, client) {
108
+ return {
109
+ queryKey: getCollectionMetaQueryKey(collection),
110
+ queryFn: async () => {
111
+ return client.collections[collection].meta();
112
+ },
113
+ staleTime: 300 * 1e3,
114
+ gcTime: 1800 * 1e3
115
+ };
116
+ }
117
+ /**
118
+ * Suspense-enabled hook to fetch collection metadata.
119
+ *
120
+ * Uses useSuspenseQuery so the component will suspend until data is loaded.
121
+ * Must be used within a Suspense boundary.
122
+ *
123
+ * @example
124
+ * ```tsx
125
+ * function TableViewInner({ collection }: Props) {
126
+ * // This will suspend until meta is loaded
127
+ * const { data: meta } = useSuspenseCollectionMeta(collection);
128
+ *
129
+ * // meta is guaranteed to be defined here
130
+ * const titleField = meta.title.fieldName;
131
+ * }
132
+ *
133
+ * // Wrap with Suspense
134
+ * <Suspense fallback={<Loading />}>
135
+ * <TableViewInner collection="posts" />
136
+ * </Suspense>
137
+ * ```
138
+ */
139
+ function useSuspenseCollectionMeta(collection) {
140
+ const $ = c(3);
141
+ const client = useAdminStore(selectClient);
142
+ let t0;
143
+ if ($[0] !== client || $[1] !== collection) {
144
+ t0 = getCollectionMetaQueryOptions(collection, client);
145
+ $[0] = client;
146
+ $[1] = collection;
147
+ $[2] = t0;
148
+ } else t0 = $[2];
149
+ return useSuspenseQuery(t0);
150
+ }
151
+
152
+ //#endregion
153
+ export { getCollectionMetaQueryOptions, useCollectionMeta, useSuspenseCollectionMeta };
@@ -0,0 +1,90 @@
1
+ import { selectClient, useAdminStore } from "../runtime/provider.mjs";
2
+ import { c } from "react/compiler-runtime";
3
+ import { useQuery } from "@tanstack/react-query";
4
+
5
+ //#region src/client/hooks/use-collection-schema.ts
6
+ /**
7
+ * Hook for fetching collection schema from the backend
8
+ *
9
+ * Returns full introspection data including:
10
+ * - Field schemas with metadata and validation
11
+ * - Relations metadata
12
+ * - Access control information for current user
13
+ * - JSON Schema for client-side validation
14
+ */
15
+ /**
16
+ * Hook to fetch collection schema from the backend
17
+ *
18
+ * Returns full introspection data useful for building dynamic forms and UIs:
19
+ * - fields: Complete field metadata including type, label, validation, admin config
20
+ * - relations: Relation metadata with type, target collection(s), and keys
21
+ * - access: Evaluated access control for the current user
22
+ * - validation: JSON Schema for client-side validation
23
+ * - options: Collection options (timestamps, softDelete, versioning)
24
+ *
25
+ * @example
26
+ * ```tsx
27
+ * const { data: schema } = useCollectionSchema("posts");
28
+ *
29
+ * // Build fields dynamically from schema
30
+ * for (const [name, field] of Object.entries(schema?.fields ?? {})) {
31
+ * const FieldComponent = getFieldComponent(field.metadata.type);
32
+ * // Use field.metadata for rendering configuration
33
+ * }
34
+ *
35
+ * // Check user access
36
+ * if (schema?.access.operations.create.allowed) {
37
+ * // Show create button
38
+ * }
39
+ * ```
40
+ */
41
+ function useCollectionSchema(collection, queryOptions) {
42
+ const $ = c(10);
43
+ const client = useAdminStore(selectClient);
44
+ let t0;
45
+ if ($[0] !== collection) {
46
+ t0 = getCollectionSchemaQueryKey(collection);
47
+ $[0] = collection;
48
+ $[1] = t0;
49
+ } else t0 = $[1];
50
+ let t1;
51
+ if ($[2] !== client || $[3] !== collection) {
52
+ t1 = async () => client.collections[collection].schema();
53
+ $[2] = client;
54
+ $[3] = collection;
55
+ $[4] = t1;
56
+ } else t1 = $[4];
57
+ const t2 = !!collection && (queryOptions?.enabled ?? true);
58
+ let t3;
59
+ if ($[5] !== queryOptions || $[6] !== t0 || $[7] !== t1 || $[8] !== t2) {
60
+ t3 = {
61
+ queryKey: t0,
62
+ queryFn: t1,
63
+ staleTime: 3e5,
64
+ gcTime: 18e5,
65
+ ...queryOptions,
66
+ enabled: t2
67
+ };
68
+ $[5] = queryOptions;
69
+ $[6] = t0;
70
+ $[7] = t1;
71
+ $[8] = t2;
72
+ $[9] = t3;
73
+ } else t3 = $[9];
74
+ return useQuery(t3);
75
+ }
76
+ /**
77
+ * Query key for collection schema
78
+ * Useful for prefetching or invalidation
79
+ */
80
+ function getCollectionSchemaQueryKey(collection) {
81
+ return [
82
+ "questpie",
83
+ "collections",
84
+ collection,
85
+ "schema"
86
+ ];
87
+ }
88
+
89
+ //#endregion
90
+ export { useCollectionSchema };
@@ -0,0 +1,88 @@
1
+ import { createFormSchema } from "../builder/validation.mjs";
2
+ import { useCollectionFields } from "./use-collection-fields.mjs";
3
+ import { useValidationErrorMap } from "./use-validation-error-map.mjs";
4
+ import { c } from "react/compiler-runtime";
5
+
6
+ //#region src/client/hooks/use-collection-validation.ts
7
+ /**
8
+ * Get a ready-to-use resolver for react-hook-form
9
+ *
10
+ * This is the recommended hook - provides full automatic validation
11
+ * with i18n error messages. Just pass the result to useForm's resolver.
12
+ *
13
+ * @param collection - Collection name
14
+ * @returns Resolver function for react-hook-form, or undefined if collection not found
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * function MyForm() {
19
+ * const resolver = useCollectionValidation("posts");
20
+ *
21
+ * const form = useForm({
22
+ * resolver,
23
+ * });
24
+ *
25
+ * // That's it! Validation and i18n errors work automatically.
26
+ * }
27
+ * ```
28
+ */
29
+ function useCollectionValidation(collection) {
30
+ const $ = c(5);
31
+ const { fields } = useCollectionFields(collection);
32
+ let t0;
33
+ bb0: {
34
+ if (!fields || Object.keys(fields).length === 0) {
35
+ t0 = void 0;
36
+ break bb0;
37
+ }
38
+ let t1$1;
39
+ if ($[0] !== fields) {
40
+ t1$1 = createFormSchema(fields);
41
+ $[0] = fields;
42
+ $[1] = t1$1;
43
+ } else t1$1 = $[1];
44
+ t0 = t1$1;
45
+ }
46
+ const schema = t0;
47
+ const errorMap = useValidationErrorMap();
48
+ let t1;
49
+ if ($[2] !== errorMap || $[3] !== schema) {
50
+ t1 = async (values, _context, _options) => {
51
+ if (!schema) return {
52
+ values,
53
+ errors: {}
54
+ };
55
+ const result = schema.safeParse(values);
56
+ if (result.success) return {
57
+ values: result.data,
58
+ errors: {}
59
+ };
60
+ return {
61
+ values: {},
62
+ errors: zodErrorToFieldErrors(result.error, errorMap)
63
+ };
64
+ };
65
+ $[2] = errorMap;
66
+ $[3] = schema;
67
+ $[4] = t1;
68
+ } else t1 = $[4];
69
+ return schema ? t1 : void 0;
70
+ }
71
+ /**
72
+ * Convert Zod error to react-hook-form FieldErrors format with i18n support
73
+ */
74
+ function zodErrorToFieldErrors(error, errorMap) {
75
+ const errors = {};
76
+ for (const issue of error.issues) {
77
+ const path = issue.path.join(".");
78
+ const { message } = errorMap(issue);
79
+ if (path && !errors[path]) errors[path] = {
80
+ type: issue.code,
81
+ message
82
+ };
83
+ }
84
+ return errors;
85
+ }
86
+
87
+ //#endregion
88
+ export { useCollectionValidation };