@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,208 @@
1
+ import { createFieldRegistryProxy } from "./proxies.mjs";
2
+ import { z } from "zod";
3
+
4
+ //#region src/client/builder/validation.ts
5
+ /**
6
+ * Client-side Validation Schema Builder
7
+ *
8
+ * Generates Zod schemas from admin field configurations.
9
+ * Uses createZod from field definitions for automatic schema generation.
10
+ * Supports nested fields (object, array) via recursive schema building.
11
+ */
12
+ /**
13
+ * Build a string schema with validations (fallback)
14
+ */
15
+ function buildStringSchema(validation) {
16
+ let schema = z.string();
17
+ if (validation) {
18
+ if (validation.minLength !== void 0) schema = schema.min(validation.minLength, `Must be at least ${validation.minLength} characters`);
19
+ if (validation.maxLength !== void 0) schema = schema.max(validation.maxLength, `Must be at most ${validation.maxLength} characters`);
20
+ if (validation.email) schema = schema.email("Invalid email address");
21
+ if (validation.url) schema = schema.url("Invalid URL");
22
+ if (validation.pattern) {
23
+ const regex = typeof validation.pattern === "string" ? new RegExp(validation.pattern) : validation.pattern;
24
+ schema = schema.regex(regex, validation.patternMessage || "Invalid format");
25
+ }
26
+ }
27
+ return schema;
28
+ }
29
+ /**
30
+ * Build a number schema with validations (fallback)
31
+ */
32
+ function buildNumberSchema(validation) {
33
+ let schema = z.number();
34
+ if (validation) {
35
+ if (validation.min !== void 0) schema = schema.min(validation.min, `Must be at least ${validation.min}`);
36
+ if (validation.max !== void 0) schema = schema.max(validation.max, `Must be at most ${validation.max}`);
37
+ }
38
+ return schema;
39
+ }
40
+ /**
41
+ * Fallback schema builder for fields without createZod
42
+ */
43
+ function buildFallbackSchema(fieldType, required, validation) {
44
+ let schema;
45
+ switch (fieldType) {
46
+ case "text":
47
+ case "textarea":
48
+ case "email":
49
+ case "password":
50
+ case "slug":
51
+ case "code":
52
+ case "time":
53
+ schema = buildStringSchema(validation);
54
+ break;
55
+ case "number":
56
+ case "currency":
57
+ schema = buildNumberSchema(validation);
58
+ break;
59
+ case "switch":
60
+ case "checkbox":
61
+ schema = z.boolean();
62
+ break;
63
+ case "date":
64
+ case "datetime":
65
+ schema = z.date().or(z.string());
66
+ break;
67
+ case "select":
68
+ schema = z.string().or(z.number());
69
+ break;
70
+ case "relation":
71
+ schema = z.string().or(z.array(z.string()));
72
+ break;
73
+ case "upload":
74
+ schema = z.string();
75
+ break;
76
+ case "uploadMany":
77
+ schema = z.array(z.string());
78
+ break;
79
+ case "array":
80
+ schema = z.array(z.any());
81
+ break;
82
+ case "object":
83
+ schema = z.record(z.string(), z.any());
84
+ break;
85
+ case "json":
86
+ case "richText":
87
+ schema = z.any();
88
+ break;
89
+ default: schema = z.any();
90
+ }
91
+ if (validation?.refine) schema = validation.refine(schema);
92
+ if (!required) schema = schema.optional().nullable();
93
+ return schema;
94
+ }
95
+ /**
96
+ * Creates the ZodBuildContext for recursive schema building
97
+ */
98
+ function createBuildContext(registry) {
99
+ const ctx = {
100
+ registry,
101
+ buildSchema: (fieldDef) => {
102
+ const opts = fieldDef["~options"] || {};
103
+ if (fieldDef.createZod) return fieldDef.createZod(opts, ctx);
104
+ return buildFallbackSchema(fieldDef.name, opts.required, opts.validation);
105
+ }
106
+ };
107
+ return ctx;
108
+ }
109
+ /**
110
+ * Build a Zod schema from admin field definitions
111
+ *
112
+ * Uses createZod from each field definition if available,
113
+ * otherwise falls back to generic schema based on field type.
114
+ *
115
+ * @param fields - Field definitions from admin collection config
116
+ * @param registry - Field registry from admin builder
117
+ * @returns Zod object schema for the collection
118
+ *
119
+ * @example
120
+ * ```ts
121
+ * const schema = buildValidationSchema(collectionConfig.fields, admin.getFields());
122
+ *
123
+ * // Use with react-hook-form
124
+ * const form = useForm({
125
+ * resolver: zodResolver(schema),
126
+ * });
127
+ * ```
128
+ */
129
+ function buildValidationSchema(fields, registry) {
130
+ const ctx = createBuildContext(registry);
131
+ const shape = {};
132
+ for (const [name, fieldDef] of Object.entries(fields)) shape[name] = ctx.buildSchema(fieldDef);
133
+ return z.object(shape);
134
+ }
135
+ /**
136
+ * Build validation schema with custom validation functions
137
+ *
138
+ * This version supports the `validate` callback in FieldValidationConfig
139
+ * which receives form values for cross-field validation.
140
+ *
141
+ * @param fields - Field definitions from admin collection config
142
+ * @param registry - Field registry from admin builder
143
+ * @returns Zod schema with superRefine for custom validators
144
+ */
145
+ function buildValidationSchemaWithCustom(fields, registry) {
146
+ const baseSchema = buildValidationSchema(fields, registry);
147
+ const customValidators = [];
148
+ for (const [name, fieldDef] of Object.entries(fields)) {
149
+ const options = fieldDef["~options"] || {};
150
+ if (options.validation?.validate) customValidators.push({
151
+ name,
152
+ validate: options.validation.validate
153
+ });
154
+ }
155
+ if (customValidators.length === 0) return baseSchema;
156
+ return baseSchema.superRefine((data, ctx) => {
157
+ for (const { name, validate } of customValidators) {
158
+ const error = validate(data[name], data);
159
+ if (error) ctx.addIssue({
160
+ code: z.ZodIssueCode.custom,
161
+ message: error,
162
+ path: [name]
163
+ });
164
+ }
165
+ });
166
+ }
167
+ /**
168
+ * Create a Zod validation schema from admin field config
169
+ *
170
+ * Use with @hookform/resolvers/zod for react-hook-form integration.
171
+ *
172
+ * @param fields - Field definitions from admin collection config
173
+ * @param registry - Field registry from admin builder
174
+ * @returns Zod schema for form validation
175
+ *
176
+ * @example
177
+ * ```tsx
178
+ * import { zodResolver } from "@hookform/resolvers/zod";
179
+ * import { createFormSchema } from "@questpie/admin/builder";
180
+ *
181
+ * // From collection config
182
+ * const schema = createFormSchema(collectionConfig.fields, admin.getFields());
183
+ *
184
+ * function MyForm() {
185
+ * const form = useForm({
186
+ * resolver: zodResolver(schema),
187
+ * });
188
+ * // ...
189
+ * }
190
+ *
191
+ * // Or use the hook
192
+ * import { useCollectionValidation } from "@questpie/admin/hooks";
193
+ *
194
+ * function MyCollectionForm() {
195
+ * const schema = useCollectionValidation("posts");
196
+ * const form = useForm({
197
+ * resolver: schema ? zodResolver(schema) : undefined,
198
+ * });
199
+ * }
200
+ * ```
201
+ */
202
+ function createFormSchema(fields, registry) {
203
+ return buildValidationSchemaWithCustom(fields, registry);
204
+ }
205
+
206
+ //#endregion
207
+ export { buildValidationSchema, createFormSchema };
208
+ //# sourceMappingURL=validation.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.mjs","names":["schema: z.ZodTypeAny","ctx: ZodBuildContext","shape: Record<string, z.ZodTypeAny>","customValidators: Array<{\n name: string;\n validate: NonNullable<FieldValidationConfig[\"validate\"]>;\n }>"],"sources":["../../../src/client/builder/validation.ts"],"sourcesContent":["/**\n * Client-side Validation Schema Builder\n *\n * Generates Zod schemas from admin field configurations.\n * Uses createZod from field definitions for automatic schema generation.\n * Supports nested fields (object, array) via recursive schema building.\n */\n\nimport { z } from \"zod\";\nimport type { FieldDefinition, ZodBuildContext } from \"./field/field\";\nimport type { FieldValidationConfig } from \"./types/field-types\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Collection fields map (from admin config)\n */\ntype FieldsMap = Record<string, FieldDefinition>;\n\n/**\n * Field registry type\n */\ntype FieldRegistry = Record<string, any>;\n\n// ============================================================================\n// Fallback Schema Builders (for fields without createZod)\n// ============================================================================\n\n/**\n * Build a string schema with validations (fallback)\n */\nfunction buildStringSchema(validation?: FieldValidationConfig): z.ZodString {\n let schema = z.string();\n\n if (validation) {\n if (validation.minLength !== undefined) {\n schema = schema.min(\n validation.minLength,\n `Must be at least ${validation.minLength} characters`,\n );\n }\n if (validation.maxLength !== undefined) {\n schema = schema.max(\n validation.maxLength,\n `Must be at most ${validation.maxLength} characters`,\n );\n }\n if (validation.email) {\n schema = schema.email(\"Invalid email address\");\n }\n if (validation.url) {\n schema = schema.url(\"Invalid URL\");\n }\n if (validation.pattern) {\n const regex =\n typeof validation.pattern === \"string\"\n ? new RegExp(validation.pattern)\n : validation.pattern;\n schema = schema.regex(\n regex,\n validation.patternMessage || \"Invalid format\",\n );\n }\n }\n\n return schema;\n}\n\n/**\n * Build a number schema with validations (fallback)\n */\nfunction buildNumberSchema(validation?: FieldValidationConfig): z.ZodNumber {\n let schema = z.number();\n\n if (validation) {\n if (validation.min !== undefined) {\n schema = schema.min(validation.min, `Must be at least ${validation.min}`);\n }\n if (validation.max !== undefined) {\n schema = schema.max(validation.max, `Must be at most ${validation.max}`);\n }\n }\n\n return schema;\n}\n\n/**\n * Fallback schema builder for fields without createZod\n */\nfunction buildFallbackSchema(\n fieldType: string,\n required?: boolean,\n validation?: FieldValidationConfig,\n): z.ZodTypeAny {\n let schema: z.ZodTypeAny;\n\n switch (fieldType) {\n case \"text\":\n case \"textarea\":\n case \"email\":\n case \"password\":\n case \"slug\":\n case \"code\":\n case \"time\":\n schema = buildStringSchema(validation);\n break;\n\n case \"number\":\n case \"currency\":\n schema = buildNumberSchema(validation);\n break;\n\n case \"switch\":\n case \"checkbox\":\n schema = z.boolean();\n break;\n\n case \"date\":\n case \"datetime\":\n schema = z.date().or(z.string());\n break;\n\n case \"select\":\n schema = z.string().or(z.number());\n break;\n\n case \"relation\":\n schema = z.string().or(z.array(z.string()));\n break;\n\n case \"upload\":\n schema = z.string();\n break;\n\n case \"uploadMany\":\n schema = z.array(z.string());\n break;\n\n case \"array\":\n schema = z.array(z.any());\n break;\n\n case \"object\":\n schema = z.record(z.string(), z.any());\n break;\n\n case \"json\":\n case \"richText\":\n schema = z.any();\n break;\n\n default:\n schema = z.any();\n }\n\n // Apply custom refinement from validation config\n if (validation?.refine) {\n schema = validation.refine(schema);\n }\n\n // Handle required/optional\n if (!required) {\n schema = schema.optional().nullable();\n }\n\n return schema;\n}\n\n// ============================================================================\n// Main Schema Builder\n// ============================================================================\n\n/**\n * Creates the ZodBuildContext for recursive schema building\n */\nfunction createBuildContext(registry: FieldRegistry): ZodBuildContext {\n const ctx: ZodBuildContext = {\n registry,\n buildSchema: (fieldDef: FieldDefinition): z.ZodTypeAny => {\n const opts = fieldDef[\"~options\"] || {};\n\n // If field has createZod, use it\n if (fieldDef.createZod) {\n return fieldDef.createZod(opts, ctx);\n }\n\n // Fallback to generic schema based on field type name\n return buildFallbackSchema(fieldDef.name, opts.required, opts.validation);\n },\n };\n\n return ctx;\n}\n\n/**\n * Build a Zod schema from admin field definitions\n *\n * Uses createZod from each field definition if available,\n * otherwise falls back to generic schema based on field type.\n *\n * @param fields - Field definitions from admin collection config\n * @param registry - Field registry from admin builder\n * @returns Zod object schema for the collection\n *\n * @example\n * ```ts\n * const schema = buildValidationSchema(collectionConfig.fields, admin.getFields());\n *\n * // Use with react-hook-form\n * const form = useForm({\n * resolver: zodResolver(schema),\n * });\n * ```\n */\nexport function buildValidationSchema(\n fields: FieldsMap,\n registry: FieldRegistry,\n): z.ZodObject<Record<string, z.ZodTypeAny>> {\n const ctx = createBuildContext(registry);\n const shape: Record<string, z.ZodTypeAny> = {};\n\n for (const [name, fieldDef] of Object.entries(fields)) {\n shape[name] = ctx.buildSchema(fieldDef);\n }\n\n return z.object(shape);\n}\n\n/**\n * Build validation schema with custom validation functions\n *\n * This version supports the `validate` callback in FieldValidationConfig\n * which receives form values for cross-field validation.\n *\n * @param fields - Field definitions from admin collection config\n * @param registry - Field registry from admin builder\n * @returns Zod schema with superRefine for custom validators\n */\nexport function buildValidationSchemaWithCustom(\n fields: FieldsMap,\n registry: FieldRegistry,\n): z.ZodTypeAny {\n const baseSchema = buildValidationSchema(fields, registry);\n\n // Collect fields with custom validate functions\n const customValidators: Array<{\n name: string;\n validate: NonNullable<FieldValidationConfig[\"validate\"]>;\n }> = [];\n\n for (const [name, fieldDef] of Object.entries(fields)) {\n const options = fieldDef[\"~options\"] || {};\n if (options.validation?.validate) {\n customValidators.push({\n name,\n validate: options.validation.validate,\n });\n }\n }\n\n // If no custom validators, return base schema\n if (customValidators.length === 0) {\n return baseSchema;\n }\n\n // Apply custom validators via superRefine\n return baseSchema.superRefine((data, ctx) => {\n for (const { name, validate } of customValidators) {\n const error = validate(data[name], data);\n if (error) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: error,\n path: [name],\n });\n }\n }\n });\n}\n\n/**\n * Create a Zod validation schema from admin field config\n *\n * Use with @hookform/resolvers/zod for react-hook-form integration.\n *\n * @param fields - Field definitions from admin collection config\n * @param registry - Field registry from admin builder\n * @returns Zod schema for form validation\n *\n * @example\n * ```tsx\n * import { zodResolver } from \"@hookform/resolvers/zod\";\n * import { createFormSchema } from \"@questpie/admin/builder\";\n *\n * // From collection config\n * const schema = createFormSchema(collectionConfig.fields, admin.getFields());\n *\n * function MyForm() {\n * const form = useForm({\n * resolver: zodResolver(schema),\n * });\n * // ...\n * }\n *\n * // Or use the hook\n * import { useCollectionValidation } from \"@questpie/admin/hooks\";\n *\n * function MyCollectionForm() {\n * const schema = useCollectionValidation(\"posts\");\n * const form = useForm({\n * resolver: schema ? zodResolver(schema) : undefined,\n * });\n * }\n * ```\n */\nexport function createFormSchema(\n fields: FieldsMap,\n registry: FieldRegistry,\n): z.ZodTypeAny {\n return buildValidationSchemaWithCustom(fields, registry);\n}\n\n// ============================================================================\n// Re-exports for convenience\n// ============================================================================\n\nexport type { ZodBuildContext } from \"./field/field\";\nexport { createFieldRegistryProxy as createRegistryProxy } from \"./proxies\";\n"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { MaybeLazyComponent } from "../types/common.mjs";
2
+ import { SetProperty } from "questpie/shared";
3
+
4
+ //#region src/client/builder/view/view.d.ts
5
+
6
+ /**
7
+ * Extract viewConfig type from a view component's props.
8
+ *
9
+ * Looks for `viewConfig?: T` prop and extracts T.
10
+ * Returns `unknown` if not found (will be refined by $config).
11
+ */
12
+ type ExtractViewConfigFromComponent<TComponent> = TComponent extends React.ComponentType<infer P> ? P extends {
13
+ viewConfig?: infer C;
14
+ } ? C : unknown : unknown;
15
+ /**
16
+ * Extract config from lazy component: () => Promise<{ default: Component }>
17
+ */
18
+ type ExtractViewConfigFromLazy<TComponent> = TComponent extends (() => Promise<{
19
+ default: infer C;
20
+ }>) ? ExtractViewConfigFromComponent<C> : ExtractViewConfigFromComponent<TComponent>;
21
+ /**
22
+ * List view definition
23
+ */
24
+ interface ListViewDefinition<TName extends string = string, TConfig = unknown> {
25
+ readonly name: TName;
26
+ readonly kind: "list";
27
+ readonly "~config": TConfig;
28
+ readonly component: MaybeLazyComponent;
29
+ }
30
+ /**
31
+ * Edit view definition
32
+ */
33
+ interface EditViewDefinition<TName extends string = string, TConfig = unknown> {
34
+ readonly name: TName;
35
+ readonly kind: "edit";
36
+ readonly "~config": TConfig;
37
+ readonly component: MaybeLazyComponent;
38
+ }
39
+ interface ListViewBuilderState<TConfig = unknown> {
40
+ readonly name: string;
41
+ readonly kind: "list";
42
+ readonly "~config": TConfig;
43
+ readonly component: MaybeLazyComponent;
44
+ }
45
+ interface EditViewBuilderState<TConfig = unknown> {
46
+ readonly name: string;
47
+ readonly kind: "edit";
48
+ readonly "~config": TConfig;
49
+ readonly component: MaybeLazyComponent;
50
+ }
51
+ /**
52
+ * List view builder - implements ListViewDefinition for unified type handling
53
+ */
54
+ declare class ListViewBuilder<TState extends ListViewBuilderState> implements ListViewDefinition<TState["name"], TState["~config"]> {
55
+ readonly state: TState;
56
+ constructor(state: TState);
57
+ get name(): TState["name"];
58
+ get kind(): "list";
59
+ get "~config"(): TState["~config"];
60
+ get component(): TState["component"];
61
+ /**
62
+ * Set or override config value and type.
63
+ *
64
+ * @param config - Optional config value (for runtime) or omit for type-only override
65
+ */
66
+ $config<TNewConfig>(config?: TNewConfig): ListViewBuilder<SetProperty<TState, "~config", TNewConfig>>;
67
+ }
68
+ /**
69
+ * Edit view builder - implements EditViewDefinition for unified type handling
70
+ */
71
+ declare class EditViewBuilder<TState extends EditViewBuilderState> implements EditViewDefinition<TState["name"], TState["~config"]> {
72
+ readonly state: TState;
73
+ constructor(state: TState);
74
+ get name(): TState["name"];
75
+ get kind(): "edit";
76
+ get "~config"(): TState["~config"];
77
+ get component(): TState["component"];
78
+ /**
79
+ * Set or override config value and type.
80
+ *
81
+ * @param config - Optional config value (for runtime) or omit for type-only override
82
+ */
83
+ $config<TNewConfig>(config?: TNewConfig): EditViewBuilder<SetProperty<TState, "~config", TNewConfig>>;
84
+ }
85
+ /**
86
+ * Create a list view with automatic config type extraction.
87
+ *
88
+ * The config type is extracted from the component's `viewConfig` prop.
89
+ * If extraction fails, use `.$config<MyConfigType>()` to set it manually.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * // Auto-extraction from component props
94
+ * const tableView = listView("table", { component: TableView });
95
+ * // ^? ListViewBuilder<{ ~config: TableViewConfig }>
96
+ *
97
+ * // Manual config type for lazy imports
98
+ * const lazyTable = listView("table", { component: () => import('./TableView') })
99
+ * .$config<TableViewConfig>();
100
+ * ```
101
+ */
102
+ declare function listView<TName extends string, TComponent extends MaybeLazyComponent>(name: TName, config: {
103
+ component: TComponent;
104
+ }): ListViewBuilder<{
105
+ name: TName;
106
+ kind: "list";
107
+ "~config": ExtractViewConfigFromLazy<TComponent>;
108
+ component: TComponent;
109
+ }>;
110
+ /**
111
+ * Create an edit view with automatic config type extraction.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * const formView = editView("form", { component: FormView });
116
+ * // ^? EditViewBuilder<{ ~config: FormViewRegistryConfig }>
117
+ * ```
118
+ */
119
+ declare function editView<TName extends string, TComponent extends MaybeLazyComponent>(name: TName, config: {
120
+ component: TComponent;
121
+ }): EditViewBuilder<{
122
+ name: TName;
123
+ kind: "edit";
124
+ "~config": ExtractViewConfigFromLazy<TComponent>;
125
+ component: TComponent;
126
+ }>;
127
+ //#endregion
128
+ export { EditViewBuilder, EditViewBuilderState, EditViewDefinition, ListViewBuilder, ListViewBuilderState, ListViewDefinition, editView, listView };
129
+ //# sourceMappingURL=view.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.mts","names":[],"sources":["../../../../src/client/builder/view/view.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ //#region src/client/builder/view/view.ts
2
+ /**
3
+ * List view builder - implements ListViewDefinition for unified type handling
4
+ */
5
+ var ListViewBuilder = class ListViewBuilder {
6
+ constructor(state) {
7
+ this.state = state;
8
+ }
9
+ get name() {
10
+ return this.state.name;
11
+ }
12
+ get kind() {
13
+ return "list";
14
+ }
15
+ get "~config"() {
16
+ return this.state["~config"];
17
+ }
18
+ get component() {
19
+ return this.state.component;
20
+ }
21
+ /**
22
+ * Set or override config value and type.
23
+ *
24
+ * @param config - Optional config value (for runtime) or omit for type-only override
25
+ */
26
+ $config(config) {
27
+ return new ListViewBuilder({
28
+ ...this.state,
29
+ "~config": config ?? this.state["~config"]
30
+ });
31
+ }
32
+ };
33
+ /**
34
+ * Edit view builder - implements EditViewDefinition for unified type handling
35
+ */
36
+ var EditViewBuilder = class EditViewBuilder {
37
+ constructor(state) {
38
+ this.state = state;
39
+ }
40
+ get name() {
41
+ return this.state.name;
42
+ }
43
+ get kind() {
44
+ return "edit";
45
+ }
46
+ get "~config"() {
47
+ return this.state["~config"];
48
+ }
49
+ get component() {
50
+ return this.state.component;
51
+ }
52
+ /**
53
+ * Set or override config value and type.
54
+ *
55
+ * @param config - Optional config value (for runtime) or omit for type-only override
56
+ */
57
+ $config(config) {
58
+ return new EditViewBuilder({
59
+ ...this.state,
60
+ "~config": config ?? this.state["~config"]
61
+ });
62
+ }
63
+ };
64
+ /**
65
+ * Create a list view with automatic config type extraction.
66
+ *
67
+ * The config type is extracted from the component's `viewConfig` prop.
68
+ * If extraction fails, use `.$config<MyConfigType>()` to set it manually.
69
+ *
70
+ * @example
71
+ * ```ts
72
+ * // Auto-extraction from component props
73
+ * const tableView = listView("table", { component: TableView });
74
+ * // ^? ListViewBuilder<{ ~config: TableViewConfig }>
75
+ *
76
+ * // Manual config type for lazy imports
77
+ * const lazyTable = listView("table", { component: () => import('./TableView') })
78
+ * .$config<TableViewConfig>();
79
+ * ```
80
+ */
81
+ function listView(name, config) {
82
+ return new ListViewBuilder({
83
+ name,
84
+ kind: "list",
85
+ "~config": {},
86
+ component: config.component
87
+ });
88
+ }
89
+ /**
90
+ * Create an edit view with automatic config type extraction.
91
+ *
92
+ * @example
93
+ * ```ts
94
+ * const formView = editView("form", { component: FormView });
95
+ * // ^? EditViewBuilder<{ ~config: FormViewRegistryConfig }>
96
+ * ```
97
+ */
98
+ function editView(name, config) {
99
+ return new EditViewBuilder({
100
+ name,
101
+ kind: "edit",
102
+ "~config": {},
103
+ component: config.component
104
+ });
105
+ }
106
+
107
+ //#endregion
108
+ export { EditViewBuilder, ListViewBuilder, editView, listView };
109
+ //# sourceMappingURL=view.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.mjs","names":["state: TState"],"sources":["../../../../src/client/builder/view/view.ts"],"sourcesContent":["/**\n * View Builders (List & Edit)\n *\n * Defines reusable view components for collections.\n */\n\nimport type { SetProperty } from \"questpie/shared\";\nimport type { MaybeLazyComponent } from \"../types/common\";\n\n// ============================================================================\n// Config Extraction Types\n// ============================================================================\n\n/**\n * Extract viewConfig type from a view component's props.\n *\n * Looks for `viewConfig?: T` prop and extracts T.\n * Returns `unknown` if not found (will be refined by $config).\n */\ntype ExtractViewConfigFromComponent<TComponent> =\n TComponent extends React.ComponentType<infer P>\n ? P extends { viewConfig?: infer C }\n ? C\n : unknown\n : unknown;\n\n/**\n * Extract config from lazy component: () => Promise<{ default: Component }>\n */\ntype ExtractViewConfigFromLazy<TComponent> = TComponent extends () => Promise<{\n default: infer C;\n}>\n ? ExtractViewConfigFromComponent<C>\n : ExtractViewConfigFromComponent<TComponent>;\n\n// ============================================================================\n// View Definitions\n// ============================================================================\n\n/**\n * List view definition\n */\nexport interface ListViewDefinition<\n TName extends string = string,\n TConfig = unknown,\n> {\n readonly name: TName;\n readonly kind: \"list\";\n readonly \"~config\": TConfig;\n readonly component: MaybeLazyComponent;\n}\n\n/**\n * Edit view definition\n */\nexport interface EditViewDefinition<\n TName extends string = string,\n TConfig = unknown,\n> {\n readonly name: TName;\n readonly kind: \"edit\";\n readonly \"~config\": TConfig;\n readonly component: MaybeLazyComponent;\n}\n\n// ============================================================================\n// Builder State Types\n// ============================================================================\n\nexport interface ListViewBuilderState<TConfig = unknown> {\n readonly name: string;\n readonly kind: \"list\";\n readonly \"~config\": TConfig;\n readonly component: MaybeLazyComponent;\n}\n\nexport interface EditViewBuilderState<TConfig = unknown> {\n readonly name: string;\n readonly kind: \"edit\";\n readonly \"~config\": TConfig;\n readonly component: MaybeLazyComponent;\n}\n\n// ============================================================================\n// View Builders\n// ============================================================================\n\n/**\n * List view builder - implements ListViewDefinition for unified type handling\n */\nexport class ListViewBuilder<\n TState extends ListViewBuilderState,\n> implements ListViewDefinition<TState[\"name\"], TState[\"~config\"]> {\n constructor(public readonly state: TState) {}\n\n get name(): TState[\"name\"] {\n return this.state.name;\n }\n\n get kind(): \"list\" {\n return \"list\";\n }\n\n get \"~config\"(): TState[\"~config\"] {\n return this.state[\"~config\"];\n }\n\n get component(): TState[\"component\"] {\n return this.state.component;\n }\n\n /**\n * Set or override config value and type.\n *\n * @param config - Optional config value (for runtime) or omit for type-only override\n */\n $config<TNewConfig>(\n config?: TNewConfig,\n ): ListViewBuilder<SetProperty<TState, \"~config\", TNewConfig>> {\n return new ListViewBuilder({\n ...this.state,\n \"~config\": config ?? this.state[\"~config\"],\n } as SetProperty<TState, \"~config\", TNewConfig>);\n }\n}\n\n/**\n * Edit view builder - implements EditViewDefinition for unified type handling\n */\nexport class EditViewBuilder<\n TState extends EditViewBuilderState,\n> implements EditViewDefinition<TState[\"name\"], TState[\"~config\"]> {\n constructor(public readonly state: TState) {}\n\n get name(): TState[\"name\"] {\n return this.state.name;\n }\n\n get kind(): \"edit\" {\n return \"edit\";\n }\n\n get \"~config\"(): TState[\"~config\"] {\n return this.state[\"~config\"];\n }\n\n get component(): TState[\"component\"] {\n return this.state.component;\n }\n\n /**\n * Set or override config value and type.\n *\n * @param config - Optional config value (for runtime) or omit for type-only override\n */\n $config<TNewConfig>(\n config?: TNewConfig,\n ): EditViewBuilder<SetProperty<TState, \"~config\", TNewConfig>> {\n return new EditViewBuilder({\n ...this.state,\n \"~config\": config ?? this.state[\"~config\"],\n } as SetProperty<TState, \"~config\", TNewConfig>);\n }\n}\n\n// ============================================================================\n// Factory Functions\n// ============================================================================\n\n/**\n * Create a list view with automatic config type extraction.\n *\n * The config type is extracted from the component's `viewConfig` prop.\n * If extraction fails, use `.$config<MyConfigType>()` to set it manually.\n *\n * @example\n * ```ts\n * // Auto-extraction from component props\n * const tableView = listView(\"table\", { component: TableView });\n * // ^? ListViewBuilder<{ ~config: TableViewConfig }>\n *\n * // Manual config type for lazy imports\n * const lazyTable = listView(\"table\", { component: () => import('./TableView') })\n * .$config<TableViewConfig>();\n * ```\n */\nexport function listView<\n TName extends string,\n TComponent extends MaybeLazyComponent,\n>(\n name: TName,\n config: { component: TComponent },\n): ListViewBuilder<{\n name: TName;\n kind: \"list\";\n \"~config\": ExtractViewConfigFromLazy<TComponent>;\n component: TComponent;\n}> {\n return new ListViewBuilder({\n name,\n kind: \"list\",\n \"~config\": {} as ExtractViewConfigFromLazy<TComponent>,\n component: config.component,\n });\n}\n\n/**\n * Create an edit view with automatic config type extraction.\n *\n * @example\n * ```ts\n * const formView = editView(\"form\", { component: FormView });\n * // ^? EditViewBuilder<{ ~config: FormViewRegistryConfig }>\n * ```\n */\nexport function editView<\n TName extends string,\n TComponent extends MaybeLazyComponent,\n>(\n name: TName,\n config: { component: TComponent },\n): EditViewBuilder<{\n name: TName;\n kind: \"edit\";\n \"~config\": ExtractViewConfigFromLazy<TComponent>;\n component: TComponent;\n}> {\n return new EditViewBuilder({\n name,\n kind: \"edit\",\n \"~config\": {} as ExtractViewConfigFromLazy<TComponent>,\n component: config.component,\n });\n}\n"],"mappings":";;;;AA0FA,IAAa,kBAAb,MAAa,gBAEsD;CACjE,YAAY,AAAgBA,OAAe;EAAf;;CAE5B,IAAI,OAAuB;AACzB,SAAO,KAAK,MAAM;;CAGpB,IAAI,OAAe;AACjB,SAAO;;CAGT,IAAI,YAA+B;AACjC,SAAO,KAAK,MAAM;;CAGpB,IAAI,YAAiC;AACnC,SAAO,KAAK,MAAM;;;;;;;CAQpB,QACE,QAC6D;AAC7D,SAAO,IAAI,gBAAgB;GACzB,GAAG,KAAK;GACR,WAAW,UAAU,KAAK,MAAM;GACjC,CAA+C;;;;;;AAOpD,IAAa,kBAAb,MAAa,gBAEsD;CACjE,YAAY,AAAgBA,OAAe;EAAf;;CAE5B,IAAI,OAAuB;AACzB,SAAO,KAAK,MAAM;;CAGpB,IAAI,OAAe;AACjB,SAAO;;CAGT,IAAI,YAA+B;AACjC,SAAO,KAAK,MAAM;;CAGpB,IAAI,YAAiC;AACnC,SAAO,KAAK,MAAM;;;;;;;CAQpB,QACE,QAC6D;AAC7D,SAAO,IAAI,gBAAgB;GACzB,GAAG,KAAK;GACR,WAAW,UAAU,KAAK,MAAM;GACjC,CAA+C;;;;;;;;;;;;;;;;;;;;AAyBpD,SAAgB,SAId,MACA,QAMC;AACD,QAAO,IAAI,gBAAgB;EACzB;EACA,MAAM;EACN,WAAW,EAAE;EACb,WAAW,OAAO;EACnB,CAAC;;;;;;;;;;;AAYJ,SAAgB,SAId,MACA,QAMC;AACD,QAAO,IAAI,gBAAgB;EACzB;EACA,MAAM;EACN,WAAW,EAAE;EACb,WAAW,OAAO;EACnB,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { MaybeLazyComponent } from "../types/common.mjs";
2
+ import { SetProperty } from "questpie/shared";
3
+
4
+ //#region src/client/builder/widget/widget.d.ts
5
+
6
+ interface WidgetDefinition<TName extends string = string, TConfig = any> {
7
+ readonly name: TName;
8
+ readonly component: any;
9
+ readonly "~config"?: TConfig;
10
+ }
11
+ interface WidgetBuilderState {
12
+ readonly name: string;
13
+ readonly "~config": any;
14
+ readonly component: any;
15
+ }
16
+ declare class WidgetBuilder<TState extends WidgetBuilderState> {
17
+ readonly state: TState;
18
+ constructor(state: TState);
19
+ $config<TNewConfig>(config: TNewConfig): WidgetBuilder<SetProperty<TState, "~config", TNewConfig>>;
20
+ }
21
+ /**
22
+ * Create a dashboard widget
23
+ */
24
+ declare function widget<TName extends string, TComponent extends MaybeLazyComponent>(name: TName, config: {
25
+ component: TComponent;
26
+ }): WidgetBuilder<{
27
+ name: TName;
28
+ "~config": any;
29
+ component: TComponent;
30
+ }>;
31
+ //#endregion
32
+ export { WidgetBuilder, WidgetBuilderState, WidgetDefinition, widget };
33
+ //# sourceMappingURL=widget.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.mts","names":[],"sources":["../../../../src/client/builder/widget/widget.ts"],"sourcesContent":[],"mappings":";;;;;AAwB0C,UAfzB,gBAeyB,CAAA,cAAA,MAAA,GAAA,MAAA,EAAA,UAAA,GAAA,CAAA,CAAA;EACL,SAAA,IAAA,EAZpB,KAYoB;EAAA,SAAA,SAAA,EAAA,GAAA;EAGzB,SAAA,SAAA,CAAA,EAbW,OAaX;;AACsC,UAXjC,kBAAA,CAWiC;EAA/B,SAAA,IAAA,EAAA,MAAA;EAAd,SAAA,SAAA,EAAA,GAAA;EAAa,SAAA,SAAA,EAAA,GAAA;AAWlB;AAEqB,cAlBR,aAkBQ,CAAA,eAlBqB,kBAkBrB,CAAA,CAAA;EAEb,SAAA,KAAA,EAnB6B,MAmB7B;EACe,WAAA,CAAA,KAAA,EApBc,MAoBd;EAEf,OAAA,CAAA,UAAA,CAAA,CAAA,MAAA,EAnBI,UAmBJ,CAAA,EAlBH,aAkBG,CAlBW,WAkBX,CAlBuB,MAkBvB,EAAA,SAAA,EAlB0C,UAkB1C,CAAA,CAAA;;;;;iBAPQ,gDAEK,0BAEb;aACe;IACpB;QACK;;aAEK"}
@@ -0,0 +1,26 @@
1
+ //#region src/client/builder/widget/widget.ts
2
+ var WidgetBuilder = class WidgetBuilder {
3
+ constructor(state) {
4
+ this.state = state;
5
+ }
6
+ $config(config) {
7
+ return new WidgetBuilder({
8
+ ...this.state,
9
+ "~config": config
10
+ });
11
+ }
12
+ };
13
+ /**
14
+ * Create a dashboard widget
15
+ */
16
+ function widget(name, config) {
17
+ return new WidgetBuilder({
18
+ name,
19
+ "~config": {},
20
+ component: config.component
21
+ });
22
+ }
23
+
24
+ //#endregion
25
+ export { WidgetBuilder, widget };
26
+ //# sourceMappingURL=widget.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.mjs","names":["state: TState"],"sources":["../../../../src/client/builder/widget/widget.ts"],"sourcesContent":["/**\n * Widget Builder\n *\n * Defines dashboard widgets.\n */\n\nimport type { SetProperty } from \"questpie/shared\";\nimport type { MaybeLazyComponent } from \"../types/common\";\n\nexport interface WidgetDefinition<\n TName extends string = string,\n TConfig = any,\n> {\n readonly name: TName;\n readonly component: any;\n readonly \"~config\"?: TConfig;\n}\n\nexport interface WidgetBuilderState {\n readonly name: string;\n readonly \"~config\": any;\n readonly component: any;\n}\n\nexport class WidgetBuilder<TState extends WidgetBuilderState> {\n constructor(public readonly state: TState) {}\n\n $config<TNewConfig>(\n config: TNewConfig,\n ): WidgetBuilder<SetProperty<TState, \"~config\", TNewConfig>> {\n return new WidgetBuilder({\n ...this.state,\n \"~config\": config,\n } as any);\n }\n}\n\n/**\n * Create a dashboard widget\n */\nexport function widget<\n TName extends string,\n TComponent extends MaybeLazyComponent,\n>(\n name: TName,\n config: { component: TComponent },\n): WidgetBuilder<{\n name: TName;\n \"~config\": any;\n component: TComponent;\n}> {\n return new WidgetBuilder({\n name,\n \"~config\": {},\n component: config.component,\n } as any);\n}\n"],"mappings":";AAwBA,IAAa,gBAAb,MAAa,cAAiD;CAC5D,YAAY,AAAgBA,OAAe;EAAf;;CAE5B,QACE,QAC2D;AAC3D,SAAO,IAAI,cAAc;GACvB,GAAG,KAAK;GACR,WAAW;GACZ,CAAQ;;;;;;AAOb,SAAgB,OAId,MACA,QAKC;AACD,QAAO,IAAI,cAAc;EACvB;EACA,WAAW,EAAE;EACb,WAAW,OAAO;EACnB,CAAQ"}
@@ -0,0 +1,2 @@
1
+ import "../../builder/types/action-types.mjs";
2
+ import "react";