@next-vibe/checker 1.0.52 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/LICENSE +669 -5
  2. package/README.md +179 -200
  3. package/check.config.ts +85 -16
  4. package/generated/alias-map.ts +30 -0
  5. package/generated/endpoint.ts +75 -0
  6. package/{src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts → oxlint-plugins/i18n.ts} +45 -9
  7. package/{src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts → oxlint-plugins/jsx-capitalization.ts} +84 -17
  8. package/{src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts → oxlint-plugins/restricted-syntax.ts} +40 -14
  9. package/package.json +28 -132
  10. package/.dist/LICENSE +0 -674
  11. package/.dist/README.md +0 -257
  12. package/.dist/bin/vibe-runtime.js +0 -58166
  13. package/.dist/bin/vibe-runtime.js.map +0 -451
  14. package/.dist/oxlint-plugins/i18n.js +0 -381
  15. package/.dist/oxlint-plugins/jsx-capitalization.js +0 -436
  16. package/.dist/oxlint-plugins/restricted-syntax.js +0 -409
  17. package/src/app/api/[locale]/LICENSE +0 -674
  18. package/src/app/api/[locale]/i18n/de/index.ts +0 -15
  19. package/src/app/api/[locale]/i18n/en/index.ts +0 -14
  20. package/src/app/api/[locale]/i18n/pl/index.ts +0 -13
  21. package/src/app/api/[locale]/shared/i18n/de/index.ts +0 -85
  22. package/src/app/api/[locale]/shared/i18n/en/index.ts +0 -83
  23. package/src/app/api/[locale]/shared/i18n/pl/index.ts +0 -85
  24. package/src/app/api/[locale]/shared/stats-filtering.ts +0 -174
  25. package/src/app/api/[locale]/shared/types/common.schema.ts +0 -55
  26. package/src/app/api/[locale]/shared/types/response.schema.ts +0 -411
  27. package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +0 -315
  28. package/src/app/api/[locale]/shared/types/utils.ts +0 -187
  29. package/src/app/api/[locale]/shared/utils/base64.ts +0 -46
  30. package/src/app/api/[locale]/shared/utils/env-util.ts +0 -36
  31. package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +0 -21
  32. package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +0 -19
  33. package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +0 -21
  34. package/src/app/api/[locale]/shared/utils/index.ts +0 -11
  35. package/src/app/api/[locale]/shared/utils/object-path.ts +0 -41
  36. package/src/app/api/[locale]/shared/utils/object.test.ts +0 -82
  37. package/src/app/api/[locale]/shared/utils/object.ts +0 -73
  38. package/src/app/api/[locale]/shared/utils/parse-error.ts +0 -134
  39. package/src/app/api/[locale]/shared/utils/parse-json.ts +0 -62
  40. package/src/app/api/[locale]/shared/utils/time.ts +0 -46
  41. package/src/app/api/[locale]/shared/utils/validation.ts +0 -117
  42. package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +0 -115
  43. package/src/app/api/[locale]/system/builder/definition.ts +0 -1750
  44. package/src/app/api/[locale]/system/builder/enum.ts +0 -78
  45. package/src/app/api/[locale]/system/builder/i18n/de/index.ts +0 -645
  46. package/src/app/api/[locale]/system/builder/i18n/en/index.ts +0 -653
  47. package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +0 -643
  48. package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +0 -178
  49. package/src/app/api/[locale]/system/builder/repository/build-executor.ts +0 -538
  50. package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +0 -250
  51. package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +0 -170
  52. package/src/app/api/[locale]/system/builder/repository/config-loader.ts +0 -146
  53. package/src/app/api/[locale]/system/builder/repository/config-validator.ts +0 -97
  54. package/src/app/api/[locale]/system/builder/repository/constants.ts +0 -125
  55. package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +0 -67
  56. package/src/app/api/[locale]/system/builder/repository/file-copier.ts +0 -90
  57. package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +0 -75
  58. package/src/app/api/[locale]/system/builder/repository/index.ts +0 -2
  59. package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +0 -143
  60. package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +0 -104
  61. package/src/app/api/[locale]/system/builder/repository/profile-service.ts +0 -79
  62. package/src/app/api/[locale]/system/builder/repository/report-generator.ts +0 -109
  63. package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +0 -277
  64. package/src/app/api/[locale]/system/builder/route.ts +0 -21
  65. package/src/app/api/[locale]/system/builder/test-files/file1.ts +0 -2
  66. package/src/app/api/[locale]/system/builder/test-files/file2.tsx +0 -10
  67. package/src/app/api/[locale]/system/builder/test-files/file3.tsx +0 -16
  68. package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +0 -2
  69. package/src/app/api/[locale]/system/builder/test-files/test-config.ts +0 -38
  70. package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +0 -8
  71. package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +0 -24
  72. package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +0 -6
  73. package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +0 -18
  74. package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +0 -7
  75. package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +0 -27
  76. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +0 -19
  77. package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +0 -1
  78. package/src/app/api/[locale]/system/builder/test-files/test3.css +0 -1
  79. package/src/app/api/[locale]/system/check/config/create/definition.ts +0 -266
  80. package/src/app/api/[locale]/system/check/config/create/i18n/de/index.ts +0 -151
  81. package/src/app/api/[locale]/system/check/config/create/i18n/en/index.ts +0 -146
  82. package/src/app/api/[locale]/system/check/config/create/i18n/pl/index.ts +0 -148
  83. package/src/app/api/[locale]/system/check/config/create/repository.ts +0 -269
  84. package/src/app/api/[locale]/system/check/config/create/route.ts +0 -21
  85. package/src/app/api/[locale]/system/check/config/repository.ts +0 -846
  86. package/src/app/api/[locale]/system/check/config/shared.ts +0 -364
  87. package/src/app/api/[locale]/system/check/config/types.ts +0 -610
  88. package/src/app/api/[locale]/system/check/config/utils.ts +0 -155
  89. package/src/app/api/[locale]/system/check/i18n/de/index.ts +0 -19
  90. package/src/app/api/[locale]/system/check/i18n/en/index.ts +0 -18
  91. package/src/app/api/[locale]/system/check/i18n/pl/index.ts +0 -19
  92. package/src/app/api/[locale]/system/check/lint/definition.ts +0 -383
  93. package/src/app/api/[locale]/system/check/lint/enum.ts +0 -34
  94. package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +0 -160
  95. package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +0 -158
  96. package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +0 -160
  97. package/src/app/api/[locale]/system/check/lint/repository.ts +0 -844
  98. package/src/app/api/[locale]/system/check/lint/route.ts +0 -21
  99. package/src/app/api/[locale]/system/check/oxlint/README.md +0 -190
  100. package/src/app/api/[locale]/system/check/oxlint/definition.ts +0 -375
  101. package/src/app/api/[locale]/system/check/oxlint/enum.ts +0 -34
  102. package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +0 -166
  103. package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +0 -164
  104. package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +0 -166
  105. package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +0 -269
  106. package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +0 -74
  107. package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +0 -283
  108. package/src/app/api/[locale]/system/check/oxlint/repository.ts +0 -553
  109. package/src/app/api/[locale]/system/check/oxlint/route.ts +0 -21
  110. package/src/app/api/[locale]/system/check/oxlint/types.ts +0 -191
  111. package/src/app/api/[locale]/system/check/test-project/.vscode/settings.json +0 -48
  112. package/src/app/api/[locale]/system/check/test-project/bun.lock +0 -640
  113. package/src/app/api/[locale]/system/check/test-project/check.config.ts +0 -955
  114. package/src/app/api/[locale]/system/check/test-project/package.json +0 -17
  115. package/src/app/api/[locale]/system/check/test-project/src/constants.ts +0 -6
  116. package/src/app/api/[locale]/system/check/test-project/src/greet.ts +0 -18
  117. package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +0 -107
  118. package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +0 -37
  119. package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +0 -135
  120. package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +0 -113
  121. package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +0 -127
  122. package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +0 -92
  123. package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +0 -73
  124. package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +0 -95
  125. package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +0 -61
  126. package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +0 -78
  127. package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +0 -27
  128. package/src/app/api/[locale]/system/check/test-project/tsconfig.json +0 -22
  129. package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +0 -1
  130. package/src/app/api/[locale]/system/check/typecheck/definition.ts +0 -328
  131. package/src/app/api/[locale]/system/check/typecheck/enum.ts +0 -34
  132. package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +0 -148
  133. package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +0 -145
  134. package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +0 -148
  135. package/src/app/api/[locale]/system/check/typecheck/repository.ts +0 -863
  136. package/src/app/api/[locale]/system/check/typecheck/route.ts +0 -21
  137. package/src/app/api/[locale]/system/check/typecheck/utils.ts +0 -160
  138. package/src/app/api/[locale]/system/check/vibe-check/definition.ts +0 -448
  139. package/src/app/api/[locale]/system/check/vibe-check/enum.ts +0 -63
  140. package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +0 -164
  141. package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +0 -161
  142. package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +0 -163
  143. package/src/app/api/[locale]/system/check/vibe-check/repository.ts +0 -516
  144. package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +0 -1010
  145. package/src/app/api/[locale]/system/check/vibe-check/route.ts +0 -21
  146. package/src/app/api/[locale]/system/generated/endpoint.ts +0 -274
  147. package/src/app/api/[locale]/system/generated/endpoints.ts +0 -138
  148. package/src/app/api/[locale]/system/generated/route-handlers.ts +0 -213
  149. package/src/app/api/[locale]/system/generators/endpoint/definition.ts +0 -167
  150. package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +0 -48
  151. package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +0 -48
  152. package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +0 -50
  153. package/src/app/api/[locale]/system/generators/endpoint/repository.ts +0 -286
  154. package/src/app/api/[locale]/system/generators/endpoint/route.ts +0 -18
  155. package/src/app/api/[locale]/system/generators/endpoints/definition.ts +0 -246
  156. package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +0 -54
  157. package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +0 -52
  158. package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +0 -54
  159. package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +0 -425
  160. package/src/app/api/[locale]/system/generators/endpoints/repository.ts +0 -368
  161. package/src/app/api/[locale]/system/generators/endpoints/route.ts +0 -17
  162. package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +0 -166
  163. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +0 -71
  164. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +0 -69
  165. package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +0 -71
  166. package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +0 -279
  167. package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +0 -18
  168. package/src/app/api/[locale]/system/generators/generate-all/definition.ts +0 -327
  169. package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +0 -96
  170. package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +0 -94
  171. package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +0 -96
  172. package/src/app/api/[locale]/system/generators/generate-all/repository.ts +0 -240
  173. package/src/app/api/[locale]/system/generators/generate-all/route.ts +0 -19
  174. package/src/app/api/[locale]/system/generators/i18n/de/index.ts +0 -15
  175. package/src/app/api/[locale]/system/generators/i18n/en/index.ts +0 -14
  176. package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +0 -15
  177. package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +0 -178
  178. package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +0 -48
  179. package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +0 -48
  180. package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +0 -50
  181. package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +0 -267
  182. package/src/app/api/[locale]/system/generators/route-handlers/route.ts +0 -14
  183. package/src/app/api/[locale]/system/generators/shared/utils.ts +0 -215
  184. package/src/app/api/[locale]/system/help/definition.ts +0 -433
  185. package/src/app/api/[locale]/system/help/i18n/de/index.ts +0 -263
  186. package/src/app/api/[locale]/system/help/i18n/en/index.ts +0 -259
  187. package/src/app/api/[locale]/system/help/i18n/pl/index.ts +0 -262
  188. package/src/app/api/[locale]/system/help/interactive/definition.ts +0 -122
  189. package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +0 -21
  190. package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +0 -19
  191. package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +0 -21
  192. package/src/app/api/[locale]/system/help/interactive/repository.ts +0 -1131
  193. package/src/app/api/[locale]/system/help/interactive/route.ts +0 -43
  194. package/src/app/api/[locale]/system/help/list/definition.ts +0 -362
  195. package/src/app/api/[locale]/system/help/list/repository.ts +0 -99
  196. package/src/app/api/[locale]/system/help/list/route.ts +0 -21
  197. package/src/app/api/[locale]/system/help/repository.ts +0 -238
  198. package/src/app/api/[locale]/system/help/route.ts +0 -16
  199. package/src/app/api/[locale]/system/i18n/de/index.ts +0 -67
  200. package/src/app/api/[locale]/system/i18n/en/index.ts +0 -66
  201. package/src/app/api/[locale]/system/i18n/pl/index.ts +0 -67
  202. package/src/app/api/[locale]/system/release-tool/definition.ts +0 -2925
  203. package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +0 -782
  204. package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +0 -779
  205. package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +0 -781
  206. package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +0 -122
  207. package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +0 -205
  208. package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +0 -540
  209. package/src/app/api/[locale]/system/release-tool/repository/config.ts +0 -106
  210. package/src/app/api/[locale]/system/release-tool/repository/constants.ts +0 -406
  211. package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +0 -496
  212. package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +0 -378
  213. package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +0 -96
  214. package/src/app/api/[locale]/system/release-tool/repository/index.ts +0 -1
  215. package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +0 -575
  216. package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +0 -150
  217. package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +0 -241
  218. package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +0 -413
  219. package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +0 -283
  220. package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +0 -1084
  221. package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +0 -132
  222. package/src/app/api/[locale]/system/release-tool/repository/utils.ts +0 -603
  223. package/src/app/api/[locale]/system/release-tool/repository/validation.ts +0 -265
  224. package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +0 -275
  225. package/src/app/api/[locale]/system/release-tool/route.ts +0 -21
  226. package/src/app/api/[locale]/system/unified-interface/README.md +0 -328
  227. package/src/app/api/[locale]/system/unified-interface/cli/README.md +0 -349
  228. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +0 -82
  229. package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +0 -120
  230. package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +0 -244
  231. package/src/app/api/[locale]/system/unified-interface/cli/env.ts +0 -24
  232. package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +0 -159
  233. package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +0 -158
  234. package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +0 -159
  235. package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +0 -573
  236. package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +0 -128
  237. package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +0 -155
  238. package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +0 -423
  239. package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +0 -252
  240. package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +0 -901
  241. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +0 -12
  242. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +0 -11
  243. package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +0 -12
  244. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +0 -235
  245. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +0 -54
  246. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +0 -52
  247. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +0 -54
  248. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +0 -444
  249. package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +0 -25
  250. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +0 -159
  251. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +0 -61
  252. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +0 -59
  253. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +0 -61
  254. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +0 -181
  255. package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +0 -22
  256. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +0 -164
  257. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +0 -54
  258. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +0 -52
  259. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +0 -54
  260. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +0 -195
  261. package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +0 -24
  262. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +0 -180
  263. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +0 -54
  264. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +0 -52
  265. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +0 -54
  266. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +0 -105
  267. package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +0 -22
  268. package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +0 -264
  269. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +0 -246
  270. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +0 -305
  271. package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +0 -116
  272. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +0 -67
  273. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +0 -65
  274. package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +0 -67
  275. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +0 -70
  276. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +0 -37
  277. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +0 -52
  278. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +0 -285
  279. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +0 -71
  280. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +0 -281
  281. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +0 -83
  282. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +0 -175
  283. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +0 -61
  284. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +0 -518
  285. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +0 -75
  286. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +0 -357
  287. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +0 -93
  288. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +0 -49
  289. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +0 -63
  290. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +0 -667
  291. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +0 -78
  292. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +0 -99
  293. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +0 -54
  294. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +0 -46
  295. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +0 -123
  296. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +0 -269
  297. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +0 -114
  298. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +0 -138
  299. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +0 -59
  300. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +0 -76
  301. package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +0 -37
  302. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +0 -403
  303. package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +0 -504
  304. package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +0 -39
  305. package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +0 -37
  306. package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +0 -39
  307. package/src/app/api/[locale]/system/unified-interface/mcp/README.md +0 -114
  308. package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +0 -136
  309. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +0 -180
  310. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +0 -178
  311. package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +0 -180
  312. package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +0 -305
  313. package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +0 -124
  314. package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +0 -44
  315. package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +0 -14
  316. package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +0 -291
  317. package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +0 -155
  318. package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +0 -191
  319. package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +0 -247
  320. package/src/app/api/[locale]/system/unified-interface/react/icons.tsx +0 -346
  321. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +0 -1413
  322. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +0 -525
  323. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +0 -52
  324. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +0 -144
  325. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +0 -262
  326. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +0 -656
  327. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +0 -220
  328. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +0 -313
  329. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +0 -182
  330. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +0 -173
  331. package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +0 -58
  332. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +0 -45
  333. package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +0 -43
  334. package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +0 -58
  335. package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +0 -107
  336. package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +0 -336
  337. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +0 -385
  338. package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +0 -1827
  339. package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +0 -108
  340. package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +0 -288
  341. package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +0 -114
  342. package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +0 -155
  343. package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +0 -85
  344. package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +0 -167
  345. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +0 -82
  346. package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +0 -34
  347. package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +0 -1
  348. package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +0 -284
  349. package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +0 -1101
  350. package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +0 -383
  351. package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +0 -34
  352. package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +0 -76
  353. package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +0 -72
  354. package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +0 -27
  355. package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +0 -80
  356. package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +0 -225
  357. package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +0 -251
  358. package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +0 -1060
  359. package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +0 -70
  360. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +0 -75
  361. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +0 -69
  362. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +0 -86
  363. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +0 -283
  364. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +0 -190
  365. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +0 -114
  366. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +0 -71
  367. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +0 -228
  368. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +0 -119
  369. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +0 -367
  370. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +0 -81
  371. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +0 -71
  372. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +0 -79
  373. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +0 -426
  374. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +0 -38
  375. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +0 -112
  376. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +0 -110
  377. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +0 -66
  378. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +0 -79
  379. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +0 -159
  380. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +0 -225
  381. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +0 -85
  382. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +0 -63
  383. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +0 -73
  384. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +0 -96
  385. package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +0 -57
  386. package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +0 -236
  387. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +0 -120
  388. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +0 -414
  389. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +0 -37
  390. package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +0 -427
  391. package/src/app/api/[locale]/user/auth/i18n/de/index.ts +0 -204
  392. package/src/app/api/[locale]/user/auth/i18n/en/index.ts +0 -199
  393. package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +0 -203
  394. package/src/app/api/[locale]/user/auth/types.ts +0 -45
  395. package/src/app/api/[locale]/user/enum.ts +0 -64
  396. package/src/app/api/[locale]/user/i18n/de/index.ts +0 -75
  397. package/src/app/api/[locale]/user/i18n/en/index.ts +0 -74
  398. package/src/app/api/[locale]/user/i18n/pl/index.ts +0 -75
  399. package/src/app/api/[locale]/user/types.ts +0 -111
  400. package/src/app/api/[locale]/user/user-roles/enum.ts +0 -103
  401. package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +0 -85
  402. package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +0 -83
  403. package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +0 -85
  404. package/src/app/api/[locale]/user/user-roles/types.ts +0 -32
  405. package/src/app/api/i18n/de/index.ts +0 -6
  406. package/src/app/api/i18n/en/index.ts +0 -5
  407. package/src/app/api/i18n/pl/index.ts +0 -5
  408. package/src/app/i18n/de/index.ts +0 -18
  409. package/src/app/i18n/en/index.ts +0 -18
  410. package/src/app/i18n/pl/index.ts +0 -17
  411. package/src/config/constants.ts +0 -8
  412. package/src/config/debug.ts +0 -30
  413. package/src/config/env-client.ts +0 -57
  414. package/src/config/env.ts +0 -56
  415. package/src/config/i18n/de/index.ts +0 -3
  416. package/src/config/i18n/en/index.ts +0 -51
  417. package/src/config/i18n/pl/index.ts +0 -3
  418. package/src/i18n/core/config.ts +0 -225
  419. package/src/i18n/core/language-utils.ts +0 -226
  420. package/src/i18n/core/localization-utils.ts +0 -394
  421. package/src/i18n/core/scoped-translation.ts +0 -104
  422. package/src/i18n/core/shared-component.tsx +0 -28
  423. package/src/i18n/core/shared-translation-utils.ts +0 -97
  424. package/src/i18n/core/shared.ts +0 -44
  425. package/src/i18n/core/static-types.ts +0 -64
  426. package/src/i18n/core/translation-utils.ts +0 -186
  427. package/src/i18n/de/index.ts +0 -8
  428. package/src/i18n/en/index.ts +0 -7
  429. package/src/i18n/index.ts +0 -100
  430. package/src/i18n/pl/index.ts +0 -7
