@qoretechnologies/reqraft 0.10.65 → 0.10.66-pr.137.ga1983bf

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 (873) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +413 -63
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +94 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +322 -124
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +29 -3
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +66 -11
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +570 -176
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  68. package/dist/components/form/engine/OptionFieldMessages.js +25 -3
  69. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  70. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  72. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  73. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  77. package/dist/components/form/engine/compactRowContext.d.ts +30 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  79. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  80. package/dist/components/form/engine/compactRowStyles.d.ts +59 -22
  81. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  82. package/dist/components/form/engine/compactRowStyles.js +102 -55
  83. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  84. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  85. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  86. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  87. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  88. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  89. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  90. package/dist/components/form/engine/inheritProps.js +43 -0
  91. package/dist/components/form/engine/inheritProps.js.map +1 -0
  92. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  93. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  94. package/dist/components/form/engine/operatorSummary.js +35 -0
  95. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  96. package/dist/components/form/engine/readFirst.d.ts +24 -8
  97. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  98. package/dist/components/form/engine/readFirst.js +77 -109
  99. package/dist/components/form/engine/readFirst.js.map +1 -1
  100. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  101. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  102. package/dist/components/form/engine/readFirstColors.js +51 -0
  103. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  104. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  105. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  106. package/dist/components/form/engine/rowFocus.js +26 -3
  107. package/dist/components/form/engine/rowFocus.js.map +1 -1
  108. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  109. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  110. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  111. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  112. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  113. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  114. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  115. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  116. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  117. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  118. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  119. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  120. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  121. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/variantParts.js +25 -17
  123. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  124. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  125. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  126. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  127. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  128. package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
  129. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  130. package/dist/components/form/expressions/ExpressionField.js +536 -114
  131. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  132. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  133. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  134. package/dist/components/form/expressions/argumentPresence.js +16 -1
  135. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  136. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  137. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  138. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  139. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
  141. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  142. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  144. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  145. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
  146. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  147. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
  148. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  149. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  150. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  151. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
  152. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  153. package/dist/components/form/expressions/builder/index.d.ts +34 -2
  154. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  155. package/dist/components/form/expressions/builder/index.js +170 -80
  156. package/dist/components/form/expressions/builder/index.js.map +1 -1
  157. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  158. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  159. package/dist/components/form/expressions/builder/item.js +19 -5
  160. package/dist/components/form/expressions/builder/item.js.map +1 -1
  161. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  162. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  163. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  164. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  165. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  166. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  167. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  168. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  169. package/dist/components/form/expressions/expressionOperands.js +97 -0
  170. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  171. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  172. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  173. package/dist/components/form/expressions/fieldPath.js +152 -0
  174. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  175. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  176. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  177. package/dist/components/form/expressions/loneValue.js +33 -0
  178. package/dist/components/form/expressions/loneValue.js.map +1 -0
  179. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  180. package/dist/components/form/expressions/mockExpressions.js +22 -5
  181. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  182. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  183. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  184. package/dist/components/form/expressions/renderExpressionToText.js +43 -10
  185. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  186. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  187. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  188. package/dist/components/form/expressions/textOfExpression.js +49 -0
  189. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  190. package/dist/components/form/expressions/types.d.ts +12 -0
  191. package/dist/components/form/expressions/types.d.ts.map +1 -1
  192. package/dist/components/form/expressions/types.js +6 -1
  193. package/dist/components/form/expressions/types.js.map +1 -1
  194. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  195. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  196. package/dist/components/form/expressions/useExpressionType.js +181 -0
  197. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  198. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  199. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  200. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  201. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  202. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  203. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  204. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  205. package/dist/components/form/fields/Field.d.ts.map +1 -1
  206. package/dist/components/form/fields/Field.js +43 -20
  207. package/dist/components/form/fields/Field.js.map +1 -1
  208. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  209. package/dist/components/form/fields/allowed-values/AllowedValues.js +39 -6
  210. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  211. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  212. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  213. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  214. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  215. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  216. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  217. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  218. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  219. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  220. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  221. package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
  222. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  223. package/dist/components/form/fields/auto/AutoFormField.js +119 -62
  224. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  225. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  226. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  227. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  228. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  229. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  230. package/dist/components/form/fields/binary/Binary.js +23 -3
  231. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  232. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  233. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  234. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  235. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  236. package/dist/components/form/fields/color/Color.d.ts +103 -16
  237. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  238. package/dist/components/form/fields/color/Color.js +616 -16
  239. package/dist/components/form/fields/color/Color.js.map +1 -1
  240. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  241. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  242. package/dist/components/form/fields/emittedValues.js +24 -1
  243. package/dist/components/form/fields/emittedValues.js.map +1 -1
  244. package/dist/components/form/fields/file/File.d.ts +1 -1
  245. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  246. package/dist/components/form/fields/file/File.js +4 -2
  247. package/dist/components/form/fields/file/File.js.map +1 -1
  248. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  249. package/dist/components/form/fields/long-string/LongString.js +29 -8
  250. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  251. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  252. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  253. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +13 -9
  254. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  255. package/dist/components/form/fields/number/Number.d.ts +6 -0
  256. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  257. package/dist/components/form/fields/number/Number.js +41 -6
  258. package/dist/components/form/fields/number/Number.js.map +1 -1
  259. package/dist/components/form/fields/object/Object.d.ts +1 -1
  260. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  261. package/dist/components/form/fields/object/Object.js +4 -2
  262. package/dist/components/form/fields/object/Object.js.map +1 -1
  263. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  264. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  265. package/dist/components/form/fields/pendingEdit.js +79 -0
  266. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  267. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  268. package/dist/components/form/fields/radio-group/RadioGroup.js +4 -3
  269. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  270. package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
  271. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  272. package/dist/components/form/fields/rich-text/RichText.js +382 -91
  273. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  274. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  275. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  276. package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
  277. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  278. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  279. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  280. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  281. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  282. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  283. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  284. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  285. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  286. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  287. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  288. package/dist/components/form/fields/schema-definition/index.js +8 -4
  289. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  290. package/dist/components/form/fields/select/Select.d.ts +10 -1
  291. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  292. package/dist/components/form/fields/select/Select.js +28 -14
  293. package/dist/components/form/fields/select/Select.js.map +1 -1
  294. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  295. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  296. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  297. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  298. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  299. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  300. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  301. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  302. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  303. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  304. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  305. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  306. package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
  307. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  308. package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
  309. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  310. package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
  311. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  312. package/dist/components/form/fields/template/TemplateField.js +678 -107
  313. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  314. package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
  315. package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
  316. package/dist/components/form/fields/template/TemplatePicker.js +451 -0
  317. package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
  318. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  319. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  320. package/dist/components/form/fields/template/TemplateText.js +22 -16
  321. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  322. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  323. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  324. package/dist/components/form/fields/template/referenceNames.js +69 -0
  325. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  326. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  327. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  328. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  329. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  330. package/dist/components/form/index.d.ts +12 -0
  331. package/dist/components/form/index.d.ts.map +1 -1
  332. package/dist/components/form/index.js +25 -1
  333. package/dist/components/form/index.js.map +1 -1
  334. package/dist/components/form/typeSentenceForm.d.ts +17 -0
  335. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  336. package/dist/components/form/typeSentenceForm.js +54 -0
  337. package/dist/components/form/typeSentenceForm.js.map +1 -0
  338. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  339. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  340. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  341. package/dist/components/log/Log.d.ts.map +1 -1
  342. package/dist/components/log/Log.js +20 -8
  343. package/dist/components/log/Log.js.map +1 -1
  344. package/dist/components/menu/Menu.d.ts.map +1 -1
  345. package/dist/components/menu/Menu.js +19 -10
  346. package/dist/components/menu/Menu.js.map +1 -1
  347. package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
  348. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  349. package/dist/components/smartEditor/CompletionMenu.js +302 -0
  350. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  351. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  352. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  353. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  354. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  355. package/dist/components/smartEditor/SmartEditor.js +584 -190
  356. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  357. package/dist/components/smartEditor/completionStyle.d.ts +28 -0
  358. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  359. package/dist/components/smartEditor/completionStyle.js +79 -0
  360. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  361. package/dist/components/smartEditor/contextTitle.d.ts +10 -0
  362. package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
  363. package/dist/components/smartEditor/contextTitle.js +21 -0
  364. package/dist/components/smartEditor/contextTitle.js.map +1 -0
  365. package/dist/components/smartEditor/editingAids.d.ts +64 -0
  366. package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
  367. package/dist/components/smartEditor/editingAids.js +213 -0
  368. package/dist/components/smartEditor/editingAids.js.map +1 -0
  369. package/dist/components/smartEditor/index.d.ts +6 -1
  370. package/dist/components/smartEditor/index.d.ts.map +1 -1
  371. package/dist/components/smartEditor/index.js +19 -1
  372. package/dist/components/smartEditor/index.js.map +1 -1
  373. package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
  374. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  375. package/dist/components/smartEditor/templateCompletions.js +380 -0
  376. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  377. package/dist/components/smartEditor/typedReferences.d.ts +34 -0
  378. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  379. package/dist/components/smartEditor/typedReferences.js +179 -0
  380. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  381. package/dist/components/smartEditor/types.d.ts +116 -2
  382. package/dist/components/smartEditor/types.d.ts.map +1 -1
  383. package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
  384. package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
  385. package/dist/components/smartEditor/useEditingAids.js +336 -0
  386. package/dist/components/smartEditor/useEditingAids.js.map +1 -0
  387. package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
  388. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  389. package/dist/components/smartEditor/useLspAutocomplete.js +562 -151
  390. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  391. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  392. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  393. package/dist/components/smartEditor/useLspHover.js +364 -35
  394. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  395. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  396. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  397. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  398. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  399. package/dist/components/smartEditor/useLspSession.js +7 -6
  400. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  401. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  402. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  403. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  404. package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
  405. package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
  406. package/dist/components/smartEditor/useTabCameIn.js +42 -0
  407. package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
  408. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  409. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  410. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  411. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  412. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  413. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  414. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  415. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  416. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  417. package/dist/components/supportTicket/TicketHeader.js +20 -2
  418. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  419. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  420. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  421. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  422. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  423. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  424. package/dist/components/ticketThread/TicketThread.js +38 -13
  425. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  426. package/dist/helpers/allowedValues.d.ts +21 -0
  427. package/dist/helpers/allowedValues.d.ts.map +1 -1
  428. package/dist/helpers/allowedValues.js +40 -1
  429. package/dist/helpers/allowedValues.js.map +1 -1
  430. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  431. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  432. package/dist/helpers/descriptionTooltip.js +76 -0
  433. package/dist/helpers/descriptionTooltip.js.map +1 -0
  434. package/dist/helpers/domProps.d.ts +5 -0
  435. package/dist/helpers/domProps.d.ts.map +1 -0
  436. package/dist/helpers/domProps.js +47 -0
  437. package/dist/helpers/domProps.js.map +1 -0
  438. package/dist/helpers/expressions.d.ts +115 -4
  439. package/dist/helpers/expressions.d.ts.map +1 -1
  440. package/dist/helpers/expressions.js +247 -29
  441. package/dist/helpers/expressions.js.map +1 -1
  442. package/dist/helpers/hoveringPointer.d.ts +26 -0
  443. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  444. package/dist/helpers/hoveringPointer.js +29 -0
  445. package/dist/helpers/hoveringPointer.js.map +1 -0
  446. package/dist/helpers/markdownText.d.ts +14 -0
  447. package/dist/helpers/markdownText.d.ts.map +1 -0
  448. package/dist/helpers/markdownText.js +160 -0
  449. package/dist/helpers/markdownText.js.map +1 -0
  450. package/dist/helpers/noDescription.d.ts +9 -0
  451. package/dist/helpers/noDescription.d.ts.map +1 -0
  452. package/dist/helpers/noDescription.js +13 -0
  453. package/dist/helpers/noDescription.js.map +1 -0
  454. package/dist/helpers/optionUiTypes.d.ts +2 -2
  455. package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
  456. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  457. package/dist/helpers/qorusTypeCatalogue.js +505 -0
  458. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  459. package/dist/helpers/readableColors.d.ts +36 -0
  460. package/dist/helpers/readableColors.d.ts.map +1 -0
  461. package/dist/helpers/readableColors.js +116 -0
  462. package/dist/helpers/readableColors.js.map +1 -0
  463. package/dist/helpers/recordFieldReference.d.ts +15 -0
  464. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  465. package/dist/helpers/recordFieldReference.js +89 -0
  466. package/dist/helpers/recordFieldReference.js.map +1 -0
  467. package/dist/helpers/templateCatalogue.d.ts +104 -0
  468. package/dist/helpers/templateCatalogue.d.ts.map +1 -0
  469. package/dist/helpers/templateCatalogue.js +116 -0
  470. package/dist/helpers/templateCatalogue.js.map +1 -0
  471. package/dist/helpers/templateCatalogueContext.d.ts +19 -0
  472. package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
  473. package/dist/helpers/templateCatalogueContext.js +31 -0
  474. package/dist/helpers/templateCatalogueContext.js.map +1 -0
  475. package/dist/helpers/templateItems.d.ts +2 -2
  476. package/dist/helpers/templateItems.d.ts.map +1 -1
  477. package/dist/helpers/templateItems.js +6 -4
  478. package/dist/helpers/templateItems.js.map +1 -1
  479. package/dist/helpers/templateText.d.ts +1 -0
  480. package/dist/helpers/templateText.d.ts.map +1 -1
  481. package/dist/helpers/templateText.js +7 -3
  482. package/dist/helpers/templateText.js.map +1 -1
  483. package/dist/helpers/templateTree.d.ts +248 -0
  484. package/dist/helpers/templateTree.d.ts.map +1 -0
  485. package/dist/helpers/templateTree.js +892 -0
  486. package/dist/helpers/templateTree.js.map +1 -0
  487. package/dist/helpers/templateType.d.ts +28 -0
  488. package/dist/helpers/templateType.d.ts.map +1 -0
  489. package/dist/helpers/templateType.js +30 -0
  490. package/dist/helpers/templateType.js.map +1 -0
  491. package/dist/helpers/templates.d.ts +86 -16
  492. package/dist/helpers/templates.d.ts.map +1 -1
  493. package/dist/helpers/templates.js +305 -45
  494. package/dist/helpers/templates.js.map +1 -1
  495. package/dist/helpers/validations.d.ts +27 -0
  496. package/dist/helpers/validations.d.ts.map +1 -1
  497. package/dist/helpers/validations.js +169 -39
  498. package/dist/helpers/validations.js.map +1 -1
  499. package/dist/helpers/webLink.d.ts +8 -0
  500. package/dist/helpers/webLink.d.ts.map +1 -0
  501. package/dist/helpers/webLink.js +29 -0
  502. package/dist/helpers/webLink.js.map +1 -0
  503. package/dist/hooks/useQorusTypes.d.ts +12 -17
  504. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  505. package/dist/hooks/useQorusTypes.js +44 -172
  506. package/dist/hooks/useQorusTypes.js.map +1 -1
  507. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  508. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  509. package/dist/hooks/useReadableIntentShade.js +23 -0
  510. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  511. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  512. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  513. package/dist/hooks/useReadableOpacity.js +17 -0
  514. package/dist/hooks/useReadableOpacity.js.map +1 -0
  515. package/dist/index.d.ts +8 -0
  516. package/dist/index.d.ts.map +1 -1
  517. package/dist/index.js +24 -1
  518. package/dist/index.js.map +1 -1
  519. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  520. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  521. package/dist/tracking/ui/ExperimentCard.js +26 -10
  522. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  523. package/dist/tracking/ui/card.d.ts +2 -2
  524. package/dist/tracking/ui/card.d.ts.map +1 -1
  525. package/dist/tracking/ui/card.js +2 -2
  526. package/dist/tracking/ui/card.js.map +1 -1
  527. package/dist/tracking/ui/readable.d.ts +14 -0
  528. package/dist/tracking/ui/readable.d.ts.map +1 -0
  529. package/dist/tracking/ui/readable.js +60 -0
  530. package/dist/tracking/ui/readable.js.map +1 -0
  531. package/dist/utils/fetch.d.ts +9 -2
  532. package/dist/utils/fetch.d.ts.map +1 -1
  533. package/dist/utils/fetch.js +6 -5
  534. package/dist/utils/fetch.js.map +1 -1
  535. package/dist/utils/lspClient.types.d.ts +2 -0
  536. package/dist/utils/lspClient.types.d.ts.map +1 -1
  537. package/dist/utils/websocket.d.ts +65 -2
  538. package/dist/utils/websocket.d.ts.map +1 -1
  539. package/dist/utils/websocket.js +276 -44
  540. package/dist/utils/websocket.js.map +1 -1
  541. package/package.json +14 -6
  542. package/.claude/CLAUDE.md +0 -317
  543. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  544. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  545. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  546. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  547. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  548. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  549. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  550. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  551. package/.tasks/INDEX.md +0 -111
  552. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  553. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  554. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  555. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  556. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  557. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  558. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  559. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  560. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  561. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  562. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  563. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  564. package/CODE_OF_CONDUCT.md +0 -105
  565. package/CONTRIBUTING.MD +0 -78
  566. package/SECURITY.md +0 -3
  567. package/chromatic.config.json +0 -5
  568. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  569. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  570. package/design/COMPACT_PARITY.md +0 -85
  571. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  572. package/design/FORM_ENGINE_COMPACT.md +0 -300
  573. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  574. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  575. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  576. package/design/IDE_INTEGRATION.md +0 -64
  577. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  578. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  579. package/design/SMART_EDITOR_UX.md +0 -438
  580. package/design/TRACKING.md +0 -290
  581. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  582. package/src/components/Description/index.tsx +0 -254
  583. package/src/components/Description/markdownRendererContext.tsx +0 -29
  584. package/src/components/FocusedEditing/index.tsx +0 -50
  585. package/src/components/codeSize/index.tsx +0 -79
  586. package/src/components/composer/Composer.stories.tsx +0 -238
  587. package/src/components/composer/Composer.tsx +0 -554
  588. package/src/components/composer/helpers.ts +0 -74
  589. package/src/components/composer/index.ts +0 -2
  590. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  591. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  592. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  593. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  594. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  595. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  596. package/src/components/dpqlEditor/index.ts +0 -41
  597. package/src/components/dpqlEditor/types.ts +0 -203
  598. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  599. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  600. package/src/components/form/engine/CompactRow.tsx +0 -2620
  601. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  602. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  603. package/src/components/form/engine/FormEngine.tsx +0 -4569
  604. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  605. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  606. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  607. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  608. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  609. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  610. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  611. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  612. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  613. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  614. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  615. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  616. package/src/components/form/engine/compactRowContext.ts +0 -148
  617. package/src/components/form/engine/compactRowStyles.ts +0 -898
  618. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  619. package/src/components/form/engine/optionActions.ts +0 -128
  620. package/src/components/form/engine/optionsContext.ts +0 -24
  621. package/src/components/form/engine/readFirst.ts +0 -1077
  622. package/src/components/form/engine/rendererTypes.ts +0 -107
  623. package/src/components/form/engine/revealRow.ts +0 -123
  624. package/src/components/form/engine/rowFocus.ts +0 -101
  625. package/src/components/form/engine/rowMenuContext.ts +0 -159
  626. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  627. package/src/components/form/engine/typeChoices.ts +0 -63
  628. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  629. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  630. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  631. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  632. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  633. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  634. package/src/components/form/engine/variants/variantModel.ts +0 -223
  635. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  636. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  637. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  638. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  639. package/src/components/form/expressions/argumentPresence.ts +0 -213
  640. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  641. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  642. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  643. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  644. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  645. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  646. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  647. package/src/components/form/expressions/builder/index.tsx +0 -1545
  648. package/src/components/form/expressions/builder/item.tsx +0 -89
  649. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  650. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  651. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  652. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  653. package/src/components/form/expressions/mockExpressions.ts +0 -317
  654. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  655. package/src/components/form/expressions/types.ts +0 -110
  656. package/src/components/form/expressions/useExpressions.ts +0 -101
  657. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  658. package/src/components/form/fields/Field.stories.tsx +0 -143
  659. package/src/components/form/fields/Field.tsx +0 -732
  660. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  661. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  662. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  663. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  664. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  665. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  666. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  667. package/src/components/form/fields/binary/Binary.tsx +0 -91
  668. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  669. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  670. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  671. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  672. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  673. package/src/components/form/fields/color/Color.tsx +0 -46
  674. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  675. package/src/components/form/fields/cron/Cron.tsx +0 -80
  676. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  677. package/src/components/form/fields/date/Date.tsx +0 -55
  678. package/src/components/form/fields/emittedValues.ts +0 -70
  679. package/src/components/form/fields/file/File.stories.tsx +0 -161
  680. package/src/components/form/fields/file/File.tsx +0 -227
  681. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  682. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  683. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  684. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  685. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  686. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  687. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  688. package/src/components/form/fields/number/Number.tsx +0 -160
  689. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  690. package/src/components/form/fields/object/Object.tsx +0 -255
  691. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  692. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  693. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  694. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  695. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  696. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  697. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  698. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  699. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  700. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  701. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  702. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  703. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  704. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  705. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  706. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  707. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  708. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  709. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  710. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  711. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  712. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  713. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  714. package/src/components/form/fields/schema-definition/types.ts +0 -185
  715. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  716. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  717. package/src/components/form/fields/select/Select.tsx +0 -624
  718. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  719. package/src/components/form/fields/string/String.stories.tsx +0 -86
  720. package/src/components/form/fields/string/String.tsx +0 -43
  721. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  722. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  723. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  724. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  725. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  726. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  727. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  728. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  729. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  730. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  731. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  732. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  733. package/src/components/form/fields/url/Url.tsx +0 -85
  734. package/src/components/form/index.tsx +0 -47
  735. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  736. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  737. package/src/components/imageLightbox/index.ts +0 -1
  738. package/src/components/log/Log.stories.tsx +0 -333
  739. package/src/components/log/Log.tsx +0 -285
  740. package/src/components/menu/Menu.stories.tsx +0 -155
  741. package/src/components/menu/Menu.tsx +0 -312
  742. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  743. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  744. package/src/components/qonsoleSmartInput/index.ts +0 -16
  745. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  746. package/src/components/qonsoleSmartInput/types.ts +0 -133
  747. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  748. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  749. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  750. package/src/components/searchFilterBar/index.ts +0 -1
  751. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  752. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  753. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  754. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  755. package/src/components/smartEditor/helpers.ts +0 -217
  756. package/src/components/smartEditor/index.ts +0 -35
  757. package/src/components/smartEditor/styling.ts +0 -45
  758. package/src/components/smartEditor/types.ts +0 -211
  759. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  760. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  761. package/src/components/smartEditor/useLspHover.ts +0 -230
  762. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  763. package/src/components/smartEditor/useLspSession.ts +0 -231
  764. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  765. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  766. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  767. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  768. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  769. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  770. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  771. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  772. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  773. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  774. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  775. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  776. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  777. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  778. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  779. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  780. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  781. package/src/components/supportTicket/index.ts +0 -10
  782. package/src/components/supportTicket/meta.ts +0 -206
  783. package/src/components/supportTicket/ticketModel.ts +0 -131
  784. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  785. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  786. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  787. package/src/components/ticketReferences/index.ts +0 -2
  788. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  789. package/src/components/ticketThread/TicketThread.tsx +0 -719
  790. package/src/components/ticketThread/index.ts +0 -6
  791. package/src/contexts/FetchContext.tsx +0 -25
  792. package/src/contexts/ReqraftContext.tsx +0 -9
  793. package/src/contexts/StorageContext.tsx +0 -33
  794. package/src/global.d.ts +0 -4
  795. package/src/helpers/allowedValues.ts +0 -249
  796. package/src/helpers/choiceChip.ts +0 -227
  797. package/src/helpers/common.ts +0 -326
  798. package/src/helpers/dpqlDetection.ts +0 -209
  799. package/src/helpers/expressions.ts +0 -140
  800. package/src/helpers/optionUiTypes.ts +0 -199
  801. package/src/helpers/options.ts +0 -150
  802. package/src/helpers/providerValue.ts +0 -125
  803. package/src/helpers/scrollbar.ts +0 -32
  804. package/src/helpers/singleLineString.ts +0 -61
  805. package/src/helpers/templateItems.ts +0 -81
  806. package/src/helpers/templateText.ts +0 -350
  807. package/src/helpers/templates.ts +0 -602
  808. package/src/helpers/validations.ts +0 -2085
  809. package/src/hooks/useArgSchema.ts +0 -37
  810. package/src/hooks/useCoarsePointer.ts +0 -30
  811. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  812. package/src/hooks/useFetch/useFetch.tsx +0 -154
  813. package/src/hooks/usePhoneViewport.ts +0 -34
  814. package/src/hooks/useQorusTypes.ts +0 -233
  815. package/src/hooks/useReqraftProperty.ts +0 -16
  816. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  817. package/src/hooks/useStorage/useStorage.ts +0 -35
  818. package/src/hooks/useTemplates.ts +0 -123
  819. package/src/hooks/useValidation.ts +0 -9
  820. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  821. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  822. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  823. package/src/index.tsx +0 -86
  824. package/src/providers/FetchProvider.tsx +0 -40
  825. package/src/providers/ReqraftProvider.tsx +0 -52
  826. package/src/providers/StorageProvider.tsx +0 -131
  827. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  828. package/src/stores/currentUser/currentUser.tsx +0 -94
  829. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  830. package/src/stories/Tests/utils.ts +0 -320
  831. package/src/stories/storyNetwork.ts +0 -92
  832. package/src/stories/tracking.tsx +0 -206
  833. package/src/tracking/browser/attach.ts +0 -186
  834. package/src/tracking/browser/env.ts +0 -78
  835. package/src/tracking/core/consent.ts +0 -37
  836. package/src/tracking/core/engagement.ts +0 -47
  837. package/src/tracking/core/experiments.ts +0 -258
  838. package/src/tracking/core/hash.ts +0 -26
  839. package/src/tracking/core/ids.ts +0 -25
  840. package/src/tracking/core/observable.ts +0 -23
  841. package/src/tracking/core/queue.ts +0 -131
  842. package/src/tracking/core/sections.ts +0 -166
  843. package/src/tracking/core/storage.ts +0 -69
  844. package/src/tracking/core/tracker.ts +0 -417
  845. package/src/tracking/core/types.ts +0 -162
  846. package/src/tracking/core/utm.ts +0 -23
  847. package/src/tracking/index.ts +0 -72
  848. package/src/tracking/markup.ts +0 -17
  849. package/src/tracking/react/Experiment.tsx +0 -44
  850. package/src/tracking/react/TrackingProvider.tsx +0 -56
  851. package/src/tracking/react/hooks.ts +0 -106
  852. package/src/tracking/react/index.ts +0 -13
  853. package/src/tracking/testing.ts +0 -108
  854. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  855. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  856. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  857. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  858. package/src/tracking/ui/anchor.ts +0 -180
  859. package/src/tracking/ui/card.ts +0 -464
  860. package/src/tracking/ui/client.ts +0 -117
  861. package/src/tracking/ui/index.ts +0 -77
  862. package/src/tracking/ui/types.ts +0 -110
  863. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  864. package/src/types/Form.ts +0 -29
  865. package/src/types.ts +0 -14
  866. package/src/utils/datetime.ts +0 -10
  867. package/src/utils/fetch.ts +0 -457
  868. package/src/utils/lspClient.ts +0 -711
  869. package/src/utils/lspClient.types.ts +0 -211
  870. package/src/utils/queryUnlessCancelled.ts +0 -28
  871. package/src/utils/websocket.ts +0 -293
  872. package/vite.config.ts +0 -58
  873. package/vitest.config.ts +0 -69
