@qoretechnologies/reqraft 0.10.55-pr.124.g77dd26c → 0.10.55

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 (375) hide show
  1. package/.claude/CLAUDE.md +25 -0
  2. package/.tasks/INDEX.md +1 -0
  3. package/.tasks/STORY_NETWORK_ISOLATION.md +98 -0
  4. package/README.md +1 -1
  5. package/design/FORM_ENGINE_COMPACT.md +34 -0
  6. package/design/FORM_ENGINE_EXPRESSIONS.md +110 -0
  7. package/design/FORM_ENGINE_FIELD_MIGRATION.md +155 -1
  8. package/design/IDE_INTEGRATION.md +13 -0
  9. package/design/RENDER_EXPRESSION_TRANSPORT.md +76 -10
  10. package/design/SELECT_DIALOG_FLOOR.md +86 -0
  11. package/design/SMART_EDITOR_UX.md +21 -0
  12. package/design/UNAVAILABLE_ALLOWED_VALUES.md +226 -0
  13. package/dist/components/composer/Composer.d.ts +8 -3
  14. package/dist/components/composer/Composer.d.ts.map +1 -1
  15. package/dist/components/composer/Composer.js.map +1 -1
  16. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  17. package/dist/components/dpqlEditor/DpqlEditor.js +3 -3
  18. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  19. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +6 -0
  20. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  21. package/dist/components/dpqlEditor/dpqlHelpers.js +21 -2
  22. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  23. package/dist/components/dpqlEditor/dpqlProbe.d.ts +37 -0
  24. package/dist/components/dpqlEditor/dpqlProbe.d.ts.map +1 -0
  25. package/dist/components/dpqlEditor/dpqlProbe.js +203 -0
  26. package/dist/components/dpqlEditor/dpqlProbe.js.map +1 -0
  27. package/dist/components/dpqlEditor/dpqlTags.d.ts +8 -0
  28. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  29. package/dist/components/dpqlEditor/dpqlTags.js +5 -1
  30. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  31. package/dist/components/dpqlEditor/index.d.ts +4 -0
  32. package/dist/components/dpqlEditor/index.d.ts.map +1 -1
  33. package/dist/components/dpqlEditor/index.js +5 -1
  34. package/dist/components/dpqlEditor/index.js.map +1 -1
  35. package/dist/components/dpqlEditor/types.d.ts +42 -2
  36. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  37. package/dist/components/dpqlEditor/types.js +0 -4
  38. package/dist/components/dpqlEditor/types.js.map +1 -1
  39. package/dist/components/dpqlEditor/useDpqlProbe.d.ts +4 -0
  40. package/dist/components/dpqlEditor/useDpqlProbe.d.ts.map +1 -0
  41. package/dist/components/dpqlEditor/useDpqlProbe.js +29 -0
  42. package/dist/components/dpqlEditor/useDpqlProbe.js.map +1 -0
  43. package/dist/components/dpqlEditor/useDpqlSession.d.ts +5 -2
  44. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/useDpqlSession.js +8 -2
  46. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  47. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  48. package/dist/components/form/engine/CompactRow.js +414 -128
  49. package/dist/components/form/engine/CompactRow.js.map +1 -1
  50. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  51. package/dist/components/form/engine/CompactToolbar.js +5 -2
  52. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  53. package/dist/components/form/engine/FormEngine.d.ts +273 -22
  54. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  55. package/dist/components/form/engine/FormEngine.js +669 -192
  56. package/dist/components/form/engine/FormEngine.js.map +1 -1
  57. package/dist/components/form/engine/FormFieldsSkeleton.d.ts +48 -0
  58. package/dist/components/form/engine/FormFieldsSkeleton.d.ts.map +1 -0
  59. package/dist/components/form/engine/FormFieldsSkeleton.js +41 -0
  60. package/dist/components/form/engine/FormFieldsSkeleton.js.map +1 -0
  61. package/dist/components/form/engine/OptionFieldMessages.d.ts +108 -2
  62. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  63. package/dist/components/form/engine/OptionFieldMessages.js +203 -13
  64. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  65. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  66. package/dist/components/form/engine/_structuredData/SchemaDataView.js +68 -5
  67. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  68. package/dist/components/form/engine/compactRowContext.d.ts +15 -1
  69. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  70. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  71. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  72. package/dist/components/form/engine/compactRowStyles.js +55 -29
  73. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  74. package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
  75. package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
  76. package/dist/components/form/engine/optionActions.d.ts +37 -1
  77. package/dist/components/form/engine/optionActions.d.ts.map +1 -1
  78. package/dist/components/form/engine/optionActions.js +71 -1
  79. package/dist/components/form/engine/optionActions.js.map +1 -1
  80. package/dist/components/form/engine/optionsContext.d.ts +22 -0
  81. package/dist/components/form/engine/optionsContext.d.ts.map +1 -0
  82. package/dist/components/form/engine/optionsContext.js +20 -0
  83. package/dist/components/form/engine/optionsContext.js.map +1 -0
  84. package/dist/components/form/engine/readFirst.d.ts +42 -1
  85. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  86. package/dist/components/form/engine/readFirst.js +76 -8
  87. package/dist/components/form/engine/readFirst.js.map +1 -1
  88. package/dist/components/form/engine/rendererTypes.d.ts +42 -3
  89. package/dist/components/form/engine/rendererTypes.d.ts.map +1 -1
  90. package/dist/components/form/engine/rendererTypes.js +3 -1
  91. package/dist/components/form/engine/rendererTypes.js.map +1 -1
  92. package/dist/components/form/engine/rowFocus.d.ts +30 -0
  93. package/dist/components/form/engine/rowFocus.d.ts.map +1 -0
  94. package/dist/components/form/engine/rowFocus.js +93 -0
  95. package/dist/components/form/engine/rowFocus.js.map +1 -0
  96. package/dist/components/form/engine/rowMenuContext.d.ts +78 -0
  97. package/dist/components/form/engine/rowMenuContext.d.ts.map +1 -0
  98. package/dist/components/form/engine/rowMenuContext.js +103 -0
  99. package/dist/components/form/engine/rowMenuContext.js.map +1 -0
  100. package/dist/components/form/engine/rowOpenPicker.d.ts +27 -0
  101. package/dist/components/form/engine/rowOpenPicker.d.ts.map +1 -0
  102. package/dist/components/form/engine/rowOpenPicker.js +30 -0
  103. package/dist/components/form/engine/rowOpenPicker.js.map +1 -0
  104. package/dist/components/form/engine/typeChoices.d.ts +42 -0
  105. package/dist/components/form/engine/typeChoices.d.ts.map +1 -0
  106. package/dist/components/form/engine/typeChoices.js +33 -0
  107. package/dist/components/form/engine/typeChoices.js.map +1 -0
  108. package/dist/components/form/expressions/DpqlRendering.d.ts +26 -0
  109. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -0
  110. package/dist/components/form/expressions/DpqlRendering.js +53 -0
  111. package/dist/components/form/expressions/DpqlRendering.js.map +1 -0
  112. package/dist/components/form/expressions/ExpressionField.d.ts +7 -1
  113. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  114. package/dist/components/form/expressions/ExpressionField.js +203 -45
  115. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  116. package/dist/components/form/expressions/argumentPresence.d.ts +84 -0
  117. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -0
  118. package/dist/components/form/expressions/argumentPresence.js +217 -0
  119. package/dist/components/form/expressions/argumentPresence.js.map +1 -0
  120. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentLabel.js +9 -4
  122. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  123. package/dist/components/form/expressions/builder/index.d.ts +15 -2
  124. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  125. package/dist/components/form/expressions/builder/index.js +21 -65
  126. package/dist/components/form/expressions/builder/index.js.map +1 -1
  127. package/dist/components/form/expressions/builder/renderTemplate.d.ts +4 -1
  128. package/dist/components/form/expressions/builder/renderTemplate.d.ts.map +1 -1
  129. package/dist/components/form/expressions/builder/renderTemplate.js +10 -67
  130. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  131. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  132. package/dist/components/form/expressions/mockExpressions.js +8 -4
  133. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  134. package/dist/components/form/expressions/renderExpressionToText.d.ts +1 -1
  135. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  136. package/dist/components/form/expressions/renderExpressionToText.js +95 -19
  137. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  138. package/dist/components/form/expressions/types.d.ts +17 -2
  139. package/dist/components/form/expressions/types.d.ts.map +1 -1
  140. package/dist/components/form/expressions/useExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/useExpressions.js +5 -2
  142. package/dist/components/form/expressions/useExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/useRenderExpression.d.ts +7 -16
  144. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  145. package/dist/components/form/expressions/useRenderExpression.js +50 -126
  146. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  147. package/dist/components/form/fields/Field.d.ts +21 -0
  148. package/dist/components/form/fields/Field.d.ts.map +1 -1
  149. package/dist/components/form/fields/Field.js +54 -8
  150. package/dist/components/form/fields/Field.js.map +1 -1
  151. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +11 -1
  152. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  153. package/dist/components/form/fields/allowed-values/AllowedValues.js +52 -8
  154. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  155. package/dist/components/form/fields/auto/AutoFormField.d.ts +7 -1
  156. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  157. package/dist/components/form/fields/auto/AutoFormField.js +91 -28
  158. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  159. package/dist/components/form/fields/date/Date.d.ts +1 -1
  160. package/dist/components/form/fields/date/Date.d.ts.map +1 -1
  161. package/dist/components/form/fields/date/Date.js +16 -2
  162. package/dist/components/form/fields/date/Date.js.map +1 -1
  163. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  164. package/dist/components/form/fields/long-string/LongString.js +14 -2
  165. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  166. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  167. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +50 -4
  168. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  169. package/dist/components/form/fields/number/Number.d.ts +12 -1
  170. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  171. package/dist/components/form/fields/number/Number.js +6 -3
  172. package/dist/components/form/fields/number/Number.js.map +1 -1
  173. package/dist/components/form/fields/rich-text/RichText.d.ts +47 -2
  174. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  175. package/dist/components/form/fields/rich-text/RichText.js +153 -12
  176. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  177. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  178. package/dist/components/form/fields/select/Select.js +120 -20
  179. package/dist/components/form/fields/select/Select.js.map +1 -1
  180. package/dist/components/form/fields/select/SelectCollection.d.ts +166 -9
  181. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  182. package/dist/components/form/fields/select/SelectCollection.js +200 -7
  183. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  184. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +2 -1
  185. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  186. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +3 -2
  187. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  188. package/dist/components/form/fields/template/TemplateField.d.ts +34 -2
  189. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  190. package/dist/components/form/fields/template/TemplateField.js +606 -58
  191. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  192. package/dist/components/form/fields/template/TemplateText.d.ts +36 -0
  193. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -0
  194. package/dist/components/form/fields/template/TemplateText.js +80 -0
  195. package/dist/components/form/fields/template/TemplateText.js.map +1 -0
  196. package/dist/components/form/index.d.ts +2 -0
  197. package/dist/components/form/index.d.ts.map +1 -1
  198. package/dist/components/form/index.js +4 -0
  199. package/dist/components/form/index.js.map +1 -1
  200. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  201. package/dist/components/smartEditor/SmartEditor.js +29 -8
  202. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  203. package/dist/components/smartEditor/useLspSession.d.ts +5 -1
  204. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  205. package/dist/components/smartEditor/useLspSession.js +16 -2
  206. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  207. package/dist/components/supportTicket/TicketReplyBox.d.ts +8 -4
  208. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
  209. package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
  210. package/dist/helpers/common.d.ts.map +1 -1
  211. package/dist/helpers/common.js +7 -3
  212. package/dist/helpers/common.js.map +1 -1
  213. package/dist/helpers/dpqlDetection.d.ts +58 -0
  214. package/dist/helpers/dpqlDetection.d.ts.map +1 -0
  215. package/dist/helpers/dpqlDetection.js +164 -0
  216. package/dist/helpers/dpqlDetection.js.map +1 -0
  217. package/dist/helpers/optionUiTypes.d.ts +31 -3
  218. package/dist/helpers/optionUiTypes.d.ts.map +1 -1
  219. package/dist/helpers/optionUiTypes.js +36 -1
  220. package/dist/helpers/optionUiTypes.js.map +1 -1
  221. package/dist/helpers/options.d.ts +57 -0
  222. package/dist/helpers/options.d.ts.map +1 -1
  223. package/dist/helpers/options.js +97 -1
  224. package/dist/helpers/options.js.map +1 -1
  225. package/dist/helpers/templateItems.d.ts +47 -0
  226. package/dist/helpers/templateItems.d.ts.map +1 -0
  227. package/dist/helpers/templateItems.js +88 -0
  228. package/dist/helpers/templateItems.js.map +1 -0
  229. package/dist/helpers/templateText.d.ts +80 -0
  230. package/dist/helpers/templateText.d.ts.map +1 -0
  231. package/dist/helpers/templateText.js +291 -0
  232. package/dist/helpers/templateText.js.map +1 -0
  233. package/dist/helpers/templates.d.ts +30 -12
  234. package/dist/helpers/templates.d.ts.map +1 -1
  235. package/dist/helpers/templates.js +91 -33
  236. package/dist/helpers/templates.js.map +1 -1
  237. package/dist/helpers/validations.d.ts +35 -8
  238. package/dist/helpers/validations.d.ts.map +1 -1
  239. package/dist/helpers/validations.js +162 -25
  240. package/dist/helpers/validations.js.map +1 -1
  241. package/dist/hooks/useArgSchema.d.ts +2 -1
  242. package/dist/hooks/useArgSchema.d.ts.map +1 -1
  243. package/dist/hooks/useFetch/useFetch.d.ts +3 -1
  244. package/dist/hooks/useFetch/useFetch.d.ts.map +1 -1
  245. package/dist/hooks/useFetch/useFetch.js +47 -9
  246. package/dist/hooks/useFetch/useFetch.js.map +1 -1
  247. package/dist/hooks/useTemplates.d.ts +20 -0
  248. package/dist/hooks/useTemplates.d.ts.map +1 -1
  249. package/dist/hooks/useTemplates.js +34 -2
  250. package/dist/hooks/useTemplates.js.map +1 -1
  251. package/dist/index.d.ts +2 -1
  252. package/dist/index.d.ts.map +1 -1
  253. package/dist/index.js +5 -1
  254. package/dist/index.js.map +1 -1
  255. package/dist/utils/fetch.d.ts +151 -1
  256. package/dist/utils/fetch.d.ts.map +1 -1
  257. package/dist/utils/fetch.js +256 -44
  258. package/dist/utils/fetch.js.map +1 -1
  259. package/dist/utils/lspClient.d.ts +6 -0
  260. package/dist/utils/lspClient.d.ts.map +1 -1
  261. package/dist/utils/lspClient.js +62 -11
  262. package/dist/utils/lspClient.js.map +1 -1
  263. package/dist/utils/websocket.d.ts +6 -0
  264. package/dist/utils/websocket.d.ts.map +1 -1
  265. package/dist/utils/websocket.js +15 -7
  266. package/dist/utils/websocket.js.map +1 -1
  267. package/package.json +10 -6
  268. package/src/components/composer/Composer.tsx +7 -2
  269. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +3 -119
  270. package/src/components/dpqlEditor/DpqlEditor.tsx +5 -2
  271. package/src/components/dpqlEditor/dpqlHelpers.ts +20 -1
  272. package/src/components/dpqlEditor/dpqlProbe.ts +165 -0
  273. package/src/components/dpqlEditor/dpqlTags.ts +13 -0
  274. package/src/components/dpqlEditor/index.ts +4 -0
  275. package/src/components/dpqlEditor/types.ts +38 -2
  276. package/src/components/dpqlEditor/useDpqlProbe.ts +33 -0
  277. package/src/components/dpqlEditor/useDpqlSession.ts +20 -4
  278. package/src/components/form/engine/CompactRow.tsx +487 -160
  279. package/src/components/form/engine/CompactToolbar.tsx +10 -3
  280. package/src/components/form/engine/FormEngine.stories.tsx +1269 -211
  281. package/src/components/form/engine/FormEngine.tsx +922 -270
  282. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +331 -0
  283. package/src/components/form/engine/FormFieldsSkeleton.tsx +77 -0
  284. package/src/components/form/engine/OptionFieldMessages.tsx +300 -14
  285. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +94 -3
  286. package/src/components/form/engine/compactRowContext.ts +15 -6
  287. package/src/components/form/engine/compactRowStyles.ts +56 -2
  288. package/src/components/form/engine/compactToolbarContext.ts +1 -1
  289. package/src/components/form/engine/optionActions.ts +89 -1
  290. package/src/components/form/engine/optionsContext.ts +24 -0
  291. package/src/components/form/engine/readFirst.ts +88 -8
  292. package/src/components/form/engine/rendererTypes.ts +48 -4
  293. package/src/components/form/engine/rowFocus.ts +101 -0
  294. package/src/components/form/engine/rowMenuContext.ts +159 -0
  295. package/src/components/form/engine/rowOpenPicker.ts +27 -0
  296. package/src/components/form/engine/typeChoices.ts +63 -0
  297. package/src/components/form/expressions/DpqlRendering.tsx +85 -0
  298. package/src/components/form/expressions/ExpressionField.stories.tsx +826 -48
  299. package/src/components/form/expressions/ExpressionField.tsx +269 -55
  300. package/src/components/form/expressions/argumentPresence.ts +213 -0
  301. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +38 -21
  302. package/src/components/form/expressions/builder/argumentLabel.tsx +10 -4
  303. package/src/components/form/expressions/builder/index.tsx +39 -81
  304. package/src/components/form/expressions/builder/renderTemplate.tsx +23 -56
  305. package/src/components/form/expressions/dpqlMockLanguage.ts +565 -0
  306. package/src/components/form/expressions/dpqlMockLsp.ts +109 -83
  307. package/src/components/form/expressions/mockExpressions.ts +8 -4
  308. package/src/components/form/expressions/renderExpressionToText.ts +112 -22
  309. package/src/components/form/expressions/types.ts +17 -2
  310. package/src/components/form/expressions/useExpressions.ts +5 -1
  311. package/src/components/form/expressions/useRenderExpression.ts +43 -127
  312. package/src/components/form/fields/Field.tsx +102 -20
  313. package/src/components/form/fields/allowed-values/AllowedValues.tsx +106 -44
  314. package/src/components/form/fields/auto/AutoFormField.stories.tsx +85 -18
  315. package/src/components/form/fields/auto/AutoFormField.tsx +97 -21
  316. package/src/components/form/fields/date/Date.tsx +17 -1
  317. package/src/components/form/fields/long-string/LongString.tsx +15 -3
  318. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +65 -6
  319. package/src/components/form/fields/number/Number.tsx +25 -0
  320. package/src/components/form/fields/rich-text/RichText.tsx +248 -30
  321. package/src/components/form/fields/select/Select.stories.tsx +392 -0
  322. package/src/components/form/fields/select/Select.tsx +164 -27
  323. package/src/components/form/fields/select/SelectCollection.tsx +350 -6
  324. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +4 -2
  325. package/src/components/form/fields/template/TemplateField.stories.tsx +93 -14
  326. package/src/components/form/fields/template/TemplateField.tsx +825 -131
  327. package/src/components/form/fields/template/TemplateText.tsx +115 -0
  328. package/src/components/form/index.tsx +4 -0
  329. package/src/components/log/Log.stories.tsx +2 -1
  330. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +3 -3
  331. package/src/components/smartEditor/SmartEditor.tsx +41 -9
  332. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +52 -3
  333. package/src/components/smartEditor/useLspSession.ts +21 -3
  334. package/src/components/supportTicket/TicketReplyBox.tsx +8 -4
  335. package/src/components/ticketThread/TicketThread.stories.tsx +1 -0
  336. package/src/helpers/common.ts +7 -3
  337. package/src/helpers/dpqlDetection.ts +209 -0
  338. package/src/helpers/optionUiTypes.ts +38 -0
  339. package/src/helpers/options.ts +96 -0
  340. package/src/helpers/templateItems.ts +81 -0
  341. package/src/helpers/templateText.ts +350 -0
  342. package/src/helpers/templates.ts +94 -41
  343. package/src/helpers/validations.ts +203 -51
  344. package/src/hooks/useFetch/useFetch.stories.tsx +6 -5
  345. package/src/hooks/useFetch/useFetch.tsx +53 -7
  346. package/src/hooks/useStorage/useStorage.stories.tsx +2 -1
  347. package/src/hooks/useTemplates.ts +41 -0
  348. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +2 -1
  349. package/src/index.tsx +14 -1
  350. package/src/stores/currentUser/currentUser.stories.tsx +2 -1
  351. package/src/stories/storyNetwork.ts +92 -0
  352. package/src/utils/fetch.ts +311 -21
  353. package/src/utils/lspClient.ts +68 -11
  354. package/src/utils/websocket.ts +20 -9
  355. package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts +0 -73
  356. package/dist/components/form/engine/__fixtures__/basicFormOptions.d.ts.map +0 -1
  357. package/dist/components/form/engine/__fixtures__/basicFormOptions.js +0 -317
  358. package/dist/components/form/engine/__fixtures__/basicFormOptions.js.map +0 -1
  359. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts +0 -41
  360. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.d.ts.map +0 -1
  361. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js +0 -45
  362. package/dist/components/form/engine/__fixtures__/fieldChromeOptions.js.map +0 -1
  363. package/dist/components/form/expressions/dpqlMockLsp.d.ts +0 -3
  364. package/dist/components/form/expressions/dpqlMockLsp.d.ts.map +0 -1
  365. package/dist/components/form/expressions/dpqlMockLsp.js +0 -91
  366. package/dist/components/form/expressions/dpqlMockLsp.js.map +0 -1
  367. package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts +0 -2
  368. package/dist/components/form/fields/template/__fixtures__/longExampleValue.d.ts.map +0 -1
  369. package/dist/components/form/fields/template/__fixtures__/longExampleValue.js +0 -9
  370. package/dist/components/form/fields/template/__fixtures__/longExampleValue.js.map +0 -1
  371. package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts +0 -55
  372. package/dist/components/smartEditor/__fixtures__/mockLspServer.d.ts.map +0 -1
  373. package/dist/components/smartEditor/__fixtures__/mockLspServer.js +0 -126
  374. package/dist/components/smartEditor/__fixtures__/mockLspServer.js.map +0 -1
  375. package/dist/stories/Data/fileFieldArgSchema.json +0 -86
