@qoretechnologies/reqraft 0.10.66-pr.145.gcb1e59d → 0.10.66

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 (913) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +420 -63
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +94 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +336 -243
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +20 -57
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +67 -59
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +606 -409
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts +2 -18
  68. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  69. package/dist/components/form/engine/OptionFieldMessages.js +28 -25
  70. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  72. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  73. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js +11 -31
  77. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts +30 -6
  79. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  80. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  81. package/dist/components/form/engine/compactRowStyles.d.ts +56 -31
  82. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  83. package/dist/components/form/engine/compactRowStyles.js +121 -110
  84. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  85. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  86. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  87. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  88. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  89. package/dist/components/form/engine/compactToolbarContext.d.ts +0 -3
  90. package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
  91. package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
  92. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  93. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  94. package/dist/components/form/engine/inheritProps.js +43 -0
  95. package/dist/components/form/engine/inheritProps.js.map +1 -0
  96. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  97. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  98. package/dist/components/form/engine/operatorSummary.js +35 -0
  99. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  100. package/dist/components/form/engine/readFirst.d.ts +26 -22
  101. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  102. package/dist/components/form/engine/readFirst.js +79 -115
  103. package/dist/components/form/engine/readFirst.js.map +1 -1
  104. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  105. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  106. package/dist/components/form/engine/readFirstColors.js +51 -0
  107. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  108. package/dist/components/form/engine/rowFocus.d.ts +3 -9
  109. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  110. package/dist/components/form/engine/rowFocus.js +30 -19
  111. package/dist/components/form/engine/rowFocus.js.map +1 -1
  112. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  113. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  114. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  115. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  116. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  117. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  118. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  119. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  120. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  121. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  123. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  124. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  125. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  126. package/dist/components/form/engine/variants/variantParts.js +25 -17
  127. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  128. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  129. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  130. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  131. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  132. package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
  133. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  134. package/dist/components/form/expressions/ExpressionField.js +536 -114
  135. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  136. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  137. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  138. package/dist/components/form/expressions/argumentPresence.js +16 -1
  139. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  141. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  142. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  144. package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
  145. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  146. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  147. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  148. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  149. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
  150. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  151. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
  152. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  153. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  154. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  155. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
  156. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  157. package/dist/components/form/expressions/builder/index.d.ts +34 -2
  158. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  159. package/dist/components/form/expressions/builder/index.js +170 -80
  160. package/dist/components/form/expressions/builder/index.js.map +1 -1
  161. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  162. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  163. package/dist/components/form/expressions/builder/item.js +19 -5
  164. package/dist/components/form/expressions/builder/item.js.map +1 -1
  165. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  166. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  167. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  168. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  169. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  170. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  171. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  172. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  173. package/dist/components/form/expressions/expressionOperands.js +97 -0
  174. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  175. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  176. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  177. package/dist/components/form/expressions/fieldPath.js +152 -0
  178. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  179. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  180. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  181. package/dist/components/form/expressions/loneValue.js +33 -0
  182. package/dist/components/form/expressions/loneValue.js.map +1 -0
  183. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  184. package/dist/components/form/expressions/mockExpressions.js +22 -5
  185. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  186. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  187. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  188. package/dist/components/form/expressions/renderExpressionToText.js +37 -25
  189. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  190. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  191. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  192. package/dist/components/form/expressions/textOfExpression.js +49 -0
  193. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  194. package/dist/components/form/expressions/types.d.ts +12 -0
  195. package/dist/components/form/expressions/types.d.ts.map +1 -1
  196. package/dist/components/form/expressions/types.js +6 -1
  197. package/dist/components/form/expressions/types.js.map +1 -1
  198. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  199. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  200. package/dist/components/form/expressions/useExpressionType.js +181 -0
  201. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  202. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  203. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  204. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  205. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  206. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  207. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  208. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  209. package/dist/components/form/fields/Field.d.ts.map +1 -1
  210. package/dist/components/form/fields/Field.js +39 -18
  211. package/dist/components/form/fields/Field.js.map +1 -1
  212. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +0 -7
  213. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  214. package/dist/components/form/fields/allowed-values/AllowedValues.js +46 -35
  215. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  216. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  217. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  218. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  219. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  220. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  221. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  222. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  223. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  224. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  225. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  226. package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
  227. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  228. package/dist/components/form/fields/auto/AutoFormField.js +123 -79
  229. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  230. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  231. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  232. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  233. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  234. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  235. package/dist/components/form/fields/binary/Binary.js +23 -3
  236. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  237. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  238. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  239. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  240. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  241. package/dist/components/form/fields/color/Color.d.ts +103 -16
  242. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  243. package/dist/components/form/fields/color/Color.js +616 -16
  244. package/dist/components/form/fields/color/Color.js.map +1 -1
  245. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  246. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  247. package/dist/components/form/fields/emittedValues.js +24 -1
  248. package/dist/components/form/fields/emittedValues.js.map +1 -1
  249. package/dist/components/form/fields/file/File.d.ts +1 -1
  250. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  251. package/dist/components/form/fields/file/File.js +4 -2
  252. package/dist/components/form/fields/file/File.js.map +1 -1
  253. package/dist/components/form/fields/long-string/LongString.d.ts +1 -7
  254. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  255. package/dist/components/form/fields/long-string/LongString.js +30 -13
  256. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  257. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  258. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  259. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +10 -7
  260. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  261. package/dist/components/form/fields/number/Number.d.ts +7 -4
  262. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  263. package/dist/components/form/fields/number/Number.js +45 -18
  264. package/dist/components/form/fields/number/Number.js.map +1 -1
  265. package/dist/components/form/fields/object/Object.d.ts +1 -1
  266. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  267. package/dist/components/form/fields/object/Object.js +4 -2
  268. package/dist/components/form/fields/object/Object.js.map +1 -1
  269. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  270. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  271. package/dist/components/form/fields/pendingEdit.js +79 -0
  272. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  273. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  274. package/dist/components/form/fields/radio-group/RadioGroup.js +8 -13
  275. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  276. package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
  277. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  278. package/dist/components/form/fields/rich-text/RichText.js +426 -91
  279. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  280. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  281. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  282. package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
  283. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  284. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  285. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  286. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  287. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  288. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  289. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  290. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  291. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  292. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  293. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  294. package/dist/components/form/fields/schema-definition/index.js +8 -4
  295. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  296. package/dist/components/form/fields/select/Select.d.ts +10 -1
  297. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  298. package/dist/components/form/fields/select/Select.js +28 -14
  299. package/dist/components/form/fields/select/Select.js.map +1 -1
  300. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  301. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  302. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  303. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  304. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  305. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  306. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  307. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  308. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  309. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  310. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  311. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  312. package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
  313. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  314. package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
  315. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  316. package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
  317. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  318. package/dist/components/form/fields/template/TemplateField.js +706 -168
  319. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  320. package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
  321. package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
  322. package/dist/components/form/fields/template/TemplatePicker.js +459 -0
  323. package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
  324. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  325. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  326. package/dist/components/form/fields/template/TemplateText.js +22 -16
  327. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  328. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  329. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  330. package/dist/components/form/fields/template/referenceNames.js +69 -0
  331. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  332. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  333. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  334. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  335. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  336. package/dist/components/form/index.d.ts +12 -2
  337. package/dist/components/form/index.d.ts.map +1 -1
  338. package/dist/components/form/index.js +25 -3
  339. package/dist/components/form/index.js.map +1 -1
  340. package/dist/components/form/typeSentenceForm.d.ts +17 -0
  341. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  342. package/dist/components/form/typeSentenceForm.js +54 -0
  343. package/dist/components/form/typeSentenceForm.js.map +1 -0
  344. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  345. package/dist/components/imageLightbox/ImageLightbox.js +19 -9
  346. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  347. package/dist/components/log/Log.d.ts.map +1 -1
  348. package/dist/components/log/Log.js +20 -8
  349. package/dist/components/log/Log.js.map +1 -1
  350. package/dist/components/menu/Menu.d.ts.map +1 -1
  351. package/dist/components/menu/Menu.js +19 -10
  352. package/dist/components/menu/Menu.js.map +1 -1
  353. package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
  354. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  355. package/dist/components/smartEditor/CompletionMenu.js +302 -0
  356. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  357. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  358. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  359. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  360. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  361. package/dist/components/smartEditor/SmartEditor.js +616 -190
  362. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  363. package/dist/components/smartEditor/completionStyle.d.ts +28 -0
  364. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  365. package/dist/components/smartEditor/completionStyle.js +79 -0
  366. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  367. package/dist/components/smartEditor/contextTitle.d.ts +10 -0
  368. package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
  369. package/dist/components/smartEditor/contextTitle.js +21 -0
  370. package/dist/components/smartEditor/contextTitle.js.map +1 -0
  371. package/dist/components/smartEditor/editingAids.d.ts +64 -0
  372. package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
  373. package/dist/components/smartEditor/editingAids.js +213 -0
  374. package/dist/components/smartEditor/editingAids.js.map +1 -0
  375. package/dist/components/smartEditor/index.d.ts +6 -1
  376. package/dist/components/smartEditor/index.d.ts.map +1 -1
  377. package/dist/components/smartEditor/index.js +19 -1
  378. package/dist/components/smartEditor/index.js.map +1 -1
  379. package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
  380. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  381. package/dist/components/smartEditor/templateCompletions.js +380 -0
  382. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  383. package/dist/components/smartEditor/typedReferences.d.ts +34 -0
  384. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  385. package/dist/components/smartEditor/typedReferences.js +179 -0
  386. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  387. package/dist/components/smartEditor/types.d.ts +116 -2
  388. package/dist/components/smartEditor/types.d.ts.map +1 -1
  389. package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
  390. package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
  391. package/dist/components/smartEditor/useEditingAids.js +392 -0
  392. package/dist/components/smartEditor/useEditingAids.js.map +1 -0
  393. package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
  394. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  395. package/dist/components/smartEditor/useLspAutocomplete.js +592 -149
  396. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  397. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  398. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  399. package/dist/components/smartEditor/useLspHover.js +364 -35
  400. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  401. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  402. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  403. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  404. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  405. package/dist/components/smartEditor/useLspSession.js +7 -6
  406. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  407. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  408. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  409. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  410. package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
  411. package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
  412. package/dist/components/smartEditor/useTabCameIn.js +42 -0
  413. package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
  414. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  415. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  416. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  417. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +2 -3
  418. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -1
  419. package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -1
  420. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -3
  421. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  422. package/dist/components/supportTicket/ReferencePicker.js +38 -23
  423. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  424. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  425. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  426. package/dist/components/supportTicket/TicketHeader.js +21 -6
  427. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  428. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  429. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
  430. package/dist/components/supportTicket/TicketReplyBox.js +10 -29
  431. package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
  432. package/dist/components/supportTicket/useLoadedImages.d.ts +0 -10
  433. package/dist/components/supportTicket/useLoadedImages.d.ts.map +1 -1
  434. package/dist/components/supportTicket/useLoadedImages.js +1 -63
  435. package/dist/components/supportTicket/useLoadedImages.js.map +1 -1
  436. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  437. package/dist/components/ticketReferences/TicketReferences.js +10 -9
  438. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  439. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  440. package/dist/components/ticketThread/TicketThread.js +52 -21
  441. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  442. package/dist/helpers/allowedValues.d.ts +21 -12
  443. package/dist/helpers/allowedValues.d.ts.map +1 -1
  444. package/dist/helpers/allowedValues.js +40 -20
  445. package/dist/helpers/allowedValues.js.map +1 -1
  446. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  447. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  448. package/dist/helpers/descriptionTooltip.js +76 -0
  449. package/dist/helpers/descriptionTooltip.js.map +1 -0
  450. package/dist/helpers/domProps.d.ts +5 -0
  451. package/dist/helpers/domProps.d.ts.map +1 -0
  452. package/dist/helpers/domProps.js +47 -0
  453. package/dist/helpers/domProps.js.map +1 -0
  454. package/dist/helpers/expressions.d.ts +115 -4
  455. package/dist/helpers/expressions.d.ts.map +1 -1
  456. package/dist/helpers/expressions.js +247 -29
  457. package/dist/helpers/expressions.js.map +1 -1
  458. package/dist/helpers/hoveringPointer.d.ts +26 -0
  459. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  460. package/dist/helpers/hoveringPointer.js +29 -0
  461. package/dist/helpers/hoveringPointer.js.map +1 -0
  462. package/dist/helpers/markdownText.d.ts +14 -0
  463. package/dist/helpers/markdownText.d.ts.map +1 -0
  464. package/dist/helpers/markdownText.js +160 -0
  465. package/dist/helpers/markdownText.js.map +1 -0
  466. package/dist/helpers/noDescription.d.ts +9 -0
  467. package/dist/helpers/noDescription.d.ts.map +1 -0
  468. package/dist/helpers/noDescription.js +13 -0
  469. package/dist/helpers/noDescription.js.map +1 -0
  470. package/dist/helpers/optionUiTypes.d.ts +2 -2
  471. package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
  472. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  473. package/dist/helpers/qorusTypeCatalogue.js +505 -0
  474. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  475. package/dist/helpers/readableColors.d.ts +36 -0
  476. package/dist/helpers/readableColors.d.ts.map +1 -0
  477. package/dist/helpers/readableColors.js +116 -0
  478. package/dist/helpers/readableColors.js.map +1 -0
  479. package/dist/helpers/recordFieldReference.d.ts +15 -0
  480. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  481. package/dist/helpers/recordFieldReference.js +89 -0
  482. package/dist/helpers/recordFieldReference.js.map +1 -0
  483. package/dist/helpers/singleLineString.d.ts.map +1 -1
  484. package/dist/helpers/singleLineString.js +0 -1
  485. package/dist/helpers/singleLineString.js.map +1 -1
  486. package/dist/helpers/templateCatalogue.d.ts +104 -0
  487. package/dist/helpers/templateCatalogue.d.ts.map +1 -0
  488. package/dist/helpers/templateCatalogue.js +116 -0
  489. package/dist/helpers/templateCatalogue.js.map +1 -0
  490. package/dist/helpers/templateCatalogueContext.d.ts +19 -0
  491. package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
  492. package/dist/helpers/templateCatalogueContext.js +31 -0
  493. package/dist/helpers/templateCatalogueContext.js.map +1 -0
  494. package/dist/helpers/templateItems.d.ts +2 -2
  495. package/dist/helpers/templateItems.d.ts.map +1 -1
  496. package/dist/helpers/templateItems.js +6 -4
  497. package/dist/helpers/templateItems.js.map +1 -1
  498. package/dist/helpers/templateText.d.ts +1 -0
  499. package/dist/helpers/templateText.d.ts.map +1 -1
  500. package/dist/helpers/templateText.js +7 -3
  501. package/dist/helpers/templateText.js.map +1 -1
  502. package/dist/helpers/templateTree.d.ts +248 -0
  503. package/dist/helpers/templateTree.d.ts.map +1 -0
  504. package/dist/helpers/templateTree.js +892 -0
  505. package/dist/helpers/templateTree.js.map +1 -0
  506. package/dist/helpers/templateType.d.ts +28 -0
  507. package/dist/helpers/templateType.d.ts.map +1 -0
  508. package/dist/helpers/templateType.js +30 -0
  509. package/dist/helpers/templateType.js.map +1 -0
  510. package/dist/helpers/templates.d.ts +86 -16
  511. package/dist/helpers/templates.d.ts.map +1 -1
  512. package/dist/helpers/templates.js +305 -45
  513. package/dist/helpers/templates.js.map +1 -1
  514. package/dist/helpers/validations.d.ts +27 -0
  515. package/dist/helpers/validations.d.ts.map +1 -1
  516. package/dist/helpers/validations.js +169 -39
  517. package/dist/helpers/validations.js.map +1 -1
  518. package/dist/helpers/webLink.d.ts +8 -0
  519. package/dist/helpers/webLink.d.ts.map +1 -0
  520. package/dist/helpers/webLink.js +29 -0
  521. package/dist/helpers/webLink.js.map +1 -0
  522. package/dist/hooks/useQorusTypes.d.ts +12 -17
  523. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  524. package/dist/hooks/useQorusTypes.js +44 -172
  525. package/dist/hooks/useQorusTypes.js.map +1 -1
  526. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  527. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  528. package/dist/hooks/useReadableIntentShade.js +23 -0
  529. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  530. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  531. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  532. package/dist/hooks/useReadableOpacity.js +17 -0
  533. package/dist/hooks/useReadableOpacity.js.map +1 -0
  534. package/dist/index.d.ts +8 -0
  535. package/dist/index.d.ts.map +1 -1
  536. package/dist/index.js +24 -1
  537. package/dist/index.js.map +1 -1
  538. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  539. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  540. package/dist/tracking/ui/ExperimentCard.js +26 -10
  541. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  542. package/dist/tracking/ui/card.d.ts +2 -2
  543. package/dist/tracking/ui/card.d.ts.map +1 -1
  544. package/dist/tracking/ui/card.js +2 -2
  545. package/dist/tracking/ui/card.js.map +1 -1
  546. package/dist/tracking/ui/readable.d.ts +14 -0
  547. package/dist/tracking/ui/readable.d.ts.map +1 -0
  548. package/dist/tracking/ui/readable.js +60 -0
  549. package/dist/tracking/ui/readable.js.map +1 -0
  550. package/dist/utils/fetch.d.ts +9 -2
  551. package/dist/utils/fetch.d.ts.map +1 -1
  552. package/dist/utils/fetch.js +6 -5
  553. package/dist/utils/fetch.js.map +1 -1
  554. package/dist/utils/lspClient.types.d.ts +2 -0
  555. package/dist/utils/lspClient.types.d.ts.map +1 -1
  556. package/dist/utils/websocket.d.ts +65 -2
  557. package/dist/utils/websocket.d.ts.map +1 -1
  558. package/dist/utils/websocket.js +276 -44
  559. package/dist/utils/websocket.js.map +1 -1
  560. package/package.json +14 -6
  561. package/.claude/CLAUDE.md +0 -317
  562. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  563. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  564. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  565. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  566. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  567. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  568. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  569. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  570. package/.tasks/INDEX.md +0 -111
  571. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  572. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  573. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  574. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  575. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  576. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  577. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  578. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  579. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  580. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  581. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  582. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  583. package/CODE_OF_CONDUCT.md +0 -105
  584. package/CONTRIBUTING.MD +0 -78
  585. package/SECURITY.md +0 -3
  586. package/chromatic.config.json +0 -5
  587. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  588. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  589. package/design/COMPACT_PARITY.md +0 -85
  590. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  591. package/design/FORM_ENGINE_COMPACT.md +0 -300
  592. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  593. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  594. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  595. package/design/IDE_INTEGRATION.md +0 -64
  596. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  597. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  598. package/design/SMART_EDITOR_UX.md +0 -438
  599. package/design/TRACKING.md +0 -290
  600. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  601. package/dist/components/form/engine/formAppearance.d.ts +0 -49
  602. package/dist/components/form/engine/formAppearance.d.ts.map +0 -1
  603. package/dist/components/form/engine/formAppearance.js +0 -50
  604. package/dist/components/form/engine/formAppearance.js.map +0 -1
  605. package/dist/components/form/fields/ChoiceGroupHeading.d.ts +0 -21
  606. package/dist/components/form/fields/ChoiceGroupHeading.d.ts.map +0 -1
  607. package/dist/components/form/fields/ChoiceGroupHeading.js +0 -33
  608. package/dist/components/form/fields/ChoiceGroupHeading.js.map +0 -1
  609. package/dist/components/form/fields/allowed-values/savedValues.d.ts +0 -30
  610. package/dist/components/form/fields/allowed-values/savedValues.d.ts.map +0 -1
  611. package/dist/components/form/fields/allowed-values/savedValues.js +0 -39
  612. package/dist/components/form/fields/allowed-values/savedValues.js.map +0 -1
  613. package/dist/helpers/fieldDescription.d.ts +0 -16
  614. package/dist/helpers/fieldDescription.d.ts.map +0 -1
  615. package/dist/helpers/fieldDescription.js +0 -40
  616. package/dist/helpers/fieldDescription.js.map +0 -1
  617. package/src/components/Description/index.tsx +0 -254
  618. package/src/components/Description/markdownRendererContext.tsx +0 -29
  619. package/src/components/FocusedEditing/index.tsx +0 -50
  620. package/src/components/codeSize/index.tsx +0 -79
  621. package/src/components/composer/Composer.stories.tsx +0 -238
  622. package/src/components/composer/Composer.tsx +0 -554
  623. package/src/components/composer/helpers.ts +0 -74
  624. package/src/components/composer/index.ts +0 -2
  625. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  626. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  627. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  628. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  629. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  630. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  631. package/src/components/dpqlEditor/index.ts +0 -41
  632. package/src/components/dpqlEditor/types.ts +0 -203
  633. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  634. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  635. package/src/components/form/engine/CompactRow.tsx +0 -2740
  636. package/src/components/form/engine/CompactToolbar.tsx +0 -399
  637. package/src/components/form/engine/FormEngine.stories.tsx +0 -9934
  638. package/src/components/form/engine/FormEngine.tsx +0 -4891
  639. package/src/components/form/engine/FormEngineAppearance.stories.tsx +0 -609
  640. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  641. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -335
  642. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  643. package/src/components/form/engine/OptionFieldMessages.tsx +0 -548
  644. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  645. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  646. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  647. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  648. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -755
  649. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  650. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  651. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  652. package/src/components/form/engine/compactRowContext.ts +0 -153
  653. package/src/components/form/engine/compactRowStyles.ts +0 -1087
  654. package/src/components/form/engine/compactToolbarContext.ts +0 -72
  655. package/src/components/form/engine/formAppearance.ts +0 -79
  656. package/src/components/form/engine/optionActions.ts +0 -128
  657. package/src/components/form/engine/optionsContext.ts +0 -24
  658. package/src/components/form/engine/readFirst.ts +0 -1090
  659. package/src/components/form/engine/rendererTypes.ts +0 -107
  660. package/src/components/form/engine/revealRow.ts +0 -123
  661. package/src/components/form/engine/rowFocus.ts +0 -112
  662. package/src/components/form/engine/rowMenuContext.ts +0 -159
  663. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  664. package/src/components/form/engine/typeChoices.ts +0 -63
  665. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  666. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  667. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  668. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  669. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  670. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  671. package/src/components/form/engine/variants/variantModel.ts +0 -223
  672. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  673. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  674. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  675. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  676. package/src/components/form/expressions/argumentPresence.ts +0 -213
  677. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  678. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  679. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  680. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  681. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  682. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  683. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  684. package/src/components/form/expressions/builder/index.tsx +0 -1545
  685. package/src/components/form/expressions/builder/item.tsx +0 -89
  686. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  687. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  688. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  689. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  690. package/src/components/form/expressions/mockExpressions.ts +0 -317
  691. package/src/components/form/expressions/renderExpressionToText.ts +0 -152
  692. package/src/components/form/expressions/types.ts +0 -110
  693. package/src/components/form/expressions/useExpressions.ts +0 -101
  694. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  695. package/src/components/form/fields/ChoiceGroupHeading.tsx +0 -38
  696. package/src/components/form/fields/Field.stories.tsx +0 -143
  697. package/src/components/form/fields/Field.tsx +0 -734
  698. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -321
  699. package/src/components/form/fields/allowed-values/savedValues.ts +0 -64
  700. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  701. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  702. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  703. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  704. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1183
  705. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  706. package/src/components/form/fields/binary/Binary.tsx +0 -91
  707. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  708. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  709. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  710. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  711. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  712. package/src/components/form/fields/color/Color.tsx +0 -46
  713. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  714. package/src/components/form/fields/cron/Cron.tsx +0 -80
  715. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  716. package/src/components/form/fields/date/Date.tsx +0 -55
  717. package/src/components/form/fields/emittedValues.ts +0 -70
  718. package/src/components/form/fields/file/File.stories.tsx +0 -161
  719. package/src/components/form/fields/file/File.tsx +0 -227
  720. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -147
  721. package/src/components/form/fields/long-string/LongString.tsx +0 -141
  722. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  723. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  724. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  725. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -140
  726. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  727. package/src/components/form/fields/number/Number.tsx +0 -175
  728. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  729. package/src/components/form/fields/object/Object.tsx +0 -255
  730. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  731. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -52
  732. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  733. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  734. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  735. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  736. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  737. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  738. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  739. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  740. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  741. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  742. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  743. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  744. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  745. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  746. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  747. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  748. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  749. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  750. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  751. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  752. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  753. package/src/components/form/fields/schema-definition/types.ts +0 -185
  754. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  755. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  756. package/src/components/form/fields/select/Select.tsx +0 -624
  757. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  758. package/src/components/form/fields/string/String.stories.tsx +0 -86
  759. package/src/components/form/fields/string/String.tsx +0 -43
  760. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  761. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  762. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  763. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  764. package/src/components/form/fields/template/TemplateField.tsx +0 -1749
  765. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  766. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  767. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  768. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  769. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  770. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  771. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  772. package/src/components/form/fields/url/Url.tsx +0 -85
  773. package/src/components/form/index.tsx +0 -49
  774. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  775. package/src/components/imageLightbox/ImageLightbox.tsx +0 -238
  776. package/src/components/imageLightbox/index.ts +0 -1
  777. package/src/components/log/Log.stories.tsx +0 -333
  778. package/src/components/log/Log.tsx +0 -285
  779. package/src/components/menu/Menu.stories.tsx +0 -155
  780. package/src/components/menu/Menu.tsx +0 -312
  781. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  782. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  783. package/src/components/qonsoleSmartInput/index.ts +0 -16
  784. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  785. package/src/components/qonsoleSmartInput/types.ts +0 -133
  786. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  787. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  788. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  789. package/src/components/searchFilterBar/index.ts +0 -1
  790. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  791. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  792. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  793. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  794. package/src/components/smartEditor/helpers.ts +0 -217
  795. package/src/components/smartEditor/index.ts +0 -35
  796. package/src/components/smartEditor/styling.ts +0 -45
  797. package/src/components/smartEditor/types.ts +0 -211
  798. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  799. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  800. package/src/components/smartEditor/useLspHover.ts +0 -230
  801. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  802. package/src/components/smartEditor/useLspSession.ts +0 -231
  803. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  804. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  805. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  806. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  807. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -130
  808. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -580
  809. package/src/components/supportTicket/ReferencePicker.tsx +0 -573
  810. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -120
  811. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  812. package/src/components/supportTicket/TicketHeader.tsx +0 -248
  813. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  814. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  815. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -357
  816. package/src/components/supportTicket/TicketReplyBox.tsx +0 -172
  817. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  818. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  819. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  820. package/src/components/supportTicket/index.ts +0 -10
  821. package/src/components/supportTicket/meta.ts +0 -206
  822. package/src/components/supportTicket/ticketModel.ts +0 -131
  823. package/src/components/supportTicket/useLoadedImages.ts +0 -93
  824. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -341
  825. package/src/components/ticketReferences/TicketReferences.tsx +0 -914
  826. package/src/components/ticketReferences/index.ts +0 -2
  827. package/src/components/ticketThread/TicketThread.stories.tsx +0 -898
  828. package/src/components/ticketThread/TicketThread.tsx +0 -706
  829. package/src/components/ticketThread/index.ts +0 -6
  830. package/src/contexts/FetchContext.tsx +0 -25
  831. package/src/contexts/ReqraftContext.tsx +0 -9
  832. package/src/contexts/StorageContext.tsx +0 -33
  833. package/src/global.d.ts +0 -4
  834. package/src/helpers/allowedValues.ts +0 -268
  835. package/src/helpers/choiceChip.ts +0 -227
  836. package/src/helpers/common.ts +0 -326
  837. package/src/helpers/dpqlDetection.ts +0 -209
  838. package/src/helpers/expressions.ts +0 -140
  839. package/src/helpers/fieldDescription.ts +0 -39
  840. package/src/helpers/optionUiTypes.ts +0 -199
  841. package/src/helpers/options.ts +0 -150
  842. package/src/helpers/providerValue.ts +0 -125
  843. package/src/helpers/scrollbar.ts +0 -32
  844. package/src/helpers/singleLineString.ts +0 -62
  845. package/src/helpers/templateItems.ts +0 -81
  846. package/src/helpers/templateText.ts +0 -350
  847. package/src/helpers/templates.ts +0 -602
  848. package/src/helpers/validations.ts +0 -2085
  849. package/src/hooks/useArgSchema.ts +0 -37
  850. package/src/hooks/useCoarsePointer.ts +0 -30
  851. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  852. package/src/hooks/useFetch/useFetch.tsx +0 -154
  853. package/src/hooks/usePhoneViewport.ts +0 -34
  854. package/src/hooks/useQorusTypes.ts +0 -233
  855. package/src/hooks/useReqraftProperty.ts +0 -16
  856. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  857. package/src/hooks/useStorage/useStorage.ts +0 -35
  858. package/src/hooks/useTemplates.ts +0 -123
  859. package/src/hooks/useValidation.ts +0 -9
  860. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  861. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  862. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  863. package/src/index.tsx +0 -86
  864. package/src/providers/FetchProvider.tsx +0 -40
  865. package/src/providers/ReqraftProvider.tsx +0 -52
  866. package/src/providers/StorageProvider.tsx +0 -131
  867. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  868. package/src/stores/currentUser/currentUser.tsx +0 -94
  869. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  870. package/src/stories/Tests/utils.ts +0 -320
  871. package/src/stories/storyNetwork.ts +0 -92
  872. package/src/stories/tracking.tsx +0 -206
  873. package/src/tracking/browser/attach.ts +0 -186
  874. package/src/tracking/browser/env.ts +0 -78
  875. package/src/tracking/core/consent.ts +0 -37
  876. package/src/tracking/core/engagement.ts +0 -47
  877. package/src/tracking/core/experiments.ts +0 -258
  878. package/src/tracking/core/hash.ts +0 -26
  879. package/src/tracking/core/ids.ts +0 -25
  880. package/src/tracking/core/observable.ts +0 -23
  881. package/src/tracking/core/queue.ts +0 -131
  882. package/src/tracking/core/sections.ts +0 -166
  883. package/src/tracking/core/storage.ts +0 -69
  884. package/src/tracking/core/tracker.ts +0 -417
  885. package/src/tracking/core/types.ts +0 -162
  886. package/src/tracking/core/utm.ts +0 -23
  887. package/src/tracking/index.ts +0 -72
  888. package/src/tracking/markup.ts +0 -17
  889. package/src/tracking/react/Experiment.tsx +0 -44
  890. package/src/tracking/react/TrackingProvider.tsx +0 -56
  891. package/src/tracking/react/hooks.ts +0 -106
  892. package/src/tracking/react/index.ts +0 -13
  893. package/src/tracking/testing.ts +0 -108
  894. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  895. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  896. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  897. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  898. package/src/tracking/ui/anchor.ts +0 -180
  899. package/src/tracking/ui/card.ts +0 -464
  900. package/src/tracking/ui/client.ts +0 -117
  901. package/src/tracking/ui/index.ts +0 -77
  902. package/src/tracking/ui/types.ts +0 -110
  903. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  904. package/src/types/Form.ts +0 -29
  905. package/src/types.ts +0 -14
  906. package/src/utils/datetime.ts +0 -10
  907. package/src/utils/fetch.ts +0 -457
  908. package/src/utils/lspClient.ts +0 -711
  909. package/src/utils/lspClient.types.ts +0 -211
  910. package/src/utils/queryUnlessCancelled.ts +0 -28
  911. package/src/utils/websocket.ts +0 -293
  912. package/vite.config.ts +0 -58
  913. package/vitest.config.ts +0 -69
