@questpie/admin 1.1.0 → 2.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 (965) hide show
  1. package/README.md +245 -474
  2. package/dist/_virtual/rolldown_runtime.mjs +18 -0
  3. package/dist/augmentation.d.mts +315 -0
  4. package/dist/augmentation.d.mts.map +1 -0
  5. package/dist/client/blocks/block-registry.d.mts +199 -0
  6. package/dist/client/blocks/block-registry.d.mts.map +1 -0
  7. package/dist/client/blocks/block-registry.mjs +88 -0
  8. package/dist/client/blocks/block-registry.mjs.map +1 -0
  9. package/dist/client/blocks/block-renderer.d.mts +52 -0
  10. package/dist/client/blocks/block-renderer.d.mts.map +1 -0
  11. package/dist/client/blocks/block-renderer.mjs +71 -0
  12. package/dist/client/blocks/block-renderer.mjs.map +1 -0
  13. package/dist/client/blocks/index.d.mts +4 -0
  14. package/dist/client/blocks/prefetch.d.mts +45 -0
  15. package/dist/client/blocks/prefetch.d.mts.map +1 -0
  16. package/dist/client/blocks/prefetch.mjs +26 -0
  17. package/dist/client/blocks/prefetch.mjs.map +1 -0
  18. package/dist/client/blocks/types.d.mts +69 -0
  19. package/dist/client/blocks/types.d.mts.map +1 -0
  20. package/dist/client/blocks/types.mjs +20 -0
  21. package/dist/client/blocks/types.mjs.map +1 -0
  22. package/dist/client/builder/admin-builder.d.mts +112 -0
  23. package/dist/client/builder/admin-builder.d.mts.map +1 -0
  24. package/dist/client/builder/admin-builder.mjs +185 -0
  25. package/dist/client/builder/admin-builder.mjs.map +1 -0
  26. package/dist/client/builder/admin-types.d.mts +73 -0
  27. package/dist/client/builder/admin-types.d.mts.map +1 -0
  28. package/dist/client/builder/admin.d.mts +121 -0
  29. package/dist/client/builder/admin.d.mts.map +1 -0
  30. package/dist/client/builder/admin.mjs +160 -0
  31. package/dist/client/builder/admin.mjs.map +1 -0
  32. package/dist/client/builder/defaults/components.mjs +20 -0
  33. package/dist/client/builder/defaults/components.mjs.map +1 -0
  34. package/dist/client/builder/defaults/core.d.mts +354 -0
  35. package/dist/client/builder/defaults/core.d.mts.map +1 -0
  36. package/dist/client/builder/defaults/core.mjs +49 -0
  37. package/dist/client/builder/defaults/core.mjs.map +1 -0
  38. package/dist/client/builder/defaults/fields.mjs +328 -0
  39. package/dist/client/builder/defaults/fields.mjs.map +1 -0
  40. package/dist/client/builder/defaults/pages.mjs +58 -0
  41. package/dist/client/builder/defaults/pages.mjs.map +1 -0
  42. package/dist/client/builder/defaults/starter.d.mts +351 -0
  43. package/dist/client/builder/defaults/starter.d.mts.map +1 -0
  44. package/dist/client/builder/defaults/starter.mjs +28 -0
  45. package/dist/client/builder/defaults/starter.mjs.map +1 -0
  46. package/dist/client/builder/defaults/views.mjs +27 -0
  47. package/dist/client/builder/defaults/views.mjs.map +1 -0
  48. package/dist/client/builder/defaults/widgets.mjs +31 -0
  49. package/dist/client/builder/defaults/widgets.mjs.map +1 -0
  50. package/dist/client/builder/field/field.d.mts +229 -0
  51. package/dist/client/builder/field/field.d.mts.map +1 -0
  52. package/dist/client/builder/field/field.mjs +83 -0
  53. package/dist/client/builder/field/field.mjs.map +1 -0
  54. package/dist/client/builder/index.d.mts +36 -0
  55. package/dist/client/builder/index.d.mts.map +1 -0
  56. package/dist/client/builder/page/page.d.mts +36 -0
  57. package/dist/client/builder/page/page.d.mts.map +1 -0
  58. package/dist/client/builder/page/page.mjs +27 -0
  59. package/dist/client/builder/page/page.mjs.map +1 -0
  60. package/dist/client/builder/proxies.d.mts +2 -0
  61. package/dist/client/builder/proxies.mjs +24 -0
  62. package/dist/client/builder/proxies.mjs.map +1 -0
  63. package/dist/client/builder/qa.d.mts +50 -0
  64. package/dist/client/builder/qa.d.mts.map +1 -0
  65. package/dist/client/builder/qa.mjs +42 -0
  66. package/dist/client/builder/qa.mjs.map +1 -0
  67. package/dist/client/builder/registry.d.mts +70 -0
  68. package/dist/client/builder/registry.d.mts.map +1 -0
  69. package/dist/client/builder/types/action-registry.d.mts +2 -0
  70. package/dist/client/builder/types/action-registry.mjs +142 -0
  71. package/dist/client/builder/types/action-registry.mjs.map +1 -0
  72. package/dist/client/builder/types/action-types.d.mts +253 -0
  73. package/dist/client/builder/types/action-types.d.mts.map +1 -0
  74. package/dist/client/builder/types/collection-types.d.mts +199 -0
  75. package/dist/client/builder/types/collection-types.d.mts.map +1 -0
  76. package/dist/client/builder/types/collection-types.mjs +11 -0
  77. package/dist/client/builder/types/collection-types.mjs.map +1 -0
  78. package/dist/client/builder/types/common.d.mts +60 -0
  79. package/dist/client/builder/types/common.d.mts.map +1 -0
  80. package/dist/client/builder/types/field-types.d.mts +593 -0
  81. package/dist/client/builder/types/field-types.d.mts.map +1 -0
  82. package/dist/client/builder/types/field-types.mjs +19 -0
  83. package/dist/client/builder/types/field-types.mjs.map +1 -0
  84. package/dist/client/builder/types/global-types.d.mts +22 -0
  85. package/dist/client/builder/types/global-types.d.mts.map +1 -0
  86. package/dist/client/builder/types/ui-config.d.mts +160 -0
  87. package/dist/client/builder/types/ui-config.d.mts.map +1 -0
  88. package/dist/client/builder/types/views.d.mts +89 -0
  89. package/dist/client/builder/types/views.d.mts.map +1 -0
  90. package/dist/client/builder/types/widget-types.d.mts +563 -0
  91. package/dist/client/builder/types/widget-types.d.mts.map +1 -0
  92. package/dist/client/builder/validation.d.mts +3 -0
  93. package/dist/client/builder/validation.mjs +208 -0
  94. package/dist/client/builder/validation.mjs.map +1 -0
  95. package/dist/client/builder/view/view.d.mts +129 -0
  96. package/dist/client/builder/view/view.d.mts.map +1 -0
  97. package/dist/client/builder/view/view.mjs +109 -0
  98. package/dist/client/builder/view/view.mjs.map +1 -0
  99. package/dist/client/builder/widget/widget.d.mts +33 -0
  100. package/dist/client/builder/widget/widget.d.mts.map +1 -0
  101. package/dist/client/builder/widget/widget.mjs +26 -0
  102. package/dist/client/builder/widget/widget.mjs.map +1 -0
  103. package/dist/client/components/actions/action-button.d.mts +2 -0
  104. package/dist/client/components/actions/action-button.mjs +135 -0
  105. package/dist/client/components/actions/action-button.mjs.map +1 -0
  106. package/dist/client/components/actions/action-dialog.d.mts +2 -0
  107. package/dist/client/components/actions/action-dialog.mjs +264 -0
  108. package/dist/client/components/actions/action-dialog.mjs.map +1 -0
  109. package/dist/client/components/actions/confirmation-dialog.d.mts +2 -0
  110. package/dist/client/components/actions/confirmation-dialog.mjs +82 -0
  111. package/dist/client/components/actions/confirmation-dialog.mjs.map +1 -0
  112. package/dist/client/components/actions/header-actions.d.mts +2 -0
  113. package/dist/client/components/actions/header-actions.mjs +117 -0
  114. package/dist/client/components/actions/header-actions.mjs.map +1 -0
  115. package/dist/client/components/actions/index.d.mts +4 -0
  116. package/dist/client/components/admin-link.d.mts +67 -0
  117. package/dist/client/components/admin-link.d.mts.map +1 -0
  118. package/dist/client/components/admin-link.mjs +92 -0
  119. package/dist/client/components/admin-link.mjs.map +1 -0
  120. package/dist/client/components/auth/auth-guard.d.mts +51 -0
  121. package/dist/client/components/auth/auth-guard.d.mts.map +1 -0
  122. package/dist/client/components/auth/auth-guard.mjs +60 -0
  123. package/dist/client/components/auth/auth-guard.mjs.map +1 -0
  124. package/dist/client/components/auth/auth-loading.d.mts +36 -0
  125. package/dist/client/components/auth/auth-loading.d.mts.map +1 -0
  126. package/dist/client/components/auth/auth-loading.mjs +27 -0
  127. package/dist/client/components/auth/auth-loading.mjs.map +1 -0
  128. package/dist/client/components/auth/index.d.mts +2 -0
  129. package/dist/client/components/blocks/block-canvas.mjs +90 -0
  130. package/dist/client/components/blocks/block-canvas.mjs.map +1 -0
  131. package/dist/client/components/blocks/block-editor-context.mjs +58 -0
  132. package/dist/client/components/blocks/block-editor-context.mjs.map +1 -0
  133. package/dist/client/components/blocks/block-editor-layout.mjs +82 -0
  134. package/dist/client/components/blocks/block-editor-layout.mjs.map +1 -0
  135. package/dist/client/components/blocks/block-editor-provider.mjs +155 -0
  136. package/dist/client/components/blocks/block-editor-provider.mjs.map +1 -0
  137. package/dist/client/components/blocks/block-fields-renderer.mjs +70 -0
  138. package/dist/client/components/blocks/block-fields-renderer.mjs.map +1 -0
  139. package/dist/client/components/blocks/block-insert-button.mjs +72 -0
  140. package/dist/client/components/blocks/block-insert-button.mjs.map +1 -0
  141. package/dist/client/components/blocks/block-item-menu.mjs +161 -0
  142. package/dist/client/components/blocks/block-item-menu.mjs.map +1 -0
  143. package/dist/client/components/blocks/block-item.mjs +187 -0
  144. package/dist/client/components/blocks/block-item.mjs.map +1 -0
  145. package/dist/client/components/blocks/block-library-sidebar.mjs +190 -0
  146. package/dist/client/components/blocks/block-library-sidebar.mjs.map +1 -0
  147. package/dist/client/components/blocks/block-tree.mjs +45 -0
  148. package/dist/client/components/blocks/block-tree.mjs.map +1 -0
  149. package/dist/client/components/blocks/block-type-icon.mjs +50 -0
  150. package/dist/client/components/blocks/block-type-icon.mjs.map +1 -0
  151. package/dist/client/components/blocks/utils/tree-utils.mjs +186 -0
  152. package/dist/client/components/blocks/utils/tree-utils.mjs.map +1 -0
  153. package/dist/client/components/component-renderer.d.mts +125 -0
  154. package/dist/client/components/component-renderer.d.mts.map +1 -0
  155. package/dist/client/components/component-renderer.mjs +145 -0
  156. package/dist/client/components/component-renderer.mjs.map +1 -0
  157. package/dist/client/components/error-boundary.mjs +92 -0
  158. package/dist/client/components/error-boundary.mjs.map +1 -0
  159. package/dist/client/components/fields/array-field.d.mts +44 -0
  160. package/dist/client/components/fields/array-field.d.mts.map +1 -0
  161. package/dist/client/components/fields/array-field.mjs +231 -0
  162. package/dist/client/components/fields/array-field.mjs.map +1 -0
  163. package/dist/client/components/fields/asset-preview-field.d.mts +52 -0
  164. package/dist/client/components/fields/asset-preview-field.d.mts.map +1 -0
  165. package/dist/client/components/fields/asset-preview-field.mjs +60 -0
  166. package/dist/client/components/fields/asset-preview-field.mjs.map +1 -0
  167. package/dist/client/components/fields/blocks-field/blocks-field.d.mts +41 -0
  168. package/dist/client/components/fields/blocks-field/blocks-field.d.mts.map +1 -0
  169. package/dist/client/components/fields/blocks-field/blocks-field.mjs +101 -0
  170. package/dist/client/components/fields/blocks-field/blocks-field.mjs.map +1 -0
  171. package/dist/client/components/fields/blocks-field/index.d.mts +1 -0
  172. package/dist/client/components/fields/boolean-field.d.mts +30 -0
  173. package/dist/client/components/fields/boolean-field.d.mts.map +1 -0
  174. package/dist/client/components/fields/boolean-field.mjs +47 -0
  175. package/dist/client/components/fields/boolean-field.mjs.map +1 -0
  176. package/dist/client/components/fields/custom-field.d.mts +3 -0
  177. package/dist/client/components/fields/date-field.d.mts +22 -0
  178. package/dist/client/components/fields/date-field.d.mts.map +1 -0
  179. package/dist/client/components/fields/date-field.mjs +42 -0
  180. package/dist/client/components/fields/date-field.mjs.map +1 -0
  181. package/dist/client/components/fields/datetime-field.d.mts +23 -0
  182. package/dist/client/components/fields/datetime-field.d.mts.map +1 -0
  183. package/dist/client/components/fields/datetime-field.mjs +43 -0
  184. package/dist/client/components/fields/datetime-field.mjs.map +1 -0
  185. package/dist/client/components/fields/email-field.d.mts +19 -0
  186. package/dist/client/components/fields/email-field.d.mts.map +1 -0
  187. package/dist/client/components/fields/email-field.mjs +38 -0
  188. package/dist/client/components/fields/email-field.mjs.map +1 -0
  189. package/dist/client/components/fields/embedded-collection.d.mts +3 -0
  190. package/dist/client/components/fields/field-types.d.mts +571 -0
  191. package/dist/client/components/fields/field-types.d.mts.map +1 -0
  192. package/dist/client/components/fields/field-utils.d.mts +1 -0
  193. package/dist/client/components/fields/field-utils.mjs +65 -0
  194. package/dist/client/components/fields/field-utils.mjs.map +1 -0
  195. package/dist/client/components/fields/field-wrapper.d.mts +3 -0
  196. package/dist/client/components/fields/field-wrapper.mjs +49 -0
  197. package/dist/client/components/fields/field-wrapper.mjs.map +1 -0
  198. package/dist/client/components/fields/index.d.mts +33 -0
  199. package/dist/client/components/fields/json-field.d.mts +84 -0
  200. package/dist/client/components/fields/json-field.d.mts.map +1 -0
  201. package/dist/client/components/fields/json-field.mjs +248 -0
  202. package/dist/client/components/fields/json-field.mjs.map +1 -0
  203. package/dist/client/components/fields/locale-badge.d.mts +1 -0
  204. package/dist/client/components/fields/locale-badge.mjs +17 -0
  205. package/dist/client/components/fields/locale-badge.mjs.map +1 -0
  206. package/dist/client/components/fields/number-field.d.mts +23 -0
  207. package/dist/client/components/fields/number-field.d.mts.map +1 -0
  208. package/dist/client/components/fields/number-field.mjs +40 -0
  209. package/dist/client/components/fields/number-field.mjs.map +1 -0
  210. package/dist/client/components/fields/object-array-field.d.mts +2 -0
  211. package/dist/client/components/fields/object-array-field.mjs +313 -0
  212. package/dist/client/components/fields/object-array-field.mjs.map +1 -0
  213. package/dist/client/components/fields/object-field.d.mts +32 -0
  214. package/dist/client/components/fields/object-field.d.mts.map +1 -0
  215. package/dist/client/components/fields/object-field.mjs +128 -0
  216. package/dist/client/components/fields/object-field.mjs.map +1 -0
  217. package/dist/client/components/fields/relation/displays/cards-display.d.mts +2 -0
  218. package/dist/client/components/fields/relation/displays/cards-display.mjs +140 -0
  219. package/dist/client/components/fields/relation/displays/cards-display.mjs.map +1 -0
  220. package/dist/client/components/fields/relation/displays/chips-display.d.mts +2 -0
  221. package/dist/client/components/fields/relation/displays/chips-display.mjs +100 -0
  222. package/dist/client/components/fields/relation/displays/chips-display.mjs.map +1 -0
  223. package/dist/client/components/fields/relation/displays/grid-display.d.mts +2 -0
  224. package/dist/client/components/fields/relation/displays/grid-display.mjs +114 -0
  225. package/dist/client/components/fields/relation/displays/grid-display.mjs.map +1 -0
  226. package/dist/client/components/fields/relation/displays/index.d.mts +6 -0
  227. package/dist/client/components/fields/relation/displays/list-display.d.mts +2 -0
  228. package/dist/client/components/fields/relation/displays/list-display.mjs +128 -0
  229. package/dist/client/components/fields/relation/displays/list-display.mjs.map +1 -0
  230. package/dist/client/components/fields/relation/displays/table-display.d.mts +2 -0
  231. package/dist/client/components/fields/relation/displays/table-display.mjs +134 -0
  232. package/dist/client/components/fields/relation/displays/table-display.mjs.map +1 -0
  233. package/dist/client/components/fields/relation/displays/types.d.mts +22 -0
  234. package/dist/client/components/fields/relation/displays/types.d.mts.map +1 -0
  235. package/dist/client/components/fields/relation/displays/types.mjs +73 -0
  236. package/dist/client/components/fields/relation/displays/types.mjs.map +1 -0
  237. package/dist/client/components/fields/relation/index.d.mts +3 -0
  238. package/dist/client/components/fields/relation/relation-items-display.d.mts +5 -0
  239. package/dist/client/components/fields/relation/relation-items-display.mjs +47 -0
  240. package/dist/client/components/fields/relation/relation-items-display.mjs.map +1 -0
  241. package/dist/client/components/fields/relation-field.d.mts +134 -0
  242. package/dist/client/components/fields/relation-field.d.mts.map +1 -0
  243. package/dist/client/components/fields/relation-field.mjs +106 -0
  244. package/dist/client/components/fields/relation-field.mjs.map +1 -0
  245. package/dist/client/components/fields/relation-picker.d.mts +4 -0
  246. package/dist/client/components/fields/relation-picker.mjs +301 -0
  247. package/dist/client/components/fields/relation-picker.mjs.map +1 -0
  248. package/dist/client/components/fields/relation-select.d.mts +3 -0
  249. package/dist/client/components/fields/relation-select.mjs +219 -0
  250. package/dist/client/components/fields/relation-select.mjs.map +1 -0
  251. package/dist/client/components/fields/reverse-relation-field.d.mts +2 -0
  252. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs +56 -0
  253. package/dist/client/components/fields/rich-text-editor/bubble-menu.mjs.map +1 -0
  254. package/dist/client/components/fields/rich-text-editor/extensions.mjs +118 -0
  255. package/dist/client/components/fields/rich-text-editor/extensions.mjs.map +1 -0
  256. package/dist/client/components/fields/rich-text-editor/image-popover.mjs +196 -0
  257. package/dist/client/components/fields/rich-text-editor/image-popover.mjs.map +1 -0
  258. package/dist/client/components/fields/rich-text-editor/index.d.mts +4 -0
  259. package/dist/client/components/fields/rich-text-editor/index.mjs +187 -0
  260. package/dist/client/components/fields/rich-text-editor/index.mjs.map +1 -0
  261. package/dist/client/components/fields/rich-text-editor/link-popover.mjs +86 -0
  262. package/dist/client/components/fields/rich-text-editor/link-popover.mjs.map +1 -0
  263. package/dist/client/components/fields/rich-text-editor/presets.d.mts +11 -0
  264. package/dist/client/components/fields/rich-text-editor/presets.d.mts.map +1 -0
  265. package/dist/client/components/fields/rich-text-editor/presets.mjs +124 -0
  266. package/dist/client/components/fields/rich-text-editor/presets.mjs.map +1 -0
  267. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs +145 -0
  268. package/dist/client/components/fields/rich-text-editor/slash-commands.mjs.map +1 -0
  269. package/dist/client/components/fields/rich-text-editor/table-controls.mjs +124 -0
  270. package/dist/client/components/fields/rich-text-editor/table-controls.mjs.map +1 -0
  271. package/dist/client/components/fields/rich-text-editor/toolbar.mjs +280 -0
  272. package/dist/client/components/fields/rich-text-editor/toolbar.mjs.map +1 -0
  273. package/dist/client/components/fields/rich-text-editor/types.d.mts +78 -0
  274. package/dist/client/components/fields/rich-text-editor/types.d.mts.map +1 -0
  275. package/dist/client/components/fields/rich-text-editor/types.mjs +31 -0
  276. package/dist/client/components/fields/rich-text-editor/types.mjs.map +1 -0
  277. package/dist/client/components/fields/rich-text-editor/utils.mjs +51 -0
  278. package/dist/client/components/fields/rich-text-editor/utils.mjs.map +1 -0
  279. package/dist/client/components/fields/rich-text-editor/variants.d.mts +2 -0
  280. package/dist/client/components/fields/rich-text-field.d.mts +14 -0
  281. package/dist/client/components/fields/rich-text-field.d.mts.map +1 -0
  282. package/dist/client/components/fields/rich-text-field.mjs +26 -0
  283. package/dist/client/components/fields/rich-text-field.mjs.map +1 -0
  284. package/dist/client/components/fields/select-field.d.mts +25 -0
  285. package/dist/client/components/fields/select-field.d.mts.map +1 -0
  286. package/dist/client/components/fields/select-field.mjs +53 -0
  287. package/dist/client/components/fields/select-field.mjs.map +1 -0
  288. package/dist/client/components/fields/status-field.d.mts +2 -0
  289. package/dist/client/components/fields/text-field.d.mts +22 -0
  290. package/dist/client/components/fields/text-field.d.mts.map +1 -0
  291. package/dist/client/components/fields/text-field.mjs +39 -0
  292. package/dist/client/components/fields/text-field.mjs.map +1 -0
  293. package/dist/client/components/fields/textarea-field.d.mts +22 -0
  294. package/dist/client/components/fields/textarea-field.d.mts.map +1 -0
  295. package/dist/client/components/fields/textarea-field.mjs +39 -0
  296. package/dist/client/components/fields/textarea-field.mjs.map +1 -0
  297. package/dist/client/components/fields/time-field.d.mts +20 -0
  298. package/dist/client/components/fields/time-field.d.mts.map +1 -0
  299. package/dist/client/components/fields/time-field.mjs +39 -0
  300. package/dist/client/components/fields/time-field.mjs.map +1 -0
  301. package/dist/client/components/fields/upload-field.d.mts +97 -0
  302. package/dist/client/components/fields/upload-field.d.mts.map +1 -0
  303. package/dist/client/components/fields/upload-field.mjs +497 -0
  304. package/dist/client/components/fields/upload-field.mjs.map +1 -0
  305. package/dist/client/components/filter-builder/columns-tab.d.mts +1 -0
  306. package/dist/client/components/filter-builder/columns-tab.mjs +131 -0
  307. package/dist/client/components/filter-builder/columns-tab.mjs.map +1 -0
  308. package/dist/client/components/filter-builder/filter-builder-sheet.d.mts +1 -0
  309. package/dist/client/components/filter-builder/filter-builder-sheet.mjs +157 -0
  310. package/dist/client/components/filter-builder/filter-builder-sheet.mjs.map +1 -0
  311. package/dist/client/components/filter-builder/filters-tab.d.mts +1 -0
  312. package/dist/client/components/filter-builder/filters-tab.mjs +380 -0
  313. package/dist/client/components/filter-builder/filters-tab.mjs.map +1 -0
  314. package/dist/client/components/filter-builder/index.d.mts +5 -0
  315. package/dist/client/components/filter-builder/saved-views-tab.d.mts +1 -0
  316. package/dist/client/components/filter-builder/saved-views-tab.mjs +125 -0
  317. package/dist/client/components/filter-builder/saved-views-tab.mjs.map +1 -0
  318. package/dist/client/components/index.d.mts +80 -0
  319. package/dist/client/components/locale-switcher.d.mts +2 -0
  320. package/dist/client/components/locale-switcher.mjs +128 -0
  321. package/dist/client/components/locale-switcher.mjs.map +1 -0
  322. package/dist/client/components/media/media-grid.mjs +139 -0
  323. package/dist/client/components/media/media-grid.mjs.map +1 -0
  324. package/dist/client/components/media/media-picker-dialog.mjs +255 -0
  325. package/dist/client/components/media/media-picker-dialog.mjs.map +1 -0
  326. package/dist/client/components/preview/live-preview-mode.mjs +211 -0
  327. package/dist/client/components/preview/live-preview-mode.mjs.map +1 -0
  328. package/dist/client/components/preview/preview-pane.mjs +179 -0
  329. package/dist/client/components/preview/preview-pane.mjs.map +1 -0
  330. package/dist/client/components/primitives/asset-preview.mjs +363 -0
  331. package/dist/client/components/primitives/asset-preview.mjs.map +1 -0
  332. package/dist/client/components/primitives/checkbox-input.mjs +33 -0
  333. package/dist/client/components/primitives/checkbox-input.mjs.map +1 -0
  334. package/dist/client/components/primitives/date-input.mjs +218 -0
  335. package/dist/client/components/primitives/date-input.mjs.map +1 -0
  336. package/dist/client/components/primitives/dropzone.mjs +239 -0
  337. package/dist/client/components/primitives/dropzone.mjs.map +1 -0
  338. package/dist/client/components/primitives/number-input.mjs +113 -0
  339. package/dist/client/components/primitives/number-input.mjs.map +1 -0
  340. package/dist/client/components/primitives/select-multi.mjs +256 -0
  341. package/dist/client/components/primitives/select-multi.mjs.map +1 -0
  342. package/dist/client/components/primitives/select-single.mjs +183 -0
  343. package/dist/client/components/primitives/select-single.mjs.map +1 -0
  344. package/dist/client/components/primitives/text-input.mjs +40 -0
  345. package/dist/client/components/primitives/text-input.mjs.map +1 -0
  346. package/dist/client/components/primitives/textarea-input.mjs +38 -0
  347. package/dist/client/components/primitives/textarea-input.mjs.map +1 -0
  348. package/dist/client/components/primitives/time-input.mjs +72 -0
  349. package/dist/client/components/primitives/time-input.mjs.map +1 -0
  350. package/dist/client/components/primitives/toggle-input.mjs +31 -0
  351. package/dist/client/components/primitives/toggle-input.mjs.map +1 -0
  352. package/dist/client/components/primitives/types.d.mts +14 -0
  353. package/dist/client/components/primitives/types.d.mts.map +1 -0
  354. package/dist/client/components/primitives/types.mjs +13 -0
  355. package/dist/client/components/primitives/types.mjs.map +1 -0
  356. package/dist/client/components/sheets/index.d.mts +1 -0
  357. package/dist/client/components/sheets/resource-sheet.d.mts +1 -0
  358. package/dist/client/components/sheets/resource-sheet.mjs +78 -0
  359. package/dist/client/components/sheets/resource-sheet.mjs.map +1 -0
  360. package/dist/client/components/ui/accordion.d.mts +2 -0
  361. package/dist/client/components/ui/accordion.mjs +50 -0
  362. package/dist/client/components/ui/accordion.mjs.map +1 -0
  363. package/dist/client/components/ui/alert.mjs +32 -0
  364. package/dist/client/components/ui/alert.mjs.map +1 -0
  365. package/dist/client/components/ui/avatar.d.mts +3 -0
  366. package/dist/client/components/ui/badge.d.mts +3 -0
  367. package/dist/client/components/ui/badge.mjs +35 -0
  368. package/dist/client/components/ui/badge.mjs.map +1 -0
  369. package/dist/client/components/ui/button.d.mts +3 -0
  370. package/dist/client/components/ui/button.mjs +49 -0
  371. package/dist/client/components/ui/button.mjs.map +1 -0
  372. package/dist/client/components/ui/card.d.mts +2 -0
  373. package/dist/{card-BKHjBQfw.mjs → client/components/ui/card.mjs} +3 -10
  374. package/dist/{card-BKHjBQfw.mjs.map → client/components/ui/card.mjs.map} +1 -1
  375. package/dist/client/components/ui/checkbox.d.mts +2 -0
  376. package/dist/client/components/ui/checkbox.mjs +27 -0
  377. package/dist/client/components/ui/checkbox.mjs.map +1 -0
  378. package/dist/client/components/ui/combobox.d.mts +3 -0
  379. package/dist/client/components/ui/command.mjs +69 -0
  380. package/dist/client/components/ui/command.mjs.map +1 -0
  381. package/dist/client/components/ui/dialog.d.mts +3 -0
  382. package/dist/client/components/ui/dialog.mjs +83 -0
  383. package/dist/client/components/ui/dialog.mjs.map +1 -0
  384. package/dist/client/components/ui/drawer.mjs +75 -0
  385. package/dist/client/components/ui/drawer.mjs.map +1 -0
  386. package/dist/client/components/ui/dropdown-menu.d.mts +3 -0
  387. package/dist/client/components/ui/dropdown-menu.mjs +89 -0
  388. package/dist/client/components/ui/dropdown-menu.mjs.map +1 -0
  389. package/dist/client/components/ui/empty-state.mjs +53 -0
  390. package/dist/client/components/ui/empty-state.mjs.map +1 -0
  391. package/dist/client/components/ui/field.d.mts +3 -0
  392. package/dist/client/components/ui/field.mjs +78 -0
  393. package/dist/client/components/ui/field.mjs.map +1 -0
  394. package/dist/client/components/ui/input-group.d.mts +4 -0
  395. package/dist/client/components/ui/input-group.mjs +68 -0
  396. package/dist/client/components/ui/input-group.mjs.map +1 -0
  397. package/dist/client/components/ui/input.d.mts +2 -0
  398. package/dist/client/components/ui/input.mjs +17 -0
  399. package/dist/client/components/ui/input.mjs.map +1 -0
  400. package/dist/client/components/ui/kbd.mjs +24 -0
  401. package/dist/client/components/ui/kbd.mjs.map +1 -0
  402. package/dist/client/components/ui/label.d.mts +2 -0
  403. package/dist/client/components/ui/label.mjs +15 -0
  404. package/dist/client/components/ui/label.mjs.map +1 -0
  405. package/dist/client/components/ui/popover.d.mts +3 -0
  406. package/dist/client/components/ui/popover.mjs +49 -0
  407. package/dist/client/components/ui/popover.mjs.map +1 -0
  408. package/dist/client/components/ui/responsive-dialog.mjs +102 -0
  409. package/dist/client/components/ui/responsive-dialog.mjs.map +1 -0
  410. package/dist/client/components/ui/scroll-area.d.mts +2 -0
  411. package/dist/client/components/ui/search-input.mjs +74 -0
  412. package/dist/client/components/ui/search-input.mjs.map +1 -0
  413. package/dist/client/components/ui/select.d.mts +3 -0
  414. package/dist/client/components/ui/select.mjs +85 -0
  415. package/dist/client/components/ui/select.mjs.map +1 -0
  416. package/dist/client/components/ui/separator.d.mts +2 -0
  417. package/dist/client/components/ui/separator.mjs +17 -0
  418. package/dist/client/components/ui/separator.mjs.map +1 -0
  419. package/dist/client/components/ui/sheet.d.mts +3 -0
  420. package/dist/client/components/ui/sheet.mjs +78 -0
  421. package/dist/client/components/ui/sheet.mjs.map +1 -0
  422. package/dist/client/components/ui/sidebar.d.mts +8 -0
  423. package/dist/client/components/ui/sidebar.mjs +256 -0
  424. package/dist/client/components/ui/sidebar.mjs.map +1 -0
  425. package/dist/client/components/ui/skeleton.d.mts +1 -0
  426. package/dist/client/components/ui/skeleton.mjs +15 -0
  427. package/dist/client/components/ui/skeleton.mjs.map +1 -0
  428. package/dist/client/components/ui/sonner.d.mts +14 -0
  429. package/dist/client/components/ui/sonner.d.mts.map +1 -0
  430. package/dist/client/components/ui/sonner.mjs +55 -0
  431. package/dist/client/components/ui/sonner.mjs.map +1 -0
  432. package/dist/client/components/ui/spinner.d.mts +1 -0
  433. package/dist/client/components/ui/spinner.mjs +18 -0
  434. package/dist/client/components/ui/spinner.mjs.map +1 -0
  435. package/dist/client/components/ui/switch.d.mts +2 -0
  436. package/dist/client/components/ui/switch.mjs +23 -0
  437. package/dist/client/components/ui/switch.mjs.map +1 -0
  438. package/dist/client/components/ui/table.d.mts +2 -0
  439. package/dist/client/components/ui/table.mjs +66 -0
  440. package/dist/client/components/ui/table.mjs.map +1 -0
  441. package/dist/client/components/ui/tabs.d.mts +3 -0
  442. package/dist/client/components/ui/tabs.mjs +49 -0
  443. package/dist/client/components/ui/tabs.mjs.map +1 -0
  444. package/dist/client/components/ui/textarea.d.mts +2 -0
  445. package/dist/client/components/ui/textarea.mjs +15 -0
  446. package/dist/client/components/ui/textarea.mjs.map +1 -0
  447. package/dist/client/components/ui/toolbar.mjs +54 -0
  448. package/dist/client/components/ui/toolbar.mjs.map +1 -0
  449. package/dist/client/components/ui/tooltip.d.mts +2 -0
  450. package/dist/client/components/ui/tooltip.mjs +45 -0
  451. package/dist/client/components/ui/tooltip.mjs.map +1 -0
  452. package/dist/client/components/widgets/chart-widget.d.mts +57 -0
  453. package/dist/client/components/widgets/chart-widget.d.mts.map +1 -0
  454. package/dist/client/components/widgets/chart-widget.mjs +282 -0
  455. package/dist/client/components/widgets/chart-widget.mjs.map +1 -0
  456. package/dist/client/components/widgets/progress-widget.d.mts +41 -0
  457. package/dist/client/components/widgets/progress-widget.d.mts.map +1 -0
  458. package/dist/client/components/widgets/progress-widget.mjs +110 -0
  459. package/dist/client/components/widgets/progress-widget.mjs.map +1 -0
  460. package/dist/client/components/widgets/quick-actions-widget.d.mts +29 -0
  461. package/dist/client/components/widgets/quick-actions-widget.d.mts.map +1 -0
  462. package/dist/client/components/widgets/quick-actions-widget.mjs +121 -0
  463. package/dist/client/components/widgets/quick-actions-widget.mjs.map +1 -0
  464. package/dist/client/components/widgets/recent-items-widget.d.mts +51 -0
  465. package/dist/client/components/widgets/recent-items-widget.d.mts.map +1 -0
  466. package/dist/client/components/widgets/recent-items-widget.mjs +101 -0
  467. package/dist/client/components/widgets/recent-items-widget.mjs.map +1 -0
  468. package/dist/client/components/widgets/stats-widget.d.mts +55 -0
  469. package/dist/client/components/widgets/stats-widget.d.mts.map +1 -0
  470. package/dist/client/components/widgets/stats-widget.mjs +150 -0
  471. package/dist/client/components/widgets/stats-widget.mjs.map +1 -0
  472. package/dist/client/components/widgets/table-widget.d.mts +31 -0
  473. package/dist/client/components/widgets/table-widget.d.mts.map +1 -0
  474. package/dist/client/components/widgets/table-widget.mjs +139 -0
  475. package/dist/client/components/widgets/table-widget.mjs.map +1 -0
  476. package/dist/client/components/widgets/timeline-widget.d.mts +51 -0
  477. package/dist/client/components/widgets/timeline-widget.d.mts.map +1 -0
  478. package/dist/client/components/widgets/timeline-widget.mjs +168 -0
  479. package/dist/client/components/widgets/timeline-widget.mjs.map +1 -0
  480. package/dist/client/components/widgets/value-widget.d.mts +39 -0
  481. package/dist/client/components/widgets/value-widget.d.mts.map +1 -0
  482. package/dist/client/components/widgets/value-widget.mjs +111 -0
  483. package/dist/client/components/widgets/value-widget.mjs.map +1 -0
  484. package/dist/client/components/widgets/widget-skeletons.mjs +145 -0
  485. package/dist/client/components/widgets/widget-skeletons.mjs.map +1 -0
  486. package/dist/client/context/focus-context.d.mts +88 -0
  487. package/dist/client/context/focus-context.d.mts.map +1 -0
  488. package/dist/client/context/focus-context.mjs +178 -0
  489. package/dist/client/context/focus-context.mjs.map +1 -0
  490. package/dist/client/contexts/breadcrumb-context.mjs +32 -0
  491. package/dist/client/contexts/breadcrumb-context.mjs.map +1 -0
  492. package/dist/client/hooks/typed-hooks.d.mts +84 -0
  493. package/dist/client/hooks/typed-hooks.d.mts.map +1 -0
  494. package/dist/client/hooks/typed-hooks.mjs +272 -0
  495. package/dist/client/hooks/typed-hooks.mjs.map +1 -0
  496. package/dist/client/hooks/use-action.mjs +201 -0
  497. package/dist/client/hooks/use-action.mjs.map +1 -0
  498. package/dist/client/hooks/use-admin-config.mjs +40 -0
  499. package/dist/client/hooks/use-admin-config.mjs.map +1 -0
  500. package/dist/client/hooks/use-admin-preferences.mjs +68 -0
  501. package/dist/client/hooks/use-admin-preferences.mjs.map +1 -0
  502. package/dist/client/hooks/use-admin-routes.mjs +97 -0
  503. package/dist/client/hooks/use-admin-routes.mjs.map +1 -0
  504. package/dist/client/hooks/use-auth.d.mts +98 -0
  505. package/dist/client/hooks/use-auth.d.mts.map +1 -0
  506. package/dist/{use-auth-BoLmWtmU.mjs → client/hooks/use-auth.mjs} +3 -3
  507. package/dist/client/hooks/use-auth.mjs.map +1 -0
  508. package/dist/client/hooks/use-collection-fields.mjs +32 -0
  509. package/dist/client/hooks/use-collection-fields.mjs.map +1 -0
  510. package/dist/client/hooks/use-collection-meta.mjs +121 -0
  511. package/dist/client/hooks/use-collection-meta.mjs.map +1 -0
  512. package/dist/client/hooks/use-collection-schema.mjs +67 -0
  513. package/dist/client/hooks/use-collection-schema.mjs.map +1 -0
  514. package/dist/client/hooks/use-collection-validation.mjs +74 -0
  515. package/dist/client/hooks/use-collection-validation.mjs.map +1 -0
  516. package/dist/client/hooks/use-collection.d.mts +86 -0
  517. package/dist/client/hooks/use-collection.d.mts.map +1 -0
  518. package/dist/client/hooks/use-collection.mjs +214 -0
  519. package/dist/client/hooks/use-collection.mjs.map +1 -0
  520. package/dist/client/hooks/use-current-user.d.mts +57 -0
  521. package/dist/client/hooks/use-current-user.d.mts.map +1 -0
  522. package/dist/client/hooks/use-current-user.mjs +79 -0
  523. package/dist/client/hooks/use-current-user.mjs.map +1 -0
  524. package/dist/client/hooks/use-field-hooks.mjs +191 -0
  525. package/dist/client/hooks/use-field-hooks.mjs.map +1 -0
  526. package/dist/client/hooks/use-field-options.d.mts +90 -0
  527. package/dist/client/hooks/use-field-options.d.mts.map +1 -0
  528. package/dist/client/hooks/use-field-options.mjs +184 -0
  529. package/dist/client/hooks/use-field-options.mjs.map +1 -0
  530. package/dist/client/hooks/use-global-fields.mjs +27 -0
  531. package/dist/client/hooks/use-global-fields.mjs.map +1 -0
  532. package/dist/client/hooks/use-global-meta.mjs +59 -0
  533. package/dist/client/hooks/use-global-meta.mjs.map +1 -0
  534. package/dist/client/hooks/use-global-schema.mjs +33 -0
  535. package/dist/client/hooks/use-global-schema.mjs.map +1 -0
  536. package/dist/client/hooks/use-global.d.mts +40 -0
  537. package/dist/client/hooks/use-global.d.mts.map +1 -0
  538. package/dist/client/hooks/use-global.mjs +74 -0
  539. package/dist/client/hooks/use-global.mjs.map +1 -0
  540. package/dist/client/hooks/use-locks.mjs +245 -0
  541. package/dist/client/hooks/use-locks.mjs.map +1 -0
  542. package/dist/client/hooks/use-media-query.d.mts +23 -0
  543. package/dist/client/hooks/use-media-query.d.mts.map +1 -0
  544. package/dist/client/hooks/use-media-query.mjs +62 -0
  545. package/dist/client/hooks/use-media-query.mjs.map +1 -0
  546. package/dist/client/hooks/use-prefill-params.mjs +47 -0
  547. package/dist/client/hooks/use-prefill-params.mjs.map +1 -0
  548. package/dist/client/hooks/use-questpie-query-options.mjs +28 -0
  549. package/dist/client/hooks/use-questpie-query-options.mjs.map +1 -0
  550. package/dist/client/hooks/use-reactive-fields.d.mts +75 -0
  551. package/dist/client/hooks/use-reactive-fields.d.mts.map +1 -0
  552. package/dist/client/hooks/use-reactive-fields.mjs +164 -0
  553. package/dist/client/hooks/use-reactive-fields.mjs.map +1 -0
  554. package/dist/client/hooks/use-realtime-highlight.mjs +96 -0
  555. package/dist/client/hooks/use-realtime-highlight.mjs.map +1 -0
  556. package/dist/client/hooks/use-saved-views.mjs +65 -0
  557. package/dist/client/hooks/use-saved-views.mjs.map +1 -0
  558. package/dist/client/hooks/use-search.mjs +147 -0
  559. package/dist/client/hooks/use-search.mjs.map +1 -0
  560. package/dist/client/hooks/use-server-validation.mjs +199 -0
  561. package/dist/client/hooks/use-server-validation.mjs.map +1 -0
  562. package/dist/client/hooks/use-server-widget-data.d.mts +26 -0
  563. package/dist/client/hooks/use-server-widget-data.d.mts.map +1 -0
  564. package/dist/client/hooks/use-server-widget-data.mjs +40 -0
  565. package/dist/client/hooks/use-server-widget-data.mjs.map +1 -0
  566. package/dist/client/hooks/use-setup-status.d.mts +39 -0
  567. package/dist/client/hooks/use-setup-status.d.mts.map +1 -0
  568. package/dist/client/hooks/use-setup-status.mjs +50 -0
  569. package/dist/client/hooks/use-setup-status.mjs.map +1 -0
  570. package/dist/client/hooks/use-upload-collection.mjs +32 -0
  571. package/dist/client/hooks/use-upload-collection.mjs.map +1 -0
  572. package/dist/client/hooks/use-upload.d.mts +23 -0
  573. package/dist/client/hooks/use-upload.d.mts.map +1 -0
  574. package/dist/client/hooks/use-upload.mjs +145 -0
  575. package/dist/client/hooks/use-upload.mjs.map +1 -0
  576. package/dist/client/hooks/use-validation-error-map.mjs +53 -0
  577. package/dist/client/hooks/use-validation-error-map.mjs.map +1 -0
  578. package/dist/client/hooks/use-view-state.mjs +261 -0
  579. package/dist/client/hooks/use-view-state.mjs.map +1 -0
  580. package/dist/client/i18n/hooks.mjs +160 -0
  581. package/dist/client/i18n/hooks.mjs.map +1 -0
  582. package/dist/client/i18n/intl-cache.mjs +65 -0
  583. package/dist/client/i18n/intl-cache.mjs.map +1 -0
  584. package/dist/client/i18n/messages.mjs +7 -0
  585. package/dist/client/i18n/messages.mjs.map +1 -0
  586. package/dist/client/i18n/simple.d.mts +22 -0
  587. package/dist/client/i18n/simple.d.mts.map +1 -0
  588. package/dist/client/i18n/simple.mjs +157 -0
  589. package/dist/client/i18n/simple.mjs.map +1 -0
  590. package/dist/client/i18n/types.d.mts +110 -0
  591. package/dist/client/i18n/types.d.mts.map +1 -0
  592. package/dist/client/lib/utils.d.mts +1 -0
  593. package/dist/client/lib/utils.mjs +28 -0
  594. package/dist/client/lib/utils.mjs.map +1 -0
  595. package/dist/client/preview/block-scope-context.d.mts +74 -0
  596. package/dist/client/preview/block-scope-context.d.mts.map +1 -0
  597. package/dist/client/preview/block-scope-context.mjs +93 -0
  598. package/dist/client/preview/block-scope-context.mjs.map +1 -0
  599. package/dist/client/preview/index.d.mts +5 -0
  600. package/dist/client/preview/preview-banner.d.mts +46 -0
  601. package/dist/client/preview/preview-banner.d.mts.map +1 -0
  602. package/dist/client/preview/preview-banner.mjs +95 -0
  603. package/dist/client/preview/preview-banner.mjs.map +1 -0
  604. package/dist/client/preview/preview-field.d.mts +108 -0
  605. package/dist/client/preview/preview-field.d.mts.map +1 -0
  606. package/dist/client/preview/preview-field.mjs +125 -0
  607. package/dist/client/preview/preview-field.mjs.map +1 -0
  608. package/dist/client/preview/types.d.mts +115 -0
  609. package/dist/client/preview/types.d.mts.map +1 -0
  610. package/dist/client/preview/types.mjs +21 -0
  611. package/dist/client/preview/types.mjs.map +1 -0
  612. package/dist/client/preview/use-collection-preview.d.mts +71 -0
  613. package/dist/client/preview/use-collection-preview.d.mts.map +1 -0
  614. package/dist/client/preview/use-collection-preview.mjs +114 -0
  615. package/dist/client/preview/use-collection-preview.mjs.map +1 -0
  616. package/dist/client/runtime/content-locales-provider.d.mts +1 -0
  617. package/dist/client/runtime/content-locales-provider.mjs +85 -0
  618. package/dist/client/runtime/content-locales-provider.mjs.map +1 -0
  619. package/dist/client/runtime/index.d.mts +7 -0
  620. package/dist/client/runtime/index.mjs +8 -0
  621. package/dist/client/runtime/locale-scope.d.mts +2 -0
  622. package/dist/{runtime-6VZM878K.mjs → client/runtime/locale-scope.mjs} +3 -4
  623. package/dist/client/runtime/locale-scope.mjs.map +1 -0
  624. package/dist/client/runtime/provider.d.mts +10107 -0
  625. package/dist/client/runtime/provider.d.mts.map +1 -0
  626. package/dist/client/runtime/provider.mjs +229 -0
  627. package/dist/client/runtime/provider.mjs.map +1 -0
  628. package/dist/client/runtime/routes.d.mts +49 -0
  629. package/dist/client/runtime/routes.d.mts.map +1 -0
  630. package/dist/client/runtime/routes.mjs +107 -0
  631. package/dist/client/runtime/routes.mjs.map +1 -0
  632. package/dist/client/runtime/translations-provider.d.mts +2 -0
  633. package/dist/client/runtime/translations-provider.mjs +181 -0
  634. package/dist/client/runtime/translations-provider.mjs.map +1 -0
  635. package/dist/client/scope/index.d.mts +3 -0
  636. package/dist/client/scope/picker.d.mts +54 -0
  637. package/dist/client/scope/picker.d.mts.map +1 -0
  638. package/dist/client/scope/picker.mjs +161 -0
  639. package/dist/client/scope/picker.mjs.map +1 -0
  640. package/dist/client/scope/provider.d.mts +104 -0
  641. package/dist/client/scope/provider.d.mts.map +1 -0
  642. package/dist/client/scope/provider.mjs +159 -0
  643. package/dist/client/scope/provider.mjs.map +1 -0
  644. package/dist/client/scope/types.d.mts +112 -0
  645. package/dist/client/scope/types.d.mts.map +1 -0
  646. package/dist/client/styles/index.css +80 -0
  647. package/dist/client/utils/auto-expand-fields.mjs +65 -0
  648. package/dist/client/utils/auto-expand-fields.mjs.map +1 -0
  649. package/dist/client/utils/build-field-definitions-from-schema.mjs +256 -0
  650. package/dist/client/utils/build-field-definitions-from-schema.mjs.map +1 -0
  651. package/dist/client/utils/detect-relations.mjs +46 -0
  652. package/dist/client/utils/detect-relations.mjs.map +1 -0
  653. package/dist/client/utils/locale-to-flag.d.mts +118 -0
  654. package/dist/client/utils/locale-to-flag.d.mts.map +1 -0
  655. package/dist/client/utils/locale-to-flag.mjs +130 -0
  656. package/dist/client/utils/locale-to-flag.mjs.map +1 -0
  657. package/dist/client/utils/routes.mjs +196 -0
  658. package/dist/client/utils/routes.mjs.map +1 -0
  659. package/dist/client/views/auth/accept-invite-form.d.mts +73 -0
  660. package/dist/client/views/auth/accept-invite-form.d.mts.map +1 -0
  661. package/dist/client/views/auth/accept-invite-form.mjs +180 -0
  662. package/dist/client/views/auth/accept-invite-form.mjs.map +1 -0
  663. package/dist/client/views/auth/auth-layout.d.mts +44 -0
  664. package/dist/client/views/auth/auth-layout.d.mts.map +1 -0
  665. package/dist/client/views/auth/auth-layout.mjs +53 -0
  666. package/dist/client/views/auth/auth-layout.mjs.map +1 -0
  667. package/dist/client/views/auth/forgot-password-form.d.mts +59 -0
  668. package/dist/client/views/auth/forgot-password-form.d.mts.map +1 -0
  669. package/dist/{forgot-password-page-Bcp-An4Y.mjs → client/views/auth/forgot-password-form.mjs} +22 -89
  670. package/dist/client/views/auth/forgot-password-form.mjs.map +1 -0
  671. package/dist/client/views/auth/index.d.mts +7 -0
  672. package/dist/client/views/auth/invite-form.d.mts +1 -0
  673. package/dist/client/views/auth/invite-form.mjs +155 -0
  674. package/dist/client/views/auth/invite-form.mjs.map +1 -0
  675. package/dist/client/views/auth/login-form.d.mts +76 -0
  676. package/dist/client/views/auth/login-form.d.mts.map +1 -0
  677. package/dist/client/views/auth/login-form.mjs +167 -0
  678. package/dist/client/views/auth/login-form.mjs.map +1 -0
  679. package/dist/client/views/auth/reset-password-form.d.mts +66 -0
  680. package/dist/client/views/auth/reset-password-form.d.mts.map +1 -0
  681. package/dist/client/views/auth/reset-password-form.mjs +188 -0
  682. package/dist/client/views/auth/reset-password-form.mjs.map +1 -0
  683. package/dist/client/views/auth/setup-form.d.mts +61 -0
  684. package/dist/client/views/auth/setup-form.d.mts.map +1 -0
  685. package/dist/{setup-page-YAP_fzqh.mjs → client/views/auth/setup-form.mjs} +46 -124
  686. package/dist/client/views/auth/setup-form.mjs.map +1 -0
  687. package/dist/client/views/collection/auto-form-fields.d.mts +4 -0
  688. package/dist/client/views/collection/auto-form-fields.mjs +453 -0
  689. package/dist/client/views/collection/auto-form-fields.mjs.map +1 -0
  690. package/dist/client/views/collection/bulk-action-toolbar.mjs +291 -0
  691. package/dist/client/views/collection/bulk-action-toolbar.mjs.map +1 -0
  692. package/dist/client/views/collection/cells/complex-cells.d.mts +46 -0
  693. package/dist/client/views/collection/cells/complex-cells.d.mts.map +1 -0
  694. package/dist/client/views/collection/cells/complex-cells.mjs +327 -0
  695. package/dist/client/views/collection/cells/complex-cells.mjs.map +1 -0
  696. package/dist/client/views/collection/cells/index.d.mts +7 -0
  697. package/dist/client/views/collection/cells/primitive-cells.d.mts +76 -0
  698. package/dist/client/views/collection/cells/primitive-cells.d.mts.map +1 -0
  699. package/dist/client/views/collection/cells/primitive-cells.mjs +165 -0
  700. package/dist/client/views/collection/cells/primitive-cells.mjs.map +1 -0
  701. package/dist/client/views/collection/cells/relation-cells.d.mts +21 -0
  702. package/dist/client/views/collection/cells/relation-cells.d.mts.map +1 -0
  703. package/dist/client/views/collection/cells/relation-cells.mjs +105 -0
  704. package/dist/client/views/collection/cells/relation-cells.mjs.map +1 -0
  705. package/dist/client/views/collection/cells/shared/asset-thumbnail.d.mts +1 -0
  706. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs +189 -0
  707. package/dist/client/views/collection/cells/shared/asset-thumbnail.mjs.map +1 -0
  708. package/dist/client/views/collection/cells/shared/cell-helpers.d.mts +2 -0
  709. package/dist/client/views/collection/cells/shared/cell-helpers.mjs +78 -0
  710. package/dist/client/views/collection/cells/shared/cell-helpers.mjs.map +1 -0
  711. package/dist/client/views/collection/cells/shared/relation-chip.d.mts +1 -0
  712. package/dist/client/views/collection/cells/shared/relation-chip.mjs +37 -0
  713. package/dist/client/views/collection/cells/shared/relation-chip.mjs.map +1 -0
  714. package/dist/client/views/collection/cells/upload-cells.d.mts +25 -0
  715. package/dist/client/views/collection/cells/upload-cells.d.mts.map +1 -0
  716. package/dist/client/views/collection/cells/upload-cells.mjs +20 -0
  717. package/dist/client/views/collection/cells/upload-cells.mjs.map +1 -0
  718. package/dist/client/views/collection/columns/build-columns.d.mts +2 -0
  719. package/dist/client/views/collection/columns/build-columns.mjs +156 -0
  720. package/dist/client/views/collection/columns/build-columns.mjs.map +1 -0
  721. package/dist/client/views/collection/columns/column-defaults.d.mts +2 -0
  722. package/dist/client/views/collection/columns/column-defaults.mjs +108 -0
  723. package/dist/client/views/collection/columns/column-defaults.mjs.map +1 -0
  724. package/dist/client/views/collection/columns/index.d.mts +3 -0
  725. package/dist/client/views/collection/columns/types.d.mts +2 -0
  726. package/dist/client/views/collection/field-context.mjs +127 -0
  727. package/dist/client/views/collection/field-context.mjs.map +1 -0
  728. package/dist/client/views/collection/field-renderer.mjs +171 -0
  729. package/dist/client/views/collection/field-renderer.mjs.map +1 -0
  730. package/dist/client/views/collection/form-view.d.mts +112 -0
  731. package/dist/client/views/collection/form-view.d.mts.map +1 -0
  732. package/dist/client/views/collection/form-view.mjs +903 -0
  733. package/dist/client/views/collection/form-view.mjs.map +1 -0
  734. package/dist/client/views/collection/index.d.mts +9 -0
  735. package/dist/client/views/collection/table-view.d.mts +102 -0
  736. package/dist/client/views/collection/table-view.d.mts.map +1 -0
  737. package/dist/client/views/collection/table-view.mjs +695 -0
  738. package/dist/client/views/collection/table-view.mjs.map +1 -0
  739. package/dist/client/views/collection/view-skeletons.mjs +121 -0
  740. package/dist/client/views/collection/view-skeletons.mjs.map +1 -0
  741. package/dist/client/views/common/global-search.d.mts +1 -0
  742. package/dist/client/views/common/global-search.mjs +376 -0
  743. package/dist/client/views/common/global-search.mjs.map +1 -0
  744. package/dist/client/views/common/index.d.mts +1 -0
  745. package/dist/client/views/dashboard/dashboard-grid.mjs +385 -0
  746. package/dist/client/views/dashboard/dashboard-grid.mjs.map +1 -0
  747. package/dist/client/views/dashboard/dashboard-widget.mjs +178 -0
  748. package/dist/client/views/dashboard/dashboard-widget.mjs.map +1 -0
  749. package/dist/client/views/dashboard/widget-card.mjs +159 -0
  750. package/dist/client/views/dashboard/widget-card.mjs.map +1 -0
  751. package/dist/client/views/globals/global-form-view.d.mts +74 -0
  752. package/dist/client/views/globals/global-form-view.d.mts.map +1 -0
  753. package/dist/client/views/globals/global-form-view.mjs +181 -0
  754. package/dist/client/views/globals/global-form-view.mjs.map +1 -0
  755. package/dist/client/views/index.d.mts +28 -0
  756. package/dist/client/views/layout/admin-layout-provider.d.mts +140 -0
  757. package/dist/client/views/layout/admin-layout-provider.d.mts.map +1 -0
  758. package/dist/client/views/layout/admin-layout-provider.mjs +90 -0
  759. package/dist/client/views/layout/admin-layout-provider.mjs.map +1 -0
  760. package/dist/client/views/layout/admin-layout.d.mts +151 -0
  761. package/dist/client/views/layout/admin-layout.d.mts.map +1 -0
  762. package/dist/client/views/layout/admin-layout.mjs +144 -0
  763. package/dist/client/views/layout/admin-layout.mjs.map +1 -0
  764. package/dist/client/views/layout/admin-root.d.mts +7 -0
  765. package/dist/client/views/layout/admin-router.d.mts +125 -0
  766. package/dist/client/views/layout/admin-router.d.mts.map +1 -0
  767. package/dist/client/views/layout/admin-router.mjs +594 -0
  768. package/dist/client/views/layout/admin-router.mjs.map +1 -0
  769. package/dist/client/views/layout/admin-sidebar.d.mts +105 -0
  770. package/dist/client/views/layout/admin-sidebar.d.mts.map +1 -0
  771. package/dist/client/views/layout/admin-sidebar.mjs +550 -0
  772. package/dist/client/views/layout/admin-sidebar.mjs.map +1 -0
  773. package/dist/client/views/layout/admin-topbar.mjs +128 -0
  774. package/dist/client/views/layout/admin-topbar.mjs.map +1 -0
  775. package/dist/client/views/layout/index.d.mts +5 -0
  776. package/dist/client/views/pages/accept-invite-page.d.mts +67 -0
  777. package/dist/client/views/pages/accept-invite-page.d.mts.map +1 -0
  778. package/dist/client/views/pages/accept-invite-page.mjs +143 -0
  779. package/dist/client/views/pages/accept-invite-page.mjs.map +1 -0
  780. package/dist/client/views/pages/dashboard-page.d.mts +52 -0
  781. package/dist/client/views/pages/dashboard-page.d.mts.map +1 -0
  782. package/dist/client/views/pages/dashboard-page.mjs +45 -0
  783. package/dist/client/views/pages/dashboard-page.mjs.map +1 -0
  784. package/dist/client/views/pages/forgot-password-page.d.mts +59 -0
  785. package/dist/client/views/pages/forgot-password-page.d.mts.map +1 -0
  786. package/dist/client/views/pages/forgot-password-page.mjs +80 -0
  787. package/dist/client/views/pages/forgot-password-page.mjs.map +1 -0
  788. package/dist/client/views/pages/index.d.mts +7 -0
  789. package/dist/client/views/pages/invite-page.d.mts +71 -0
  790. package/dist/client/views/pages/invite-page.d.mts.map +1 -0
  791. package/dist/client/views/pages/invite-page.mjs +86 -0
  792. package/dist/client/views/pages/invite-page.mjs.map +1 -0
  793. package/dist/client/views/pages/login-page.d.mts +76 -0
  794. package/dist/client/views/pages/login-page.d.mts.map +1 -0
  795. package/dist/client/views/pages/login-page.mjs +98 -0
  796. package/dist/client/views/pages/login-page.mjs.map +1 -0
  797. package/dist/client/views/pages/reset-password-page.d.mts +66 -0
  798. package/dist/client/views/pages/reset-password-page.d.mts.map +1 -0
  799. package/dist/client/views/pages/reset-password-page.mjs +105 -0
  800. package/dist/client/views/pages/reset-password-page.mjs.map +1 -0
  801. package/dist/client/views/pages/setup-page.d.mts +64 -0
  802. package/dist/client/views/pages/setup-page.d.mts.map +1 -0
  803. package/dist/client/views/pages/setup-page.mjs +91 -0
  804. package/dist/client/views/pages/setup-page.mjs.map +1 -0
  805. package/dist/client.d.mts +92 -3
  806. package/dist/client.d.mts.map +1 -0
  807. package/dist/client.mjs +54 -12
  808. package/dist/components/rich-text/index.d.mts +1 -0
  809. package/dist/components/rich-text/rich-text-renderer.d.mts +104 -0
  810. package/dist/components/rich-text/rich-text-renderer.d.mts.map +1 -0
  811. package/dist/components/rich-text/rich-text-renderer.mjs +210 -0
  812. package/dist/components/rich-text/rich-text-renderer.mjs.map +1 -0
  813. package/dist/index.d.mts +62 -3
  814. package/dist/index.mjs +54 -12
  815. package/dist/server/adapters/nextjs.d.mts +121 -0
  816. package/dist/server/adapters/nextjs.d.mts.map +1 -0
  817. package/dist/server/adapters/nextjs.mjs +111 -0
  818. package/dist/server/adapters/nextjs.mjs.map +1 -0
  819. package/dist/server/adapters/tanstack.d.mts +133 -0
  820. package/dist/server/adapters/tanstack.d.mts.map +1 -0
  821. package/dist/server/adapters/tanstack.mjs +90 -0
  822. package/dist/server/adapters/tanstack.mjs.map +1 -0
  823. package/dist/server/augmentation.d.mts +1523 -0
  824. package/dist/server/augmentation.d.mts.map +1 -0
  825. package/dist/server/auth-helpers.d.mts +143 -0
  826. package/dist/server/auth-helpers.d.mts.map +1 -0
  827. package/dist/server/auth-helpers.mjs +108 -0
  828. package/dist/server/auth-helpers.mjs.map +1 -0
  829. package/dist/server/block/block-builder.d.mts +319 -0
  830. package/dist/server/block/block-builder.d.mts.map +1 -0
  831. package/dist/server/block/block-builder.mjs +217 -0
  832. package/dist/server/block/block-builder.mjs.map +1 -0
  833. package/dist/server/block/index.d.mts +3 -0
  834. package/dist/server/block/introspection.d.mts +84 -0
  835. package/dist/server/block/introspection.d.mts.map +1 -0
  836. package/dist/server/block/introspection.mjs +89 -0
  837. package/dist/server/block/introspection.mjs.map +1 -0
  838. package/dist/server/block/prefetch.d.mts +78 -0
  839. package/dist/server/block/prefetch.d.mts.map +1 -0
  840. package/dist/server/block/prefetch.mjs +240 -0
  841. package/dist/server/block/prefetch.mjs.map +1 -0
  842. package/dist/server/fields/blocks.d.mts +139 -0
  843. package/dist/server/fields/blocks.d.mts.map +1 -0
  844. package/dist/server/fields/blocks.mjs +192 -0
  845. package/dist/server/fields/blocks.mjs.map +1 -0
  846. package/dist/server/fields/index.d.mts +48 -0
  847. package/dist/server/fields/index.d.mts.map +1 -0
  848. package/dist/server/fields/index.mjs +16 -0
  849. package/dist/server/fields/index.mjs.map +1 -0
  850. package/dist/server/fields/rich-text.d.mts +135 -0
  851. package/dist/server/fields/rich-text.d.mts.map +1 -0
  852. package/dist/server/fields/rich-text.mjs +188 -0
  853. package/dist/server/fields/rich-text.mjs.map +1 -0
  854. package/dist/server/i18n/index.d.mts +16 -0
  855. package/dist/server/i18n/index.d.mts.map +1 -0
  856. package/dist/server/i18n/index.mjs +44 -0
  857. package/dist/server/i18n/index.mjs.map +1 -0
  858. package/dist/server/i18n/messages/cs.mjs +461 -0
  859. package/dist/server/i18n/messages/cs.mjs.map +1 -0
  860. package/dist/server/i18n/messages/de.mjs +461 -0
  861. package/dist/server/i18n/messages/de.mjs.map +1 -0
  862. package/dist/server/i18n/messages/en.mjs +493 -0
  863. package/dist/server/i18n/messages/en.mjs.map +1 -0
  864. package/dist/server/i18n/messages/es.mjs +461 -0
  865. package/dist/server/i18n/messages/es.mjs.map +1 -0
  866. package/dist/server/i18n/messages/fr.mjs +461 -0
  867. package/dist/server/i18n/messages/fr.mjs.map +1 -0
  868. package/dist/server/i18n/messages/index.mjs +24 -0
  869. package/dist/server/i18n/messages/index.mjs.map +1 -0
  870. package/dist/server/i18n/messages/pl.mjs +461 -0
  871. package/dist/server/i18n/messages/pl.mjs.map +1 -0
  872. package/dist/server/i18n/messages/pt.mjs +464 -0
  873. package/dist/server/i18n/messages/pt.mjs.map +1 -0
  874. package/dist/server/i18n/messages/sk.mjs +490 -0
  875. package/dist/server/i18n/messages/sk.mjs.map +1 -0
  876. package/dist/server/index.d.mts +20 -0
  877. package/dist/server/modules/admin/functions/admin-config.mjs +348 -0
  878. package/dist/server/modules/admin/functions/admin-config.mjs.map +1 -0
  879. package/dist/server/modules/admin/functions/execute-action.d.mts +107 -0
  880. package/dist/server/modules/admin/functions/execute-action.d.mts.map +1 -0
  881. package/dist/server/modules/admin/functions/execute-action.mjs +331 -0
  882. package/dist/server/modules/admin/functions/execute-action.mjs.map +1 -0
  883. package/dist/server/modules/admin/functions/locales.mjs +80 -0
  884. package/dist/server/modules/admin/functions/locales.mjs.map +1 -0
  885. package/dist/server/modules/admin/functions/preview.d.mts +70 -0
  886. package/dist/server/modules/admin/functions/preview.d.mts.map +1 -0
  887. package/dist/server/modules/admin/functions/preview.mjs +243 -0
  888. package/dist/server/modules/admin/functions/preview.mjs.map +1 -0
  889. package/dist/server/modules/admin/functions/reactive.d.mts +99 -0
  890. package/dist/server/modules/admin/functions/reactive.d.mts.map +1 -0
  891. package/dist/server/modules/admin/functions/reactive.mjs +378 -0
  892. package/dist/server/modules/admin/functions/reactive.mjs.map +1 -0
  893. package/dist/server/modules/admin/functions/setup.d.mts +84 -0
  894. package/dist/server/modules/admin/functions/setup.d.mts.map +1 -0
  895. package/dist/server/modules/admin/functions/setup.mjs +131 -0
  896. package/dist/server/modules/admin/functions/setup.mjs.map +1 -0
  897. package/dist/server/modules/admin/functions/translations.mjs +125 -0
  898. package/dist/server/modules/admin/functions/translations.mjs.map +1 -0
  899. package/dist/server/modules/admin/functions/widget-data.d.mts +33 -0
  900. package/dist/server/modules/admin/functions/widget-data.d.mts.map +1 -0
  901. package/dist/server/modules/admin/functions/widget-data.mjs +70 -0
  902. package/dist/server/modules/admin/functions/widget-data.mjs.map +1 -0
  903. package/dist/server/modules/admin/index.d.mts +16879 -0
  904. package/dist/server/modules/admin/index.d.mts.map +1 -0
  905. package/dist/server/modules/admin/index.mjs +249 -0
  906. package/dist/server/modules/admin/index.mjs.map +1 -0
  907. package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.d.mts +3 -0
  908. package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.mjs +48 -0
  909. package/dist/server/modules/admin-preferences/collections/admin-preferences.collection.mjs.map +1 -0
  910. package/dist/server/modules/admin-preferences/collections/locks.collection.d.mts +3 -0
  911. package/dist/server/modules/admin-preferences/collections/locks.collection.mjs +79 -0
  912. package/dist/server/modules/admin-preferences/collections/locks.collection.mjs.map +1 -0
  913. package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts +1490 -0
  914. package/dist/server/modules/admin-preferences/collections/saved-views.collection.d.mts.map +1 -0
  915. package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs +57 -0
  916. package/dist/server/modules/admin-preferences/collections/saved-views.collection.mjs.map +1 -0
  917. package/dist/server/patch.d.mts +100 -0
  918. package/dist/server/patch.d.mts.map +1 -0
  919. package/dist/server/patch.mjs +1062 -0
  920. package/dist/server/patch.mjs.map +1 -0
  921. package/dist/server.d.mts +21 -250
  922. package/dist/server.mjs +19 -832
  923. package/dist/shared/preview-utils.d.mts +54 -0
  924. package/dist/shared/preview-utils.d.mts.map +1 -0
  925. package/dist/{preview-utils-BKQ9-TMa.mjs → shared/preview-utils.mjs} +2 -2
  926. package/dist/shared/preview-utils.mjs.map +1 -0
  927. package/dist/{saved-views.types-BMsz5mCy.d.mts → shared/types/saved-views.types.d.mts} +7 -2
  928. package/dist/shared/types/saved-views.types.d.mts.map +1 -0
  929. package/dist/shared.d.mts +3 -57
  930. package/dist/shared.mjs +1 -1
  931. package/package.json +12 -17
  932. package/dist/auth-layout-M8K8_q5R.mjs +0 -181
  933. package/dist/auth-layout-M8K8_q5R.mjs.map +0 -1
  934. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs +0 -273
  935. package/dist/bulk-upload-dialog-D7w7W1Hl.mjs.map +0 -1
  936. package/dist/client-B7r47hEd.d.mts +0 -13403
  937. package/dist/client-B7r47hEd.d.mts.map +0 -1
  938. package/dist/client-njX1rZmi.mjs +0 -22612
  939. package/dist/client-njX1rZmi.mjs.map +0 -1
  940. package/dist/content-locales-provider-BXvuIgfg.mjs +0 -1650
  941. package/dist/content-locales-provider-BXvuIgfg.mjs.map +0 -1
  942. package/dist/dashboard-page-B4PGEdc2.mjs +0 -2500
  943. package/dist/dashboard-page-B4PGEdc2.mjs.map +0 -1
  944. package/dist/dashboard-page-mCY0pgZv.mjs +0 -3
  945. package/dist/dropzone-Do3awXKd.mjs +0 -634
  946. package/dist/dropzone-Do3awXKd.mjs.map +0 -1
  947. package/dist/forgot-password-page-Bcp-An4Y.mjs.map +0 -1
  948. package/dist/forgot-password-page-CEwsdLwn.mjs +0 -3
  949. package/dist/index-BYyqkWtn.d.mts +0 -2753
  950. package/dist/index-BYyqkWtn.d.mts.map +0 -1
  951. package/dist/login-page-BUnpCbCa.mjs +0 -3
  952. package/dist/login-page-CP4gA-dl.mjs +0 -298
  953. package/dist/login-page-CP4gA-dl.mjs.map +0 -1
  954. package/dist/preview-utils-BKQ9-TMa.mjs.map +0 -1
  955. package/dist/reset-password-page-BqfDmLxA.mjs +0 -281
  956. package/dist/reset-password-page-BqfDmLxA.mjs.map +0 -1
  957. package/dist/reset-password-page-CufHz3h3.mjs +0 -3
  958. package/dist/runtime-6VZM878K.mjs.map +0 -1
  959. package/dist/saved-views.types-BMsz5mCy.d.mts.map +0 -1
  960. package/dist/server.d.mts.map +0 -1
  961. package/dist/server.mjs.map +0 -1
  962. package/dist/setup-page-BNNzt_Z6.mjs +0 -3
  963. package/dist/setup-page-YAP_fzqh.mjs.map +0 -1
  964. package/dist/shared.d.mts.map +0 -1
  965. package/dist/use-auth-BoLmWtmU.mjs.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { selectAdmin, useAdminStore } from "../runtime/provider.mjs";
