@pilotiq/pilotiq 0.7.1 → 0.8.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 (367) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/CHANGELOG.md +154 -0
  3. package/CLAUDE.md +59 -3
  4. package/dist/Pilotiq.d.ts +83 -0
  5. package/dist/Pilotiq.d.ts.map +1 -1
  6. package/dist/Pilotiq.js +39 -0
  7. package/dist/Pilotiq.js.map +1 -1
  8. package/dist/actions/Action.d.ts +27 -99
  9. package/dist/actions/Action.d.ts.map +1 -1
  10. package/dist/actions/Action.js +52 -754
  11. package/dist/actions/Action.js.map +1 -1
  12. package/dist/actions/bulkFactories.d.ts +46 -0
  13. package/dist/actions/bulkFactories.d.ts.map +1 -0
  14. package/dist/actions/bulkFactories.js +144 -0
  15. package/dist/actions/bulkFactories.js.map +1 -0
  16. package/dist/actions/crudFactories.d.ts +94 -0
  17. package/dist/actions/crudFactories.d.ts.map +1 -0
  18. package/dist/actions/crudFactories.js +209 -0
  19. package/dist/actions/crudFactories.js.map +1 -0
  20. package/dist/actions/factoryHelpers.d.ts +108 -0
  21. package/dist/actions/factoryHelpers.d.ts.map +1 -0
  22. package/dist/actions/factoryHelpers.js +138 -0
  23. package/dist/actions/factoryHelpers.js.map +1 -0
  24. package/dist/actions/m2mFactories.d.ts +47 -0
  25. package/dist/actions/m2mFactories.d.ts.map +1 -0
  26. package/dist/actions/m2mFactories.js +173 -0
  27. package/dist/actions/m2mFactories.js.map +1 -0
  28. package/dist/actions/relationFactories.d.ts +93 -0
  29. package/dist/actions/relationFactories.d.ts.map +1 -0
  30. package/dist/actions/relationFactories.js +321 -0
  31. package/dist/actions/relationFactories.js.map +1 -0
  32. package/dist/elements/dispatchForm.js +1 -1
  33. package/dist/elements/dispatchForm.js.map +1 -1
  34. package/dist/elements/dispatchTable.js +1 -1
  35. package/dist/elements/dispatchTable.js.map +1 -1
  36. package/dist/fields/Field.d.ts +31 -0
  37. package/dist/fields/Field.d.ts.map +1 -1
  38. package/dist/fields/Field.js +25 -0
  39. package/dist/fields/Field.js.map +1 -1
  40. package/dist/pageData/breadcrumbs.d.ts +42 -0
  41. package/dist/pageData/breadcrumbs.d.ts.map +1 -0
  42. package/dist/pageData/breadcrumbs.js +172 -0
  43. package/dist/pageData/breadcrumbs.js.map +1 -0
  44. package/dist/pageData/forms.d.ts +137 -0
  45. package/dist/pageData/forms.d.ts.map +1 -0
  46. package/dist/pageData/forms.js +427 -0
  47. package/dist/pageData/forms.js.map +1 -0
  48. package/dist/pageData/helpers.d.ts +239 -0
  49. package/dist/pageData/helpers.d.ts.map +1 -0
  50. package/dist/pageData/helpers.js +703 -0
  51. package/dist/pageData/helpers.js.map +1 -0
  52. package/dist/pageData/misc.d.ts +76 -0
  53. package/dist/pageData/misc.d.ts.map +1 -0
  54. package/dist/pageData/misc.js +263 -0
  55. package/dist/pageData/misc.js.map +1 -0
  56. package/dist/pageData/navigation.d.ts +292 -0
  57. package/dist/pageData/navigation.d.ts.map +1 -0
  58. package/dist/pageData/navigation.js +591 -0
  59. package/dist/pageData/navigation.js.map +1 -0
  60. package/dist/pageData/relationPages.d.ts +172 -0
  61. package/dist/pageData/relationPages.d.ts.map +1 -0
  62. package/dist/pageData/relationPages.js +867 -0
  63. package/dist/pageData/relationPages.js.map +1 -0
  64. package/dist/pageData/relationTabs.d.ts +65 -0
  65. package/dist/pageData/relationTabs.d.ts.map +1 -0
  66. package/dist/pageData/relationTabs.js +258 -0
  67. package/dist/pageData/relationTabs.js.map +1 -0
  68. package/dist/pageData/resourcePages.d.ts +48 -0
  69. package/dist/pageData/resourcePages.d.ts.map +1 -0
  70. package/dist/pageData/resourcePages.js +504 -0
  71. package/dist/pageData/resourcePages.js.map +1 -0
  72. package/dist/pageData.d.ts +12 -792
  73. package/dist/pageData.d.ts.map +1 -1
  74. package/dist/pageData.js +24 -3797
  75. package/dist/pageData.js.map +1 -1
  76. package/dist/react/AppShell.d.ts +8 -0
  77. package/dist/react/AppShell.d.ts.map +1 -1
  78. package/dist/react/AppShell.js +11 -1
  79. package/dist/react/AppShell.js.map +1 -1
  80. package/dist/react/CollabExtensionFactoryRegistry.d.ts +47 -0
  81. package/dist/react/CollabExtensionFactoryRegistry.d.ts.map +1 -0
  82. package/dist/react/CollabExtensionFactoryRegistry.js +14 -0
  83. package/dist/react/CollabExtensionFactoryRegistry.js.map +1 -0
  84. package/dist/react/CollabRoomContext.d.ts +37 -0
  85. package/dist/react/CollabRoomContext.d.ts.map +1 -0
  86. package/dist/react/CollabRoomContext.js +12 -0
  87. package/dist/react/CollabRoomContext.js.map +1 -0
  88. package/dist/react/FormCollabBindingRegistry.d.ts +62 -0
  89. package/dist/react/FormCollabBindingRegistry.d.ts.map +1 -0
  90. package/dist/react/FormCollabBindingRegistry.js +14 -0
  91. package/dist/react/FormCollabBindingRegistry.js.map +1 -0
  92. package/dist/react/RecordWrapperGate.d.ts +25 -0
  93. package/dist/react/RecordWrapperGate.d.ts.map +1 -0
  94. package/dist/react/RecordWrapperGate.js +30 -0
  95. package/dist/react/RecordWrapperGate.js.map +1 -0
  96. package/dist/react/RecordWrapperRegistry.d.ts +31 -0
  97. package/dist/react/RecordWrapperRegistry.d.ts.map +1 -0
  98. package/dist/react/RecordWrapperRegistry.js +15 -0
  99. package/dist/react/RecordWrapperRegistry.js.map +1 -0
  100. package/dist/react/SchemaRenderer.d.ts +17 -23
  101. package/dist/react/SchemaRenderer.d.ts.map +1 -1
  102. package/dist/react/SchemaRenderer.js +71 -3647
  103. package/dist/react/SchemaRenderer.js.map +1 -1
  104. package/dist/react/component-slots.d.ts +103 -0
  105. package/dist/react/component-slots.d.ts.map +1 -0
  106. package/dist/react/component-slots.js +18 -0
  107. package/dist/react/component-slots.js.map +1 -0
  108. package/dist/react/fields/BuilderInput.d.ts.map +1 -1
  109. package/dist/react/fields/BuilderInput.js +21 -117
  110. package/dist/react/fields/BuilderInput.js.map +1 -1
  111. package/dist/react/fields/MarkdownInput.d.ts.map +1 -1
  112. package/dist/react/fields/MarkdownInput.js +1 -3
  113. package/dist/react/fields/MarkdownInput.js.map +1 -1
  114. package/dist/react/fields/RepeaterInput.d.ts.map +1 -1
  115. package/dist/react/fields/RepeaterInput.js +22 -127
  116. package/dist/react/fields/RepeaterInput.js.map +1 -1
  117. package/dist/react/fields/rowState.d.ts +40 -0
  118. package/dist/react/fields/rowState.d.ts.map +1 -0
  119. package/dist/react/fields/rowState.js +60 -0
  120. package/dist/react/fields/rowState.js.map +1 -0
  121. package/dist/react/fields/useRowReorderDnd.d.ts +28 -0
  122. package/dist/react/fields/useRowReorderDnd.d.ts.map +1 -0
  123. package/dist/react/fields/useRowReorderDnd.js +51 -0
  124. package/dist/react/fields/useRowReorderDnd.js.map +1 -0
  125. package/dist/react/index.d.ts +9 -0
  126. package/dist/react/index.d.ts.map +1 -1
  127. package/dist/react/index.js +8 -0
  128. package/dist/react/index.js.map +1 -1
  129. package/dist/react/layouts/SidebarLayout.d.ts +1 -1
  130. package/dist/react/layouts/SidebarLayout.d.ts.map +1 -1
  131. package/dist/react/layouts/SidebarLayout.js +10 -2
  132. package/dist/react/layouts/SidebarLayout.js.map +1 -1
  133. package/dist/react/layouts/TopbarLayout.d.ts +1 -1
  134. package/dist/react/layouts/TopbarLayout.d.ts.map +1 -1
  135. package/dist/react/layouts/TopbarLayout.js +19 -11
  136. package/dist/react/layouts/TopbarLayout.js.map +1 -1
  137. package/dist/react/parseRecordEditUrl.d.ts +29 -0
  138. package/dist/react/parseRecordEditUrl.d.ts.map +1 -0
  139. package/dist/react/parseRecordEditUrl.js +25 -0
  140. package/dist/react/parseRecordEditUrl.js.map +1 -0
  141. package/dist/react/persistedState.d.ts +19 -0
  142. package/dist/react/persistedState.d.ts.map +1 -0
  143. package/dist/react/persistedState.js +51 -0
  144. package/dist/react/persistedState.js.map +1 -0
  145. package/dist/react/schemaRenderer/AlertRenderer.d.ts +12 -0
  146. package/dist/react/schemaRenderer/AlertRenderer.d.ts.map +1 -0
  147. package/dist/react/schemaRenderer/AlertRenderer.js +61 -0
  148. package/dist/react/schemaRenderer/AlertRenderer.js.map +1 -0
  149. package/dist/react/schemaRenderer/EntryRenderer.d.ts +13 -0
  150. package/dist/react/schemaRenderer/EntryRenderer.d.ts.map +1 -0
  151. package/dist/react/schemaRenderer/EntryRenderer.js +277 -0
  152. package/dist/react/schemaRenderer/EntryRenderer.js.map +1 -0
  153. package/dist/react/schemaRenderer/SectionRenderer.d.ts +16 -0
  154. package/dist/react/schemaRenderer/SectionRenderer.d.ts.map +1 -0
  155. package/dist/react/schemaRenderer/SectionRenderer.js +62 -0
  156. package/dist/react/schemaRenderer/SectionRenderer.js.map +1 -0
  157. package/dist/react/schemaRenderer/SimpleElements.d.ts +25 -0
  158. package/dist/react/schemaRenderer/SimpleElements.d.ts.map +1 -0
  159. package/dist/react/schemaRenderer/SimpleElements.js +147 -0
  160. package/dist/react/schemaRenderer/SimpleElements.js.map +1 -0
  161. package/dist/react/schemaRenderer/TabsRenderer.d.ts +17 -0
  162. package/dist/react/schemaRenderer/TabsRenderer.d.ts.map +1 -0
  163. package/dist/react/schemaRenderer/TabsRenderer.js +31 -0
  164. package/dist/react/schemaRenderer/TabsRenderer.js.map +1 -0
  165. package/dist/react/schemaRenderer/WizardRenderer.d.ts +34 -0
  166. package/dist/react/schemaRenderer/WizardRenderer.d.ts.map +1 -0
  167. package/dist/react/schemaRenderer/WizardRenderer.js +208 -0
  168. package/dist/react/schemaRenderer/WizardRenderer.js.map +1 -0
  169. package/dist/react/schemaRenderer/action/ActionGroupTrigger.d.ts +21 -0
  170. package/dist/react/schemaRenderer/action/ActionGroupTrigger.d.ts.map +1 -0
  171. package/dist/react/schemaRenderer/action/ActionGroupTrigger.js +82 -0
  172. package/dist/react/schemaRenderer/action/ActionGroupTrigger.js.map +1 -0
  173. package/dist/react/schemaRenderer/action/ActionModalDialog.d.ts +30 -0
  174. package/dist/react/schemaRenderer/action/ActionModalDialog.d.ts.map +1 -0
  175. package/dist/react/schemaRenderer/action/ActionModalDialog.js +182 -0
  176. package/dist/react/schemaRenderer/action/ActionModalDialog.js.map +1 -0
  177. package/dist/react/schemaRenderer/action/ConfirmActionDialog.d.ts +17 -0
  178. package/dist/react/schemaRenderer/action/ConfirmActionDialog.d.ts.map +1 -0
  179. package/dist/react/schemaRenderer/action/ConfirmActionDialog.js +19 -0
  180. package/dist/react/schemaRenderer/action/ConfirmActionDialog.js.map +1 -0
  181. package/dist/react/schemaRenderer/action/HandlerActionButton.d.ts +16 -0
  182. package/dist/react/schemaRenderer/action/HandlerActionButton.d.ts.map +1 -0
  183. package/dist/react/schemaRenderer/action/HandlerActionButton.js +16 -0
  184. package/dist/react/schemaRenderer/action/HandlerActionButton.js.map +1 -0
  185. package/dist/react/schemaRenderer/action/MethodActionButton.d.ts +22 -0
  186. package/dist/react/schemaRenderer/action/MethodActionButton.d.ts.map +1 -0
  187. package/dist/react/schemaRenderer/action/MethodActionButton.js +26 -0
  188. package/dist/react/schemaRenderer/action/MethodActionButton.js.map +1 -0
  189. package/dist/react/schemaRenderer/action/buttons.d.ts +18 -0
  190. package/dist/react/schemaRenderer/action/buttons.d.ts.map +1 -0
  191. package/dist/react/schemaRenderer/action/buttons.js +74 -0
  192. package/dist/react/schemaRenderer/action/buttons.js.map +1 -0
  193. package/dist/react/schemaRenderer/action/helpers.d.ts +26 -0
  194. package/dist/react/schemaRenderer/action/helpers.d.ts.map +1 -0
  195. package/dist/react/schemaRenderer/action/helpers.js +126 -0
  196. package/dist/react/schemaRenderer/action/helpers.js.map +1 -0
  197. package/dist/react/schemaRenderer/action/renderAction.d.ts +21 -0
  198. package/dist/react/schemaRenderer/action/renderAction.d.ts.map +1 -0
  199. package/dist/react/schemaRenderer/action/renderAction.js +102 -0
  200. package/dist/react/schemaRenderer/action/renderAction.js.map +1 -0
  201. package/dist/react/schemaRenderer/columnFormat.d.ts +10 -0
  202. package/dist/react/schemaRenderer/columnFormat.d.ts.map +1 -0
  203. package/dist/react/schemaRenderer/columnFormat.js +76 -0
  204. package/dist/react/schemaRenderer/columnFormat.js.map +1 -0
  205. package/dist/react/schemaRenderer/constants.d.ts +8 -0
  206. package/dist/react/schemaRenderer/constants.d.ts.map +1 -0
  207. package/dist/react/schemaRenderer/constants.js +45 -0
  208. package/dist/react/schemaRenderer/constants.js.map +1 -0
  209. package/dist/react/schemaRenderer/form/FormRenderer.d.ts +29 -0
  210. package/dist/react/schemaRenderer/form/FormRenderer.d.ts.map +1 -0
  211. package/dist/react/schemaRenderer/form/FormRenderer.js +152 -0
  212. package/dist/react/schemaRenderer/form/FormRenderer.js.map +1 -0
  213. package/dist/react/schemaRenderer/form/renderField.d.ts +6 -0
  214. package/dist/react/schemaRenderer/form/renderField.d.ts.map +1 -0
  215. package/dist/react/schemaRenderer/form/renderField.js +239 -0
  216. package/dist/react/schemaRenderer/form/renderField.js.map +1 -0
  217. package/dist/react/schemaRenderer/helpers.d.ts +32 -0
  218. package/dist/react/schemaRenderer/helpers.d.ts.map +1 -0
  219. package/dist/react/schemaRenderer/helpers.js +52 -0
  220. package/dist/react/schemaRenderer/helpers.js.map +1 -0
  221. package/dist/react/schemaRenderer/table/CardsLayoutBody.d.ts +60 -0
  222. package/dist/react/schemaRenderer/table/CardsLayoutBody.d.ts.map +1 -0
  223. package/dist/react/schemaRenderer/table/CardsLayoutBody.js +189 -0
  224. package/dist/react/schemaRenderer/table/CardsLayoutBody.js.map +1 -0
  225. package/dist/react/schemaRenderer/table/TableRenderer.d.ts +29 -0
  226. package/dist/react/schemaRenderer/table/TableRenderer.d.ts.map +1 -0
  227. package/dist/react/schemaRenderer/table/TableRenderer.js +85 -0
  228. package/dist/react/schemaRenderer/table/TableRenderer.js.map +1 -0
  229. package/dist/react/schemaRenderer/table/TableRendererBody.d.ts +18 -0
  230. package/dist/react/schemaRenderer/table/TableRendererBody.d.ts.map +1 -0
  231. package/dist/react/schemaRenderer/table/TableRendererBody.js +555 -0
  232. package/dist/react/schemaRenderer/table/TableRendererBody.js.map +1 -0
  233. package/dist/react/schemaRenderer/table/filters.d.ts +263 -0
  234. package/dist/react/schemaRenderer/table/filters.d.ts.map +1 -0
  235. package/dist/react/schemaRenderer/table/filters.js +497 -0
  236. package/dist/react/schemaRenderer/table/filters.js.map +1 -0
  237. package/dist/react/schemaRenderer/table/formatCell.d.ts +11 -0
  238. package/dist/react/schemaRenderer/table/formatCell.d.ts.map +1 -0
  239. package/dist/react/schemaRenderer/table/formatCell.js +172 -0
  240. package/dist/react/schemaRenderer/table/formatCell.js.map +1 -0
  241. package/dist/react/schemaRenderer/table/links.d.ts +42 -0
  242. package/dist/react/schemaRenderer/table/links.d.ts.map +1 -0
  243. package/dist/react/schemaRenderer/table/links.js +55 -0
  244. package/dist/react/schemaRenderer/table/links.js.map +1 -0
  245. package/dist/react/schemaRenderer/table/renderRowActions.d.ts +13 -0
  246. package/dist/react/schemaRenderer/table/renderRowActions.d.ts.map +1 -0
  247. package/dist/react/schemaRenderer/table/renderRowActions.js +25 -0
  248. package/dist/react/schemaRenderer/table/renderRowActions.js.map +1 -0
  249. package/dist/react/schemaRenderer/table/url.d.ts +41 -0
  250. package/dist/react/schemaRenderer/table/url.d.ts.map +1 -0
  251. package/dist/react/schemaRenderer/table/url.js +114 -0
  252. package/dist/react/schemaRenderer/table/url.js.map +1 -0
  253. package/dist/routes/globals.d.ts +13 -0
  254. package/dist/routes/globals.d.ts.map +1 -0
  255. package/dist/routes/globals.js +131 -0
  256. package/dist/routes/globals.js.map +1 -0
  257. package/dist/routes/helpers.d.ts +217 -0
  258. package/dist/routes/helpers.d.ts.map +1 -0
  259. package/dist/routes/helpers.js +498 -0
  260. package/dist/routes/helpers.js.map +1 -0
  261. package/dist/routes/pages.d.ts +15 -0
  262. package/dist/routes/pages.d.ts.map +1 -0
  263. package/dist/routes/pages.js +145 -0
  264. package/dist/routes/pages.js.map +1 -0
  265. package/dist/routes/panel.d.ts +19 -0
  266. package/dist/routes/panel.d.ts.map +1 -0
  267. package/dist/routes/panel.js +191 -0
  268. package/dist/routes/panel.js.map +1 -0
  269. package/dist/routes/relations.d.ts +21 -0
  270. package/dist/routes/relations.d.ts.map +1 -0
  271. package/dist/routes/relations.js +1239 -0
  272. package/dist/routes/relations.js.map +1 -0
  273. package/dist/routes/resources.d.ts +28 -0
  274. package/dist/routes/resources.d.ts.map +1 -0
  275. package/dist/routes/resources.js +741 -0
  276. package/dist/routes/resources.js.map +1 -0
  277. package/dist/routes/theme.d.ts +12 -0
  278. package/dist/routes/theme.d.ts.map +1 -0
  279. package/dist/routes/theme.js +82 -0
  280. package/dist/routes/theme.js.map +1 -0
  281. package/dist/routes.d.ts.map +1 -1
  282. package/dist/routes.js +64 -3078
  283. package/dist/routes.js.map +1 -1
  284. package/dist/vite.d.ts +1 -0
  285. package/dist/vite.d.ts.map +1 -1
  286. package/dist/vite.js +31 -10
  287. package/dist/vite.js.map +1 -1
  288. package/package.json +2 -1
  289. package/src/Pilotiq.ts +95 -0
  290. package/src/actions/Action.ts +79 -723
  291. package/src/actions/bulkFactories.ts +168 -0
  292. package/src/actions/crudFactories.ts +220 -0
  293. package/src/actions/factoryHelpers.ts +177 -0
  294. package/src/actions/m2mFactories.ts +193 -0
  295. package/src/actions/relationFactories.ts +372 -0
  296. package/src/elements/dispatchForm.ts +1 -1
  297. package/src/elements/dispatchTable.ts +1 -1
  298. package/src/fields/Field.ts +39 -0
  299. package/src/pageData/breadcrumbs.ts +288 -0
  300. package/src/pageData/forms.ts +578 -0
  301. package/src/pageData/helpers.ts +764 -0
  302. package/src/pageData/misc.ts +347 -0
  303. package/src/pageData/navigation.ts +779 -0
  304. package/src/pageData/relationPages.ts +1246 -0
  305. package/src/pageData/relationTabs.ts +286 -0
  306. package/src/pageData/resourcePages.ts +593 -0
  307. package/src/pageData.ts +122 -4731
  308. package/src/react/AppShell.tsx +27 -1
  309. package/src/react/CollabExtensionFactoryRegistry.ts +55 -0
  310. package/src/react/CollabRoomContext.ts +42 -0
  311. package/src/react/FormCollabBindingRegistry.ts +72 -0
  312. package/src/react/RecordWrapperGate.tsx +40 -0
  313. package/src/react/RecordWrapperRegistry.ts +39 -0
  314. package/src/react/SchemaRenderer.tsx +230 -6479
  315. package/src/react/component-slots.test.ts +103 -0
  316. package/src/react/component-slots.ts +116 -0
  317. package/src/react/fields/BuilderInput.tsx +29 -117
  318. package/src/react/fields/MarkdownInput.tsx +0 -1
  319. package/src/react/fields/RepeaterInput.tsx +29 -130
  320. package/src/react/fields/rowState.ts +106 -0
  321. package/src/react/fields/useRowReorderDnd.ts +78 -0
  322. package/src/react/index.ts +38 -0
  323. package/src/react/layouts/SidebarLayout.tsx +39 -28
  324. package/src/react/layouts/TopbarLayout.tsx +70 -57
  325. package/src/react/parseRecordEditUrl.test.ts +75 -0
  326. package/src/react/parseRecordEditUrl.ts +55 -0
  327. package/src/react/persistedState.ts +40 -0
  328. package/src/react/schemaRenderer/AlertRenderer.tsx +112 -0
  329. package/src/react/schemaRenderer/EntryRenderer.tsx +501 -0
  330. package/src/react/schemaRenderer/SectionRenderer.tsx +120 -0
  331. package/src/react/schemaRenderer/SimpleElements.tsx +306 -0
  332. package/src/react/schemaRenderer/TabsRenderer.tsx +62 -0
  333. package/src/react/schemaRenderer/WizardRenderer.tsx +338 -0
  334. package/src/react/schemaRenderer/action/ActionGroupTrigger.tsx +177 -0
  335. package/src/react/schemaRenderer/action/ActionModalDialog.tsx +273 -0
  336. package/src/react/schemaRenderer/action/ConfirmActionDialog.tsx +61 -0
  337. package/src/react/schemaRenderer/action/HandlerActionButton.tsx +43 -0
  338. package/src/react/schemaRenderer/action/MethodActionButton.tsx +64 -0
  339. package/src/react/schemaRenderer/action/buttons.tsx +99 -0
  340. package/src/react/schemaRenderer/action/helpers.ts +140 -0
  341. package/src/react/schemaRenderer/action/renderAction.tsx +245 -0
  342. package/src/react/schemaRenderer/columnFormat.ts +65 -0
  343. package/src/react/schemaRenderer/constants.ts +50 -0
  344. package/src/react/schemaRenderer/form/FormRenderer.tsx +233 -0
  345. package/src/react/schemaRenderer/form/renderField.tsx +511 -0
  346. package/src/react/schemaRenderer/helpers.tsx +81 -0
  347. package/src/react/schemaRenderer/table/CardsLayoutBody.tsx +308 -0
  348. package/src/react/schemaRenderer/table/TableRenderer.tsx +123 -0
  349. package/src/react/schemaRenderer/table/TableRendererBody.tsx +974 -0
  350. package/src/react/schemaRenderer/table/filters.tsx +1233 -0
  351. package/src/react/schemaRenderer/table/formatCell.tsx +264 -0
  352. package/src/react/schemaRenderer/table/links.tsx +112 -0
  353. package/src/react/schemaRenderer/table/renderRowActions.tsx +52 -0
  354. package/src/react/schemaRenderer/table/url.tsx +143 -0
  355. package/src/routes/globals.ts +154 -0
  356. package/src/routes/helpers.ts +668 -0
  357. package/src/routes/pages.ts +173 -0
  358. package/src/routes/panel.ts +204 -0
  359. package/src/routes/relations.ts +1219 -0
  360. package/src/routes/resources.ts +786 -0
  361. package/src/routes/theme.ts +109 -0
  362. package/src/routes.test.ts +1 -1
  363. package/src/routes.ts +64 -3176
  364. package/src/schema/TableWidget.test.ts +2 -2
  365. package/src/theme/migrate.test.ts +178 -0
  366. package/src/vite.test.ts +184 -0
  367. package/src/vite.ts +31 -9
