@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 @@
1
+ {"version":3,"file":"preview-banner.mjs","names":[],"sources":["../../../src/client/preview/preview-banner.tsx"],"sourcesContent":["/**\n * Preview Banner Component\n *\n * Displayed at the top of preview pages when in draft mode.\n * Allows users to exit preview mode (clear __draft_mode cookie).\n */\n\n\"use client\";\n\nimport * as React from \"react\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PreviewBannerProps = {\n /** Whether we're in preview mode */\n isPreviewMode: boolean;\n /** Custom class name */\n className?: string;\n /** Custom exit preview URL (default: /api/preview?disable=true) */\n exitPreviewUrl?: string;\n};\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Preview mode banner with exit button.\n *\n * Shows a sticky banner at the top of the page when in draft/preview mode.\n * Clicking \"Exit Preview\" clears the draft mode cookie.\n *\n * @example\n * ```tsx\n * export default function RootLayout({ children }) {\n * const { isPreviewMode } = useCollectionPreview({ ... });\n *\n * return (\n * <>\n * <PreviewBanner isPreviewMode={isPreviewMode} />\n * {children}\n * </>\n * );\n * }\n * ```\n */\nexport function PreviewBanner({\n isPreviewMode,\n className,\n exitPreviewUrl = \"/api/preview?disable=true\",\n}: PreviewBannerProps) {\n if (!isPreviewMode) return null;\n\n return (\n <div\n className={className}\n style={{\n position: \"sticky\",\n top: 0,\n left: 0,\n right: 0,\n zIndex: 9999,\n backgroundColor: \"hsl(var(--primary))\",\n color: \"hsl(var(--primary-foreground))\",\n padding: \"0.5rem 1rem\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: \"1rem\",\n fontSize: \"0.875rem\",\n fontWeight: 500,\n boxShadow: \"0 2px 8px rgba(0, 0, 0, 0.1)\",\n }}\n >\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"0.5rem\",\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 256 256\"\n fill=\"currentColor\"\n >\n <title>Eye icon</title>\n <path d=\"M247.31,124.76c-.35-.79-8.82-19.58-27.65-38.41C194.57,61.26,162.88,48,128,48S61.43,61.26,36.34,86.35C17.51,105.18,9,124,8.69,124.76a8,8,0,0,0,0,6.5c.35.79,8.82,19.57,27.65,38.4C61.43,194.74,93.12,208,128,208s66.57-13.26,91.66-38.34c18.83-18.83,27.3-37.61,27.65-38.4A8,8,0,0,0,247.31,124.76ZM128,192c-30.78,0-57.67-11.19-79.93-33.25A133.47,133.47,0,0,1,25,128,133.33,133.33,0,0,1,48.07,97.25C70.33,75.19,97.22,64,128,64s57.67,11.19,79.93,33.25A133.46,133.46,0,0,1,231.05,128C223.84,141.46,192.43,192,128,192Zm0-112a48,48,0,1,0,48,48A48.05,48.05,0,0,0,128,80Zm0,80a32,32,0,1,1,32-32A32,32,0,0,1,128,160Z\" />\n </svg>\n <span>Preview Mode</span>\n </div>\n\n <a\n href={exitPreviewUrl}\n style={{\n padding: \"0.25rem 0.75rem\",\n backgroundColor: \"rgba(255, 255, 255, 0.2)\",\n border: \"1px solid rgba(255, 255, 255, 0.3)\",\n borderRadius: \"4px\",\n color: \"inherit\",\n textDecoration: \"none\",\n fontWeight: 600,\n fontSize: \"0.875rem\",\n cursor: \"pointer\",\n transition: \"background-color 0.2s\",\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.3)\";\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = \"rgba(255, 255, 255, 0.2)\";\n }}\n >\n Exit Preview\n </a>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,cAAc,EAC5B,eACA,WACA,iBAAiB,+BACI;AACrB,KAAI,CAAC,cAAe,QAAO;AAE3B,QACE,qBAAC;EACY;EACX,OAAO;GACL,UAAU;GACV,KAAK;GACL,MAAM;GACN,OAAO;GACP,QAAQ;GACR,iBAAiB;GACjB,OAAO;GACP,SAAS;GACT,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,KAAK;GACL,UAAU;GACV,YAAY;GACZ,WAAW;GACZ;aAED,qBAAC;GACC,OAAO;IACL,SAAS;IACT,YAAY;IACZ,KAAK;IACN;cAED,qBAAC;IACC,OAAM;IACN,OAAM;IACN,QAAO;IACP,SAAQ;IACR,MAAK;eAEL,oBAAC,qBAAM,aAAgB,EACvB,oBAAC,UAAK,GAAE,8lBAA8lB;KAClmB,EACN,oBAAC,oBAAK,iBAAmB;IACrB,EAEN,oBAAC;GACC,MAAM;GACN,OAAO;IACL,SAAS;IACT,iBAAiB;IACjB,QAAQ;IACR,cAAc;IACd,OAAO;IACP,gBAAgB;IAChB,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,YAAY;IACb;GACD,eAAe,MAAM;AACnB,MAAE,cAAc,MAAM,kBAAkB;;GAE1C,eAAe,MAAM;AACnB,MAAE,cAAc,MAAM,kBAAkB;;aAE3C;IAEG;GACA"}
@@ -0,0 +1,108 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime25 from "react/jsx-runtime";
3
+
4
+ //#region src/client/preview/preview-field.d.ts
5
+
6
+ type PreviewFieldProps = {
7
+ /** Field name (for click-to-focus) - will be resolved with block scope if available */
8
+ field: string;
9
+ /** Field type for routing (regular, block, or relation) */
10
+ fieldType?: "regular" | "block" | "relation";
11
+ /** Content to render */
12
+ children: React$1.ReactNode;
13
+ /** HTML element type */
14
+ as?: React$1.ElementType;
15
+ /** Additional class names */
16
+ className?: string;
17
+ /** Click handler (uses context by default) */
18
+ onClick?: (fieldPath: string, context?: {
19
+ blockId?: string;
20
+ fieldType?: "regular" | "block" | "relation";
21
+ }) => void;
22
+ };
23
+ type PreviewContextValue = {
24
+ isPreviewMode: boolean;
25
+ handleFieldClick: (fieldPath: string, context?: {
26
+ blockId?: string;
27
+ fieldType?: "regular" | "block" | "relation";
28
+ }) => void;
29
+ focusedField: string | null;
30
+ };
31
+ /**
32
+ * Provider for preview mode context.
33
+ * Use this at the root of your preview page.
34
+ */
35
+ declare function PreviewProvider({
36
+ isPreviewMode,
37
+ focusedField,
38
+ onFieldClick,
39
+ children
40
+ }: {
41
+ isPreviewMode: boolean;
42
+ focusedField: string | null;
43
+ onFieldClick: (fieldPath: string, context?: {
44
+ blockId?: string;
45
+ fieldType?: "regular" | "block" | "relation";
46
+ }) => void;
47
+ children: React$1.ReactNode;
48
+ }): react_jsx_runtime25.JSX.Element;
49
+ /**
50
+ * Hook to access preview context.
51
+ */
52
+ declare function usePreviewContext(): PreviewContextValue | null;
53
+ /**
54
+ * Wrapper that makes a field clickable in preview mode.
55
+ *
56
+ * When clicked in preview, signals to admin to focus that field in the form.
57
+ * Automatically resolves field paths using block scope context if available.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * // Regular field
62
+ * <PreviewField field="title" as="h1" className="text-4xl">
63
+ * {data.title}
64
+ * </PreviewField>
65
+ *
66
+ * // Relation field
67
+ * <PreviewField field="author" fieldType="relation">
68
+ * {data.author.name}
69
+ * </PreviewField>
70
+ *
71
+ * // Inside a block (auto-resolves to content._values.{blockId}.title)
72
+ * <PreviewField field="title">
73
+ * {values.title}
74
+ * </PreviewField>
75
+ * ```
76
+ */
77
+ declare function PreviewField({
78
+ field,
79
+ fieldType,
80
+ children,
81
+ as: Component,
82
+ className,
83
+ onClick
84
+ }: PreviewFieldProps): react_jsx_runtime25.JSX.Element;
85
+ /**
86
+ * Standalone PreviewField that works without context.
87
+ * Useful when you can't use PreviewProvider.
88
+ */
89
+ declare function StandalonePreviewField({
90
+ field,
91
+ fieldType,
92
+ children,
93
+ as: Component,
94
+ className,
95
+ isPreviewMode,
96
+ isFocused,
97
+ onFieldClick
98
+ }: PreviewFieldProps & {
99
+ isPreviewMode: boolean;
100
+ isFocused?: boolean;
101
+ onFieldClick: (fieldPath: string, context?: {
102
+ blockId?: string;
103
+ fieldType?: "regular" | "block" | "relation";
104
+ }) => void;
105
+ }): react_jsx_runtime25.JSX.Element;
106
+ //#endregion
107
+ export { PreviewField, PreviewFieldProps, PreviewProvider, StandalonePreviewField, usePreviewContext };
108
+ //# sourceMappingURL=preview-field.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-field.d.mts","names":[],"sources":["../../../src/client/preview/preview-field.tsx"],"sourcesContent":[],"mappings":";;;;;AA6DE,KA5CU,iBAAA,GA4CV;EACA;EACA,KAAA,EAAA,MAAA;EACA;EAWU,SAAM,CAAA,EAAA,SAAA,GAAA,OAAA,GAAA,UAAA;EACjB;EAAA,QAAA,EArDW,OAAA,CAAM,SAqDjB;EAkBe;EAgCA,EAAA,CAAA,EArGT,OAAA,CAAM,WAqGe;EAC1B;EACA,SAAA,CAAA,EAAA,MAAA;EACA;EACI,OAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAGH,CAHG,EAAA;IACJ,OAAA,CAAA,EAAA,MAAA;IACA,SAAA,CAAA,EAAA,SAAA,GAAA,OAAA,GAAA,UAAA;EACC,CAAA,EAAA,GAAA,IAAA;CAAiB;KA3Ff,mBAAA,GA2Fe;EAmDJ,aAAA,EAAA,OAAA;EACd,gBAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,OAGI,CAHJ,EAAA;IACA,OAAA,CAAA,EAAA,MAAA;IACA,SAAA,CAAA,EAAA,SAAA,GAAA,OAAA,GAAA,UAAA;EACI,CAAA,EAAA,GAAA,IAAA;EACJ,YAAA,EAAA,MAAA,GAAA,IAAA;CACA;;;;;AAaD,iBA/Ie,eAAA,CA+If;EAAA,aAAA;EAAA,YAAA;EAAA,YAAA;EAAA;CAAA,EAAA;;;;;;;YAhIW,OAAA,CAAM;IACjB,mBAAA,CAAA,GAAA,CAAA;;;;iBAkBe,iBAAA,CAAA,GAAqB;;;;;;;;;;;;;;;;;;;;;;;;;iBAgCrB,YAAA;;;;MAIV;;;GAGH,oBAAiB,mBAAA,CAAA,GAAA,CAAA;;;;;iBAmDJ,sBAAA;;;;MAIV;;;;;GAKH;;;;;;;IAUF,mBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,125 @@
1
+ "use client";
2
+
3
+ import { cn } from "../lib/utils.mjs";
4
+ import { useBlockScope, useResolveFieldPath } from "./block-scope-context.mjs";
5
+ import * as React$1 from "react";
6
+ import { jsx } from "react/jsx-runtime";
7
+
8
+ //#region src/client/preview/preview-field.tsx
9
+ /**
10
+ * PreviewField Component
11
+ *
12
+ * Wrapper component that makes fields clickable in preview mode.
13
+ * When clicked, signals to admin to focus that field in the form.
14
+ */
15
+ const PreviewContext = React$1.createContext(null);
16
+ /**
17
+ * Provider for preview mode context.
18
+ * Use this at the root of your preview page.
19
+ */
20
+ function PreviewProvider({ isPreviewMode, focusedField, onFieldClick, children }) {
21
+ const value = React$1.useMemo(() => ({
22
+ isPreviewMode,
23
+ focusedField,
24
+ handleFieldClick: onFieldClick
25
+ }), [
26
+ isPreviewMode,
27
+ focusedField,
28
+ onFieldClick
29
+ ]);
30
+ return /* @__PURE__ */ jsx(PreviewContext.Provider, {
31
+ value,
32
+ children
33
+ });
34
+ }
35
+ /**
36
+ * Hook to access preview context.
37
+ */
38
+ function usePreviewContext() {
39
+ return React$1.useContext(PreviewContext);
40
+ }
41
+ /**
42
+ * Wrapper that makes a field clickable in preview mode.
43
+ *
44
+ * When clicked in preview, signals to admin to focus that field in the form.
45
+ * Automatically resolves field paths using block scope context if available.
46
+ *
47
+ * @example
48
+ * ```tsx
49
+ * // Regular field
50
+ * <PreviewField field="title" as="h1" className="text-4xl">
51
+ * {data.title}
52
+ * </PreviewField>
53
+ *
54
+ * // Relation field
55
+ * <PreviewField field="author" fieldType="relation">
56
+ * {data.author.name}
57
+ * </PreviewField>
58
+ *
59
+ * // Inside a block (auto-resolves to content._values.{blockId}.title)
60
+ * <PreviewField field="title">
61
+ * {values.title}
62
+ * </PreviewField>
63
+ * ```
64
+ */
65
+ function PreviewField({ field, fieldType = "regular", children, as: Component = "div", className, onClick }) {
66
+ const context = usePreviewContext();
67
+ const blockScope = useBlockScope();
68
+ const fullPath = useResolveFieldPath(field);
69
+ if (!context?.isPreviewMode) return /* @__PURE__ */ jsx(Component, {
70
+ className,
71
+ children
72
+ });
73
+ const { handleFieldClick, focusedField } = context;
74
+ const isFocused = focusedField === fullPath;
75
+ const handleClick = (e) => {
76
+ e.stopPropagation();
77
+ if (onClick) onClick(fullPath, {
78
+ blockId: blockScope?.blockId,
79
+ fieldType
80
+ });
81
+ else handleFieldClick(fullPath, {
82
+ blockId: blockScope?.blockId,
83
+ fieldType
84
+ });
85
+ };
86
+ return /* @__PURE__ */ jsx(Component, {
87
+ "data-preview-field": fullPath,
88
+ "data-block-id": blockScope?.blockId,
89
+ "data-field-type": fieldType,
90
+ onClick: handleClick,
91
+ className: cn(className, "group relative cursor-pointer transition-all duration-150", "hover:outline hover:outline-2 hover:outline-dashed hover:outline-primary/60 hover:outline-offset-2 hover:rounded-sm", isFocused && "outline outline-2 outline-primary outline-offset-2 rounded-sm"),
92
+ children
93
+ });
94
+ }
95
+ /**
96
+ * Standalone PreviewField that works without context.
97
+ * Useful when you can't use PreviewProvider.
98
+ */
99
+ function StandalonePreviewField({ field, fieldType = "regular", children, as: Component = "div", className, isPreviewMode, isFocused, onFieldClick }) {
100
+ const blockScope = useBlockScope();
101
+ const fullPath = useResolveFieldPath(field);
102
+ if (!isPreviewMode) return /* @__PURE__ */ jsx(Component, {
103
+ className,
104
+ children
105
+ });
106
+ const handleClick = (e) => {
107
+ e.stopPropagation();
108
+ onFieldClick(fullPath, {
109
+ blockId: blockScope?.blockId,
110
+ fieldType
111
+ });
112
+ };
113
+ return /* @__PURE__ */ jsx(Component, {
114
+ "data-preview-field": fullPath,
115
+ "data-block-id": blockScope?.blockId,
116
+ "data-field-type": fieldType,
117
+ onClick: handleClick,
118
+ className: cn(className, "group relative cursor-pointer transition-all duration-150", "hover:outline hover:outline-2 hover:outline-dashed hover:outline-primary/60 hover:outline-offset-2 hover:rounded-sm", isFocused && "outline outline-2 outline-primary outline-offset-2 rounded-sm"),
119
+ children
120
+ });
121
+ }
122
+
123
+ //#endregion
124
+ export { PreviewField, PreviewProvider, StandalonePreviewField, usePreviewContext };
125
+ //# sourceMappingURL=preview-field.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preview-field.mjs","names":["React"],"sources":["../../../src/client/preview/preview-field.tsx"],"sourcesContent":["/**\n * PreviewField Component\n *\n * Wrapper component that makes fields clickable in preview mode.\n * When clicked, signals to admin to focus that field in the form.\n */\n\n\"use client\";\n\nimport * as React from \"react\";\nimport { cn } from \"../lib/utils.js\";\nimport { useBlockScope, useResolveFieldPath } from \"./block-scope-context.js\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type PreviewFieldProps = {\n /** Field name (for click-to-focus) - will be resolved with block scope if available */\n field: string;\n /** Field type for routing (regular, block, or relation) */\n fieldType?: \"regular\" | \"block\" | \"relation\";\n /** Content to render */\n children: React.ReactNode;\n /** HTML element type */\n as?: React.ElementType;\n /** Additional class names */\n className?: string;\n /** Click handler (uses context by default) */\n onClick?: (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => void;\n};\n\n// ============================================================================\n// Context\n// ============================================================================\n\ntype PreviewContextValue = {\n isPreviewMode: boolean;\n handleFieldClick: (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => void;\n focusedField: string | null;\n};\n\nconst PreviewContext = React.createContext<PreviewContextValue | null>(null);\n\n/**\n * Provider for preview mode context.\n * Use this at the root of your preview page.\n */\nexport function PreviewProvider({\n isPreviewMode,\n focusedField,\n onFieldClick,\n children,\n}: {\n isPreviewMode: boolean;\n focusedField: string | null;\n onFieldClick: (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => void;\n children: React.ReactNode;\n}) {\n const value = React.useMemo(\n () => ({\n isPreviewMode,\n focusedField,\n handleFieldClick: onFieldClick,\n }),\n [isPreviewMode, focusedField, onFieldClick],\n );\n\n return (\n <PreviewContext.Provider value={value}>{children}</PreviewContext.Provider>\n );\n}\n\n/**\n * Hook to access preview context.\n */\nexport function usePreviewContext(): PreviewContextValue | null {\n return React.useContext(PreviewContext);\n}\n\n// ============================================================================\n// Component\n// ============================================================================\n\n/**\n * Wrapper that makes a field clickable in preview mode.\n *\n * When clicked in preview, signals to admin to focus that field in the form.\n * Automatically resolves field paths using block scope context if available.\n *\n * @example\n * ```tsx\n * // Regular field\n * <PreviewField field=\"title\" as=\"h1\" className=\"text-4xl\">\n * {data.title}\n * </PreviewField>\n *\n * // Relation field\n * <PreviewField field=\"author\" fieldType=\"relation\">\n * {data.author.name}\n * </PreviewField>\n *\n * // Inside a block (auto-resolves to content._values.{blockId}.title)\n * <PreviewField field=\"title\">\n * {values.title}\n * </PreviewField>\n * ```\n */\nexport function PreviewField({\n field,\n fieldType = \"regular\",\n children,\n as: Component = \"div\",\n className,\n onClick,\n}: PreviewFieldProps) {\n const context = usePreviewContext();\n const blockScope = useBlockScope();\n const fullPath = useResolveFieldPath(field);\n\n // If no context or not in preview mode, just render normally\n if (!context?.isPreviewMode) {\n return <Component className={className}>{children}</Component>;\n }\n\n const { handleFieldClick, focusedField } = context;\n const isFocused = focusedField === fullPath;\n\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n if (onClick) {\n onClick(fullPath, {\n blockId: blockScope?.blockId,\n fieldType,\n });\n } else {\n handleFieldClick(fullPath, {\n blockId: blockScope?.blockId,\n fieldType,\n });\n }\n };\n\n return (\n <Component\n data-preview-field={fullPath}\n data-block-id={blockScope?.blockId}\n data-field-type={fieldType}\n onClick={handleClick}\n className={cn(\n className,\n \"group relative cursor-pointer transition-all duration-150\",\n \"hover:outline hover:outline-2 hover:outline-dashed hover:outline-primary/60 hover:outline-offset-2 hover:rounded-sm\",\n isFocused &&\n \"outline outline-2 outline-primary outline-offset-2 rounded-sm\",\n )}\n >\n {children}\n </Component>\n );\n}\n\n/**\n * Standalone PreviewField that works without context.\n * Useful when you can't use PreviewProvider.\n */\nexport function StandalonePreviewField({\n field,\n fieldType = \"regular\",\n children,\n as: Component = \"div\",\n className,\n isPreviewMode,\n isFocused,\n onFieldClick,\n}: PreviewFieldProps & {\n isPreviewMode: boolean;\n isFocused?: boolean;\n onFieldClick: (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => void;\n}) {\n const blockScope = useBlockScope();\n const fullPath = useResolveFieldPath(field);\n\n if (!isPreviewMode) {\n return <Component className={className}>{children}</Component>;\n }\n\n const handleClick = (e: React.MouseEvent) => {\n e.stopPropagation();\n onFieldClick(fullPath, {\n blockId: blockScope?.blockId,\n fieldType,\n });\n };\n\n return (\n <Component\n data-preview-field={fullPath}\n data-block-id={blockScope?.blockId}\n data-field-type={fieldType}\n onClick={handleClick}\n className={cn(\n className,\n \"group relative cursor-pointer transition-all duration-150\",\n \"hover:outline hover:outline-2 hover:outline-dashed hover:outline-primary/60 hover:outline-offset-2 hover:rounded-sm\",\n isFocused &&\n \"outline outline-2 outline-primary outline-offset-2 rounded-sm\",\n )}\n >\n {children}\n </Component>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAsDA,MAAM,iBAAiBA,QAAM,cAA0C,KAAK;;;;;AAM5E,SAAgB,gBAAgB,EAC9B,eACA,cACA,cACA,YAYC;CACD,MAAM,QAAQA,QAAM,eACX;EACL;EACA;EACA,kBAAkB;EACnB,GACD;EAAC;EAAe;EAAc;EAAa,CAC5C;AAED,QACE,oBAAC,eAAe;EAAgB;EAAQ;GAAmC;;;;;AAO/E,SAAgB,oBAAgD;AAC9D,QAAOA,QAAM,WAAW,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BzC,SAAgB,aAAa,EAC3B,OACA,YAAY,WACZ,UACA,IAAI,YAAY,OAChB,WACA,WACoB;CACpB,MAAM,UAAU,mBAAmB;CACnC,MAAM,aAAa,eAAe;CAClC,MAAM,WAAW,oBAAoB,MAAM;AAG3C,KAAI,CAAC,SAAS,cACZ,QAAO,oBAAC;EAAqB;EAAY;GAAqB;CAGhE,MAAM,EAAE,kBAAkB,iBAAiB;CAC3C,MAAM,YAAY,iBAAiB;CAEnC,MAAM,eAAe,MAAwB;AAC3C,IAAE,iBAAiB;AACnB,MAAI,QACF,SAAQ,UAAU;GAChB,SAAS,YAAY;GACrB;GACD,CAAC;MAEF,kBAAiB,UAAU;GACzB,SAAS,YAAY;GACrB;GACD,CAAC;;AAIN,QACE,oBAAC;EACC,sBAAoB;EACpB,iBAAe,YAAY;EAC3B,mBAAiB;EACjB,SAAS;EACT,WAAW,GACT,WACA,6DACA,uHACA,aACE,gEACH;EAEA;GACS;;;;;;AAQhB,SAAgB,uBAAuB,EACrC,OACA,YAAY,WACZ,UACA,IAAI,YAAY,OAChB,WACA,eACA,WACA,gBAWC;CACD,MAAM,aAAa,eAAe;CAClC,MAAM,WAAW,oBAAoB,MAAM;AAE3C,KAAI,CAAC,cACH,QAAO,oBAAC;EAAqB;EAAY;GAAqB;CAGhE,MAAM,eAAe,MAAwB;AAC3C,IAAE,iBAAiB;AACnB,eAAa,UAAU;GACrB,SAAS,YAAY;GACrB;GACD,CAAC;;AAGJ,QACE,oBAAC;EACC,sBAAoB;EACpB,iBAAe,YAAY;EAC3B,mBAAiB;EACjB,SAAS;EACT,WAAW,GACT,WACA,6DACA,uHACA,aACE,gEACH;EAEA;GACS"}
@@ -0,0 +1,115 @@
1
+ //#region src/client/preview/types.d.ts
2
+ /**
3
+ * Collection Preview Types
4
+ *
5
+ * PostMessage protocol and types for live preview communication
6
+ * between admin and preview iframe.
7
+ */
8
+ /**
9
+ * Signal preview to refresh (invalidate and re-run loader).
10
+ */
11
+ type PreviewRefreshMessage = {
12
+ type: "PREVIEW_REFRESH";
13
+ /** Optional hint about which field changed */
14
+ changedField?: string;
15
+ };
16
+ /**
17
+ * Select a block in the preview.
18
+ */
19
+ type SelectBlockMessage = {
20
+ type: "SELECT_BLOCK";
21
+ /** Block ID to select */
22
+ blockId: string;
23
+ };
24
+ /**
25
+ * Focus a field in the preview.
26
+ */
27
+ type FocusFieldMessage = {
28
+ type: "FOCUS_FIELD";
29
+ /** Field path to focus (supports full scoped paths) */
30
+ fieldPath: string;
31
+ };
32
+ /**
33
+ * All messages from Admin to Preview.
34
+ */
35
+ type AdminToPreviewMessage = PreviewRefreshMessage | SelectBlockMessage | FocusFieldMessage;
36
+ /**
37
+ * Preview is ready to receive data.
38
+ */
39
+ type PreviewReadyMessage = {
40
+ type: "PREVIEW_READY";
41
+ };
42
+ /**
43
+ * A field was clicked in the preview.
44
+ */
45
+ type FieldClickedMessage = {
46
+ type: "FIELD_CLICKED";
47
+ /** Full scoped field path */
48
+ fieldPath: string;
49
+ /** Block context hint */
50
+ blockId?: string;
51
+ /** Field type for routing */
52
+ fieldType?: "regular" | "block" | "relation";
53
+ };
54
+ /**
55
+ * A block was clicked in the preview.
56
+ */
57
+ type BlockClickedMessage = {
58
+ type: "BLOCK_CLICKED";
59
+ /** Block ID that was clicked */
60
+ blockId: string;
61
+ };
62
+ /**
63
+ * Preview refresh completed.
64
+ * Sent after preview successfully re-runs loader.
65
+ */
66
+ type RefreshCompleteMessage = {
67
+ type: "REFRESH_COMPLETE";
68
+ /** Timestamp of completion */
69
+ timestamp: number;
70
+ };
71
+ /**
72
+ * All messages from Preview to Admin.
73
+ */
74
+ type PreviewToAdminMessage = PreviewReadyMessage | FieldClickedMessage | BlockClickedMessage | RefreshCompleteMessage;
75
+ /**
76
+ * Preview configuration for a collection.
77
+ */
78
+ type PreviewConfig = {
79
+ /**
80
+ * URL builder for preview iframe.
81
+ * Receives current form values and locale.
82
+ */
83
+ url: (values: Record<string, unknown>, locale: string) => string;
84
+ /**
85
+ * Enable/disable preview.
86
+ * @default true if url is defined
87
+ */
88
+ enabled?: boolean;
89
+ /**
90
+ * Preview pane position.
91
+ * @default "right"
92
+ */
93
+ position?: "right" | "bottom" | "modal";
94
+ /**
95
+ * Default preview pane size (percentage).
96
+ * @default 50
97
+ */
98
+ defaultSize?: number;
99
+ /**
100
+ * Minimum pane size (percentage).
101
+ * @default 30
102
+ */
103
+ minSize?: number;
104
+ };
105
+ /**
106
+ * Check if a message is from admin to preview.
107
+ */
108
+ declare function isAdminToPreviewMessage(data: unknown): data is AdminToPreviewMessage;
109
+ /**
110
+ * Check if a message is from preview to admin.
111
+ */
112
+ declare function isPreviewToAdminMessage(data: unknown): data is PreviewToAdminMessage;
113
+ //#endregion
114
+ export { AdminToPreviewMessage, BlockClickedMessage, FieldClickedMessage, FocusFieldMessage, PreviewConfig, PreviewReadyMessage, PreviewRefreshMessage, PreviewToAdminMessage, RefreshCompleteMessage, SelectBlockMessage, isAdminToPreviewMessage, isPreviewToAdminMessage };
115
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/client/preview/types.ts"],"sourcesContent":[],"mappings":";;AAcA;AASA;AASA;AASA;;;;;AAYY,KAvCA,qBAAA,GAuCmB;EAOnB,IAAA,EAAA,iBAAmB;EAanB;EAUA,YAAA,CAAA,EAAA,MAAA;AASZ,CAAA;;;;AAII,KAzEQ,kBAAA,GAyER;EAAsB,IAAA,EAAA,cAAA;EASd;EAuCI,OAAA,EAAA,MAAA;AAehB,CAAA;;;;KA/HY,iBAAA;;;;;;;;KASA,qBAAA,GACR,wBACA,qBACA;;;;KASQ,mBAAA;;;;;;KAOA,mBAAA;;;;;;;;;;;;KAaA,mBAAA;;;;;;;;;KAUA,sBAAA;;;;;;;;KASA,qBAAA,GACR,sBACA,sBACA,sBACA;;;;KASQ,aAAA;;;;;gBAKI;;;;;;;;;;;;;;;;;;;;;;;;;iBAkCA,uBAAA,yBAEL;;;;iBAaK,uBAAA,yBAEL"}
@@ -0,0 +1,21 @@
1
+ //#region src/client/preview/types.ts
2
+ /**
3
+ * Check if a message is from admin to preview.
4
+ */
5
+ function isAdminToPreviewMessage(data) {
6
+ if (!data || typeof data !== "object") return false;
7
+ const msg = data;
8
+ return msg.type === "PREVIEW_REFRESH" || msg.type === "SELECT_BLOCK" || msg.type === "FOCUS_FIELD";
9
+ }
10
+ /**
11
+ * Check if a message is from preview to admin.
12
+ */
13
+ function isPreviewToAdminMessage(data) {
14
+ if (!data || typeof data !== "object") return false;
15
+ const msg = data;
16
+ return msg.type === "PREVIEW_READY" || msg.type === "FIELD_CLICKED" || msg.type === "BLOCK_CLICKED" || msg.type === "REFRESH_COMPLETE";
17
+ }
18
+
19
+ //#endregion
20
+ export { isAdminToPreviewMessage, isPreviewToAdminMessage };
21
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","names":[],"sources":["../../../src/client/preview/types.ts"],"sourcesContent":["/**\n * Collection Preview Types\n *\n * PostMessage protocol and types for live preview communication\n * between admin and preview iframe.\n */\n\n// ============================================================================\n// Admin -> Preview Messages\n// ============================================================================\n\n/**\n * Signal preview to refresh (invalidate and re-run loader).\n */\nexport type PreviewRefreshMessage = {\n type: \"PREVIEW_REFRESH\";\n /** Optional hint about which field changed */\n changedField?: string;\n};\n\n/**\n * Select a block in the preview.\n */\nexport type SelectBlockMessage = {\n type: \"SELECT_BLOCK\";\n /** Block ID to select */\n blockId: string;\n};\n\n/**\n * Focus a field in the preview.\n */\nexport type FocusFieldMessage = {\n type: \"FOCUS_FIELD\";\n /** Field path to focus (supports full scoped paths) */\n fieldPath: string;\n};\n\n/**\n * All messages from Admin to Preview.\n */\nexport type AdminToPreviewMessage =\n | PreviewRefreshMessage\n | SelectBlockMessage\n | FocusFieldMessage;\n\n// ============================================================================\n// Preview -> Admin Messages\n// ============================================================================\n\n/**\n * Preview is ready to receive data.\n */\nexport type PreviewReadyMessage = {\n type: \"PREVIEW_READY\";\n};\n\n/**\n * A field was clicked in the preview.\n */\nexport type FieldClickedMessage = {\n type: \"FIELD_CLICKED\";\n /** Full scoped field path */\n fieldPath: string;\n /** Block context hint */\n blockId?: string;\n /** Field type for routing */\n fieldType?: \"regular\" | \"block\" | \"relation\";\n};\n\n/**\n * A block was clicked in the preview.\n */\nexport type BlockClickedMessage = {\n type: \"BLOCK_CLICKED\";\n /** Block ID that was clicked */\n blockId: string;\n};\n\n/**\n * Preview refresh completed.\n * Sent after preview successfully re-runs loader.\n */\nexport type RefreshCompleteMessage = {\n type: \"REFRESH_COMPLETE\";\n /** Timestamp of completion */\n timestamp: number;\n};\n\n/**\n * All messages from Preview to Admin.\n */\nexport type PreviewToAdminMessage =\n | PreviewReadyMessage\n | FieldClickedMessage\n | BlockClickedMessage\n | RefreshCompleteMessage;\n\n// ============================================================================\n// Preview Configuration\n// ============================================================================\n\n/**\n * Preview configuration for a collection.\n */\nexport type PreviewConfig = {\n /**\n * URL builder for preview iframe.\n * Receives current form values and locale.\n */\n url: (values: Record<string, unknown>, locale: string) => string;\n\n /**\n * Enable/disable preview.\n * @default true if url is defined\n */\n enabled?: boolean;\n\n /**\n * Preview pane position.\n * @default \"right\"\n */\n position?: \"right\" | \"bottom\" | \"modal\";\n\n /**\n * Default preview pane size (percentage).\n * @default 50\n */\n defaultSize?: number;\n\n /**\n * Minimum pane size (percentage).\n * @default 30\n */\n minSize?: number;\n};\n\n// ============================================================================\n// Type Guards\n// ============================================================================\n\n/**\n * Check if a message is from admin to preview.\n */\nexport function isAdminToPreviewMessage(\n data: unknown,\n): data is AdminToPreviewMessage {\n if (!data || typeof data !== \"object\") return false;\n const msg = data as { type?: string };\n return (\n msg.type === \"PREVIEW_REFRESH\" ||\n msg.type === \"SELECT_BLOCK\" ||\n msg.type === \"FOCUS_FIELD\"\n );\n}\n\n/**\n * Check if a message is from preview to admin.\n */\nexport function isPreviewToAdminMessage(\n data: unknown,\n): data is PreviewToAdminMessage {\n if (!data || typeof data !== \"object\") return false;\n const msg = data as { type?: string };\n return (\n msg.type === \"PREVIEW_READY\" ||\n msg.type === \"FIELD_CLICKED\" ||\n msg.type === \"BLOCK_CLICKED\" ||\n msg.type === \"REFRESH_COMPLETE\"\n );\n}\n"],"mappings":";;;;AAgJA,SAAgB,wBACd,MAC+B;AAC/B,KAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;CAC9C,MAAM,MAAM;AACZ,QACE,IAAI,SAAS,qBACb,IAAI,SAAS,kBACb,IAAI,SAAS;;;;;AAOjB,SAAgB,wBACd,MAC+B;AAC/B,KAAI,CAAC,QAAQ,OAAO,SAAS,SAAU,QAAO;CAC9C,MAAM,MAAM;AACZ,QACE,IAAI,SAAS,mBACb,IAAI,SAAS,mBACb,IAAI,SAAS,mBACb,IAAI,SAAS"}
@@ -0,0 +1,71 @@
1
+ //#region src/client/preview/use-collection-preview.d.ts
2
+ /**
3
+ * useCollectionPreview Hook
4
+ *
5
+ * Hook for frontend pages to receive live preview data from admin.
6
+ * Handles postMessage communication with the admin iframe parent.
7
+ */
8
+ type UseCollectionPreviewOptions<TData> = {
9
+ /** Server-loaded data (from loader/SSR) */
10
+ initialData: TData;
11
+ /**
12
+ * Callback to refresh data (e.g., router.invalidate()).
13
+ * Required for preview functionality.
14
+ */
15
+ onRefresh: () => void | Promise<void>;
16
+ };
17
+ type UseCollectionPreviewResult<TData> = {
18
+ /** Current data (from initialData, refreshed via onRefresh) */
19
+ data: TData;
20
+ /** Whether we're in preview mode (inside admin iframe) */
21
+ isPreviewMode: boolean;
22
+ /** Currently selected block ID */
23
+ selectedBlockId: string | null;
24
+ /** Focused field path */
25
+ focusedField: string | null;
26
+ /** Call when a field is clicked in preview */
27
+ handleFieldClick: (fieldPath: string, context?: {
28
+ blockId?: string;
29
+ fieldType?: "regular" | "block" | "relation";
30
+ }) => void;
31
+ /** Call when a block is clicked in preview */
32
+ handleBlockClick: (blockId: string) => void;
33
+ };
34
+ /**
35
+ * Hook for receiving live preview data from admin.
36
+ *
37
+ * Use this in your frontend page components to enable live preview.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * function PageRoute() {
42
+ * const loaderData = Route.useLoaderData();
43
+ * const router = useRouter();
44
+ *
45
+ * const { data, isPreviewMode, selectedBlockId, handleBlockClick } =
46
+ * useCollectionPreview({
47
+ * initialData: loaderData.page,
48
+ * onRefresh: () => router.invalidate(),
49
+ * });
50
+ *
51
+ * return (
52
+ * <article>
53
+ * <PreviewField field="title" as="h1">{data.title}</PreviewField>
54
+ * <BlockRenderer
55
+ * content={data.content}
56
+ * blocks={blocks}
57
+ * selectedBlockId={selectedBlockId}
58
+ * onBlockClick={handleBlockClick}
59
+ * />
60
+ * </article>
61
+ * );
62
+ * }
63
+ * ```
64
+ */
65
+ declare function useCollectionPreview<TData extends Record<string, unknown>>({
66
+ initialData,
67
+ onRefresh
68
+ }: UseCollectionPreviewOptions<TData>): UseCollectionPreviewResult<TData>;
69
+ //#endregion
70
+ export { UseCollectionPreviewOptions, UseCollectionPreviewResult, useCollectionPreview };
71
+ //# sourceMappingURL=use-collection-preview.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collection-preview.d.mts","names":[],"sources":["../../../src/client/preview/use-collection-preview.ts"],"sourcesContent":[],"mappings":";;AAgBA;AAUA;AAwDA;;;AAEE,KApEU,2BAoEV,CAAA,KAAA,CAAA,GAAA;EAC6B;EAA5B,WAAA,EAnEY,KAmEZ;EAAgE;;;;0BA9DzC;;KAGd;;QAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsDQ,mCAAmC;;;GAGhD,4BAA4B,SAAS,2BAA2B"}
@@ -0,0 +1,114 @@
1
+ "use client";
2
+
3
+ import * as React$1 from "react";
4
+
5
+ //#region src/client/preview/use-collection-preview.ts
6
+ /**
7
+ * useCollectionPreview Hook
8
+ *
9
+ * Hook for frontend pages to receive live preview data from admin.
10
+ * Handles postMessage communication with the admin iframe parent.
11
+ */
12
+ /**
13
+ * Hook for receiving live preview data from admin.
14
+ *
15
+ * Use this in your frontend page components to enable live preview.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * function PageRoute() {
20
+ * const loaderData = Route.useLoaderData();
21
+ * const router = useRouter();
22
+ *
23
+ * const { data, isPreviewMode, selectedBlockId, handleBlockClick } =
24
+ * useCollectionPreview({
25
+ * initialData: loaderData.page,
26
+ * onRefresh: () => router.invalidate(),
27
+ * });
28
+ *
29
+ * return (
30
+ * <article>
31
+ * <PreviewField field="title" as="h1">{data.title}</PreviewField>
32
+ * <BlockRenderer
33
+ * content={data.content}
34
+ * blocks={blocks}
35
+ * selectedBlockId={selectedBlockId}
36
+ * onBlockClick={handleBlockClick}
37
+ * />
38
+ * </article>
39
+ * );
40
+ * }
41
+ * ```
42
+ */
43
+ function useCollectionPreview({ initialData, onRefresh }) {
44
+ const [selectedBlockId, setSelectedBlockId] = React$1.useState(null);
45
+ const [focusedField, setFocusedField] = React$1.useState(null);
46
+ const isPreviewMode = React$1.useMemo(() => {
47
+ if (typeof window === "undefined") return false;
48
+ try {
49
+ return window.self !== window.top;
50
+ } catch {
51
+ return true;
52
+ }
53
+ }, []);
54
+ const onRefreshRef = React$1.useRef(onRefresh);
55
+ React$1.useEffect(() => {
56
+ onRefreshRef.current = onRefresh;
57
+ }, [onRefresh]);
58
+ React$1.useEffect(() => {
59
+ if (!isPreviewMode) return;
60
+ window.parent.postMessage({ type: "PREVIEW_READY" }, "*");
61
+ const handleMessage = async (event) => {
62
+ const message = event.data;
63
+ if (!message || typeof message !== "object" || !message.type) return;
64
+ switch (message.type) {
65
+ case "PREVIEW_REFRESH":
66
+ await onRefreshRef.current();
67
+ window.parent.postMessage({
68
+ type: "REFRESH_COMPLETE",
69
+ timestamp: Date.now()
70
+ }, "*");
71
+ break;
72
+ case "SELECT_BLOCK":
73
+ setSelectedBlockId(message.blockId);
74
+ break;
75
+ case "FOCUS_FIELD":
76
+ setFocusedField(message.fieldPath);
77
+ setTimeout(() => {
78
+ const element = document.querySelector(`[data-preview-field="${message.fieldPath}"]`);
79
+ if (element) element.scrollIntoView({
80
+ behavior: "smooth",
81
+ block: "center"
82
+ });
83
+ }, 150);
84
+ break;
85
+ }
86
+ };
87
+ window.addEventListener("message", handleMessage);
88
+ return () => window.removeEventListener("message", handleMessage);
89
+ }, [isPreviewMode]);
90
+ return {
91
+ data: initialData,
92
+ isPreviewMode,
93
+ selectedBlockId,
94
+ focusedField,
95
+ handleFieldClick: React$1.useCallback((fieldPath, context) => {
96
+ if (isPreviewMode) window.parent.postMessage({
97
+ type: "FIELD_CLICKED",
98
+ fieldPath,
99
+ blockId: context?.blockId,
100
+ fieldType: context?.fieldType
101
+ }, "*");
102
+ }, [isPreviewMode]),
103
+ handleBlockClick: React$1.useCallback((blockId) => {
104
+ if (isPreviewMode) window.parent.postMessage({
105
+ type: "BLOCK_CLICKED",
106
+ blockId
107
+ }, "*");
108
+ }, [isPreviewMode])
109
+ };
110
+ }
111
+
112
+ //#endregion
113
+ export { useCollectionPreview };
114
+ //# sourceMappingURL=use-collection-preview.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-collection-preview.mjs","names":["React"],"sources":["../../../src/client/preview/use-collection-preview.ts"],"sourcesContent":["/**\n * useCollectionPreview Hook\n *\n * Hook for frontend pages to receive live preview data from admin.\n * Handles postMessage communication with the admin iframe parent.\n */\n\n\"use client\";\n\nimport * as React from \"react\";\nimport type { AdminToPreviewMessage } from \"./types.js\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type UseCollectionPreviewOptions<TData> = {\n /** Server-loaded data (from loader/SSR) */\n initialData: TData;\n /**\n * Callback to refresh data (e.g., router.invalidate()).\n * Required for preview functionality.\n */\n onRefresh: () => void | Promise<void>;\n};\n\nexport type UseCollectionPreviewResult<TData> = {\n /** Current data (from initialData, refreshed via onRefresh) */\n data: TData;\n /** Whether we're in preview mode (inside admin iframe) */\n isPreviewMode: boolean;\n /** Currently selected block ID */\n selectedBlockId: string | null;\n /** Focused field path */\n focusedField: string | null;\n /** Call when a field is clicked in preview */\n handleFieldClick: (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => void;\n /** Call when a block is clicked in preview */\n handleBlockClick: (blockId: string) => void;\n};\n\n// ============================================================================\n// Hook\n// ============================================================================\n\n/**\n * Hook for receiving live preview data from admin.\n *\n * Use this in your frontend page components to enable live preview.\n *\n * @example\n * ```tsx\n * function PageRoute() {\n * const loaderData = Route.useLoaderData();\n * const router = useRouter();\n *\n * const { data, isPreviewMode, selectedBlockId, handleBlockClick } =\n * useCollectionPreview({\n * initialData: loaderData.page,\n * onRefresh: () => router.invalidate(),\n * });\n *\n * return (\n * <article>\n * <PreviewField field=\"title\" as=\"h1\">{data.title}</PreviewField>\n * <BlockRenderer\n * content={data.content}\n * blocks={blocks}\n * selectedBlockId={selectedBlockId}\n * onBlockClick={handleBlockClick}\n * />\n * </article>\n * );\n * }\n * ```\n */\nexport function useCollectionPreview<TData extends Record<string, unknown>>({\n initialData,\n onRefresh,\n}: UseCollectionPreviewOptions<TData>): UseCollectionPreviewResult<TData> {\n const [selectedBlockId, setSelectedBlockId] = React.useState<string | null>(\n null,\n );\n const [focusedField, setFocusedField] = React.useState<string | null>(null);\n\n // Check if we're in an iframe (preview mode)\n const isPreviewMode = React.useMemo(() => {\n if (typeof window === \"undefined\") return false;\n try {\n return window.self !== window.top;\n } catch {\n // Cross-origin iframe - assume we're in preview mode\n return true;\n }\n }, []);\n\n // Keep onRefresh in a ref to avoid stale closures while maintaining stable reference\n const onRefreshRef = React.useRef(onRefresh);\n React.useEffect(() => {\n onRefreshRef.current = onRefresh;\n }, [onRefresh]);\n\n // Set up postMessage listener\n React.useEffect(() => {\n if (!isPreviewMode) return;\n\n // Signal that preview is ready\n window.parent.postMessage({ type: \"PREVIEW_READY\" }, \"*\");\n\n const handleMessage = async (\n event: MessageEvent<AdminToPreviewMessage>,\n ) => {\n // In production, validate origin here\n const message = event.data;\n\n if (!message || typeof message !== \"object\" || !message.type) {\n return;\n }\n\n switch (message.type) {\n case \"PREVIEW_REFRESH\": {\n await onRefreshRef.current();\n window.parent.postMessage(\n {\n type: \"REFRESH_COMPLETE\",\n timestamp: Date.now(),\n },\n \"*\",\n );\n break;\n }\n\n case \"SELECT_BLOCK\":\n setSelectedBlockId(message.blockId);\n break;\n\n case \"FOCUS_FIELD\": {\n setFocusedField(message.fieldPath);\n // Scroll field into view (with delay to ensure React render)\n setTimeout(() => {\n const element = document.querySelector(\n `[data-preview-field=\"${message.fieldPath}\"]`,\n );\n if (element) {\n element.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }\n }, 150);\n break;\n }\n }\n };\n\n window.addEventListener(\"message\", handleMessage);\n return () => window.removeEventListener(\"message\", handleMessage);\n }, [isPreviewMode]);\n\n // Field click handler\n const handleFieldClick = React.useCallback(\n (\n fieldPath: string,\n context?: {\n blockId?: string;\n fieldType?: \"regular\" | \"block\" | \"relation\";\n },\n ) => {\n if (isPreviewMode) {\n window.parent.postMessage(\n {\n type: \"FIELD_CLICKED\",\n fieldPath,\n blockId: context?.blockId,\n fieldType: context?.fieldType,\n },\n \"*\",\n );\n }\n },\n [isPreviewMode],\n );\n\n // Block click handler\n const handleBlockClick = React.useCallback(\n (blockId: string) => {\n if (isPreviewMode) {\n window.parent.postMessage({ type: \"BLOCK_CLICKED\", blockId }, \"*\");\n }\n },\n [isPreviewMode],\n );\n\n return {\n data: initialData,\n isPreviewMode,\n selectedBlockId,\n focusedField,\n handleFieldClick,\n handleBlockClick,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFA,SAAgB,qBAA4D,EAC1E,aACA,aACwE;CACxE,MAAM,CAAC,iBAAiB,sBAAsBA,QAAM,SAClD,KACD;CACD,MAAM,CAAC,cAAc,mBAAmBA,QAAM,SAAwB,KAAK;CAG3E,MAAM,gBAAgBA,QAAM,cAAc;AACxC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,MAAI;AACF,UAAO,OAAO,SAAS,OAAO;UACxB;AAEN,UAAO;;IAER,EAAE,CAAC;CAGN,MAAM,eAAeA,QAAM,OAAO,UAAU;AAC5C,SAAM,gBAAgB;AACpB,eAAa,UAAU;IACtB,CAAC,UAAU,CAAC;AAGf,SAAM,gBAAgB;AACpB,MAAI,CAAC,cAAe;AAGpB,SAAO,OAAO,YAAY,EAAE,MAAM,iBAAiB,EAAE,IAAI;EAEzD,MAAM,gBAAgB,OACpB,UACG;GAEH,MAAM,UAAU,MAAM;AAEtB,OAAI,CAAC,WAAW,OAAO,YAAY,YAAY,CAAC,QAAQ,KACtD;AAGF,WAAQ,QAAQ,MAAhB;IACE,KAAK;AACH,WAAM,aAAa,SAAS;AAC5B,YAAO,OAAO,YACZ;MACE,MAAM;MACN,WAAW,KAAK,KAAK;MACtB,EACD,IACD;AACD;IAGF,KAAK;AACH,wBAAmB,QAAQ,QAAQ;AACnC;IAEF,KAAK;AACH,qBAAgB,QAAQ,UAAU;AAElC,sBAAiB;MACf,MAAM,UAAU,SAAS,cACvB,wBAAwB,QAAQ,UAAU,IAC3C;AACD,UAAI,QACF,SAAQ,eAAe;OAAE,UAAU;OAAU,OAAO;OAAU,CAAC;QAEhE,IAAI;AACP;;;AAKN,SAAO,iBAAiB,WAAW,cAAc;AACjD,eAAa,OAAO,oBAAoB,WAAW,cAAc;IAChE,CAAC,cAAc,CAAC;AAoCnB,QAAO;EACL,MAAM;EACN;EACA;EACA;EACA,kBAtCuBA,QAAM,aAE3B,WACA,YAIG;AACH,OAAI,cACF,QAAO,OAAO,YACZ;IACE,MAAM;IACN;IACA,SAAS,SAAS;IAClB,WAAW,SAAS;IACrB,EACD,IACD;KAGL,CAAC,cAAc,CAChB;EAkBC,kBAfuBA,QAAM,aAC5B,YAAoB;AACnB,OAAI,cACF,QAAO,OAAO,YAAY;IAAE,MAAM;IAAiB;IAAS,EAAE,IAAI;KAGtE,CAAC,cAAc,CAChB;EASA"}
@@ -0,0 +1 @@
1
+ import { ReactElement, ReactNode } from "react";