@qoretechnologies/reqraft 0.10.62 → 0.10.63-pr.142.g0b675cd

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 (736) hide show
  1. package/README.md +21 -1
  2. package/dist/components/Description/describedControl.d.ts +48 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +10 -1
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +11 -6
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +47 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +151 -83
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +34 -1
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +487 -87
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +19 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +0 -1
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +12 -20
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +41 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +396 -99
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  111. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  112. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  113. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  115. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  116. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentWrapper.js +4 -2
  118. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  119. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  120. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  121. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  122. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  123. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  125. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  127. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/index.js +121 -77
  129. package/dist/components/form/expressions/builder/index.js.map +1 -1
  130. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  131. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/item.js +19 -5
  133. package/dist/components/form/expressions/builder/item.js.map +1 -1
  134. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  135. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  136. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  137. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  138. package/dist/components/form/expressions/expressionOperands.js +97 -0
  139. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  140. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/mockExpressions.js +22 -5
  142. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  144. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  145. package/dist/components/form/expressions/renderExpressionToText.js +35 -9
  146. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  147. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  148. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  149. package/dist/components/form/expressions/textOfExpression.js +37 -0
  150. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  151. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  152. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  153. package/dist/components/form/expressions/useExpressionType.js +181 -0
  154. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  155. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  156. package/dist/components/form/expressions/useRenderExpression.js +7 -7
  157. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  158. package/dist/components/form/fields/Field.d.ts.map +1 -1
  159. package/dist/components/form/fields/Field.js +20 -7
  160. package/dist/components/form/fields/Field.js.map +1 -1
  161. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  162. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  163. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  164. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  165. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  166. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  167. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  168. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  169. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  170. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  171. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  172. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  173. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  174. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  175. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  176. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  177. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  178. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  179. package/dist/components/form/fields/binary/Binary.js +23 -3
  180. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  181. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  182. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  183. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  184. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  185. package/dist/components/form/fields/color/Color.d.ts +103 -16
  186. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  187. package/dist/components/form/fields/color/Color.js +611 -16
  188. package/dist/components/form/fields/color/Color.js.map +1 -1
  189. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  190. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  191. package/dist/components/form/fields/emittedValues.js +24 -1
  192. package/dist/components/form/fields/emittedValues.js.map +1 -1
  193. package/dist/components/form/fields/file/File.d.ts +1 -1
  194. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  195. package/dist/components/form/fields/file/File.js +4 -2
  196. package/dist/components/form/fields/file/File.js.map +1 -1
  197. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  198. package/dist/components/form/fields/long-string/LongString.js +17 -3
  199. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  200. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  201. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  202. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  203. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  204. package/dist/components/form/fields/number/Number.d.ts +6 -0
  205. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  206. package/dist/components/form/fields/number/Number.js +41 -6
  207. package/dist/components/form/fields/number/Number.js.map +1 -1
  208. package/dist/components/form/fields/object/Object.d.ts +1 -1
  209. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  210. package/dist/components/form/fields/object/Object.js +4 -2
  211. package/dist/components/form/fields/object/Object.js.map +1 -1
  212. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  213. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  214. package/dist/components/form/fields/pendingEdit.js +79 -0
  215. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  216. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  217. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  218. package/dist/components/form/fields/rich-text/RichText.js +190 -81
  219. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  220. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  221. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  222. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  223. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  224. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  225. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  226. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  227. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  228. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  229. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  230. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  231. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  232. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  233. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  234. package/dist/components/form/fields/schema-definition/index.js +8 -4
  235. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  236. package/dist/components/form/fields/select/Select.d.ts +2 -0
  237. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  238. package/dist/components/form/fields/select/Select.js +19 -10
  239. package/dist/components/form/fields/select/Select.js.map +1 -1
  240. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  241. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  242. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  243. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  244. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  245. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  246. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  247. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +5 -5
  248. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  249. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
  250. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  251. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  252. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  253. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  254. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  255. package/dist/components/form/fields/template/TemplateField.d.ts +83 -1
  256. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  257. package/dist/components/form/fields/template/TemplateField.js +535 -85
  258. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  259. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  260. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  261. package/dist/components/form/fields/template/TemplateText.js +8 -4
  262. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  263. package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
  264. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  265. package/dist/components/form/fields/template/writtenAsText.js +188 -0
  266. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  267. package/dist/components/form/index.d.ts +10 -0
  268. package/dist/components/form/index.d.ts.map +1 -1
  269. package/dist/components/form/index.js +23 -1
  270. package/dist/components/form/index.js.map +1 -1
  271. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  272. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  273. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  274. package/dist/components/log/Log.d.ts.map +1 -1
  275. package/dist/components/log/Log.js +15 -7
  276. package/dist/components/log/Log.js.map +1 -1
  277. package/dist/components/menu/Menu.d.ts.map +1 -1
  278. package/dist/components/menu/Menu.js +19 -10
  279. package/dist/components/menu/Menu.js.map +1 -1
  280. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  281. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  282. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  283. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  284. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  285. package/dist/components/smartEditor/MarkdownDoc.js +1 -1
  286. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  287. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  288. package/dist/components/smartEditor/SmartEditor.js +51 -136
  289. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  290. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  291. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  292. package/dist/components/smartEditor/completionStyle.js +66 -0
  293. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  294. package/dist/components/smartEditor/index.d.ts +5 -1
  295. package/dist/components/smartEditor/index.d.ts.map +1 -1
  296. package/dist/components/smartEditor/index.js +19 -1
  297. package/dist/components/smartEditor/index.js.map +1 -1
  298. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  299. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  300. package/dist/components/smartEditor/templateCompletions.js +94 -0
  301. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  302. package/dist/components/smartEditor/types.d.ts +12 -1
  303. package/dist/components/smartEditor/types.d.ts.map +1 -1
  304. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  305. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  306. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  307. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  308. package/dist/components/smartEditor/useLspHover.d.ts +22 -7
  309. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  310. package/dist/components/smartEditor/useLspHover.js +86 -17
  311. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  312. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  313. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  314. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  315. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  316. package/dist/components/smartEditor/useLspSession.js +7 -6
  317. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  318. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  319. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  320. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  321. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  322. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  323. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  324. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  325. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  326. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  327. package/dist/components/supportTicket/TicketHeader.js +20 -2
  328. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  329. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  330. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  331. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  332. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  333. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  334. package/dist/components/ticketThread/TicketThread.js +36 -11
  335. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  336. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  337. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  338. package/dist/helpers/descriptionTooltip.js +70 -0
  339. package/dist/helpers/descriptionTooltip.js.map +1 -0
  340. package/dist/helpers/domProps.d.ts +5 -0
  341. package/dist/helpers/domProps.d.ts.map +1 -0
  342. package/dist/helpers/domProps.js +47 -0
  343. package/dist/helpers/domProps.js.map +1 -0
  344. package/dist/helpers/expressions.d.ts +107 -2
  345. package/dist/helpers/expressions.d.ts.map +1 -1
  346. package/dist/helpers/expressions.js +223 -8
  347. package/dist/helpers/expressions.js.map +1 -1
  348. package/dist/helpers/hoveringPointer.d.ts +26 -0
  349. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  350. package/dist/helpers/hoveringPointer.js +29 -0
  351. package/dist/helpers/hoveringPointer.js.map +1 -0
  352. package/dist/helpers/markdownText.d.ts +14 -0
  353. package/dist/helpers/markdownText.d.ts.map +1 -0
  354. package/dist/helpers/markdownText.js +160 -0
  355. package/dist/helpers/markdownText.js.map +1 -0
  356. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  357. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  358. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  359. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  360. package/dist/helpers/readableColors.d.ts +36 -0
  361. package/dist/helpers/readableColors.d.ts.map +1 -0
  362. package/dist/helpers/readableColors.js +116 -0
  363. package/dist/helpers/readableColors.js.map +1 -0
  364. package/dist/helpers/templateItems.d.ts +2 -2
  365. package/dist/helpers/templateItems.d.ts.map +1 -1
  366. package/dist/helpers/templateItems.js +6 -4
  367. package/dist/helpers/templateItems.js.map +1 -1
  368. package/dist/helpers/templates.d.ts +26 -1
  369. package/dist/helpers/templates.d.ts.map +1 -1
  370. package/dist/helpers/templates.js +41 -6
  371. package/dist/helpers/templates.js.map +1 -1
  372. package/dist/helpers/validations.d.ts +9 -0
  373. package/dist/helpers/validations.d.ts.map +1 -1
  374. package/dist/helpers/validations.js +139 -33
  375. package/dist/helpers/validations.js.map +1 -1
  376. package/dist/hooks/useQorusTypes.d.ts +7 -15
  377. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  378. package/dist/hooks/useQorusTypes.js +25 -166
  379. package/dist/hooks/useQorusTypes.js.map +1 -1
  380. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  381. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  382. package/dist/hooks/useReadableIntentShade.js +23 -0
  383. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  384. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  385. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  386. package/dist/hooks/useReadableOpacity.js +17 -0
  387. package/dist/hooks/useReadableOpacity.js.map +1 -0
  388. package/dist/index.d.ts +1 -0
  389. package/dist/index.d.ts.map +1 -1
  390. package/dist/index.js +1 -0
  391. package/dist/index.js.map +1 -1
  392. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  393. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  394. package/dist/tracking/ui/ExperimentCard.js +26 -10
  395. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  396. package/dist/tracking/ui/card.d.ts +2 -2
  397. package/dist/tracking/ui/card.d.ts.map +1 -1
  398. package/dist/tracking/ui/card.js +2 -2
  399. package/dist/tracking/ui/card.js.map +1 -1
  400. package/dist/tracking/ui/readable.d.ts +14 -0
  401. package/dist/tracking/ui/readable.d.ts.map +1 -0
  402. package/dist/tracking/ui/readable.js +60 -0
  403. package/dist/tracking/ui/readable.js.map +1 -0
  404. package/package.json +14 -5
  405. package/.claude/CLAUDE.md +0 -317
  406. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  407. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  408. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  409. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  410. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  411. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  412. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  413. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  414. package/.tasks/INDEX.md +0 -111
  415. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  416. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  417. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  418. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  419. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  420. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  421. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  422. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  423. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  424. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  425. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  426. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  427. package/CODE_OF_CONDUCT.md +0 -105
  428. package/CONTRIBUTING.MD +0 -78
  429. package/SECURITY.md +0 -3
  430. package/chromatic.config.json +0 -5
  431. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  432. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  433. package/design/COMPACT_PARITY.md +0 -85
  434. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  435. package/design/FORM_ENGINE_COMPACT.md +0 -300
  436. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  437. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  438. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  439. package/design/IDE_INTEGRATION.md +0 -64
  440. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  441. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  442. package/design/SMART_EDITOR_UX.md +0 -438
  443. package/design/TRACKING.md +0 -290
  444. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  445. package/src/components/Description/index.tsx +0 -254
  446. package/src/components/Description/markdownRendererContext.tsx +0 -29
  447. package/src/components/FocusedEditing/index.tsx +0 -50
  448. package/src/components/codeSize/index.tsx +0 -79
  449. package/src/components/composer/Composer.stories.tsx +0 -238
  450. package/src/components/composer/Composer.tsx +0 -554
  451. package/src/components/composer/helpers.ts +0 -74
  452. package/src/components/composer/index.ts +0 -2
  453. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  454. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  455. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  456. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  457. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  458. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  459. package/src/components/dpqlEditor/index.ts +0 -41
  460. package/src/components/dpqlEditor/types.ts +0 -203
  461. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  462. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  463. package/src/components/form/engine/CompactRow.tsx +0 -2620
  464. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  465. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  466. package/src/components/form/engine/FormEngine.tsx +0 -4569
  467. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  468. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  469. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  470. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  471. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  472. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  473. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  474. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  475. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  476. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  477. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  478. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  479. package/src/components/form/engine/compactRowContext.ts +0 -148
  480. package/src/components/form/engine/compactRowStyles.ts +0 -898
  481. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  482. package/src/components/form/engine/optionActions.ts +0 -128
  483. package/src/components/form/engine/optionsContext.ts +0 -24
  484. package/src/components/form/engine/readFirst.ts +0 -1077
  485. package/src/components/form/engine/rendererTypes.ts +0 -107
  486. package/src/components/form/engine/revealRow.ts +0 -123
  487. package/src/components/form/engine/rowFocus.ts +0 -101
  488. package/src/components/form/engine/rowMenuContext.ts +0 -159
  489. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  490. package/src/components/form/engine/typeChoices.ts +0 -63
  491. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  492. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  493. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  494. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  495. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  496. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  497. package/src/components/form/engine/variants/variantModel.ts +0 -223
  498. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  499. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  500. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  501. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  502. package/src/components/form/expressions/argumentPresence.ts +0 -213
  503. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  504. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  505. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  506. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  507. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  508. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  509. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  510. package/src/components/form/expressions/builder/index.tsx +0 -1545
  511. package/src/components/form/expressions/builder/item.tsx +0 -89
  512. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  513. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  514. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  515. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  516. package/src/components/form/expressions/mockExpressions.ts +0 -317
  517. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  518. package/src/components/form/expressions/types.ts +0 -110
  519. package/src/components/form/expressions/useExpressions.ts +0 -101
  520. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  521. package/src/components/form/fields/Field.stories.tsx +0 -143
  522. package/src/components/form/fields/Field.tsx +0 -732
  523. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  524. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  525. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  526. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  527. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  528. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  529. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  530. package/src/components/form/fields/binary/Binary.tsx +0 -91
  531. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  532. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  533. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  534. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  535. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  536. package/src/components/form/fields/color/Color.tsx +0 -46
  537. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  538. package/src/components/form/fields/cron/Cron.tsx +0 -80
  539. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  540. package/src/components/form/fields/date/Date.tsx +0 -55
  541. package/src/components/form/fields/emittedValues.ts +0 -70
  542. package/src/components/form/fields/file/File.stories.tsx +0 -161
  543. package/src/components/form/fields/file/File.tsx +0 -227
  544. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  545. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  546. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  547. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  548. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  549. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  550. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  551. package/src/components/form/fields/number/Number.tsx +0 -160
  552. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  553. package/src/components/form/fields/object/Object.tsx +0 -255
  554. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  555. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  556. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  557. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  558. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  559. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  560. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  561. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  562. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  563. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  564. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  565. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  566. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  567. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  568. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  569. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  570. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  571. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  572. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  573. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  574. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  575. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  576. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  577. package/src/components/form/fields/schema-definition/types.ts +0 -185
  578. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  579. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  580. package/src/components/form/fields/select/Select.tsx +0 -624
  581. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  582. package/src/components/form/fields/string/String.stories.tsx +0 -86
  583. package/src/components/form/fields/string/String.tsx +0 -43
  584. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  585. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  586. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  587. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  588. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  589. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  590. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  591. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  592. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  593. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  594. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  595. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  596. package/src/components/form/fields/url/Url.tsx +0 -85
  597. package/src/components/form/index.tsx +0 -47
  598. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  599. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  600. package/src/components/imageLightbox/index.ts +0 -1
  601. package/src/components/log/Log.stories.tsx +0 -333
  602. package/src/components/log/Log.tsx +0 -285
  603. package/src/components/menu/Menu.stories.tsx +0 -155
  604. package/src/components/menu/Menu.tsx +0 -312
  605. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  606. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  607. package/src/components/qonsoleSmartInput/index.ts +0 -16
  608. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  609. package/src/components/qonsoleSmartInput/types.ts +0 -133
  610. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  611. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  612. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  613. package/src/components/searchFilterBar/index.ts +0 -1
  614. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  615. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  616. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  617. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  618. package/src/components/smartEditor/helpers.ts +0 -217
  619. package/src/components/smartEditor/index.ts +0 -35
  620. package/src/components/smartEditor/styling.ts +0 -45
  621. package/src/components/smartEditor/types.ts +0 -211
  622. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  623. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  624. package/src/components/smartEditor/useLspHover.ts +0 -230
  625. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  626. package/src/components/smartEditor/useLspSession.ts +0 -231
  627. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  628. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  629. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  630. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  631. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  632. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  633. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  634. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  635. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  636. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  637. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  638. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  639. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  640. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  641. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  642. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  643. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  644. package/src/components/supportTicket/index.ts +0 -10
  645. package/src/components/supportTicket/meta.ts +0 -206
  646. package/src/components/supportTicket/ticketModel.ts +0 -131
  647. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  648. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  649. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  650. package/src/components/ticketReferences/index.ts +0 -2
  651. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  652. package/src/components/ticketThread/TicketThread.tsx +0 -719
  653. package/src/components/ticketThread/index.ts +0 -6
  654. package/src/contexts/FetchContext.tsx +0 -25
  655. package/src/contexts/ReqraftContext.tsx +0 -9
  656. package/src/contexts/StorageContext.tsx +0 -33
  657. package/src/global.d.ts +0 -4
  658. package/src/helpers/allowedValues.ts +0 -249
  659. package/src/helpers/choiceChip.ts +0 -227
  660. package/src/helpers/common.ts +0 -326
  661. package/src/helpers/dpqlDetection.ts +0 -209
  662. package/src/helpers/expressions.ts +0 -140
  663. package/src/helpers/optionUiTypes.ts +0 -199
  664. package/src/helpers/options.ts +0 -150
  665. package/src/helpers/providerValue.ts +0 -125
  666. package/src/helpers/scrollbar.ts +0 -32
  667. package/src/helpers/singleLineString.ts +0 -61
  668. package/src/helpers/templateItems.ts +0 -81
  669. package/src/helpers/templateText.ts +0 -350
  670. package/src/helpers/templates.ts +0 -602
  671. package/src/helpers/validations.ts +0 -2085
  672. package/src/hooks/useArgSchema.ts +0 -37
  673. package/src/hooks/useCoarsePointer.ts +0 -30
  674. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  675. package/src/hooks/useFetch/useFetch.tsx +0 -154
  676. package/src/hooks/usePhoneViewport.ts +0 -34
  677. package/src/hooks/useQorusTypes.ts +0 -233
  678. package/src/hooks/useReqraftProperty.ts +0 -16
  679. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  680. package/src/hooks/useStorage/useStorage.ts +0 -35
  681. package/src/hooks/useTemplates.ts +0 -123
  682. package/src/hooks/useValidation.ts +0 -9
  683. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  684. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  685. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  686. package/src/index.tsx +0 -86
  687. package/src/providers/FetchProvider.tsx +0 -40
  688. package/src/providers/ReqraftProvider.tsx +0 -52
  689. package/src/providers/StorageProvider.tsx +0 -131
  690. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  691. package/src/stores/currentUser/currentUser.tsx +0 -94
  692. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  693. package/src/stories/Tests/utils.ts +0 -320
  694. package/src/stories/storyNetwork.ts +0 -92
  695. package/src/stories/tracking.tsx +0 -206
  696. package/src/tracking/browser/attach.ts +0 -186
  697. package/src/tracking/browser/env.ts +0 -78
  698. package/src/tracking/core/consent.ts +0 -37
  699. package/src/tracking/core/engagement.ts +0 -47
  700. package/src/tracking/core/experiments.ts +0 -258
  701. package/src/tracking/core/hash.ts +0 -26
  702. package/src/tracking/core/ids.ts +0 -25
  703. package/src/tracking/core/observable.ts +0 -23
  704. package/src/tracking/core/queue.ts +0 -131
  705. package/src/tracking/core/sections.ts +0 -166
  706. package/src/tracking/core/storage.ts +0 -69
  707. package/src/tracking/core/tracker.ts +0 -417
  708. package/src/tracking/core/types.ts +0 -162
  709. package/src/tracking/core/utm.ts +0 -23
  710. package/src/tracking/index.ts +0 -72
  711. package/src/tracking/markup.ts +0 -17
  712. package/src/tracking/react/Experiment.tsx +0 -44
  713. package/src/tracking/react/TrackingProvider.tsx +0 -56
  714. package/src/tracking/react/hooks.ts +0 -106
  715. package/src/tracking/react/index.ts +0 -13
  716. package/src/tracking/testing.ts +0 -108
  717. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  718. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  719. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  720. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  721. package/src/tracking/ui/anchor.ts +0 -180
  722. package/src/tracking/ui/card.ts +0 -464
  723. package/src/tracking/ui/client.ts +0 -117
  724. package/src/tracking/ui/index.ts +0 -77
  725. package/src/tracking/ui/types.ts +0 -110
  726. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  727. package/src/types/Form.ts +0 -29
  728. package/src/types.ts +0 -14
  729. package/src/utils/datetime.ts +0 -10
  730. package/src/utils/fetch.ts +0 -457
  731. package/src/utils/lspClient.ts +0 -711
  732. package/src/utils/lspClient.types.ts +0 -211
  733. package/src/utils/queryUnlessCancelled.ts +0 -28
  734. package/src/utils/websocket.ts +0 -293
  735. package/vite.config.ts +0 -58
  736. 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