@qoretechnologies/reqraft 0.10.64 → 0.10.65-pr.137.g62fcecc

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 (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -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 +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  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 +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -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 +207 -97
  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 +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  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 +21 -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 +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  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 +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
@@ -1,419 +0,0 @@
1
- # Form engine — field migration from qorus-ide
2
-
3
- Locked design + rationale for closing the gap between Reqraft's form
4
- engine (`src/components/form/`) and qorus-ide's older `Field` system
5
- (`qorus-frontend/qorus-ide/src/components/Field/`). The first concrete
6
- deliverables are (1) a Reqraft **`auto` field** and (2) the migrated
7
- **DataSchema editor** (`schema-definition`).
8
-
9
- Execution checklists live at:
10
- - [`.tasks/REQRAFT_AUTO_FIELD.md`](../.tasks/REQRAFT_AUTO_FIELD.md) — phase 1
11
- - [`.tasks/SCHEMA_DEFINITION_FIELD.md`](../.tasks/SCHEMA_DEFINITION_FIELD.md) — phase 2
12
-
13
- ## Background — why fields are "missing"
14
-
15
- There are **two parallel field systems**:
16
-
17
- | | qorus-ide `Field/` | Reqraft `form/` |
18
- |---|---|---|
19
- | Origin | 2024-01 — the original | 2024-04 — a cleaner rebuild |
20
- | Field types | ~68 | ~15 |
21
- | Dispatcher | `Field/index.tsx` → `auto.tsx` | `form/fields/Field.tsx` (`FormField`) |
22
- | Polymorphic core | **`AutoField`** (1017 lines) | `TemplateField` → `FormField` (thin) |
23
-
24
- New field types land in **qorus-ide first** (that's the live product
25
- surface) and get migrated to Reqraft incrementally — the DPQL / Smart
26
- editors (`0.10.0`) were the most recent example. "Missing fields" =
27
- Reqraft is younger and still catching up, not a deliberate omission.
28
-
29
- The full gap (qorus-ide types absent from Reqraft) breaks into three
30
- buckets:
31
-
32
- 1. **Generic data fields** — portable, belong in a toolkit:
33
- `auto`, `schema-definition`, `data-provider`, `options`,
34
- `option_hash`, `byte-size`, `url`, `code-editor`, `array-of-pairs`,
35
- `multi-select`/`select-array`, `enum`-as-radio, `collection-documents`.
36
- 2. **Server-driven `ui_type` editors** — `tool-catalog`,
37
- `processor-mappings`, `test-cases`, `active-windows` (`dpql` already
38
- migrated).
39
- 3. **App-coupled / IDE-specific** — the ~20 `InterfaceSelector` types
40
- (`workflow`, `service`, `job`, `mapper`, `fsm`, the `schema`
41
- *interface picker*, …), plus `class-array`, `fsm-list`,
42
- `service-events`, `processor`, `api-manager`, `tree`, etc. These
43
- depend on qorus-ide app context (`InitialContext`, `TextContext`,
44
- `qorus_instance`, the `interfaceToPlural` domain map) and are **out
45
- of scope** for the generic toolkit.
46
-
47
- This batch tackles bucket 1, in the order dictated by the dependency
48
- below.
49
-
50
- ## The keystone — `auto` is a prerequisite, not an option
51
-
52
- qorus-ide's `AutoField` is the polymorphic renderer **most fields
53
- funnel through.** Reqraft has no equivalent: `FormField` /
54
- `TemplateField` collapse `auto`/`any`/`binary` → `long-string` (a
55
- plain textarea) via `mapQorusTypeToFormFieldType`
56
- ([`TemplateField.tsx:49-77`](../src/components/form/fields/template/TemplateField.tsx)),
57
- and there is no type-picker UI at all.
58
-
59
- This blocks the schema editor directly. The DataSchema catalogue's
60
- leaf-type adapter falls back to `auto` for anything that isn't a plain
61
- primitive ([`catalog.ts` `catalogTypeToFieldType`](../../qorus-ide/src/components/Field/schemaDefinition/catalog.ts)):
62
-
63
- ```ts
64
- default:
65
- // `*auto`, `auto`, and anything unrecognised fall back to the
66
- // free-form `auto` field so no catalogue value is ever undroppable.
67
- return { fieldType: 'auto' };
68
- ```
69
-
70
- So **"migrate the schema field" and "use the auto field for most
71
- fields" are the same thread.** Build the `auto` field first; the
72
- schema editor (and the rest of bucket 1) render their fields through
73
- it.
74
-
75
- ## Goal
76
-
77
- 1. Give Reqraft a real `auto` field: a type-picker + polymorphic
78
- dispatcher that mirrors qorus-ide's `AutoField`, wired into the
79
- existing `FormField` / `TemplateField` / `FormEngine` stack so every
80
- consumer (including `FormEngine`-driven nested forms) gains it for
81
- free.
82
- 2. Migrate `SchemaDefinitionEditor` onto Reqraft's `FormEngine` as the
83
- first complex, server-catalogue-driven field — proving the pattern
84
- for buckets 1 & 2.
85
-
86
- ## Phase 1 — the Reqraft `auto` field
87
-
88
- ### What `AutoField` does in qorus-ide (the spec to port)
89
-
90
- From [`qorus-ide/src/components/Field/auto.tsx`](../../qorus-ide/src/components/Field/auto.tsx):
91
-
92
- - **Type resolution.** Derives a `currentInternalType` from
93
- `defaultType`, or infers it from the value via `getTypeFromValue`
94
- (Reqraft already has this helper at `helpers/validations`). Handles
95
- `auto` / `any` by inference.
96
- - **Type picker.** When the type is `auto`/`any` (or `allowedTypes`
97
- has >1 entry), renders a `SelectField` of the types a typed-in value
98
- can have (`getImmediateValueTypes()`: True/False, Date, Text, Binary,
99
- Decimal, List, Key/Value {}, Integer, RGB Color), with no item count,
100
- letting the user pick the concrete type; the chosen type then renders
101
- the matching sub-field. No Qore soft type (`softint`, `softlist`, …) is
102
- offered: a soft type only declares a conversion for what a variable or
103
- parameter is given, which means nothing for a literal. A soft type in a
104
- caller's `allowedTypes` is offered once, as its base type, and a soft
105
- type that arrives as `defaultType` / `defaultInternalType` is edited
106
- with its base type's editor (`editorTypeOf()`) while the declared type
107
- is what `onChange` reports. (`noSoft` is deprecated and inert.)
108
- - **Concrete dispatch.** A switch over the resolved type → the right
109
- field component. In Reqraft this delegates back into the existing
110
- `FormField` switch (which already covers string/bool/int/float/
111
- rgbcolor/long-string/markdown/cron/richtext/date/file/select/hash/
112
- list) rather than duplicating it.
113
- - **Null handling.** A "Set as null" / "Unset null" toggle when the
114
- field `canBeNull`.
115
- - **Allowed values.** Already handled by `FormField.renderAllowedValues`
116
- — reuse it.
117
-
118
- ### Approach — a new `AutoFormField`, folded into the dispatcher
119
-
120
- Create `src/components/form/fields/auto/AutoFormField.tsx`:
121
-
122
- - Owns the type-picker UI and the `auto`/`any` → concrete-type
123
- resolution + null toggle.
124
- - For the resolved concrete type, **delegates to the existing
125
- `FormField`** (pass the resolved `type` + `value` + `onChange`). No
126
- re-implementation of the per-type rendering — `FormField` stays the
127
- single source of truth for "how to render type X".
128
- - Add `case 'auto': case 'any':` to `FormField`'s switch so the
129
- dispatcher routes to `AutoFormField` (mirrors how qorus-ide's
130
- `Field/index.tsx` routes `type="auto"` → `AutoField`). Because
131
- `FormEngine` → `TemplateField` → `FormField`, nested schema-driven
132
- forms gain `auto` automatically.
133
- - Update both `mapQorusTypeToFormFieldType` copies (in `Field.tsx` and
134
- `TemplateField.tsx`) so `auto`/`any` route to `'auto'` instead of
135
- collapsing to `'long-string'`. **This is the one behaviour change for
136
- existing consumers** — see Migration impact.
137
-
138
- **Revised 2026-09-14 — an untyped field is typed into, never asked for a
139
- type.** No field shows the type picker's *"Please select data type"*
140
- anymore. It asked a question about storage ("is this Text or a Number?")
141
- that an author writing a value often cannot answer, before they could write
142
- anything, and it replaced a typable field with a pick-only one.
143
-
144
- - **`AutoFormField`**, for a type that is still `auto` / `any`, renders the
145
- long-string editor and stores what is typed as untyped — exactly what
146
- template mode stores. The picker appears only where there is a real
147
- choice: the schema allows several concrete types (`allowed_types`), or
148
- the field already holds a value of a concrete type.
149
- - **An explicit type** is chosen from the field's ⋮ menu — the per-type
150
- entries under *Set Custom Value* (see `engine/typeChoices.ts`).
151
- - **`TemplateField`** opens an empty untyped field that may hold a custom
152
- value in template mode, whose editor is typable and offers the templates.
153
- It decides that from the field's props, not from whether the template list
154
- has arrived: on a cold load the type-filtered list does not exist at
155
- mount, and a landing chosen from it put every such field on the picker.
156
- - A field that may NOT hold a custom value (FormEngine passes
157
- `allowCustomValues={false}` for `any`) still opens on its template menu —
158
- a pick-only control because the schema made it one, not a type question.
159
- - Emptying that editor leaves the field in template mode, where an empty
160
- field lands. Switching to custom mode mounted a different editor in place
161
- of the one being typed in, so the last backspace lost the cursor.
162
-
163
- Guarded by `__tests__/untypedFieldNeverAsksForAType.test.tsx` and the
164
- `AutoFormField` / `TemplateField` stories (`Empty`, `ViaFormEngine`,
165
- `AutoComponent`, `EmptyAnyOpensOnTemplates`).
166
-
167
- **Revised 2026-09-15 — template mode draws references as named chips.**
168
- Template mode's typable editor (a string or untyped field that may also hold
169
- a custom value) is `RichTextFormField` with `valueFormat: 'text'`, not a
170
- textarea. The field still stores the plain string; each template reference in
171
- it (`TEMPLATE_TOKEN_SOURCE`) is drawn as a chip, so a chosen template reads as
172
- the name it was chosen by — in the Visual builder's operands and in every
173
- string field that takes templates. A textarea spelled it `$local:name`.
174
-
175
- - The chip's label is `templateChipLabel`: the catalogue's name for the
176
- reference, else the reference as the DPQL Text view labels it
177
- (`local: name`), so one reference reads alike in both views. Its hover and
178
- colour are the collapsed row's (`ReadOnlyTemplateTag`).
179
- - The editor keeps its own document and rebuilds it only when the stored
180
- string changes from outside: rebuilding from the echo of what was typed
181
- would hand the editor a new tree per keystroke, which moves the cursor.
182
- - `string` holds one line: Enter adds none, and a pasted break is flattened.
183
- - A value that is exactly one braced reference (`$data:{…}`, machine-written)
184
- keeps its pick-only chip selector, unchanged.
185
- - Only a value that STARTS with a reference enters template mode, so
186
- `AutoFormField`'s text editor — `string`, `long-string` and untyped — is the
187
- same chip editor whenever the field offers templates: text like
188
- `Interface $local:id failed` reads with its references named too. `data`
189
- and `binary` keep the textarea (encoded content), as does a field with no
190
- templates to offer. Guarded by `__tests__/textFieldDrawsTemplateChips.test.tsx`
191
- and the `TemplateField` stories *Template References In Text* (+ *On Phone*).
192
-
193
- This reverses the 2026-08-27 choice (`85ba6ec`) to keep plain tokens as raw
194
- text: that review rejected a *pick-only* chip because it could not be typed
195
- into, and this editor is both. Conversion lives in `helpers/templateText.ts`
196
- (`__tests__/templateText.test.ts`, `__tests__/richTextTextValue.test.tsx`).
197
-
198
- **Revised 2026-09-16 — a field offers a template list only when it has one,
199
- and template mode has a way out.** Two rules about the menu, both reported
200
- from the stories:
201
-
202
- - **No empty menu.** `TemplateField` hands its editor `undefined` — not an
203
- empty list — when there is nothing to offer: the field's schema does not
204
- allow templates (a `FormEngine` option without `supports_templates`), or the
205
- type filter emptied the catalogue. An editor GIVEN a list draws the control
206
- that opens it, so a list with no items opened a menu onto nothing. Guarded
207
- by `__tests__/noEmptyTemplateMenu.test.tsx`.
208
- - **A way back to a custom value.** Template mode's chip editor draws no `×`
209
- of its own, so a field that entered template mode from the ⋮ ("Use Template")
210
- offered nothing to leave it with. The ⋮ now carries "Use Custom Value"
211
- whenever the field is in template mode and accepts custom values; leaving
212
- clears the value only when it holds a reference (which would put the field
213
- straight back into template mode) and keeps anything the author typed.
214
- - **A lone group in the ⋮ opens itself.** Two of the menu's groups are
215
- collapsed sections (`MenuActionsSection`, `CustomMenuItems`), so a menu
216
- holding nothing but one of them asked for a click to reach the only thing on
217
- offer — on an untyped field, "Set Custom Value" hiding the data types behind
218
- it. It now starts expanded when it is the menu's only group; it keeps its
219
- label, so the rows still say what they are, and can still be collapsed. Where
220
- the menu holds more than one group the sections stay shut: there the click is
221
- the choice. The same rule the template list follows for a lone category, and
222
- the row menu already publishes these rows flat. Guarded by
223
- `__tests__/loneMenuSectionOpensItself.test.tsx` (the section's own contract)
224
- and the story *Auto · Via Form Engine Menu Opens Its Only Group* (the rule, in
225
- a real browser — the menu lives in a popover jsdom never opens).
226
- - **No document toolbar on a form field.** `RichTextFormField` asked Reqore
227
- for undo and redo but not styling, and Reqore draws that bar as a panel as
228
- wide as the tag list: an empty 600px box under the field holding two greyed
229
- icons — they are disabled until there is history to walk. It is off for every
230
- form use now; both still work from the keyboard, where every other text
231
- field's do. The `richtext` type (the "Text" row of the data-type submenu) is
232
- where this was reported. Guarded by
233
- `__tests__/richTextFieldHasNoToolbar.test.tsx`.
234
-
235
- **Revised 2026-09-16 — a field says what it takes, and an untyped one is
236
- checked as the type it was given.** Two rules from the same report (picking
237
- "Binary" and being told nothing about the value):
238
-
239
- - **A binary field names its encodings.** Its placeholder reads
240
- `Base64 — or 0x-prefixed hex, or a data:…;base64 URL`, which is what the
241
- server actually decodes: Qorus `lib/misc.ql`
242
- (`_priv_parse_ui_hash_value_intern`) reads base64 unless the value starts
243
- `0x` or `data:<mime>;base64,`, symmetric with the `toBase64()` it encodes
244
- with (`Classes/UserApi.qc`). Bare hex is the trap — it is not rejected, it is
245
- read as base64 and corrupts. `validateField`'s `binary` branch already
246
- accepted exactly these three spellings; the placeholder is that rule said
247
- before the fact instead of after. A caller's own placeholder still wins, and
248
- `data` is left alone — it is not base64. Guarded by
249
- `__tests__/binaryFieldSaysWhatItTakes.test.tsx`.
250
- - **An untyped option is validated as the type its VALUE carries.** `auto` and
251
- `any` declare no type: the author picks one and it is recorded beside the
252
- value. `getOptionFieldMessages` read the schema first, so a binary value was
253
- validated as `auto` — which auto-detects from the value and accepts whatever
254
- is there — while the form's own check prefers the stored type
255
- (`getOptionFieldStorageType`). The two disagreed, so the form said "a field
256
- is not valid and requires attention" while the field it meant gave no reason.
257
- The messages now use the same precedence; a schema that names a concrete type
258
- still wins, because the schema is what the field accepts.
259
- `isUntypedOptionType` (`helpers/optionUiTypes.ts`) is the shared spelling.
260
- Guarded by `__tests__/untypedFieldReportsItsChosenType.test.ts`.
261
-
262
- **Revised 2026-09-16 (audit pass) — three rules the review pulled out of the
263
- above.**
264
-
265
- - **Whatever the field's own ⋮ offers, its ROW menu offers too.** A field
266
- inside a compact row draws no menu of its own and publishes into the row's
267
- (`rowMenuContext`). "Use Custom Value" was added to the drawn menu only, so
268
- on the surface most options are actually edited from, template mode was still
269
- a one-way door. The published list now carries it on the same condition, with
270
- its own token in `publishedKey` — that key is what gates re-publication, so a
271
- row without one never re-publishes when template mode flips. Guarded by
272
- `__tests__/rowMenuOffersTheWayOutOfTemplateMode.test.tsx`.
273
- - **`RichTextFormField` takes `tags` and does not forward it.** The editor's
274
- `tags` is its template catalogue; a form field's `tags` is the chips to show.
275
- Two different things under one name, and `{...rest}` sat after the computed
276
- value, so a field spreading its props erased the template list — patched at
277
- two call sites with `omit(rest, 'tags')` and latent at two more. `rest` is now
278
- spread FIRST, `tags` is declared as the field's chips and dropped, and the
279
- patches are gone.
280
- - **One list of the untyped spellings.** `any`/`auto` was hand-rolled in eight
281
- places. `UNTYPED_OPTION_TYPES` / `isUntypedOptionType` in
282
- `helpers/optionUiTypes.ts` is now the one, and `engine/typeChoices`
283
- re-exports it as `BuiltInAnyLikeTypes` for its existing callers. It lives in
284
- helpers because a helper cannot import from a component.
285
-
286
- Note that a `FormEngine` option only offers templates when it declares
287
- `supports_templates` — a field with no ⋮ template entry is that option's
288
- schema speaking, not a defect.
289
-
290
- ### Out of scope for phase 1
291
-
292
- - The `type-depends-on` / `requestFieldData` cross-field type
293
- resolution (qorus-ide auto.tsx `234-261`) — IDE-specific; stub the
294
- prop, don't wire it.
295
- - `data-provider` / `connection` / `InterfaceSelector` branches inside
296
- qorus-ide's AutoField switch — those are bucket 3, not migrated.
297
- - Expression / template values (`is_expression`) beyond what
298
- `TemplateField` already does.
299
-
300
- ## Phase 2 — the DataSchema editor (`schema-definition`)
301
-
302
- ### Why it fits Reqraft's form engine
303
-
304
- `SchemaDefinitionEditor` is **a server-catalogue-driven nested form**,
305
- which is exactly what `FormEngine` is. Concretely, the editor:
306
-
307
- - Fetches one static catalogue: `GET schemas?action=options`
308
- ([`useSchemaOptionCatalog.ts`](../../qorus-ide/src/components/Field/schemaDefinition/useSchemaOptionCatalog.ts),
309
- uses Reqraft's own `useFetch`), shape `ISchemaOptionCatalog`. 100%
310
- server-driven — no FE field fallbacks.
311
- - Walks the catalogue recursively (`CatalogNodeEditor`,
312
- `CatalogGroupBody`), discriminating each node as leaf / group / map /
313
- list ([`catalog.ts`](../../qorus-ide/src/components/Field/schemaDefinition/catalog.ts)).
314
- - Renders each **leaf** by adapting it to an options-schema entry
315
- (`catalogLeafToFieldSchema` → `IOptionsSchema[string]`) and handing
316
- it to qorus-ide's `<Options>` field
317
- ([`CatalogLeafForm.tsx`](../../qorus-ide/src/components/Field/schemaDefinition/CatalogLeafForm.tsx)).
318
- **Reqraft's `FormEngine` consumes the same `IQorusFormSchema` shape**
319
- (`options` + `value` + `onChange`) — this is the single integration
320
- seam.
321
-
322
- So the bulk of the editor (catalogue machinery, types, map/list drawer
323
- editors, reference-suggestion logic) is generic code with zero
324
- qorus-ide coupling and copies over near-verbatim. The real work is the
325
- `<Options>` → `FormEngine` adapter and porting two bespoke tabs.
326
-
327
- ### Approach
328
-
329
- 1. Copy the catalogue-generic machinery into
330
- `src/components/form/fields/schema-definition/`: `types.ts`,
331
- `catalog.ts`, `helpers.ts`, `referenceSuggestions.tsx`,
332
- `catalogContext.tsx`, `useSchemaOptionCatalog.ts` (repoint `useFetch`
333
- import to the Reqraft barrel — already where qorus-ide imports it
334
- from).
335
- 2. **Replace the leaf renderer's `<Options>` with Reqraft `FormEngine`**
336
- in `CatalogLeafForm`. `catalogLeafToFieldSchema` already emits the
337
- right shape; the adapter wires `value`/`onChange`. This is where the
338
- phase-1 `auto` field pays off — leaves typed `auto` now render a
339
- real type-picker instead of a textarea. (Revised 2026-09-14: an empty
340
- `auto` leaf is a typable editor again, with the type on its ⋮ menu — see
341
- phase 1.)
342
- 3. Port `CatalogNodeEditor` (group/map/list dispatch + drawer editors),
343
- swapping qorus-ide's `QorusTable` for `ReqoreTable` (or a Reqraft
344
- table if one exists) and `Hint` for a Reqraft equivalent or nothing.
345
- 4. Port the two bespoke layout tabs — `TablesTab` (inline-expandable
346
- panels) + `TableEditor`, and `MigrationsTab` (version timeline) —
347
- plus `InlineValidationBanner`. These are presentation wrappers
348
- around the generic renderer.
349
- 5. Expose as a Reqraft form field: add `case 'schema-definition':` to
350
- `FormField` (and `ui_type === 'schema-definition'`), mirroring
351
- qorus-ide's `auto.tsx` ui_type branch.
352
- 6. Stories + tests, mock catalogue (port `mockCatalog.ts` /
353
- `mockDefinition.ts`).
354
-
355
- ### Open question (resolve during phase 2)
356
-
357
- - **`QorusTable` replacement.** qorus-ide's `QorusTable` adds search +
358
- sort over `ReqoreTable`. Decide: use `ReqoreTable` directly (and
359
- re-add search/sort only if a section is large), or port a thin table
360
- helper into Reqraft. Default: `ReqoreTable` directly; revisit if a
361
- catalogue map/list section is routinely large.
362
-
363
- ## Out of scope (whole batch)
364
-
365
- - Bucket 3 (interface selectors incl. the `schema` *interface picker*,
366
- and all IDE-specific fields). The `schema` the user asked about is the
367
- **DataSchema editor**, not the interface picker — confirmed.
368
- - The other bucket-2 editors (`tool-catalog`, `processor-mappings`,
369
- `test-cases`, `active-windows`). They follow the same pattern the
370
- schema editor establishes and can be separate task files later.
371
- - `data-provider` / `options` / `option_hash` / `byte-size` / `url` /
372
- `code-editor` fields. Tracked for a later batch; several become much
373
- cheaper once the `auto` field exists.
374
-
375
- ## Locked decisions
376
-
377
- - **`auto` first, schema editor second.** The schema editor's leaf
378
- adapter depends on `auto`; building the editor first would degrade
379
- every non-primitive leaf to a textarea.
380
- - **Delegate, don't duplicate.** `AutoFormField` resolves the type and
381
- delegates to `FormField`; `FormField` remains the only place that
382
- knows how to render a concrete type.
383
- - **One integration seam for the schema editor.** Everything funnels
384
- through `FormEngine` at the leaf — we do not port qorus-ide's
385
- `<Options>` (`systemOptions.tsx`, 1500+ lines, deeply IDE-coupled).
386
- - **No app context in Reqraft.** Anything needing `InitialContext` /
387
- `TextContext` / `qorus_instance` stays in qorus-ide. The schema
388
- editor qualifies because it needs none of these.
389
-
390
- ## Migration impact
391
-
392
- - **Phase 1 behaviour change.** Fields explicitly typed `auto` / `any`
393
- currently render as a `long-string` textarea. After phase 1 they
394
- render the type-picker + resolved sub-field. Any consumer relying on
395
- "auto == textarea" changes — but no existing Reqraft consumer sets
396
- `type="auto"` (Reqraft never advertised it), so the real-world blast
397
- radius is nil. New, additive `'auto'` handling otherwise; no other
398
- type's rendering changes.
399
- - **Phase 2 is purely additive** — a new field type, new files, no
400
- existing-field changes.
401
- - **Release.** Separate from the in-flight `0.10.0` SmartEditor batch;
402
- target a later minor (e.g. `0.11.0`). Tracked as new rows in
403
- [`.tasks/INDEX.md`](../.tasks/INDEX.md).
404
-
405
- ## Status
406
-
407
- **Design locked 2026-06-09.** First two phases scoped (auto field,
408
- schema editor). Buckets 2 (remaining `ui_type` editors) and the rest
409
- of bucket 1 are acknowledged but not yet scoped — they get their own
410
- task files when picked up. Revisions to this doc require an explicit
411
- "Revised &lt;date&gt;" note per the repo workflow.
412
-
413
- **Revised 2026-06-09 (same day, post-implementation).** Two items that
414
- were deferred during implementation were then completed in a follow-up
415
- pass and are no longer open: (a) bare `soft*` (and `binary`) types now
416
- render through `FormField` directly, not only via the auto field; (b)
417
- the `schema-definition` field is reachable via the `ui_type` /
418
- `FormEngine` path, not only the direct `type` path. Both verified by
419
- story play tests. Scope of the two phases is otherwise unchanged.
@@ -1,64 +0,0 @@
1
- # IDE → reqraft integration checklist
2
-
3
- When qorus-ide swaps its field stack to reqraft's ported components
4
- (the "Phase E" consumption that the FIELD_STACK / EXPRESSION_BUILDER
5
- batches were built for), the components are drop-in **except** for a set
6
- of features that reqraft deliberately did not absorb — each because it
7
- couples to an IDE-only system (app registry, live catalogues, per-user
8
- saved state). Every one of these has an **injection seam** already in the
9
- ported code; the IDE re-attaches its own implementation through that prop.
10
-
11
- Nothing here is broken in reqraft. The risk is **silent regression** — a
12
- feature disappearing because a seam wasn't wired. This file is the
13
- checklist the IDE-integration PR ticks off so that can't happen.
14
-
15
- ## The seams
16
-
17
- | Feature that regresses if skipped | Seam (reqraft prop) | What the IDE passes | If skipped |
18
- |---|---|---|---|
19
- | **Saved values** (Save-Value button + saved-value suggestions) | `TemplateField` / `AutoFormField` → `menuItems` | The IDE's existing `SaveValueButton` (it carries its own `useQorusStorage('savedValues')` context, so it works as-injected). The inert `allowSaving` / `showSavedValues` props stay for call-site parity. | Field renders, no save button, saved values unreadable — **silent** |
20
- | **IDE-only field editors** for types reqraft doesn't port: `data-provider` (ConnectorField), `processor-mappings`, `tool-catalog`, `test-cases`, `active-windows`, `collection-documents`, `code-editor`, `option_hash`, the InterfaceSelector family (`mapper`…`value-map`), `connection` | `AutoFormField` → `componentOverrides={{ <type>: Editor }}` (dispatch at AutoFormField.tsx:340) | The IDE's editor component per type | The type renders the `Unknown type!` danger tag — **loud-ish** (visible, not a crash) |
21
- | **Connection management** (inline create/edit on `connection` fields) | same `componentOverrides` entry for `connection` | The IDE's connection editor (it owns the CRUD/dialog/permissions) | No inline connection actions — **silent** |
22
- | **App-action badges** (app logos/icons on template dropdown rows) | `buildTemplates` payload (`logo` field flows through to `image:` — templates.ts:192) | Nothing extra — feed templates from `system/getContextData` through `buildTemplates`; logos ride along for free | Templates render without app logos — **silent, cosmetic** |
23
- | **AI assistance** in the ExpressionBuilder | `ExpressionField` → `extraActions` (panel-action array or `({selectedExpression, value}) => actions`) — forwarded to the builder and into every operand row. *Revised 2026-09-07:* the seam was declared on `ExpressionBuilder` only, but hosts mount the `ExpressionField` shell, and the builder's two operand `TemplateField` mounts did not pass it on — so it was unreachable from the component actually used and lost again inside any operand that was itself an expression. Both hops now forward it ([#116](https://github.com/qoretechnologies/toolkit-react/issues/116)). | The IDE's AI action button | No AI action on any expression card — **silent** (this is exactly what happened when qorus-ide adopted the shell) |
24
- | **Server-handled expressions** (server decides field/template acceptance per function) | `ExpressionField` → `serverHandled` + `expressionsUrl` (already plumbed) | The live `expressionsUrl`; set `serverHandled` | Offline catalogue only — **silent, degraded** |
25
-
26
- ## Notes
27
-
28
- - "Silent" markers are the dangerous ones — they compile clean and only
29
- surface as a missing feature in the running IDE. Tick each row.
30
- - Most seams are story-tested in reqraft EXCEPT `componentOverrides`,
31
- which has no coverage yet — worth a seam smoke-test before the IDE
32
- relies on it. *Revised 2026-09-07:* this used to point at B3 in
33
- `.tasks/BRANCH_REMEDIATION.md`, a file that no longer exists; the
34
- `extraActions` seam is now covered end to end by
35
- `ExpressionField.stories.tsx` › `NestedOperandKeepsInjectedActions`.
36
- - **Revised 2026-09-07 — the shell is the host's component.** Every seam in
37
- the table must be reachable through `ExpressionField`, not only through
38
- `ExpressionBuilder`; and anything meant for "every card" must also cross
39
- the operand `TemplateField` boundary, because an operand that is itself an
40
- expression mounts its own builder. A seam that stops one hop short reads
41
- as wired and is not — which is the silent-regression class this checklist
42
- exists to prevent.
43
- *Revised 2026-09-08:* a host that mirrors this rule needs the bare builder
44
- from the barrel; it is exported next to the shell as of 0.10.53 (#119) — no
45
- deep import of `dist/…/expressions/builder` required.
46
- - **`inheritedFromParent` is stable by identity.** A host editor (and any
47
- `arg_schema` sub-form) is handed the inheritance bag as a prop, and the
48
- engine guarantees the SAME object back for as long as nothing in it changed:
49
- a field that declares no `inherit_props` forwards the bag it was handed
50
- unwrapped, a form with no inherited scope forwards one shared frozen object,
51
- and a field that does declare `inherit_props` gets one merge per schema /
52
- sibling-value change (`inheritedScopeFor`, memoised per field). A host editor
53
- may therefore use it in a dependency list or a `memo` comparison. Built
54
- inline, as it was before 0.10.55, it re-rendered every field of every form on
55
- every render — the console read `Template field <name> Updated because:
56
- {inheritedFromParent}` forever. The same treatment exists in qorus-ide's
57
- `systemOptions.tsx`, which must stay in step until FormEngine replaces it.
58
-
59
- - **Open product call (B4):** whether reqraft should ALSO ship a *native*
60
- saved-values (so non-IDE consumers get it without wiring the seam). The
61
- storage primitive exists (`useReqraftStorage` mirrors the IDE's
62
- `useQorusStorage` exactly), so it's ~1 day if wanted — but the seam
63
- above already keeps the IDE whole, so native is a scope question, not a
64
- blocker.
@@ -1,156 +0,0 @@
1
- # Render-expression transport — server "Explain" over the LSP
2
-
3
- **Status:** locked 2026-06-10.
4
- **Task file:** `.tasks/RENDER_EXPRESSION_LSP.md`.
5
- **Background:** `/tmp/render-expression-exposure.md` (the original server
6
- ask), `design/EXPRESSION_BUILDER_REPORT_STRATEGY.md` (the builder port that
7
- consumes this), `.tasks/LSP_SHARED_CONNECTION.md` (the shared-socket
8
- architecture this rides).
9
-
10
- ## Decision
11
-
12
- The "Explain" rendering (`DataProvider::renderExpression`) is delivered to
13
- reqraft over the **LSP** as a new custom method **`dpql/renderExpression`**,
14
- added to `QorusLspWebSocketHandler.qc` next to `dpql/serialize`. REST
15
- (`?action=render-expression`) is the recorded fallback if the server side
16
- prefers it; SSE was considered and rejected on the 2026-06-10 call
17
- (one-way). Rationale:
18
-
19
- - The server delta is tiny — the rendering engine already exists
20
- (`DataProvider::renderExpression`, qore `DataProvider.qc:834`); the
21
- creator-WS handler is a thin wrapper over it, and the new LSP handler is
22
- the same wrapper speaking JSON-RPC.
23
- - reqraft already speaks this protocol (`src/utils/lspClient.ts`) — no new
24
- transport, auth, or reconnect machinery.
25
- - JSON-RPC request ids natively solve response association (see below).
26
- - Explain updates live as the expression changes (confirmed on the team
27
- call), which suits a persistent socket + debounce.
28
- - Storybook bonus: REST fetches from storybook to `localhost:8012` are
29
- CORS-blocked; the LSP WebSocket is not.
30
-
31
- ### Why not the alternatives (verified live, 2026-06-10)
32
-
33
- The hoped-for shortcut — that `dpql/serialize`'s `richtext` or
34
- `dpql/toRichtext` already produce the rendering — was **disproven** against
35
- `localhost:8012`:
36
-
37
- | Source | Output for `starts-with("test","t")` |
38
- |---|---|
39
- | creator-WS `render-expression` | `"test".startsWith("t", true)` — semantic rendering |
40
- | LSP `dpql/serialize` | `dpql: "test" startsWith "t"` + `richtext` = the same DPQL string in paragraph nodes |
41
- | LSP `dpql/toRichtext` | takes a `text` (DPQL string) param, not an AST — syntactic highlighting only |
42
-
43
- `renderExpression` renders the *AST semantically*; `toRichtext` highlights
44
- the *DPQL source string*. Different things; the shortcut does not exist.
45
-
46
- ## The 20-builders question (Filip, 2026-06-10 call)
47
-
48
- > "you can have 20 [builders]… if one [message] comes, you need to
49
- > associate it with one of the 20 expression builders… would it have
50
- > different connections or how would you associate the message?"
51
-
52
- The answer has three parts:
53
-
54
- 1. **Association = JSON-RPC ids.** Each `useRenderExpression().render(value)`
55
- call sends a request with a unique id and resolves its OWN promise from
56
- the matching response (`LspSharedConnection.pending` map). No broadcast,
57
- no cross-wiring — 20 builders means 20 independent in-flight requests,
58
- each landing in the right component.
59
- 2. **Connections: ONE shared render socket, not 20.** All
60
- `useRenderExpression` consumers share a single lazy module-level
61
- `LspClient`, which itself rides the per-endpoint `LspSharedConnection`
62
- (see `.tasks/LSP_SHARED_CONNECTION.md`) — so render requests multiplex
63
- onto the *same* socket any open DPQL editors already use. Rendering is
64
- stateless server-side (no document session), so one connection serves
65
- everyone. Reconnect logic is the existing `ReqraftWebSocket` schedule.
66
- 3. **Debounce per builder (~300ms).** Each hook instance coalesces rapid
67
- re-renders (leading edge immediate, trailing edge collapses to the
68
- newest AST), so 20 builders typing don't flood the socket.
69
-
70
- ## Contract
71
-
72
- ```
73
- method: dpql/renderExpression (stateless — no uri/didOpen needed)
74
- params: { expression: <bare {exp,args} AST | {is_expression, value} wrapper>,
75
- expmap?: <expression info map override> }
76
- result: { rendered: "<readable string>", richtext: <richtext hash> }
77
- errors: -32602 missing/invalid expression; -32803 render failure;
78
- -32601 on servers predating the method
79
- ```
80
-
81
- ## Waiting, not approximating (reqraft)
82
-
83
- `useRenderExpression()` returns `{ render, renderRich }`; both resolve the
84
- server's rendering or `null`:
85
-
86
- - A render **waits for the connection** — there is no timer racing it. The
87
- connection has its own reconnect schedule and rejects once it gives up
88
- (see below), so a render never outlives a dead socket.
89
- - `null` means the server cannot render: the connection gave up, or the server
90
- predates the method (`-32601`, remembered for the page lifetime).
91
- - There is **no client-side stand-in**. A Qorus form does not work without
92
- Qorus, so the approximation only ever appeared while the page's first
93
- connection was still opening, marked "Approximate" on the first Explain of
94
- every page. `renderExpressionToText` survives only as the synchronous summary
95
- a collapsed row prints (`readFirst.ts`), and is never shown in place of a
96
- server rendering.
97
-
98
- ## How an expression is shown when it is not being edited
99
-
100
- Every read-only expression surface draws through **`DpqlRendering`**
101
- (`src/components/form/expressions/DpqlRendering.tsx`): the Explain panel, the
102
- Text view's Preview, the conversion a type-fit message suggests, and a collapsed
103
- expression row. It is a read-only `DpqlEditor` with diagnostics and hover off,
104
- so every one of them reads the same — monospace, coloured by the language
105
- server's semantic tokens (the canonical tokenizer; there is no client-side
106
- highlighter), template references as chips.
107
-
108
- - `ExpressionRendering` renders an AST: it waits in the form's one waiting shape
109
- (`FormFieldsSkeleton`, `data-wait="expression-rendering"`), then shows the
110
- server's rendering, or says "This expression could not be rendered." when the
111
- server cannot.
112
- - The Preview appears only once the server's rendering exists and differs from
113
- the typed text; it has no waiting state of its own.
114
- - A surface with a template catalogue passes it (`templates`): a reference the
115
- catalogue knows reads as the name it was chosen by, with the entry's
116
- description as its hover — the Discord assistant's Save Reply row reads
117
- `trim(Choices[0].message.content)`. One it does not know keeps its path
118
- (`data: dc_ai_reply.choices[0].message.content`). A collapsed row passes its
119
- field's own templates, else the form's; the builder's Explain passes its own.
120
- - A reference's path takes every dot except one that starts a method call, so
121
- the server's `$local:str.endsWith($local:p, true)` chips `$local:str`, not
122
- `str.endsWith`.
123
- - A new read-only expression surface uses `DpqlRendering`, never its own
124
- `<code>`, rich-text field or chip splitter.
125
-
126
- ## Lifetime of the shared render socket
127
-
128
- The module-level render client never releases its connection: the first
129
- expression rendered on a page holds the endpoint's `LspSharedConnection` for
130
- the rest of the page. Two consequences are designed for:
131
-
132
- - **A socket that gives up is forgotten.** When the socket exhausts its
133
- reconnect attempts, the connection fails any handshake still waiting and
134
- drops the socket; the next `connect()` from any client on that endpoint
135
- dials afresh. Without this, a first handshake that never completed held
136
- every later editor on "Connecting to language server…" for the life of the
137
- page, and one that had completed kept reporting the dead socket as ready.
138
- - **Storybook resets it per story.** Stories run in one page, so the
139
- connection an earlier story opened would otherwise serve a later story —
140
- including one that starts its own mock LSP, which is then never dialled.
141
- `.storybook/preview.tsx` runs `_resetRenderExpressionTransportForTests()`
142
- and `_resetSharedLspConnectionsForTests()` in a project-level `beforeEach`.
143
- - **Every story has a language server.** Because renderings wait rather than
144
- approximate, the same `beforeEach` starts the mock DPQL server
145
- (`dpqlMockLsp.ts`) for every story that is not `live`. Its answers follow the
146
- real server's (`dpqlMockLanguage.ts`, pinned in
147
- `__tests__/dpqlMockLanguage.test.ts`); a story that needs other answers starts
148
- its own server on the URL, which replaces the default.
149
- - **The rendering is spelled by the catalogue.** The server renders a function
150
- by name (`concat("a", $local:x)`), an expression with a `render_template` by
151
- that template (`$arg[0].startsWith($arg[1], $arg[2])`, a missing argument
152
- read as its `default_value`), and any other operator as its arguments joined
153
- by its symbol. A two-argument word comparison serializes infix
154
- (`"test" startsWith "t"`) and otherwise as a call by symbol. The story server
155
- reads `mockExpressions` by the same rules, which is why that fixture carries
156
- the live `render_template`s and groups.