@baseplate-dev/project-builder-lib 0.1.1

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 (569) hide show
  1. package/LICENSE +390 -0
  2. package/dist/compiler/admin-crud-input-spec.d.ts +26 -0
  3. package/dist/compiler/admin-crud-input-spec.d.ts.map +1 -0
  4. package/dist/compiler/admin-crud-input-spec.js +29 -0
  5. package/dist/compiler/admin-crud-input-spec.js.map +1 -0
  6. package/dist/compiler/app-compiler-spec.d.ts +36 -0
  7. package/dist/compiler/app-compiler-spec.d.ts.map +1 -0
  8. package/dist/compiler/app-compiler-spec.js +42 -0
  9. package/dist/compiler/app-compiler-spec.js.map +1 -0
  10. package/dist/compiler/index.d.ts +5 -0
  11. package/dist/compiler/index.d.ts.map +1 -0
  12. package/dist/compiler/index.js +4 -0
  13. package/dist/compiler/index.js.map +1 -0
  14. package/dist/compiler/model-transformer-compiler-spec.d.ts +25 -0
  15. package/dist/compiler/model-transformer-compiler-spec.d.ts.map +1 -0
  16. package/dist/compiler/model-transformer-compiler-spec.js +29 -0
  17. package/dist/compiler/model-transformer-compiler-spec.js.map +1 -0
  18. package/dist/compiler/types.d.ts +2 -0
  19. package/dist/compiler/types.d.ts.map +1 -0
  20. package/dist/compiler/types.js +2 -0
  21. package/dist/compiler/types.js.map +1 -0
  22. package/dist/constants/colors.d.ts +294 -0
  23. package/dist/constants/colors.d.ts.map +1 -0
  24. package/dist/constants/colors.js +307 -0
  25. package/dist/constants/colors.js.map +1 -0
  26. package/dist/constants/index.d.ts +3 -0
  27. package/dist/constants/index.d.ts.map +1 -0
  28. package/dist/constants/index.js +3 -0
  29. package/dist/constants/index.js.map +1 -0
  30. package/dist/constants/theme-colors.d.ts +397 -0
  31. package/dist/constants/theme-colors.d.ts.map +1 -0
  32. package/dist/constants/theme-colors.js +247 -0
  33. package/dist/constants/theme-colors.js.map +1 -0
  34. package/dist/definition/apps/app-utils.d.ts +11 -0
  35. package/dist/definition/apps/app-utils.d.ts.map +1 -0
  36. package/dist/definition/apps/app-utils.js +30 -0
  37. package/dist/definition/apps/app-utils.js.map +1 -0
  38. package/dist/definition/feature/feature-utils.d.ts +27 -0
  39. package/dist/definition/feature/feature-utils.d.ts.map +1 -0
  40. package/dist/definition/feature/feature-utils.js +81 -0
  41. package/dist/definition/feature/feature-utils.js.map +1 -0
  42. package/dist/definition/index.d.ts +10 -0
  43. package/dist/definition/index.d.ts.map +1 -0
  44. package/dist/definition/index.js +10 -0
  45. package/dist/definition/index.js.map +1 -0
  46. package/dist/definition/model/enum-utils.d.ts +9 -0
  47. package/dist/definition/model/enum-utils.d.ts.map +1 -0
  48. package/dist/definition/model/enum-utils.js +15 -0
  49. package/dist/definition/model/enum-utils.js.map +1 -0
  50. package/dist/definition/model/model-field-utils.d.ts +17 -0
  51. package/dist/definition/model/model-field-utils.d.ts.map +1 -0
  52. package/dist/definition/model/model-field-utils.js +85 -0
  53. package/dist/definition/model/model-field-utils.js.map +1 -0
  54. package/dist/definition/model/model-transformer-utils.d.ts +11 -0
  55. package/dist/definition/model/model-transformer-utils.d.ts.map +1 -0
  56. package/dist/definition/model/model-transformer-utils.js +13 -0
  57. package/dist/definition/model/model-transformer-utils.js.map +1 -0
  58. package/dist/definition/model/model-utils.d.ts +32 -0
  59. package/dist/definition/model/model-utils.d.ts.map +1 -0
  60. package/dist/definition/model/model-utils.js +59 -0
  61. package/dist/definition/model/model-utils.js.map +1 -0
  62. package/dist/definition/plugins/index.d.ts +2 -0
  63. package/dist/definition/plugins/index.d.ts.map +1 -0
  64. package/dist/definition/plugins/index.js +2 -0
  65. package/dist/definition/plugins/index.js.map +1 -0
  66. package/dist/definition/plugins/plugin-utils.d.ts +14 -0
  67. package/dist/definition/plugins/plugin-utils.d.ts.map +1 -0
  68. package/dist/definition/plugins/plugin-utils.js +44 -0
  69. package/dist/definition/plugins/plugin-utils.js.map +1 -0
  70. package/dist/definition/project-definition-container.d.ts +65 -0
  71. package/dist/definition/project-definition-container.d.ts.map +1 -0
  72. package/dist/definition/project-definition-container.js +118 -0
  73. package/dist/definition/project-definition-container.js.map +1 -0
  74. package/dist/definition/project-definition-container.test-helper.d.ts +5 -0
  75. package/dist/definition/project-definition-container.test-helper.d.ts.map +1 -0
  76. package/dist/definition/project-definition-container.test-helper.js +36 -0
  77. package/dist/definition/project-definition-container.test-helper.js.map +1 -0
  78. package/dist/feature-flags/flags.d.ts +3 -0
  79. package/dist/feature-flags/flags.d.ts.map +1 -0
  80. package/dist/feature-flags/flags.js +2 -0
  81. package/dist/feature-flags/flags.js.map +1 -0
  82. package/dist/feature-flags/index.d.ts +2 -0
  83. package/dist/feature-flags/index.d.ts.map +1 -0
  84. package/dist/feature-flags/index.js +2 -0
  85. package/dist/feature-flags/index.js.map +1 -0
  86. package/dist/index.d.ts +14 -0
  87. package/dist/index.js +13 -0
  88. package/dist/index.js.map +1 -0
  89. package/dist/migrations/index.d.ts +15 -0
  90. package/dist/migrations/index.d.ts.map +1 -0
  91. package/dist/migrations/index.js +68 -0
  92. package/dist/migrations/index.js.map +1 -0
  93. package/dist/migrations/migration-005-primaryUniqueRefs.d.ts +37 -0
  94. package/dist/migrations/migration-005-primaryUniqueRefs.d.ts.map +1 -0
  95. package/dist/migrations/migration-005-primaryUniqueRefs.js +40 -0
  96. package/dist/migrations/migration-005-primaryUniqueRefs.js.map +1 -0
  97. package/dist/migrations/migration-006-individual-service-controllers.d.ts +42 -0
  98. package/dist/migrations/migration-006-individual-service-controllers.d.ts.map +1 -0
  99. package/dist/migrations/migration-006-individual-service-controllers.js +31 -0
  100. package/dist/migrations/migration-006-individual-service-controllers.js.map +1 -0
  101. package/dist/migrations/migration-007-model-graphql.d.ts +59 -0
  102. package/dist/migrations/migration-007-model-graphql.d.ts.map +1 -0
  103. package/dist/migrations/migration-007-model-graphql.js +62 -0
  104. package/dist/migrations/migration-007-model-graphql.js.map +1 -0
  105. package/dist/migrations/migration-008-anonymous-public-role.d.ts +22 -0
  106. package/dist/migrations/migration-008-anonymous-public-role.d.ts.map +1 -0
  107. package/dist/migrations/migration-008-anonymous-public-role.js +52 -0
  108. package/dist/migrations/migration-008-anonymous-public-role.js.map +1 -0
  109. package/dist/migrations/migration-009-rename-refs.d.ts +2 -0
  110. package/dist/migrations/migration-009-rename-refs.d.ts.map +1 -0
  111. package/dist/migrations/migration-009-rename-refs.js +59 -0
  112. package/dist/migrations/migration-009-rename-refs.js.map +1 -0
  113. package/dist/migrations/migration-010-hex-to-oklch.d.ts +2 -0
  114. package/dist/migrations/migration-010-hex-to-oklch.d.ts.map +1 -0
  115. package/dist/migrations/migration-010-hex-to-oklch.js +24 -0
  116. package/dist/migrations/migration-010-hex-to-oklch.js.map +1 -0
  117. package/dist/migrations/migration-011-plugin-id.d.ts +2 -0
  118. package/dist/migrations/migration-011-plugin-id.d.ts.map +1 -0
  119. package/dist/migrations/migration-011-plugin-id.js +10 -0
  120. package/dist/migrations/migration-011-plugin-id.js.map +1 -0
  121. package/dist/migrations/migration-012-migrate-auth-config.d.ts +36 -0
  122. package/dist/migrations/migration-012-migrate-auth-config.d.ts.map +1 -0
  123. package/dist/migrations/migration-012-migrate-auth-config.js +48 -0
  124. package/dist/migrations/migration-012-migrate-auth-config.js.map +1 -0
  125. package/dist/migrations/migration-013-move-general-settings.d.ts +38 -0
  126. package/dist/migrations/migration-013-move-general-settings.d.ts.map +1 -0
  127. package/dist/migrations/migration-013-move-general-settings.js +22 -0
  128. package/dist/migrations/migration-013-move-general-settings.js.map +1 -0
  129. package/dist/migrations/migration-014-migrate-plugin-ids.d.ts +21 -0
  130. package/dist/migrations/migration-014-migrate-plugin-ids.d.ts.map +1 -0
  131. package/dist/migrations/migration-014-migrate-plugin-ids.js +32 -0
  132. package/dist/migrations/migration-014-migrate-plugin-ids.js.map +1 -0
  133. package/dist/migrations/transform-json-path.d.ts +13 -0
  134. package/dist/migrations/transform-json-path.d.ts.map +1 -0
  135. package/dist/migrations/transform-json-path.js +66 -0
  136. package/dist/migrations/transform-json-path.js.map +1 -0
  137. package/dist/migrations/types.d.ts +29 -0
  138. package/dist/migrations/types.d.ts.map +1 -0
  139. package/dist/migrations/types.js +4 -0
  140. package/dist/migrations/types.js.map +1 -0
  141. package/dist/migrations/utils.d.ts +3 -0
  142. package/dist/migrations/utils.d.ts.map +1 -0
  143. package/dist/migrations/utils.js +10 -0
  144. package/dist/migrations/utils.js.map +1 -0
  145. package/dist/parser/index.d.ts +3 -0
  146. package/dist/parser/index.d.ts.map +1 -0
  147. package/dist/parser/index.js +2 -0
  148. package/dist/parser/index.js.map +1 -0
  149. package/dist/parser/parser.d.ts +35 -0
  150. package/dist/parser/parser.d.ts.map +1 -0
  151. package/dist/parser/parser.js +84 -0
  152. package/dist/parser/parser.js.map +1 -0
  153. package/dist/parser/types.d.ts +8 -0
  154. package/dist/parser/types.d.ts.map +1 -0
  155. package/dist/parser/types.js +2 -0
  156. package/dist/parser/types.js.map +1 -0
  157. package/dist/plugin-tools/index.d.ts +2 -0
  158. package/dist/plugin-tools/index.d.ts.map +1 -0
  159. package/dist/plugin-tools/index.js +2 -0
  160. package/dist/plugin-tools/index.js.map +1 -0
  161. package/dist/plugin-tools/plugin-loader.d.ts +16 -0
  162. package/dist/plugin-tools/plugin-loader.d.ts.map +1 -0
  163. package/dist/plugin-tools/plugin-loader.js +166 -0
  164. package/dist/plugin-tools/plugin-loader.js.map +1 -0
  165. package/dist/plugins/imports/index.d.ts +3 -0
  166. package/dist/plugins/imports/index.d.ts.map +1 -0
  167. package/dist/plugins/imports/index.js +3 -0
  168. package/dist/plugins/imports/index.js.map +1 -0
  169. package/dist/plugins/imports/loader.d.ts +23 -0
  170. package/dist/plugins/imports/loader.d.ts.map +1 -0
  171. package/dist/plugins/imports/loader.js +81 -0
  172. package/dist/plugins/imports/loader.js.map +1 -0
  173. package/dist/plugins/imports/types.d.ts +27 -0
  174. package/dist/plugins/imports/types.d.ts.map +1 -0
  175. package/dist/plugins/imports/types.js +4 -0
  176. package/dist/plugins/imports/types.js.map +1 -0
  177. package/dist/plugins/index.d.ts +7 -0
  178. package/dist/plugins/index.d.ts.map +1 -0
  179. package/dist/plugins/index.js +7 -0
  180. package/dist/plugins/index.js.map +1 -0
  181. package/dist/plugins/manifest/manifest.d.ts +13 -0
  182. package/dist/plugins/manifest/manifest.d.ts.map +1 -0
  183. package/dist/plugins/manifest/manifest.js +6 -0
  184. package/dist/plugins/manifest/manifest.js.map +1 -0
  185. package/dist/plugins/metadata/index.d.ts +2 -0
  186. package/dist/plugins/metadata/index.d.ts.map +1 -0
  187. package/dist/plugins/metadata/index.js +2 -0
  188. package/dist/plugins/metadata/index.js.map +1 -0
  189. package/dist/plugins/metadata/types.d.ts +163 -0
  190. package/dist/plugins/metadata/types.d.ts.map +1 -0
  191. package/dist/plugins/metadata/types.js +59 -0
  192. package/dist/plugins/metadata/types.js.map +1 -0
  193. package/dist/plugins/migrations/index.d.ts +2 -0
  194. package/dist/plugins/migrations/index.d.ts.map +1 -0
  195. package/dist/plugins/migrations/index.js +2 -0
  196. package/dist/plugins/migrations/index.js.map +1 -0
  197. package/dist/plugins/migrations/run-migrations.d.ts +4 -0
  198. package/dist/plugins/migrations/run-migrations.d.ts.map +1 -0
  199. package/dist/plugins/migrations/run-migrations.js +30 -0
  200. package/dist/plugins/migrations/run-migrations.js.map +1 -0
  201. package/dist/plugins/schema/common.d.ts +6 -0
  202. package/dist/plugins/schema/common.d.ts.map +1 -0
  203. package/dist/plugins/schema/common.js +2 -0
  204. package/dist/plugins/schema/common.js.map +1 -0
  205. package/dist/plugins/schema/index.d.ts +4 -0
  206. package/dist/plugins/schema/index.d.ts.map +1 -0
  207. package/dist/plugins/schema/index.js +4 -0
  208. package/dist/plugins/schema/index.js.map +1 -0
  209. package/dist/plugins/schema/parser.d.ts +19 -0
  210. package/dist/plugins/schema/parser.d.ts.map +1 -0
  211. package/dist/plugins/schema/parser.js +41 -0
  212. package/dist/plugins/schema/parser.js.map +1 -0
  213. package/dist/plugins/schema/store.d.ts +8 -0
  214. package/dist/plugins/schema/store.d.ts.map +1 -0
  215. package/dist/plugins/schema/store.js +21 -0
  216. package/dist/plugins/schema/store.js.map +1 -0
  217. package/dist/plugins/schema/zod-with-plugins.d.ts +12 -0
  218. package/dist/plugins/schema/zod-with-plugins.d.ts.map +1 -0
  219. package/dist/plugins/schema/zod-with-plugins.js +26 -0
  220. package/dist/plugins/schema/zod-with-plugins.js.map +1 -0
  221. package/dist/plugins/spec/auth-config-spec.d.ts +21 -0
  222. package/dist/plugins/spec/auth-config-spec.d.ts.map +1 -0
  223. package/dist/plugins/spec/auth-config-spec.js +6 -0
  224. package/dist/plugins/spec/auth-config-spec.js.map +1 -0
  225. package/dist/plugins/spec/config-spec.d.ts +31 -0
  226. package/dist/plugins/spec/config-spec.d.ts.map +1 -0
  227. package/dist/plugins/spec/config-spec.js +58 -0
  228. package/dist/plugins/spec/config-spec.js.map +1 -0
  229. package/dist/plugins/spec/index.d.ts +5 -0
  230. package/dist/plugins/spec/index.d.ts.map +1 -0
  231. package/dist/plugins/spec/index.js +5 -0
  232. package/dist/plugins/spec/index.js.map +1 -0
  233. package/dist/plugins/spec/types.d.ts +29 -0
  234. package/dist/plugins/spec/types.d.ts.map +1 -0
  235. package/dist/plugins/spec/types.js +17 -0
  236. package/dist/plugins/spec/types.js.map +1 -0
  237. package/dist/plugins/spec/web-config-spec.d.ts +22 -0
  238. package/dist/plugins/spec/web-config-spec.d.ts.map +1 -0
  239. package/dist/plugins/spec/web-config-spec.js +23 -0
  240. package/dist/plugins/spec/web-config-spec.js.map +1 -0
  241. package/dist/references/deserialize-schema.d.ts +4 -0
  242. package/dist/references/deserialize-schema.d.ts.map +1 -0
  243. package/dist/references/deserialize-schema.js +68 -0
  244. package/dist/references/deserialize-schema.js.map +1 -0
  245. package/dist/references/fix-ref-deletions.d.ts +22 -0
  246. package/dist/references/fix-ref-deletions.d.ts.map +1 -0
  247. package/dist/references/fix-ref-deletions.js +99 -0
  248. package/dist/references/fix-ref-deletions.js.map +1 -0
  249. package/dist/references/index.d.ts +6 -0
  250. package/dist/references/index.d.ts.map +1 -0
  251. package/dist/references/index.js +6 -0
  252. package/dist/references/index.js.map +1 -0
  253. package/dist/references/parse-schema-with-references.d.ts +14 -0
  254. package/dist/references/parse-schema-with-references.d.ts.map +1 -0
  255. package/dist/references/parse-schema-with-references.js +16 -0
  256. package/dist/references/parse-schema-with-references.js.map +1 -0
  257. package/dist/references/ref-builder.d.ts +346 -0
  258. package/dist/references/ref-builder.d.ts.map +1 -0
  259. package/dist/references/ref-builder.js +494 -0
  260. package/dist/references/ref-builder.js.map +1 -0
  261. package/dist/references/resolve-zod-ref-payload-names.d.ts +26 -0
  262. package/dist/references/resolve-zod-ref-payload-names.d.ts.map +1 -0
  263. package/dist/references/resolve-zod-ref-payload-names.js +52 -0
  264. package/dist/references/resolve-zod-ref-payload-names.js.map +1 -0
  265. package/dist/references/serialize-schema.d.ts +5 -0
  266. package/dist/references/serialize-schema.d.ts.map +1 -0
  267. package/dist/references/serialize-schema.js +22 -0
  268. package/dist/references/serialize-schema.js.map +1 -0
  269. package/dist/references/types.d.ts +126 -0
  270. package/dist/references/types.d.ts.map +1 -0
  271. package/dist/references/types.js +59 -0
  272. package/dist/references/types.js.map +1 -0
  273. package/dist/schema/apps/admin/app.d.ts +1144 -0
  274. package/dist/schema/apps/admin/app.d.ts.map +1 -0
  275. package/dist/schema/apps/admin/app.js +27 -0
  276. package/dist/schema/apps/admin/app.js.map +1 -0
  277. package/dist/schema/apps/admin/index.d.ts +3 -0
  278. package/dist/schema/apps/admin/index.d.ts.map +1 -0
  279. package/dist/schema/apps/admin/index.js +3 -0
  280. package/dist/schema/apps/admin/index.js.map +1 -0
  281. package/dist/schema/apps/admin/sections/base.d.ts +9 -0
  282. package/dist/schema/apps/admin/sections/base.d.ts.map +1 -0
  283. package/dist/schema/apps/admin/sections/base.js +15 -0
  284. package/dist/schema/apps/admin/sections/base.js.map +1 -0
  285. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts +11 -0
  286. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.d.ts.map +1 -0
  287. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js +11 -0
  288. package/dist/schema/apps/admin/sections/crud-form/admin-crud-input.js.map +1 -0
  289. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts +17 -0
  290. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.d.ts.map +1 -0
  291. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js +30 -0
  292. package/dist/schema/apps/admin/sections/crud-form/admin-input-spec.js.map +1 -0
  293. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts +138 -0
  294. package/dist/schema/apps/admin/sections/crud-form/built-in-input.d.ts.map +1 -0
  295. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js +101 -0
  296. package/dist/schema/apps/admin/sections/crud-form/built-in-input.js.map +1 -0
  297. package/dist/schema/apps/admin/sections/crud-form/index.d.ts +5 -0
  298. package/dist/schema/apps/admin/sections/crud-form/index.d.ts.map +1 -0
  299. package/dist/schema/apps/admin/sections/crud-form/index.js +5 -0
  300. package/dist/schema/apps/admin/sections/crud-form/index.js.map +1 -0
  301. package/dist/schema/apps/admin/sections/crud-form/types.d.ts +19 -0
  302. package/dist/schema/apps/admin/sections/crud-form/types.d.ts.map +1 -0
  303. package/dist/schema/apps/admin/sections/crud-form/types.js +14 -0
  304. package/dist/schema/apps/admin/sections/crud-form/types.js.map +1 -0
  305. package/dist/schema/apps/admin/sections/crud.d.ts +988 -0
  306. package/dist/schema/apps/admin/sections/crud.d.ts.map +1 -0
  307. package/dist/schema/apps/admin/sections/crud.js +101 -0
  308. package/dist/schema/apps/admin/sections/crud.js.map +1 -0
  309. package/dist/schema/apps/admin/sections/index.d.ts +5 -0
  310. package/dist/schema/apps/admin/sections/index.d.ts.map +1 -0
  311. package/dist/schema/apps/admin/sections/index.js +5 -0
  312. package/dist/schema/apps/admin/sections/index.js.map +1 -0
  313. package/dist/schema/apps/admin/sections/types.d.ts +2 -0
  314. package/dist/schema/apps/admin/sections/types.d.ts.map +1 -0
  315. package/dist/schema/apps/admin/sections/types.js +6 -0
  316. package/dist/schema/apps/admin/sections/types.js.map +1 -0
  317. package/dist/schema/apps/backend/index.d.ts +49 -0
  318. package/dist/schema/apps/backend/index.d.ts.map +1 -0
  319. package/dist/schema/apps/backend/index.js +15 -0
  320. package/dist/schema/apps/backend/index.js.map +1 -0
  321. package/dist/schema/apps/base.d.ts +25 -0
  322. package/dist/schema/apps/base.d.ts.map +1 -0
  323. package/dist/schema/apps/base.js +16 -0
  324. package/dist/schema/apps/base.js.map +1 -0
  325. package/dist/schema/apps/index.d.ts +6 -0
  326. package/dist/schema/apps/index.d.ts.map +1 -0
  327. package/dist/schema/apps/index.js +6 -0
  328. package/dist/schema/apps/index.js.map +1 -0
  329. package/dist/schema/apps/types.d.ts +6 -0
  330. package/dist/schema/apps/types.d.ts.map +1 -0
  331. package/dist/schema/apps/types.js +6 -0
  332. package/dist/schema/apps/types.js.map +1 -0
  333. package/dist/schema/apps/web/index.d.ts +49 -0
  334. package/dist/schema/apps/web/index.d.ts.map +1 -0
  335. package/dist/schema/apps/web/index.js +22 -0
  336. package/dist/schema/apps/web/index.js.map +1 -0
  337. package/dist/schema/auth/index.d.ts +2 -0
  338. package/dist/schema/auth/index.d.ts.map +1 -0
  339. package/dist/schema/auth/index.js +3 -0
  340. package/dist/schema/auth/index.js.map +1 -0
  341. package/dist/schema/creator/index.d.ts +2 -0
  342. package/dist/schema/creator/index.d.ts.map +1 -0
  343. package/dist/schema/creator/index.js +2 -0
  344. package/dist/schema/creator/index.js.map +1 -0
  345. package/dist/schema/creator/schema-creator.d.ts +4 -0
  346. package/dist/schema/creator/schema-creator.d.ts.map +1 -0
  347. package/dist/schema/creator/schema-creator.js +4 -0
  348. package/dist/schema/creator/schema-creator.js.map +1 -0
  349. package/dist/schema/creator/types.d.ts +14 -0
  350. package/dist/schema/creator/types.d.ts.map +1 -0
  351. package/dist/schema/creator/types.js +2 -0
  352. package/dist/schema/creator/types.js.map +1 -0
  353. package/dist/schema/features/feature.d.ts +33 -0
  354. package/dist/schema/features/feature.d.ts.map +1 -0
  355. package/dist/schema/features/feature.js +21 -0
  356. package/dist/schema/features/feature.js.map +1 -0
  357. package/dist/schema/features/index.d.ts +3 -0
  358. package/dist/schema/features/index.d.ts.map +1 -0
  359. package/dist/schema/features/index.js +3 -0
  360. package/dist/schema/features/index.js.map +1 -0
  361. package/dist/schema/features/theme.d.ts +208 -0
  362. package/dist/schema/features/theme.d.ts.map +1 -0
  363. package/dist/schema/features/theme.js +34 -0
  364. package/dist/schema/features/theme.js.map +1 -0
  365. package/dist/schema/index.d.ts +11 -0
  366. package/dist/schema/index.d.ts.map +1 -0
  367. package/dist/schema/index.js +11 -0
  368. package/dist/schema/index.js.map +1 -0
  369. package/dist/schema/models/enums.d.ts +97 -0
  370. package/dist/schema/models/enums.d.ts.map +1 -0
  371. package/dist/schema/models/enums.js +25 -0
  372. package/dist/schema/models/enums.js.map +1 -0
  373. package/dist/schema/models/graphql.d.ts +181 -0
  374. package/dist/schema/models/graphql.d.ts.map +1 -0
  375. package/dist/schema/models/graphql.js +96 -0
  376. package/dist/schema/models/graphql.js.map +1 -0
  377. package/dist/schema/models/index.d.ts +1692 -0
  378. package/dist/schema/models/index.d.ts.map +1 -0
  379. package/dist/schema/models/index.js +220 -0
  380. package/dist/schema/models/index.js.map +1 -0
  381. package/dist/schema/models/mocks.d.ts +6 -0
  382. package/dist/schema/models/mocks.d.ts.map +1 -0
  383. package/dist/schema/models/mocks.js +55 -0
  384. package/dist/schema/models/mocks.js.map +1 -0
  385. package/dist/schema/models/transformers/built-in-transformers.d.ts +71 -0
  386. package/dist/schema/models/transformers/built-in-transformers.d.ts.map +1 -0
  387. package/dist/schema/models/transformers/built-in-transformers.js +59 -0
  388. package/dist/schema/models/transformers/built-in-transformers.js.map +1 -0
  389. package/dist/schema/models/transformers/index.d.ts +5 -0
  390. package/dist/schema/models/transformers/index.d.ts.map +1 -0
  391. package/dist/schema/models/transformers/index.js +5 -0
  392. package/dist/schema/models/transformers/index.js.map +1 -0
  393. package/dist/schema/models/transformers/model-transformer-spec.d.ts +17 -0
  394. package/dist/schema/models/transformers/model-transformer-spec.d.ts.map +1 -0
  395. package/dist/schema/models/transformers/model-transformer-spec.js +40 -0
  396. package/dist/schema/models/transformers/model-transformer-spec.js.map +1 -0
  397. package/dist/schema/models/transformers/transformers.d.ts +11 -0
  398. package/dist/schema/models/transformers/transformers.d.ts.map +1 -0
  399. package/dist/schema/models/transformers/transformers.js +11 -0
  400. package/dist/schema/models/transformers/transformers.js.map +1 -0
  401. package/dist/schema/models/transformers/types.d.ts +23 -0
  402. package/dist/schema/models/transformers/types.d.ts.map +1 -0
  403. package/dist/schema/models/transformers/types.js +12 -0
  404. package/dist/schema/models/transformers/types.js.map +1 -0
  405. package/dist/schema/models/types.d.ts +9 -0
  406. package/dist/schema/models/types.d.ts.map +1 -0
  407. package/dist/schema/models/types.js +14 -0
  408. package/dist/schema/models/types.js.map +1 -0
  409. package/dist/schema/plugins/definition.d.ts +128 -0
  410. package/dist/schema/plugins/definition.d.ts.map +1 -0
  411. package/dist/schema/plugins/definition.js +28 -0
  412. package/dist/schema/plugins/definition.js.map +1 -0
  413. package/dist/schema/plugins/entity-types.d.ts +2 -0
  414. package/dist/schema/plugins/entity-types.d.ts.map +1 -0
  415. package/dist/schema/plugins/entity-types.js +3 -0
  416. package/dist/schema/plugins/entity-types.js.map +1 -0
  417. package/dist/schema/plugins/index.d.ts +3 -0
  418. package/dist/schema/plugins/index.d.ts.map +1 -0
  419. package/dist/schema/plugins/index.js +3 -0
  420. package/dist/schema/plugins/index.js.map +1 -0
  421. package/dist/schema/project-definition.d.ts +2877 -0
  422. package/dist/schema/project-definition.d.ts.map +1 -0
  423. package/dist/schema/project-definition.js +34 -0
  424. package/dist/schema/project-definition.js.map +1 -0
  425. package/dist/schema/settings.d.ts +228 -0
  426. package/dist/schema/settings.d.ts.map +1 -0
  427. package/dist/schema/settings.js +32 -0
  428. package/dist/schema/settings.js.map +1 -0
  429. package/dist/schema/template-extractor/index.d.ts +25 -0
  430. package/dist/schema/template-extractor/index.d.ts.map +1 -0
  431. package/dist/schema/template-extractor/index.js +18 -0
  432. package/dist/schema/template-extractor/index.js.map +1 -0
  433. package/dist/schema/utils/validation.d.ts +8 -0
  434. package/dist/schema/utils/validation.d.ts.map +1 -0
  435. package/dist/schema/utils/validation.js +18 -0
  436. package/dist/schema/utils/validation.js.map +1 -0
  437. package/dist/tools/index.d.ts +2 -0
  438. package/dist/tools/index.d.ts.map +1 -0
  439. package/dist/tools/index.js +2 -0
  440. package/dist/tools/index.js.map +1 -0
  441. package/dist/tools/model-merger/index.d.ts +2 -0
  442. package/dist/tools/model-merger/index.d.ts.map +1 -0
  443. package/dist/tools/model-merger/index.js +2 -0
  444. package/dist/tools/model-merger/index.js.map +1 -0
  445. package/dist/tools/model-merger/model-merger.d.ts +376 -0
  446. package/dist/tools/model-merger/model-merger.d.ts.map +1 -0
  447. package/dist/tools/model-merger/model-merger.js +229 -0
  448. package/dist/tools/model-merger/model-merger.js.map +1 -0
  449. package/dist/types/field-types.d.ts +3 -0
  450. package/dist/types/field-types.d.ts.map +1 -0
  451. package/dist/types/field-types.js +13 -0
  452. package/dist/types/field-types.js.map +1 -0
  453. package/dist/types/files.d.ts +8 -0
  454. package/dist/types/files.d.ts.map +1 -0
  455. package/dist/types/files.js +2 -0
  456. package/dist/types/files.js.map +1 -0
  457. package/dist/utils/color-conversions.d.ts +20 -0
  458. package/dist/utils/color-conversions.d.ts.map +1 -0
  459. package/dist/utils/color-conversions.js +38 -0
  460. package/dist/utils/color-conversions.js.map +1 -0
  461. package/dist/utils/color-names.d.ts +18 -0
  462. package/dist/utils/color-names.d.ts.map +1 -0
  463. package/dist/utils/color-names.js +54 -0
  464. package/dist/utils/color-names.js.map +1 -0
  465. package/dist/utils/definition-diff/definition-diff.d.ts +68 -0
  466. package/dist/utils/definition-diff/definition-diff.d.ts.map +1 -0
  467. package/dist/utils/definition-diff/definition-diff.js +149 -0
  468. package/dist/utils/definition-diff/definition-diff.js.map +1 -0
  469. package/dist/utils/definition-diff/index.d.ts +2 -0
  470. package/dist/utils/definition-diff/index.d.ts.map +1 -0
  471. package/dist/utils/definition-diff/index.js +2 -0
  472. package/dist/utils/definition-diff/index.js.map +1 -0
  473. package/dist/utils/index.d.ts +6 -0
  474. package/dist/utils/index.d.ts.map +1 -0
  475. package/dist/utils/index.js +6 -0
  476. package/dist/utils/index.js.map +1 -0
  477. package/dist/utils/path.d.ts +5 -0
  478. package/dist/utils/path.d.ts.map +1 -0
  479. package/dist/utils/path.js +27 -0
  480. package/dist/utils/path.js.map +1 -0
  481. package/dist/utils/strip.d.ts +18 -0
  482. package/dist/utils/strip.d.ts.map +1 -0
  483. package/dist/utils/strip.js +37 -0
  484. package/dist/utils/strip.js.map +1 -0
  485. package/dist/utils/theme.d.ts +10 -0
  486. package/dist/utils/theme.d.ts.map +1 -0
  487. package/dist/utils/theme.js +58 -0
  488. package/dist/utils/theme.js.map +1 -0
  489. package/dist/web/components/FeatureComboboxField.d.ts +17 -0
  490. package/dist/web/components/FeatureComboboxField.d.ts.map +1 -0
  491. package/dist/web/components/FeatureComboboxField.js +38 -0
  492. package/dist/web/components/FeatureComboboxField.js.map +1 -0
  493. package/dist/web/components/ModelComboboxField.d.ts +17 -0
  494. package/dist/web/components/ModelComboboxField.d.ts.map +1 -0
  495. package/dist/web/components/ModelComboboxField.js +38 -0
  496. package/dist/web/components/ModelComboboxField.js.map +1 -0
  497. package/dist/web/components/ModelMergerResultAlert.d.ts +8 -0
  498. package/dist/web/components/ModelMergerResultAlert.d.ts.map +1 -0
  499. package/dist/web/components/ModelMergerResultAlert.js +10 -0
  500. package/dist/web/components/ModelMergerResultAlert.js.map +1 -0
  501. package/dist/web/components/index.d.ts +4 -0
  502. package/dist/web/components/index.d.ts.map +1 -0
  503. package/dist/web/components/index.js +4 -0
  504. package/dist/web/components/index.js.map +1 -0
  505. package/dist/web/contexts/error-handler.d.ts +7 -0
  506. package/dist/web/contexts/error-handler.d.ts.map +1 -0
  507. package/dist/web/contexts/error-handler.js +3 -0
  508. package/dist/web/contexts/error-handler.js.map +1 -0
  509. package/dist/web/contexts/index.d.ts +2 -0
  510. package/dist/web/contexts/index.d.ts.map +1 -0
  511. package/dist/web/contexts/index.js +2 -0
  512. package/dist/web/contexts/index.js.map +1 -0
  513. package/dist/web/hooks/index.d.ts +8 -0
  514. package/dist/web/hooks/index.d.ts.map +1 -0
  515. package/dist/web/hooks/index.js +8 -0
  516. package/dist/web/hooks/index.js.map +1 -0
  517. package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts +3 -0
  518. package/dist/web/hooks/useBlockDirtyFormNavigate.d.ts.map +1 -0
  519. package/dist/web/hooks/useBlockDirtyFormNavigate.js +14 -0
  520. package/dist/web/hooks/useBlockDirtyFormNavigate.js.map +1 -0
  521. package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts +7 -0
  522. package/dist/web/hooks/useBlockUnsavedChangesNavigate.d.ts.map +1 -0
  523. package/dist/web/hooks/useBlockUnsavedChangesNavigate.js +47 -0
  524. package/dist/web/hooks/useBlockUnsavedChangesNavigate.js.map +1 -0
  525. package/dist/web/hooks/useBlockerDialog.d.ts +44 -0
  526. package/dist/web/hooks/useBlockerDialog.d.ts.map +1 -0
  527. package/dist/web/hooks/useBlockerDialog.js +77 -0
  528. package/dist/web/hooks/useBlockerDialog.js.map +1 -0
  529. package/dist/web/hooks/useErrorHandler.d.ts +3 -0
  530. package/dist/web/hooks/useErrorHandler.d.ts.map +1 -0
  531. package/dist/web/hooks/useErrorHandler.js +10 -0
  532. package/dist/web/hooks/useErrorHandler.js.map +1 -0
  533. package/dist/web/hooks/usePluginEnhancedSchema.d.ts +4 -0
  534. package/dist/web/hooks/usePluginEnhancedSchema.d.ts.map +1 -0
  535. package/dist/web/hooks/usePluginEnhancedSchema.js +8 -0
  536. package/dist/web/hooks/usePluginEnhancedSchema.js.map +1 -0
  537. package/dist/web/hooks/useProjectDefinition.d.ts +65 -0
  538. package/dist/web/hooks/useProjectDefinition.d.ts.map +1 -0
  539. package/dist/web/hooks/useProjectDefinition.js +10 -0
  540. package/dist/web/hooks/useProjectDefinition.js.map +1 -0
  541. package/dist/web/hooks/useResettableForm.d.ts +3 -0
  542. package/dist/web/hooks/useResettableForm.d.ts.map +1 -0
  543. package/dist/web/hooks/useResettableForm.js +29 -0
  544. package/dist/web/hooks/useResettableForm.js.map +1 -0
  545. package/dist/web/index.d.ts +6 -0
  546. package/dist/web/index.d.ts.map +1 -0
  547. package/dist/web/index.js +6 -0
  548. package/dist/web/index.js.map +1 -0
  549. package/dist/web/specs/admin-crud-input-web-spec.d.ts +36 -0
  550. package/dist/web/specs/admin-crud-input-web-spec.d.ts.map +1 -0
  551. package/dist/web/specs/admin-crud-input-web-spec.js +35 -0
  552. package/dist/web/specs/admin-crud-input-web-spec.js.map +1 -0
  553. package/dist/web/specs/index.d.ts +3 -0
  554. package/dist/web/specs/index.d.ts.map +1 -0
  555. package/dist/web/specs/index.js +3 -0
  556. package/dist/web/specs/index.js.map +1 -0
  557. package/dist/web/specs/model-transformer-web-spec.d.ts +40 -0
  558. package/dist/web/specs/model-transformer-web-spec.d.ts.map +1 -0
  559. package/dist/web/specs/model-transformer-web-spec.js +35 -0
  560. package/dist/web/specs/model-transformer-web-spec.js.map +1 -0
  561. package/dist/web/utils/form.d.ts +2 -0
  562. package/dist/web/utils/form.d.ts.map +1 -0
  563. package/dist/web/utils/form.js +6 -0
  564. package/dist/web/utils/form.js.map +1 -0
  565. package/dist/web/utils/index.d.ts +2 -0
  566. package/dist/web/utils/index.d.ts.map +1 -0
  567. package/dist/web/utils/index.js +2 -0
  568. package/dist/web/utils/index.js.map +1 -0
  569. package/package.json +78 -0
