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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (913) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +420 -63
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +94 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +336 -243
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +20 -57
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +67 -59
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +606 -409
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts +2 -18
  68. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  69. package/dist/components/form/engine/OptionFieldMessages.js +28 -25
  70. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  72. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  73. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js +11 -31
  77. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts +30 -6
  79. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  80. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  81. package/dist/components/form/engine/compactRowStyles.d.ts +56 -31
  82. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  83. package/dist/components/form/engine/compactRowStyles.js +121 -110
  84. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  85. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  86. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  87. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  88. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  89. package/dist/components/form/engine/compactToolbarContext.d.ts +0 -3
  90. package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
  91. package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
  92. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  93. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  94. package/dist/components/form/engine/inheritProps.js +43 -0
  95. package/dist/components/form/engine/inheritProps.js.map +1 -0
  96. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  97. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  98. package/dist/components/form/engine/operatorSummary.js +35 -0
  99. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  100. package/dist/components/form/engine/readFirst.d.ts +26 -22
  101. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  102. package/dist/components/form/engine/readFirst.js +79 -115
  103. package/dist/components/form/engine/readFirst.js.map +1 -1
  104. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  105. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  106. package/dist/components/form/engine/readFirstColors.js +51 -0
  107. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  108. package/dist/components/form/engine/rowFocus.d.ts +3 -9
  109. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  110. package/dist/components/form/engine/rowFocus.js +30 -19
  111. package/dist/components/form/engine/rowFocus.js.map +1 -1
  112. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  113. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  114. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  115. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  116. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  117. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  118. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  119. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  120. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  121. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  123. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  124. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  125. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  126. package/dist/components/form/engine/variants/variantParts.js +25 -17
  127. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  128. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  129. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  130. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  131. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  132. package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
  133. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  134. package/dist/components/form/expressions/ExpressionField.js +536 -114
  135. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  136. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  137. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  138. package/dist/components/form/expressions/argumentPresence.js +16 -1
  139. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  141. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  142. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  144. package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
  145. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  146. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  147. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  148. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  149. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
  150. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  151. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
  152. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  153. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  154. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  155. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
  156. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  157. package/dist/components/form/expressions/builder/index.d.ts +34 -2
  158. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  159. package/dist/components/form/expressions/builder/index.js +170 -80
  160. package/dist/components/form/expressions/builder/index.js.map +1 -1
  161. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  162. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  163. package/dist/components/form/expressions/builder/item.js +19 -5
  164. package/dist/components/form/expressions/builder/item.js.map +1 -1
  165. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  166. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  167. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  168. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  169. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  170. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  171. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  172. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  173. package/dist/components/form/expressions/expressionOperands.js +97 -0
  174. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  175. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  176. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  177. package/dist/components/form/expressions/fieldPath.js +152 -0
  178. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  179. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  180. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  181. package/dist/components/form/expressions/loneValue.js +33 -0
  182. package/dist/components/form/expressions/loneValue.js.map +1 -0
  183. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  184. package/dist/components/form/expressions/mockExpressions.js +22 -5
  185. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  186. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  187. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  188. package/dist/components/form/expressions/renderExpressionToText.js +37 -25
  189. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  190. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  191. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  192. package/dist/components/form/expressions/textOfExpression.js +49 -0
  193. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  194. package/dist/components/form/expressions/types.d.ts +12 -0
  195. package/dist/components/form/expressions/types.d.ts.map +1 -1
  196. package/dist/components/form/expressions/types.js +6 -1
  197. package/dist/components/form/expressions/types.js.map +1 -1
  198. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  199. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  200. package/dist/components/form/expressions/useExpressionType.js +181 -0
  201. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  202. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  203. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  204. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  205. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  206. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  207. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  208. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  209. package/dist/components/form/fields/Field.d.ts.map +1 -1
  210. package/dist/components/form/fields/Field.js +39 -18
  211. package/dist/components/form/fields/Field.js.map +1 -1
  212. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +0 -7
  213. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  214. package/dist/components/form/fields/allowed-values/AllowedValues.js +46 -35
  215. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  216. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  217. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  218. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  219. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  220. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  221. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  222. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  223. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  224. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  225. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  226. package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
  227. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  228. package/dist/components/form/fields/auto/AutoFormField.js +123 -79
  229. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  230. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  231. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  232. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  233. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  234. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  235. package/dist/components/form/fields/binary/Binary.js +23 -3
  236. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  237. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  238. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  239. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  240. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  241. package/dist/components/form/fields/color/Color.d.ts +103 -16
  242. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  243. package/dist/components/form/fields/color/Color.js +616 -16
  244. package/dist/components/form/fields/color/Color.js.map +1 -1
  245. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  246. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  247. package/dist/components/form/fields/emittedValues.js +24 -1
  248. package/dist/components/form/fields/emittedValues.js.map +1 -1
  249. package/dist/components/form/fields/file/File.d.ts +1 -1
  250. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  251. package/dist/components/form/fields/file/File.js +4 -2
  252. package/dist/components/form/fields/file/File.js.map +1 -1
  253. package/dist/components/form/fields/long-string/LongString.d.ts +1 -7
  254. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  255. package/dist/components/form/fields/long-string/LongString.js +30 -13
  256. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  257. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  258. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  259. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +10 -7
  260. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  261. package/dist/components/form/fields/number/Number.d.ts +7 -4
  262. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  263. package/dist/components/form/fields/number/Number.js +45 -18
  264. package/dist/components/form/fields/number/Number.js.map +1 -1
  265. package/dist/components/form/fields/object/Object.d.ts +1 -1
  266. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  267. package/dist/components/form/fields/object/Object.js +4 -2
  268. package/dist/components/form/fields/object/Object.js.map +1 -1
  269. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  270. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  271. package/dist/components/form/fields/pendingEdit.js +79 -0
  272. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  273. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  274. package/dist/components/form/fields/radio-group/RadioGroup.js +8 -13
  275. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  276. package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
  277. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  278. package/dist/components/form/fields/rich-text/RichText.js +426 -91
  279. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  280. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  281. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  282. package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
  283. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  284. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  285. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  286. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  287. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  288. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  289. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  290. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  291. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  292. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  293. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  294. package/dist/components/form/fields/schema-definition/index.js +8 -4
  295. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  296. package/dist/components/form/fields/select/Select.d.ts +10 -1
  297. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  298. package/dist/components/form/fields/select/Select.js +28 -14
  299. package/dist/components/form/fields/select/Select.js.map +1 -1
  300. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  301. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  302. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  303. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  304. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  305. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  306. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  307. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  308. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  309. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  310. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  311. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  312. package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
  313. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  314. package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
  315. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  316. package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
  317. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  318. package/dist/components/form/fields/template/TemplateField.js +706 -168
  319. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  320. package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
  321. package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
  322. package/dist/components/form/fields/template/TemplatePicker.js +459 -0
  323. package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
  324. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  325. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  326. package/dist/components/form/fields/template/TemplateText.js +22 -16
  327. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  328. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  329. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  330. package/dist/components/form/fields/template/referenceNames.js +69 -0
  331. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  332. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  333. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  334. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  335. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  336. package/dist/components/form/index.d.ts +12 -2
  337. package/dist/components/form/index.d.ts.map +1 -1
  338. package/dist/components/form/index.js +25 -3
  339. package/dist/components/form/index.js.map +1 -1
  340. package/dist/components/form/typeSentenceForm.d.ts +17 -0
  341. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  342. package/dist/components/form/typeSentenceForm.js +54 -0
  343. package/dist/components/form/typeSentenceForm.js.map +1 -0
  344. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  345. package/dist/components/imageLightbox/ImageLightbox.js +19 -9
  346. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  347. package/dist/components/log/Log.d.ts.map +1 -1
  348. package/dist/components/log/Log.js +20 -8
  349. package/dist/components/log/Log.js.map +1 -1
  350. package/dist/components/menu/Menu.d.ts.map +1 -1
  351. package/dist/components/menu/Menu.js +19 -10
  352. package/dist/components/menu/Menu.js.map +1 -1
  353. package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
  354. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  355. package/dist/components/smartEditor/CompletionMenu.js +302 -0
  356. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  357. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  358. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  359. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  360. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  361. package/dist/components/smartEditor/SmartEditor.js +616 -190
  362. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  363. package/dist/components/smartEditor/completionStyle.d.ts +28 -0
  364. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  365. package/dist/components/smartEditor/completionStyle.js +79 -0
  366. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  367. package/dist/components/smartEditor/contextTitle.d.ts +10 -0
  368. package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
  369. package/dist/components/smartEditor/contextTitle.js +21 -0
  370. package/dist/components/smartEditor/contextTitle.js.map +1 -0
  371. package/dist/components/smartEditor/editingAids.d.ts +64 -0
  372. package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
  373. package/dist/components/smartEditor/editingAids.js +213 -0
  374. package/dist/components/smartEditor/editingAids.js.map +1 -0
  375. package/dist/components/smartEditor/index.d.ts +6 -1
  376. package/dist/components/smartEditor/index.d.ts.map +1 -1
  377. package/dist/components/smartEditor/index.js +19 -1
  378. package/dist/components/smartEditor/index.js.map +1 -1
  379. package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
  380. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  381. package/dist/components/smartEditor/templateCompletions.js +380 -0
  382. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  383. package/dist/components/smartEditor/typedReferences.d.ts +34 -0
  384. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  385. package/dist/components/smartEditor/typedReferences.js +179 -0
  386. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  387. package/dist/components/smartEditor/types.d.ts +116 -2
  388. package/dist/components/smartEditor/types.d.ts.map +1 -1
  389. package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
  390. package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
  391. package/dist/components/smartEditor/useEditingAids.js +392 -0
  392. package/dist/components/smartEditor/useEditingAids.js.map +1 -0
  393. package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
  394. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  395. package/dist/components/smartEditor/useLspAutocomplete.js +592 -149
  396. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  397. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  398. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  399. package/dist/components/smartEditor/useLspHover.js +364 -35
  400. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  401. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  402. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  403. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  404. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  405. package/dist/components/smartEditor/useLspSession.js +7 -6
  406. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  407. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  408. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  409. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  410. package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
  411. package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
  412. package/dist/components/smartEditor/useTabCameIn.js +42 -0
  413. package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
  414. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  415. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  416. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  417. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +2 -3
  418. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -1
  419. package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -1
  420. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -3
  421. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  422. package/dist/components/supportTicket/ReferencePicker.js +38 -23
  423. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  424. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  425. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  426. package/dist/components/supportTicket/TicketHeader.js +21 -6
  427. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  428. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  429. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -1
  430. package/dist/components/supportTicket/TicketReplyBox.js +10 -29
  431. package/dist/components/supportTicket/TicketReplyBox.js.map +1 -1
  432. package/dist/components/supportTicket/useLoadedImages.d.ts +0 -10
  433. package/dist/components/supportTicket/useLoadedImages.d.ts.map +1 -1
  434. package/dist/components/supportTicket/useLoadedImages.js +1 -63
  435. package/dist/components/supportTicket/useLoadedImages.js.map +1 -1
  436. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  437. package/dist/components/ticketReferences/TicketReferences.js +10 -9
  438. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  439. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  440. package/dist/components/ticketThread/TicketThread.js +52 -21
  441. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  442. package/dist/helpers/allowedValues.d.ts +21 -12
  443. package/dist/helpers/allowedValues.d.ts.map +1 -1
  444. package/dist/helpers/allowedValues.js +40 -20
  445. package/dist/helpers/allowedValues.js.map +1 -1
  446. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  447. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  448. package/dist/helpers/descriptionTooltip.js +76 -0
  449. package/dist/helpers/descriptionTooltip.js.map +1 -0
  450. package/dist/helpers/domProps.d.ts +5 -0
  451. package/dist/helpers/domProps.d.ts.map +1 -0
  452. package/dist/helpers/domProps.js +47 -0
  453. package/dist/helpers/domProps.js.map +1 -0
  454. package/dist/helpers/expressions.d.ts +115 -4
  455. package/dist/helpers/expressions.d.ts.map +1 -1
  456. package/dist/helpers/expressions.js +247 -29
  457. package/dist/helpers/expressions.js.map +1 -1
  458. package/dist/helpers/hoveringPointer.d.ts +26 -0
  459. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  460. package/dist/helpers/hoveringPointer.js +29 -0
  461. package/dist/helpers/hoveringPointer.js.map +1 -0
  462. package/dist/helpers/markdownText.d.ts +14 -0
  463. package/dist/helpers/markdownText.d.ts.map +1 -0
  464. package/dist/helpers/markdownText.js +160 -0
  465. package/dist/helpers/markdownText.js.map +1 -0
  466. package/dist/helpers/noDescription.d.ts +9 -0
  467. package/dist/helpers/noDescription.d.ts.map +1 -0
  468. package/dist/helpers/noDescription.js +13 -0
  469. package/dist/helpers/noDescription.js.map +1 -0
  470. package/dist/helpers/optionUiTypes.d.ts +2 -2
  471. package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
  472. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  473. package/dist/helpers/qorusTypeCatalogue.js +505 -0
  474. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  475. package/dist/helpers/readableColors.d.ts +36 -0
  476. package/dist/helpers/readableColors.d.ts.map +1 -0
  477. package/dist/helpers/readableColors.js +116 -0
  478. package/dist/helpers/readableColors.js.map +1 -0
  479. package/dist/helpers/recordFieldReference.d.ts +15 -0
  480. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  481. package/dist/helpers/recordFieldReference.js +89 -0
  482. package/dist/helpers/recordFieldReference.js.map +1 -0
  483. package/dist/helpers/singleLineString.d.ts.map +1 -1
  484. package/dist/helpers/singleLineString.js +0 -1
  485. package/dist/helpers/singleLineString.js.map +1 -1
  486. package/dist/helpers/templateCatalogue.d.ts +104 -0
  487. package/dist/helpers/templateCatalogue.d.ts.map +1 -0
  488. package/dist/helpers/templateCatalogue.js +116 -0
  489. package/dist/helpers/templateCatalogue.js.map +1 -0
  490. package/dist/helpers/templateCatalogueContext.d.ts +19 -0
  491. package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
  492. package/dist/helpers/templateCatalogueContext.js +31 -0
  493. package/dist/helpers/templateCatalogueContext.js.map +1 -0
  494. package/dist/helpers/templateItems.d.ts +2 -2
  495. package/dist/helpers/templateItems.d.ts.map +1 -1
  496. package/dist/helpers/templateItems.js +6 -4
  497. package/dist/helpers/templateItems.js.map +1 -1
  498. package/dist/helpers/templateText.d.ts +1 -0
  499. package/dist/helpers/templateText.d.ts.map +1 -1
  500. package/dist/helpers/templateText.js +7 -3
  501. package/dist/helpers/templateText.js.map +1 -1
  502. package/dist/helpers/templateTree.d.ts +248 -0
  503. package/dist/helpers/templateTree.d.ts.map +1 -0
  504. package/dist/helpers/templateTree.js +892 -0
  505. package/dist/helpers/templateTree.js.map +1 -0
  506. package/dist/helpers/templateType.d.ts +28 -0
  507. package/dist/helpers/templateType.d.ts.map +1 -0
  508. package/dist/helpers/templateType.js +30 -0
  509. package/dist/helpers/templateType.js.map +1 -0
  510. package/dist/helpers/templates.d.ts +86 -16
  511. package/dist/helpers/templates.d.ts.map +1 -1
  512. package/dist/helpers/templates.js +305 -45
  513. package/dist/helpers/templates.js.map +1 -1
  514. package/dist/helpers/validations.d.ts +27 -0
  515. package/dist/helpers/validations.d.ts.map +1 -1
  516. package/dist/helpers/validations.js +169 -39
  517. package/dist/helpers/validations.js.map +1 -1
  518. package/dist/helpers/webLink.d.ts +8 -0
  519. package/dist/helpers/webLink.d.ts.map +1 -0
  520. package/dist/helpers/webLink.js +29 -0
  521. package/dist/helpers/webLink.js.map +1 -0
  522. package/dist/hooks/useQorusTypes.d.ts +12 -17
  523. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  524. package/dist/hooks/useQorusTypes.js +44 -172
  525. package/dist/hooks/useQorusTypes.js.map +1 -1
  526. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  527. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  528. package/dist/hooks/useReadableIntentShade.js +23 -0
  529. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  530. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  531. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  532. package/dist/hooks/useReadableOpacity.js +17 -0
  533. package/dist/hooks/useReadableOpacity.js.map +1 -0
  534. package/dist/index.d.ts +8 -0
  535. package/dist/index.d.ts.map +1 -1
  536. package/dist/index.js +24 -1
  537. package/dist/index.js.map +1 -1
  538. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  539. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  540. package/dist/tracking/ui/ExperimentCard.js +26 -10
  541. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  542. package/dist/tracking/ui/card.d.ts +2 -2
  543. package/dist/tracking/ui/card.d.ts.map +1 -1
  544. package/dist/tracking/ui/card.js +2 -2
  545. package/dist/tracking/ui/card.js.map +1 -1
  546. package/dist/tracking/ui/readable.d.ts +14 -0
  547. package/dist/tracking/ui/readable.d.ts.map +1 -0
  548. package/dist/tracking/ui/readable.js +60 -0
  549. package/dist/tracking/ui/readable.js.map +1 -0
  550. package/dist/utils/fetch.d.ts +9 -2
  551. package/dist/utils/fetch.d.ts.map +1 -1
  552. package/dist/utils/fetch.js +6 -5
  553. package/dist/utils/fetch.js.map +1 -1
  554. package/dist/utils/lspClient.types.d.ts +2 -0
  555. package/dist/utils/lspClient.types.d.ts.map +1 -1
  556. package/dist/utils/websocket.d.ts +65 -2
  557. package/dist/utils/websocket.d.ts.map +1 -1
  558. package/dist/utils/websocket.js +276 -44
  559. package/dist/utils/websocket.js.map +1 -1
  560. package/package.json +14 -6
  561. package/.claude/CLAUDE.md +0 -317
  562. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  563. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  564. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  565. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  566. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  567. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  568. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  569. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  570. package/.tasks/INDEX.md +0 -111
  571. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  572. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  573. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  574. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  575. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  576. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  577. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  578. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  579. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  580. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  581. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  582. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  583. package/CODE_OF_CONDUCT.md +0 -105
  584. package/CONTRIBUTING.MD +0 -78
  585. package/SECURITY.md +0 -3
  586. package/chromatic.config.json +0 -5
  587. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  588. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  589. package/design/COMPACT_PARITY.md +0 -85
  590. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  591. package/design/FORM_ENGINE_COMPACT.md +0 -300
  592. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  593. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  594. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  595. package/design/IDE_INTEGRATION.md +0 -64
  596. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  597. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  598. package/design/SMART_EDITOR_UX.md +0 -438
  599. package/design/TRACKING.md +0 -290
  600. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  601. package/dist/components/form/engine/formAppearance.d.ts +0 -49
  602. package/dist/components/form/engine/formAppearance.d.ts.map +0 -1
  603. package/dist/components/form/engine/formAppearance.js +0 -50
  604. package/dist/components/form/engine/formAppearance.js.map +0 -1
  605. package/dist/components/form/fields/ChoiceGroupHeading.d.ts +0 -21
  606. package/dist/components/form/fields/ChoiceGroupHeading.d.ts.map +0 -1
  607. package/dist/components/form/fields/ChoiceGroupHeading.js +0 -33
  608. package/dist/components/form/fields/ChoiceGroupHeading.js.map +0 -1
  609. package/dist/components/form/fields/allowed-values/savedValues.d.ts +0 -30
  610. package/dist/components/form/fields/allowed-values/savedValues.d.ts.map +0 -1
  611. package/dist/components/form/fields/allowed-values/savedValues.js +0 -39
  612. package/dist/components/form/fields/allowed-values/savedValues.js.map +0 -1
  613. package/dist/helpers/fieldDescription.d.ts +0 -16
  614. package/dist/helpers/fieldDescription.d.ts.map +0 -1
  615. package/dist/helpers/fieldDescription.js +0 -40
  616. package/dist/helpers/fieldDescription.js.map +0 -1
  617. package/src/components/Description/index.tsx +0 -254
  618. package/src/components/Description/markdownRendererContext.tsx +0 -29
  619. package/src/components/FocusedEditing/index.tsx +0 -50
  620. package/src/components/codeSize/index.tsx +0 -79
  621. package/src/components/composer/Composer.stories.tsx +0 -238
  622. package/src/components/composer/Composer.tsx +0 -554
  623. package/src/components/composer/helpers.ts +0 -74
  624. package/src/components/composer/index.ts +0 -2
  625. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  626. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  627. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  628. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  629. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  630. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  631. package/src/components/dpqlEditor/index.ts +0 -41
  632. package/src/components/dpqlEditor/types.ts +0 -203
  633. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  634. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  635. package/src/components/form/engine/CompactRow.tsx +0 -2740
  636. package/src/components/form/engine/CompactToolbar.tsx +0 -399
  637. package/src/components/form/engine/FormEngine.stories.tsx +0 -9934
  638. package/src/components/form/engine/FormEngine.tsx +0 -4891
  639. package/src/components/form/engine/FormEngineAppearance.stories.tsx +0 -609
  640. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  641. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -335
  642. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  643. package/src/components/form/engine/OptionFieldMessages.tsx +0 -548
  644. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  645. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  646. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  647. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  648. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -755
  649. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  650. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  651. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  652. package/src/components/form/engine/compactRowContext.ts +0 -153
  653. package/src/components/form/engine/compactRowStyles.ts +0 -1087
  654. package/src/components/form/engine/compactToolbarContext.ts +0 -72
  655. package/src/components/form/engine/formAppearance.ts +0 -79
  656. package/src/components/form/engine/optionActions.ts +0 -128
  657. package/src/components/form/engine/optionsContext.ts +0 -24
  658. package/src/components/form/engine/readFirst.ts +0 -1090
  659. package/src/components/form/engine/rendererTypes.ts +0 -107
  660. package/src/components/form/engine/revealRow.ts +0 -123
  661. package/src/components/form/engine/rowFocus.ts +0 -112
  662. package/src/components/form/engine/rowMenuContext.ts +0 -159
  663. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  664. package/src/components/form/engine/typeChoices.ts +0 -63
  665. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  666. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  667. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  668. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  669. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  670. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  671. package/src/components/form/engine/variants/variantModel.ts +0 -223
  672. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  673. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  674. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  675. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  676. package/src/components/form/expressions/argumentPresence.ts +0 -213
  677. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  678. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  679. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  680. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  681. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  682. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  683. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  684. package/src/components/form/expressions/builder/index.tsx +0 -1545
  685. package/src/components/form/expressions/builder/item.tsx +0 -89
  686. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  687. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  688. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  689. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  690. package/src/components/form/expressions/mockExpressions.ts +0 -317
  691. package/src/components/form/expressions/renderExpressionToText.ts +0 -152
  692. package/src/components/form/expressions/types.ts +0 -110
  693. package/src/components/form/expressions/useExpressions.ts +0 -101
  694. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  695. package/src/components/form/fields/ChoiceGroupHeading.tsx +0 -38
  696. package/src/components/form/fields/Field.stories.tsx +0 -143
  697. package/src/components/form/fields/Field.tsx +0 -734
  698. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -321
  699. package/src/components/form/fields/allowed-values/savedValues.ts +0 -64
  700. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  701. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  702. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  703. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  704. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1183
  705. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  706. package/src/components/form/fields/binary/Binary.tsx +0 -91
  707. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  708. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  709. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  710. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  711. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  712. package/src/components/form/fields/color/Color.tsx +0 -46
  713. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  714. package/src/components/form/fields/cron/Cron.tsx +0 -80
  715. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  716. package/src/components/form/fields/date/Date.tsx +0 -55
  717. package/src/components/form/fields/emittedValues.ts +0 -70
  718. package/src/components/form/fields/file/File.stories.tsx +0 -161
  719. package/src/components/form/fields/file/File.tsx +0 -227
  720. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -147
  721. package/src/components/form/fields/long-string/LongString.tsx +0 -141
  722. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  723. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  724. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  725. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -140
  726. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  727. package/src/components/form/fields/number/Number.tsx +0 -175
  728. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  729. package/src/components/form/fields/object/Object.tsx +0 -255
  730. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  731. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -52
  732. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  733. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  734. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  735. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  736. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  737. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  738. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  739. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  740. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  741. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  742. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  743. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  744. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  745. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  746. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  747. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  748. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  749. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  750. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  751. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  752. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  753. package/src/components/form/fields/schema-definition/types.ts +0 -185
  754. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  755. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  756. package/src/components/form/fields/select/Select.tsx +0 -624
  757. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  758. package/src/components/form/fields/string/String.stories.tsx +0 -86
  759. package/src/components/form/fields/string/String.tsx +0 -43
  760. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  761. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  762. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  763. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  764. package/src/components/form/fields/template/TemplateField.tsx +0 -1749
  765. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  766. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  767. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  768. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  769. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  770. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  771. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  772. package/src/components/form/fields/url/Url.tsx +0 -85
  773. package/src/components/form/index.tsx +0 -49
  774. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  775. package/src/components/imageLightbox/ImageLightbox.tsx +0 -238
  776. package/src/components/imageLightbox/index.ts +0 -1
  777. package/src/components/log/Log.stories.tsx +0 -333
  778. package/src/components/log/Log.tsx +0 -285
  779. package/src/components/menu/Menu.stories.tsx +0 -155
  780. package/src/components/menu/Menu.tsx +0 -312
  781. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  782. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  783. package/src/components/qonsoleSmartInput/index.ts +0 -16
  784. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  785. package/src/components/qonsoleSmartInput/types.ts +0 -133
  786. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  787. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  788. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  789. package/src/components/searchFilterBar/index.ts +0 -1
  790. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  791. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  792. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  793. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  794. package/src/components/smartEditor/helpers.ts +0 -217
  795. package/src/components/smartEditor/index.ts +0 -35
  796. package/src/components/smartEditor/styling.ts +0 -45
  797. package/src/components/smartEditor/types.ts +0 -211
  798. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  799. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  800. package/src/components/smartEditor/useLspHover.ts +0 -230
  801. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  802. package/src/components/smartEditor/useLspSession.ts +0 -231
  803. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  804. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  805. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  806. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  807. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -130
  808. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -580
  809. package/src/components/supportTicket/ReferencePicker.tsx +0 -573
  810. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -120
  811. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  812. package/src/components/supportTicket/TicketHeader.tsx +0 -248
  813. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  814. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  815. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -357
  816. package/src/components/supportTicket/TicketReplyBox.tsx +0 -172
  817. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  818. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  819. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  820. package/src/components/supportTicket/index.ts +0 -10
  821. package/src/components/supportTicket/meta.ts +0 -206
  822. package/src/components/supportTicket/ticketModel.ts +0 -131
  823. package/src/components/supportTicket/useLoadedImages.ts +0 -93
  824. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -341
  825. package/src/components/ticketReferences/TicketReferences.tsx +0 -914
  826. package/src/components/ticketReferences/index.ts +0 -2
  827. package/src/components/ticketThread/TicketThread.stories.tsx +0 -898
  828. package/src/components/ticketThread/TicketThread.tsx +0 -706
  829. package/src/components/ticketThread/index.ts +0 -6
  830. package/src/contexts/FetchContext.tsx +0 -25
  831. package/src/contexts/ReqraftContext.tsx +0 -9
  832. package/src/contexts/StorageContext.tsx +0 -33
  833. package/src/global.d.ts +0 -4
  834. package/src/helpers/allowedValues.ts +0 -268
  835. package/src/helpers/choiceChip.ts +0 -227
  836. package/src/helpers/common.ts +0 -326
  837. package/src/helpers/dpqlDetection.ts +0 -209
  838. package/src/helpers/expressions.ts +0 -140
  839. package/src/helpers/fieldDescription.ts +0 -39
  840. package/src/helpers/optionUiTypes.ts +0 -199
  841. package/src/helpers/options.ts +0 -150
  842. package/src/helpers/providerValue.ts +0 -125
  843. package/src/helpers/scrollbar.ts +0 -32
  844. package/src/helpers/singleLineString.ts +0 -62
  845. package/src/helpers/templateItems.ts +0 -81
  846. package/src/helpers/templateText.ts +0 -350
  847. package/src/helpers/templates.ts +0 -602
  848. package/src/helpers/validations.ts +0 -2085
  849. package/src/hooks/useArgSchema.ts +0 -37
  850. package/src/hooks/useCoarsePointer.ts +0 -30
  851. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  852. package/src/hooks/useFetch/useFetch.tsx +0 -154
  853. package/src/hooks/usePhoneViewport.ts +0 -34
  854. package/src/hooks/useQorusTypes.ts +0 -233
  855. package/src/hooks/useReqraftProperty.ts +0 -16
  856. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  857. package/src/hooks/useStorage/useStorage.ts +0 -35
  858. package/src/hooks/useTemplates.ts +0 -123
  859. package/src/hooks/useValidation.ts +0 -9
  860. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  861. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  862. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  863. package/src/index.tsx +0 -86
  864. package/src/providers/FetchProvider.tsx +0 -40
  865. package/src/providers/ReqraftProvider.tsx +0 -52
  866. package/src/providers/StorageProvider.tsx +0 -131
  867. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  868. package/src/stores/currentUser/currentUser.tsx +0 -94
  869. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  870. package/src/stories/Tests/utils.ts +0 -320
  871. package/src/stories/storyNetwork.ts +0 -92
  872. package/src/stories/tracking.tsx +0 -206
  873. package/src/tracking/browser/attach.ts +0 -186
  874. package/src/tracking/browser/env.ts +0 -78
  875. package/src/tracking/core/consent.ts +0 -37
  876. package/src/tracking/core/engagement.ts +0 -47
  877. package/src/tracking/core/experiments.ts +0 -258
  878. package/src/tracking/core/hash.ts +0 -26
  879. package/src/tracking/core/ids.ts +0 -25
  880. package/src/tracking/core/observable.ts +0 -23
  881. package/src/tracking/core/queue.ts +0 -131
  882. package/src/tracking/core/sections.ts +0 -166
  883. package/src/tracking/core/storage.ts +0 -69
  884. package/src/tracking/core/tracker.ts +0 -417
  885. package/src/tracking/core/types.ts +0 -162
  886. package/src/tracking/core/utm.ts +0 -23
  887. package/src/tracking/index.ts +0 -72
  888. package/src/tracking/markup.ts +0 -17
  889. package/src/tracking/react/Experiment.tsx +0 -44
  890. package/src/tracking/react/TrackingProvider.tsx +0 -56
  891. package/src/tracking/react/hooks.ts +0 -106
  892. package/src/tracking/react/index.ts +0 -13
  893. package/src/tracking/testing.ts +0 -108
  894. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  895. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  896. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  897. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  898. package/src/tracking/ui/anchor.ts +0 -180
  899. package/src/tracking/ui/card.ts +0 -464
  900. package/src/tracking/ui/client.ts +0 -117
  901. package/src/tracking/ui/index.ts +0 -77
  902. package/src/tracking/ui/types.ts +0 -110
  903. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  904. package/src/types/Form.ts +0 -29
  905. package/src/types.ts +0 -14
  906. package/src/utils/datetime.ts +0 -10
  907. package/src/utils/fetch.ts +0 -457
  908. package/src/utils/lspClient.ts +0 -711
  909. package/src/utils/lspClient.types.ts +0 -211
  910. package/src/utils/queryUnlessCancelled.ts +0 -28
  911. package/src/utils/websocket.ts +0 -293
  912. package/vite.config.ts +0 -58
  913. package/vitest.config.ts +0 -69