@@ -8,7 +8,6 @@ import React from 'react';
8
8
  import { IValidationResult } from '../../../helpers/validations';
9
9
  import { ITemplateFieldProps } from '../fields/template/TemplateField';
10
10
  import { TCodePreviewRenderer } from './compactRowContext';
11
- import { IConditionalFieldMessage } from './OptionFieldMessages';
12
11
  import { TMarkdownRenderer } from '../../Description/markdownRendererContext';
13
12
  /** The compact form's three status boxes. */
14
13
  export type TFormEngineBoxKey = 'attention' | 'set' | 'optional';
@@ -35,10 +34,25 @@ export type TOperatorValue = TQorusFormOperatorValue;
35
34
  * either, the message is static and always shown, which is what every existing
36
35
  * consumer gets.
37
36
  */
38
- export interface IOptionFieldMessage extends IQorusFormFieldMessage, Pick<IConditionalFieldMessage, 'when' | 'unless'> {
39
- }
40
- export type IOptionsSchemaArg = TQorusFormFieldSchema;
41
- export interface IOptionsSchema extends IQorusFormSchema {
37
+ export type IOptionFieldMessage = IQorusFormFieldMessage;
38
+ /** `T` without `K`, member by member — `Omit` on a union collapses the union. */
39
+ type TDistributiveOmit<T, K extends PropertyKey> = T extends unknown ? Omit<T, K> : never;
40
+ /**
41
+ * One field of a form's schema: the shared descriptor, plus what this engine
42
+ * reads that the shared type does not carry — conditional `messages`, and
43
+ * `absorb_fields`. Declared, so a descriptor using them is checked rather than
44
+ * cast; still assignable wherever the shared descriptor is expected.
45
+ */
46
+ export type IOptionsSchemaArg = TDistributiveOmit<TQorusFormFieldSchema, 'messages'> & {
47
+ messages?: IOptionFieldMessage[];
48
+ /**
49
+ * Siblings this field renders inside its own editor instead of on rows of
50
+ * their own — a code editor and its language, say.
51
+ */
52
+ absorb_fields?: string[];
53
+ };
54
+ export interface IOptionsSchema {
55
+ [optionName: string]: IOptionsSchemaArg;
42
56
  }
43
57
  export interface IOperator extends IQorusFormOperator {
44
58
  }
@@ -59,6 +73,34 @@ export interface IFormValidityData {
59
73
  fields: IFormFieldValidityData[];
60
74
  invalidFields: IFormFieldValidityData[];
61
75
  }
76
+ /**
77
+ * The inheritance bag ONE field forwards to any `arg_schema` sub-form it hosts:
78
+ * whatever the ancestor chain passed down, plus whatever this field's own
79
+ * `inherit_props` resolves to.
80
+ *
81
+ * Written as a function with a stable answer because it is a PROP, and a prop
82
+ * that is a new object on every render re-renders the field that receives it
83
+ * every time this form renders — for most fields, forever, over a value that
84
+ * never changed. It showed up in the console as `Template field kind Updated
85
+ * because: {inheritedFromParent}` repeating on a form nobody was touching:
86
+ * `kind` declares no `inherit_props` at all, so the bag it was handed was
87
+ * `{ ...(undefined ?? {}) }` — a fresh empty object each time, unequal to the
88
+ * last one, and `TemplateField` is memoised precisely so it does not re-render
89
+ * on a prop that did not change.
90
+ *
91
+ * So a field with nothing of its own to add forwards the bag it was HANDED,
92
+ * unchanged and unwrapped, and a form with no inherited scope at all forwards
93
+ * one shared frozen object rather than minting one per field per render.
94
+ *
95
+ * Mirrored in qorus-ide's `systemOptions.tsx` (which grew this treatment
96
+ * first); per the CLAUDE.md rule there, the forwarding logic is kept identical
97
+ * in both until FormEngine replaces that renderer.
98
+ *
99
+ * @param inheritProps the field's `inherit_props` map, if it declares one
100
+ * @param availableOptions this form's fields, where a sibling's value is read
101
+ * @param inheritedFromParent the bag threaded in from an outer form
102
+ */
103
+ export declare const inheritedScopeFor: (inheritProps: Record<string, string> | undefined, availableOptions: TQorusForm | undefined, inheritedFromParent: Record<string, unknown> | undefined) => Record<string, unknown>;
62
104
  export declare const getType: (type?: TQorusType | TQorusType[], operators?: IOperatorsSchema, operator?: TOperatorValue) => TQorusType;
63
105
  /** Re-exported from `helpers/common` so existing importers keep working; it
64
106
  * lives there because `helpers/validations` needs it and cannot import this
@@ -70,17 +112,83 @@ export { fixOperatorValue } from '../../../helpers/common';
70
112
  * consumer's injected editors are recognised too. See `./rendererTypes`.
71
113
  */
72
114
  type TRendererOnlyCheck = (type?: TQorusType | TQorusType[]) => boolean;
115
+ /**
116
+ * Which type an option resolves to — the schema's, or the one stored on the
117
+ * value.
118
+ *
119
+ * Exported because this single decision is what every option field is rendered
120
+ * with, and what an expression's return type is checked against. It deserves
121
+ * to be assertable without standing up a form.
122
+ */
123
+ export declare const getOptionFieldStorageType: (optionName: string, fieldType: TQorusType | TQorusType[] | undefined, schema?: IQorusFormSchema, operators?: IOperatorsSchema, operatorData?: TOperatorValue, isRendererOnly?: TRendererOnlyCheck, isExpression?: boolean) => TQorusType;
73
124
  export declare const hasRequiredOptions: (options?: IQorusFormSchema) => boolean;
74
- export declare const OptionsContext: import("use-context-selector").Context<{
75
- schema?: IQorusFormSchema;
76
- value?: TQorusForm;
77
- }>;
125
+ export { OptionsContext } from './optionsContext';
126
+ export type { IOptionsContext } from './optionsContext';
78
127
  export declare const fixOptions: (value?: TQorusForm | TQorusFlatForm, options?: IQorusFormSchema, operators?: IOperatorsSchema, isRendererOnly?: TRendererOnlyCheck) => TQorusForm;
128
+ /**
129
+ * Does this rebuild say anything the parent does not already hold?
130
+ *
131
+ * `false` means the rebuild is a MIRROR: `fixOptions` found no default to
132
+ * materialise, so the result repeats the `value` the parent handed down. The
133
+ * compare is empty-normalized because `fixOptions` round-trips a required-empty
134
+ * field between `{ value: '' }` and no `value` key, and that cosmetic
135
+ * difference would otherwise read as new information forever.
136
+ */
137
+ export declare const isMirrorOfValue: (fixedValue: TQorusForm | TQorusFlatForm | undefined, value: TQorusForm | TQorusFlatForm | undefined) => boolean;
138
+ /**
139
+ * What this rebuild lets the form agree with the parent on, if anything.
140
+ *
141
+ * Returns the rebuild when it mirrors `value`, and `undefined` when it
142
+ * contributed something the parent has yet to learn.
143
+ *
144
+ * Adopting the parent's value IS agreement, and saying so matters as much as
145
+ * staying quiet about it. The sync-down skips only when the parent echoed what
146
+ * this form last sent; if adopting a value never updates that record, it points
147
+ * at an older state forever, the skip can never fire again, and the form
148
+ * rebuilds on every single change. Holding the mirror back WITHOUT recording
149
+ * the agreement was measured making the starvation worse, not better — 8 s
150
+ * became a 45 s timeout — which is why the two belong together.
151
+ */
152
+ export declare const agreementFromRebuild: (fixedValue: TQorusForm | TQorusFlatForm | undefined, value: TQorusForm | TQorusFlatForm | undefined) => TQorusForm | TQorusFlatForm | undefined;
153
+ /** The state the emit decision is made against. */
154
+ export interface IEmitDecision {
155
+ /** The form's own copy of the value, as it stands now. */
156
+ localValue: TQorusForm | TQorusFlatForm | undefined;
157
+ /** The `value` prop, read at the moment the decision is made. */
158
+ value: TQorusForm | TQorusFlatForm | undefined;
159
+ /**
160
+ * The last rebuild that mirrored `value` without adding anything, if the most
161
+ * recent one did. `undefined` when the last rebuild contributed something.
162
+ */
163
+ mirroredValue: TQorusForm | TQorusFlatForm | undefined;
164
+ }
165
+ /**
166
+ * Should the form report `localValue` to its parent as an answer?
167
+ *
168
+ * Extracted and pure because the situation it exists for cannot be reproduced
169
+ * through a rendered form: it needs the emit to be decided against a `value`
170
+ * NEWER than the `localValue` built from it, which only happens when two
171
+ * components' effects land in one React commit — and a test renderer flushes
172
+ * effects between updates, so the two never fall out of step. The states below
173
+ * were recorded from a live instrumented run instead, and this is what makes
174
+ * them assertable.
175
+ *
176
+ * Two ways the answer is no:
177
+ *
178
+ * 1. `localValue` is a mirror — a rebuild of the parent's own value that added
179
+ * nothing. Repeating it back is not an answer. **Checked first**, because
180
+ * the comparison in (2) reads whatever `value` has become by now, which,
181
+ * when a nested engine shares the parent value, is already that engine's
182
+ * newer write; comparing against it would find a difference this form never
183
+ * made and emit the older mirror over the newer write. That is the loop.
184
+ * 2. `localValue` already equals `value` — there is nothing to report.
185
+ */
186
+ export declare const shouldEmitLocalValue: ({ localValue, value, mirroredValue, }: IEmitDecision) => boolean;
79
187
  export declare const flattenOptions: (options: TQorusForm) => TQorusFlatForm;
80
188
  export declare const getTypeAndCanBeNull: (type?: TQorusType | TQorusType[], allowed_values?: any[], operatorData?: TOperatorValue, operators?: IOperatorsSchema) => {
81
189
  type: TQorusType;
82
190
  defaultType: TQorusType;
83
- defaultInternalType: "string" | "number" | "boolean" | "function" | "type" | "file" | "data" | "date" | "email" | "range" | "url" | "group" | "list" | "step" | "richtext" | "fsm" | "errors" | "class" | "code-editor" | "processor-mappings" | "tool-catalog" | "mapper" | "workflow" | "service" | "job" | "connection" | "constant" | "mapper-code" | "queue" | "pipeline" | "sla" | "value-map" | "qog" | "ai-collection" | "ai-endpoint" | "ai-guardrail" | "binary" | "long-string" | "enum" | "int" | "integer" | "float" | "free-list" | "hash" | "rgbcolor" | "free-hash" | "null" | "nothing" | "bool" | "data-provider" | "context";
191
+ defaultInternalType: "string" | "number" | "boolean" | "function" | "type" | "file" | "data" | "date" | "email" | "range" | "url" | "group" | "list" | "step" | "richtext" | "mapper" | "workflow" | "service" | "job" | "connection" | "constant" | "class" | "errors" | "fsm" | "mapper-code" | "queue" | "pipeline" | "sla" | "value-map" | "qog" | "ai-collection" | "ai-endpoint" | "ai-guardrail" | "ai-knowledge-profile" | "ai-solution-profile" | "alertrule" | "alertsilence" | "api-schema" | "auth-profile" | "business-process" | "config-item-values" | "event" | "installed-release" | "ml-model" | "release-config" | "release-script" | "schema" | "schema-script" | "test" | "test-script" | "binary" | "long-string" | "enum" | "select-string" | "file-as-string" | "int" | "integer" | "float" | "free-list" | "select-array" | "multi-select" | "hash" | "rgbcolor" | "free-hash" | "null" | "nothing" | "bool" | "data-provider" | "context" | "processor-mappings" | "tool-catalog" | "code-editor";
84
192
  canBeNull: boolean;
85
193
  };
86
194
  /** Display metadata for a read-first group, keyed by the raw `group` string;
@@ -95,7 +203,7 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
95
203
  name: string;
96
204
  uniqueName?: string;
97
205
  value?: TQorusForm | TQorusFlatForm;
98
- options?: IQorusFormSchema;
206
+ options?: IOptionsSchema;
99
207
  onChange?: (name: string, value?: TQorusForm, meta?: IOptionsOnChangeMeta) => void;
100
208
  /**
101
209
  * `'immediate'` (default): edits flow out via the debounced `onChange`.
@@ -132,7 +240,28 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
132
240
  onOptionsLoaded?: (options: IQorusFormSchema) => void;
133
241
  recordRequiresSearchOptions?: boolean;
134
242
  readOnly?: boolean;
243
+ /**
244
+ * What a click on a READ-ONLY row does, when there is somewhere to send it.
245
+ *
246
+ * A read-only row opens nothing by default — it shows everything it has and
247
+ * answers a click with silence, which is right when the form is the only
248
+ * place the value exists. Where the same field IS editable somewhere else,
249
+ * that silence is a dead end: the reader clicking a value they want to
250
+ * change has said exactly what they want.
251
+ *
252
+ * Given this, each row becomes the way in to that place and announces it —
253
+ * it takes a button's role, keyboard handling and cursor. Omit it and
254
+ * nothing changes.
255
+ */
256
+ onReadOnlyActivate?: (optionName: string) => void;
135
257
  allowTemplates?: boolean;
258
+ /**
259
+ * The form's SHARED template vocabulary — config items, system properties —
260
+ * offered to every field that supports templates.
261
+ *
262
+ * A field may also declare `templates` of its own in the schema, and that
263
+ * narrower list wins for that field: see {@link TFieldWithOwnTemplates}.
264
+ */
136
265
  stringTemplates?: IReqoreFormTemplates;
137
266
  /** Opt-in: fetch global templates from `system/getContextData` for this context. */
138
267
  interfaceContext?: string;
@@ -207,13 +336,78 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
207
336
  * the reader is choosing WHICH to open rather than reading this one, e.g. a
208
337
  * template's per-action option forms stacked in a drawer.
209
338
  *
210
- * Two escapes override this and are not negotiable: a box always opens while
211
- * a search query is running (`ReqorePanel` unmounts collapsed content, so a
212
- * match inside a closed box would be unreachable), and the Optional box stays
213
- * open when every row is optional, because collapsing it would render a card
214
- * that looks empty and broken.
339
+ * One escape is not negotiable: a box always opens while a search query is
340
+ * running (`ReqorePanel` unmounts collapsed content, so a match inside a
341
+ * closed box would be unreachable).
342
+ *
343
+ * A second applies only by DEFAULT: the Optional box stays open when every
344
+ * row is optional, because a form that collapsed its only box would render a
345
+ * card that looks empty and broken. Passing this prop explicitly waives it —
346
+ * a host that supplies its own heading and explanation around the form (a
347
+ * run-options panel, say) has already told the reader what the card is, and
348
+ * asked for the settings to start folded away.
215
349
  */
216
350
  compactCollapsedGroups?: TFormEngineBoxKey[];
351
+ /**
352
+ * Compact mode only: rename the status boxes.
353
+ *
354
+ * The three are `Needs attention`, `Set` and `Optional`, which read correctly
355
+ * when the form is the page's subject. Inside a host that already named the
356
+ * subject — a panel headed "Change a setting for this run" — a bare
357
+ * `Optional` names a category rather than the things in it, and
358
+ * `Optional settings` is what the reader is looking at. Only the labels
359
+ * change; bucketing, icons and intents are untouched.
360
+ */
361
+ compactBoxLabels?: Partial<Record<TFormEngineBoxKey, string>>;
362
+ /**
363
+ * Compact mode only: the three status-box headers stay pinned to the top of
364
+ * whatever scrolls while their own box is in view. Default `true`.
365
+ *
366
+ * A box header is the only thing that says which bucket a row is in — `Set`,
367
+ * `Needs attention`, `Optional`. On a form long enough to scroll it leaves
368
+ * the screen, and every row below it then reads as an undifferentiated list:
369
+ * the reader deep inside `Optional` has no way to tell it from `Set` except
370
+ * by scrolling back. Pinning the header is what keeps the answer on screen.
371
+ *
372
+ * ALL THREE behave identically, deliberately. They are one control rendered
373
+ * three times, differing only in label, tint and icon; a reader who has
374
+ * scrolled into the Optional box needs to know that exactly as much as one
375
+ * who has scrolled into Set, and a rule that pinned only some of them would
376
+ * make the absence of a pinned header mean two different things (this box has
377
+ * no header vs. you are above every box).
378
+ *
379
+ * A header can never outlive its own box: `position: sticky` is bounded by
380
+ * its containing block, so each header unpins as its box scrolls away and at
381
+ * most ONE box header is ever pinned at a time. The pin costs one header's
382
+ * height, not three.
383
+ *
384
+ * Off by construction for a nested (`arg_schema`) sub-form — it sits inside
385
+ * the parent form's card and owns no scroll context to pin against.
386
+ *
387
+ * On a NARROW form this also takes the pin off the form's own toolbar, so the
388
+ * two never cost a third of a phone's screen between them — see the note at
389
+ * the panel's `stickyHeader`.
390
+ *
391
+ * Turn it off where the form is one item in a scrolling LIST of forms: there
392
+ * the reader is choosing which form to read, and a box header pinned from the
393
+ * item they have scrolled past is chrome belonging to something they have
394
+ * left.
395
+ */
396
+ compactStickyBoxHeaders?: boolean;
397
+ /**
398
+ * Compact mode only: how many pixels of the HOST's own sticky chrome sit
399
+ * above this form, inside the same scroll container.
400
+ *
401
+ * Sticky offsets do not compose by themselves — every pinned thing resolves
402
+ * `top` against the same scrollport, so two of them with the same offset land
403
+ * on top of each other. A host that pins a bar of its own (a page header
404
+ * carrying a name and a Run control, say) measures it and passes the height
405
+ * here; the form then pins its toolbar below that bar, and its box headers
406
+ * below the toolbar, instead of underneath both.
407
+ *
408
+ * Default `0` — the form is the topmost pinned thing in its scroller.
409
+ */
410
+ compactStickyOffset?: number;
217
411
  /**
218
412
  * Compact mode only: which parts of the form's toolbar to show. `true`
219
413
  * (default) shows all of it; `false` hides the whole thing.
@@ -261,6 +455,36 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
261
455
  * a consumer injecting many actions can never blow out the row.
262
456
  */
263
457
  optionActionsCollapse?: 'auto' | 'always' | 'never';
458
+ /**
459
+ * The HOST is still loading something this form needs.
460
+ *
461
+ * Declared because it was already read (`rest.skeleton`) and honoured by the
462
+ * loading gate, but undeclared props are invisible to the people who need
463
+ * them — and the reason to reach for this is not obvious.
464
+ *
465
+ * A host that resolves anything before it can render a form — an option list
466
+ * fetched by `get_message`, a schema id resolved over the wire — has a wait of
467
+ * its own that ends just as this component's begins. Drawing its own
468
+ * placeholder for that first half and then handing over produces TWO
469
+ * placeholders in series for one load, from two different components: the DOM
470
+ * node is replaced, the geometry can differ, and the page relayouts in the
471
+ * middle of waiting. Measured on the Qorus alert rule, whose three sections
472
+ * each did this — six placeholder mounts where three would do.
473
+ *
474
+ * Passing the host's own wait in here instead makes ONE component own the
475
+ * whole wait, from the host's first fetch to this form's last, with one
476
+ * placeholder and one DOM node.
477
+ */
478
+ skeleton?: boolean;
479
+ /**
480
+ * What the HOST is waiting for, when it hands its wait down via `skeleton`.
481
+ *
482
+ * Without it every host wait reads as the same word and the reading stops at
483
+ * the package boundary — measured on the live alert rule, three sections all
484
+ * reported `host` and the next step was guessing which of the host's own five
485
+ * conditions had fired. Surfaced as `data-wait` on the placeholder.
486
+ */
487
+ skeletonReason?: string;
264
488
  /**
265
489
  * SEAM (reqraft): consumer-injected field editors for types reqraft doesn't
266
490
  * ship (IDE domain fields). Keyed by field `type`/`ui_type`; forwarded through
@@ -297,6 +521,28 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
297
521
  * consumer's new editor no longer needs a reqraft release to be handled.
298
522
  */
299
523
  rendererOnlyUiTypes?: string[];
524
+ /**
525
+ * The `ui_type` names whose own editor renders templates as chips INLINE.
526
+ *
527
+ * For these the template selector is suppressed and the field's editor is
528
+ * shown instead — the selector would replace a control the author can type in
529
+ * with one they can only pick from. Merged with reqraft's built-in list
530
+ * (`richtext`), the same way `rendererOnlyUiTypes` is.
531
+ */
532
+ templateAwareUiTypes?: string[];
533
+ /**
534
+ * Extra `ui_type` names that mean "a value of any type", for the purpose of
535
+ * offering the per-type choices in the row's menu.
536
+ *
537
+ * A field that pins no concrete type offers "enter a value of type X" for
538
+ * each type the form knows. That was gated on the schema saying
539
+ * `ui_type: 'any'` alone, which misses two cases: an option that declares its
540
+ * untypedness as `type: 'auto'` and carries no `ui_type` at all (the server
541
+ * spells an assertion's Expected Value exactly that way), and an option whose
542
+ * `ui_type` is a HOST's own untyped editor. Merged with reqraft's built-ins
543
+ * (`any`, `auto`), the same way `templateAwareUiTypes` is.
544
+ */
545
+ anyLikeUiTypes?: string[];
300
546
  /**
301
547
  * Bag of values forwarded from an outer FormEngine scope, used as a
302
548
  * fallback when a field's `inherit_props` names a sibling that isn't in
@@ -354,12 +600,17 @@ export interface IFormEngineProps extends Omit<IReqoreCollectionProps, 'onChange
354
600
  * for the pane to exist at all — so a pasted or reloaded link lands on a
355
601
  * collapsed form.
356
602
  *
357
- * Applied once, on the first render where the schema has rows, so an
358
- * async-loaded schema is covered. It never re-expands a row the user has
359
- * since collapsed, and it does not participate in `expandMode: 'single'`
360
- * accordion collapsing — the caller is naming a starting point, not
361
- * driving the state. Only a remount re-arms it. No-op in classic
362
- * (non-compact) mode.
603
+ * Applied once, on the first render that actually CONTAINS one of the named
604
+ * rows — not merely the first render with any rows — so a schema arriving in
605
+ * pieces still gets its address applied rather than spending the one shot on
606
+ * a form the field had not reached yet.
607
+ *
608
+ * It never re-expands a row the user has since collapsed, and it does not
609
+ * participate in `expandMode: 'single'` accordion collapsing — the caller is
610
+ * naming a starting point, not driving the state. That holds against the
611
+ * engine's own openers too: `expandFirstRequired` / `autoFocusFirstRequired`
612
+ * open their target ALONGSIDE these rows in single mode instead of replacing
613
+ * them. Only a remount re-arms it. No-op in classic (non-compact) mode.
363
614
  */
364
615
  initialExpandedOptions?: string[];
365
616
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"FormEngine.d.ts","sourceRoot":"","sources":["../../../../src/components/form/engine/FormEngine.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormEngine.d.ts","sourceRoot":"","sources":["../../../../src/components/form/engine/FormEngine.tsx"],"names":[],"mappings":"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"}