@@ -1,1060 +0,0 @@
1
- /**
2
- * Typed Widget Configurations
3
- *
4
- * Static, fully typed configurations for each widget type.
5
- * This ensures type safety across CLI and React implementations.
6
- */
7
-
8
- import type { z } from "zod";
9
-
10
- import type { IconKey } from "@/app/api/[locale]/system/unified-interface/react/icons";
11
-
12
- import type { FieldUsageConfig, InferSchemaFromField, ObjectField } from "../types/endpoint";
13
- import type {
14
- FieldDataType,
15
- FieldUsage,
16
- LayoutType,
17
- SpacingSize,
18
- WidgetType,
19
- } from "../types/enums";
20
-
21
- /**
22
- * Layout configuration for containers and widgets
23
- */
24
- export interface LayoutConfig {
25
- type: LayoutType;
26
- columns?: number;
27
- rows?: number;
28
- gap?: SpacingSize;
29
- padding?: SpacingSize;
30
- margin?: SpacingSize;
31
- responsive?: {
32
- sm?: Partial<LayoutConfig>;
33
- md?: Partial<LayoutConfig>;
34
- lg?: Partial<LayoutConfig>;
35
- xl?: Partial<LayoutConfig>;
36
- };
37
- }
38
-
39
- /**
40
- * Common widget properties
41
- * TKey allows using either global TranslationKey or scoped translation keys
42
- */
43
- interface BaseWidgetConfig {
44
- type: WidgetType;
45
- className?: string;
46
- order?: number;
47
- }
48
-
49
- /**
50
- * Prefill display configuration for form fields
51
- * When a field has a prefilled value from server/URL params, this controls how it's displayed
52
- */
53
- export interface PrefillDisplayConfig<TKey extends string> {
54
- /** Display variant when field is prefilled */
55
- variant: "badge" | "highlight" | "card";
56
- /** Translation key for the label shown with prefilled value */
57
- labelKey?: NoInfer<TKey>;
58
- /** Icon to show with prefilled value */
59
- icon?: IconKey;
60
- }
61
-
62
- /**
63
- * Common properties for form field widgets
64
- * TKey allows using either global TranslationKey or scoped translation keys
65
- * TKey is inferred from label/description values, then validated against expected type
66
- */
67
- interface BaseFormFieldWidgetConfig<TKey extends string> extends BaseWidgetConfig {
68
- type: WidgetType.FORM_FIELD;
69
- label?: NoInfer<TKey>;
70
- description?: NoInfer<TKey>;
71
- placeholder?: NoInfer<TKey>;
72
- helpText?: NoInfer<TKey>;
73
- required?: boolean;
74
- disabled?: boolean;
75
- columns?: number;
76
- /**
77
- * Make field readonly - displays value but cannot be edited
78
- * Use with prefillDisplay to show special styling for server-provided values
79
- */
80
- readonly?: boolean;
81
- /**
82
- * Configure how prefilled values are displayed when readonly
83
- * Only applies when field has a prefilled value
84
- */
85
- prefillDisplay?: PrefillDisplayConfig<TKey>;
86
- }
87
-
88
- // ============================================================================
89
- // FORM WIDGETS
90
- // ============================================================================
91
-
92
- // Text input
93
- export interface TextFieldWidgetConfig<
94
- TKey extends string,
95
- > extends BaseFormFieldWidgetConfig<TKey> {
96
- fieldType: FieldDataType.TEXT;
97
- }
98
-
99
- // Email input
100
- export interface EmailFieldWidgetConfig<
101
- TKey extends string,
102
- > extends BaseFormFieldWidgetConfig<TKey> {
103
- fieldType: FieldDataType.EMAIL;
104
- }
105
-
106
- // Password input
107
- export interface PasswordFieldWidgetConfig<
108
- TKey extends string,
109
- > extends BaseFormFieldWidgetConfig<TKey> {
110
- fieldType: FieldDataType.PASSWORD;
111
- }
112
-
113
- // Number input
114
- export interface NumberFieldWidgetConfig<
115
- TKey extends string,
116
- > extends BaseFormFieldWidgetConfig<TKey> {
117
- fieldType: FieldDataType.NUMBER;
118
- }
119
-
120
- // Boolean/Checkbox input
121
- export interface BooleanFieldWidgetConfig<TKey extends string> extends Omit<
122
- BaseFormFieldWidgetConfig<TKey>,
123
- "placeholder"
124
- > {
125
- fieldType: FieldDataType.BOOLEAN;
126
- }
127
-
128
- // Select dropdown
129
- export interface SelectFieldWidgetConfig<
130
- TKey extends string,
131
- > extends BaseFormFieldWidgetConfig<TKey> {
132
- fieldType: FieldDataType.SELECT;
133
- options: Array<{ label: NoInfer<TKey>; value: string | number }>;
134
- }
135
-
136
- // Multi-select
137
- export interface MultiSelectFieldWidgetConfig<
138
- TKey extends string,
139
- > extends BaseFormFieldWidgetConfig<TKey> {
140
- fieldType: FieldDataType.MULTISELECT;
141
- options: Array<{ label: NoInfer<TKey>; value: string | number }>;
142
- }
143
-
144
- // Filter pills (like select but displayed as pills)
145
- export interface FilterPillsFieldWidgetConfig<
146
- TKey extends string,
147
- > extends BaseFormFieldWidgetConfig<TKey> {
148
- fieldType: FieldDataType.FILTER_PILLS;
149
- options: Array<{
150
- label: NoInfer<TKey>;
151
- value: string | number;
152
- icon?: IconKey;
153
- description?: NoInfer<TKey>;
154
- }>;
155
- }
156
-
157
- // Range slider (min-max selection with visual slider)
158
- export interface RangeSliderFieldWidgetConfig<
159
- TKey extends string,
160
- > extends BaseFormFieldWidgetConfig<TKey> {
161
- fieldType: FieldDataType.RANGE_SLIDER;
162
- options: Array<{
163
- label: NoInfer<TKey>;
164
- value: string | number;
165
- icon?: IconKey;
166
- description?: NoInfer<TKey>;
167
- }>;
168
- minLabel?: NoInfer<TKey>; // Optional label for min handle (defaults to "Min")
169
- maxLabel?: NoInfer<TKey>; // Optional label for max handle (defaults to "Max")
170
- minDefault?: string | number; // Optional default min value
171
- maxDefault?: string | number; // Optional default max value
172
- }
173
-
174
- // Textarea
175
- export interface TextareaFieldWidgetConfig<
176
- TKey extends string,
177
- > extends BaseFormFieldWidgetConfig<TKey> {
178
- fieldType: FieldDataType.TEXTAREA;
179
- }
180
-
181
- // Phone input
182
- export interface PhoneFieldWidgetConfig<
183
- TKey extends string,
184
- > extends BaseFormFieldWidgetConfig<TKey> {
185
- fieldType: FieldDataType.PHONE;
186
- }
187
-
188
- // URL input
189
- export interface UrlFieldWidgetConfig<TKey extends string> extends BaseFormFieldWidgetConfig<TKey> {
190
- fieldType: FieldDataType.URL;
191
- }
192
-
193
- // Integer input
194
- export interface IntFieldWidgetConfig<TKey extends string> extends BaseFormFieldWidgetConfig<TKey> {
195
- fieldType: FieldDataType.INT;
196
- }
197
-
198
- // Date input
199
- export interface DateFieldWidgetConfig<
200
- TKey extends string,
201
- > extends BaseFormFieldWidgetConfig<TKey> {
202
- fieldType: FieldDataType.DATE;
203
- }
204
-
205
- // DateTime input
206
- export interface DateTimeFieldWidgetConfig<
207
- TKey extends string,
208
- > extends BaseFormFieldWidgetConfig<TKey> {
209
- fieldType: FieldDataType.DATETIME;
210
- }
211
-
212
- // Time input
213
- export interface TimeFieldWidgetConfig<
214
- TKey extends string,
215
- > extends BaseFormFieldWidgetConfig<TKey> {
216
- fieldType: FieldDataType.TIME;
217
- }
218
-
219
- // File input
220
- export interface FileFieldWidgetConfig<
221
- TKey extends string,
222
- > extends BaseFormFieldWidgetConfig<TKey> {
223
- fieldType: FieldDataType.FILE;
224
- }
225
-
226
- // UUID input
227
- export interface UuidFieldWidgetConfig<
228
- TKey extends string,
229
- > extends BaseFormFieldWidgetConfig<TKey> {
230
- fieldType: FieldDataType.UUID;
231
- }
232
-
233
- // JSON input
234
- export interface JsonFieldWidgetConfig<
235
- TKey extends string,
236
- > extends BaseFormFieldWidgetConfig<TKey> {
237
- fieldType: FieldDataType.JSON;
238
- }
239
-
240
- // Date range input
241
- export interface DateRangeFieldWidgetConfig<TKey extends string> extends Omit<
242
- BaseFormFieldWidgetConfig<TKey>,
243
- "placeholder"
244
- > {
245
- fieldType: FieldDataType.DATE_RANGE;
246
- }
247
-
248
- // Time range input
249
- export interface TimeRangeFieldWidgetConfig<TKey extends string> extends Omit<
250
- BaseFormFieldWidgetConfig<TKey>,
251
- "placeholder"
252
- > {
253
- fieldType: FieldDataType.TIME_RANGE;
254
- }
255
-
256
- // Timezone select
257
- export interface TimezoneFieldWidgetConfig<
258
- TKey extends string,
259
- > extends BaseFormFieldWidgetConfig<TKey> {
260
- fieldType: FieldDataType.TIMEZONE;
261
- }
262
-
263
- // Currency select
264
- export interface CurrencySelectFieldWidgetConfig<
265
- TKey extends string,
266
- > extends BaseFormFieldWidgetConfig<TKey> {
267
- fieldType: FieldDataType.CURRENCY_SELECT;
268
- }
269
-
270
- // Language select
271
- export interface LanguageSelectFieldWidgetConfig<
272
- TKey extends string,
273
- > extends BaseFormFieldWidgetConfig<TKey> {
274
- fieldType: FieldDataType.LANGUAGE_SELECT;
275
- }
276
-
277
- // Country select
278
- export interface CountrySelectFieldWidgetConfig<
279
- TKey extends string,
280
- > extends BaseFormFieldWidgetConfig<TKey> {
281
- fieldType: FieldDataType.COUNTRY_SELECT;
282
- }
283
-
284
- // Color picker
285
- export interface ColorFieldWidgetConfig<TKey extends string> extends Omit<
286
- BaseFormFieldWidgetConfig<TKey>,
287
- "placeholder"
288
- > {
289
- fieldType: FieldDataType.COLOR;
290
- }
291
-
292
- // Icon picker
293
- export interface IconFieldWidgetConfig<
294
- TKey extends string,
295
- > extends BaseFormFieldWidgetConfig<TKey> {
296
- fieldType: FieldDataType.ICON;
297
- }
298
-
299
- // Slider input
300
- export interface SliderFieldWidgetConfig<TKey extends string> extends Omit<
301
- BaseFormFieldWidgetConfig<TKey>,
302
- "placeholder"
303
- > {
304
- fieldType: FieldDataType.SLIDER;
305
- }
306
-
307
- // Tags input
308
- export interface TagsFieldWidgetConfig<
309
- TKey extends string,
310
- > extends BaseFormFieldWidgetConfig<TKey> {
311
- fieldType: FieldDataType.TAGS;
312
- }
313
-
314
- // Text array input
315
- export interface TextArrayFieldWidgetConfig<
316
- TKey extends string,
317
- > extends BaseFormFieldWidgetConfig<TKey> {
318
- fieldType: FieldDataType.TEXT_ARRAY;
319
- }
320
-
321
- // Union type for all form field widgets
322
- export type FormFieldWidgetConfig<TKey extends string> =
323
- | TextFieldWidgetConfig<TKey>
324
- | EmailFieldWidgetConfig<TKey>
325
- | PasswordFieldWidgetConfig<TKey>
326
- | NumberFieldWidgetConfig<TKey>
327
- | BooleanFieldWidgetConfig<TKey>
328
- | SelectFieldWidgetConfig<TKey>
329
- | MultiSelectFieldWidgetConfig<TKey>
330
- | FilterPillsFieldWidgetConfig<TKey>
331
- | RangeSliderFieldWidgetConfig<TKey>
332
- | TextareaFieldWidgetConfig<TKey>
333
- | PhoneFieldWidgetConfig<TKey>
334
- | UrlFieldWidgetConfig<TKey>
335
- | IntFieldWidgetConfig<TKey>
336
- | DateFieldWidgetConfig<TKey>
337
- | DateTimeFieldWidgetConfig<TKey>
338
- | TimeFieldWidgetConfig<TKey>
339
- | FileFieldWidgetConfig<TKey>
340
- | UuidFieldWidgetConfig<TKey>
341
- | JsonFieldWidgetConfig<TKey>
342
- | DateRangeFieldWidgetConfig<TKey>
343
- | TimeRangeFieldWidgetConfig<TKey>
344
- | TimezoneFieldWidgetConfig<TKey>
345
- | CurrencySelectFieldWidgetConfig<TKey>
346
- | LanguageSelectFieldWidgetConfig<TKey>
347
- | CountrySelectFieldWidgetConfig<TKey>
348
- | ColorFieldWidgetConfig<TKey>
349
- | IconFieldWidgetConfig<TKey>
350
- | SliderFieldWidgetConfig<TKey>
351
- | TagsFieldWidgetConfig<TKey>
352
- | TextArrayFieldWidgetConfig<TKey>;
353
-
354
- export interface FormGroupWidgetConfig<TKey extends string> extends BaseWidgetConfig {
355
- type: WidgetType.FORM_GROUP;
356
- title?: NoInfer<TKey>;
357
- description?: NoInfer<TKey>;
358
- layoutType?: LayoutType;
359
- }
360
-
361
- export interface FormSectionWidgetConfig<TKey extends string> extends BaseWidgetConfig {
362
- type: WidgetType.FORM_SECTION;
363
- title?: NoInfer<TKey>;
364
- description?: NoInfer<TKey>;
365
- }
366
-
367
- // ============================================================================
368
- // DATA DISPLAY WIDGETS
369
- // ============================================================================
370
-
371
- export interface DataTableWidgetConfig<TKey extends string> extends BaseWidgetConfig {
372
- type: WidgetType.DATA_TABLE;
373
- title?: NoInfer<TKey>;
374
- description?: NoInfer<TKey>;
375
- columns?: Array<{
376
- key: string; // Field name from the data object (e.g., "id", "name", "email")
377
- label: NoInfer<TKey>;
378
- sortable?: boolean;
379
- width?: string | number;
380
- align?: "left" | "center" | "right";
381
- }>;
382
- pagination?: {
383
- enabled?: boolean;
384
- pageSize?: number;
385
- showSizeChanger?: boolean;
386
- };
387
- sorting?: {
388
- enabled?: boolean;
389
- defaultSort?: Array<{
390
- key: string;
391
- direction: "asc" | "desc";
392
- }>;
393
- };
394
- filtering?: {
395
- enabled?: boolean;
396
- global?: boolean;
397
- };
398
- }
399
-
400
- export interface DataCardsWidgetConfig<TKey extends string> extends BaseWidgetConfig {
401
- type: WidgetType.DATA_CARDS;
402
- title?: NoInfer<TKey>;
403
- description?: NoInfer<TKey>;
404
- // Card field mapping - these are field names from child objects to display in card layout
405
- cardTitle?: string; // Field name to use as card title (e.g., "name", "title")
406
- cardSubtitle?: string; // Field name to use as card subtitle (e.g., "email", "description")
407
- cardImage?: string; // Field name containing image URL (e.g., "avatarUrl", "imageUrl")
408
- cardContent?: string[]; // Array of field names to display in card body (e.g., ["description", "status"])
409
- cardMetadata?: string[]; // Array of field names to display as metadata (e.g., ["createdAt", "updatedAt"])
410
- cardTemplate?: string; // Template name for card rendering
411
- groupBy?: string; // Field to group cards by
412
- showSummary?: boolean; // Show summary for groups
413
- summaryTemplate?: string; // Template for summary rendering
414
- layout?: LayoutConfig; // Layout configuration
415
- itemConfig?: {
416
- template: string;
417
- size: string;
418
- spacing: string;
419
- };
420
- }
421
-
422
- export interface DataListWidgetConfig<TKey extends string> extends BaseWidgetConfig {
423
- type: WidgetType.DATA_LIST;
424
- title?: NoInfer<TKey>;
425
- description?: NoInfer<TKey>;
426
- optional?: boolean;
427
- renderMode?: string;
428
- hierarchical?: boolean;
429
- }
430
-
431
- export interface DataGridWidgetConfig<TKey extends string> extends BaseWidgetConfig {
432
- type: WidgetType.DATA_GRID;
433
- title?: NoInfer<TKey>;
434
- description?: NoInfer<TKey>;
435
- }
436
-
437
- export interface GroupedListWidgetConfig<TKey extends string> extends BaseWidgetConfig {
438
- type: WidgetType.GROUPED_LIST;
439
- title?: NoInfer<TKey>;
440
- description?: NoInfer<TKey>;
441
- groupBy?: string; // Field name from data object to group by (e.g., "file", "status", "category")
442
- sortBy?: string; // Field name from data object to sort by (e.g., "severity", "createdAt", "name")
443
- columns?: number;
444
- hierarchical?: boolean;
445
- renderMode?: string;
446
- }
447
-
448
- export interface CodeQualityListWidgetConfig<TKey extends string> extends BaseWidgetConfig {
449
- type: WidgetType.CODE_QUALITY_LIST;
450
- title?: NoInfer<TKey>;
451
- description?: NoInfer<TKey>;
452
- groupBy?: string; // Field name from data object to group by (e.g., "file", "code")
453
- sortBy?: string; // Field name from data object to sort by (e.g., "severity")
454
- showSummary?: boolean;
455
- columns?: number;
456
- layoutType?: LayoutType;
457
- }
458
-
459
- export interface CodeQualityFilesWidgetConfig<TKey extends string> extends BaseWidgetConfig {
460
- type: WidgetType.CODE_QUALITY_FILES;
461
- title?: NoInfer<TKey>;
462
- description?: NoInfer<TKey>;
463
- }
464
-
465
- export interface CodeQualitySummaryWidgetConfig<TKey extends string> extends BaseWidgetConfig {
466
- type: WidgetType.CODE_QUALITY_SUMMARY;
467
- title?: NoInfer<TKey>;
468
- description?: NoInfer<TKey>;
469
- }
470
-
471
- export interface MetadataCardWidgetConfig<TKey extends string> extends BaseWidgetConfig {
472
- type: WidgetType.METADATA_CARD;
473
- title?: NoInfer<TKey>;
474
- description?: NoInfer<TKey>;
475
- }
476
-
477
- // ============================================================================
478
- // LAYOUT WIDGETS
479
- // ============================================================================
480
-
481
- /**
482
- * Helper to infer request/response schemas from children
483
- * Creates a minimal ObjectField-like structure for type inference
484
- */
485
- interface InferSchemasFromChildren<
486
- TChildren,
487
- TUsage extends FieldUsageConfig,
488
- TTranslationKey extends string = string,
489
- > {
490
- request: z.output<
491
- InferSchemaFromField<
492
- ObjectField<TChildren, TUsage, TTranslationKey, ContainerWidgetConfig<TTranslationKey>>,
493
- FieldUsage.RequestData
494
- >
495
- >;
496
- response: z.output<
497
- InferSchemaFromField<
498
- ObjectField<TChildren, TUsage, TTranslationKey, ContainerWidgetConfig<TTranslationKey>>,
499
- FieldUsage.Response
500
- >
501
- >;
502
- }
503
-
504
- /**
505
- * Base Container Widget Config - shared properties without getCount
506
- * Used as the base for both typed and untyped container configs
507
- */
508
- interface ContainerWidgetConfigBase<TKey extends string> extends BaseWidgetConfig {
509
- type: WidgetType.CONTAINER;
510
- title?: NoInfer<TKey>;
511
- description?: NoInfer<TKey>;
512
- layoutType?: LayoutType;
513
- layout?: LayoutConfig;
514
- columns?: number;
515
- /** Tailwind spacing value for gap between children (0, 1, 2, 3, 4, 6, 8) */
516
- gap?: "0" | "1" | "2" | "3" | "4" | "6" | "8";
517
- /** Tailwind spacing value for top padding (0, 2, 3, 4, 6, 8) */
518
- paddingTop?: "0" | "2" | "3" | "4" | "6" | "8";
519
- optional?: boolean;
520
- icon?: IconKey;
521
- border?: boolean;
522
- spacing?: "compact" | "normal" | "relaxed";
523
- /** Render without Card wrapper for inline layouts */
524
- noCard?: boolean;
525
- /**
526
- * Submit/Refresh button configuration for the container
527
- * Rendered in the header next to the title when position is "header"
528
- *
529
- * @example
530
- * ```typescript
531
- * submitButton: {
532
- * text: "app.common.actions.refresh",
533
- * loadingText: "app.common.actions.refreshing",
534
- * position: "header",
535
- * icon: "refresh-cw",
536
- * variant: "ghost",
537
- * size: "sm",
538
- * }
539
- * ```
540
- */
541
- submitButton?: {
542
- /** Submit button text translation key */
543
- text?: NoInfer<TKey>;
544
- /** Submit button loading text translation key */
545
- loadingText?: NoInfer<TKey>;
546
- /** Submit button position - 'bottom' (default) or 'header' */
547
- position?: "bottom" | "header";
548
- /** Icon identifier (e.g., "refresh-cw", "save", "send") */
549
- icon?: IconKey;
550
- /** Button variant */
551
- variant?: "default" | "primary" | "secondary" | "destructive" | "ghost" | "outline" | "link";
552
- /** Button size */
553
- size?: "default" | "sm" | "lg" | "icon";
554
- };
555
- /**
556
- * Show auto FormAlert at top of container when there are request fields
557
- * Displays error/success messages from context.response
558
- * Set to false to disable (e.g., for login/signup pages with custom alert position)
559
- * @default true
560
- */
561
- showFormAlert?: boolean;
562
- /**
563
- * Show auto submit button at bottom of container when there are request fields
564
- * Only shown when no explicit submitButton config is provided
565
- * Set to false to disable (e.g., for login/signup pages with custom submit button)
566
- * @default true
567
- */
568
- showSubmitButton?: boolean;
569
- }
570
-
571
- /**
572
- * Container Widget Config - permissive version for use in WidgetConfig union
573
- * getCount accepts any data structure to allow proper inference in objectField
574
- */
575
- export interface ContainerWidgetConfig<
576
- TKey extends string,
577
- > extends ContainerWidgetConfigBase<TKey> {
578
- /**
579
- * Function to extract count from data for title display (e.g., "Leads (42)")
580
- * Type is permissive here - proper typing happens in objectField return type
581
- *
582
- * @example
583
- * ```typescript
584
- * getCount: (data) => data.response?.paginationInfo?.total
585
- * ```
586
- */
587
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
588
- getCount?: (data: { request?: any; response?: any }) => number | undefined;
589
- }
590
-
591
- /**
592
- * Typed Container Widget Config with inferred request/response types
593
- * TChildren should be the record of child fields passed to objectField
594
- * TUsage should be the usage config passed to objectField
595
- * TKey allows using either global TranslationKey or scoped translation keys
596
- */
597
- export interface TypedContainerWidgetConfig<
598
- TKey extends string,
599
- TChildren = Record<string, never>,
600
- TUsage extends FieldUsageConfig = FieldUsageConfig,
601
- > extends ContainerWidgetConfigBase<TKey> {
602
- /**
603
- * Type-safe function to extract count from data for title display (e.g., "Leads (42)")
604
- * Types are inferred from the field children and usage
605
- *
606
- * @param data - Object containing request and response data
607
- * @param data.request - Request data (typed from requestSchema)
608
- * @param data.response - Response data (typed from responseSchema)
609
- * @returns The count to display in the title, or undefined to not show a count
610
- *
611
- * @example
612
- * ```typescript
613
- * getCount: (data) => data.response?.paginationInfo?.total
614
- * ```
615
- */
616
- getCount?: (data: {
617
- request?: InferSchemasFromChildren<TChildren, TUsage>["request"];
618
- response?: InferSchemasFromChildren<TChildren, TUsage>["response"];
619
- }) => number | undefined;
620
- }
621
-
622
- export interface SectionWidgetConfig<TKey extends string> extends BaseWidgetConfig {
623
- type: WidgetType.SECTION;
624
- title?: NoInfer<TKey>;
625
- description?: NoInfer<TKey>;
626
- layoutType?: LayoutType;
627
- }
628
-
629
- export interface TabsWidgetConfig<TKey extends string> extends BaseWidgetConfig {
630
- type: WidgetType.TABS;
631
- title?: NoInfer<TKey>;
632
- tabs?: Array<{
633
- id: string;
634
- label: NoInfer<TKey>;
635
- }>;
636
- }
637
-
638
- export interface AccordionWidgetConfig<TKey extends string> extends BaseWidgetConfig {
639
- type: WidgetType.ACCORDION;
640
- title?: NoInfer<TKey>;
641
- }
642
-
643
- // ============================================================================
644
- // CONTENT WIDGETS
645
- // ============================================================================
646
-
647
- export interface TitleWidgetConfig<TKey extends string> extends BaseWidgetConfig {
648
- type: WidgetType.TITLE;
649
- content: NoInfer<TKey>;
650
- level?: 1 | 2 | 3 | 4 | 5 | 6;
651
- fieldType?: FieldDataType;
652
- }
653
-
654
- export interface TextWidgetConfig<TKey extends string> extends BaseWidgetConfig {
655
- type: WidgetType.TEXT;
656
- content: NoInfer<TKey>;
657
- fieldType?: FieldDataType;
658
- label?: NoInfer<TKey>;
659
- variant?: "default" | "error" | "info" | "success" | "warning";
660
- multiline?: boolean;
661
- emphasis?: "bold" | "italic" | "underline";
662
- maxLength?: number;
663
- format?: "link" | "plain";
664
- href?: string;
665
- textAlign?: "left" | "center" | "right";
666
- }
667
-
668
- export interface BadgeWidgetConfig<TKey extends string> extends BaseWidgetConfig {
669
- type: WidgetType.BADGE;
670
- text?: NoInfer<TKey>; // Static text - use when displaying a fixed label
671
- enumOptions?: Array<{ label: NoInfer<TKey>; value: string | number }>; // Dynamic enum mapping - use when displaying enum values
672
- variant?: "default" | "success" | "warning" | "error" | "info";
673
- }
674
-
675
- export interface AvatarWidgetConfig<TKey extends string> extends BaseWidgetConfig {
676
- type: WidgetType.AVATAR;
677
- src?: string; // Field name containing avatar URL (e.g., "avatarUrl", "imageUrl") or literal URL
678
- alt?: NoInfer<TKey>;
679
- fallback?: string; // Fallback text/initials to display if image fails (e.g., "JD", "?")
680
- }
681
-
682
- export interface MarkdownWidgetConfig<TKey extends string> extends BaseWidgetConfig {
683
- type: WidgetType.MARKDOWN;
684
- content?: NoInfer<TKey>; // Optional - only for hardcoded static content, not for field values
685
- columns?: number;
686
- label?: NoInfer<TKey>;
687
- description?: NoInfer<TKey>;
688
- }
689
-
690
- export interface MarkdownEditorWidgetConfig<TKey extends string> extends BaseWidgetConfig {
691
- type: WidgetType.MARKDOWN_EDITOR;
692
- label?: NoInfer<TKey>;
693
- placeholder?: NoInfer<TKey>;
694
- }
695
-
696
- export interface LinkWidgetConfig<TKey extends string> extends BaseWidgetConfig {
697
- type: WidgetType.LINK;
698
- href: string; // URL path or route
699
- text?: NoInfer<TKey>; // Link text to display
700
- label?: NoInfer<TKey>; // Accessible label (aria-label) - use if text is not descriptive
701
- external?: boolean; // Opens in new tab if true
702
- }
703
-
704
- export interface LinkCardWidgetConfig<TKey extends string> extends BaseWidgetConfig {
705
- type: WidgetType.LINK_CARD;
706
- href: string;
707
- title: NoInfer<TKey>;
708
- description?: NoInfer<TKey>;
709
- external?: boolean;
710
- }
711
-
712
- export interface LinkListWidgetConfig<TKey extends string> extends BaseWidgetConfig {
713
- type: WidgetType.LINK_LIST;
714
- title?: NoInfer<TKey>;
715
- links?: Array<{
716
- href: string;
717
- text: NoInfer<TKey>;
718
- external?: boolean;
719
- }>;
720
- layoutType?: LayoutType;
721
- columns?: number;
722
- }
723
-
724
- // Data-driven card - renders object data as a card with link capability
725
- export interface DataCardWidgetConfig<TKey extends string> extends BaseWidgetConfig {
726
- type: WidgetType.DATA_CARD;
727
- title?: NoInfer<TKey>;
728
- description?: NoInfer<TKey>;
729
- linkable?: boolean; // If true, looks for href/url field in children
730
- layoutType?: LayoutType;
731
- columns?: number;
732
- optional?: boolean;
733
- }
734
-
735
- // ============================================================================
736
- // SPECIALIZED CONTENT WIDGETS
737
- // ============================================================================
738
- // NOTE: These widgets are for code quality/linting output display.
739
- // They use literal values from data rather than translation keys.
740
- // These are NOT fully data-driven and are specialized for specific use cases.
741
-
742
- export interface FilePathWidgetConfig extends BaseWidgetConfig {
743
- type: WidgetType.FILE_PATH;
744
- path: string; // Literal file path from data (e.g., "src/app/page.tsx")
745
- }
746
-
747
- export interface LineNumberWidgetConfig extends BaseWidgetConfig {
748
- type: WidgetType.LINE_NUMBER;
749
- line: number; // Literal line number from data
750
- }
751
-
752
- export interface ColumnNumberWidgetConfig extends BaseWidgetConfig {
753
- type: WidgetType.COLUMN_NUMBER;
754
- column: number; // Literal column number from data
755
- }
756
-
757
- export interface CodeRuleWidgetConfig extends BaseWidgetConfig {
758
- type: WidgetType.CODE_RULE;
759
- rule: string; // Literal rule ID/name from data (e.g., "no-unused-vars", "typescript/no-explicit-any")
760
- }
761
-
762
- export interface CodeOutputWidgetConfig extends BaseWidgetConfig {
763
- type: WidgetType.CODE_OUTPUT;
764
- code?: string; // Literal code snippet from data
765
- language?: string; // Programming language for syntax highlighting
766
- format?: "eslint" | "generic" | "json" | "table";
767
- outputFormat?: "eslint" | "generic" | "json" | "table";
768
- showSummary?: boolean;
769
- colorScheme?: "auto" | "light" | "dark";
770
- severityIcons?: Record<string, string>;
771
- groupBy?: string;
772
- summaryTemplate?: string;
773
- }
774
-
775
- export interface SeverityBadgeWidgetConfig extends BaseWidgetConfig {
776
- type: WidgetType.SEVERITY_BADGE;
777
- severity: "error" | "warning" | "info"; // Literal severity level from data
778
- }
779
-
780
- export interface MessageTextWidgetConfig<TKey extends string> extends BaseWidgetConfig {
781
- type: WidgetType.MESSAGE_TEXT;
782
- message: NoInfer<TKey>; // Message to display
783
- }
784
-
785
- export interface IssueCardWidgetConfig<TKey extends string> extends BaseWidgetConfig {
786
- type: WidgetType.ISSUE_CARD;
787
- title: NoInfer<TKey>;
788
- description?: NoInfer<TKey>;
789
- }
790
-
791
- export interface CreditTransactionCardWidgetConfig extends BaseWidgetConfig {
792
- type: WidgetType.CREDIT_TRANSACTION_CARD;
793
- leftFields?: string[]; // Fields to show on left side
794
- rightFields?: string[]; // Fields to show on right side
795
- }
796
-
797
- export interface CreditTransactionListWidgetConfig extends BaseWidgetConfig {
798
- type: WidgetType.CREDIT_TRANSACTION_LIST;
799
- }
800
-
801
- export interface PaginationWidgetConfig extends BaseWidgetConfig {
802
- type: WidgetType.PAGINATION;
803
- }
804
-
805
- // ============================================================================
806
- // INTERACTIVE WIDGETS
807
- // ============================================================================
808
-
809
- export interface ButtonWidgetConfig<TKey extends string> extends BaseWidgetConfig {
810
- type: WidgetType.BUTTON;
811
- text: NoInfer<TKey>;
812
- icon?: IconKey;
813
- variant?: "default" | "primary" | "secondary" | "destructive" | "ghost" | "link";
814
- size?: "default" | "sm" | "lg" | "icon";
815
- onClick?: string; // Action ID
816
- }
817
-
818
- export interface ButtonGroupWidgetConfig<TKey extends string> extends BaseWidgetConfig {
819
- type: WidgetType.BUTTON_GROUP;
820
- buttons?: Array<{
821
- text: NoInfer<TKey>;
822
- onClick?: string;
823
- }>;
824
- }
825
-
826
- export interface ActionBarWidgetConfig<TKey extends string> extends BaseWidgetConfig {
827
- type: WidgetType.ACTION_BAR;
828
- actions?: Array<{
829
- text: NoInfer<TKey>;
830
- onClick?: string;
831
- }>;
832
- }
833
-
834
- export interface PaginationInfoWidgetConfig extends BaseWidgetConfig {
835
- type: WidgetType.PAGINATION_INFO;
836
- total?: number;
837
- page?: number;
838
- pageSize?: number;
839
- }
840
-
841
- export interface ActionListWidgetConfig<TKey extends string> extends BaseWidgetConfig {
842
- type: WidgetType.ACTION_LIST;
843
- actions?: Array<{
844
- text: NoInfer<TKey>;
845
- onClick?: string;
846
- }>;
847
- }
848
-
849
- // ============================================================================
850
- // STATS WIDGETS
851
- // ============================================================================
852
-
853
- export interface MetricCardWidgetConfig<TKey extends string> extends BaseWidgetConfig {
854
- type: WidgetType.METRIC_CARD;
855
- title: NoInfer<TKey>;
856
- value: string | number;
857
- change?: number;
858
- trend?: "up" | "down" | "neutral";
859
- format?: "number" | "currency" | "percentage" | "bytes";
860
- icon?: IconKey;
861
- unit?: string;
862
- precision?: number;
863
- threshold?: {
864
- warning?: number;
865
- error?: number;
866
- };
867
- }
868
-
869
- /**
870
- * Stat Widget Config - Simple stat display from field definition
871
- * Takes a numeric value and displays with label from field.ui.label
872
- */
873
- export interface StatWidgetConfig<TKey extends string> extends BaseWidgetConfig {
874
- type: WidgetType.STAT;
875
- label?: NoInfer<TKey>;
876
- format?: "number" | "percentage" | "currency" | "compact";
877
- icon?: IconKey;
878
- variant?: "default" | "success" | "warning" | "danger" | "info" | "muted";
879
- trend?: "up" | "down" | "neutral";
880
- trendValue?: number;
881
- size?: "sm" | "md" | "lg";
882
- }
883
-
884
- export interface StatsGridWidgetConfig<TKey extends string> extends BaseWidgetConfig {
885
- type: WidgetType.STATS_GRID;
886
- title?: NoInfer<TKey>;
887
- stats?: Array<{
888
- label: NoInfer<TKey>;
889
- value: string | number;
890
- }>;
891
- }
892
-
893
- export interface ChartWidgetConfig<TKey extends string> extends BaseWidgetConfig {
894
- type: WidgetType.CHART;
895
- title?: NoInfer<TKey>;
896
- label?: NoInfer<TKey>;
897
- description?: NoInfer<TKey>;
898
- chartType?: "line" | "bar" | "pie" | "area" | "donut";
899
- xAxisLabel?: string;
900
- yAxisLabel?: string;
901
- height?: number;
902
- showLegend?: boolean;
903
- showGrid?: boolean;
904
- animate?: boolean;
905
- }
906
-
907
- export interface ProgressWidgetConfig<TKey extends string> extends BaseWidgetConfig {
908
- type: WidgetType.PROGRESS;
909
- value: number;
910
- max?: number;
911
- label?: NoInfer<TKey>;
912
- }
913
-
914
- // ============================================================================
915
- // STATUS WIDGETS
916
- // ============================================================================
917
-
918
- export interface LoadingWidgetConfig<TKey extends string> extends BaseWidgetConfig {
919
- type: WidgetType.LOADING;
920
- message?: NoInfer<TKey>;
921
- }
922
-
923
- export interface ErrorWidgetConfig<TKey extends string> extends BaseWidgetConfig {
924
- type: WidgetType.ERROR;
925
- title: NoInfer<TKey>;
926
- message?: NoInfer<TKey>;
927
- }
928
-
929
- export interface EmptyStateWidgetConfig<TKey extends string> extends BaseWidgetConfig {
930
- type: WidgetType.EMPTY_STATE;
931
- title: NoInfer<TKey>;
932
- message?: NoInfer<TKey>;
933
- action?: {
934
- text: NoInfer<TKey>;
935
- onClick?: string;
936
- };
937
- }
938
-
939
- export interface StatusIndicatorWidgetConfig<TKey extends string> extends BaseWidgetConfig {
940
- type: WidgetType.STATUS_INDICATOR;
941
- status: "success" | "warning" | "error" | "info" | "pending";
942
- label?: NoInfer<TKey>;
943
- }
944
-
945
- export interface AlertWidgetConfig extends BaseWidgetConfig {
946
- type: WidgetType.ALERT;
947
- variant?: "default" | "destructive" | "success" | "warning";
948
- }
949
-
950
- export interface FormAlertWidgetConfig extends BaseWidgetConfig {
951
- type: WidgetType.FORM_ALERT;
952
- }
953
-
954
- export interface SubmitButtonWidgetConfig<TKey extends string> extends BaseWidgetConfig {
955
- type: WidgetType.SUBMIT_BUTTON;
956
- text?: NoInfer<TKey>;
957
- loadingText?: NoInfer<TKey>;
958
- icon?: IconKey;
959
- variant?: "default" | "primary" | "secondary" | "destructive" | "ghost" | "outline" | "link";
960
- size?: "default" | "sm" | "lg" | "icon";
961
- }
962
-
963
- // Password strength indicator
964
- export interface PasswordStrengthWidgetConfig extends BaseWidgetConfig {
965
- type: WidgetType.PASSWORD_STRENGTH;
966
- /** Field name to watch for password value (defaults to "password") */
967
- watchField?: string;
968
- }
969
-
970
- // ============================================================================
971
- // CUSTOM WIDGETS
972
- // ============================================================================
973
-
974
- export interface CustomWidgetConfig<
975
- TProps extends Record<string, string | number | boolean | null | undefined> = Record<
976
- string,
977
- never
978
- >,
979
- > extends BaseWidgetConfig {
980
- type: WidgetType.CUSTOM;
981
- componentId: string;
982
- props?: TProps;
983
- }
984
-
985
- // ============================================================================
986
- // UNION TYPE FOR ALL WIDGET CONFIGS
987
- // ============================================================================
988
-
989
- export type WidgetConfig<TKey extends string> =
990
- // Form widgets
991
- | FormFieldWidgetConfig<TKey>
992
- | FormGroupWidgetConfig<TKey>
993
- | FormSectionWidgetConfig<TKey>
994
- // Data display widgets
995
- | DataTableWidgetConfig<TKey>
996
- | DataCardWidgetConfig<TKey>
997
- | DataCardsWidgetConfig<TKey>
998
- | DataListWidgetConfig<TKey>
999
- | DataGridWidgetConfig<TKey>
1000
- | GroupedListWidgetConfig<TKey>
1001
- | CodeQualityListWidgetConfig<TKey>
1002
- | CodeQualityFilesWidgetConfig<TKey>
1003
- | CodeQualitySummaryWidgetConfig<TKey>
1004
- | MetadataCardWidgetConfig<TKey>
1005
- // Layout widgets
1006
- | ContainerWidgetConfig<TKey>
1007
- | SectionWidgetConfig<TKey>
1008
- | TabsWidgetConfig<TKey>
1009
- | AccordionWidgetConfig<TKey>
1010
- // Content widgets
1011
- | TitleWidgetConfig<TKey>
1012
- | TextWidgetConfig<TKey>
1013
- | BadgeWidgetConfig<TKey>
1014
- | AvatarWidgetConfig<TKey>
1015
- | MarkdownWidgetConfig<TKey>
1016
- | MarkdownEditorWidgetConfig<TKey>
1017
- | LinkWidgetConfig<TKey>
1018
- | LinkCardWidgetConfig<TKey>
1019
- | LinkListWidgetConfig<TKey>
1020
- // Specialized content widgets
1021
- | FilePathWidgetConfig
1022
- | LineNumberWidgetConfig
1023
- | ColumnNumberWidgetConfig
1024
- | CodeRuleWidgetConfig
1025
- | CodeOutputWidgetConfig
1026
- | SeverityBadgeWidgetConfig
1027
- | MessageTextWidgetConfig<TKey>
1028
- | IssueCardWidgetConfig<TKey>
1029
- | CreditTransactionCardWidgetConfig
1030
- | CreditTransactionListWidgetConfig
1031
- | PaginationWidgetConfig
1032
- // Interactive widgets
1033
- | ButtonWidgetConfig<TKey>
1034
- | ButtonGroupWidgetConfig<TKey>
1035
- | ActionBarWidgetConfig<TKey>
1036
- | PaginationInfoWidgetConfig
1037
- | ActionListWidgetConfig<TKey>
1038
- // Stats widgets
1039
- | StatWidgetConfig<TKey>
1040
- | MetricCardWidgetConfig<TKey>
1041
- | StatsGridWidgetConfig<TKey>
1042
- | ChartWidgetConfig<TKey>
1043
- | ProgressWidgetConfig<TKey>
1044
- // Status widgets
1045
- | LoadingWidgetConfig<TKey>
1046
- | ErrorWidgetConfig<TKey>
1047
- | EmptyStateWidgetConfig<TKey>
1048
- | StatusIndicatorWidgetConfig<TKey>
1049
- | AlertWidgetConfig
1050
- | FormAlertWidgetConfig
1051
- | SubmitButtonWidgetConfig<TKey>
1052
- | PasswordStrengthWidgetConfig;
1053
-
1054
- /**
1055
- * Extract widget config type from WidgetType enum
1056
- */
1057
- export type ExtractWidgetConfig<T extends WidgetType, TKey extends string> = Extract<
1058
- WidgetConfig<TKey>,
1059
- { type: T }
1060
- >;