2
+ import { createFormSchema } from "../builder/validation.mjs";
3
+ import { useCollectionFields } from "./use-collection-fields.mjs";
4
+ import { useValidationErrorMap } from "./use-validation-error-map.mjs";
5
+ import { useCallback, useMemo } from "react";
6
+
7
+ //#region src/client/hooks/use-collection-validation.ts
8
+ /**
9
+ * Get a ready-to-use resolver for react-hook-form
10
+ *
11
+ * This is the recommended hook - provides full automatic validation
12
+ * with i18n error messages. Just pass the result to useForm's resolver.
13
+ *
14
+ * @param collection - Collection name
15
+ * @returns Resolver function for react-hook-form, or undefined if collection not found
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * function MyForm() {
20
+ * const resolver = useCollectionValidation("posts");
21
+ *
22
+ * const form = useForm({
23
+ * resolver,
24
+ * });
25
+ *
26
+ * // That's it! Validation and i18n errors work automatically.
27
+ * }
28
+ * ```
29
+ */
30
+ function useCollectionValidation(collection) {
31
+ const admin = useAdminStore(selectAdmin);
32
+ const { fields } = useCollectionFields(collection);
33
+ const schema = useMemo(() => {
34
+ if (!admin) return void 0;
35
+ if (!fields || Object.keys(fields).length === 0) return void 0;
36
+ return createFormSchema(fields, admin.getFields());
37
+ }, [admin, fields]);
38
+ const errorMap = useValidationErrorMap();
39
+ const resolver = useCallback(async (values, _context, _options) => {
40
+ if (!schema) return {
41
+ values,
42
+ errors: {}
43
+ };
44
+ const result = schema.safeParse(values);
45
+ if (result.success) return {
46
+ values: result.data,
47
+ errors: {}
48
+ };
49
+ return {
50
+ values: {},
51
+ errors: zodErrorToFieldErrors(result.error, errorMap)
52
+ };
53
+ }, [schema, errorMap]);
54
+ return schema ? resolver : void 0;
55
+ }
56
+ /**
57
+ * Convert Zod error to react-hook-form FieldErrors format with i18n support
58
+ */
59
+ function zodErrorToFieldErrors(error, errorMap) {
60
+ const errors = {};
61
+ for (const issue of error.issues) {
62
+ const path = issue.path.join(".");
63
+ const { message } = errorMap(issue);
64
+ if (path && !errors[path]) errors[path] = {
65
+ type: issue.code,
66
+ message
67
+ };
68
+ }
69
+ return errors;
70
+ }
71
+
72
+ //#endregion
73
+ export { useCollectionValidation };
74
+ //# sourceMappingURL=use-collection-validation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collection-validation.mjs","names":["resolver: Resolver<TFieldValues>","errors: FieldErrors<FieldValues>"],"sources":["../../../src/client/hooks/use-collection-validation.ts"],"sourcesContent":["/**\n * useCollectionValidation Hook\n *\n * Creates a Zod validation schema from a collection's field definitions.\n * Provides automatic validation with i18n support for react-hook-form.\n */\n\nimport type { ZodErrorMapFn } from \"questpie/shared\";\nimport { useCallback, useMemo } from \"react\";\nimport type { FieldErrors, FieldValues, Resolver } from \"react-hook-form\";\nimport type { z } from \"zod\";\nimport { createFormSchema } from \"../builder/validation\";\nimport { selectAdmin, useAdminStore } from \"../runtime\";\nimport { useCollectionFields } from \"./use-collection-fields\";\nimport { useValidationErrorMap } from \"./use-validation-error-map\";\n\n/**\n * Result of useCollectionValidation hook\n */\nexport interface CollectionValidationResult {\n /** Zod schema for the collection's fields */\n schema: z.ZodTypeAny | undefined;\n /** Error map for i18n support */\n errorMap: ZodErrorMapFn;\n}\n\n/**\n * Get a ready-to-use resolver for react-hook-form\n *\n * This is the recommended hook - provides full automatic validation\n * with i18n error messages. Just pass the result to useForm's resolver.\n *\n * @param collection - Collection name\n * @returns Resolver function for react-hook-form, or undefined if collection not found\n *\n * @example\n * ```tsx\n * function MyForm() {\n * const resolver = useCollectionValidation(\"posts\");\n *\n * const form = useForm({\n * resolver,\n * });\n *\n * // That's it! Validation and i18n errors work automatically.\n * }\n * ```\n */\nexport function useCollectionValidation<\n TFieldValues extends FieldValues = FieldValues,\n>(collection: string): Resolver<TFieldValues> | undefined {\n const admin = useAdminStore(selectAdmin);\n const { fields } = useCollectionFields(collection);\n const schema = useMemo(() => {\n if (!admin) return undefined;\n if (!fields || Object.keys(fields).length === 0) return undefined;\n return createFormSchema(fields, admin.getFields());\n }, [admin, fields]);\n const errorMap = useValidationErrorMap();\n\n const resolver: Resolver<TFieldValues> = useCallback(\n async (values, _context, _options) => {\n if (!schema) {\n return {\n values: values as TFieldValues,\n errors: {} as Record<string, never>,\n };\n }\n\n const result = schema.safeParse(values);\n\n if (result.success) {\n return {\n values: result.data as TFieldValues,\n errors: {} as Record<string, never>,\n };\n }\n\n return {\n values: {} as Record<string, never>,\n errors: zodErrorToFieldErrors(\n result.error,\n errorMap,\n ) as FieldErrors<TFieldValues>,\n };\n },\n [schema, errorMap],\n );\n\n return schema ? resolver : undefined;\n}\n\n/**\n * Convert Zod error to react-hook-form FieldErrors format with i18n support\n */\nfunction zodErrorToFieldErrors(\n error: z.ZodError,\n errorMap: ZodErrorMapFn,\n): FieldErrors<FieldValues> {\n const errors: FieldErrors<FieldValues> = {};\n\n for (const issue of error.issues) {\n const path = issue.path.join(\".\");\n // Apply i18n error map to get translated message\n const { message } = errorMap(issue as Parameters<ZodErrorMapFn>[0]);\n\n if (path && !errors[path]) {\n errors[path] = {\n type: issue.code,\n message,\n };\n }\n }\n\n return errors;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,wBAEd,YAAwD;CACxD,MAAM,QAAQ,cAAc,YAAY;CACxC,MAAM,EAAE,WAAW,oBAAoB,WAAW;CAClD,MAAM,SAAS,cAAc;AAC3B,MAAI,CAAC,MAAO,QAAO;AACnB,MAAI,CAAC,UAAU,OAAO,KAAK,OAAO,CAAC,WAAW,EAAG,QAAO;AACxD,SAAO,iBAAiB,QAAQ,MAAM,WAAW,CAAC;IACjD,CAAC,OAAO,OAAO,CAAC;CACnB,MAAM,WAAW,uBAAuB;CAExC,MAAMA,WAAmC,YACvC,OAAO,QAAQ,UAAU,aAAa;AACpC,MAAI,CAAC,OACH,QAAO;GACG;GACR,QAAQ,EAAE;GACX;EAGH,MAAM,SAAS,OAAO,UAAU,OAAO;AAEvC,MAAI,OAAO,QACT,QAAO;GACL,QAAQ,OAAO;GACf,QAAQ,EAAE;GACX;AAGH,SAAO;GACL,QAAQ,EAAE;GACV,QAAQ,sBACN,OAAO,OACP,SACD;GACF;IAEH,CAAC,QAAQ,SAAS,CACnB;AAED,QAAO,SAAS,WAAW;;;;;AAM7B,SAAS,sBACP,OACA,UAC0B;CAC1B,MAAMC,SAAmC,EAAE;AAE3C,MAAK,MAAM,SAAS,MAAM,QAAQ;EAChC,MAAM,OAAO,MAAM,KAAK,KAAK,IAAI;EAEjC,MAAM,EAAE,YAAY,SAAS,MAAsC;AAEnE,MAAI,QAAQ,CAAC,OAAO,MAClB,QAAO,QAAQ;GACb,MAAM,MAAM;GACZ;GACD;;AAIL,QAAO"}
@@ -0,0 +1,86 @@
1
+ import { RegisteredCMS, RegisteredCollectionNames } from "../builder/registry.mjs";
2
+ import { UseMutationOptions, UseQueryOptions } from "@tanstack/react-query";
3
+ import { QuestpieClient } from "questpie/client";
4
+ import { Questpie } from "questpie";
5
+
6
+ //#region src/client/hooks/use-collection.d.ts
7
+ type CollectionRealtimeOptions = {
8
+ realtime?: boolean;
9
+ };
10
+ /**
11
+ * Resolved CMS type (Questpie<any> if not registered)
12
+ */
13
+ type ResolvedCMS = RegisteredCMS extends Questpie<any> ? RegisteredCMS : Questpie<any>;
14
+ /**
15
+ * Resolved collection names (string if not registered)
16
+ */
17
+ type ResolvedCollectionNames = RegisteredCMS extends Questpie<any> ? RegisteredCollectionNames : string;
18
+ /**
19
+ * Hook to fetch collection list with filters, sorting, pagination
20
+ *
21
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // Types inferred from module augmentation!
26
+ * const { data } = useCollectionList("barbers");
27
+ * ```
28
+ */
29
+ declare function useCollectionList<K extends ResolvedCollectionNames>(collection: K, options?: any, queryOptions?: Omit<UseQueryOptions, "queryKey" | "queryFn">, realtimeOptions?: CollectionRealtimeOptions): any;
30
+ /**
31
+ * Hook to fetch single collection item
32
+ *
33
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Types inferred from module augmentation!
38
+ * const { data } = useCollectionItem("barbers", "123");
39
+ * ```
40
+ */
41
+ declare function useCollectionItem<K extends ResolvedCollectionNames>(collection: K, id: string, options?: Omit<Parameters<QuestpieClient<ResolvedCMS>["collections"][K & string]["findOne"]>[0], "where"> & {
42
+ localeFallback?: boolean;
43
+ with?: Record<string, boolean>;
44
+ }, queryOptions?: Omit<UseQueryOptions, "queryKey" | "queryFn">): any;
45
+ /**
46
+ * Hook to create collection item
47
+ *
48
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
49
+ *
50
+ * @example
51
+ * ```tsx
52
+ * // Types inferred from module augmentation!
53
+ * const { mutate } = useCollectionCreate("barbers");
54
+ * mutate({ name: "John", ... });
55
+ * ```
56
+ */
57
+ declare function useCollectionCreate<K extends ResolvedCollectionNames>(collection: K, mutationOptions?: Omit<UseMutationOptions, "mutationFn">): any;
58
+ /**
59
+ * Hook to update collection item
60
+ *
61
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
62
+ *
63
+ * @example
64
+ * ```tsx
65
+ * // Types inferred from module augmentation!
66
+ * const { mutate } = useCollectionUpdate("barbers");
67
+ * mutate({ id: "123", data: { name: "John" } });
68
+ * ```
69
+ */
70
+ declare function useCollectionUpdate<K extends ResolvedCollectionNames>(collection: K, mutationOptions?: Omit<UseMutationOptions, "mutationFn">): any;
71
+ /**
72
+ * Hook to delete collection item
73
+ *
74
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
75
+ *
76
+ * @example
77
+ * ```tsx
78
+ * // Types inferred from module augmentation!
79
+ * const { mutate } = useCollectionDelete("barbers");
80
+ * mutate("123");
81
+ * ```
82
+ */
83
+ declare function useCollectionDelete<K extends ResolvedCollectionNames>(collection: K, mutationOptions?: Omit<UseMutationOptions, "mutationFn">): any;
84
+ //#endregion
85
+ export { useCollectionCreate, useCollectionDelete, useCollectionItem, useCollectionList, useCollectionUpdate };
86
+ //# sourceMappingURL=use-collection.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collection.d.mts","names":[],"sources":["../../../src/client/hooks/use-collection.ts"],"sourcesContent":[],"mappings":";;;;;;KAcK,yBAAA;;AAHwB,CAAA;AAGC;;;KAWzB,WAAA,GACJ,aAAsC,SAAhB,QAAgB,CAAA,GAAA,CAAA,GAAA,aAAA,GAAgB,QAAhB,CAAA,GAAA,CAAA;;;AAAwB;KAK1D,uBAAA,GACJ,aAAA,SAAsB,QAAtB,CAAA,GAAA,CAAA,GAAsC,yBAAtC,GAAA,MAAA;;;;AAiBD;;;;;;;AA+EA;AAA4C,iBA/E5B,iBA+E4B,CAAA,UA/EA,uBA+EA,CAAA,CAAA,UAAA,EA9E/B,CA8E+B,EAAA,OAAA,CAAA,EAAA,GAAA,EAAA,YAAA,CAAA,EA5E5B,IA4E4B,CA5EvB,eA4EuB,EAAA,UAAA,GAAA,SAAA,CAAA,EAAA,eAAA,CAAA,EA3EzB,yBA2EyB,CAAA,EAAA,GAAA;;AAmJ5C;;;;;;;;;;iBAnJgB,4BAA4B,qCAC/B,yBAEF,KACT,WACC,eAAe,4BAA4B;;SAKrC;kBAEO,KAAK;;;;;;;;;;;;;iBA0BL,8BAA8B,qCACjC,qBACM,KAAK;;;;;;;;;;;;;iBAgDR,8BAA8B,qCACjC,qBACM,KAAK;;;;;;;;;;;;;iBAyDR,8BAA8B,qCACjC,qBACM,KAAK"}
@@ -0,0 +1,214 @@
1
+ import { useQuestpieQueryOptions } from "./use-questpie-query-options.mjs";
2
+ import { useMutation, useQuery } from "@tanstack/react-query";
3
+
4
+ //#region src/client/hooks/use-collection.ts
5
+ /**
6
+ * Hook to fetch collection list with filters, sorting, pagination
7
+ *
8
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * // Types inferred from module augmentation!
13
+ * const { data } = useCollectionList("barbers");
14
+ * ```
15
+ */
16
+ function useCollectionList(collection, options, queryOptions, realtimeOptions) {
17
+ const { queryOpts, locale } = useQuestpieQueryOptions();
18
+ const findOptions = {
19
+ ...options,
20
+ locale
21
+ };
22
+ return useQuery({
23
+ ...queryOpts.collections[collection].find(findOptions, { realtime: realtimeOptions?.realtime }),
24
+ ...queryOptions
25
+ });
26
+ }
27
+ /**
28
+ * Hook to count collection items with optional filters
29
+ *
30
+ * More efficient than useCollectionList when you only need the count.
31
+ * Uses dedicated count endpoint that doesn't fetch actual documents.
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * // Count all items
36
+ * const { data: count } = useCollectionCount("barbers");
37
+ *
38
+ * // Count with filter
39
+ * const { data: count } = useCollectionCount("appointments", {
40
+ * where: { status: "pending" }
41
+ * });
42
+ * ```
43
+ */
44
+ function useCollectionCount(collection, options, queryOptions, realtimeOptions) {
45
+ const { queryOpts, locale } = useQuestpieQueryOptions();
46
+ const countOptions = {
47
+ ...options,
48
+ locale
49
+ };
50
+ return useQuery({
51
+ ...queryOpts.collections[collection].count(countOptions, { realtime: realtimeOptions?.realtime }),
52
+ ...queryOptions
53
+ });
54
+ }
55
+ /**
56
+ * Hook to fetch single collection item
57
+ *
58
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
59
+ *
60
+ * @example
61
+ * ```tsx
62
+ * // Types inferred from module augmentation!
63
+ * const { data } = useCollectionItem("barbers", "123");
64
+ * ```
65
+ */
66
+ function useCollectionItem(collection, id, options, queryOptions) {
67
+ const { queryOpts, locale } = useQuestpieQueryOptions();
68
+ return useQuery({
69
+ ...queryOpts.collections[collection].findOne({
70
+ where: { id },
71
+ locale,
72
+ ...options
73
+ }),
74
+ ...queryOptions
75
+ });
76
+ }
77
+ /**
78
+ * Hook to create collection item
79
+ *
80
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
81
+ *
82
+ * @example
83
+ * ```tsx
84
+ * // Types inferred from module augmentation!
85
+ * const { mutate } = useCollectionCreate("barbers");
86
+ * mutate({ name: "John", ... });
87
+ * ```
88
+ */
89
+ function useCollectionCreate(collection, mutationOptions) {
90
+ const { queryOpts, queryClient, locale } = useQuestpieQueryOptions();
91
+ const baseOptions = queryOpts.collections[collection].create();
92
+ const listQueryKey = queryOpts.key([
93
+ "collections",
94
+ collection,
95
+ "find",
96
+ locale
97
+ ]);
98
+ const countQueryKey = queryOpts.key([
99
+ "collections",
100
+ collection,
101
+ "count",
102
+ locale
103
+ ]);
104
+ return useMutation({
105
+ ...baseOptions,
106
+ onSuccess: (data, variables, context) => {
107
+ (mutationOptions?.onSuccess)?.(data, variables, context);
108
+ },
109
+ onSettled: (data, error, variables, context) => {
110
+ queryClient.invalidateQueries({ queryKey: listQueryKey });
111
+ queryClient.invalidateQueries({ queryKey: countQueryKey });
112
+ (mutationOptions?.onSettled)?.(data, error, variables, context);
113
+ },
114
+ ...mutationOptions
115
+ });
116
+ }
117
+ /**
118
+ * Hook to update collection item
119
+ *
120
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
121
+ *
122
+ * @example
123
+ * ```tsx
124
+ * // Types inferred from module augmentation!
125
+ * const { mutate } = useCollectionUpdate("barbers");
126
+ * mutate({ id: "123", data: { name: "John" } });
127
+ * ```
128
+ */
129
+ function useCollectionUpdate(collection, mutationOptions) {
130
+ const { queryOpts, queryClient, locale } = useQuestpieQueryOptions();
131
+ const baseOptions = queryOpts.collections[collection].update();
132
+ const listQueryKey = queryOpts.key([
133
+ "collections",
134
+ collection,
135
+ "find",
136
+ locale
137
+ ]);
138
+ const countQueryKey = queryOpts.key([
139
+ "collections",
140
+ collection,
141
+ "count",
142
+ locale
143
+ ]);
144
+ const itemQueryKey = queryOpts.key([
145
+ "collections",
146
+ collection,
147
+ "findOne",
148
+ locale
149
+ ]);
150
+ return useMutation({
151
+ ...baseOptions,
152
+ onSuccess: (data, variables, context) => {
153
+ (mutationOptions?.onSuccess)?.(data, variables, context);
154
+ },
155
+ onSettled: (data, error, variables, context) => {
156
+ queryClient.invalidateQueries({ queryKey: listQueryKey });
157
+ queryClient.invalidateQueries({ queryKey: countQueryKey });
158
+ queryClient.invalidateQueries({ queryKey: itemQueryKey });
159
+ (mutationOptions?.onSettled)?.(data, error, variables, context);
160
+ },
161
+ ...mutationOptions
162
+ });
163
+ }
164
+ /**
165
+ * Hook to delete collection item
166
+ *
167
+ * Uses RegisteredCMS from module augmentation for automatic type inference.
168
+ *
169
+ * @example
170
+ * ```tsx
171
+ * // Types inferred from module augmentation!
172
+ * const { mutate } = useCollectionDelete("barbers");
173
+ * mutate("123");
174
+ * ```
175
+ */
176
+ function useCollectionDelete(collection, mutationOptions) {
177
+ const { queryOpts, queryClient, locale } = useQuestpieQueryOptions();
178
+ const baseOptions = queryOpts.collections[collection].delete();
179
+ const listQueryKey = queryOpts.key([
180
+ "collections",
181
+ collection,
182
+ "find",
183
+ locale
184
+ ]);
185
+ const countQueryKey = queryOpts.key([
186
+ "collections",
187
+ collection,
188
+ "count",
189
+ locale
190
+ ]);
191
+ const itemQueryKey = queryOpts.key([
192
+ "collections",
193
+ collection,
194
+ "findOne",
195
+ locale
196
+ ]);
197
+ return useMutation({
198
+ ...baseOptions,
199
+ onSuccess: (data, variables, context) => {
200
+ (mutationOptions?.onSuccess)?.(data, variables, context);
201
+ },
202
+ onSettled: (data, error, variables, context) => {
203
+ queryClient.invalidateQueries({ queryKey: listQueryKey });
204
+ queryClient.invalidateQueries({ queryKey: countQueryKey });
205
+ queryClient.invalidateQueries({ queryKey: itemQueryKey });
206
+ (mutationOptions?.onSettled)?.(data, error, variables, context);
207
+ },
208
+ ...mutationOptions
209
+ });
210
+ }
211
+
212
+ //#endregion
213
+ export { useCollectionCount, useCollectionCreate, useCollectionDelete, useCollectionItem, useCollectionList, useCollectionUpdate };
214
+ //# sourceMappingURL=use-collection.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collection.mjs","names":[],"sources":["../../../src/client/hooks/use-collection.ts"],"sourcesContent":["import {\n\ttype UseMutationOptions,\n\ttype UseQueryOptions,\n\tuseMutation,\n\tuseQuery,\n} from \"@tanstack/react-query\";\nimport type { Questpie } from \"questpie\";\nimport type { QuestpieClient } from \"questpie/client\";\nimport type {\n\tRegisteredCMS,\n\tRegisteredCollectionNames,\n} from \"../builder/registry\";\nimport { useQuestpieQueryOptions } from \"./use-questpie-query-options\";\n\ntype CollectionRealtimeOptions = {\n\trealtime?: boolean;\n};\n\n// ============================================================================\n// Type Helpers\n// ============================================================================\n\n/**\n * Resolved CMS type (Questpie<any> if not registered)\n */\ntype ResolvedCMS =\n\tRegisteredCMS extends Questpie<any> ? RegisteredCMS : Questpie<any>;\n\n/**\n * Resolved collection names (string if not registered)\n */\ntype ResolvedCollectionNames =\n\tRegisteredCMS extends Questpie<any> ? RegisteredCollectionNames : string;\n\n// ============================================================================\n// Collection Hooks\n// ============================================================================\n\n/**\n * Hook to fetch collection list with filters, sorting, pagination\n *\n * Uses RegisteredCMS from module augmentation for automatic type inference.\n *\n * @example\n * ```tsx\n * // Types inferred from module augmentation!\n * const { data } = useCollectionList(\"barbers\");\n * ```\n */\nexport function useCollectionList<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\toptions?: any,\n\tqueryOptions?: Omit<UseQueryOptions, \"queryKey\" | \"queryFn\">,\n\trealtimeOptions?: CollectionRealtimeOptions,\n): any {\n\tconst { queryOpts, locale } = useQuestpieQueryOptions();\n\n\tconst findOptions = {\n\t\t...options,\n\t\tlocale,\n\t};\n\n\t// Pass realtime option to query options builder - this uses streamedQuery internally\n\tconst baseQuery = (queryOpts as any).collections[collection as string].find(\n\t\tfindOptions as any,\n\t\t{ realtime: realtimeOptions?.realtime },\n\t);\n\n\treturn useQuery({\n\t\t...baseQuery,\n\t\t...queryOptions,\n\t});\n}\n\n/**\n * Hook to count collection items with optional filters\n *\n * More efficient than useCollectionList when you only need the count.\n * Uses dedicated count endpoint that doesn't fetch actual documents.\n *\n * @example\n * ```tsx\n * // Count all items\n * const { data: count } = useCollectionCount(\"barbers\");\n *\n * // Count with filter\n * const { data: count } = useCollectionCount(\"appointments\", {\n * where: { status: \"pending\" }\n * });\n * ```\n */\nexport function useCollectionCount<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\toptions?: { where?: any; includeDeleted?: boolean },\n\tqueryOptions?: Omit<UseQueryOptions, \"queryKey\" | \"queryFn\">,\n\trealtimeOptions?: CollectionRealtimeOptions,\n): any {\n\tconst { queryOpts, locale } = useQuestpieQueryOptions();\n\n\tconst countOptions = {\n\t\t...options,\n\t\tlocale,\n\t};\n\n\t// Pass realtime option to query options builder - this uses streamedQuery internally\n\t// The reducer in tanstack-query already extracts totalDocs from the snapshot\n\tconst baseQuery = (queryOpts as any).collections[collection as string].count(\n\t\tcountOptions as any,\n\t\t{ realtime: realtimeOptions?.realtime },\n\t);\n\n\treturn useQuery({\n\t\t...baseQuery,\n\t\t...queryOptions,\n\t});\n}\n\n/**\n * Hook to fetch single collection item\n *\n * Uses RegisteredCMS from module augmentation for automatic type inference.\n *\n * @example\n * ```tsx\n * // Types inferred from module augmentation!\n * const { data } = useCollectionItem(\"barbers\", \"123\");\n * ```\n */\nexport function useCollectionItem<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\tid: string,\n\toptions?: Omit<\n\t\tParameters<\n\t\t\tQuestpieClient<ResolvedCMS>[\"collections\"][K & string][\"findOne\"]\n\t\t>[0],\n\t\t\"where\"\n\t> & {\n\t\tlocaleFallback?: boolean;\n\t\twith?: Record<string, boolean>;\n\t},\n\tqueryOptions?: Omit<UseQueryOptions, \"queryKey\" | \"queryFn\">,\n): any {\n\tconst { queryOpts, locale } = useQuestpieQueryOptions();\n\n\treturn useQuery({\n\t\t...(queryOpts as any).collections[collection as string].findOne({\n\t\t\twhere: { id },\n\t\t\tlocale,\n\t\t\t...options,\n\t\t}),\n\t\t...queryOptions,\n\t});\n}\n\n/**\n * Hook to create collection item\n *\n * Uses RegisteredCMS from module augmentation for automatic type inference.\n *\n * @example\n * ```tsx\n * // Types inferred from module augmentation!\n * const { mutate } = useCollectionCreate(\"barbers\");\n * mutate({ name: \"John\", ... });\n * ```\n */\nexport function useCollectionCreate<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\tmutationOptions?: Omit<UseMutationOptions, \"mutationFn\">,\n): any {\n\tconst { queryOpts, queryClient, locale } = useQuestpieQueryOptions();\n\n\tconst baseOptions = queryOpts.collections[collection as string].create();\n\tconst listQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"find\",\n\t\tlocale,\n\t]);\n\tconst countQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"count\",\n\t\tlocale,\n\t]);\n\n\treturn useMutation({\n\t\t...baseOptions,\n\t\tonSuccess: (data: any, variables: any, context: any) => {\n\t\t\t(mutationOptions?.onSuccess as any)?.(data, variables, context);\n\t\t},\n\t\tonSettled: (data: any, error: any, variables: any, context: any) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: listQueryKey,\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: countQueryKey,\n\t\t\t});\n\t\t\t(mutationOptions?.onSettled as any)?.(data, error, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t} as any);\n}\n\n/**\n * Hook to update collection item\n *\n * Uses RegisteredCMS from module augmentation for automatic type inference.\n *\n * @example\n * ```tsx\n * // Types inferred from module augmentation!\n * const { mutate } = useCollectionUpdate(\"barbers\");\n * mutate({ id: \"123\", data: { name: \"John\" } });\n * ```\n */\nexport function useCollectionUpdate<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\tmutationOptions?: Omit<UseMutationOptions, \"mutationFn\">,\n): any {\n\tconst { queryOpts, queryClient, locale } = useQuestpieQueryOptions();\n\n\tconst baseOptions = queryOpts.collections[collection as string].update();\n\tconst listQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"find\",\n\t\tlocale,\n\t]);\n\tconst countQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"count\",\n\t\tlocale,\n\t]);\n\tconst itemQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"findOne\",\n\t\tlocale,\n\t]);\n\n\treturn useMutation({\n\t\t...baseOptions,\n\t\tonSuccess: (data: any, variables: any, context: any) => {\n\t\t\t(mutationOptions?.onSuccess as any)?.(data, variables, context);\n\t\t},\n\t\tonSettled: (data: any, error: any, variables: any, context: any) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: listQueryKey,\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: countQueryKey,\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: itemQueryKey,\n\t\t\t});\n\t\t\t(mutationOptions?.onSettled as any)?.(data, error, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t} as any);\n}\n\n/**\n * Hook to delete collection item\n *\n * Uses RegisteredCMS from module augmentation for automatic type inference.\n *\n * @example\n * ```tsx\n * // Types inferred from module augmentation!\n * const { mutate } = useCollectionDelete(\"barbers\");\n * mutate(\"123\");\n * ```\n */\nexport function useCollectionDelete<K extends ResolvedCollectionNames>(\n\tcollection: K,\n\tmutationOptions?: Omit<UseMutationOptions, \"mutationFn\">,\n): any {\n\tconst { queryOpts, queryClient, locale } = useQuestpieQueryOptions();\n\n\tconst baseOptions = queryOpts.collections[collection as string].delete();\n\tconst listQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"find\",\n\t\tlocale,\n\t]);\n\tconst countQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"count\",\n\t\tlocale,\n\t]);\n\tconst itemQueryKey = queryOpts.key([\n\t\t\"collections\",\n\t\tcollection as string,\n\t\t\"findOne\",\n\t\tlocale,\n\t]);\n\n\treturn useMutation({\n\t\t...baseOptions,\n\t\tonSuccess: (data: any, variables: any, context: any) => {\n\t\t\t(mutationOptions?.onSuccess as any)?.(data, variables, context);\n\t\t},\n\t\tonSettled: (data: any, error: any, variables: any, context: any) => {\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: listQueryKey,\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: countQueryKey,\n\t\t\t});\n\t\t\tqueryClient.invalidateQueries({\n\t\t\t\tqueryKey: itemQueryKey,\n\t\t\t});\n\t\t\t(mutationOptions?.onSettled as any)?.(data, error, variables, context);\n\t\t},\n\t\t...mutationOptions,\n\t} as any);\n}\n"],"mappings":";;;;;;;;;;;;;;;AAiDA,SAAgB,kBACf,YACA,SACA,cACA,iBACM;CACN,MAAM,EAAE,WAAW,WAAW,yBAAyB;CAEvD,MAAM,cAAc;EACnB,GAAG;EACH;EACA;AAQD,QAAO,SAAS;EACf,GANkB,UAAkB,YAAY,YAAsB,KACtE,aACA,EAAE,UAAU,iBAAiB,UAAU,CACvC;EAIA,GAAG;EACH,CAAC;;;;;;;;;;;;;;;;;;;AAoBH,SAAgB,mBACf,YACA,SACA,cACA,iBACM;CACN,MAAM,EAAE,WAAW,WAAW,yBAAyB;CAEvD,MAAM,eAAe;EACpB,GAAG;EACH;EACA;AASD,QAAO,SAAS;EACf,GANkB,UAAkB,YAAY,YAAsB,MACtE,cACA,EAAE,UAAU,iBAAiB,UAAU,CACvC;EAIA,GAAG;EACH,CAAC;;;;;;;;;;;;;AAcH,SAAgB,kBACf,YACA,IACA,SASA,cACM;CACN,MAAM,EAAE,WAAW,WAAW,yBAAyB;AAEvD,QAAO,SAAS;EACf,GAAI,UAAkB,YAAY,YAAsB,QAAQ;GAC/D,OAAO,EAAE,IAAI;GACb;GACA,GAAG;GACH,CAAC;EACF,GAAG;EACH,CAAC;;;;;;;;;;;;;;AAeH,SAAgB,oBACf,YACA,iBACM;CACN,MAAM,EAAE,WAAW,aAAa,WAAW,yBAAyB;CAEpE,MAAM,cAAc,UAAU,YAAY,YAAsB,QAAQ;CACxE,MAAM,eAAe,UAAU,IAAI;EAClC;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,gBAAgB,UAAU,IAAI;EACnC;EACA;EACA;EACA;EACA,CAAC;AAEF,QAAO,YAAY;EAClB,GAAG;EACH,YAAY,MAAW,WAAgB,YAAiB;AACvD,IAAC,iBAAiB,aAAoB,MAAM,WAAW,QAAQ;;EAEhE,YAAY,MAAW,OAAY,WAAgB,YAAiB;AACnE,eAAY,kBAAkB,EAC7B,UAAU,cACV,CAAC;AACF,eAAY,kBAAkB,EAC7B,UAAU,eACV,CAAC;AACF,IAAC,iBAAiB,aAAoB,MAAM,OAAO,WAAW,QAAQ;;EAEvE,GAAG;EACH,CAAQ;;;;;;;;;;;;;;AAeV,SAAgB,oBACf,YACA,iBACM;CACN,MAAM,EAAE,WAAW,aAAa,WAAW,yBAAyB;CAEpE,MAAM,cAAc,UAAU,YAAY,YAAsB,QAAQ;CACxE,MAAM,eAAe,UAAU,IAAI;EAClC;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,gBAAgB,UAAU,IAAI;EACnC;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,eAAe,UAAU,IAAI;EAClC;EACA;EACA;EACA;EACA,CAAC;AAEF,QAAO,YAAY;EAClB,GAAG;EACH,YAAY,MAAW,WAAgB,YAAiB;AACvD,IAAC,iBAAiB,aAAoB,MAAM,WAAW,QAAQ;;EAEhE,YAAY,MAAW,OAAY,WAAgB,YAAiB;AACnE,eAAY,kBAAkB,EAC7B,UAAU,cACV,CAAC;AACF,eAAY,kBAAkB,EAC7B,UAAU,eACV,CAAC;AACF,eAAY,kBAAkB,EAC7B,UAAU,cACV,CAAC;AACF,IAAC,iBAAiB,aAAoB,MAAM,OAAO,WAAW,QAAQ;;EAEvE,GAAG;EACH,CAAQ;;;;;;;;;;;;;;AAeV,SAAgB,oBACf,YACA,iBACM;CACN,MAAM,EAAE,WAAW,aAAa,WAAW,yBAAyB;CAEpE,MAAM,cAAc,UAAU,YAAY,YAAsB,QAAQ;CACxE,MAAM,eAAe,UAAU,IAAI;EAClC;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,gBAAgB,UAAU,IAAI;EACnC;EACA;EACA;EACA;EACA,CAAC;CACF,MAAM,eAAe,UAAU,IAAI;EAClC;EACA;EACA;EACA;EACA,CAAC;AAEF,QAAO,YAAY;EAClB,GAAG;EACH,YAAY,MAAW,WAAgB,YAAiB;AACvD,IAAC,iBAAiB,aAAoB,MAAM,WAAW,QAAQ;;EAEhE,YAAY,MAAW,OAAY,WAAgB,YAAiB;AACnE,eAAY,kBAAkB,EAC7B,UAAU,cACV,CAAC;AACF,eAAY,kBAAkB,EAC7B,UAAU,eACV,CAAC;AACF,eAAY,kBAAkB,EAC7B,UAAU,cACV,CAAC;AACF,IAAC,iBAAiB,aAAoB,MAAM,OAAO,WAAW,QAAQ;;EAEvE,GAAG;EACH,CAAQ"}
@@ -0,0 +1,57 @@
1
+ //#region src/client/hooks/use-current-user.d.ts
2
+ /**
3
+ * Current User Hooks
4
+ *
5
+ * Convenience hooks for accessing the current user from Better Auth session.
6
+ * These hooks use the authClient.useSession() internally.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * function UserProfile() {
11
+ * const user = useCurrentUser();
12
+ * const isAdmin = useIsAdmin();
13
+ *
14
+ * if (!user) return <LoginPrompt />;
15
+ *
16
+ * return (
17
+ * <div>
18
+ * <h1>{user.name}</h1>
19
+ * {isAdmin && <AdminBadge />}
20
+ * </div>
21
+ * );
22
+ * }
23
+ * ```
24
+ */
25
+ /**
26
+ * Basic user type from Better Auth session
27
+ * Extended by the actual CMS user schema
28
+ */
29
+ interface BasicUser {
30
+ id: string;
31
+ email: string;
32
+ name?: string | null;
33
+ image?: string | null;
34
+ role?: string | null;
35
+ emailVerified?: boolean;
36
+ banned?: boolean;
37
+ banReason?: string | null;
38
+ }
39
+ /**
40
+ * Get the current authenticated user from session.
41
+ *
42
+ * Returns null if:
43
+ * - No auth client is configured
44
+ * - User is not authenticated
45
+ * - Session is still loading (use useSessionState for loading state)
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * const user = useCurrentUser();
50
+ * if (!user) return <LoginPage />;
51
+ * return <div>Hello {user.name}</div>;
52
+ * ```
53
+ */
54
+ declare function useCurrentUser<TUser = BasicUser>(): TUser | null;
55
+ //#endregion
56
+ export { useCurrentUser };
57
+ //# sourceMappingURL=use-current-user.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-current-user.d.mts","names":[],"sources":["../../../src/client/hooks/use-current-user.ts"],"sourcesContent":[],"mappings":";;AAkCA;AAuCA;;;;;;;;;;;;;;;;;;;;;;;;;UAvCiB,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;iBAuCD,uBAAuB,cAAc"}
@@ -0,0 +1,79 @@
1
+ import { useAuthClientSafe } from "./use-auth.mjs";
2
+
3
+ //#region src/client/hooks/use-current-user.ts
4
+ /**
5
+ * Current User Hooks
6
+ *
7
+ * Convenience hooks for accessing the current user from Better Auth session.
8
+ * These hooks use the authClient.useSession() internally.
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * function UserProfile() {
13
+ * const user = useCurrentUser();
14
+ * const isAdmin = useIsAdmin();
15
+ *
16
+ * if (!user) return <LoginPrompt />;
17
+ *
18
+ * return (
19
+ * <div>
20
+ * <h1>{user.name}</h1>
21
+ * {isAdmin && <AdminBadge />}
22
+ * </div>
23
+ * );
24
+ * }
25
+ * ```
26
+ */
27
+ /**
28
+ * Get the current authenticated user from session.
29
+ *
30
+ * Returns null if:
31
+ * - No auth client is configured
32
+ * - User is not authenticated
33
+ * - Session is still loading (use useSessionState for loading state)
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * const user = useCurrentUser();
38
+ * if (!user) return <LoginPage />;
39
+ * return <div>Hello {user.name}</div>;
40
+ * ```
41
+ */
42
+ function useCurrentUser() {
43
+ const authClient = useAuthClientSafe();
44
+ if (!authClient) return null;
45
+ const { data: session } = authClient.useSession();
46
+ return session?.user ?? null;
47
+ }
48
+ /**
49
+ * Get full session state including loading and error.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * const { user, isPending, error } = useSessionState();
54
+ *
55
+ * if (isPending) return <Loading />;
56
+ * if (error) return <Error message={error.message} />;
57
+ * if (!user) return <LoginPage />;
58
+ *
59
+ * return <Dashboard user={user} />;
60
+ * ```
61
+ */
62
+ function useSessionState() {
63
+ const authClient = useAuthClientSafe();
64
+ if (!authClient) return {
65
+ user: null,
66
+ isPending: false,
67
+ error: null
68
+ };
69
+ const { data: session, isPending, error } = authClient.useSession();
70
+ return {
71
+ user: session?.user ?? null,
72
+ isPending,
73
+ error: error ?? null
74
+ };
75
+ }
76
+
77
+ //#endregion
78
+ export { useCurrentUser, useSessionState };
79
+ //# sourceMappingURL=use-current-user.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-current-user.mjs","names":[],"sources":["../../../src/client/hooks/use-current-user.ts"],"sourcesContent":["/**\n * Current User Hooks\n *\n * Convenience hooks for accessing the current user from Better Auth session.\n * These hooks use the authClient.useSession() internally.\n *\n * @example\n * ```tsx\n * function UserProfile() {\n * const user = useCurrentUser();\n * const isAdmin = useIsAdmin();\n *\n * if (!user) return <LoginPrompt />;\n *\n * return (\n * <div>\n * <h1>{user.name}</h1>\n * {isAdmin && <AdminBadge />}\n * </div>\n * );\n * }\n * ```\n */\n\nimport { useAuthClientSafe } from \"./use-auth\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Basic user type from Better Auth session\n * Extended by the actual CMS user schema\n */\nexport interface BasicUser {\n id: string;\n email: string;\n name?: string | null;\n image?: string | null;\n role?: string | null;\n emailVerified?: boolean;\n banned?: boolean;\n banReason?: string | null;\n}\n\n/**\n * Session state returned by useSession hooks\n */\nexport interface SessionState<TUser = BasicUser> {\n user: TUser | null;\n isPending: boolean;\n error: Error | null;\n}\n\n// ============================================================================\n// Hooks\n// ============================================================================\n\n/**\n * Get the current authenticated user from session.\n *\n * Returns null if:\n * - No auth client is configured\n * - User is not authenticated\n * - Session is still loading (use useSessionState for loading state)\n *\n * @example\n * ```tsx\n * const user = useCurrentUser();\n * if (!user) return <LoginPage />;\n * return <div>Hello {user.name}</div>;\n * ```\n */\nexport function useCurrentUser<TUser = BasicUser>(): TUser | null {\n const authClient = useAuthClientSafe();\n\n if (!authClient) {\n return null;\n }\n\n const { data: session } = authClient.useSession();\n return (session?.user as TUser) ?? null;\n}\n\n/**\n * Get full session state including loading and error.\n *\n * @example\n * ```tsx\n * const { user, isPending, error } = useSessionState();\n *\n * if (isPending) return <Loading />;\n * if (error) return <Error message={error.message} />;\n * if (!user) return <LoginPage />;\n *\n * return <Dashboard user={user} />;\n * ```\n */\nexport function useSessionState<TUser = BasicUser>(): SessionState<TUser> {\n const authClient = useAuthClientSafe();\n\n if (!authClient) {\n return {\n user: null,\n isPending: false,\n error: null,\n };\n }\n\n const { data: session, isPending, error } = authClient.useSession();\n\n return {\n user: (session?.user as TUser) ?? null,\n isPending,\n error: error ?? null,\n };\n}\n\n/**\n * Check if the current user is authenticated.\n *\n * Returns false while session is loading.\n * For loading-aware check, use useSessionState().\n *\n * @example\n * ```tsx\n * const isAuthenticated = useIsAuthenticated();\n * if (!isAuthenticated) return <LoginButton />;\n * ```\n */\nexport function useIsAuthenticated(): boolean {\n const authClient = useAuthClientSafe();\n\n if (!authClient) {\n return false;\n }\n\n const { data: session, isPending } = authClient.useSession();\n return !isPending && session?.user != null;\n}\n\n/**\n * Check if the current user has the admin role.\n *\n * @example\n * ```tsx\n * const isAdmin = useIsAdmin();\n * if (!isAdmin) return <AccessDenied />;\n * ```\n */\nexport function useIsAdmin(): boolean {\n const user = useCurrentUser();\n return user?.role === \"admin\";\n}\n\n/**\n * Check if the current user has a specific role.\n *\n * @example\n * ```tsx\n * const canEdit = useHasRole(\"admin\") || useHasRole(\"editor\");\n * ```\n */\nexport function useHasRole(role: string): boolean {\n const user = useCurrentUser();\n return user?.role === role;\n}\n\n/**\n * Check if the current user has any of the specified roles.\n *\n * @example\n * ```tsx\n * const canManageUsers = useHasAnyRole([\"admin\", \"moderator\"]);\n * ```\n */\nexport function useHasAnyRole(roles: string[]): boolean {\n const user = useCurrentUser();\n return user?.role != null && roles.includes(user.role);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyEA,SAAgB,iBAAkD;CAChE,MAAM,aAAa,mBAAmB;AAEtC,KAAI,CAAC,WACH,QAAO;CAGT,MAAM,EAAE,MAAM,YAAY,WAAW,YAAY;AACjD,QAAQ,SAAS,QAAkB;;;;;;;;;;;;;;;;AAiBrC,SAAgB,kBAA0D;CACxE,MAAM,aAAa,mBAAmB;AAEtC,KAAI,CAAC,WACH,QAAO;EACL,MAAM;EACN,WAAW;EACX,OAAO;EACR;CAGH,MAAM,EAAE,MAAM,SAAS,WAAW,UAAU,WAAW,YAAY;AAEnE,QAAO;EACL,MAAO,SAAS,QAAkB;EAClC;EACA,OAAO,SAAS;EACjB"}