@@ -1,306 +0,0 @@
1
- # QonsoleSmartInput — assist response features
2
-
3
- Follow-up to the `0.10.0` UX batch (see
4
- [`SMART_EDITOR_UX_POLISH.md`](./SMART_EDITOR_UX_POLISH.md)). The Qorus
5
- LSP server's Qonsole assist response carries fields the client either
6
- silently discards or — in the case of `mode` — type-mistypes. This
7
- task triages each field, lands the generic ones in `useLspAutocomplete`,
8
- and lands the Qonsole-specific wizard / starter-suggestion flow in
9
- the `QonsoleSmartInput` wrapper.
10
-
11
- **Status:** done — committed in `189fe52`. Generic LSP wins (commitCharacters, sortText, warning) + Qonsole-specific (wizard launch via `qonsole.startWizard`, mode-type fix). **Awaiting browser verification.**
12
- **Scope:** seven items, three of them generic-LSP wins (commit chars,
13
- sortText, warning), four Qonsole-specific (relatedWizards, wizard
14
- command, natural-language mode, mode-type fix).
15
- **Estimated size:** ~200 lines + tests, ~1.5 days.
16
-
17
- ## Goal
18
-
19
- A Qonsole consumer typing `/li ` should auto-accept `list` on space.
20
- Typing `/list ` should rank the resource list per server intent
21
- (group rank + match rank). Selecting a `Start wizard ...` item should
22
- launch the wizard flow, not insert the text. Typing free text (NL
23
- mode) should show the server's starter suggestions if available.
24
- Destructive verbs (`delete`, `drop`) should flag themselves in the
25
- dropdown so users see the warning before pressing Enter.
26
-
27
- None of these are blocking for the `0.10.0` release — the editor
28
- works without them. They're the difference between "Qonsole input
29
- typing works" and "Qonsole input feels like the IDE wrote it".
30
-
31
- ## Research findings
32
-
33
- Source: `qorus/Classes/QonsoleAssistService.qc`,
34
- `qorus/Classes/QorusLspWebSocketHandler.qc`,
35
- `QONSOLE_LSP_REFERENCE.md`, plus a code search across our
36
- `useLspAutocomplete.ts`, `useQonsoleSession.ts`,
37
- `lspClient.types.ts`.
38
-
39
- ### Generic LSP fields (apply to all languages, not Qonsole-only)
40
-
41
- These already exist on `ILspCompletionItem`:
42
-
43
- | Field | Server emits | Client uses | Severity |
44
- |---|---|---|---|
45
- | `commitCharacters: string[]` | yes (verbs/resources `[" "]`, non-bool flags `["="]`, bool flags `[" "]`) | **no** — typed but never read | Small but visible win |
46
- | `sortText: string` | yes (`<group_rank>_<match_rank>_<label>` shape, sorted server-side) | partial — preserved in items array, but grouping by kind in `useLspAutocomplete.ts:282` re-orders across groups | Medium — affects rank order |
47
- | `data: Record<string, unknown>` | yes (verb/resource/flag metadata; for wizard items: `{action: 'start-wizard', name, start_path, ...}`) | accessible via `item.raw.data` but no client codepath reads it | Small in isolation; required for wizard launch |
48
-
49
- ### Qonsole-specific (only on this server / this language)
50
-
51
- | Field | Server emits | Client uses | Severity |
52
- |---|---|---|---|
53
- | `warning: string` | yes — only on mutating verbs (`create`, `delete`, `update`, …) | no — not in our type | Small but useful safety affordance |
54
- | `command: {command, arguments, title}` | yes — only on wizard completion items (`kind === 15`) | no | Required to make wizard items actionable |
55
- | `relatedWizards` (top-level on `qonsole/assist` response) | yes — when canonical command has both verb+resource AND user can access matching wizards | no — `IQonsoleAssistResult.related_wizards` exists in types but the field is never rendered | Small (wizards already surface as completion items via `makeWizardCompletionItems`) |
56
- | `mode: 'command' \| 'nl' \| 'empty'` | yes — server inferred from input | type bug: declared as `'command' \| 'natural-language'` in our types; server returns the literal `"nl"` | Tiny but correctness |
57
-
58
- ### Server protocol details we need to know
59
-
60
- - **`workspace/executeCommand` is REJECTED for `qonsole.*`** — confirmed in `QorusLspWebSocketHandler.qc:2188-2207`. Wizard launch must go through REST: `POST {apiHost}{start_path}` from `command.arguments[0].start_path`, then drive the returned `QonsoleWizardSession` via `POST /api/latest/qonsole/wizards/sessions/{id}/step` and `/abort`. Documented in `QorusQonsoleRestClass.qc:7770-7950`.
61
-
62
- - **`completionItem/resolve` is NOT supported** by the server (`completionProvider.resolveProvider` is not in capabilities). `data` is fully populated up front — not for lazy resolution. So clients don't need to implement a resolve-roundtrip.
63
-
64
- - **Natural-language mode is detection-only.** The `nl` response has empty `completion.items`, empty `diagnostics`, optional `starter_suggestions` when the server's `isCannedWelcomeIntent` matches. Actual execution goes through `/qonsole/exec` SSE — out of scope for this task (it's the chat-runner, not the editor).
65
-
66
- ## Design decisions
67
-
68
- ### 1. `commitCharacters` — generic, lands in `useLspAutocomplete`
69
-
70
- VS Code semantics: when the focused item has `commitCharacters` and
71
- the user types one, accept the completion AND insert the typed
72
- character. The typed character is preserved in the document; the
73
- completion is what would have been typed had they pressed Tab/Enter.
74
-
75
- Special case `space` → bool flags: server emits `[" "]` for bool
76
- flags. After accepting `--verbose` on space, the server's
77
- `textEdit` already includes the space-after, so we'd double-space.
78
- **Decision:** on commit-char accept, check whether the inserted
79
- text from the completion already ends in the typed character — if
80
- so, suppress the verbatim re-insert. Confirmed by reading
81
- `QonsoleAssistService.qc:982`: flag insertText is `"--name="`
82
- (no trailing space) for `=`-committed flags, `"--name"` (no trailing
83
- char) for space-committed bool flags. So always re-insert is
84
- *almost* right, but the user types `--verbose ` and gets
85
- `--verbose ` (one space). For `=` flags, user types `--name=` and
86
- gets `--name=` (no double-equals because the completion's `newText`
87
- ends with `=`).
88
-
89
- Actually re-examining: the server's `textEdit.newText` is what the
90
- completion produces. For bool `--verbose`, server's `newText`
91
- is `--verbose` (without trailing). User types space → we accept →
92
- `--verbose` is inserted → we re-insert the typed space → final
93
- text is `--verbose ` (with one space). Correct.
94
-
95
- For `=` flag `--limit`, server's `newText` is `--limit=`. User
96
- types `=` → we accept → `--limit=` is inserted → we re-insert
97
- `=` → final is `--limit==`. **Wrong.** So we DO need the
98
- deduplication: if the just-inserted text ends with the commit
99
- character, swallow the second one.
100
-
101
- Implementation: peek at the completion's `textEdit?.newText ?? insertText ?? label`.
102
- If it ends with the typed key, suppress the re-insert.
103
-
104
- ### 2. `sortText` — generic, lands in `useLspAutocomplete`
105
-
106
- Server already sorts; we re-order via kind-grouping which violates
107
- server intent.
108
-
109
- **Decision:** drop the kind-grouping for items whose `sortText` is
110
- present. Instead, group only when no `sortText` is supplied (legacy
111
- fallback). The server's `sortText` already encodes the group order
112
- (`group_rank` is the first segment). So we render as a flat list,
113
- ordered by `sortText`, with the server's headers implicit in the
114
- rank steps.
115
-
116
- This is a behaviour change for the dropdown when consuming Qonsole.
117
- For DPQL (which doesn't populate `sortText` consistently per server
118
- audit), groups remain. We branch on the presence of `sortText` on
119
- any item.
120
-
121
- Alternative we considered: keep groups but order group headers by
122
- the smallest `sortText` per group. Rejected — `sortText`'s first
123
- segment is `group_rank` exactly so a flat sort is equivalent and
124
- simpler.
125
-
126
- ### 3. `warning` — generic field on `ILspCompletionItem`
127
-
128
- **Decision:** add `warning?: string` to `ILspCompletionItem`. Add
129
- `warning?: string` to `ICompletionDropdownItem`. Render as a small
130
- right-aligned warning chip + the row's `tooltip` payload extended
131
- with the warning. Visual: `<ReqoreTag intent='warning' icon='AlertLine' size='small'>` in the row's `rightAction` or as a second badge.
132
-
133
- Doesn't conflict with the kind-chip badge — Reqore allows `badge` to be an array.
134
-
135
- ### 4. `data` — generic field on `ILspCompletionItem`
136
-
137
- **Decision:** add `data?: Record<string, unknown>` to
138
- `ILspCompletionItem`. No special rendering — it's a pass-through
139
- for inserters and external callers. The wizard-launch path (next
140
- item) reads `data.action === 'start-wizard'` to branch.
141
-
142
- ### 5. Wizard launch via `command: 'qonsole.startWizard'` — Qonsole-specific
143
-
144
- Spec: the server attaches a `command: { command, arguments, title }`
145
- to completion items when `data.action === 'start-wizard'`. We need
146
- to NOT insert text but instead fire a callback the consumer wires
147
- to the wizard runner.
148
-
149
- **Decision:**
150
-
151
- - Generic addition to `ILspCompletionItem`: `command?: { command: string; title: string; arguments?: unknown[] }`.
152
- - Generic addition to `TCompletionInserter` context: we already pass
153
- `replacementPath` etc. — add nothing; the inserter receives
154
- `item.command` via `item.raw.command` and decides what to do.
155
- - Qonsole-specific addition: a new `onWizardStart?(args: unknown[])` prop
156
- on `QonsoleSmartInput`. The default `completionInserter` for
157
- Qonsole checks `item.raw.command?.command === 'qonsole.startWizard'`
158
- and calls `onWizardStart(args)` instead of inserting text.
159
- - Reqraft provides NO wizard runner UI — that's qorus-ide-side
160
- (a new `<QonsoleWizardSessionModal>` component). Our job is the
161
- callback hand-off.
162
-
163
- The dropdown visual for wizard items uses a distinctive icon and a
164
- `Wizard` kind chip — extend the kindLabel map to map "snippet" kind
165
- to "Wizard" when `data.action === 'start-wizard'`.
166
-
167
- ### 6. `relatedWizards` (top-level on assist response) — Qonsole-specific
168
-
169
- The server appends each wizard ALSO as a synthetic completion item
170
- (`makeWizardCompletionItems` at `QonsoleAssistService.qc:806`) — so
171
- the items list already covers the wizard surface. The top-level
172
- `related_wizards` array is the canonical source for an inline
173
- "Suggested setup" callout panel below the input — useful when a
174
- command is recognised but partially filled.
175
-
176
- **Decision (v1):** rely on the synthetic items in the dropdown. Do
177
- NOT build the inline callout panel. If we want it later, it's a
178
- new ReqoreCallout below the editor body when
179
- `session.lastAssist?.related_wizards?.length > 0`. Tracked as
180
- deferred.
181
-
182
- ### 7. `mode` type fix
183
-
184
- Trivial — change `'natural-language'` to `'nl'` in
185
- `qonsoleSmartInput/types.ts:40`. Add `'empty'` as a third literal.
186
-
187
- Also fix `QONSOLE_LSP_REFERENCE.md:150` which has the same wrong
188
- literal documented.
189
-
190
- ### Not landing in this task
191
-
192
- - Natural-language mode **starter suggestions** rendering — different
193
- surface (chips below the input). Add later if Qonsole NL becomes a
194
- Reqraft consumer's actual use case. The qorus-ide existing
195
- QonsoleInput.tsx doesn't even use `qonsole/assist` for NL — goes
196
- straight to `/qonsole/exec` SSE on submit.
197
- - Attachment-mode UX — assist response carries `attachments` only in
198
- NL mode; out of scope.
199
- - The wizard runner modal itself — qorus-ide work.
200
-
201
- ## Surface area
202
-
203
- | File | Change |
204
- |---|---|
205
- | `src/utils/lspClient.types.ts` | `ILspCompletionItem` gains `warning?: string`, `data?: Record<string, unknown>`, `command?: { command, title, arguments? }` |
206
- | `src/components/smartEditor/useLspAutocomplete.ts` | `ICompletionDropdownItem` gains `warning?`, surface `command` via `raw`; keyboard handler intercepts commit-char keys; sort by `sortText` (flat) when present; deduplication for commit-char re-insert |
207
- | `src/components/smartEditor/SmartEditor.tsx` | render the `warning` chip on rows that have it (right-side, intent="warning", small) |
208
- | `src/components/qonsoleSmartInput/types.ts` | fix `mode` literal (`'nl'`/`'empty'`); add `onWizardStart?(args: unknown[]) => void` prop |
209
- | `src/components/qonsoleSmartInput/QonsoleSmartInput.tsx` | inject a custom `completionInserter` that branches on `item.command?.command === 'qonsole.startWizard'` and calls `onWizardStart` |
210
- | `src/components/qonsoleSmartInput/qonsoleInserter.ts` | **new** — extracts the wizard-or-text branch into a named helper |
211
- | `__tests__/smartEditor/commitCharacters.test.ts` | **new** — unit tests for commit-char accept logic incl. the deduplication |
212
- | `src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx` | enrich the mock to emit `warning` on destructive verbs and `command` on wizard items; add `WithCommitCharacters`, `WithWizardItems` stories |
213
- | `QONSOLE_LSP_REFERENCE.md` | fix the `mode` literal (`nl` not `natural-language`) |
214
-
215
- ## Tasks
216
-
217
- ### Generic field surfacing
218
-
219
- - [ ] `ILspCompletionItem` extended with `warning?`, `data?`, `command?`
220
- - [ ] `ICompletionDropdownItem` extended with `warning?`; populate it
221
- in the mapping step of `performCompletionRequest`
222
- - [ ] SmartEditor renders the warning chip on the row's
223
- `rightAction` when present
224
-
225
- ### Commit characters
226
-
227
- - [ ] Extend the keydown handler in `useLspAutocomplete` to intercept
228
- single-character keys that match the focused item's
229
- `commitCharacters`; accept the completion via `selectItem`,
230
- then re-insert the typed char UNLESS the just-inserted text
231
- ended with it (server textEdit dedup)
232
- - [ ] Confirm interaction with `metadata.retrigger` — `:` commit on
233
- a `$template:` item should re-trigger value completions; the
234
- timeout-based re-trigger already handles this
235
- - [ ] Unit tests covering:
236
- - bool flag (`--verbose`, space commit) → final text ends with one space
237
- - `=` flag (`--limit`, `=` commit) → final text is `--limit=` (no double `=`)
238
- - retrigger interaction → completion re-fires after commit
239
-
240
- ### Sort
241
-
242
- - [ ] In `useLspAutocomplete`, sort `items` by `sortText` (lexically)
243
- before grouping
244
- - [ ] When ANY item has `sortText`, skip kind-grouping — render a
245
- flat list. When NO items have `sortText`, fall back to the
246
- existing kind-grouping (preserves DPQL behaviour)
247
-
248
- ### Qonsole-specific wizard flow
249
-
250
- - [ ] `qonsoleSmartInput/qonsoleInserter.ts` — new file with the
251
- branch: wizard items call `onWizardStart`; everything else
252
- delegates to `defaultCompletionInserter`
253
- - [ ] Add `onWizardStart?` prop to `IQonsoleSmartInputProps`
254
- - [ ] Hook the inserter via the `completionInserter` prop on
255
- SmartEditor
256
- - [ ] In `useLspAutocomplete`, extend `ICompletionDropdownItem`'s
257
- kindLabel resolver: when `kind === 15` (CIK_SNIPPET) AND
258
- `data?.action === 'start-wizard'`, label the chip "Wizard"
259
- and override the icon to `MagicLine`
260
-
261
- ### Mode type fix
262
-
263
- - [ ] `qonsoleSmartInput/types.ts` — change `mode: 'command' | 'natural-language'` to `'command' | 'nl' | 'empty'`
264
- - [ ] Update `QONSOLE_LSP_REFERENCE.md` to match (and add `empty`)
265
- - [ ] No code change needed in `useQonsoleSession` — it passes the
266
- response through unchanged
267
-
268
- ### Stories + mock enrichment
269
-
270
- - [ ] `QonsoleSmartInput.stories.tsx` mock — for the BasicMock
271
- completion response:
272
- - Add `warning: 'Mutates system state'` to verbs `create`, `delete`,
273
- `drop`, `update`
274
- - Add `command: { command: 'qonsole.startWizard', title, arguments: [{action: 'start-wizard', name: 'create-connection', start_path: '/api/latest/qonsole/wizards/create-connection/start'}] }` to one synthetic wizard item per response
275
- - Add `commitCharacters: ['=']` to flag completions like
276
- `--limit`, `--search`, `--app`
277
- - [ ] New story `WithCommitCharacters` — initial value `/list services `,
278
- play test types `--li`, then `=`, asserts the editor shows
279
- `/list services --limit=` and the popover is open for values
280
- - [ ] New story `WithWizardItems` — initial value `create con`, mock
281
- returns the wizard item, play test confirms selecting it fires
282
- the consumer-provided `onWizardStart` callback (via `fn()` spy)
283
-
284
- ### Documentation
285
-
286
- - [ ] README: add a short Qonsole-features section under the
287
- QonsoleSmartInput entry mentioning commit chars, wizard launch,
288
- `onWizardStart` prop
289
- - [ ] TSDoc on `onWizardStart` explains it's the consumer's
290
- responsibility to drive the REST `start_path`
291
-
292
- ### Checks
293
-
294
- - [ ] Typecheck, lint, jest, storybook play tests all pass
295
- - [ ] **STOP — user verifies in browser** before commit
296
-
297
- ## Out of scope
298
-
299
- - Natural-language mode UX (starter cards, chat-style rendering) —
300
- separate task if Qonsole NL becomes a Reqraft consumer use case
301
- - Wizard runner modal component — qorus-ide-side
302
- - `relatedWizards` inline callout panel — deferred; synthetic items
303
- in the dropdown already cover the surface
304
- - `completionItem/resolve` plumbing — server doesn't advertise the
305
- capability; no need
306
- - Attachment-mode handling
@@ -1,159 +0,0 @@
1
- # TASK — server "Explain" over the LSP (`dpql/renderExpression`)
2
-
3
- **Status:** code complete on branch `feature/render-expression-lsp`
4
- (uncommitted) — server rebuilt/restarted by the user 2026-06-10 and
5
- **verified live end-to-end** (probe + real-browser run of `LiveExplain`
6
- against :8012: preview AND Explain show `"test".startsWith("t", true)`
7
- served over `dpql/renderExpression`; the hq accidental run proved the
8
- `-32601` fallback path too). Awaiting user browser verification.
9
- **STOP — no commits until the user verifies.**
10
-
11
- Design: `design/RENDER_EXPRESSION_TRANSPORT.md` (locked 2026-06-10).
12
- Closes **Phase D** of `.tasks/EXPRESSION_BUILDER_REPORT.md`.
13
- Server ask history: `/tmp/render-expression-exposure.md`.
14
-
15
- ## Surface area
16
-
17
- | Area | Path | Change |
18
- |---|---|---|
19
- | Server handler | `qorus/Classes/QorusLspWebSocketHandler.qc` | NEW `dpql/renderExpression` dispatch case + `handleDpqlRenderExpression()` (modeled on the creator's `handleIdeRenderExpression`, JSON-RPC like `handleDpqlToRichtext`) |
20
- | Server design doc | `qorus/design/language-server-api-metadata.md` | documented under "Custom Qorus LSP Methods" |
21
- | The seam | `src/components/form/expressions/useRenderExpression.ts` | server-first via shared module-level `LspClient`; client-side fallback kept; per-hook ~300ms debounce; `serverRendering` now live |
22
- | Mock LSP | `src/components/form/expressions/dpqlMockLsp.ts` | `dpql/renderExpression` case mirroring the server contract |
23
- | Stories | `Foundation.stories.tsx` (mock in `beforeEach`), `ExpressionField.stories.tsx` (NEW `LiveExplain` live story) | |
24
- | Storybook config | `.storybook/main.ts` | forward `REACT_APP_QORUS_INSTANCE`/`_TOKEN` shell overrides to the bundle (live-story flow was silently broken) |
25
- | Untouched consumers | `builder/renderTemplate.tsx`, `ExpressionField.tsx` | public hook contract preserved |
26
-
27
- ## Phases
28
-
29
- ### Phase 0 — shortcut check (DONE 2026-06-10)
30
-
31
- - [x] Probed live `wss://localhost:8012/lsp`: `dpql/serialize` richtext =
32
- DPQL string in paragraph nodes; `dpql/toRichtext` takes `text` only;
33
- `dpql/explain` / `dpql/renderExpression` → `-32601`.
34
- - [x] Probed live `wss://localhost:8012/creator` `render-expression`:
35
- `"test".startsWith("t", true)` for the same AST — semantic rendering,
36
- ≠ serialize output. **Shortcut disproven → server change needed.**
37
- - [x] Learned: creator accepts ONLY the `{is_expression, value}` wrapper
38
- (bare AST → `EXPRESSION-ARG-ERROR`); `and` is not in
39
- `QorusExpressionMap` (serializer accepts it, renderer doesn't).
40
- Probe scripts: `/tmp/render-step0.mjs`, `/tmp/render-step0-creator.mjs`.
41
-
42
- ### Phase 1 — server (code DONE; deploy PENDING)
43
-
44
- - [x] `handleDpqlRenderExpression()` in `QorusLspWebSocketHandler.qc`:
45
- accepts bare AST or wrapper, optional `expmap`; returns
46
- `{ rendered, richtext }`; stateless (no uri/session).
47
- - [x] `qorus/design/language-server-api-metadata.md` updated.
48
- - [x] **Committed + MR'd (2026-06-11):** qorus branch
49
- `feature/render-expression-lsp`, commit `bccdb971c`, pushed with
50
- `-o ci.skip` (push pipeline skipped; repo has no MR pipelines) —
51
- https://git.qoretechnologies.com/qorus/qorus/-/merge_requests/2103,
52
- assigned to dnichols.
53
- - [x] **Rebuilt + restarted by the user (2026-06-10).** Probe re-run green:
54
- `dpql/renderExpression` returns
55
- `{ rendered: "\"test\".startsWith(\"t\", true)", richtext: … }` for
56
- both the bare AST and the wrapper, with or without `uri`; missing
57
- expression → `-32602`; `and` (not in expmap) → clean `-32803`;
58
- nested `&&` → `("test".startsWith("t", true)) && (5 > 3)`.
59
- Note: qorus-core restarts invalidate session tokens — the probe
60
- script now logs in itself (`admin`, local dev creds).
61
-
62
- ### Phase 2 — reqraft seam swap (DONE)
63
-
64
- - [x] `useRenderExpression`: lazy module-level `LspClient` shared by all
65
- consumers (rides `LspSharedConnection` — same socket as open DPQL
66
- editors); JSON-RPC id association; per-hook leading+trailing ~300ms
67
- debounce; bounded connect wait (1.5s) + 10s fail cooldown; `-32601`
68
- remembered → permanent client-side fallback on old servers;
69
- `serverRendering` flag now reflects the serving path live.
70
- - [x] Public API unchanged (`{ render, serverRendering }`,
71
- `renderExpressionToText` still exported); consumers untouched.
72
-
73
- ### Phase 3 — tests (DONE)
74
-
75
- - [x] `dpqlMockLsp.ts` extended with `dpql/renderExpression`.
76
- - [x] `Foundation.Default` now runs the mock (its `findByText` 1s timeout
77
- is shorter than the offline fallback wait — would have gone flaky).
78
- - [x] NEW `ExpressionField.LiveExplain` story (`tags: ['!test']`,
79
- `parameters: { live: true }`) for verification against :8012.
80
- - [x] **GATE:** eslint clean · `build:test:prod` clean · jest **268/268** ·
81
- expressions play tests **17/17** · full storybook suite **200/201**
82
- (only the pre-existing `FormEngine › OnValidityChange` flaky).
83
-
84
- ### Phase 4 — verification (in progress)
85
-
86
- - [x] Server rebuilt + restarted, step-0 script green (2026-06-10).
87
- - [x] Agent end-to-end check: real chromium on the `LiveExplain` story at
88
- :6011 (storybook pointed at :8012) — WS frames confirmed
89
- `dpql/renderExpression` over the shared socket; preview AND Explain
90
- show `"test".startsWith("t", true)`. The earlier hq-pointed run
91
- doubled as the fallback proof (`-32601` → client-side rendering).
92
- Found+fixed en route: `.storybook/main.ts` never forwarded
93
- `REACT_APP_QORUS_INSTANCE`/`_TOKEN` from the shell, so the documented
94
- live-story flow silently fell back to hq.
95
- - [x] **Styled Explain (2026-06-10, after user feedback):** the builder's
96
- Explain now renders the server's `richtext` (template refs as chips,
97
- via `richtextResponseToSlate` → `RichTextFormField`) — IDE parity;
98
- hook gained additive `renderRich()` (`render` keeps its string
99
- contract); fallback path now shows a muted "Approximate — server
100
- rendering unavailable" tag so the serving path is never ambiguous.
101
- Browser-verified on :6011: chips render, no badge, server text;
102
- gates re-run green (jest 268/268, expressions play 17/17, eslint,
103
- `build:test:prod`).
104
- - [x] **LSP-highlighted Explain + Text-seeding fix (2026-06-10, user
105
- feedback round 2):**
106
- (a) Both Explain surfaces (builder panel + ExpressionField Text-mode
107
- Explanation) now render through a **read-only `DpqlEditor`** —
108
- template-ref chips + LSP semantic-token colours; new
109
- `showDiagnostics` prop on SmartEditor/DpqlEditor suppresses
110
- underlines AND the message panel (the rendering is readable text,
111
- not parseable DPQL — probe confirmed clean tokens but error diags).
112
- Fallback keeps plain rich-text + the "Approximate" tag.
113
- (b) Fixed ExpressionField Text-mode seeding: `enterTextMode` called
114
- `dpqlRef.current.serialize` before the editor mounted (ref null →
115
- silently empty editor); seeding now runs in an effect with a brief
116
- retry until the editor's LSP session is ready; user typing aborts
117
- a late seed. Browser-verified: 7 token colours + 6 chips in the
118
- builder explain, editor seeds `"test" startsWith "t"`, re-seeds on
119
- Visual→Text toggle. Full suite **201/201**, jest 268/268.
120
- - [x] **SERVER BUG found + root-caused (round-trip, case-sensitivity):**
121
- `dpql/serialize` emits infix word operators (`"test" startsWith "t"`)
122
- that `dpql/parse` rejects. Root cause in **qore** qlib
123
- `DataProvider/DpqlParser.qc`: the comparison loop lowercases the
124
- identifier (`string kw = tok.value.lwr();`, ~:964) before the infix
125
- operator lookup `symbol_to_name{kw}` (~:1028), but the map is built
126
- with symbols as-is (`symbol_to_name{"startsWith"}`, ~:136) — hash
127
- lookup is case-sensitive, so camelCase symbols can never match.
128
- PROOF: `"a" like "b"` (lowercase symbol) parses fine through the
129
- same path (`exp=like`); `startsWith("test","t")` function form also
130
- parses (`exp=starts-with`); only infix camelCase fails. The infix
131
- path was added in qore commit `219938f44`. One-line fix in qore:
132
- build the map with lowercased keys (`symbol_to_name{sym.lwr()} =
133
- ename`) — matches DPQL's case-insensitive keywords (BETWEEN/IN).
134
- Affects `startsWith`/`endsWith`/any camelCase-symbol comparison op.
135
- Repo: QoreTechnologies/qore (NOT qorus) — needs qore qlib
136
- reinstall; running copy is `~/omq/qlib/DataProvider/DpqlParser.qc`
137
- (identical to source). Shows as a red diagnostic under the seeded
138
- Text editor in `LiveExplain` until fixed.
139
- **FILED + FIXED (2026-06-11):** issue
140
- https://github.com/qoretechnologies/qore/issues/5348; fix on qore
141
- branch `bugfix/5348-dpql-infix-word-operator-case` (uncommitted,
142
- Nick reinstalls qore himself): lowercased `symbol_to_name` keys +
143
- case-insensitive lookup in `resolveExpressionName()`. Validated
144
- against pure source (the repo qlib carries a stale compiled
145
- `DataProvider.qmod` that qore prefers over source — moved aside for
146
- the test, restored after; ~/omq has no qmod, so plain source
147
- install works): infix `startsWith`/`STARTSWITH` parse to
148
- `starts-with`, function form + `like` unregressed, full
149
- serialize→parse round-trip green.
150
- **DEPLOYED locally 2026-06-11** (Nick reinstalled qore + restarted
151
- core): live `dpql/parse('"test" startsWith "t"')` → success, zero
152
- diagnostics; LiveExplain seeded editor clean (no banner/squiggles),
153
- Explain still server-rendered. The qore branch stays uncommitted;
154
- issue #5348 open until the fix is committed/PR'd upstream.
155
- - [ ] USER browser click-through per `VERIFY.local.md` § "Render-expression
156
- over LSP", incl. IDE :6007 comparison.
157
- - [ ] `/tmp/render-expression-exposure.md` marked resolved (done — outcome
158
- section appended).
159
- - [ ] Commit only after user approval.
@@ -1,176 +0,0 @@
1
- # Reqraft `auto` field — type-picker + polymorphic dispatch
2
-
3
- Phase 1 of the field migration (see
4
- [`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md)).
5
- Ports qorus-ide's `AutoField` polymorphic renderer into Reqraft's
6
- existing `FormField` / `TemplateField` / `FormEngine` stack. This is
7
- the **keystone** — the schema editor (phase 2) and most of the
8
- remaining field gap depend on it.
9
-
10
- **Status:** done pending user verify — implemented 2026-06-09. 8/8 story
11
- play tests pass (run via `test-storybook`), prod typecheck + eslint clean,
12
- verified in an isolated Storybook (picker, type inference, null toggle,
13
- live dropdown→Integer→number field, and the full FormEngine→…→AutoFormField
14
- chain). Uncommitted on `feature/dpql-editor` per the STOP-before-commit rule.
15
-
16
- **Scope:** one new field component + small dispatcher wiring. Delegates
17
- all concrete-type rendering back to the existing `FormField` switch;
18
- does **not** re-implement per-type fields.
19
- **Estimated size:** ~250–350 lines + 1 story file + 1 test file. ~1–2 days.
20
-
21
- ## Reference
22
-
23
- - Source to port: `qorus-frontend/qorus-ide/src/components/Field/auto.tsx`
24
- (type resolution ~`195-268`, type picker ~`933-1014`, soft-types list
25
- ~`945`, null toggle ~`308-317`).
26
- - Reqraft dispatcher: [`src/components/form/fields/Field.tsx`](../src/components/form/fields/Field.tsx)
27
- (the `FormField` switch + `renderAllowedValues`).
28
- - Reqraft type map (two copies to update):
29
- `Field.tsx:34-46` and
30
- [`TemplateField.tsx:49-77`](../src/components/form/fields/template/TemplateField.tsx).
31
- - Existing helper to reuse: `getTypeFromValue` from
32
- `src/helpers/validations` (already imported by `TemplateField`).
33
- - Type-picker UI: reuse `SelectFormField`
34
- (`src/components/form/fields/select/Select.tsx`).
35
-
36
- ## Surface area
37
-
38
- | File | Change |
39
- |---|---|
40
- | `src/components/form/fields/auto/AutoFormField.tsx` | **new** — type-picker, `auto`/`any` resolution, null toggle, delegates concrete render to `FormField` |
41
- | `src/components/form/fields/auto/AutoFormField.stories.tsx` | **new** — picker, inferred-type, null, allowed-values stories |
42
- | `src/components/form/fields/Field.tsx` | add `case 'auto': case 'any':` → `AutoFormField`; stop mapping `auto`→`long-string` |
43
- | `src/components/form/fields/template/TemplateField.tsx` | same map fix so `auto`/`any` no longer collapse to `long-string` |
44
- | `src/components/form/index.tsx` | export `AutoFormField` |
45
- | `src/types/Form.ts` | ensure `'auto'` / `'any'` are valid `TFormFieldType` members (they derive from `TQorusType`; confirm) |
46
- | `__tests__/form/AutoFormField.test.tsx` | **new** — type resolution + picker behaviour |
47
-
48
- ## Items
49
-
50
- ### 1. `AutoFormField` component
51
-
52
- **Decision.** New component that owns *type selection*, then hands the
53
- resolved concrete type to the existing `FormField`. It is the Reqraft
54
- analog of `AutoField` but thin — `FormField` already knows how to
55
- render every concrete type, so `AutoFormField` must not duplicate that
56
- switch.
57
-
58
- **Behaviour.**
59
- - Resolve an internal type: `defaultType` if given, else
60
- `getTypeFromValue(value)`; `auto`/`any` stay unresolved until the
61
- user picks.
62
- - When unresolved (or `allowedTypes.length > 1`), render the
63
- type-picker (item 2), then render the chosen type's field by
64
- delegating to `<FormField type={resolved} value onChange ... />`.
65
- - When resolved, render `<FormField>` directly for that type.
66
- - Reuse `FormField`'s allowed-values rendering rather than
67
- re-implementing it (either render `<FormField>` which already calls
68
- `renderAllowedValues`, or lift the helper — prefer the former).
69
-
70
- **Props.** Mirror the relevant subset of `IAutoFieldProps`:
71
- `type` (`'auto'`/`'any'` or a concrete type), `value`, `onChange`,
72
- `defaultType?`, `allowedTypes?: { name/value }[]`, `canBeNull?`,
73
- `disabled`, `readonly`, `size`, plus the allowed-values props already
74
- on `IFormFieldProps`. **Stub but do not wire** `requestFieldData` /
75
- `type-depends-on` (IDE-only).
76
-
77
- **Surface area.** `AutoFormField.tsx` (~150–200 lines).
78
-
79
- **Tests.** Unit: given `value=42` + `type='auto'` resolves to a number
80
- field; given `defaultType='hash'` renders the hash branch; picking a
81
- type from the picker swaps the rendered sub-field.
82
-
83
- ### 2. Type picker
84
-
85
- **Decision.** A `SelectFormField` of soft types, shown when the type is
86
- `auto`/`any` or `allowedTypes` has >1 entry. Default soft-type list
87
- (from auto.tsx ~`945`):
88
- `bool, softbool, date, string, softstring, binary, float, softfloat,
89
- list, softlist, hash, int, softint, rgbcolor`. When `allowedTypes` is
90
- provided, use it verbatim instead of the soft list.
91
-
92
- **Note.** Soft types (`softint`, `softstring`, …) resolve to their
93
- hard counterpart for *rendering* (a `softint` renders the number
94
- field) but the chosen type is preserved in the emitted value's `type`
95
- metadata, matching qorus-ide. Confirm `FormField` tolerates a `soft*`
96
- type by extending `mapQorusTypeToFormFieldType` (soft* → base type).
97
-
98
- **Surface area.** Inside `AutoFormField.tsx`; small `mapQorus...`
99
- extension for `soft*`.
100
-
101
- **Tests.** Picker visible only for `auto`/`any`/multi-`allowedTypes`;
102
- selecting `int` renders the number field.
103
-
104
- ### 3. Null toggle
105
-
106
- **Decision.** When `canBeNull`, render a "Set as null" / "Unset null"
107
- button (qorus-ide auto.tsx `308-317`). Setting null emits the server's
108
- null sentinel and hides the field; unsetting restores the prior value.
109
-
110
- **Surface area.** `AutoFormField.tsx` (~20 lines).
111
-
112
- **Tests.** Toggle sets/clears null; field hidden while null.
113
-
114
- ### 4. Dispatcher wiring
115
-
116
- **Decision.** Add `case 'auto': case 'any':` to `FormField`'s switch
117
- returning `<AutoFormField ... />`. Fix **both**
118
- `mapQorusTypeToFormFieldType` copies so `auto`/`any` no longer fall
119
- through to `'long-string'`. Because `FormEngine` → `TemplateField` →
120
- `FormField`, schema-driven nested forms gain `auto` with no further
121
- work.
122
-
123
- **Surface area.** `Field.tsx`, `TemplateField.tsx`, `index.tsx` export.
124
-
125
- **Tests.** `FormEngine` story with an options schema containing a field
126
- typed `auto` renders the picker (not a textarea).
127
-
128
- ## Sequencing
129
-
130
- 1. Item 1 (component skeleton, delegates to `FormField`)
131
- 2. Item 2 (type picker) — the core of the value
132
- 3. Item 3 (null toggle) — independent, small
133
- 4. Item 4 (dispatcher wiring + map fix) — last, flips the behaviour on
134
-
135
- ## Tasks
136
-
137
- - [x] `AutoFormField.tsx` — type resolution via `getTypeFromValue` /
138
- `defaultType`; delegates concrete render to `FormField`
139
- - [x] Type picker (`SelectFormField`) with soft-type list; `allowedTypes`
140
- override; gated on `auto`/`any`/multi-type; honours `noSoft`
141
- - [x] `soft*` → base-type handling. In `AutoFormField.getRenderType`
142
- (`softX`→`X`, `binary`→`long-string`) AND, as a later pass, in
143
- `FormField` itself (`renderField` strips the `soft` prefix; `binary`
144
- added to the `long-string` case) and in both `mapQorusTypeToFormFieldType`
145
- copies. So a bare `<FormField type="softint" />` / `type="binary"` now
146
- renders correctly. Stories: `Field.stories.tsx` `SoftInteger` + `Binary`.
147
- - [x] Null toggle gated on `canBeNull`
148
- - [x] `case 'auto': case 'any':` in `FormField`; `auto`/`any` now map to
149
- `'auto'` in both type maps instead of falling through to `long-string`
150
- - [x] Export `AutoFormField` from `form/index.tsx`
151
- - [x] Confirm `'auto'`/`'any'` typecheck as `TFormFieldType`
152
- (`TFormFieldValueType` already maps them to `any`)
153
- - [x] Stories: picker (`Empty`), inferred-from-value (`InferredInteger`,
154
- `InferredText`), concrete (`ConcreteString`), null (`Nullable`),
155
- allowed-types subset, no-soft, and `FormEngine`-with-auto-field
156
- (`ViaFormEngine`)
157
- - [x] Tests: story play tests cover resolution + null + concrete + inference
158
- + the FormEngine chain (run via `test-storybook`, 8/8 pass). No
159
- separate jest file — fields are tested via stories in this repo.
160
- - [x] Prod typecheck, eslint, storybook play tests pass
161
- - [ ] **STOP — user verifies in browser** before commit
162
-
163
- ## Out of scope
164
-
165
- - ~~Bare `soft*` types passed directly to `FormField`/`TemplateField`.~~
166
- **Done** (2026-06-09 follow-up): `FormField.renderField` strips the
167
- `soft` prefix, `binary` was added to the `long-string` case, and both
168
- `mapQorusTypeToFormFieldType` copies strip `soft`. Verified by
169
- `Field.stories.tsx` (`SoftInteger`, `Binary`).
170
- - `type-depends-on` / `requestFieldData` cross-field resolution (IDE-only)
171
- - `data-provider` / `connection` / `InterfaceSelector` branches from
172
- qorus-ide's AutoField (bucket 3)
173
- - Expression/template handling beyond what `TemplateField` already does
174
- - The remaining bucket-1 fields (`byte-size`, `url`, `option_hash`,
175
- `code-editor`, …) — separate task files; several get cheaper once
176
- this lands