@@ -0,0 +1,17 @@
1
+ import type { ComboboxFieldProps } from '@baseplate-dev/ui-components';
2
+ import type React from 'react';
3
+ import type { Control, FieldPath, FieldValues } from 'react-hook-form';
4
+ interface FeatureComboboxFieldProps extends Omit<ComboboxFieldProps<{
5
+ label: string;
6
+ value: string;
7
+ }>, 'options'> {
8
+ canCreate?: boolean;
9
+ }
10
+ declare function FeatureComboboxField({ canCreate, value, ...rest }: FeatureComboboxFieldProps): React.ReactElement;
11
+ interface FeatureComboboxFieldControllerProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<FeatureComboboxFieldProps, 'value'> {
12
+ control: Control<TFieldValues>;
13
+ name: TFieldName;
14
+ }
15
+ declare function FeatureComboboxFieldController<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, control, ...rest }: FeatureComboboxFieldControllerProps<TFieldValues, TFieldName>): React.JSX.Element;
16
+ export { FeatureComboboxField, FeatureComboboxFieldController };
17
+ //# sourceMappingURL=FeatureComboboxField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureComboboxField.d.ts","sourceRoot":"","sources":["../../../src/web/components/FeatureComboboxField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYvE,UAAU,yBACR,SAAQ,IAAI,CACV,kBAAkB,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,EACF,SAAS,CACV;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AASD,iBAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,yBAAyB,GAAG,KAAK,CAAC,YAAY,CAoChD;AAED,UAAU,mCAAmC,CAC3C,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,yBAAyB,EAAE,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,iBAAS,8BAA8B,CACrC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,mCAAmC,CACpC,YAAY,EACZ,UAAU,CACX,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBpB;AAED,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ComboboxField, useControllerMerged, } from '@baseplate-dev/ui-components';
3
+ import { useMemo, useState } from 'react';
4
+ import { FeatureUtils } from '#src/definition/index.js';
5
+ import { useProjectDefinition } from '../hooks/useProjectDefinition.js';
6
+ function createCreateOption(value) {
7
+ return {
8
+ label: `Create "${value}"`,
9
+ value,
10
+ };
11
+ }
12
+ function FeatureComboboxField({ canCreate, value, ...rest }) {
13
+ const { definition } = useProjectDefinition();
14
+ const [searchQuery, setSearchQuery] = useState('');
15
+ const featureOptions = useMemo(() => {
16
+ const baseFeatures = definition.features.map((feature) => ({
17
+ label: feature.name,
18
+ value: feature.id,
19
+ }));
20
+ if (!canCreate)
21
+ return baseFeatures;
22
+ const newFeatureName = searchQuery ? searchQuery : value;
23
+ const doesNewFeatureExist = !!baseFeatures.some((option) => option.label === newFeatureName || option.value === newFeatureName);
24
+ return !doesNewFeatureExist &&
25
+ newFeatureName &&
26
+ FeatureUtils.validateFeatureName(newFeatureName)
27
+ ? [...baseFeatures, createCreateOption(newFeatureName)]
28
+ : baseFeatures;
29
+ }, [definition.features, searchQuery, value, canCreate]);
30
+ return (_jsx(ComboboxField, { placeholder: "Select a feature", ...rest, searchQuery: canCreate ? searchQuery : undefined, onSearchQueryChange: setSearchQuery, options: featureOptions, value: value }));
31
+ }
32
+ function FeatureComboboxFieldController({ name, control, ...rest }) {
33
+ const { field, fieldState: { error }, } = useControllerMerged({ name, control }, rest);
34
+ const restProps = rest;
35
+ return (_jsx(FeatureComboboxField, { error: error?.message, ...restProps, ...field, value: field.value ?? null }));
36
+ }
37
+ export { FeatureComboboxField, FeatureComboboxFieldController };
38
+ //# sourceMappingURL=FeatureComboboxField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureComboboxField.js","sourceRoot":"","sources":["../../../src/web/components/FeatureComboboxField.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAaxE,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,KAAK,EAAE,WAAW,KAAK,GAAG;QAC1B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAC5B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACmB;IAC1B,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzD,KAAK,EAAE,OAAO,CAAC,IAAI;YACnB,KAAK,EAAE,OAAO,CAAC,EAAE;SAClB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS;YAAE,OAAO,YAAY,CAAC;QAEpC,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAEzD,MAAM,mBAAmB,GAAG,CAAC,CAAC,YAAY,CAAC,IAAI,CAC7C,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,KAAK,cAAc,IAAI,MAAM,CAAC,KAAK,KAAK,cAAc,CACrE,CAAC;QAEF,OAAO,CAAC,mBAAmB;YACzB,cAAc;YACd,YAAY,CAAC,mBAAmB,CAAC,cAAc,CAAC;YAChD,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,kBAAkB,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC,CAAC,YAAY,CAAC;IACnB,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEzD,OAAO,CACL,KAAC,aAAa,IACZ,WAAW,EAAC,kBAAkB,KAC1B,IAAI,EACR,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAChD,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC;AAUD,SAAS,8BAA8B,CAGrC,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EAIR;IACC,MAAM,EACJ,KAAK,EACL,UAAU,EAAE,EAAE,KAAK,EAAE,GACtB,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,oBAAoB,IACnB,KAAK,EAAE,KAAK,EAAE,OAAO,KACjB,SAAS,KACT,KAAK,EACT,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,GAC1B,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,8BAA8B,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ComboboxFieldProps } from '@baseplate-dev/ui-components';
2
+ import type React from 'react';
3
+ import type { Control, FieldPath, FieldValues } from 'react-hook-form';
4
+ interface ModelComboboxFieldProps extends Omit<ComboboxFieldProps<{
5
+ label: string;
6
+ value: string;
7
+ }>, 'options'> {
8
+ canCreate?: boolean;
9
+ }
10
+ declare function ModelComboboxField({ canCreate, value, ...rest }: ModelComboboxFieldProps): React.ReactElement;
11
+ interface ModelComboboxFieldControllerProps<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends Omit<ModelComboboxFieldProps, 'value'> {
12
+ control: Control<TFieldValues>;
13
+ name: TFieldName;
14
+ }
15
+ declare function ModelComboboxFieldController<TFieldValues extends FieldValues = FieldValues, TFieldName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ name, control, ...rest }: ModelComboboxFieldControllerProps<TFieldValues, TFieldName>): React.JSX.Element;
16
+ export { ModelComboboxField, ModelComboboxFieldController };
17
+ //# sourceMappingURL=ModelComboboxField.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelComboboxField.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModelComboboxField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAYvE,UAAU,uBACR,SAAQ,IAAI,CACV,kBAAkB,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,EACF,SAAS,CACV;IACD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AASD,iBAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACR,EAAE,uBAAuB,GAAG,KAAK,CAAC,YAAY,CAoC9C;AAED,UAAU,iCAAiC,CACzC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,CACpE,SAAQ,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAC9C,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,IAAI,EAAE,UAAU,CAAC;CAClB;AAED,iBAAS,4BAA4B,CACnC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,UAAU,SAAS,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,YAAY,CAAC,EACpE,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EACR,EAAE,iCAAiC,CAClC,YAAY,EACZ,UAAU,CACX,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAgBpB;AAED,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ComboboxField, useControllerMerged, } from '@baseplate-dev/ui-components';
3
+ import { useMemo, useState } from 'react';
4
+ import { ModelUtils } from '#src/definition/index.js';
5
+ import { useProjectDefinition } from '../hooks/useProjectDefinition.js';
6
+ function createCreateOption(value) {
7
+ return {
8
+ label: `Create "${value}"`,
9
+ value,
10
+ };
11
+ }
12
+ function ModelComboboxField({ canCreate, value, ...rest }) {
13
+ const { definition } = useProjectDefinition();
14
+ const [searchQuery, setSearchQuery] = useState('');
15
+ const modelOptions = useMemo(() => {
16
+ const baseModels = definition.models.map((model) => ({
17
+ label: model.name,
18
+ value: model.id,
19
+ }));
20
+ if (!canCreate)
21
+ return baseModels;
22
+ const newModelName = searchQuery ? searchQuery : value;
23
+ const doesNewModelExist = !!baseModels.some((option) => option.label === newModelName || option.value === newModelName);
24
+ return !doesNewModelExist &&
25
+ newModelName &&
26
+ ModelUtils.validateModelName(newModelName)
27
+ ? [...baseModels, createCreateOption(newModelName)]
28
+ : baseModels;
29
+ }, [definition.models, searchQuery, value, canCreate]);
30
+ return (_jsx(ComboboxField, { placeholder: "Select a model", ...rest, searchQuery: canCreate ? searchQuery : undefined, onSearchQueryChange: setSearchQuery, options: modelOptions, value: value }));
31
+ }
32
+ function ModelComboboxFieldController({ name, control, ...rest }) {
33
+ const { field, fieldState: { error }, } = useControllerMerged({ name, control }, rest);
34
+ const restProps = rest;
35
+ return (_jsx(ModelComboboxField, { error: error?.message, ...restProps, ...field, value: field.value ?? null }));
36
+ }
37
+ export { ModelComboboxField, ModelComboboxFieldController };
38
+ //# sourceMappingURL=ModelComboboxField.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelComboboxField.js","sourceRoot":"","sources":["../../../src/web/components/ModelComboboxField.tsx"],"names":[],"mappings":";AAIA,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAaxE,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,KAAK,EAAE,WAAW,KAAK,GAAG;QAC1B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,EAC1B,SAAS,EACT,KAAK,EACL,GAAG,IAAI,EACiB;IACxB,MAAM,EAAE,UAAU,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC9C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEnD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnD,KAAK,EAAE,KAAK,CAAC,IAAI;YACjB,KAAK,EAAE,KAAK,CAAC,EAAE;SAChB,CAAC,CAAC,CAAC;QAEJ,IAAI,CAAC,SAAS;YAAE,OAAO,UAAU,CAAC;QAElC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;QAEvD,MAAM,iBAAiB,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,KAAK,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,KAAK,YAAY,CACjE,CAAC;QAEF,OAAO,CAAC,iBAAiB;YACvB,YAAY;YACZ,UAAU,CAAC,iBAAiB,CAAC,YAAY,CAAC;YAC1C,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC,CAAC,UAAU,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAEvD,OAAO,CACL,KAAC,aAAa,IACZ,WAAW,EAAC,gBAAgB,KACxB,IAAI,EACR,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAChD,mBAAmB,EAAE,cAAc,EACnC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC;AAUD,SAAS,4BAA4B,CAGnC,EACA,IAAI,EACJ,OAAO,EACP,GAAG,IAAI,EAIR;IACC,MAAM,EACJ,KAAK,EACL,UAAU,EAAE,EAAE,KAAK,EAAE,GACtB,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,IAAI,CAAC;IAEvB,OAAO,CACL,KAAC,kBAAkB,IACjB,KAAK,EAAE,KAAK,EAAE,OAAO,KACjB,SAAS,KACT,KAAK,EACT,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI,GAC1B,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type ReactElement } from 'react';
2
+ import type { ModelMergerModelDiffResult } from '#src/tools/index.js';
3
+ interface Props {
4
+ pendingModelChanges: Record<string, ModelMergerModelDiffResult | undefined>;
5
+ }
6
+ export declare function ModelMergerResultAlert({ pendingModelChanges, }: Props): ReactElement | null;
7
+ export {};
8
+ //# sourceMappingURL=ModelMergerResultAlert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelMergerResultAlert.d.ts","sourceRoot":"","sources":["../../../src/web/components/ModelMergerResultAlert.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAEtE,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,GAAG,SAAS,CAAC,CAAC;CAC7E;AAED,wBAAgB,sBAAsB,CAAC,EACrC,mBAAmB,GACpB,EAAE,KAAK,GAAG,YAAY,GAAG,IAAI,CA6E7B"}
@@ -0,0 +1,10 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { Alert, AlertDescription, AlertTitle, } from '@baseplate-dev/ui-components';
3
+ export function ModelMergerResultAlert({ pendingModelChanges, }) {
4
+ const changes = Object.values(pendingModelChanges).filter((change) => change !== undefined);
5
+ if (changes.length === 0) {
6
+ return null;
7
+ }
8
+ return (_jsx("div", { className: "space-y-4", children: changes.map((change) => (_jsxs(Alert, { variant: change.isNewModel ? 'default' : 'warning', children: [_jsxs(AlertTitle, { children: [change.isNewModel ? 'New Model' : 'Model Changes', ": ", change.name] }), _jsx(AlertDescription, { children: _jsxs("div", { className: "mt-2 space-y-2", children: [change.isNewModel ? (_jsx("p", { children: "This is a new model that will be created with the following configuration:" })) : (_jsx("p", { children: "The following changes will be applied to the model:" })), _jsxs("ul", { className: "list-disc pl-4 space-y-1", children: [change.changes['model.fields']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.fields'].length }), ' ', "field(s) will be", change.isNewModel ? ' created' : ' added or updated'] })) : undefined, change.changes['model.relations']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.relations'].length }), ' ', "relation(s) will be", change.isNewModel ? ' created' : ' added or updated'] })) : undefined, change.changes['model.uniqueConstraints']?.length ? (_jsxs("li", { children: [_jsx("span", { className: "font-medium", children: change.changes['model.uniqueConstraints'].length }), ' ', "unique constraint(s) will be", ' ', change.isNewModel ? 'created' : 'added or updated'] })) : undefined, change.changes['model.primaryKeyFieldRefs']?.length ? (_jsxs("li", { children: ["Primary key will be ", change.isNewModel ? 'set' : 'updated', ' ', "with", ' ', _jsx("span", { className: "font-medium", children: change.changes['model.primaryKeyFieldRefs'].length }), ' ', "field(s)"] })) : undefined] })] }) })] }, change.name))) }));
9
+ }
10
+ //# sourceMappingURL=ModelMergerResultAlert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelMergerResultAlert.js","sourceRoot":"","sources":["../../../src/web/components/ModelMergerResultAlert.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,GACX,MAAM,8BAA8B,CAAC;AAStC,MAAM,UAAU,sBAAsB,CAAC,EACrC,mBAAmB,GACb;IACN,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CACvD,CAAC,MAAM,EAAwC,EAAE,CAAC,MAAM,KAAK,SAAS,CACvE,CAAC;IACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAC,WAAW,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACvB,MAAC,KAAK,IAEJ,OAAO,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,aAElD,MAAC,UAAU,eACR,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,QAAI,MAAM,CAAC,IAAI,IACtD,EACb,KAAC,gBAAgB,cACf,eAAK,SAAS,EAAC,gBAAgB,aAC5B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CACnB,qGAGI,CACL,CAAC,CAAC,CAAC,CACF,8EAA0D,CAC3D,EAED,cAAI,SAAS,EAAC,0BAA0B,aACrC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACxC,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GACjC,EAAC,GAAG,sBAEV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,IAClD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAC3C,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,MAAM,GACpC,EAAC,GAAG,yBAEV,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB,IAClD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACnD,yBACE,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,MAAM,GAC5C,EAAC,GAAG,kCACkB,GAAG,EAC/B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,IAChD,CACN,CAAC,CAAC,CAAC,SAAS,EAEZ,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CACrD,iDACuB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,UAC1D,GAAG,EACR,eAAM,SAAS,EAAC,aAAa,YAC1B,MAAM,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC,MAAM,GAC9C,EAAC,GAAG,gBAER,CACN,CAAC,CAAC,CAAC,SAAS,IACV,IACD,GACW,KA5Dd,MAAM,CAAC,IAAI,CA6DV,CACT,CAAC,GACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './FeatureComboboxField.js';
2
+ export * from './ModelComboboxField.js';
3
+ export * from './ModelMergerResultAlert.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './FeatureComboboxField.js';
2
+ export * from './ModelComboboxField.js';
3
+ export * from './ModelMergerResultAlert.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface ErrorHandlerValue {
2
+ formatError: (error: unknown) => string;
3
+ logError: (error: unknown) => void;
4
+ logAndFormatError: (error: unknown) => string;
5
+ }
6
+ export declare const ErrorHandlerContext: import("react").Context<ErrorHandlerValue | null>;
7
+ //# sourceMappingURL=error-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../../src/web/contexts/error-handler.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,iBAAiB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC/C;AAED,eAAO,MAAM,mBAAmB,mDAE/B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const ErrorHandlerContext = createContext(null);
3
+ //# sourceMappingURL=error-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../../src/web/contexts/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAC9C,IAAI,CACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './error-handler.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './error-handler.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/contexts/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './useBlockDirtyFormNavigate.js';
2
+ export * from './useBlockerDialog.js';
3
+ export * from './useBlockUnsavedChangesNavigate.js';
4
+ export * from './useErrorHandler.js';
5
+ export * from './usePluginEnhancedSchema.js';
6
+ export * from './useProjectDefinition.js';
7
+ export * from './useResettableForm.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './useBlockDirtyFormNavigate.js';
2
+ export * from './useBlockerDialog.js';
3
+ export * from './useBlockUnsavedChangesNavigate.js';
4
+ export * from './useErrorHandler.js';
5
+ export * from './usePluginEnhancedSchema.js';
6
+ export * from './useProjectDefinition.js';
7
+ export * from './useResettableForm.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/web/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qCAAqC,CAAC;AACpD,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { FieldValues, FormState } from 'react-hook-form';
2
+ export declare function useBlockDirtyFormNavigate<TFieldValues extends FieldValues = FieldValues>(formState: FormState<TFieldValues>, reset: () => void): void;
3
+ //# sourceMappingURL=useBlockDirtyFormNavigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockDirtyFormNavigate.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockDirtyFormNavigate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAI9D,wBAAgB,yBAAyB,CACvC,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,IAAI,GAAG,IAAI,CAW7D"}
@@ -0,0 +1,14 @@
1
+ import { useBlockerDialog } from './useBlockerDialog.js';
2
+ export function useBlockDirtyFormNavigate(formState, reset) {
3
+ useBlockerDialog({
4
+ disableBlock: !formState.isDirty,
5
+ title: 'Unsaved Changes',
6
+ content: 'You have unsaved changes. Are you sure you want to continue?',
7
+ buttonContinueText: 'Discard Changes',
8
+ onContinue: () => {
9
+ reset();
10
+ return true;
11
+ },
12
+ });
13
+ }
14
+ //# sourceMappingURL=useBlockDirtyFormNavigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockDirtyFormNavigate.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockDirtyFormNavigate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,yBAAyB,CAEvC,SAAkC,EAAE,KAAiB;IACrD,gBAAgB,CAAC;QACf,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO;QAChC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,8DAA8D;QACvE,kBAAkB,EAAE,iBAAiB;QACrC,UAAU,EAAE,GAAG,EAAE;YACf,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { type Control, type FieldValues } from 'react-hook-form';
2
+ export declare function useBlockUnsavedChangesNavigate<TFieldValues extends FieldValues = FieldValues>({ control, reset, onSubmit, }: {
3
+ control: Control<TFieldValues>;
4
+ reset: () => void;
5
+ onSubmit: (e?: React.BaseSyntheticEvent) => Promise<void>;
6
+ }): void;
7
+ //# sourceMappingURL=useBlockUnsavedChangesNavigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockUnsavedChangesNavigate.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockUnsavedChangesNavigate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,iBAAiB,CAAC;AAI/E,wBAAgB,8BAA8B,CAC5C,YAAY,SAAS,WAAW,GAAG,WAAW,EAC9C,EACA,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAC/B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3D,GAAG,IAAI,CAiDP"}
@@ -0,0 +1,47 @@
1
+ import { toast } from '@baseplate-dev/ui-components';
2
+ import { flattenObject } from 'es-toolkit';
3
+ import { useEffect, useRef } from 'react';
4
+ import { useFormState } from 'react-hook-form';
5
+ import { useBlockerDialog } from './useBlockerDialog.js';
6
+ export function useBlockUnsavedChangesNavigate({ control, reset, onSubmit, }) {
7
+ const isDirtyRef = useRef(false);
8
+ const formState = useFormState({ control });
9
+ isDirtyRef.current = formState.isDirty;
10
+ if (import.meta.env.DEV) {
11
+ // eslint-disable-next-line react-hooks/rules-of-hooks -- only want to run this check in dev mode for performance/usability reasons
12
+ useEffect(() => {
13
+ if (Object.keys(formState.dirtyFields).length === 0 &&
14
+ formState.isDirty) {
15
+ // a bit of a hack to figure out what the issue is but OK since we only do this in dev mode
16
+ const { _formValues, _defaultValues } = control;
17
+ const formValueKeys = Object.keys(flattenObject(_formValues));
18
+ const defaultValueKeys = Object.keys(flattenObject(_defaultValues));
19
+ const missingKeys = formValueKeys.filter((key) => !defaultValueKeys.includes(key));
20
+ toast.error(`Form is dirty but no fields are marked as dirty. This implies that there is likely a field ` +
21
+ `is controlled but not set in defaultValues. This can be fixed by setting the default value to the field. ` +
22
+ `Note: You will only see this error if you are running the app in dev mode. ` +
23
+ `Missing fields: ${missingKeys.join(', ')}`);
24
+ }
25
+ }, [formState.dirtyFields, formState.isDirty, control]);
26
+ }
27
+ useBlockerDialog({
28
+ disableBlock: !formState.isDirty,
29
+ title: 'Unsaved Changes',
30
+ content: 'You have unsaved changes. Do you want to save your changes?',
31
+ buttonContinueWithoutSaveText: 'Discard Changes',
32
+ onContinueWithoutSave: () => {
33
+ reset();
34
+ return true;
35
+ },
36
+ buttonContinueText: 'Save',
37
+ onContinue: async () => {
38
+ await onSubmit();
39
+ // a bit of a hack to make sure we get the latest form state before continuing
40
+ // there's not an easy way of figuring out if the submission was successful or not
41
+ // so we wait for a React re-render and then check if the form is still dirty
42
+ await new Promise((resolve) => setTimeout(resolve, 1));
43
+ return !isDirtyRef.current;
44
+ },
45
+ });
46
+ }
47
+ //# sourceMappingURL=useBlockUnsavedChangesNavigate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockUnsavedChangesNavigate.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockUnsavedChangesNavigate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAkC,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,UAAU,8BAA8B,CAE5C,EACA,OAAO,EACP,KAAK,EACL,QAAQ,GAKT;IACC,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;IAEvC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QACxB,mIAAmI;QACnI,SAAS,CAAC,GAAG,EAAE;YACb,IACE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;gBAC/C,SAAS,CAAC,OAAO,EACjB,CAAC;gBACD,2FAA2F;gBAC3F,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;gBAChD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9D,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC;gBACpE,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CACtC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CACzC,CAAC;gBAEF,KAAK,CAAC,KAAK,CACT,6FAA6F;oBAC3F,2GAA2G;oBAC3G,6EAA6E;oBAC7E,mBAAmB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9C,CAAC;YACJ,CAAC;QACH,CAAC,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB,CAAC;QACf,YAAY,EAAE,CAAC,SAAS,CAAC,OAAO;QAChC,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,6DAA6D;QACtE,6BAA6B,EAAE,iBAAiB;QAChD,qBAAqB,EAAE,GAAG,EAAE;YAC1B,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QACD,kBAAkB,EAAE,MAAM;QAC1B,UAAU,EAAE,KAAK,IAAI,EAAE;YACrB,MAAM,QAAQ,EAAE,CAAC;YACjB,8EAA8E;YAC9E,kFAAkF;YAClF,6EAA6E;YAC7E,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,44 @@
1
+ export interface UseBlockerDialogOptions {
2
+ disableBlock?: boolean;
3
+ title: string;
4
+ content: string;
5
+ /**
6
+ * Text for button enabling the user to continue without saving (discarding changes). If blank, no button with show.
7
+ */
8
+ buttonContinueWithoutSaveText?: string;
9
+ /**
10
+ * Action handler for when the user clicks the continue without saving button
11
+ *
12
+ * @returns true if the user should be allowed to continue, false if the user should be blocked from continuing
13
+ */
14
+ onContinueWithoutSave?: () => Promise<boolean> | boolean;
15
+ /**
16
+ * Text for button enabling the user to continue
17
+ */
18
+ buttonContinueText?: string;
19
+ /**
20
+ * Action handler for when the user clicks the continue button
21
+ *
22
+ * @returns true if the user should be allowed to continue, false if the user should be blocked from continuing
23
+ */
24
+ onContinue?: () => Promise<boolean> | boolean;
25
+ }
26
+ interface UseBlockerDialogOptionsWithId extends UseBlockerDialogOptions {
27
+ id: string;
28
+ }
29
+ interface RequestBlockerOptions {
30
+ onContinue: () => void;
31
+ }
32
+ interface UseBlockerDialogState {
33
+ activeBlockers: UseBlockerDialogOptionsWithId[];
34
+ addBlocker: (options: UseBlockerDialogOptionsWithId) => void;
35
+ removeBlocker: (id: string) => void;
36
+ requestedBlockers: RequestBlockerOptions[];
37
+ requestBlocker: (options: RequestBlockerOptions) => void;
38
+ clearRequestedBlockers: () => void;
39
+ }
40
+ export declare const useBlockerDialogState: import("zustand").UseBoundStore<import("zustand").StoreApi<UseBlockerDialogState>>;
41
+ export declare function useBlockBeforeContinue(): (options: RequestBlockerOptions) => void;
42
+ export declare function useBlockerDialog(options: UseBlockerDialogOptions): void;
43
+ export {};
44
+ //# sourceMappingURL=useBlockerDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockerDialog.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useBlockerDialog.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACzD;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CAC/C;AAED,UAAU,6BAA8B,SAAQ,uBAAuB;IACrE,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,UAAU,qBAAqB;IAC7B,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,UAAU,qBAAqB;IAC7B,cAAc,EAAE,6BAA6B,EAAE,CAAC;IAChD,UAAU,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;IAC3C,cAAc,EAAE,CAAC,OAAO,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACzD,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED,eAAO,MAAM,qBAAqB,oFAyB/B,CAAC;AAEJ,wBAAgB,sBAAsB,IAAI,CACxC,OAAO,EAAE,qBAAqB,KAC3B,IAAI,CAsBR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAmCvE"}
@@ -0,0 +1,77 @@
1
+ import { useEffect, useId } from 'react';
2
+ import { create } from 'zustand';
3
+ export const useBlockerDialogState = create((set) => ({
4
+ activeBlockers: [],
5
+ addBlocker: (options) => {
6
+ set((state) => ({
7
+ activeBlockers: [...state.activeBlockers, options],
8
+ }));
9
+ },
10
+ removeBlocker: (id) => {
11
+ set((state) => ({
12
+ activeBlockers: state.activeBlockers.filter((blocker) => blocker.id !== id),
13
+ }));
14
+ },
15
+ requestedBlockers: [],
16
+ requestBlocker(options) {
17
+ set((state) => ({
18
+ requestedBlockers: [...state.requestedBlockers, options],
19
+ }));
20
+ },
21
+ clearRequestedBlockers: () => {
22
+ set(() => ({
23
+ requestedBlockers: [],
24
+ }));
25
+ },
26
+ }));
27
+ export function useBlockBeforeContinue() {
28
+ const hasActiveBlockers = useBlockerDialogState((state) => state.activeBlockers.length > 0);
29
+ const clearRequestedBlockers = useBlockerDialogState((state) => state.clearRequestedBlockers);
30
+ // make sure we clear any blocker requests if we navigate away
31
+ useEffect(() => () => {
32
+ clearRequestedBlockers();
33
+ }, [clearRequestedBlockers]);
34
+ const requestBlocker = useBlockerDialogState((state) => state.requestBlocker);
35
+ // if no blockers, continue immediately
36
+ if (!hasActiveBlockers) {
37
+ return ({ onContinue }) => {
38
+ onContinue();
39
+ };
40
+ }
41
+ return requestBlocker;
42
+ }
43
+ export function useBlockerDialog(options) {
44
+ const id = useId();
45
+ const addBlocker = useBlockerDialogState((state) => state.addBlocker);
46
+ const removeBlocker = useBlockerDialogState((state) => state.removeBlocker);
47
+ useEffect(() => {
48
+ if (options.disableBlock) {
49
+ return;
50
+ }
51
+ addBlocker({
52
+ disableBlock: options.disableBlock,
53
+ title: options.title,
54
+ content: options.content,
55
+ buttonContinueWithoutSaveText: options.buttonContinueWithoutSaveText,
56
+ onContinueWithoutSave: options.onContinueWithoutSave,
57
+ buttonContinueText: options.buttonContinueText,
58
+ onContinue: options.onContinue,
59
+ id,
60
+ });
61
+ return () => {
62
+ removeBlocker(id);
63
+ };
64
+ }, [
65
+ addBlocker,
66
+ removeBlocker,
67
+ options.disableBlock,
68
+ options.buttonContinueWithoutSaveText,
69
+ options.onContinueWithoutSave,
70
+ options.buttonContinueText,
71
+ options.content,
72
+ options.title,
73
+ options.onContinue,
74
+ id,
75
+ ]);
76
+ }
77
+ //# sourceMappingURL=useBlockerDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBlockerDialog.js","sourceRoot":"","sources":["../../../src/web/hooks/useBlockerDialog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AA6CjC,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3E,cAAc,EAAE,EAAE;IAClB,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;QACtB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,CAAC,GAAG,KAAK,CAAC,cAAc,EAAE,OAAO,CAAC;SACnD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE;QACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CACzC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAC/B;SACF,CAAC,CAAC,CAAC;IACN,CAAC;IACD,iBAAiB,EAAE,EAAE;IACrB,cAAc,CAAC,OAAO;QACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACd,iBAAiB,EAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC;SACzD,CAAC,CAAC,CAAC;IACN,CAAC;IACD,sBAAsB,EAAE,GAAG,EAAE;QAC3B,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACT,iBAAiB,EAAE,EAAE;SACtB,CAAC,CAAC,CAAC;IACN,CAAC;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,UAAU,sBAAsB;IAGpC,MAAM,iBAAiB,GAAG,qBAAqB,CAC7C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAC3C,CAAC;IACF,MAAM,sBAAsB,GAAG,qBAAqB,CAClD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,sBAAsB,CACxC,CAAC;IACF,8DAA8D;IAC9D,SAAS,CACP,GAAG,EAAE,CAAC,GAAG,EAAE;QACT,sBAAsB,EAAE,CAAC;IAC3B,CAAC,EACD,CAAC,sBAAsB,CAAC,CACzB,CAAC;IACF,MAAM,cAAc,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC9E,uCAAuC;IACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;YACxB,UAAU,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,UAAU,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE5E,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,UAAU,CAAC;YACT,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,6BAA6B,EAAE,OAAO,CAAC,6BAA6B;YACpE,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;YAC9C,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,EAAE;SACH,CAAC,CAAC;QACH,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC,EAAE;QACD,UAAU;QACV,aAAa;QACb,OAAO,CAAC,YAAY;QACpB,OAAO,CAAC,6BAA6B;QACrC,OAAO,CAAC,qBAAqB;QAC7B,OAAO,CAAC,kBAAkB;QAC1B,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,UAAU;QAClB,EAAE;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ErrorHandlerValue } from '../contexts/error-handler.js';
2
+ export declare function useErrorHandler(): ErrorHandlerValue;
3
+ //# sourceMappingURL=useErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useErrorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAItE,wBAAgB,eAAe,IAAI,iBAAiB,CAUnD"}
@@ -0,0 +1,10 @@
1
+ import { useContext } from 'react';
2
+ import { ErrorHandlerContext } from '../contexts/error-handler.js';
3
+ export function useErrorHandler() {
4
+ const context = useContext(ErrorHandlerContext);
5
+ if (!context) {
6
+ throw new Error('useErrorHandler must be used within an ErrorHandlerContext');
7
+ }
8
+ return context;
9
+ }
10
+ //# sourceMappingURL=useErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErrorHandler.js","sourceRoot":"","sources":["../../../src/web/hooks/useErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAInC,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAEhD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { z } from 'zod';
2
+ import type { ZodPluginWrapper } from '#src/plugins/index.js';
3
+ export declare function usePluginEnhancedSchema<T extends z.ZodTypeAny>(schema: T): ZodPluginWrapper<T>;
4
+ //# sourceMappingURL=usePluginEnhancedSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePluginEnhancedSchema.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/usePluginEnhancedSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAI7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAM9D,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,EAC5D,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,CAAC,CAAC,CAMrB"}
@@ -0,0 +1,8 @@
1
+ import { useMemo } from 'react';
2
+ import { zPluginWrapper } from '#src/plugins/index.js';
3
+ import { useProjectDefinition } from './useProjectDefinition.js';
4
+ export function usePluginEnhancedSchema(schema) {
5
+ const { pluginContainer } = useProjectDefinition();
6
+ return useMemo(() => zPluginWrapper(schema, pluginContainer), [schema, pluginContainer]);
7
+ }
8
+ //# sourceMappingURL=usePluginEnhancedSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePluginEnhancedSchema.js","sourceRoot":"","sources":["../../../src/web/hooks/usePluginEnhancedSchema.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,uBAAuB,CACrC,MAAS;IAET,MAAM,EAAE,eAAe,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACnD,OAAO,OAAO,CACZ,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC,EAC7C,CAAC,MAAM,EAAE,eAAe,CAAC,CAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ import type { ProjectDefinitionContainer } from '#src/definition/project-definition-container.js';
3
+ import type { SchemaParserContext } from '#src/parser/types.js';
4
+ import type { PluginImplementationStore } from '#src/plugins/index.js';
5
+ import type { ProjectDefinition } from '#src/schema/project-definition.js';
6
+ /**
7
+ * A function that sets the project definition.
8
+ *
9
+ * This can be a function that returns a new project definition, or a function that
10
+ * mutates the existing project definition (using Immer).
11
+ */
12
+ export type ProjectDefinitionSetter = (draftConfig: ProjectDefinition) => void;
13
+ export interface SaveDefinitionWithFeedbackOptions {
14
+ disableDeleteRefDialog?: boolean;
15
+ successMessage?: string;
16
+ onSuccess?: () => void;
17
+ }
18
+ /**
19
+ * The result of the `useProjectDefinition` hook.
20
+ */
21
+ export interface UseProjectDefinitionResult {
22
+ /**
23
+ * The current project definition.
24
+ */
25
+ definition: ProjectDefinition;
26
+ /**
27
+ * The project definition container.
28
+ */
29
+ definitionContainer: ProjectDefinitionContainer;
30
+ /**
31
+ * Whether the project definition has been updated externally.
32
+ */
33
+ updatedExternally: boolean;
34
+ /**
35
+ * Save the project definition.
36
+ */
37
+ saveDefinition: (definition: ProjectDefinitionSetter) => Promise<void>;
38
+ /**
39
+ * Save the project definition with feedback showing a toast
40
+ * when there are errors or a success message when the definition is saved.
41
+ */
42
+ saveDefinitionWithFeedback: (definition: ProjectDefinitionSetter, options?: SaveDefinitionWithFeedbackOptions) => Promise<{
43
+ success: boolean;
44
+ }>;
45
+ /**
46
+ * Save the project definition with feedback showing a toast
47
+ * when there are errors or a success message when the definition is saved.
48
+ */
49
+ saveDefinitionWithFeedbackSync: (definition: ProjectDefinitionSetter, options?: SaveDefinitionWithFeedbackOptions) => void;
50
+ /**
51
+ * Whether the project definition is being saved.
52
+ */
53
+ isSavingDefinition: boolean;
54
+ /**
55
+ * The plugin container.
56
+ */
57
+ pluginContainer: PluginImplementationStore;
58
+ /**
59
+ * The schema parser context.
60
+ */
61
+ schemaParserContext: SchemaParserContext;
62
+ }
63
+ export declare const ProjectDefinitionContext: React.Context<UseProjectDefinitionResult | null>;
64
+ export declare function useProjectDefinition(): UseProjectDefinitionResult;
65
+ //# sourceMappingURL=useProjectDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProjectDefinition.d.ts","sourceRoot":"","sources":["../../../src/web/hooks/useProjectDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iDAAiD,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,WAAW,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE/E,MAAM,WAAW,iCAAiC;IAChD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,UAAU,EAAE,iBAAiB,CAAC;IAC9B;;OAEG;IACH,mBAAmB,EAAE,0BAA0B,CAAC;IAChD;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,uBAAuB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvE;;;OAGG;IACH,0BAA0B,EAAE,CAC1B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACnC;;;OAGG;IACH,8BAA8B,EAAE,CAC9B,UAAU,EAAE,uBAAuB,EACnC,OAAO,CAAC,EAAE,iCAAiC,KACxC,IAAI,CAAC;IACV;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,yBAAyB,CAAC;IAC3C;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;AAED,eAAO,MAAM,wBAAwB,kDACyB,CAAC;AAE/D,wBAAgB,oBAAoB,IAAI,0BAA0B,CAQjE"}