@btst/stack 1.5.2 → 1.7.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 (241) hide show
  1. package/dist/api/index.cjs +7 -1
  2. package/dist/api/index.d.cts +2 -2
  3. package/dist/api/index.d.mts +2 -2
  4. package/dist/api/index.d.ts +2 -2
  5. package/dist/api/index.mjs +7 -1
  6. package/dist/client/index.d.cts +1 -1
  7. package/dist/client/index.d.mts +1 -1
  8. package/dist/client/index.d.ts +1 -1
  9. package/dist/index.d.cts +1 -1
  10. package/dist/index.d.mts +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.cjs +68 -0
  13. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.0/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.mjs +60 -0
  14. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.cjs +3937 -0
  15. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0/node_modules/@dnd-kit/core/dist/core.esm.mjs +3907 -0
  16. package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.cjs +30 -0
  17. package/dist/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.mjs +28 -0
  18. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.cjs +675 -0
  19. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.0_react@19.2.0__react@19.2.0__react@19.2.0/node_modules/@dnd-kit/sortable/dist/sortable.esm.mjs +661 -0
  20. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.cjs +358 -0
  21. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.0/node_modules/@dnd-kit/utilities/dist/utilities.esm.mjs +332 -0
  22. package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.cjs +211 -0
  23. package/dist/node_modules/.pnpm/@radix-ui_react-tabs@1.1.13_@types_react-dom@19.2.3_@types_react@19.2.6__@types_react@1_865f042350eb43f3338b0fffb33f6246/node_modules/@radix-ui/react-tabs/dist/index.mjs +188 -0
  24. package/dist/packages/better-stack/src/plugins/cms/api/plugin.cjs +3 -2
  25. package/dist/packages/better-stack/src/plugins/cms/api/plugin.mjs +3 -2
  26. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.cjs +15 -15
  27. package/dist/packages/better-stack/src/plugins/cms/client/components/forms/content-form.mjs +16 -16
  28. package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.cjs +588 -0
  29. package/dist/packages/better-stack/src/plugins/form-builder/api/plugin.mjs +586 -0
  30. package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.cjs +131 -0
  31. package/dist/packages/better-stack/src/plugins/form-builder/client/components/forms/form-renderer.mjs +129 -0
  32. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.cjs +32 -0
  33. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-builder-skeleton.mjs +30 -0
  34. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.cjs +21 -0
  35. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/form-list-skeleton.mjs +19 -0
  36. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.cjs +34 -0
  37. package/dist/packages/better-stack/src/plugins/form-builder/client/components/loading/submissions-skeleton.mjs +32 -0
  38. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.cjs +20 -0
  39. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/404-page.mjs +18 -0
  40. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.cjs +19 -0
  41. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.cjs +186 -0
  42. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.internal.mjs +184 -0
  43. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-builder-page.mjs +17 -0
  44. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.cjs +19 -0
  45. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.cjs +165 -0
  46. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.internal.mjs +163 -0
  47. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/form-list-page.mjs +17 -0
  48. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.cjs +19 -0
  49. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.cjs +177 -0
  50. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.internal.mjs +175 -0
  51. package/dist/packages/better-stack/src/plugins/form-builder/client/components/pages/submissions-page.mjs +17 -0
  52. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.cjs +17 -0
  53. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/default-error.mjs +15 -0
  54. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.cjs +16 -0
  55. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/empty-state.mjs +14 -0
  56. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.cjs +27 -0
  57. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/page-wrapper.mjs +25 -0
  58. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.cjs +39 -0
  59. package/dist/packages/better-stack/src/plugins/form-builder/client/components/shared/pagination.mjs +37 -0
  60. package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.cjs +551 -0
  61. package/dist/packages/better-stack/src/plugins/form-builder/client/hooks/form-builder-hooks.mjs +537 -0
  62. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.cjs +36 -0
  63. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-common.mjs +34 -0
  64. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.cjs +19 -0
  65. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-editor.mjs +17 -0
  66. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.cjs +21 -0
  67. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-list.mjs +19 -0
  68. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.cjs +19 -0
  69. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-submissions.mjs +17 -0
  70. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.cjs +14 -0
  71. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/form-builder-toasts.mjs +12 -0
  72. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.cjs +17 -0
  73. package/dist/packages/better-stack/src/plugins/form-builder/client/localization/index.mjs +15 -0
  74. package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.cjs +278 -0
  75. package/dist/packages/better-stack/src/plugins/form-builder/client/plugin.mjs +276 -0
  76. package/dist/packages/better-stack/src/plugins/form-builder/db.cjs +99 -0
  77. package/dist/packages/better-stack/src/plugins/form-builder/db.mjs +97 -0
  78. package/dist/packages/better-stack/src/plugins/form-builder/schemas.cjs +82 -0
  79. package/dist/packages/better-stack/src/plugins/form-builder/schemas.mjs +74 -0
  80. package/dist/packages/better-stack/src/plugins/form-builder/utils.cjs +37 -0
  81. package/dist/packages/better-stack/src/plugins/form-builder/utils.mjs +29 -0
  82. package/dist/packages/better-stack/src/plugins/open-api/api/generator.cjs +300 -0
  83. package/dist/packages/better-stack/src/plugins/open-api/api/generator.mjs +284 -0
  84. package/dist/packages/better-stack/src/plugins/open-api/api/plugin.cjs +115 -0
  85. package/dist/packages/better-stack/src/plugins/open-api/api/plugin.mjs +113 -0
  86. package/dist/packages/better-stack/src/plugins/open-api/db.cjs +7 -0
  87. package/dist/packages/better-stack/src/plugins/open-api/db.mjs +5 -0
  88. package/dist/packages/better-stack/src/plugins/open-api/logo.cjs +8 -0
  89. package/dist/packages/better-stack/src/plugins/open-api/logo.mjs +6 -0
  90. package/dist/packages/ui/src/components/auto-form/index.cjs +2 -12
  91. package/dist/packages/ui/src/components/auto-form/index.mjs +2 -9
  92. package/dist/packages/ui/src/components/auto-form/stepped-auto-form.cjs +377 -0
  93. package/dist/packages/ui/src/components/auto-form/stepped-auto-form.mjs +368 -0
  94. package/dist/packages/ui/src/components/auto-form/utils.cjs +1 -56
  95. package/dist/packages/ui/src/components/auto-form/utils.mjs +2 -56
  96. package/dist/packages/ui/src/components/form-builder/canvas.cjs +111 -0
  97. package/dist/packages/ui/src/components/form-builder/canvas.mjs +109 -0
  98. package/dist/packages/ui/src/components/form-builder/components/index.cjs +570 -0
  99. package/dist/packages/ui/src/components/form-builder/components/index.mjs +553 -0
  100. package/dist/packages/ui/src/components/form-builder/edit-field-dialog.cjs +131 -0
  101. package/dist/packages/ui/src/components/form-builder/edit-field-dialog.mjs +129 -0
  102. package/dist/packages/ui/src/components/form-builder/form-preview.cjs +73 -0
  103. package/dist/packages/ui/src/components/form-builder/form-preview.mjs +71 -0
  104. package/dist/packages/ui/src/components/form-builder/index.cjs +353 -0
  105. package/dist/packages/ui/src/components/form-builder/index.mjs +344 -0
  106. package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.cjs +263 -0
  107. package/dist/packages/ui/src/components/form-builder/nested-field-editor-dialog.mjs +261 -0
  108. package/dist/packages/ui/src/components/form-builder/palette.cjs +52 -0
  109. package/dist/packages/ui/src/components/form-builder/palette.mjs +49 -0
  110. package/dist/packages/ui/src/components/form-builder/schema-utils.cjs +120 -0
  111. package/dist/packages/ui/src/components/form-builder/schema-utils.mjs +114 -0
  112. package/dist/packages/ui/src/components/form-builder/sortable-field.cjs +151 -0
  113. package/dist/packages/ui/src/components/form-builder/sortable-field.mjs +148 -0
  114. package/dist/packages/ui/src/components/form-builder/step-tabs.cjs +180 -0
  115. package/dist/packages/ui/src/components/form-builder/step-tabs.mjs +178 -0
  116. package/dist/packages/ui/src/components/form-builder/types.cjs +7 -0
  117. package/dist/packages/ui/src/components/form-builder/types.mjs +5 -0
  118. package/dist/packages/ui/src/components/form-builder/validation-schemas.cjs +67 -0
  119. package/dist/packages/ui/src/components/form-builder/validation-schemas.mjs +56 -0
  120. package/dist/packages/ui/src/components/tabs.cjs +70 -0
  121. package/dist/packages/ui/src/components/tabs.mjs +65 -0
  122. package/dist/packages/ui/src/lib/schema-converter.cjs +130 -0
  123. package/dist/packages/ui/src/lib/schema-converter.mjs +124 -0
  124. package/dist/plugins/api/index.d.cts +2 -2
  125. package/dist/plugins/api/index.d.mts +2 -2
  126. package/dist/plugins/api/index.d.ts +2 -2
  127. package/dist/plugins/blog/api/index.d.cts +1 -1
  128. package/dist/plugins/blog/api/index.d.mts +1 -1
  129. package/dist/plugins/blog/api/index.d.ts +1 -1
  130. package/dist/plugins/blog/client/hooks/index.d.cts +2 -2
  131. package/dist/plugins/blog/client/hooks/index.d.mts +2 -2
  132. package/dist/plugins/blog/client/hooks/index.d.ts +2 -2
  133. package/dist/plugins/blog/client/index.d.cts +1 -1
  134. package/dist/plugins/blog/client/index.d.mts +1 -1
  135. package/dist/plugins/blog/client/index.d.ts +1 -1
  136. package/dist/plugins/blog/query-keys.d.cts +2 -2
  137. package/dist/plugins/blog/query-keys.d.mts +2 -2
  138. package/dist/plugins/blog/query-keys.d.ts +2 -2
  139. package/dist/plugins/client/index.d.cts +2 -2
  140. package/dist/plugins/client/index.d.mts +2 -2
  141. package/dist/plugins/client/index.d.ts +2 -2
  142. package/dist/plugins/cms/client/index.cjs +6 -0
  143. package/dist/plugins/cms/client/index.d.cts +6 -113
  144. package/dist/plugins/cms/client/index.d.mts +6 -113
  145. package/dist/plugins/cms/client/index.d.ts +6 -113
  146. package/dist/plugins/cms/client/index.mjs +1 -0
  147. package/dist/plugins/form-builder/api/index.cjs +7 -0
  148. package/dist/plugins/form-builder/api/index.d.cts +141 -0
  149. package/dist/plugins/form-builder/api/index.d.mts +141 -0
  150. package/dist/plugins/form-builder/api/index.d.ts +141 -0
  151. package/dist/plugins/form-builder/api/index.mjs +1 -0
  152. package/dist/plugins/form-builder/client/components/index.cjs +29 -0
  153. package/dist/plugins/form-builder/client/components/index.d.cts +93 -0
  154. package/dist/plugins/form-builder/client/components/index.d.mts +93 -0
  155. package/dist/plugins/form-builder/client/components/index.d.ts +93 -0
  156. package/dist/plugins/form-builder/client/components/index.mjs +18 -0
  157. package/dist/plugins/form-builder/client/hooks/index.cjs +19 -0
  158. package/dist/plugins/form-builder/client/hooks/index.d.cts +154 -0
  159. package/dist/plugins/form-builder/client/hooks/index.d.mts +154 -0
  160. package/dist/plugins/form-builder/client/hooks/index.d.ts +154 -0
  161. package/dist/plugins/form-builder/client/hooks/index.mjs +1 -0
  162. package/dist/plugins/form-builder/client/index.cjs +13 -0
  163. package/dist/plugins/form-builder/client/index.d.cts +381 -0
  164. package/dist/plugins/form-builder/client/index.d.mts +381 -0
  165. package/dist/plugins/form-builder/client/index.d.ts +381 -0
  166. package/dist/plugins/form-builder/client/index.mjs +2 -0
  167. package/dist/plugins/form-builder/client.css +3 -0
  168. package/dist/plugins/form-builder/query-keys.cjs +143 -0
  169. package/dist/plugins/form-builder/query-keys.d.cts +74 -0
  170. package/dist/plugins/form-builder/query-keys.d.mts +74 -0
  171. package/dist/plugins/form-builder/query-keys.d.ts +74 -0
  172. package/dist/plugins/form-builder/query-keys.mjs +141 -0
  173. package/dist/plugins/form-builder/style.css +19 -0
  174. package/dist/plugins/open-api/api/index.cjs +9 -0
  175. package/dist/plugins/open-api/api/index.d.cts +95 -0
  176. package/dist/plugins/open-api/api/index.d.mts +95 -0
  177. package/dist/plugins/open-api/api/index.d.ts +95 -0
  178. package/dist/plugins/open-api/api/index.mjs +2 -0
  179. package/dist/shared/stack.AX5nZ6A3.d.cts +86 -0
  180. package/dist/shared/stack.AX5nZ6A3.d.mts +86 -0
  181. package/dist/shared/stack.AX5nZ6A3.d.ts +86 -0
  182. package/dist/shared/stack.BIh2AXaW.d.cts +123 -0
  183. package/dist/shared/stack.BIh2AXaW.d.mts +123 -0
  184. package/dist/shared/stack.BIh2AXaW.d.ts +123 -0
  185. package/dist/shared/{stack.ByOugz9d.d.cts → stack.CSce37mX.d.cts} +15 -2
  186. package/dist/shared/{stack.ByOugz9d.d.mts → stack.CSce37mX.d.mts} +15 -2
  187. package/dist/shared/{stack.ByOugz9d.d.ts → stack.CSce37mX.d.ts} +15 -2
  188. package/dist/shared/stack.DzH_wcvr.d.cts +195 -0
  189. package/dist/shared/stack.DzH_wcvr.d.mts +195 -0
  190. package/dist/shared/stack.DzH_wcvr.d.ts +195 -0
  191. package/package.json +67 -1
  192. package/src/api/index.ts +14 -2
  193. package/src/plugins/cms/api/plugin.ts +9 -4
  194. package/src/plugins/cms/client/components/forms/content-form.tsx +23 -25
  195. package/src/plugins/cms/client/index.ts +11 -0
  196. package/src/plugins/form-builder/api/index.ts +1 -0
  197. package/src/plugins/form-builder/api/plugin.ts +776 -0
  198. package/src/plugins/form-builder/client/components/forms/form-renderer.tsx +253 -0
  199. package/src/plugins/form-builder/client/components/index.tsx +24 -0
  200. package/src/plugins/form-builder/client/components/loading/form-builder-skeleton.tsx +42 -0
  201. package/src/plugins/form-builder/client/components/loading/form-list-skeleton.tsx +25 -0
  202. package/src/plugins/form-builder/client/components/loading/index.tsx +3 -0
  203. package/src/plugins/form-builder/client/components/loading/submissions-skeleton.tsx +40 -0
  204. package/src/plugins/form-builder/client/components/pages/404-page.tsx +28 -0
  205. package/src/plugins/form-builder/client/components/pages/form-builder-page.internal.tsx +253 -0
  206. package/src/plugins/form-builder/client/components/pages/form-builder-page.tsx +26 -0
  207. package/src/plugins/form-builder/client/components/pages/form-list-page.internal.tsx +231 -0
  208. package/src/plugins/form-builder/client/components/pages/form-list-page.tsx +22 -0
  209. package/src/plugins/form-builder/client/components/pages/submissions-page.internal.tsx +268 -0
  210. package/src/plugins/form-builder/client/components/pages/submissions-page.tsx +26 -0
  211. package/src/plugins/form-builder/client/components/shared/default-error.tsx +30 -0
  212. package/src/plugins/form-builder/client/components/shared/empty-state.tsx +26 -0
  213. package/src/plugins/form-builder/client/components/shared/page-wrapper.tsx +32 -0
  214. package/src/plugins/form-builder/client/components/shared/pagination.tsx +52 -0
  215. package/src/plugins/form-builder/client/hooks/form-builder-hooks.tsx +799 -0
  216. package/src/plugins/form-builder/client/hooks/index.tsx +1 -0
  217. package/src/plugins/form-builder/client/index.ts +22 -0
  218. package/src/plugins/form-builder/client/localization/form-builder-common.ts +36 -0
  219. package/src/plugins/form-builder/client/localization/form-builder-editor.ts +18 -0
  220. package/src/plugins/form-builder/client/localization/form-builder-list.ts +17 -0
  221. package/src/plugins/form-builder/client/localization/form-builder-submissions.ts +17 -0
  222. package/src/plugins/form-builder/client/localization/form-builder-toasts.ts +10 -0
  223. package/src/plugins/form-builder/client/localization/index.ts +15 -0
  224. package/src/plugins/form-builder/client/overrides.ts +146 -0
  225. package/src/plugins/form-builder/client/plugin.tsx +488 -0
  226. package/src/plugins/form-builder/client.css +3 -0
  227. package/src/plugins/form-builder/db.ts +99 -0
  228. package/src/plugins/form-builder/query-keys.ts +198 -0
  229. package/src/plugins/form-builder/schemas.ts +122 -0
  230. package/src/plugins/form-builder/style.css +19 -0
  231. package/src/plugins/form-builder/types.ts +317 -0
  232. package/src/plugins/form-builder/utils.ts +63 -0
  233. package/src/plugins/open-api/api/generator.ts +433 -0
  234. package/src/plugins/open-api/api/index.ts +8 -0
  235. package/src/plugins/open-api/api/plugin.ts +243 -0
  236. package/src/plugins/open-api/db.ts +7 -0
  237. package/src/plugins/open-api/logo.ts +7 -0
  238. package/src/types.ts +15 -1
  239. package/dist/shared/{stack.DLhzx1-D.d.mts → stack.CcI4sYJP.d.cts} +1 -1
  240. package/dist/shared/{stack.DLhzx1-D.d.ts → stack.CcI4sYJP.d.mts} +1 -1
  241. package/dist/shared/{stack.DLhzx1-D.d.cts → stack.CcI4sYJP.d.ts} +1 -1
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const FORM_BUILDER_SUBMISSIONS = {
4
+ FORM_BUILDER_SUBMISSIONS_TITLE: "Submissions",
5
+ FORM_BUILDER_SUBMISSIONS_SUBTITLE: "View form submissions",
6
+ FORM_BUILDER_SUBMISSIONS_EMPTY: "No submissions yet",
7
+ FORM_BUILDER_SUBMISSIONS_EMPTY_DESCRIPTION: "Submissions will appear here when users submit this form.",
8
+ FORM_BUILDER_SUBMISSIONS_COLUMN_ID: "ID",
9
+ FORM_BUILDER_SUBMISSIONS_COLUMN_DATA: "Data",
10
+ FORM_BUILDER_SUBMISSIONS_COLUMN_SUBMITTED_AT: "Submitted",
11
+ FORM_BUILDER_SUBMISSIONS_COLUMN_IP_ADDRESS: "IP Address",
12
+ FORM_BUILDER_SUBMISSIONS_COLUMN_ACTIONS: "Actions",
13
+ FORM_BUILDER_SUBMISSIONS_ACTION_VIEW: "View",
14
+ FORM_BUILDER_SUBMISSIONS_ACTION_DELETE: "Delete",
15
+ FORM_BUILDER_SUBMISSIONS_DELETE_CONFIRM: "Are you sure you want to delete this submission?",
16
+ FORM_BUILDER_SUBMISSIONS_BACK_TO_FORM: "Back to Form"
17
+ };
18
+
19
+ exports.FORM_BUILDER_SUBMISSIONS = FORM_BUILDER_SUBMISSIONS;
@@ -0,0 +1,17 @@
1
+ const FORM_BUILDER_SUBMISSIONS = {
2
+ FORM_BUILDER_SUBMISSIONS_TITLE: "Submissions",
3
+ FORM_BUILDER_SUBMISSIONS_SUBTITLE: "View form submissions",
4
+ FORM_BUILDER_SUBMISSIONS_EMPTY: "No submissions yet",
5
+ FORM_BUILDER_SUBMISSIONS_EMPTY_DESCRIPTION: "Submissions will appear here when users submit this form.",
6
+ FORM_BUILDER_SUBMISSIONS_COLUMN_ID: "ID",
7
+ FORM_BUILDER_SUBMISSIONS_COLUMN_DATA: "Data",
8
+ FORM_BUILDER_SUBMISSIONS_COLUMN_SUBMITTED_AT: "Submitted",
9
+ FORM_BUILDER_SUBMISSIONS_COLUMN_IP_ADDRESS: "IP Address",
10
+ FORM_BUILDER_SUBMISSIONS_COLUMN_ACTIONS: "Actions",
11
+ FORM_BUILDER_SUBMISSIONS_ACTION_VIEW: "View",
12
+ FORM_BUILDER_SUBMISSIONS_ACTION_DELETE: "Delete",
13
+ FORM_BUILDER_SUBMISSIONS_DELETE_CONFIRM: "Are you sure you want to delete this submission?",
14
+ FORM_BUILDER_SUBMISSIONS_BACK_TO_FORM: "Back to Form"
15
+ };
16
+
17
+ export { FORM_BUILDER_SUBMISSIONS };
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ const FORM_BUILDER_TOASTS = {
4
+ FORM_BUILDER_TOAST_CREATE_SUCCESS: "Form created successfully",
5
+ FORM_BUILDER_TOAST_UPDATE_SUCCESS: "Form updated successfully",
6
+ FORM_BUILDER_TOAST_DELETE_SUCCESS: "Form deleted successfully",
7
+ FORM_BUILDER_TOAST_SUBMIT_SUCCESS: "Form submitted successfully",
8
+ FORM_BUILDER_TOAST_ERROR: "An error occurred. Please try again.",
9
+ FORM_BUILDER_TOAST_VALIDATION_ERROR: "Please fix the validation errors",
10
+ FORM_BUILDER_TOAST_DUPLICATE_SLUG: "A form with this slug already exists",
11
+ FORM_BUILDER_TOAST_SUBMISSION_DELETED: "Submission deleted successfully"
12
+ };
13
+
14
+ exports.FORM_BUILDER_TOASTS = FORM_BUILDER_TOASTS;
@@ -0,0 +1,12 @@
1
+ const FORM_BUILDER_TOASTS = {
2
+ FORM_BUILDER_TOAST_CREATE_SUCCESS: "Form created successfully",
3
+ FORM_BUILDER_TOAST_UPDATE_SUCCESS: "Form updated successfully",
4
+ FORM_BUILDER_TOAST_DELETE_SUCCESS: "Form deleted successfully",
5
+ FORM_BUILDER_TOAST_SUBMIT_SUCCESS: "Form submitted successfully",
6
+ FORM_BUILDER_TOAST_ERROR: "An error occurred. Please try again.",
7
+ FORM_BUILDER_TOAST_VALIDATION_ERROR: "Please fix the validation errors",
8
+ FORM_BUILDER_TOAST_DUPLICATE_SLUG: "A form with this slug already exists",
9
+ FORM_BUILDER_TOAST_SUBMISSION_DELETED: "Submission deleted successfully"
10
+ };
11
+
12
+ export { FORM_BUILDER_TOASTS };
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+
3
+ const formBuilderCommon = require('./form-builder-common.cjs');
4
+ const formBuilderToasts = require('./form-builder-toasts.cjs');
5
+ const formBuilderList = require('./form-builder-list.cjs');
6
+ const formBuilderEditor = require('./form-builder-editor.cjs');
7
+ const formBuilderSubmissions = require('./form-builder-submissions.cjs');
8
+
9
+ const FORM_BUILDER_LOCALIZATION = {
10
+ ...formBuilderCommon.FORM_BUILDER_COMMON,
11
+ ...formBuilderToasts.FORM_BUILDER_TOASTS,
12
+ ...formBuilderList.FORM_BUILDER_LIST,
13
+ ...formBuilderEditor.FORM_BUILDER_EDITOR,
14
+ ...formBuilderSubmissions.FORM_BUILDER_SUBMISSIONS
15
+ };
16
+
17
+ exports.FORM_BUILDER_LOCALIZATION = FORM_BUILDER_LOCALIZATION;
@@ -0,0 +1,15 @@
1
+ import { FORM_BUILDER_COMMON } from './form-builder-common.mjs';
2
+ import { FORM_BUILDER_TOASTS } from './form-builder-toasts.mjs';
3
+ import { FORM_BUILDER_LIST } from './form-builder-list.mjs';
4
+ import { FORM_BUILDER_EDITOR } from './form-builder-editor.mjs';
5
+ import { FORM_BUILDER_SUBMISSIONS } from './form-builder-submissions.mjs';
6
+
7
+ const FORM_BUILDER_LOCALIZATION = {
8
+ ...FORM_BUILDER_COMMON,
9
+ ...FORM_BUILDER_TOASTS,
10
+ ...FORM_BUILDER_LIST,
11
+ ...FORM_BUILDER_EDITOR,
12
+ ...FORM_BUILDER_SUBMISSIONS
13
+ };
14
+
15
+ export { FORM_BUILDER_LOCALIZATION };
@@ -0,0 +1,278 @@
1
+ 'use strict';
2
+
3
+ const jsxRuntime = require('react/jsx-runtime');
4
+ const React = require('react');
5
+ const client = require('@btst/stack/plugins/client');
6
+ const yar = require('@btst/yar');
7
+ const plugins_formBuilder_queryKeys = require('../../../../../../plugins/form-builder/query-keys.cjs');
8
+
9
+ const FormListPageComponent = React.lazy(
10
+ () => import('./components/pages/form-list-page.cjs').then((m) => ({
11
+ default: m.FormListPageComponent
12
+ }))
13
+ );
14
+ const FormBuilderPageComponent = React.lazy(
15
+ () => import('./components/pages/form-builder-page.cjs').then((m) => ({
16
+ default: m.FormBuilderPageComponent
17
+ }))
18
+ );
19
+ const SubmissionsPageComponent = React.lazy(
20
+ () => import('./components/pages/submissions-page.cjs').then((m) => ({
21
+ default: m.SubmissionsPageComponent
22
+ }))
23
+ );
24
+ function createFormListLoader(config) {
25
+ return async () => {
26
+ if (typeof window === "undefined") {
27
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
28
+ const context = {
29
+ path: "/forms",
30
+ isSSR: true,
31
+ apiBaseURL,
32
+ apiBasePath,
33
+ headers
34
+ };
35
+ try {
36
+ if (hooks?.beforeLoadFormList) {
37
+ const canLoad = await hooks.beforeLoadFormList(context);
38
+ if (!canLoad) {
39
+ throw new Error("Load prevented by beforeLoadFormList hook");
40
+ }
41
+ }
42
+ const client$1 = client.createApiClient({
43
+ baseURL: apiBaseURL,
44
+ basePath: apiBasePath
45
+ });
46
+ const queries = plugins_formBuilder_queryKeys.createFormBuilderQueryKeys(client$1, headers);
47
+ const limit = 20;
48
+ const listQuery = queries.forms.list({ limit, offset: 0 });
49
+ await queryClient.prefetchInfiniteQuery({
50
+ queryKey: listQuery.queryKey,
51
+ queryFn: async ({ pageParam = 0 }) => {
52
+ const response = await client$1("/forms", {
53
+ method: "GET",
54
+ query: { limit, offset: pageParam },
55
+ headers
56
+ });
57
+ if (typeof response === "object" && response !== null && "error" in response && response.error) {
58
+ throw new Error(String(response.error));
59
+ }
60
+ return response.data;
61
+ },
62
+ initialPageParam: 0
63
+ });
64
+ if (hooks?.afterLoadFormList) {
65
+ await hooks.afterLoadFormList(context);
66
+ }
67
+ const queryState = queryClient.getQueryState(listQuery.queryKey);
68
+ if (queryState?.error && hooks?.onLoadError) {
69
+ const error = queryState.error instanceof Error ? queryState.error : new Error(String(queryState.error));
70
+ await hooks.onLoadError(error, context);
71
+ }
72
+ } catch (error) {
73
+ if (hooks?.onLoadError) {
74
+ await hooks.onLoadError(error, context);
75
+ }
76
+ }
77
+ }
78
+ };
79
+ }
80
+ function createFormBuilderLoader(id, config) {
81
+ return async () => {
82
+ if (typeof window === "undefined") {
83
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
84
+ const context = {
85
+ path: id ? `/forms/${id}/edit` : "/forms/new",
86
+ params: id ? { id } : {},
87
+ isSSR: true,
88
+ apiBaseURL,
89
+ apiBasePath,
90
+ headers
91
+ };
92
+ try {
93
+ if (hooks?.beforeLoadFormBuilder) {
94
+ const canLoad = await hooks.beforeLoadFormBuilder(id, context);
95
+ if (!canLoad) {
96
+ throw new Error("Load prevented by beforeLoadFormBuilder hook");
97
+ }
98
+ }
99
+ const client$1 = client.createApiClient({
100
+ baseURL: apiBaseURL,
101
+ basePath: apiBasePath
102
+ });
103
+ const queries = plugins_formBuilder_queryKeys.createFormBuilderQueryKeys(client$1, headers);
104
+ if (id) {
105
+ await queryClient.prefetchQuery(queries.forms.byId(id));
106
+ }
107
+ if (hooks?.afterLoadFormBuilder) {
108
+ await hooks.afterLoadFormBuilder(id, context);
109
+ }
110
+ if (id) {
111
+ const queryState = queryClient.getQueryState(
112
+ queries.forms.byId(id).queryKey
113
+ );
114
+ if (queryState?.error && hooks?.onLoadError) {
115
+ const error = queryState.error instanceof Error ? queryState.error : new Error(String(queryState.error));
116
+ await hooks.onLoadError(error, context);
117
+ }
118
+ }
119
+ } catch (error) {
120
+ if (hooks?.onLoadError) {
121
+ await hooks.onLoadError(error, context);
122
+ }
123
+ }
124
+ }
125
+ };
126
+ }
127
+ function createSubmissionsLoader(formId, config) {
128
+ return async () => {
129
+ if (typeof window === "undefined") {
130
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
131
+ const context = {
132
+ path: `/forms/${formId}/submissions`,
133
+ params: { formId },
134
+ isSSR: true,
135
+ apiBaseURL,
136
+ apiBasePath,
137
+ headers
138
+ };
139
+ try {
140
+ if (hooks?.beforeLoadSubmissions) {
141
+ const canLoad = await hooks.beforeLoadSubmissions(formId, context);
142
+ if (!canLoad) {
143
+ throw new Error("Load prevented by beforeLoadSubmissions hook");
144
+ }
145
+ }
146
+ const client$1 = client.createApiClient({
147
+ baseURL: apiBaseURL,
148
+ basePath: apiBasePath
149
+ });
150
+ const queries = plugins_formBuilder_queryKeys.createFormBuilderQueryKeys(client$1, headers);
151
+ const limit = 20;
152
+ await queryClient.prefetchQuery(queries.forms.byId(formId));
153
+ const submissionsQuery = queries.formSubmissions.list({
154
+ formId,
155
+ limit,
156
+ offset: 0
157
+ });
158
+ await queryClient.prefetchInfiniteQuery({
159
+ queryKey: submissionsQuery.queryKey,
160
+ queryFn: async ({ pageParam = 0 }) => {
161
+ const response = await client$1(
162
+ "/forms/:formId/submissions",
163
+ {
164
+ method: "GET",
165
+ params: { formId },
166
+ query: { limit, offset: pageParam },
167
+ headers
168
+ }
169
+ );
170
+ if (typeof response === "object" && response !== null && "error" in response && response.error) {
171
+ throw new Error(String(response.error));
172
+ }
173
+ return response.data;
174
+ },
175
+ initialPageParam: 0
176
+ });
177
+ if (hooks?.afterLoadSubmissions) {
178
+ await hooks.afterLoadSubmissions(formId, context);
179
+ }
180
+ const formState = queryClient.getQueryState(
181
+ queries.forms.byId(formId).queryKey
182
+ );
183
+ const submissionsState = queryClient.getQueryState(
184
+ submissionsQuery.queryKey
185
+ );
186
+ const queryError = formState?.error || submissionsState?.error;
187
+ if (queryError && hooks?.onLoadError) {
188
+ const error = queryError instanceof Error ? queryError : new Error(String(queryError));
189
+ await hooks.onLoadError(error, context);
190
+ }
191
+ } catch (error) {
192
+ if (hooks?.onLoadError) {
193
+ await hooks.onLoadError(error, context);
194
+ }
195
+ }
196
+ }
197
+ };
198
+ }
199
+ function createFormListMeta() {
200
+ return () => {
201
+ const title = "Forms";
202
+ return [
203
+ { title },
204
+ { name: "title", content: title },
205
+ { name: "robots", content: "noindex" }
206
+ ];
207
+ };
208
+ }
209
+ function createFormBuilderMeta(id, config) {
210
+ return () => {
211
+ const { queryClient, apiBasePath, apiBaseURL } = config;
212
+ let formName = "";
213
+ if (id) {
214
+ const client$1 = client.createApiClient({
215
+ baseURL: apiBaseURL,
216
+ basePath: apiBasePath
217
+ });
218
+ const queries = plugins_formBuilder_queryKeys.createFormBuilderQueryKeys(client$1);
219
+ const form = queryClient.getQueryData(queries.forms.byId(id).queryKey);
220
+ formName = form?.name || "";
221
+ }
222
+ const title = id ? `Edit ${formName || "Form"}` : "New Form";
223
+ return [
224
+ { title },
225
+ { name: "title", content: title },
226
+ { name: "robots", content: "noindex" }
227
+ ];
228
+ };
229
+ }
230
+ function createSubmissionsMeta(formId, config) {
231
+ return () => {
232
+ const { queryClient, apiBasePath, apiBaseURL } = config;
233
+ const client$1 = client.createApiClient({
234
+ baseURL: apiBaseURL,
235
+ basePath: apiBasePath
236
+ });
237
+ const queries = plugins_formBuilder_queryKeys.createFormBuilderQueryKeys(client$1);
238
+ const form = queryClient.getQueryData(
239
+ queries.forms.byId(formId).queryKey
240
+ );
241
+ const title = form?.name ? `${form.name} Submissions` : "Submissions";
242
+ return [
243
+ { title },
244
+ { name: "title", content: title },
245
+ { name: "robots", content: "noindex" }
246
+ ];
247
+ };
248
+ }
249
+ const formBuilderClientPlugin = (config) => client.defineClientPlugin({
250
+ name: "form-builder",
251
+ routes: () => ({
252
+ formList: yar.createRoute("/forms", () => ({
253
+ PageComponent: () => /* @__PURE__ */ jsxRuntime.jsx(FormListPageComponent, {}),
254
+ loader: createFormListLoader(config),
255
+ meta: createFormListMeta()
256
+ })),
257
+ newForm: yar.createRoute("/forms/new", () => ({
258
+ PageComponent: () => /* @__PURE__ */ jsxRuntime.jsx(FormBuilderPageComponent, {}),
259
+ loader: createFormBuilderLoader(void 0, config),
260
+ meta: createFormBuilderMeta(void 0, config)
261
+ })),
262
+ editForm: yar.createRoute("/forms/:id/edit", ({ params }) => ({
263
+ PageComponent: () => /* @__PURE__ */ jsxRuntime.jsx(FormBuilderPageComponent, { id: params.id }),
264
+ loader: createFormBuilderLoader(params.id, config),
265
+ meta: createFormBuilderMeta(params.id, config)
266
+ })),
267
+ submissions: yar.createRoute("/forms/:id/submissions", ({ params }) => ({
268
+ PageComponent: () => /* @__PURE__ */ jsxRuntime.jsx(SubmissionsPageComponent, { formId: params.id }),
269
+ loader: createSubmissionsLoader(params.id, config),
270
+ meta: createSubmissionsMeta(params.id, config)
271
+ }))
272
+ }),
273
+ sitemap: async () => {
274
+ return [];
275
+ }
276
+ });
277
+
278
+ exports.formBuilderClientPlugin = formBuilderClientPlugin;
@@ -0,0 +1,276 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { lazy } from 'react';
3
+ import { defineClientPlugin, createApiClient } from '@btst/stack/plugins/client';
4
+ import { createRoute } from '@btst/yar';
5
+ import { createFormBuilderQueryKeys } from '../../../../../../plugins/form-builder/query-keys.mjs';
6
+
7
+ const FormListPageComponent = lazy(
8
+ () => import('./components/pages/form-list-page.mjs').then((m) => ({
9
+ default: m.FormListPageComponent
10
+ }))
11
+ );
12
+ const FormBuilderPageComponent = lazy(
13
+ () => import('./components/pages/form-builder-page.mjs').then((m) => ({
14
+ default: m.FormBuilderPageComponent
15
+ }))
16
+ );
17
+ const SubmissionsPageComponent = lazy(
18
+ () => import('./components/pages/submissions-page.mjs').then((m) => ({
19
+ default: m.SubmissionsPageComponent
20
+ }))
21
+ );
22
+ function createFormListLoader(config) {
23
+ return async () => {
24
+ if (typeof window === "undefined") {
25
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
26
+ const context = {
27
+ path: "/forms",
28
+ isSSR: true,
29
+ apiBaseURL,
30
+ apiBasePath,
31
+ headers
32
+ };
33
+ try {
34
+ if (hooks?.beforeLoadFormList) {
35
+ const canLoad = await hooks.beforeLoadFormList(context);
36
+ if (!canLoad) {
37
+ throw new Error("Load prevented by beforeLoadFormList hook");
38
+ }
39
+ }
40
+ const client = createApiClient({
41
+ baseURL: apiBaseURL,
42
+ basePath: apiBasePath
43
+ });
44
+ const queries = createFormBuilderQueryKeys(client, headers);
45
+ const limit = 20;
46
+ const listQuery = queries.forms.list({ limit, offset: 0 });
47
+ await queryClient.prefetchInfiniteQuery({
48
+ queryKey: listQuery.queryKey,
49
+ queryFn: async ({ pageParam = 0 }) => {
50
+ const response = await client("/forms", {
51
+ method: "GET",
52
+ query: { limit, offset: pageParam },
53
+ headers
54
+ });
55
+ if (typeof response === "object" && response !== null && "error" in response && response.error) {
56
+ throw new Error(String(response.error));
57
+ }
58
+ return response.data;
59
+ },
60
+ initialPageParam: 0
61
+ });
62
+ if (hooks?.afterLoadFormList) {
63
+ await hooks.afterLoadFormList(context);
64
+ }
65
+ const queryState = queryClient.getQueryState(listQuery.queryKey);
66
+ if (queryState?.error && hooks?.onLoadError) {
67
+ const error = queryState.error instanceof Error ? queryState.error : new Error(String(queryState.error));
68
+ await hooks.onLoadError(error, context);
69
+ }
70
+ } catch (error) {
71
+ if (hooks?.onLoadError) {
72
+ await hooks.onLoadError(error, context);
73
+ }
74
+ }
75
+ }
76
+ };
77
+ }
78
+ function createFormBuilderLoader(id, config) {
79
+ return async () => {
80
+ if (typeof window === "undefined") {
81
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
82
+ const context = {
83
+ path: id ? `/forms/${id}/edit` : "/forms/new",
84
+ params: id ? { id } : {},
85
+ isSSR: true,
86
+ apiBaseURL,
87
+ apiBasePath,
88
+ headers
89
+ };
90
+ try {
91
+ if (hooks?.beforeLoadFormBuilder) {
92
+ const canLoad = await hooks.beforeLoadFormBuilder(id, context);
93
+ if (!canLoad) {
94
+ throw new Error("Load prevented by beforeLoadFormBuilder hook");
95
+ }
96
+ }
97
+ const client = createApiClient({
98
+ baseURL: apiBaseURL,
99
+ basePath: apiBasePath
100
+ });
101
+ const queries = createFormBuilderQueryKeys(client, headers);
102
+ if (id) {
103
+ await queryClient.prefetchQuery(queries.forms.byId(id));
104
+ }
105
+ if (hooks?.afterLoadFormBuilder) {
106
+ await hooks.afterLoadFormBuilder(id, context);
107
+ }
108
+ if (id) {
109
+ const queryState = queryClient.getQueryState(
110
+ queries.forms.byId(id).queryKey
111
+ );
112
+ if (queryState?.error && hooks?.onLoadError) {
113
+ const error = queryState.error instanceof Error ? queryState.error : new Error(String(queryState.error));
114
+ await hooks.onLoadError(error, context);
115
+ }
116
+ }
117
+ } catch (error) {
118
+ if (hooks?.onLoadError) {
119
+ await hooks.onLoadError(error, context);
120
+ }
121
+ }
122
+ }
123
+ };
124
+ }
125
+ function createSubmissionsLoader(formId, config) {
126
+ return async () => {
127
+ if (typeof window === "undefined") {
128
+ const { queryClient, apiBasePath, apiBaseURL, headers, hooks } = config;
129
+ const context = {
130
+ path: `/forms/${formId}/submissions`,
131
+ params: { formId },
132
+ isSSR: true,
133
+ apiBaseURL,
134
+ apiBasePath,
135
+ headers
136
+ };
137
+ try {
138
+ if (hooks?.beforeLoadSubmissions) {
139
+ const canLoad = await hooks.beforeLoadSubmissions(formId, context);
140
+ if (!canLoad) {
141
+ throw new Error("Load prevented by beforeLoadSubmissions hook");
142
+ }
143
+ }
144
+ const client = createApiClient({
145
+ baseURL: apiBaseURL,
146
+ basePath: apiBasePath
147
+ });
148
+ const queries = createFormBuilderQueryKeys(client, headers);
149
+ const limit = 20;
150
+ await queryClient.prefetchQuery(queries.forms.byId(formId));
151
+ const submissionsQuery = queries.formSubmissions.list({
152
+ formId,
153
+ limit,
154
+ offset: 0
155
+ });
156
+ await queryClient.prefetchInfiniteQuery({
157
+ queryKey: submissionsQuery.queryKey,
158
+ queryFn: async ({ pageParam = 0 }) => {
159
+ const response = await client(
160
+ "/forms/:formId/submissions",
161
+ {
162
+ method: "GET",
163
+ params: { formId },
164
+ query: { limit, offset: pageParam },
165
+ headers
166
+ }
167
+ );
168
+ if (typeof response === "object" && response !== null && "error" in response && response.error) {
169
+ throw new Error(String(response.error));
170
+ }
171
+ return response.data;
172
+ },
173
+ initialPageParam: 0
174
+ });
175
+ if (hooks?.afterLoadSubmissions) {
176
+ await hooks.afterLoadSubmissions(formId, context);
177
+ }
178
+ const formState = queryClient.getQueryState(
179
+ queries.forms.byId(formId).queryKey
180
+ );
181
+ const submissionsState = queryClient.getQueryState(
182
+ submissionsQuery.queryKey
183
+ );
184
+ const queryError = formState?.error || submissionsState?.error;
185
+ if (queryError && hooks?.onLoadError) {
186
+ const error = queryError instanceof Error ? queryError : new Error(String(queryError));
187
+ await hooks.onLoadError(error, context);
188
+ }
189
+ } catch (error) {
190
+ if (hooks?.onLoadError) {
191
+ await hooks.onLoadError(error, context);
192
+ }
193
+ }
194
+ }
195
+ };
196
+ }
197
+ function createFormListMeta() {
198
+ return () => {
199
+ const title = "Forms";
200
+ return [
201
+ { title },
202
+ { name: "title", content: title },
203
+ { name: "robots", content: "noindex" }
204
+ ];
205
+ };
206
+ }
207
+ function createFormBuilderMeta(id, config) {
208
+ return () => {
209
+ const { queryClient, apiBasePath, apiBaseURL } = config;
210
+ let formName = "";
211
+ if (id) {
212
+ const client = createApiClient({
213
+ baseURL: apiBaseURL,
214
+ basePath: apiBasePath
215
+ });
216
+ const queries = createFormBuilderQueryKeys(client);
217
+ const form = queryClient.getQueryData(queries.forms.byId(id).queryKey);
218
+ formName = form?.name || "";
219
+ }
220
+ const title = id ? `Edit ${formName || "Form"}` : "New Form";
221
+ return [
222
+ { title },
223
+ { name: "title", content: title },
224
+ { name: "robots", content: "noindex" }
225
+ ];
226
+ };
227
+ }
228
+ function createSubmissionsMeta(formId, config) {
229
+ return () => {
230
+ const { queryClient, apiBasePath, apiBaseURL } = config;
231
+ const client = createApiClient({
232
+ baseURL: apiBaseURL,
233
+ basePath: apiBasePath
234
+ });
235
+ const queries = createFormBuilderQueryKeys(client);
236
+ const form = queryClient.getQueryData(
237
+ queries.forms.byId(formId).queryKey
238
+ );
239
+ const title = form?.name ? `${form.name} Submissions` : "Submissions";
240
+ return [
241
+ { title },
242
+ { name: "title", content: title },
243
+ { name: "robots", content: "noindex" }
244
+ ];
245
+ };
246
+ }
247
+ const formBuilderClientPlugin = (config) => defineClientPlugin({
248
+ name: "form-builder",
249
+ routes: () => ({
250
+ formList: createRoute("/forms", () => ({
251
+ PageComponent: () => /* @__PURE__ */ jsx(FormListPageComponent, {}),
252
+ loader: createFormListLoader(config),
253
+ meta: createFormListMeta()
254
+ })),
255
+ newForm: createRoute("/forms/new", () => ({
256
+ PageComponent: () => /* @__PURE__ */ jsx(FormBuilderPageComponent, {}),
257
+ loader: createFormBuilderLoader(void 0, config),
258
+ meta: createFormBuilderMeta(void 0, config)
259
+ })),
260
+ editForm: createRoute("/forms/:id/edit", ({ params }) => ({
261
+ PageComponent: () => /* @__PURE__ */ jsx(FormBuilderPageComponent, { id: params.id }),
262
+ loader: createFormBuilderLoader(params.id, config),
263
+ meta: createFormBuilderMeta(params.id, config)
264
+ })),
265
+ submissions: createRoute("/forms/:id/submissions", ({ params }) => ({
266
+ PageComponent: () => /* @__PURE__ */ jsx(SubmissionsPageComponent, { formId: params.id }),
267
+ loader: createSubmissionsLoader(params.id, config),
268
+ meta: createSubmissionsMeta(params.id, config)
269
+ }))
270
+ }),
271
+ sitemap: async () => {
272
+ return [];
273
+ }
274
+ });
275
+
276
+ export { formBuilderClientPlugin };