@@ -1,197 +0,0 @@
1
- # Form engine — expression support
2
-
3
- Design: [`design/FORM_ENGINE_EXPRESSIONS.md`](../design/FORM_ENGINE_EXPRESSIONS.md).
4
- Adds expression values to the form engine — visual builder (ported) +
5
- DPQL text editor (existing), one AST, plus an Explain button.
6
-
7
- **Status:** all 5 phases DONE pending user verify — implemented 2026-06-09/10,
8
- uncommitted. Foundation → TemplateField toggle + shell → DPQL text mode →
9
- visual ExpressionBuilder → expression validation. jest 267/267, ~14 new
10
- expression play tests pass, prod typecheck + eslint clean. One open item:
11
- the Explain transport (server `render-expression` exposure) — held behind
12
- `useRenderExpression` (interim client-side render works today). Builds on the
13
- also-uncommitted field-migration batch.
14
-
15
- **Server contract:** verified live (see design doc table + memory
16
- "Qorus expression/DPQL contract"). Explain transport is the one open
17
- server decision — held behind `useRenderExpression`, does not block.
18
-
19
- ## Surface area
20
-
21
- | Path | Change |
22
- |---|---|
23
- | `src/components/form/expressions/types.ts` | **new** — `IExpression`, `IExpressionSchema`, arg types |
24
- | `src/components/form/expressions/useExpressions.ts` | **new** — catalogue fetch (`/system?action=expressions` + `expressions_url`) |
25
- | `src/components/form/expressions/useRenderExpression.ts` | **new** — Explain seam |
26
- | `src/components/form/expressions/ExpressionField.tsx` | **new** — Visual⇄Text shell + Explain |
27
- | `src/components/form/expressions/ExpressionBuilder.tsx` (+ argument/group/modal files) | **new** — ported visual tree |
28
- | `src/components/form/expressions/*.stories.tsx` | **new** — mock catalogue + mock LSP |
29
- | `src/components/form/fields/template/TemplateField.tsx` | edit — "Use Expression" toggle → render `ExpressionField` |
30
- | `src/components/form/engine/FormEngine.tsx` / `fields/Field.tsx` | edit — thread `is_expression` value plumbing |
31
- | `src/components/form/index.tsx` | edit — exports |
32
-
33
- ## Phases (each ends at a STOP — user verifies before commit)
34
-
35
- ### Phase 0 — Foundation (unblocked) — DONE pending verify (2026-06-09)
36
- - [x] `types.ts` (`IExpression`, `IExpressionValue`, `IExpressionSchema`,
37
- `IExpressionSchemaArg`, `ExpressionDefaultValue`)
38
- - [x] `useExpressions` — `useFetch('system?action=expressions&context=ui')`,
39
- `expressionsUrl` merge (marks `from_server`/`from_both`), `override`/
40
- `errorOverride` seams, cached
41
- - [x] `useRenderExpression` seam — `render(value, expressions) => Promise<string>`.
42
- **Interim impl is client-side** (`renderExpressionToText` walks the AST
43
- using the catalogue: infix for operators, join for `&&`/`||`, function
44
- form otherwise) — decoupled, no session needed; swaps to server
45
- `render-expression` in one place. (Design said `dpql/serialize`; chose
46
- client-side as it's session-free and gives a real string today.)
47
- - [x] `mockExpressions.ts` fixture (real `==` / `&&` / `contains` entries)
48
- - [x] `Foundation.stories.tsx` — catalogue count/names + rendered AST;
49
- play test passes; verified visually
50
- - [x] prod typecheck + base typecheck clean
51
-
52
- ### Phase 1 — TemplateField expression mode + `ExpressionField` shell — DONE pending verify
53
- - [x] `TemplateField`: "Use Expression" / "Use value" controls in the More
54
- menu, gated on `supports_expressions`; seeds `{ args: [] }`
55
- - [x] When `isExpression`, render `ExpressionField` (main + disabled branches)
56
- - [x] `ExpressionField` shell: holds the AST, **Visual ⇄ Text toggle**
57
- (placeholders for now), Explain button (`useRenderExpression`), live
58
- preview of the current expression
59
- - [x] Value plumbing: `FormEngine.handleValueChange` detects an
60
- `is_expression` value and stores the canonical sibling shape
61
- `{ type, value:<AST>, is_expression:true }`; passes `is_expression`
62
- down to `TemplateField`
63
- - [x] Stories: `Default`, `Empty`, `ViaFormEngine` (round-trip),
64
- `ToggleInFormEngine` (verified live: bool field → Use Expression →
65
- editor; → Use value → back). Barrel exports added.
66
- - [x] Regression: jest 267/267, form play tests pass (only pre-existing
67
- `OnValidityChange` fails)
68
- - Note: expression-aware **validation** deferred to Phase 4 (an empty
69
- expression currently shows the base-type validation error).
70
-
71
- ### Phase 2 — Text mode (DPQL) — DONE pending verify
72
- - [x] `ExpressionField` Text mode renders `DpqlEditor` (via its ref for
73
- parse/serialize)
74
- - [x] Boundary glue: parse-on-edit (debounced 300ms) `text→AST`;
75
- serialize-on-enter `AST→text`; flush-parse on switch-to-Visual
76
- - [x] DPQL-context: optional `provider`/`recordType` passed through when
77
- supplied; parse/serialize work without a provider (only `@field`
78
- completions are reduced) — matches the design's worst-case note
79
- - [x] `dpqlMockLsp.ts` — compact mock-socket LSP (initialize / parse /
80
- serialize / validate / completion); `dpql/parse` echoes the typed
81
- text into an `==` AST for deterministic verification
82
- - [x] Story `TextMode` — types DPQL → parse → the Parsed preview reflects
83
- it (verified in real chromium). 5/5 ExpressionField play tests pass.
84
- - Note: serialize-on-enter is best-effort if the LSP session isn't ready
85
- yet; matters mainly when coming from a Visual-built expression
86
- (Phase 3).
87
-
88
- ### Phase 3 — Visual ExpressionBuilder — DONE pending verify (core)
89
- - [x] `ExpressionBuilder.tsx` — recursive tree: function `Select` (filtered
90
- by return type), operands, AND/OR groups, add/remove condition,
91
- recursion via `level`/`nested`
92
- - [x] **Operands render through `TemplateField`** (→ literal / template /
93
- nested expression via the Phase 1 toggle) and `AutoFormField` for
94
- `any`-typed operands. No re-port of qorus-ide's operand stack.
95
- - [x] `returnType` filters the function list; nested-expression ↔ value
96
- conversion (the operand "fx"/Use-Expression toggle + "use value")
97
- - [x] Stories: `Default` (`==` + operands), `Empty`, `Group` (`&&` tree +
98
- Add condition), `ReadOnly`. 4/4 play tests pass; verified visually
99
- (nested AND tree with per-operand type pickers).
100
- - [x] Regression: jest 267/267, form play tests pass (only pre-existing
101
- `OnValidityChange`)
102
- - **Deferred to a polish pass** (documented): wrap/unwrap, the
103
- `types_mismatch` confirm modal + full type-compat filtering, varargs
104
- "add argument" for non-group expressions, fullscreen/focused editing,
105
- AI-assist button. The core build/edit/group/recurse flow is complete.
106
-
107
- ### Phase 3b — visual polish to match qorus-ide — DONE pending verify (2026-06-10)
108
- - [x] Bumped ReQore **0.68.3 → 0.68.5** (matches the IDE; devDep + peer
109
- range). Full suite still green (188/189, jest 267).
110
- - [x] Rebuilt `ExpressionBuilder` to mirror qorus-ide's layout: each
111
- expression is a dashed-border **card** titled by the function picker
112
- (`Σ` chip); operands laid **horizontally** (label on top, field below;
113
- `fluid` cards + 220px leaf width so they sit in a row and wrap
114
- responsively); tiny-uppercase `LABEL * [type]` labels; **AND/OR
115
- convert** buttons (`.expression-and`/`.expression-or`); `&&`/`||` as
116
- group cards (`IF group`/`AND group`/`OR group`, `.expression-group`)
117
- with AND/OR separators + Add condition + per-condition remove; per-
118
- level `main:darken:${level}` tint. Picker always keeps the selected
119
- expression even when its return type doesn't match the filter.
120
- - [x] Stories rewritten to mirror foxhoundn's IDE stories using the
121
- **`.expression` count** convention + the `.expression-and/or`
122
- interaction (1→2→3). 11/11 play tests pass; verified visually vs `:6009`.
123
- - [x] **Live story** (`ExpressionField › Live`, `tags: ['!test']`,
124
- `parameters: { live: true }`) — fetches the REAL catalogue (no
125
- `expressions` override), mirroring the DpqlEditor live stories.
126
- `.storybook/preview.tsx` instance is now env-configurable
127
- (`REACT_APP_QORUS_INSTANCE` || hq default). Full suite **189/189**
128
- (Live excluded from the offline runner; defaults to hq when env unset).
129
- - Verification gap (honest): could NOT render-verify the Live story against
130
- real data — `localhost:8012` returns the catalogue to curl but sends no
131
- CORS header for the storybook origin (browser blocks the fetch), and I
132
- have no `hq:8092` token. The data path is proven via curl (121
133
- expressions) and the wiring mirrors the working DpqlEditor live pattern;
134
- the user verifies by running storybook with their token/instance.
135
-
136
- ### Phase 3c — faithful mock + offline parity with the IDE — DONE (2026-06-10)
137
- - [x] **Rewrote `mockExpressions`** as a faithful subset of the LIVE catalogue
138
- (captured via curl): `==`, `<`, `>=`, `&&`, `||`, `contains`,
139
- `starts-with`, `ends-with` with the REAL arg types (`richtext` strings,
140
- `any` comparators), `label_after` operator words ("contains", "starts
141
- with", "=="), and the Ignore Case bool. This is why the offline stories
142
- were looking worse — the old 3-entry mock used `any` for `==` (→ bulky
143
- type-pickers) and omitted operator words.
144
- - [x] **`WithComplexValue` now uses qorus-ide's EXACT value** (`&&[ ||[contains,
145
- &&[starts-with, starts-with], >=], ends-with, < ]`) → 6 expression cards
146
- across 3 groups; was a flat 2-card `&&`.
147
- - [x] **Delete is now a card action** (`onRemove` prop → `expression-group-remove`)
148
- instead of a sibling button. The sibling stole flex width and forced
149
- operands to wrap vertically; as a card action the cards fill width and
150
- operands lay out **horizontally** — matching the IDE.
151
- - [x] Verified side-by-side vs `:6009` at the same viewport: nesting, function
152
- chips, horizontal operands, operator words, group containers all match.
153
- 12/12 expression play tests; full suite 188/189 (pre-existing flaky only).
154
-
155
- ### Phase 3d — operand layout: flex-fill (the real refinement) — DONE (2026-06-10)
156
- - [x] Root cause of "old / crooked / unaligned": operands sat in **fixed
157
- 220px boxes**, left-bunched with dead gaps, fields `fluid={false}`.
158
- Compared at full width (`:6007`) the IDE spreads operands across the
159
- whole row.
160
- - [x] Reworked: flattened the operand row (label_before / column / label_after
161
- as flat siblings), each operand column `flex: 1 1 200px` (nested
162
- expressions `1 1 100%`), field now `fluid` (fills its column). Result:
163
- operands fill the row evenly with roomy fields, operator words centered
164
- in the gap — matches the IDE's refinement. eslint clean, 12/12 play
165
- tests, full suite 188/189.
166
-
167
- ### Phase 4 — Explain + validation + polish — DONE pending verify
168
- - [x] Explain panel renders `useRenderExpression` output (done since Phase 1;
169
- works in Visual + Text modes)
170
- - [x] **Expression-aware validation** — `_validateField` short-circuits on
171
- `field.isFunction`: an expression with a chosen `exp` is valid; an
172
- empty one reports "Expression operation is required". FormEngine passes
173
- `isFunction` from the field value's `is_expression`. Verified live (the
174
- FormEngine invalid banner clears for a valid expression) + a story guard.
175
- - [x] Full pass: prod typecheck, eslint, jest 267/267, form play tests pass
176
- (only pre-existing `OnValidityChange`)
177
- - [ ] When the server transport lands, swap `useRenderExpression` impl
178
- (one file) — awaiting the meeting decision
179
- - Deferred (optional): fullscreen/focused-editing affordance
180
-
181
- ### Checks (final)
182
- - [x] Typecheck, lint, jest, storybook play tests pass
183
- - [ ] **STOP — user verifies in browser** before commit
184
-
185
- ## Open decisions
186
-
187
- - **Explain transport** — REST `?action=render-expression` vs LSP
188
- `dpql/explain` vs interim approximation. Server ask in
189
- `/tmp/render-expression-exposure.md`; user raising it at the
190
- 2026-06-10 meeting. Until then: interim seam impl.
191
- - **DPQL text-mode context** (Phase 2) — how to bind a generic field
192
- expression's "fields" when there's no data provider.
193
-
194
- ## Out of scope
195
-
196
- - `server_expression_handling` filtering nuances; AI-assist button;
197
- wiring concrete consumers (alert-rule editor is qorus-ide-side).
@@ -1,95 +0,0 @@
1
- # TASK — FormEngine ↔ IDE Options sync (fetch layer)
2
-
3
- **Status:** Phases 1+2+3 DONE pending user verify (uncommitted) — 6/6 new play tests. Follows the verbatim-port method
4
- (`design/EXPRESSION_BUILDER_REPORT_STRATEGY.md`); audit findings below.
5
-
6
- ## Research summary (2026-06-10)
7
-
8
- FormEngine was extracted from the IDE's `Options` (`systemOptions.tsx`) on
9
- **2026-03-18**; both evolved independently since (8 IDE commits). Full diff
10
- audit found the drift is small — loop fixes, help text, dependencies,
11
- operators UI, required groups all present on both sides; helpers materially
12
- identical. The REAL gaps:
13
-
14
- - **IDE-only:** the remote-fetch layer — `url`/`customUrl` (options schema
15
- from `/options/{url}` or a custom endpoint), `onOptionsLoaded` (declared in
16
- FormEngine but never called), `operatorsUrl` (operator schema; without it
17
- FormEngine's operators UI is dead code — `operators` state is hardcoded
18
- `undefined` with no setter). Plus a two-line `stretch` layout for
19
- `tool-catalog` options (commit 8e6b7781 — the "external data support" in
20
- that commit message was ApiKeys/OAuth2 views, NOT Options).
21
- - **reqraft-only (IDE behind us):** detailed `onValidityChange` payload,
22
- any/auto type preservation, expression value unwrapping.
23
- - **Tests:** the IDE has **zero** coverage for the fetch features (all 30
24
- Options stories pass fixture schemas as props) — so there is nothing to
25
- copy; we write new coverage with a `window.fetch` mock (the dpqlMockLsp
26
- pattern).
27
-
28
- ## Decisions
29
-
30
- - Port the fetch trio verbatim-adapted: IDE `fetchData` → reqraft `query()`
31
- (same `{data, ok, error}` response shape; reqraft prepends
32
- `${instance}api/latest/` like the IDE's `${apiHost}api/latest/`).
33
- Normalise the IDE's leading-slash URLs (avoid `api/latest//options/...`).
34
- - Port the IDE's loading-skeleton branch + the `stretch`/`STRECHABLE_TYPES`
35
- two-liner.
36
- - **Skip `allowAi`** — IDE-only AI infra; seam pattern exists (expression
37
- builder's `extraActions`) if ever needed.
38
- - **Skip `interfaceContext`** — only meaningful through the IDE's template
39
- fetching, which reqraft's `useTemplates` deliberately stubs.
40
-
41
- ## Phases
42
-
43
- ### Phase 1 — fetch layer in FormEngine — DONE (2026-06-10)
44
- - [x] Props: `url`, `customUrl`, `operatorsUrl`; `onOptionsLoaded` now fires
45
- (was declared-but-dead since extraction)
46
- - [x] Mount fetch (seeds `fixOptions(value, schema)`), refetch-on-change
47
- (clears value, seeds `fixOptions({}, schema)`) — IDE semantics verbatim
48
- (`query()` in place of the IDE's `fetchData`; same response shape)
49
- - [x] Operators fetch (own state — `setOperators` finally exists; the loading
50
- gate waits for BOTH schemas when both urls are set, per the IDE)
51
- - [x] Skeleton branch extended with the remote gates; `stretch` +
52
- `STRECHABLE_TYPES` (tool-catalog) ported
53
- - [x] GATE: prod typecheck + eslint clean, jest 267/267
54
-
55
- ### Phase 2 — tests (new coverage; the IDE has none) — DONE (2026-06-10)
56
- - [x] `mockFetchRoutes` helper in `FormEngineRemote.stories.tsx` — patches
57
- `window.fetch`, serves matching routes, passes the rest through;
58
- distinct URLs per story (the `query()` GET cache is 5 min)
59
- - [x] Stories (4): `SchemaFromUrl` (3 options render, preselected default
60
- seeded, `onOptionsLoaded` called with the schema), `OperatorsFromUrl`
61
- (operator select resolves `Like` + the WHERE/IS tags — the previously
62
- DEAD operators UI working end-to-end, verified by screenshot),
63
- `FetchFailure` (500 → "No options available", no crash),
64
- `UrlChangeResetsValue` (url switch clears the old value, new schema
65
- seeds)
66
- - [x] GATE: **4/4 play tests** (repeatedly, incl. after a flake-hardening
67
- timeout bump); jest 267/267; FormEngine.stories 24/24 isolated;
68
- useWebSocket 15/15, Object 11/11 isolated.
69
- ### Phase 3 — seam parity ("item 5") — DONE (2026-06-10)
70
- - [x] `SelectFormField` now **rest-spreads** caller props into all four render
71
- branches (IDE parity; computed `flat`/`intent`/`size`/handlers stay
72
- authoritative by coming after the spread) — closes the
73
- "every pass-through prop needs hand-forwarding" seam for good.
74
- - [x] **`optionActions`** on FormEngine — per-option injected hover actions
75
- (array or factory receiving `{name, schema, value}`), prepended where
76
- the IDE renders its `allowAi` AiAssistanceAction. Same pattern as the
77
- builder's `extraActions`; reqraft stays AI-free.
78
- - [x] **`useTemplates` opt-in fetching** — ported the IDE's
79
- `system/getContextData` fetch + `buildTemplates` (FSM `states` param
80
- seamed out; structural payload types), gated on a NEW explicit
81
- `interfaceContext` (FormEngine prop, threaded through). Without a
82
- context: the original stub behavior, byte-for-byte — no existing
83
- consumer starts fetching.
84
- - [x] Coverage: `InjectedOptionActions` (hover → injected action) and
85
- `TemplatesFromContext` (context fetch hit + loading gate) stories.
86
- **6/6** FormEngineRemote, **17/17** expressions, 23/24 FormEngine
87
- (the 1 = pre-existing `OnValidityChange` flake), jest 267/267,
88
- typecheck + eslint clean.
89
-
90
- - Verification caveat (environment, not code): full-suite runs tonight flap
91
- on LIVE-hq stories (CurrentUser, Log/WS) — same suites pass and fail
92
- across runs with zero code delta (CurrentUser failed 2/2 then passed
93
- 2/2 a minute later), and the same full suite was green 194/194 earlier
94
- today. hq intermittency + dev-server wear; re-run the full suite on a
95
- fresh server when hq is stable for the final pre-commit pass.
@@ -1,72 +0,0 @@
1
- # Form field extras — bucket-1 portable fields
2
-
3
- Follow-on to the field migration (see
4
- [`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md)).
5
- Picks off the **cleanly portable** bucket-1 fields one at a time, and
6
- records an evidence-based triage of the ones that are *not* a quick port
7
- (so "deferred" stays honest, not vague).
8
-
9
- **Status:** `byte-size`, `url`, `multi-select`/`select-array` done pending
10
- user verify — uncommitted, 2026-06-09. 3 new Field stories pass
11
- (`test-storybook`), jest 267/267, prod typecheck + eslint clean. The rest
12
- remain triaged below.
13
-
14
- ## Done this pass
15
-
16
- | Type | What | How |
17
- |---|---|---|
18
- | `byte-size` | **new** `byte-size/ByteSize.tsx` | amount `NumberFormField` + unit `SelectFormField` (KiB/MiB/GiB/TiB); value is the combined `"512MiB"` string. `splitByteSize` reimplemented (3 lines). No app deps. |
19
- | `url` | **new** `url/Url.tsx` | thin `ReqoreInput type="url"` + `new URL()` validity hint. Built fresh — qorus-ide's `URLField` imports `context/init` (app-coupled); a URL field doesn't need it. |
20
- | `multi-select` / `select-array` | wired existing `MultiSelectFormField` | reqraft already had the component; added a `renderField` branch **before** the single-value `allowed_values` short-circuit (multi-select owns its options + is always an array), and a `renderAllowedValues` guard so the picker isn't doubled. |
21
-
22
- > **Superseded 2026-06-10 (FIELD_STACK_REPORT phase 3):** the `url` and
23
- > `byte-size` rows above describe the original from-scratch versions — both
24
- > were replaced by verbatim IDE ports (url: protocol select + `://` + address;
25
- > byte-size: KiB/MiB only). Descriptions kept for history; see
26
- > FIELD_STACK_REPORT for the current implementations.
27
-
28
- Surface area: `src/components/form/fields/byte-size/ByteSize.tsx` (new),
29
- `src/components/form/fields/url/Url.tsx` (new),
30
- `src/components/form/fields/Field.tsx` (3 cases + multi-select branch +
31
- allowed-values guard + 2 imports), `src/components/form/index.tsx`
32
- (exports), `src/components/form/fields/Field.stories.tsx` (`ByteSize`,
33
- `Url`, `MultiSelect` stories).
34
-
35
- ## Triage of the remaining bucket-1 / bucket-2 fields
36
-
37
- Evidence is the qorus-ide source's size + its outside-`Field/` imports
38
- (the portability tell — app context can't come to the toolkit).
39
-
40
- | Type | qorus-ide source | Blocker / verdict |
41
- |---|---|---|
42
- | `option_hash` | `optionHash.tsx` (129) | imports `../../App`, `context/init`, `withTextContext` — **app-coupled**; needs a rewrite, not a port. |
43
- | `array-of-pairs` | `multiPair.tsx` (207) | imports `../../App`, `withTextContext` — app-coupled; moderate rewrite. |
44
- | `enum`-as-radio | `radioField.tsx` (127) | imports `../../App`, two HOCs, **image assets**. Reqraft already has `RadioGroup`; `enum` currently routes to `Select`. Switching is a UX decision, low value. |
45
- | `code-editor` | `CodeEditor/` | **Monaco** — a heavy new runtime dependency reqraft doesn't carry. A dependency call for the maintainers, not something to add unilaterally. |
46
- | `data-provider` | `connectors/` | connection-management + **OAuth2** + instance context — squarely bucket-3 (app integration), excluded by the design. |
47
- | `options` | `systemOptions.tsx` (1500+) | this *is* `FormEngine`, which reqraft already has. Exposing a `type: 'options'` wrapper is possible but needs option-set value-shape decisions; defer until a consumer needs it. |
48
- | `tool-catalog` | `toolCatalog/` (434) | server-driven feature editor (All/Some/None per source). Schema-editor-sized; own task. |
49
- | `active-windows` | `activeWindows/` (290) | server-driven cron-window editor. Own task. |
50
- | `collection-documents` | `collectionDocuments.tsx` (347) | managed uploads tied to AI-collection APIs. Own task. |
51
- | `test-cases` | `testCases/` (**1469**) | large server-driven editor (`/tests/step-kinds`, `/tests/assertions`). Its own multi-day task. |
52
- | `processor-mappings` | `ProcessorMappingPanel` | processor field-mapping editor; feature-specific. Own task. |
53
-
54
- **Principle:** small + dependency-free → done now; app-coupled or
55
- server-driven feature editors → their own task, pulled when a real
56
- consumer needs them so they can be verified against that use (the lesson
57
- from the schema editor's `ui_type` path).
58
-
59
- ## Tasks
60
-
61
- - [x] `ByteSizeFormField` + `case 'byte-size'` + export + story
62
- - [x] `UrlFormField` + `case 'url'` + export + story
63
- - [x] `multi-select`/`select-array` branch + allowed-values guard + story
64
- - [x] Prod typecheck, eslint, jest (267), form play tests (only the
65
- pre-existing `OnValidityChange` fails)
66
- - [ ] **STOP — user verifies in browser** before commit
67
-
68
- ## Out of scope
69
-
70
- - Everything in the triage table marked "own task" / "app-coupled" /
71
- "dependency call" — see the per-row verdicts above.
72
- - Bucket-3 interface selectors (excluded by the design doc).
package/.tasks/INDEX.md DELETED
@@ -1,111 +0,0 @@
1
- # SmartEditor task index
2
-
3
- One-glance status across every task file in `.tasks/`. **Update this
4
- file whenever a task transitions between statuses** (per the
5
- convention in `.claude/CLAUDE.md` § "Task & design docs workflow").
6
-
7
- ## Release strategy
8
-
9
- **Revised 2026-05-26.** All `.tasks/` items below ship together as a
10
- single `0.10.0` release — no incremental `-beta` / `0.10.1` / `0.10.2`
11
- tags between. Rationale recorded in
12
- [`design/SMART_EDITOR_UX.md` § "Release strategy"](../design/SMART_EDITOR_UX.md):
13
- shipping incremental releases would mean cutting tags with no real
14
- consumer (qorus-ide alert-rule editor needs `alertPayloadContext`/`fsmContext`
15
- which are in the CONTEXT_AND_POLISH task, not in what was originally
16
- scoped for `0.10.0`). Better to land everything in one coherent
17
- release that an actual consumer can adopt.
18
-
19
- | Release | Status | Tag / sha |
20
- |---|---|---|
21
- | `0.9.0` | shipped | (current published) |
22
- | `0.10.0` | in progress | held until every task row below is `committed` |
23
- | `0.11.0` (tentative) | planned | Form engine field migration (separate workstream, see below) |
24
-
25
- ## Tasks
26
-
27
- All tasks ship as part of `0.10.0`. Sequence below is the suggested
28
- implementation order; release happens after the last row commits.
29
-
30
- | Task | Status | Sequence rationale |
31
- |---|---|---|
32
- | [SMART_EDITOR_UX_POLISH](./SMART_EDITOR_UX_POLISH.md) | Phase 1 committed `6fb9bf3` · Phases 2–7 + 6 committed `a9b7f1b` and **verified in browser 2026-05-26** · Phase 8 (release prep) deferred to end of batch | The original UX batch. All design-doc items (1–7) shipped and verified; Phase 8's "bump version + push" step now happens after every follow-up below also lands. |
33
- | [SMART_EDITOR_CONTEXT_AND_POLISH](./SMART_EDITOR_CONTEXT_AND_POLISH.md) | items 1/2/4 committed (`5e94fd7`, `8e6fe0f`, `2a53a1a`); item 3 (README) deferred to release prep — **awaiting browser verification** | **1st** done |
34
- | [SMART_EDITOR_LSP_FEATURES](./SMART_EDITOR_LSP_FEATURES.md) | committed (`d54597e`) — **awaiting browser verification** | **2nd** done |
35
- | [QONSOLE_ASSIST_FEATURES](./QONSOLE_ASSIST_FEATURES.md) | committed (`189fe52`) — **awaiting browser verification** | **3rd** done |
36
- | [SMART_EDITOR_VISUAL_POLISH](./SMART_EDITOR_VISUAL_POLISH.md) | committed (`c006a79`) — **awaiting browser verification** | **4th** done |
37
- | [SMART_EDITOR_REVIEW_FOLLOWUPS](./SMART_EDITOR_REVIEW_FOLLOWUPS.md) | all 4 items done pending user verify (uncommitted) | **5th** — reviewer feedback on PR #62 (the `0.10.0` editor batch). |
38
- | `0.10.0` release prep (Phase 8 of UX_POLISH) | ready to start once all above complete | **6th (final)** — bump `package.json` to `0.10.0`; final README pass against the final API; tag; push. |
39
-
40
- ## Form engine field migration (separate workstream)
41
-
42
- Closing the gap between Reqraft's form engine and qorus-ide's `Field`
43
- system. Design locked in
44
- [`design/FORM_ENGINE_FIELD_MIGRATION.md`](../design/FORM_ENGINE_FIELD_MIGRATION.md).
45
- Independent of the `0.10.0` SmartEditor batch above; targets a later
46
- minor (`0.11.0` tentative). Sequence is a hard dependency — phase 2
47
- needs phase 1.
48
-
49
- | Task | Status | Sequence rationale |
50
- |---|---|---|
51
- | [REQRAFT_AUTO_FIELD](./REQRAFT_AUTO_FIELD.md) | done pending user verify (uncommitted) — 8/8 play tests pass | **1st (keystone).** Type-picker + polymorphic dispatch. The schema editor and most of the remaining field gap render their fields through it. |
52
- | [SCHEMA_DEFINITION_FIELD](./SCHEMA_DEFINITION_FIELD.md) | done pending user verify (uncommitted, stacked on phase 1) — 8/8 play tests pass (2 added by FIELD_STACK phase 3, ReadOnly play restored in remediation) | **2nd.** DataSchema editor — catalogue-driven nested form on `FormEngine`. Its leaf adapter emits `auto`, so phase 1 must land first. |
53
- | [FORM_FIELD_EXTRAS](./FORM_FIELD_EXTRAS.md) | done pending user verify (uncommitted) — `byte-size` / `url` / `multi-select` landed; rest triaged | **3rd (ongoing).** Portable bucket-1 fields, picked off one at a time. Contains the evidence-based triage of what's not a quick port. |
54
- | [FORM_ENGINE_EXPRESSIONS](./FORM_ENGINE_EXPRESSIONS.md) | plumbing kept; **visual builder superseded by [EXPRESSION_BUILDER_REPORT](./EXPRESSION_BUILDER_REPORT.md)** | **4th (new feature, large).** Expression values in fields. The catalogue hook / FormEngine `is_expression` / DPQL bridge / validation are kept; the from-scratch visual builder is being replaced by a verbatim re-port. |
55
- | [EXPRESSION_BUILDER_REPORT](./EXPRESSION_BUILDER_REPORT.md) | Phases A+B+C done & verified (uncommitted) | **5th.** Verbatim re-port of the IDE ExpressionBuilder + field-stack parity + IDE tests (Filip's method: copy → 1:1 → improve), replacing the from-scratch builder. Design: `design/EXPRESSION_BUILDER_REPORT_STRATEGY.md`. |
56
- | [FORM_ENGINE_OPTIONS_SYNC](./FORM_ENGINE_OPTIONS_SYNC.md) | Phases 1+2+3 done pending user verify (uncommitted) — 6/6 new play tests | **6th.** Sync FormEngine with the IDE's Options drift since the 2026-03-18 extraction: the remote-fetch layer (`url`/`customUrl`/`onOptionsLoaded`/`operatorsUrl`) + `stretch`; new test coverage (the IDE has none for these). |
57
- | [LSP_SHARED_CONNECTION](./LSP_SHARED_CONNECTION.md) | done pending user verify (uncommitted) — multiplex proof test + 268/268 jest | **7th.** N editors = 1 LSP socket: shared per-endpoint connection multiplexed by document URI (matches the server's `uriToDpqlSession` design); answers Filip's 20-builders question. Client class renamed `LspClient` → `ReqraftLspClient` (the `Reqraft*` convention, 2026-06-11); API otherwise unchanged. |
58
- | [RENDER_EXPRESSION_LSP](./RENDER_EXPRESSION_LSP.md) | done pending user verify, branch `feature/render-expression-lsp` — server deployed + live-verified end-to-end 2026-06-10 (final gate 201/201 storybook, 268/268 jest, browser proof of server rendering) | **8th.** Server "Explain" over the LSP: new `dpql/renderExpression` in `QorusLspWebSocketHandler.qc` + `useRenderExpression` swap. Closes EXPRESSION_BUILDER_REPORT Phase D. Design: `design/RENDER_EXPRESSION_TRANSPORT.md`. |
59
- | [FIELD_STACK_REPORT](./FIELD_STACK_REPORT.md) | done pending user verify (uncommitted) — final gate 234/234 storybook (incl. 37 ported Template/Auto plays), 268/268 jest | **9th.** Verbatim re-port of the IDE's `Field/template.tsx` + `Field/auto.tsx` (the operand layer under the ported builder) + their IDE stories, replacing the from-scratch TemplateField/AutoFormField; closes the `isFunction` operand-flow gap (behavioral difference #4 in EXPRESSION_BUILDER_REPORT). Supersedes the from-scratch implementation from REQRAFT_AUTO_FIELD (its stories/assertions are kept and reconciled). |
60
- | [BRANCH_REMEDIATION](./BRANCH_REMEDIATION.md) | done pending user verify (uncommitted) — jest 268→356, plays 241→255, lint/tsc clean | **10th.** Burn-down of the 2026-06-10 full-branch audit: tests/stories/API/comment-voice remediation + behavior fixes (Select modal-click collapse, edge-triggered Url, ReqraftLspClient rename, CI auth wiring). Ledger: gitignored `SWEEP.local.md`. |
61
- | [STORY_NETWORK_ISOLATION](./STORY_NETWORK_ISOLATION.md) | done pending user verify, folded into `fix/per-field-templates` (PR #115), not pushed | **Standalone.** ExpressionField stories failed off-network on `develop` (passed in CI only because CI reaches the live instance): LSP connections leaking across stories, an unhandled socket give-up in `LspSharedConnection`, unmocked background requests, and mock URLs hard-coded to the hq host. |
62
- | [TEMPLATE_TOKEN_GRAMMAR](./TEMPLATE_TOKEN_GRAMMAR.md) | committed `0ef167c`, in PR (branch `bugfix/template-token-grammar`) — user-verified 2026-08-27; 13/13 unit, 21/21 template plays, qlip PNGs read | **11th (bugfix).** Braced `$data:{…}` state-output refs rehydrate as raw text: canonical token grammar + strict whole-token check + TemplateField renders whole-token values as the picker chip. Twin fix applied in qorus-ide the same day; ships as a normal per-PR patch release (`0.10.37`). |
63
- | [EXPRESSION_FIELD_SEAMS](./EXPRESSION_FIELD_SEAMS.md) | committed `f5fb2ee`, pushed (branch `bugfix/116_expression-field-seams`) — user-verified 2026-09-07; PR not yet opened | **12th (bugfix).** The `extraActions` seam stopped one hop short of the `ExpressionField` shell hosts mount, and the builder's operand `TemplateField` mounts dropped it again — qorus-ide lost its AI-assist button on every expression card when it adopted the shell ([#116](https://github.com/qoretechnologies/toolkit-react/issues/116)). Forward it through both hops; pin with a nested-operand story; ships as a per-PR patch (`0.10.51`; re-based onto `4860e6e` after #114 published 0.10.50). |
64
- | [EXPORT_EXPRESSION_BUILDER](./EXPORT_EXPRESSION_BUILDER.md) | committed `0eea9e7`, pushed, PR open (branch `feature/119_export-expression-builder`) | **13th (surface fix).** The barrel exported the `ExpressionField` shell but not the bare `ExpressionBuilder`, so a host mirroring the library's root/nested rule had to deep-import `dist/…/builder` ([#119](https://github.com/qoretechnologies/toolkit-react/issues/119)). Export + a barrel test; ships as `0.10.53`. |
65
-
66
- Not yet scoped (acknowledged in the design doc): the remaining
67
- `ui_type` editors (`tool-catalog`, `processor-mappings`, `test-cases`,
68
- `active-windows`) and the rest of bucket-1 fields (`data-provider`,
69
- `options`, `byte-size`, `url`, `code-editor`, …). They get their own
70
- task files when picked up.
71
-
72
- ## Status vocabulary
73
-
74
- - **ready to start** — task file exists, design locked, work hasn't begun
75
- - **in progress, branch `<name>`** — branch created, code being written
76
- - **done pending user verify** — code complete, tests pass, sitting uncommitted or on a branch awaiting human in-browser check
77
- - **committed `<sha>`** — landed on the working branch
78
- - **shipped `<tag>`** — released (tag pushed, npm published)
79
- - **paused** — intentionally on hold (note the reason in the task file's "Status" header)
80
- - **superseded by `<file>`** — work absorbed into another task; the file remains as history
81
-
82
- ## How to use this dashboard
83
-
84
- 1. **Picking what to work on next** — read top to bottom. Pick the
85
- highest-up task whose status is `ready to start` or
86
- `in progress` and whose sequence rationale doesn't put you out of
87
- order.
88
- 2. **Picking what to verify before commit** — when a task is "done
89
- pending user verify", check the **task file** (not this dashboard)
90
- for the verification checklist, plus the per-batch
91
- `VERIFY.local.md` (untracked) if one exists.
92
- 3. **Adding a new task** — write the planning doc first
93
- (`.tasks/<NAME>.md`), then add a row here.
94
- 4. **Closing a task** — flip its status here AND in the task file's
95
- `**Status:**` header. Don't delete completed task files;
96
- they become history.
97
-
98
- ## Out-of-band trackers
99
-
100
- These don't live in `.tasks/`:
101
-
102
- - **Reqore-side bugs** — spawn-task chips (see chat history) for
103
- upstream PRs needed by SmartEditor (Textarea null-check,
104
- renderElement deps fix). Track via your normal PR workflow on the
105
- Reqore repo, not here.
106
- - **qorus-ide integration** — `qorus-frontend/qorus-ide/.tasks/ALERT_RULES_AND_SILENCES.md`
107
- is the consumer-side task that depends on
108
- `SMART_EDITOR_CONTEXT_AND_POLISH` item 4. Update the qorus-ide
109
- task when item 4 ships so the qorus-ide consumer can unblock.
110
- - **Per-batch verification** — `VERIFY.local.md` (untracked). One
111
- per work batch — overwrite the previous when starting a new batch.
@@ -1,75 +0,0 @@
1
- # TASK — Shared LSP connection (N editors = 1 socket)
2
-
3
- **Status:** DONE pending user verify (uncommitted, 2026-06-10).
4
-
5
- ## Why
6
-
7
- Filip's call question (2026-06-10): with 20 expression builders open, "would
8
- it have different connections or how would you associate the message?"
9
- Research findings:
10
- - The server is BUILT for multiplexing: `QorusLspWebSocketHandler.qc:531`
11
- keeps `uriToDpqlSession` — a per-connection map of URI → DPQL session
12
- (created on didOpen :1004, removed on didClose :1213); `dpql/setContext`
13
- takes a `uri` param. One connection serves N documents.
14
- - reqraft's old `LspClient` opened one isolated socket PER editor
15
- (`pooled: false`) — 20 Text-mode editors = 20 sockets + 20 handshakes. The
16
- old comment's rationale ("sharing conflates diagnostics and correlation")
17
- was wrong: JSON-RPC ids correlate responses; `publishDiagnostics` carries
18
- the uri.
19
- - qorus-ide's own Creator WS already uses the shared-socket + `request_id`
20
- pattern (`helpers/functions.tsx:405`).
21
-
22
- ## What changed (`src/utils/lspClient.ts`)
23
-
24
- - New internal `LspSharedConnection`: one WebSocket + one `initialize` per
25
- endpoint URL (registry; first acquirer's reconnect config wins). Owns the
26
- id counter + pending map; routes responses by id, `publishDiagnostics` by
27
- `params.uri`, other notifications to every registered client. Closes when
28
- the last client releases it.
29
- - `LspClient` is now a per-document façade with an UNCHANGED public API
30
- (`useDpqlSession`/`useLspSession`/`DpqlEditor` untouched);
31
- `capabilities`/`semanticTokensLegend` became getters proxying the
32
- connection. Reconnect: the connection re-initializes once, then each client
33
- re-sends its own `didOpen` (`_resyncAfterReconnect`).
34
- - Editor URIs were already unique per instance
35
- (`${languageId}://session/${counter}` in `useLspSession`) — collision-safe.
36
- - Test hook `_resetSharedLspConnectionsForTests()` (mirrors the websocket
37
- manager reset in jest).
38
- - Answer to Filip, in one line: **one connection per endpoint, sessions
39
- multiplexed by URI; requests correlate by JSON-RPC id, diagnostics by uri —
40
- matching the server's design and the IDE's request_id pattern.**
41
-
42
- ## Consumer audit (what the refactor touches)
43
-
44
- - **Exactly one `LspClient` creation site** in the library:
45
- `useLspSession.ts:110` — SmartEditor, DpqlEditor, Qonsole and the
46
- expressions Text mode ALL flow through it; its API was preserved verbatim.
47
- - `capabilities`/`semanticTokensLegend` readers (`useLspSession`,
48
- `useLspSemanticTokens`, `useLspSignatureHelp`) only READ them → the
49
- field→getter change is API-identical.
50
- - NEW behavior introduced: different `languageId`s (dpql + qonsole) can now
51
- share one connection (same `'lsp'` URL). Verified safe — the server
52
- resolves language PER DOCUMENT (`detectLanguage(textDoc.languageId, uri)`
53
- at didOpen, `uriToLanguage{uri}`/`uriToSource{uri}` maps), and verified
54
- LIVE (below).
55
-
56
- ## Verification
57
-
58
- - New jest proof: two clients → `connections === 1`, one `initialize`,
59
- diagnostics delivered only to the matching uri, releasing one client keeps
60
- the socket for the other. lspClient suite **15/15**; full jest **268/268**.
61
- - **LIVE e2e against the real server** (`lsp-multiplex-e2e.local.mjs`,
62
- gitignored — one socket to `wss://localhost:8012/lsp`): initialize once;
63
- two DPQL docs + one Qonsole doc coexist; interleaved per-document
64
- `semanticTokens` requests return DISTINCT results; diagnostics route per
65
- uri (invalid doc got 3, valid got 0, qonsole got 0); closing doc A leaves
66
- doc B fully functional. `E2E OK`.
67
- - **Browser-level proof**: new `DpqlEditor › TwoEditorsOneConnection` story —
68
- two mounted editors, the mock server accepts exactly ONE connection, one
69
- `initialize`, two `didOpen`s with distinct URIs. dpqlEditor suite **17/17**.
70
- - Storybook (fresh server): smartEditor+qonsole **8/8**, expressions
71
- **17/17**. Typecheck + eslint clean.
72
- - Known semantics note: with >1 client on a connection, a disconnecting
73
- client's in-flight requests are left to their timeouts (results ignored
74
- post-unmount); the sole-client case still rejects them via the connection
75
- close — covered by the existing test.