@@ -1,558 +0,0 @@
1
- # Form Engine — Compact (read-first) mode
2
-
3
- > **Master plan.** Spans three repos. Lives in the toolkit-react worktree because Phase 1 (the
4
- > bulk of the work) ships here. Phases 2–3 land in `qorus-ide`; Phase 4 is an incremental
5
- > `qorus` server change. Treat this file as the single source of truth and keep it updated as we go.
6
-
7
- ---
8
-
9
- ## 0. Ground rules (agreed with the user)
10
-
11
- 1. **Worktree + branch (done).** All Phase-1 work happens in the dedicated worktree, not the main checkout.
12
- - Worktree: `/Users/nick/Projects/qorus-frontend/toolkit-react--form-engine-compact`
13
- - Branch: `feature/form-engine-compact-read-first`, created off **latest** `origin/develop` (`04ecdcf`).
14
- 2. **No commits, no pushes until the user explicitly says so.** Implement, run tests/stories locally, show diffs — wait for the go-ahead before any `git commit`/`git push`.
15
- 3. **Design-doc driven.** Every decision below is grounded in the existing design docs across the three repos (cited inline). When we change a documented surface we update its doc + `AI-DOCS` in the same change.
16
- 4. **Proper Storybook stories and tests.** New behaviour ships with stories + `play` interaction tests (toolkit-react Storybook test-runner + jest), and the IDE phases extend the existing creator stories. No trivial/self-asserting tests.
17
- 5. **No shortcuts.** Reuse the real engine, contribute reusable UI upstream, no forks/stopgaps left behind. "Correct and proper" over "fast."
18
-
19
- ---
20
-
21
- ## 1. Goal
22
-
23
- The workflow/step interface creator was recently restyled into a **read-first** layout (a "configuration
24
- summary you drill into" rather than a wall of inputs). That look currently lives as a **bespoke,
25
- fields-based** component in the IDE. We want to:
26
-
27
- 1. **Move the read-first presentation into the Reqraft `FormEngine`** as a first-class **`compact`** mode,
28
- so any options form can render this way — not just the workflow/step creator.
29
- 2. **Drive it from the options schema, not the legacy `IField` list**, because options is the standard
30
- form model everywhere else in the app and is server-driven.
31
- 3. **Retire the IDE-local `RestyledFields` detour** once the engine covers it, leaving the IDE with a thin,
32
- interface-specific wrapper (hero copy + chips) and nothing duplicated.
33
-
34
- ---
35
-
36
- ## 2. Background — the two-engine reality (current state)
37
-
38
- There are **not** two form philosophies. There is **one options form engine**, mirrored in two places, plus
39
- **one legacy holdout**.
40
-
41
- ### 2a. The one engine, in two places
42
- - **Reqraft `FormEngine`** — `toolkit-react/src/components/form/engine/FormEngine.tsx`. The upstream,
43
- published engine (`@qoretechnologies/reqraft`; the IDE depends on `^0.8.11`). Driven by
44
- `IQorusFormSchema` (options) from `@qoretechnologies/ts-toolkit`.
45
- - **IDE `<Options>`** — `qorus-ide/src/components/Field/systemOptions.tsx`. An **in-repo twin** with
46
- byte-for-byte the same internals (`fixOptions`, `availableOptions`, `OptionsContext`,
47
- `showInvalidOptionsOnly`, the "More Options" adder, `flattenOptions`). Documented in
48
- `qorus-ide/design/SYSTEM_OPTIONS.md`. The IDE comment at `systemOptions.tsx:490` ("nested FormEngine
49
- emissions") shows the upstream engine is already nested in places.
50
-
51
- Both consume the **same** schema type. `FormEngine` is the strategic home; `<Options>` is the legacy local
52
- fork (convergence of the two is **out of scope** here — see §9).
53
-
54
- ### 2b. The legacy holdout — workflow/step creator
55
- - The workflow/step creator renders via `qorus-ide/src/containers/InterfaceCreator/panel.tsx`, fed by the
56
- **legacy** WebSocket `creator-get-fields` → `IField[]` (array-based, `mandatory`, `items[]`). Type:
57
- `qorus-ide/src/components/FieldWrapper/index.tsx` (`IField`).
58
- - The read-first look is `qorus-ide/src/containers/InterfaceCreator/restyled/RestyledFields.tsx`
59
- (documented in `qorus-ide/design/RESTYLED_CREATOR.md`): it re-implements rows, grouping, completion bar,
60
- and a "Ready/Draft" hero **by hand**, on top of `IField`. It's opt-in via the panel's `restyled` prop
61
- (workflow + step only).
62
-
63
- ### 2c. The modern surfaces already on options
64
- Connection, FSM state/transition actions, pipeline processors, AI collection/endpoint/guardrail, ML model —
65
- all render from the options schema. The IDE already has the options-fetch hook:
66
- `qorus-ide/src/hooks/useInterfaceFields.tsx` calls **`creator-get-fields-as-options`** and returns an
67
- `IOptionsSchema`. The connection view's own fields→options migration is fully designed in
68
- `qorus-ide/design/connection-options-api.md` — this is the **precedent** for what we're doing for
69
- workflow/step.
70
-
71
- ### 2d. What the server already provides
72
- - The server **already** exposes the workflow/step form as an **options schema** via
73
- `creator-get-fields-as-options` (the same action the modern surfaces use). The options descriptor
74
- (`FieldInfo` in `qorus/Classes/QorusMapManager.qc`) **already carries `group`** (and `compact`,
75
- `sort_group`/`sort_key`, `display_name`, `short_desc`, `allowed_values`, `depends_on`, `on_change`, …).
76
- - So: **no IDE-side `IField → options` adapter is needed, and we are not blocked on new server work.**
77
- qorus issue **#259** ("server assigns `group` to every field") is just *populating* `group` values on the
78
- existing schema — incremental, non-blocking (the FE already has a grouping fallback).
79
-
80
- ---
81
-
82
- ## 3. Design principles (doc-grounded)
83
-
84
- | Principle | Source | Consequence for this work |
85
- |---|---|---|
86
- | Reusable UI belongs in the library; contribute upstream, don't wrap/patch locally. | `qorus-ide/design/REQORE_REQRAFT.md` §"When Something is Missing" (lines 5, 114–123) | The read-first presentation is a reusable form concern → it lives in **`FormEngine`** (`compact`), not in a new IDE component. |
87
- | Don't fork `RestyledFields`; extend the descriptor API. Interface-specific copy is injected, the component stays interface-agnostic. | `qorus-ide/design/RESTYLED_CREATOR.md` (lines 39–65) | Interface-specific chrome (hero copy, language/`remote` chips, group labels) stays **IDE-side**, injected into the engine wrapper — not hardcoded in the engine. |
88
- | Options is the standard; Fields is deprecated. The connection view migration is the template. | `qorus-ide/design/connection-options-api.md`; `qorus-ide/design/SYSTEM_OPTIONS.md` | Workflow/step move to `creator-get-fields-as-options`, same path the modern surfaces use. |
89
- | Search before you build; don't fork a shared component to add one prop; every shared visual component gets a story. | `qorus-ide/design/SHARED_COMPONENTS.md` Rules 1, 4, 5 | Extend `FormEngine` in place (it already has a `compact` prop stub); ship stories; reuse Reqore primitives for grouping rather than hand-rolled wrappers. |
90
- | Explain non-obvious features in-app. | `qorus-ide/CLAUDE.md` "Explaining features"; `SHARED_COMPONENTS.md` "Help & hints" | Keep the existing read-first `<Hint>` (or its engine equivalent) so users learn the click-to-edit interaction. |
91
-
92
- ---
93
-
94
- ## 4. Locked decisions (the two questions we researched)
95
-
96
- ### Decision A — Scope split: **engine owns the core, IDE wraps the chrome.**
97
- - **`FormEngine` (generic, reusable):** read-first rows showing each option's formatted value; click-to-edit
98
- expand/collapse reusing the existing field editor; compact density; a completion/validity meter derived
99
- from data the engine **already computes** (`validityData` / `invalidFields`); grouping driven by the
100
- schema's `group` key.
101
- - **IDE wrapper (interface-specific):** the "Ready/Draft" hero **copy**, the language-logo / `remote` value
102
- chips, and group-label overrides — injected exactly like today's `IRestyledDescriptor`. The Ready/Draft
103
- **derivation** is generic and moves into the engine; only the **wording/chips** stay in the IDE.
104
- - Rationale: this is what `REQORE_REQRAFT.md` (upstream-or-nothing) + `RESTYLED_CREATOR.md` (descriptor
105
- injection, don't fork) jointly prescribe.
106
-
107
- ### Decision B — Data path: **use the existing server options path; no adapter.**
108
- - Switch workflow/step off legacy `creator-get-fields` (`IField[]`) onto **`creator-get-fields-as-options`**
109
- (`IOptionsSchema`) via the existing `useInterfaceFields` hook, and render with `FormEngine` in `compact`
110
- mode.
111
- - Rationale: the server already returns an options schema for these types (with `group`); the IDE already
112
- has the consumer + renderer; the modern surfaces already run this path. Building an `IField→options`
113
- converter would be a shortcut that entrenches the deprecated model — explicitly rejected.
114
-
115
- ---
116
-
117
- ## 5. Engine design — the `compact` (read-first) mode in `FormEngine`
118
-
119
- **Naming.** The user framed this as "a `compact` flag that turns the form engine into the new look," and
120
- `FormEngine` already has a `compact?: boolean` prop (`FormEngine.tsx:296`, currently a near-stub that only
121
- hides the collection label and disables filter/sort at lines 1029–1036). We **extend `compact`** to be the
122
- full read-first presentation. *(Open item 9d: confirm we want `compact` to mean read-first, or a separate
123
- `readFirst`/`mode` prop with `compact` as density-only. Default assumption: extend `compact`.)*
124
-
125
- **Where it hooks in.** Today each option is a `ReqoreCollection` item whose `content` is
126
- `<FocusedEditing>…{renderOption(optionName, …)}</FocusedEditing>` (`FormEngine.tsx:1218–1239`), i.e. the
127
- editor is always expanded. In `compact` mode the item `content` becomes **read-first**:
128
-
129
- 1. **Read row (default):** render the option's label + a formatted value summary (mirror
130
- `RestyledFields.formatValue`: `—`/"Not set" when empty, "Yes/No" for bool, joined names for lists,
131
- "Set" for hashes, the language image when the wrapper maps it). Hover reveals an edit affordance; the
132
- existing per-item actions (remove value, revert, remove optional, fullscreen) stay available.
133
- 2. **Edit (on click):** clicking the row reveals `renderOption(...)` — the **real, unchanged editor** with
134
- all existing wiring (templates, expressions, `on_change`, validation, dependents) — plus a "Done"
135
- collapse. Track per-item edit state alongside the existing `focusedEditing` state (`FormEngine.tsx:323`).
136
- 3. **Completion meter:** a thin "N / M set" + % bar derived from `availableOptions` + required completeness,
137
- reusing the engine's existing validity (`IFormValidityData`, surfaced via `onValidityChange`). No new
138
- validation logic.
139
- 4. **Grouping:** group options by their schema `group` key, ordered, with a default label/icon map and
140
- per-group override via the wrapper. **Spike first (Task 1.1):** confirm whether `ReqoreCollection`
141
- supports native grouping; if not, render one Reqore panel/collection per group using Reqore primitives
142
- (per `SHARED_COMPONENTS.md` Rule 6 — no hand-rolled gap `<div>`s). Keep the existing "More Options"
143
- adder and "show invalid only" behaviours working per-group or globally.
144
- 5. **Chrome injection:** add a minimal, typed way for the IDE wrapper to pass interface-specific group
145
- labels (and anything else genuinely needed). Hero copy + value chips are rendered **by the IDE around**
146
- `FormEngine`, not inside it — so they do **not** become engine props beyond what grouping needs.
147
-
148
- **Non-goals for the engine:** the "Ready/Draft" hero strip, language-logo chips, and interface-specific
149
- captions. Those stay in the IDE (Decision A).
150
-
151
- ---
152
-
153
- ## 6. Phase plan
154
-
155
- ### Phase 0 — Prerequisites ✅ DONE
156
- - [x] Worktree + branch off latest `develop`.
157
- - [x] `yarn install` **inside the worktree** (worktrees don't share `node_modules`).
158
- - [x] Baseline verified clean on the untouched branch: **jest 163/163 pass** (~4s); **Storybook boots**
159
- and indexes `Form/Engine/FormEngine`.
160
- - [x] Re-read cited sections of `FormEngine.tsx` / `FormEngine.stories.tsx`.
161
-
162
- **⚠️ Environment gotcha — use Yarn Classic, not the global berry.**
163
- - The repo commits a **Yarn 1.x** lockfile (`# yarn lockfile v1`), no `packageManager` pin. The machine's
164
- global `yarn` is **4.6.0 (berry)**, which on first `yarn install` **silently migrates** the project
165
- (creates `.yarn/` + `.yarnrc.yml`, rewrites `yarn.lock` +18k/−13k). That tracked `yarn.lock` change must
166
- **not** leak into the branch.
167
- - **Always invoke yarn as classic in this worktree:** `npx --yes yarn@1.22.22 <cmd>` (install used
168
- `--frozen-lockfile`, passed, zero lockfile churn). Do **not** run a bare `yarn install` here.
169
- - **Storybook port:** the main checkout (`feature/dpql-editor`) already runs Storybook on **6008**; don't
170
- kill it. The worktree Storybook runs on **6009** (`./node_modules/.bin/storybook dev -p 6009 --no-open`).
171
- Point `test-storybook` at `--url http://localhost:6009` in Phase 1.
172
- - `storybook-static/` is **not** gitignored — if we ever `build-storybook`, delete the output afterward.
173
-
174
- ### Phase 1 — Implement `compact` read-first mode in `FormEngine` (toolkit-react) ✅ DONE
175
- - [x] **1.1 Grouping spike** — `ReqoreCollection` (0.64.3, the installed version) renders native group
176
- headers from item `groups: string[]` (`CollectionGroupHeader`, both `sortByGroupFirst` branches). So
177
- grouping stays **100% in reqraft** — no reqore change. We set `groups: [getOptionGroup(schema)]` per
178
- item; ungrouped required/preselected → "General", else "Optional". (Native item `expandable` was
179
- rejected — it expands into a centered modal, not the inline row we want.)
180
- - [x] **1.2 Read-first item content** — `renderReadFirstContent` swaps each item's `content` between a
181
- clickable value row (`ReqoreButton`, `.options-readfirst-value`) and the real `renderOption` editor +
182
- a "Done" collapse (`.options-readfirst-done`). All field wiring preserved. Inline expand state
183
- (`expandedOptions`), multiple rows open at once. Clickable value control (not item-level `onClick`)
184
- so header action buttons don't conflict.
185
- - [x] **1.3 Completion meter** — `ReqoreProgress` "N / M fields set" from `getReadFirstCompletion`; no new
186
- validation.
187
- - [x] **1.4 Grouping** — by schema `group`, title-cased, via native collection group headers.
188
- - [x] **1.5 Density + a11y** — small/flat/minimal Reqore props; `readOnly` keeps rows viewable (eye icon,
189
- no edit affordance). **a11y completed in v5** (see below): the read-first rows became flat
190
- `styled-components` `<div>`s in the v2 rework and were initially mouse-only; v5 makes them real
191
- controls (`role="button"`, `tabIndex={0}`, Enter/Space, focus ring).
192
- - [x] **1.6 Stories** — `Compact`, `CompactReadOnly`, `CompactEmpty`, `CompactReadFirstEditing` added to
193
- `FormEngine.stories.tsx` (grouped schema with bool/allowed_values/list + a required-empty field).
194
- - [x] **1.7 `play` interaction test** — `CompactReadFirstEditing` asserts: value rows render (Yes/Python/
195
- "Required — not set") with **no editor mounted**; group headers (Info/Scaling); expand → pre-filled
196
- editor; edit → `onChange` with `name.value:'updated-name'`; Done → collapse → new value shown.
197
- Passes in-browser (test-storybook, ~400ms).
198
- - [x] **1.8 Types/docs** — `compact` prop JSDoc on `IFormEngineProps`; new
199
- [`design/FORM_ENGINE_COMPACT.md`](../design/FORM_ENGINE_COMPACT.md); helpers extracted to
200
- `readFirst.ts` with unit tests (`__tests__/readFirst.test.ts`).
201
- - [x] **1.9 Green check** — `yarn precheck` **green** (lint clean, **jest 180/180**, prod typecheck clean).
202
- `test-storybook` on :6009: all 4 compact stories pass.
203
-
204
- **Files:** new `src/components/form/engine/readFirst.ts`, `__tests__/readFirst.test.ts`,
205
- `design/FORM_ENGINE_COMPACT.md`; modified `src/components/form/engine/FormEngine.tsx` (compact-gated only)
206
- and `FormEngine.stories.tsx`. **Not committed** (awaiting user go-ahead).
207
-
208
- **Layout rework (v2) — after visual review vs the IDE.** The first cut reused the classic
209
- `ReqoreCollection` card-per-field layout (`flat:false` + darkened `customTheme`), which looked heavy and
210
- unlike the IDE's restyled rows. Reworked to a **dedicated compact render path** (`renderCompact` /
211
- `renderCompactRow`, early-return before the collection): **flat two-column rows** (label | value | action,
212
- thin dividers) inside collapsible `ReqorePanel` groups with `✓ all set` / `⚠ N to resolve` badges, the
213
- completion meter, invalid message, and the more-options adder. Styling via theme-aware `styled-components`.
214
- Classic path fully reverted/untouched. Re-verified: `precheck` green (jest 180/180), all 4 compact stories
215
- pass in `test-storybook`. Still **engine-only** — the hero strip / chips / toolbar remain the IDE wrapper
216
- (Phase 3).
217
-
218
- **Polish + "Minimal" decision items (v3).** After visual review against the IDE:
219
- - **Completion bar** → replaced `ReqoreProgress` with the IDE's inline `label | track | %` strip
220
- (`StyledCompletion*`).
221
- - **Group display** → engine gained a `groups?: Record<string, IFormEngineGroup>` prop (label/icon/subtitle/
222
- sort), keyed by the raw `group` key. `getOptionGroup` now returns the raw key; new `getOptionGroupLabel`
223
- resolves the display label. Default = title-cased key, no icon, schema order. Research basis: the **server
224
- defines no group display metadata** — only the bare `group` string (`info`/`advanced`/`resources`/
225
- `scaling`/`other`/`files`); `sort_group`/`sort_key` exist but are unused; no per-field icon (only
226
- allowed-values carry `icon_filename`). So each UI owns group display → engine takes it via prop.
227
- - **Toolbar** → search box (filter rows by label) + **Required only** toggle. Filters only affect listed
228
- rows; the meter reflects the full set.
229
- - New story `CompactRequiredOnlyAndSearch` (play test) + `groups` config on the compact stories. Re-verified:
230
- `precheck` green (**jest 182/182**), **29/29** `test-storybook` (incl. the toolbar test).
231
-
232
- **"Full" toolbar (v4) — the IDE "Fields" dropdown.** Consolidated the toolbar into a `ReqoreDropdown`
233
- matching the IDE's Fields menu (edit-mode only): **Required only** toggle, **Select all** (`handleAddAllOptional`),
234
- **Default fields** (`handleResetToDefaultFields` — drop user-added optionals, keep required/preselected/
235
- loaded values, clear the filter; mirrors the IDE's `handleResetToDefault`), and a searchable add-optional
236
- list (the standalone bottom adder was removed). Row search box kept. New play test `CompactFieldsMenu`
237
- (Select-all adds an optional → Default-fields removes it); `CompactRequiredOnlyAndSearch` updated to toggle
238
- via the dropdown. Verified: `precheck` green (**jest 182/182**), **30/30** `test-storybook`.
239
-
240
- **Still deferred to Phase-3 (researched, not built):** allowed-value icons (language logo via
241
- `icon_filename` — needs a filename→URL resolver, so consumer-side). The **hero strip, "Edit code", and the
242
- help Hint stay IDE-only** (the IDE wraps the engine).
243
-
244
- **a11y + UX polish (v5).**
245
- - **Keyboard a11y** — read-first rows are now `role="button"` + `tabIndex={0}` with Enter/Space activation
246
- and a focus ring (they were mouse-only `<div>`s after the v2 rework; corrected the stale plan claim above).
247
- - **`N optional` badge** — the catch-all `optional` group shows `N optional` instead of a misleading
248
- "all set".
249
- - **Search spans hidden fields** — the top search now matches optional fields not yet in the form too; a
250
- match surfaces as a dimmed **"Not in form — add"** row that adds + opens the field when activated.
251
- - **Sticky "Additional options (N)" bar** — once the toolbar scrolls off-screen (tracked via an
252
- `IntersectionObserver` sentinel), a sticky bottom dropdown keeps the add-optional list reachable.
253
- - New stories/tests: `CompactSearchHidden` (search-hidden + keyboard-activate), `CompactScrollable`
254
- (no-play, for the sticky-bar/search screenshots). Verified: `precheck` green (**jest 182/182**), **30/31**
255
- `test-storybook` (the 1 failure is the pre-existing `OnValidityChange` flake; all 8 compact stories pass).
256
- Sticky bar is verified visually (IntersectionObserver/scroll behaviour isn't deterministically unit-testable).
257
-
258
- ### Verification items (two follow-ups raised by the team)
259
-
260
- **(a) "add dpql render to make options support expressions" — a follow-up, NOT a Phase-1/compact task.**
261
- Options can hold *expression* values (`supports_expressions`, `is_expression`, `default_view:'expression'`,
262
- `expressions`, `expressions_url`); they're authored in **DPQL** via the Slate-based **`DpqlEditor`**. The
263
- toolkit form engine **renders no expression editor today** — neither on `develop` nor on
264
- `feature/dpql-editor` (`TemplateField` only does template/direct; `is_expression` is just a flag). The
265
- `DpqlEditor` *component* exists on **`feature/dpql-editor`** (`src/components/dpqlEditor/`) but is **not
266
- wired into the form fields** and not released (local reqraft 0.10.0).
267
- - **Are we waiting on `feature/dpql-editor`?** For the **compact work: NO** — verified the branches are
268
- orthogonal: `feature/dpql-editor` (29 commits ahead of `origin/develop`, same `04ecdcf` base) **does not
269
- touch any form-engine file** (`FormEngine.tsx` / `TemplateField.tsx` / `Field.tsx` / form fields unchanged
270
- there; no `dpql` refs anywhere under `src/components/form`). Only shared file is `.storybook/preview.tsx`
271
- (the theme tweak, copied from that branch) — no functional dependency, no conflict. For the **expression
272
- feature: YES** — it needs `feature/dpql-editor` merged (to get `DpqlEditor` onto develop) **and** new
273
- wiring to render it for expression fields. Compact inherits it for free once wired into
274
- `renderOption`/`TemplateField` (compact reuses both). Today a compact read row shows "Expression" for
275
- `is_expression` values.
276
-
277
- **(b) "verify the new compact works with all the options props (on_change/refetch, …)" — DONE.**
278
- Compact reuses the shared `handleValueChange` (`on_change` → `meta.events`; `has_dependents` → reset
279
- dependents + `onDependableOptionChange`) and `renderOption` (`depends_on` disabling, templates), so it
280
- inherits all of it by construction. Now covered by a play test: **`CompactOnChangeAndDependents`** —
281
- editing a `has_dependents` + `on_change:['refetch']` field in the expanded read-first editor fires the
282
- `refetch` event **and** resets its `depends_on` dependent, exactly as classic. **33/33 `test-storybook`.**
283
-
284
- ### Classic-parity features brought into compact (v6 — decision (b))
285
-
286
- Decision (b): user chose **per-field + global revert** and **show-field-types as a Fields-menu toggle**
287
- (the two classic features compact lacked).
288
- - **Revert (per-field + global)** — a changed row shows a hover **↺** (`.options-readfirst-revert`) that
289
- restores that field to its loaded value (`originalValue`); **Revert all changes** in the Fields menu
290
- (disabled when unchanged) restores the whole form (`handleRevertChangesClick`). Distinct from
291
- **Default fields** (schema defaults + drop added optionals).
292
- - **Show field types** — a Fields-menu toggle (reuses the existing `showFieldTypes` state /
293
- `handleShowFieldTypesClick`); when on, each row is annotated with `<type>` (e.g. `<string>`, `<list>`).
294
- - Test: **`CompactRevertAndShowTypes`** (edit → per-field revert restores; toggle show-types → `<string>`
295
- appears; edit again → Revert-all restores). **34/35 `test-storybook`** (the 1 failure is the pre-existing
296
- `OnValidityChange` flake; all 10 compact stories pass). `precheck` green (jest 182/182).
297
-
298
- ### Coverage parity (a) + house style (c) — DONE (v7)
299
-
300
- - **(c) House style** — refactored all 6 existing compact play tests + the `clickFieldsMenuItem` helper to
301
- foxhoundn's shared `_tests*` helpers (`_testsWaitForText`, `_testsWaitForTextToNotExist`, `_testsClickText`,
302
- `_testsClickButton`, `_testsChangeStringField`, `_testsWaitForInputValue`, `_testsWaitForTextsCount`).
303
- `waitFor`/helpers are the gate; `sleep` only as a settle (the convention).
304
- - **(a) Parity stories** — added compact stories mirroring the classic matrix: **`CompactFieldTypes`**
305
- (string/richtext/number/bool/list/hash/rgbcolor read-display + expand-to-edit), **`CompactRequiredGroups`**
306
- (`required_groups` one-of), **`CompactAnyType`** (`any` type), **`CompactReadonlyDefaultFix`** (schema
307
- `readonly` value≠default → fixed), **`CompactNonExistentFiltered`** (off-schema values dropped),
308
- **`CompactHelpDialog`** (new help affordance — a `?` on rows with a long `desc`, opens `OptionsHelpDialog`),
309
- **`CompactDoesNotCauseInfiniteRerenders`** (render stability). Small feature added: per-row help icon
310
- (`.options-readfirst-help`).
311
- - **17 compact stories**, `precheck` green (**jest 182/182**), **40/41 `test-storybook`** (the 1 failure is
312
- the pre-existing `OnValidityChange` flake).
313
- - **Minor residual gaps (covered at engine level by classic, not separately re-tested in compact):** the
314
- invalid-only filter toggle (`showInvalidOptionsOnly`) and the allowed-values+template warning — both reuse
315
- the same engine state/`renderOption` the classic stories exercise.
316
- - **(d) real-server verification** remains Phase 2/3 (needs the IDE + a live Qorus) — out of scope for this
317
- worktree.
318
-
319
- ### Pre-existing `OnValidityChange` flake — FIXED (v8)
320
-
321
- The long-standing intermittent failure (`OnValidityChange › play-test`, "Unable to fire a 'change' event —
322
- please provide a DOM element") was a foxhoundn test querying `.system-option .reqore-textarea` **unguarded**
323
- before the editor had mounted. Fixed by switching to `_testsChangeStringField` (waits for the element, then
324
- fires) and dropping the fixed `sleep`. **The whole `FormEngine` `test-storybook` suite is now 41/41 green —
325
- no remaining failures.** (This is the one foxhoundn-owned test I touched; it's a flake fix following the
326
- house wait convention, not a behaviour change.)
327
-
328
- **⚠️ Pre-existing unrelated failure:** `FormEngine.stories.tsx › OnValidityChange › play-test` fails in
329
- `test-storybook` — it queries `.system-option .reqore-textarea` with **no `waitFor`** (a mount race).
330
- **Proven pre-existing on bare `develop`** (fails identically with all Phase-1 code reverted; passes on the
331
- older `feature/dpql-editor` checkout). Out of scope for this task; candidate for a separate one-line
332
- `waitFor` fix.
333
-
334
- **Run it:** worktree Storybook is on **http://localhost:6009** →
335
- `/?path=/story/form-engine-formengine--compact` (and `--compact-read-only`, `--compact-empty`).
336
-
337
- ### Phase 2 — Parity spike on the workflow/step creator (qorus-ide)
338
- - [ ] **2.1** Confirm `creator-get-fields-as-options` returns a workflow/step schema that the options
339
- renderer handles end-to-end (mount, edit, submit) — compare field-for-field against today's
340
- `creator-get-fields` (`IField[]`) output.
341
- - [ ] **2.2** Enumerate IField-path machinery that must survive the swap and verify each has an options
342
- equivalent: **class connections / `resetClassConnections`**, the **"Edit code" handoff**, **drafts**,
343
- **`reference` (iface-kind links)**, **`on_change` actions**, `get_message`/`return_message`
344
- (already in `FieldInfo`), required/preselected semantics, removal-with-confirm.
345
- - [ ] **2.3** Confirm whether the IDE consumes the **upstream** `FormEngine` from `reqraft` directly
346
- anywhere today (the `systemOptions.tsx:490` comment hints yes). Decide Phase-3 render path:
347
- upstream `FormEngine` vs. local `<Options>` (see §9a).
348
- - [ ] **2.4** Capture every gap as a small, scoped follow-up (engine prop or schema field) — **not** a
349
- blocker. Update this plan with the gap list before starting Phase 3.
350
-
351
- ### Phase 3 — Swap workflow/step to options + `FormEngine`; retire the detour (qorus-ide)
352
- - [ ] **3.1** Bump `@qoretechnologies/reqraft` in `qorus-ide` to the release containing Phase 1 (see §7).
353
- - [ ] **3.2** Route the workflow/step creator through `useInterfaceFields` + `FormEngine` `compact`, with a
354
- thin IDE wrapper supplying hero copy + chips + group labels (descriptor-style, per `RESTYLED_CREATOR`).
355
- - [ ] **3.3** Verify parity from Phase 2 holds in the real creator (drafts, code editor, class connections,
356
- submit) via the existing full-creator stories (`Step.stories.tsx`, `Workflow.stories.tsx`).
357
- - [ ] **3.4** Delete `RestyledFields`, its descriptors, and the IField read-first scaffolding **only after**
358
- parity is proven. Confirm no other consumer via grep (`SHARED_COMPONENTS.md` Rule 3).
359
- - [ ] **3.5** Update docs + `AI-DOCS`: rewrite `RESTYLED_CREATOR.md` (or fold into `SYSTEM_OPTIONS.md`) to
360
- describe compact mode as a `FormEngine` capability; update the `RestyledFields` entry in
361
- `SHARED_COMPONENTS.md`; refresh affected `AI-DOCS` blocks and run `yarn ai-docs:build`.
362
- - [ ] **3.6** `yarn precheck` + Storybook test-runner green in `qorus-ide`.
363
-
364
- ### Phase 4 — `group` completeness (qorus server, incremental, non-blocking)
365
- - [ ] **4.1** GitHub issue first (per `qorus-ide/CLAUDE.md` server workflow) → branch off latest `develop`
366
- → set `group` on every workflow/step `FieldInfo` so the FE grouping fallback can be removed.
367
- Tracks qorus issue #259. Can land anytime after Phase 3.
368
-
369
- ### Phase 5 — DPQL expression render for options (toolkit-react) — **GATED on `feature/dpql-editor` merge**
370
- > Not part of the compact migration; a separate form-engine capability. **Does not block** Phases 0–3 (the
371
- > compact work is orthogonal to `feature/dpql-editor` — verified: that branch touches no form-engine file).
372
- > The compact layout **inherits this for free** once it lands, because it reuses `renderOption`/`TemplateField`.
373
-
374
- - [ ] **5.0 Prereq** — `feature/dpql-editor` is merged to `develop` (and reqraft re-released) so `DpqlEditor`
375
- (`src/components/dpqlEditor/`) is available. Until then this phase is blocked. *(Branch state at time of
376
- writing: 29 commits ahead of `origin/develop`, local/unpushed, reqraft 0.10.0 local build.)*
377
- - [ ] **5.1** Add an **expression render path** to the field renderer: when a field has
378
- `supports_expressions` (and/or `default_view: 'expression'`), render `<DpqlEditor>` (with a toggle
379
- between literal/template/expression) instead of the plain field. Hook it in at
380
- `TemplateField` / `FormField` (`src/components/form/fields/`) so **both** classic and compact get it —
381
- compact must change **nothing** (it calls the same `renderOption`).
382
- - [ ] **5.2** Wire the schema's expression context through to `DpqlEditor` (`expressions`,
383
- `expressions_url`, `server_expression_handling`, provider/record context); persist the value as the
384
- `IQorusExpression` AST (`{ exp, args, type, is_expression }`) — `FormEngine` already tracks the
385
- `is_expression` flag in `fixOptions`/`handleValueChange`.
386
- - [ ] **5.3** Improve the **compact read row** for expression values: show a short rendering of the
387
- expression (e.g. the DPQL text) instead of the generic "Expression" placeholder
388
- (`formatOptionValue` in `readFirst.ts`).
389
- - [ ] **5.4** Stories + `play` tests: an options schema with a `supports_expressions` field — author an
390
- expression via the DPQL editor, assert the persisted `is_expression` value; one **compact** variant to
391
- prove the read-first row + expand-to-edit works with expressions.
392
- - [ ] **5.5** Docs: extend `design/FORM_ENGINE_COMPACT.md` (and the engine's expression docs) to cover the
393
- expression/DPQL render.
394
-
395
- ---
396
-
397
- ## 7. Cross-repo sequencing & release
398
-
399
- - Phase 1 lands in **`toolkit-react`** (published as `@qoretechnologies/reqraft`). The IDE can't consume it
400
- until it's **released and the version is bumped** in `qorus-ide/package.json` (currently `reqraft ^0.8.11`).
401
- - Therefore Phases 2 (parity spike) can run **in parallel** with Phase 1, but Phase 3 (the swap) is gated on
402
- the reqraft release. Sequence: **1 + 2 in parallel → release/bump → 3 → 4 (anytime)**.
403
- - We do **not** publish; the maintainer handles the reqraft release. We prepare the change and wait.
404
-
405
- ---
406
-
407
- ## 8. Testing & verification strategy
408
-
409
- **toolkit-react (Phase 1)**
410
- - **Stories + `play`** in `FormEngine.stories.tsx` (`@storybook/test`: `expect/within/waitFor/userEvent/fireEvent/fn`), reusing `src/stories/Tests/utils`. Selectors follow the existing `.reqore-collection-item.system-option` convention.
411
- - **jest** (`yarn test`) for any pure helpers (e.g. value-formatting) extracted.
412
- - **`yarn precheck`** (= `lint` + `test` + `build:test:prod`) must pass; **`yarn test-storybook`** against a running Storybook (port 6008). Chromatic visual review is maintainer/CI-run — flag diffs.
413
- - Tests assert **real** behaviour (read-first → click → edit → onChange → collapse); removing the read-first code must break them.
414
-
415
- **qorus-ide (Phases 2–3)**
416
- - Extend the existing creator stories (`Step.stories.tsx`, `Workflow.stories.tsx`) to drive the
417
- options-backed compact creator (read-first rows, edit, submit, drafts, code editor).
418
- - `yarn precheck`; Storybook test-runner; `yarn ai-docs:check` clean after doc regen.
419
-
420
- **qorus server (Phase 4)**
421
- - Extend the relevant `.qtest` (HTTP-driven only — no qorus-core linking), per `qorus-ide/CLAUDE.md`.
422
-
423
- ---
424
-
425
- ## 9. Open questions / risks
426
-
427
- - **9a. `<Options>` vs upstream `FormEngine` convergence.** The IDE renders most options through its local
428
- `systemOptions.tsx` fork, not upstream `FormEngine`. Phase 1 correctly builds `compact` upstream; Phase 3
429
- must decide whether workflow/step render via **upstream `FormEngine`** (preferred — the actual goal) or the
430
- local fork (which would then also need `compact`). Fully converging the two engines is **out of scope** —
431
- track separately. Decided in Task 2.3.
432
- - **9b. Grouping primitive — the one place Phase 1 could exceed reqraft.** `ReqoreCollection` already exposes
433
- item `groups?: string[]` + collection `sortByGroupFirst?: boolean` (confirmed in the installed
434
- `@qoretechnologies/reqore` dist types). Task 1.1 must confirm whether that renders **labeled group
435
- sections/headers** (what read-first needs) or merely sorts grouped items together. Preferred outcome: keep
436
- Phase 1 **100% in reqraft** by reusing those props or composing per-group Reqore panels inside `FormEngine`.
437
- Only if a genuine new capability is required does a change land in the **separate `reqore` repo** (checked
438
- out locally at `/Users/nick/Projects/qorus-frontend/reqore`) — an upstream contribution per
439
- `REQORE_REQRAFT.md`, with its own release. That would be the *only* cross-repo spill in Phase 1.
440
- - **9c. Parity surface.** Class connections, "Edit code" handoff, drafts, `reference` links (Task 2.2) are the
441
- riskiest items — they're workflow/step-specific and not exercised by the modern options surfaces. Treat any
442
- gap as a scoped follow-up, never a silent shortcut.
443
- - **9d. `compact` naming.** Extend `compact` to mean read-first, or split `readFirst`/`mode` from a
444
- density-only `compact`? Default: extend `compact` (matches the user's framing). Confirm before 1.2.
445
- - **9e. `group` coverage.** Until Phase 4, some fields lack `group`; the engine needs the same sensible
446
- fallback `RestyledFields` uses (required/preselected → "General", else "Optional fields").
447
-
448
- ---
449
-
450
- ## 10. Definition of done
451
-
452
- - `FormEngine` `compact` mode renders the read-first look from an options schema, with stories + passing
453
- `play`/jest tests and green `precheck` + Storybook test-runner (toolkit-react).
454
- - Workflow/step creator renders via options + `FormEngine` `compact`, at parity with today (drafts, code
455
- editor, class connections, submit), with a thin IDE wrapper for hero/chips.
456
- - `RestyledFields` and the IField read-first scaffolding are removed; no dead code, no duplicated logic.
457
- - Docs + `AI-DOCS` updated across both FE repos; `ai-docs:check` clean.
458
- - (Incremental) server `group` completeness issue filed/landed.
459
- - Nothing committed or pushed without explicit user approval.
460
-
461
- ---
462
-
463
- ## 11. Key file map (reference)
464
-
465
- **toolkit-react** — `src/components/form/engine/FormEngine.tsx` (engine; `compact` at :296/:316/1029–1036;
466
- item `content` at :1218–1239), `…/FormEngine.stories.tsx`, `src/components/form/fields/template/TemplateField.tsx`,
467
- `src/components/FocusedEditing.tsx`, `src/stories/Tests/utils`, `design/` (new compact doc).
468
-
469
- **qorus-ide** — `src/components/Field/systemOptions.tsx` (`<Options>` twin), `src/hooks/useInterfaceFields.tsx`
470
- + `useInterfaceEditor.tsx`, `src/containers/InterfaceCreator/panel.tsx`, `…/workflowsView.tsx`,
471
- `…/restyled/RestyledFields.tsx` + `descriptors.ts`, `src/components/FieldWrapper/index.tsx` (`IField`,
472
- `IRestyledDescriptor`), `design/{RESTYLED_CREATOR,SYSTEM_OPTIONS,connection-options-api,REQORE_REQRAFT,SHARED_COMPONENTS}.md`.
473
-
474
- **qorus (server)** — `Classes/QorusMapManager.qc` (`FieldInfo`/`MetaFieldInfo`, `group`,
475
- `getUiFields`/`convertDataToUiOptionsFormat`), `Classes/{WorkflowMetadata,StepMetadata}.qc`,
476
- `Classes/QorusCreatorWebSocketHandler.qc` (`creator-get-fields-as-options`), `design/connection-options-api`-equivalent
477
- flow, qorus issue #259.
478
-
479
- ---
480
-
481
- ## Info-display variant evaluation (archived 2026-06-11)
482
-
483
- This is the pre-decision analysis that drove the info-display pick. `stripe-expand`
484
- (variant C below) was chosen; the other three and the temporary `compactInfoDisplay`
485
- prop were deleted. Kept here as the decision record (moved out of
486
- design/COMPACT_INFO_DISPLAY.md, which now documents only the shipped display).
487
-
488
- ## 5. Proposed variants (to build behind `compactInfoDisplay` after sign-off)
489
-
490
- All variants keep: `?` → dialog for Tier 3, tap (not hover) for any popover, and the existing
491
- `Required` tag. They differ in how Tier 1 + Tier 2 render.
492
-
493
- ### A — `subtitle-inline` (product-convention baseline)
494
- - `short_desc` = muted line under the label (the RestyledFields pattern; truncated to 1 line,
495
- tap label area to un-truncate).
496
- - Tier-1 messages = slim `ReqoreMessage` strips **always visible** directly under the row.
497
- - Tier-2 messages/info = collapsed behind a small count badge on the row (`2 ⓘ`, tap-popover).
498
- - Cost: +1 text line per described field, +1 strip per critical message. Most literal, most
499
- vertical growth.
500
-
501
- ### B — `icon-cluster` (minimal rows)
502
- - Rows stay one line. Right-side cluster: ⓘ (tap-popover with short_desc + default note) and an
503
- intent-coloured badge with count for messages (tap-popover with the full strips).
504
- - Cheapest vertically; **known risk:** fails criterion 4 for Tier 1 (badge-only critical info,
505
- flagged by research as easy to miss) unless paired with row tinting — kept as the
506
- control/contrast variant.
507
-
508
- ### C — `stripe-expand` (severity edge + disclosure)
509
- - 2–3 px **intent stripe** on the row's left edge (worst intent wins) — zero vertical cost,
510
- glanceable severity; danger/warning also tint the row background slightly.
511
- - An info affordance expands an in-row details area (`ReqraftCollapsibleContent`) holding
512
- short_desc, messages, default note; **auto-expanded when Tier 1 exists**.
513
- - Middle ground: quiet until something matters, one tap for everything else.
514
-
515
- ### D — `adaptive` (tier-driven hybrid — expected recommendation)
516
- - Tier 1 → always-visible slim strips under the row (as A) **plus** the intent stripe (as C).
517
- - `short_desc` → muted subtitle line, only when present (as A).
518
- - Tier 2 → count badge + tap-popover (as B).
519
- - Narrow viewports: subtitle wraps, strips go full-width, badges grow to 40 px touch targets.
520
- - Combines what each tier actually needs; slightly more rules to implement.
521
-
522
- ## 6. Story / comparison plan
523
-
524
- - Temporary prop `compactInfoDisplay: 'subtitle-inline' | 'icon-cluster' | 'stripe-expand' | 'adaptive'`
525
- on `FormEngine` (default = current behaviour until the pick).
526
- - One story per variant on the **Basic fixture** + story-level additions to stress the tiers: a
527
- field with two messages (warning + info), a long `short_desc`, a markdown `desc`, an unmet
528
- dependency, and a required-group pair.
529
- - Each variant also rendered in a **narrow-viewport story** (mobile is pass/fail, not a follow-up).
530
- - After the pick: losing branches and the prop are deleted (single renderer, like the hash view).
531
-
532
- ## 6b. Variant comparison at a glance
533
-
534
- | | A · Subtitle Inline | B · Icon Cluster | C · Stripe Expand | D · Adaptive |
535
- |---|---|---|---|---|
536
- | **short_desc** | muted subtitle under the label (truncated, tap to expand) | inside the badge tap-popover | inside the expandable panel | subtitle under the label (as A) |
537
- | **Tier 1 (danger/warning, deps)** | strips always visible under the row | behind the intent-coloured count badge (tap) | intent edge-stripe + panel **auto-opens** | strips always visible **+** edge-stripe |
538
- | **Tier 2 (info/success, default notes)** | `ⓘ n` badge → tap-popover | same badge as Tier 1 | inside the panel (after Tier 1) | `ⓘ n` badge → tap-popover |
539
- | **Row height (nothing to say)** | 1 line | 1 line | 1 line | 1 line |
540
- | **Row height (described field)** | 2 lines (subtitle) | 1 line | 1 line (+stripe) | 2 lines |
541
- | **Vertical cost of a warning** | +1 strip | none (hidden) | +panel (auto-open) | +1 strip |
542
- | **Taps to read critical info** | **0** | **1** ⚠ fails criterion 4 | **0** (auto-open) | **0** |
543
- | **Taps to read short_desc** | 0 (truncated) / 1 (full) | 1 | 1 | 0 / 1 |
544
- | **Crowding risk** | highest (every described row grows; strips stack) | lowest | medium (auto-open panels can stack) | medium-high |
545
- | **Mobile (360 px)** | strips go full-width, wrap | cleanest fit | stripes + panels fit | as A + stripes |
546
- | **Story** | `SubtitleInline` (+`MobileSubtitleInline`) | `IconCluster` (+`MobileIconCluster`) | `StripeExpand` (+`MobileStripeExpand`) | `Adaptive` (+`MobileAdaptive`) |
547
-
548
- All variants share: tap (never hover) for popovers, the `?` → markdown dialog for Tier 3, the
549
- `Required` tag, field chrome (icon/image/intent), and the height-stable inline editing (the
550
- editing row pins to the read row's measured height).
551
-
552
- ## 7. Decision checklist for the review
553
-
554
- - [ ] Tier classification agreed (esp.: are info/success messages allowed to hide behind a badge?)
555
- - [ ] Variant picked (or hybrid adjustments)
556
- - [ ] short_desc truncation rule (1 line + tap vs always wrap)
557
- - [ ] Does the picked variant change the **editor card/inline editor** too, or read rows only?
558
- - [ ] Mobile behaviour approved on the narrow-viewport stories