@@ -0,0 +1,239 @@
1
+ import type { PilotiqConfig } from '../Pilotiq.js';
2
+ import type { Page } from '../Page.js';
3
+ import { Element } from '../schema/Element.js';
4
+ import type { SchemaContext, RenderContext } from '../schema/resolveSchema.js';
5
+ import { Form } from '../elements/Form.js';
6
+ import { SelectField } from '../fields/SelectField.js';
7
+ import { RepeaterField } from '../fields/RepeaterField.js';
8
+ import { BuilderField } from '../fields/BuilderField.js';
9
+ import { type ServerDataElement } from '../schema/ServerDataElement.js';
10
+ import { type ModelLike } from '../orm/modelDefaults.js';
11
+ export declare function userCtx<C extends SchemaContext>(ctx: C, user: unknown): C;
12
+ /**
13
+ * Run a (possibly async) boolean predicate; fail closed when it throws.
14
+ *
15
+ * Every page-builder pre-flight that consults `canX(user, …)` needs this
16
+ * shape — predicates may be sync booleans, Promises, or throw at the
17
+ * remote-auth layer; a throw must never propagate to the wire as an
18
+ * unhandled 500.
19
+ */
20
+ export declare function safeBool(fn: () => boolean | Promise<boolean>): Promise<boolean>;
21
+ /** Plan #6 — stamp the panel-wide upload URL so `FileUpload` fields
22
+ * emit it on their meta. Single URL for the whole panel; no per-field
23
+ * variation. The route is always registered (see `_uploads` in
24
+ * `routes.ts`) — meta is stamped regardless of whether an adapter is
25
+ * configured so the renderer can show a clear error rather than
26
+ * silently breaking. The companion `hasUploadAdapter` flag distinguishes
27
+ * "URL exists but adapter missing" so fields with optional upload
28
+ * affordances (e.g. `MarkdownField`'s `attachFiles` button) can hide
29
+ * themselves rather than render a broken control. */
30
+ export declare function uploadCtx<C extends SchemaContext>(ctx: C, cfg: PilotiqConfig): C;
31
+ export declare function callPageSchema(PageClass: typeof Page, ctx: SchemaContext): Promise<Element[]>;
32
+ /** Mark every Form on the page with its action URL so the rendered <form> posts to itself. */
33
+ export declare function tagFormActions(elements: ReadonlyArray<Element>, action: string): void;
34
+ /**
35
+ * Plan #5 — stamp the partial-resolve endpoint URL on every form whose
36
+ * descendants include at least one `live()` field. The client uses
37
+ * `FormMeta.stateUrl` to flip into controlled-state mode; forms without
38
+ * any live fields stay uncontrolled (zero-cost legacy path).
39
+ *
40
+ * `urlBuilder(formId)` lets the caller compose a per-form URL — the
41
+ * endpoint shape is `${base}/${slug}/_form/${formId}/state` so each
42
+ * form on a multi-form page gets its own route segment.
43
+ */
44
+ export declare function tagFormStateUrls(elements: ReadonlyArray<Element>, urlBuilder: (formId: string) => string): void;
45
+ /**
46
+ * Reorderable rows — stamp the POST-reorder URL on every `Table` that
47
+ * has `Table.reorderable()` set. The renderer reads `TableMeta.reorderUrl`
48
+ * to wire the drop handler; tables that aren't reorderable skip wiring
49
+ * entirely. Same shape as `tagFormStateUrls` so the call site stays
50
+ * consistent.
51
+ */
52
+ export declare function tagTableReorderUrls(elements: ReadonlyArray<Element>, url: string): void;
53
+ export declare function tagTableDeferred(elements: ReadonlyArray<Element>, url: string): void;
54
+ /**
55
+ * Editable cell columns — walk every table on the page and stamp
56
+ * `_cellEditUrls[colName]` per row, but only on rows that already
57
+ * carry a `_cellEditable[colName]` marker (set by `loadTableRecords`
58
+ * after `R.canEdit(user, row)` passed). The dispatcher stays
59
+ * URL-shape-agnostic; URL building lives here parallel to
60
+ * `tagFormStateUrls / tagTableReorderUrls`.
61
+ *
62
+ * `idOf` extracts the per-row primary key. Defaults to reading `id` —
63
+ * works for the rudder ORM convention. Resources with a different
64
+ * primary-key column should pass an override (none in v1).
65
+ */
66
+ export declare function tagCellEditUrls(elements: ReadonlyArray<Element>, resourceUrl: string, idOf?: (row: Record<string, unknown>) => unknown): void;
67
+ /**
68
+ * Plan #8 — stamp the wizard step-validate endpoint URL on every form
69
+ * whose descendants include a `Wizard` element. `FormMeta.wizardUrl` is
70
+ * what the client posts to on Next-button clicks; forms without a wizard
71
+ * descendant skip wiring.
72
+ */
73
+ export declare function tagFormWizardUrls(elements: ReadonlyArray<Element>, urlBuilder: (formId: string) => string): void;
74
+ /**
75
+ * Stamp `_agentRunBase` on every field element in the resolved
76
+ * `ElementMeta[]` tree that carries `aiActions`. Operates on the
77
+ * post-`resolveSchema` wire shape (plain objects) rather than on
78
+ * `Element` instances — `aiActions` is added by the `field-ai.ts`
79
+ * wrapper during `toMeta()`, so it isn't visible to pre-resolve walkers.
80
+ *
81
+ * Only called on edit pages where a `recordId` is known. Create pages
82
+ * deliberately skip it — field AI actions target existing content.
83
+ */
84
+ export declare function tagFieldAiUrls(elements: ReadonlyArray<Record<string, unknown>>, agentBase: string): void;
85
+ /**
86
+ * Audit row 2026-05-07 cont'd⁸ — stamp the inline-create-option endpoint
87
+ * URL on every `SelectField` that has called `createOptionForm()`. Walks
88
+ * every form on the page so the URL carries the parent form's id; URL
89
+ * shape `${formScopeUrl}/_form/${formId}/create-option/${fieldName}` so
90
+ * the route handler can pick the form by id and the field by name.
91
+ *
92
+ * Mirrors `tagFormStateUrls / tagFormWizardUrls` — operates on the
93
+ * un-resolved Element tree, mutates field-instance state via
94
+ * `field.withCreateOptionUrl(url)`, and the field's `toMeta()` reads it
95
+ * back to emit `createOption.url`.
96
+ *
97
+ * Stops at Repeater / Builder boundaries (parallel to the form-state /
98
+ * wizard walkers): inside-row schemas are dispatched per-row and the
99
+ * createOption shape doesn't compose with row body coercion in v1.
100
+ */
101
+ export declare function tagSelectCreateOptionUrls(elements: ReadonlyArray<Element>, urlBuilder: (formId: string, fieldName: string) => string): void;
102
+ export declare function walkSelectFields(elements: Element[], visit: (f: SelectField) => void): void;
103
+ /**
104
+ * Adapter-package async-resolve walker. Stamps the per-form mentions URL
105
+ * on every field that ducks like a "rich text with at least one async
106
+ * mention provider". The duck-typed contract lives here (as opposed to
107
+ * importing from `@pilotiq/tiptap`) so pilotiq core stays adapter-free —
108
+ * any future field type with an async-resolve trigger can satisfy the
109
+ * same shape and pick up URL stamping for free.
110
+ *
111
+ * Contract:
112
+ * - `getType() === 'richtext'` (fast filter)
113
+ * - `hasAsyncMentions(): boolean`
114
+ * - `withMentionsUrl(url: string): unknown`
115
+ *
116
+ * Walks every form on the page so the URL builder can mint a per-form
117
+ * URL (mirrors `tagFormStateUrls / tagFormWizardUrls`). The route handler
118
+ * uses formId in the URL to select the form; the body carries `field`
119
+ * + `trigger` + `query`. One URL per (form, scope), reused across every
120
+ * async-mention field on that form.
121
+ */
122
+ interface AsyncMentionFieldLike {
123
+ hasAsyncMentions(): boolean;
124
+ withMentionsUrl(url: string): unknown;
125
+ }
126
+ export declare function isAsyncMentionField(el: Element): el is Element & AsyncMentionFieldLike;
127
+ export declare function tagRichTextMentionUrls(elements: ReadonlyArray<Element>, urlBuilder: (formId: string) => string): void;
128
+ export declare function formHasLiveField(form: Form): boolean;
129
+ export declare function formHasWizard(form: Form): boolean;
130
+ /**
131
+ * Run the edit-mode fill pipeline on a loaded record:
132
+ * mutateFormDataBeforeFill → fillFromRecord → mutateFormDataAfterFill
133
+ *
134
+ * `fillFromRecord` defaults to `{ ...record }` when not configured. Both
135
+ * mutators are optional and may be async. `ctx.record` is the loaded
136
+ * record so mutators can read from fields the form doesn't surface.
137
+ */
138
+ export declare function applyFillPipeline<R>(form: Form<R>, record: R): Promise<Record<string, unknown>>;
139
+ /**
140
+ * Walk the form's top-level Repeaters and replace `values[fieldName]`
141
+ * with rows fetched from `parent.related(name)` for any
142
+ * relationship-backed Repeater. Each loaded row stamps `__id` to the
143
+ * child's primary key so the renderer can round-trip identity through
144
+ * a hidden input and the save-side diff can match submitted rows back
145
+ * to existing records.
146
+ *
147
+ * No-op when the parent record is null (create mode), when no
148
+ * relationship-backed Repeaters exist on the form, or when the
149
+ * resource has no `R.model` (relation queries need it).
150
+ *
151
+ * Mutates and returns a fresh values object — never the input.
152
+ */
153
+ export declare function applyRelationshipRepeaterFill(form: Form, values: Record<string, unknown>, record: unknown, parentModel: ModelLike | undefined): Promise<Record<string, unknown>>;
154
+ /** Walk the form's children for top-level relationship-backed Repeaters. */
155
+ export declare function findRelationshipRepeaters(elements: ReadonlyArray<Element>): RepeaterField[];
156
+ /**
157
+ * Walk the form's top-level Builders and replace `values[fieldName]` with
158
+ * rows fetched from `parent.related(name)` for any relationship-backed
159
+ * Builder. Each loaded row stamps `__id` (child PK) + `type` (block
160
+ * discriminator) + `data` (per-block JSON payload) so the renderer can
161
+ * round-trip the heterogeneous envelope.
162
+ *
163
+ * Mirrors `applyRelationshipRepeaterFill`. No-op when the parent record
164
+ * is null (create mode), the resource has no `R.model`, or no
165
+ * relationship-backed Builders exist on the form.
166
+ */
167
+ export declare function applyRelationshipBuilderFill(form: Form, values: Record<string, unknown>, record: unknown, parentModel: ModelLike | undefined): Promise<Record<string, unknown>>;
168
+ /**
169
+ * Normalize the JSON payload column into a plain object. Prisma
170
+ * hydrates `Json` columns to objects; some adapters return strings.
171
+ * Anything that isn't a parseable object falls back to `{}` so the
172
+ * inner schema renders fresh defaults.
173
+ */
174
+ export declare function parseBuilderDataPayload(raw: unknown): Record<string, unknown>;
175
+ /** Walk the form's children for top-level relationship-backed Builders. */
176
+ export declare function findRelationshipBuilders(elements: ReadonlyArray<Element>): BuilderField[];
177
+ /** Read the child model's PK column from the parent's relations map, when present. */
178
+ export declare function pickChildPrimaryKey(parentModel: ModelLike, name: string): string | undefined;
179
+ /** Read the FK column from the parent's relations map, when present. */
180
+ export declare function pickChildForeignKey(parentModel: ModelLike, name: string): string | undefined;
181
+ /** Wire-shape of the per-widget data map shipped to the client.
182
+ * Lazy elements stamp `null` (renderer paints skeleton + fetches);
183
+ * eager elements stamp their resolved payload. Errors stamp
184
+ * `{ error: '<message>' }` so the renderer can surface a per-widget
185
+ * failure without blanking the page. */
186
+ export type ServerDataMap = Record<string, unknown>;
187
+ /**
188
+ * Plan #15 — collect every `ServerDataElement` in the schema tree and
189
+ * resolve their `getServerData(ctx)` payloads in parallel. Returns a
190
+ * map keyed by element id, ready to ship as `viewProps._widgetData`.
191
+ *
192
+ * Lazy elements (default — `lazy(false)` opts out) skip the hook and
193
+ * stamp `null` so the renderer paints a skeleton and fetches the
194
+ * payload via `POST {base}/_widget/:id` on mount. Eager elements
195
+ * resolve synchronously and ship the data with the page.
196
+ *
197
+ * Per-widget errors are caught and surfaced as `{ error: '...' }` —
198
+ * one flaky `getStats()` shouldn't 500 the entire dashboard.
199
+ *
200
+ * Visibility is **not** re-evaluated here. The schema resolver
201
+ * (`resolveSchema → evaluateVisibility`) drops hidden layout elements
202
+ * before any widget code runs. Widgets inside still-rendered branches
203
+ * always resolve (or stamp lazy null).
204
+ */
205
+ export declare function resolveServerDataElements(elements: ReadonlyArray<Element>, ctx: RenderContext): Promise<ServerDataMap>;
206
+ /** Walk the tree collecting every `ServerDataElement`. Walks into
207
+ * containers but stops at Form/Repeater/Builder boundaries — widgets
208
+ * inside an editable form don't make sense in v1. */
209
+ export declare function collectServerDataElements(elements: ReadonlyArray<Element>): ServerDataElement[];
210
+ /**
211
+ * Plan #15 — stamp the polling-endpoint URL on every `ServerDataElement`
212
+ * in the tree. Mirrors `tagFormStateUrls / tagTableReorderUrls`. Walks
213
+ * with the same boundaries as `collectServerDataElements` so the wire
214
+ * stays in sync (no orphan widgets without URLs and vice versa).
215
+ *
216
+ * `urlBuilder(id)` typically produces `${base}/_widget/${id}` for
217
+ * dashboard widgets and `${base}/${pageSlug}/_widget/${id}` for
218
+ * custom-page widgets — the route handlers for both shapes are wired up
219
+ * in `routes.ts` (see Phase A.4).
220
+ */
221
+ export declare function tagWidgetUrls(elements: ReadonlyArray<Element>, urlBuilder: (id: string) => string): void;
222
+ /**
223
+ * Stamp every form-subresource URL the page might need in one pass:
224
+ * - `_form/${formId}/state` (Plan #5 partial-resolve)
225
+ * - `_form/${formId}/wizard` (Plan #8 step-validate)
226
+ * - `_form/${formId}/mentions` (async-mention typeahead)
227
+ * - `_form/${formId}/create-option/${fieldName}` (SelectField inline-create)
228
+ *
229
+ * Every page-builder that mounts a form (dashboard / resource create+edit /
230
+ * global edit / custom page) needs all four — the underlying taggers skip
231
+ * forms that don't carry the matching feature, so this is always safe to
232
+ * call. `base` is the route prefix (e.g. `${cfg.path}` / `${resourceBase}` /
233
+ * `${resourceBase}/${recordId}` / `${pageUrl}`).
234
+ */
235
+ export declare function tagFormSubresourceUrls(elements: ReadonlyArray<Element>, base: string): void;
236
+ /** Stamp dispatchUrl on every handler-style Action so the client knows where to POST. */
237
+ export declare function tagActionDispatch(elements: ReadonlyArray<Element>, baseUrl: string): void;
238
+ export {};
239
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/pageData/helpers.ts"],"names":[],"mappings":"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"}