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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +207 -97
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +21 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
@@ -1,85 +0,0 @@
1
- # Compact mode — options-schema parity matrix
2
-
3
- Answers the call's requirement: *"we have to make sure that we support everything that the
4
- options support"* (Filip, 2026-06-10). Capability list is taken from the authoritative schema
5
- type (`@qoretechnologies/ts-toolkit` `forms.d.ts` — `TQorusFormFieldSchema`) plus engine-level
6
- props; IDE usage was verified by grepping `qorus-ide` (file counts in brackets where relevant).
7
-
8
- Legend: ✅ works + covered · 🟡 works, coverage thin/indirect · 🔴 gap (not supported or untested)
9
-
10
- ## Identity & display
11
-
12
- | Capability | Compact behaviour | Coverage |
13
- |---|---|---|
14
- | `display_name` | row label | ✅ everywhere |
15
- | `short_desc` | hover title + the row's ⓘ info panel (stripe-expand display, **decided 2026-06-11**: losers + `compactInfoDisplay` prop deleted) | ✅ `CompactShowcase`, `CompactFieldTypes` "Descriptions & messages" |
16
- | `desc` (markdown) | `?` → help dialog | ✅ `CompactHelpDialog` |
17
- | `group` + `groups` prop | collapsible group panels + badges | ✅ `Compact`, `CompactBasic` |
18
- | `sort` | ✅ fields sort by `schema.sort` (`availableOptions`) — verified | ✅ `CompactSortOrder` (declared out of order, renders 1-2-3) |
19
- | `icon` / `image` / `badge` / `actions` / `intent` / `tags` (field-level chrome) | ✅ **decided + built** (2026-06-10): rows render `icon`/`image` before the label and `intent` as the edge stripe (card border tints too); `badge` / `actions` / `tags` render on the expanded edit card header — nothing the schema sends is silently dropped | ✅ `CompactFieldTypes` "Field chrome" group (incl. a full-chrome combo) |
20
-
21
- ## Types & values
22
-
23
- | Capability | Compact behaviour | Coverage |
24
- |---|---|---|
25
- | full `TQorusType` union | read-first values per family | ✅ `CompactFieldTypes` catalog |
26
- | colour / file / hash read-first | swatch+hex · filename+size · count + structured tree | ✅ `CompactFieldTypes`, `CompactBasic`, unit tests |
27
- | `arg_schema` (nested form) | card editor + structured preview | ✅ `CompactBasic`, `CompactHashStructuredView` |
28
- | YAML-serialized values | summarised, not raw `%YAML` | ✅ `CompactListYamlField`, unit tests |
29
- | `default_value` (+`_desc`, `_display_name`) | seeded by engine; `default_value_desc` note surfaces in the row's info panel (Tier 2, behind ⓘ) | ✅ `CompactReadonlyDefaultFix`, `CompactShowcase` (toggle journey) |
30
- | `element_type` / typed lists | read-first join | 🟡 display via `CompactFieldTypes`; editing untested |
31
-
32
- ## Validation & requirements
33
-
34
- | Capability | Compact behaviour | Coverage |
35
- |---|---|---|
36
- | `required` | `*`, Required tag, completion meter, Draft/Ready badge | ✅ several stories |
37
- | `required_groups` | members are **linked** (2026-06-10): unmet members show a "One of: <group>" chip — tap-popover lists siblings (click → scroll + flash, works across panels), hover highlights all members; once satisfied, empty siblings show *"Not set — covered by …"* + Ready transition | ✅ `CompactRequiredGroups` (3 members across 2 panels, full journey) |
38
- | invalid values | Required tag + banner + filter-to-invalid | ✅ `CompactBasic` (6 invalid) |
39
- | `messages` (intent) | read rows: Tier-1 (danger/warning) → intent edge-stripe + auto-open info panel; Tier 2 behind the ⓘ toggle; the inline editor suppresses its own message strip (the panel below the editing row is the single renderer) | ✅ `CompactShowcase`, `CompactFieldTypes` "Descriptions & messages" |
40
- | `rules: ['valid_identifier']` [47 IDE files] | ✅ **wired** (2026-06-10): `validations.ts` maps `rules` → the identifier check; `OptionFieldMessages` now spreads the *field* schema (was the whole map — pre-existing bug). Unknown rule strings are deliberately ignored (documented at the mapping site) | 🟡 `CompactValidIdentifierRule` shows the Draft badge + invalid banner (the rule's *rejection* is asserted in the 3 unit tests, not the play) |
41
-
42
- ## Selection & editing
43
-
44
- | Capability | Compact behaviour | Coverage |
45
- |---|---|---|
46
- | `allowed_values` (+`_creatable`) | display label resolution + real dropdown inline | 🟡 `CompactBasic` asserts the resolved display label (incl. broken values); the inline dropdown *interaction* and the `_creatable` add-path are rendered but not driven by a play |
47
- | `element_allowed_values` (+creatable) [8] | multi-select display join + card editor with the real multi-select | ✅ `CompactMultiSelectEditing` (open + selection labels; deep add/remove interaction still light) |
48
- | `multiselect` | — | 🟡 covered via the same story |
49
- | `supports_templates` / `$config:` | raw template shown in read row; toggle inline | ✅ `CompactBasic` (`$local:test`) |
50
- | `supports_custom_values` | passed through to editor | 🟡 indirect |
51
- | `sensitive` [21 IDE files] | read row + hover title mask `••••••` (leak fixed 2026-06-10). Known behaviour: the TemplateField *editor* reveals the value while editing (textarea path — same as the IDE; a `password`-input treatment would be a TemplateField change). Nested sensitive inside the structured hash preview NOT masked (ReqoreDataView has no sensitive concept — upstream candidate) | 🟡 `CompactSensitive` asserts the read-row mask + no page-text leak; the edit-state reveal and the hover-title mask are not asserted (+ unit tests) |
52
- | `is_expression` values | read row shows "Expression" | 🟡 unit test; expression *editing* story still pending (transport live, deferred by Nick) |
53
- | `supports_expressions` / `expressions_url` / `server_expression_handling` / `default_view` | passed to editor | 🔴 untested in compact (needs expression transport — now live per Nick) |
54
- | `op` / operators | ✅ **`operators` prop wired** (2026-06-10 — was a dead internal `useState(undefined)`, unreachable in classic AND compact); operator-bearing fields always card-edit | ✅ `CompactOperators` (selector + WHERE/IS summary) |
55
- | `app` / `action` (custom template menu for `any`) | `getCustomMenuTemplateItems` wired. **Empty-`any` affordance fixed** (2026-06-11, found via `CompactFieldTypesEditingAllRequired`): `allowCustomValues` is hard-false for `any` (the value's TYPE is picked from the template menu first), so an empty `any` card used to render only a bare ⋮ — read as broken. `TemplateField` now renders the menu trigger as a labelled **"Set value"** button whenever the menu is the field's only control (`hasInputAffordance`); valued fields keep the icon-only ⋮. Toolkit is canonical — the IDE inherits this at adoption. | ✅ `CompactFieldTypesEditingAllRequired` (Set value → Set Custom Value → Text → richtext editor mounts), `CompactAnyType` (valued: card opens) |
56
-
57
- ## Behaviour & lifecycle
58
-
59
- | Capability | Compact behaviour | Coverage |
60
- |---|---|---|
61
- | `preselected` / hidden optionals | rows + search-add + Fields menu | ✅ `CompactFieldsMenu`, `CompactSearchHidden` |
62
- | `depends_on` (incl. nested arrays) | unmet deps **lock the row**, and the linkage is **navigable** (2026-06-10): the lock's tap-popover lists each blocker with its state (✓/✗, handles `name=value` and any-of arrays; click → scroll + flash), lock hover highlights the blockers, and **fulfilling a dependency flashes the rows it unlocks** | ✅ `CompactBasic` (full lock → locate → fulfil → unlock-flash journey), `CompactOptionDependsOnOptionOrAnotherOption` (any-of), `CompactOptionDependsOnOptionInRequiredGroup` (dep × group interplay), `CompactOnChangeAndDependents`, `CompactShowcase` |
63
- | `has_dependents` + `on_change: refetch` | dependents reset + refetch event | ✅ `CompactOnChangeAndDependents` |
64
- | `disabled` / `readonly` | `disabled` **locks the row** (2026-06-10 — previously it opened a dead editor); form-level `readOnly` still opens in view mode (Close); readonly default-fix | ✅ `CompactBasic` (locked-row asserts), `CompactReadOnly`, `CompactReadonlyDefaultFix` |
65
- | `focusedEditing` | ✅ compact edit cards now have the fullscreen affordance (2026-06-10): a Fullscreen button opens the same `FocusedEditing` modal as classic, with the field's descriptions | ✅ `CompactFocusedEditing` |
66
- | `get_message` / `return_message` | **out of scope for FormEngine parity.** These keys belong to the IDE's *legacy Field system* (`components/Field/*`, VSCode-era message bus: `postMessage`/`addMessageListener`); the IDE's options form (`systemOptions.tsx` — what FormEngine is the port of) never uses them, and server options schemas don't carry them. They only appear in the schema *type* because it also models legacy field definitions. Porting them = the separate Field-system migration, where the message bus becomes transport-agnostic callbacks (the `optionsLoader` pattern). | n/a |
67
- | `optionsLoader` (async schema) | loading/error lifecycle | ✅ `CompactOptionsLoader(+Error)` |
68
- | narrow containers (mobile / drawers) | stacked rows < 480 px measured form width; inline editing full-width | ✅ `CompactShowcaseMobile` (360 px) |
69
-
70
- ## Remaining gaps (2026-06-10, after the coverage batch)
71
-
72
- Closed in the batch: `rules` wiring (+ the `OptionFieldMessages` field-vs-map spread bug),
73
- `sensitive` story, operators (prop wiring — it was dead engine-wide — + story), `focusedEditing`
74
- on compact cards (feature + story), multi-select editing story, `sort` assert.
75
-
76
- Still open:
77
- 1. **Expression-editing story** — transport is live (localhost:8012); deferred by Nick.
78
- 2. **Nested `sensitive` in the structured hash preview** — `ReqoreDataView` has no sensitive
79
- concept; upstream candidate. Related: the TemplateField editor reveals sensitive values while
80
- editing (IDE-parity behaviour; a password-input treatment would be a TemplateField change).
81
- 3. **Deep multi-select interaction** (add/remove via the dropdown) — the story asserts open +
82
- selection labels only.
83
-
84
- (`get_message`/`return_message` was initially listed here as a gap — that was wrong; see the
85
- behaviour table: it's legacy-Field-system scope, not options-form parity.)
@@ -1,92 +0,0 @@
1
- # Expression Builder — verbatim re-port strategy
2
-
3
- **Status:** locked 2026-06-10. Supersedes the *from-scratch* ExpressionBuilder
4
- in `design/FORM_ENGINE_EXPRESSIONS.md` (Phases 3/3b/3c/3d). The plumbing
5
- (catalogue hook, FormEngine `is_expression`, DPQL bridge, validation
6
- `isFunction` case) from that batch is retained; the visual builder is replaced.
7
-
8
- ## Why we are redoing it
9
-
10
- The first attempt **reimplemented** the visual builder on reqraft's own
11
- primitives. That diverged from the team's stated method (Filip, 2026-06-10
12
- call): *copy the IDE component verbatim — with its dependencies and its tests —
13
- get it looking and passing 1:1, **then** improve.* The from-scratch version
14
- never looked like the IDE and cost days of "why does it look worse" iteration —
15
- exactly the danger Filip named (you can't tell a port bug from a deliberate
16
- change). Nick on the call: the port "wasn't a good job done."
17
-
18
- ## The blocking finding (why it's not a trivial copy)
19
-
20
- A verbatim copy of the IDE's `ExpressionBuilder` (1,857 LOC / 9 files) does NOT
21
- compile against reqraft today, because **reqraft's shared field stack drifted
22
- from the IDE** ("reqraft wasn't kept up"). Specifically:
23
-
24
- - **The recursion lives in `TemplateField`, not ExpressionBuilder.** Operands
25
- render via `<TemplateField component={auto} allowFunctions isFunction={…}>`,
26
- and TemplateField recurses back into ExpressionBuilder. reqraft's
27
- TemplateField has **no `allowFunctions`/`isFunction`** — it uses a different
28
- mechanism (the Phase-1 "Use Expression" menu toggle).
29
- - Missing helpers: `helpers/expressions` (`getArgumentType`,
30
- `argumentMatchesType`), `areQorusTypesCompatible`.
31
- - `validateField` is private (`_validateField`) in reqraft.
32
- - `SelectFormField` hardcodes `flat={false}` + `intent='info'` (the chip
33
- problem) — not externally controllable.
34
- - IDE-only seams that can't come along: `AiAssistanceAction` (AI),
35
- `render-expression` over the Creator WebSocket (Explain), the hints system.
36
-
37
- So the proper port = **re-faithful-ize the field stack first, then copy the
38
- builder.** Decision (user, 2026-06-10): **re-port (option 1)**, not augment.
39
-
40
- ## What is kept from the from-scratch batch
41
-
42
- - `useExpressions.ts` (catalogue hook — close to the IDE's)
43
- - `useRenderExpression.ts` (Explain seam — matches the planned `onExplain`/LSP)
44
- - `types.ts`, FormEngine `is_expression` plumbing, validations `isFunction`
45
- - **`ExpressionField` DPQL text mode** — NET-NEW (the IDE builder is
46
- visual-only; DPQL text editing is the whole point of this branch)
47
-
48
- ## What is replaced
49
-
50
- - `ExpressionBuilder.tsx` (from-scratch) + its stories + the mock-styling work.
51
-
52
- ## Drawbacks (accepted)
53
-
54
- 1. Touches `TemplateField` — load-bearing for the entire form engine + the
55
- just-landed field migration. Highest-risk surface in the library.
56
- 2. Two expression-on-field models collide (IDE `allowFunctions`/`isFunction`
57
- vs the Phase-1 toggle); the IDE model wins.
58
- 3. Never truly verbatim — AI dropped, Explain → `onExplain`/LSP seam.
59
-
60
- *Revised 2026-09-08 — one deliberate departure from the IDE source, in the
61
- rest-argument operand mount.* The IDE derives an empty rest argument's `type`
62
- and `defaultType` from the value (undefined when empty), so an empty `bool`
63
- argument rendered as an untyped `auto` field — a type picker under a label that
64
- already said "true or false" — and an empty `any` argument never qualified for
65
- `TemplateField`'s template-selector default, which reads `type`. reqraft now
66
- falls back to the catalogue's declared `ui_type`, as the first-argument mount
67
- and the allowed-values branch already did. Flagged by Foxhoundn on the #118
68
- qlip review; matches the read-only-types direction in qorus-ide#178. The IDE
69
- inherits it, since it renders reqraft's builder.
70
- 4. Brings the deferred machinery (type-mismatch modals, type-compat) — more
71
- surface to own.
72
- 5. Follow-on: the IDE must then *consume* reqraft's builder or they drift again.
73
-
74
- ## Phases (Filip's method: copy + tests → 1:1 → improve)
75
-
76
- - **A — Field-stack parity.** Port verbatim into reqraft (with their IDE
77
- tests): `helpers/expressions`, `areQorusTypesCompatible`; export
78
- `validateField`; bring `SelectFormField` to forward `flat`/`intent`; bring
79
- `TemplateField` to the IDE's `allowFunctions`/`isFunction` mechanism.
80
- **GATE:** the field-migration stories + jest still pass.
81
- - **B — Verbatim ExpressionBuilder.** Copy the 9 files + the IDE's stories &
82
- tests; fix import paths; seam out AI (off) / render-expression (`onExplain`
83
- prop) / hints (stub). **GATE:** 1:1 vs `:6007`, ported tests pass.
84
- - **C — Re-wrap reqraft features.** Visual = ported builder, Text =
85
- `DpqlEditor`, Explain = seam, inside `ExpressionField`; reconcile FormEngine
86
- `is_expression` to the IDE model. **GATE:** field-holds-expression story.
87
- - **D — Server (out of reqraft).** `render-expression` over LSP/REST; swap
88
- `useRenderExpression`. (Filip/Nick file the server issue.)
89
- - **E — Dedupe (out of scope now).** IDE consumes reqraft's builder.
90
-
91
- Between every phase: open Storybook, **compare to `:6007`**, fix, then proceed.
92
- No commits until the user verifies.
@@ -1,300 +0,0 @@
1
- # FormEngine — compact (read-first) mode
2
-
3
- ## What it is
4
-
5
- `FormEngine` ([`src/components/form/engine/FormEngine.tsx`](../src/components/form/engine/FormEngine.tsx))
6
- renders an options schema (`IQorusFormSchema`) as a form. It has two layouts:
7
-
8
- - **Classic** (default) — every option's editor is expanded at once.
9
- - **Compact (read-first)** — pass `compact` to render each option as a **row showing its current
10
- value**; clicking a row expands the real editor inline, and a **Done** action collapses it again.
11
- The form reads as a "configuration summary you drill into" rather than a wall of inputs.
12
-
13
- Compact mode is purely presentational — editing flows through the **same** machinery as the classic
14
- layout (templates, `on_change`, validation, dependents). Nothing about the schema, value shape, or
15
- `onChange` contract changes.
16
-
17
- ## What `compact` adds
18
-
19
- - **Read-first rows.** Each option shows a formatted summary of its value (`formatOptionValue`):
20
- booleans as Yes/No, `allowed_values` as their display label, lists as joined item names, rich text
21
- flattened to plain text, **colours** as their hex/`rgba()` string (with a swatch preview),
22
- **files** as their filename (with a file icon + muted size), and **hashes** as an "N fields" count.
23
- Empty options show **Not set**, or **Required — not set** (warning intent) when required.
24
- - **Hash "view more" preview.** A hash row keeps its "N fields" summary and renders the hash's
25
- contents beneath it with the **structured tree** (`StructuredDataView` → `ReqoreDataView` — see
26
- the dedicated section below); whether a row gets a preview at all is gated by `getHashEntries`,
27
- which recognises `arg_schema` structured forms, serialized-YAML/free-hash values, and schema-less
28
- hashes whose entries are the server's typed envelopes (`{ type, value }` unwrapped by its strict
29
- shape, so an entry counts as `value1` rather than "2 fields"). The preview is wrapped in a
30
- reusable **`ReqraftCollapsibleContent`**: a short hash shows in full, a tall one is clipped behind
31
- a **gradient "Show more" fade** (a reveal button that surfaces on hover; expanding adds a
32
- "Show less"). Clicking a value chip (or the row itself) opens the full nested editor — the
33
- preview is read-first, with the tree's expand/collapse summaries owning their own clicks.
34
- `ReqraftCollapsibleContent` ([`src/components/collapsible/CollapsibleContent.tsx`](../src/components/collapsible/CollapsibleContent.tsx))
35
- is a standalone, exported, theme-aware toolkit component (extracted from the IDE's chat-bubble
36
- `CollapsibleContent` fade-reveal) so the same affordance can be reused elsewhere; the fade colour
37
- defaults to the Reqore theme surface (overridable via `fadeColor`).
38
- - **Inline editing for scalars, card for complex fields.** Clicking a row mounts the real field
39
- (`renderOption`) — the editor is **not** mounted while collapsed, and multiple rows can be open at
40
- once. *Scalar* fields (string, number, bool, date, colour, selects/allowed-values, …) edit **in
41
- place inside the row**: the editor replaces the value cell, with a per-row **↺** (when changed) and
42
- a **✓** to collapse; Escape or clicking the label also collapses. *Complex* fields — anything in
43
- `COMPACT_COMPLEX_TYPES` (hash, list, file, richtext, any/auto, schema editors, …) plus any field
44
- with `arg_schema` or operators — still open the expanded **edit card** with a Done button, per the
45
- agreed fallback ("big fields still render a form"). Changes flow through the same
46
- `handleValueChange` → debounced `onChange` pipeline in both paths — the engine never persists;
47
- *when* to apply the emitted value (immediate vs batched commit) is the consumer's contract.
48
- - **Completion meter + Incomplete/Ready status.** A single inline bar at the top — Incomplete/Ready status |
49
- `N / M fields set` | track (fills remaining) | `%` — matching the IDE's restyled completion strip.
50
- The badge is the IDE restyled-hero convention (`RestyledFields`): a minimal small `ReqoreTag`,
51
- **Incomplete** (warning) while any field is invalid, required-unset or needs attention, **Ready**
52
- (success) once everything validates — driven by the same validity data as the invalid-fields
53
- banner; hidden in `readOnly`. It signals form *readiness*, not unsaved changes, which is why the
54
- not-ready state is never called "Draft": a form nobody has touched can be Incomplete, and **Draft**
55
- means unsaved changes — the batched mode's per-row chip, and nothing else. Unsaved-change state is
56
- that chip and the per-row **↺** / "Revert all changes". (`VariantCalmTable`'s meter uses the same
57
- two words.) (Product save convention for
58
- context: creator forms auto-save to a *draft* via the IDE's `useInterfaceDraft` — debounced
59
- auto-draft + explicit Submit — so compact inline edits are draft-persisted by the consumer with no
60
- extra engine work.)
61
- - **Toolbar.** A search box (filter rows by label) plus a **Fields** dropdown (`ReqoreDropdown`,
62
- edit-mode only) that consolidates the field-set actions: **Required only** (toggle), **Show field types**
63
- (toggle — annotates each row with its type, e.g. `<string>`), **Select all** (add every optional field),
64
- **Default fields** (drop user-added optionals + clear the filter, keeping required/preselected/loaded
65
- values), **Revert all changes** (undo every edit back to the loaded values), and a searchable
66
- **add-optional** list. Filters only affect which rows are listed — the completion meter still reflects the
67
- full set. ("Edit code" is *not* here — that stays IDE-side.)
68
- - **Revert.** A changed row shows a per-field hover **↺** that restores that field to its loaded value;
69
- **Revert all changes** in the Fields menu restores the whole form. (Distinct from **Default fields**,
70
- which resets to schema defaults + drops added optionals.)
71
- - **Batched commit (`commitMode='batched'`).** The decided save model (Nick, 2026-06-10): edits
72
- stage as a **draft** — each changed row gets an always-visible warning **Draft** chip (the
73
- product's draft convention), and a **Save / Discard bar** docks **bottom-right as a sticky,
74
- floating card** while anything is dirty (`N unsaved changes`) — `position: sticky` (not fixed)
75
- so it stays inside the form's scroll bounds when the engine renders in a drawer/panel. **Save**
76
- fires the new **`onCommit`** callback with the
77
- staged form and is **disabled while any field is invalid**; **Discard** is the existing
78
- revert-all. `onChange` still fires on every staged edit, flagged **`meta.draft`**, so consumers
79
- can live-validate without persisting. Default stays `'immediate'` (today's behaviour — no
80
- consumer breaks). Stories: `CompactBatchedCommit` (full stage → save → discard journey),
81
- `CompactBatchedCommitInvalid` (Save gated on validity).
82
- - **Search spans hidden fields.** The top search matches *all* schema fields, not just the listed ones: a
83
- match that is an optional field not yet in the form is surfaced as a dimmed **"Not in form — add"** row;
84
- activating it adds the field and opens its editor.
85
- - **An unmet `depends_on` withholds the field rather than offering it.** A field whose dependency is
86
- not fulfilled is left out of the not-yet-added list entirely — so it is absent from the addable rows,
87
- the Fields menu, and its **Select all** alike. All three read the one `filteredOptions` list, which is
88
- where the gate lives, so they cannot disagree about what is available. The rule is that
89
- `hasAllDependenciesFullfilled` is the *same* predicate that then refuses to let the field be edited:
90
- offering one it rejects can only end at a row that opens and says it is disabled. (Reported on auth
91
- profiles — an authentication scheme set to Permissive still offered `Cookie Name` and `Redirect URL`,
92
- both `depends_on: ['type=cookie']`, and both dead ends.) Fulfilling the dependency brings the rows
93
- back and flashes them (`dependencyLockedNames`), which is the discoverable path: pick the scheme, and
94
- the fields that scheme has appear. **Only the not-yet-added ones** — a field that already holds a
95
- value stays listed when its dependency later stops holding, rendered `readfirst-row-disabled` with the
96
- reason, so a value still being submitted is visible and removable instead of silently orphaned.
97
- - **A field locked by an unmet `depends_on` does not need attention.** A `required` (or one-of
98
- `required_groups`) field that is listed but locked is not required while it is locked: the status
99
- (`getOptionStatus`) and box (`getOptionBucket`) treat it as optional, so it waits in the Optional box,
100
- locked, with what unlocks it, and is not in "Needs attention", the header's attention count or the
101
- first-attention autofocus target. Its messages say what unlocks it, not "This field is required"
102
- (`getOptionFieldMessages`). The field it depends on carries its own status, and that field is what
103
- the author has to do next. Once the dependency holds and the field is still empty, it needs attention
104
- again. The same rule holds for form validity (`onValidityChange`, the Incomplete/Ready status,
105
- `showInvalidOptionsOnly`): an EMPTY locked field does not apply, so it does not make the form
106
- incomplete — otherwise a check of kind Equals could never be saved because Minimum, required for
107
- Between alone, is empty, and a form whose only gaps are fields nobody can fill in would read
108
- Incomplete with nothing under "Needs attention". A value a locked field still holds is validated
109
- as before. (`getUnresolvedRequiredOptions`, which decides whether a form is needed at all before
110
- any is shown, still reports a locked required option as unresolved, reason `dependency`.) Stories: `CompactLockedRequiredNeedsNoAttention`,
111
- `CompactUnlockedRequiredNeedsAttention`.
112
- - **Sticky-top toolbar.** The completion meter + search + Fields menu are wrapped in a `position: sticky;
113
- top: 0` header (opaque background masks rows scrolling beneath), so filtering and adding optional fields
114
- stay reachable while scrolling a long form. (Replaced an earlier bottom "Additional options" bar that, as
115
- the last child of the scroll content, could never actually pin to the viewport.)
116
- - **Zebra field blocks + spacing (no dividers) + mobile left rail.** Every field block (a row, or
117
- the wrapper carrying a row plus its message strips / hash preview) gets an alternating
118
- theme-derived tint — 3% on desktop, 5% on narrow forms — and blocks separate with an **8px gap**
119
- at all widths; the old hairline dividers were retired (zebra + space carry the separation). Each
120
- field owns a visible territory and strips never float ownerless. Narrow forms additionally indent
121
- content 12px under the label (left rail) and use slightly taller inner padding. Edit cards keep
122
- their own surface.
123
- - **No horizontal overflow.** The row grid's value column is `minmax(0, 1fr)` and the value cell has
124
- `min-width: 0`, so a long unbroken value (e.g. a URL) ellipsis-truncates (full value on hover via `title`)
125
- instead of forcing a horizontal scrollbar.
126
- - **Field info: intent stripe + expandable panel** (the decided "stripe-expand" display,
127
- 2026-06-11 — see `COMPACT_INFO_DISPLAY.md`). Rows carrying critical (Tier 1: danger/warning)
128
- messages get a 3px intent edge-stripe and their info panel **auto-opens** below the row —
129
- short_desc plus all schema/validation/dependency messages as slim `ReqoreMessage` strips.
130
- Fields with only Tier-2 info (info/success messages, `default_value_desc` notes, short_desc)
131
- stay one line: a ⓘ toggle in the fixed info slot opens the panel on demand (the per-row
132
- override sticks either way). While a row is edited inline, the editor's own schema-message
133
- strip is suppressed — the panel below the editing row is the single renderer. Stories:
134
- `CompactShowcase` (+`Mobile`).
135
- - **Accessibility.** Read-first rows are real controls (`role="button"`, `tabIndex={0}`, Enter/Space
136
- activate, visible focus ring), not just click handlers; the Done button and dropdowns are native buttons.
137
- - **The caret follows the row that opens.** An opened row moves the caret into the control it offers —
138
- whatever that control is. `findRowFocusTarget` ([`rowFocus.ts`](../src/components/form/engine/rowFocus.ts))
139
- prefers a text-entry control (`input` / `textarea` / `contenteditable`) and otherwise takes the first
140
- other focusable one (a `<button>` selector, a `[tabindex]` reqore checkbox — a pick-one's choices are
141
- not inputs), ignoring an absorbed sibling's editor and the schema-message strip, which belong to other
142
- fields. The row is revealed first — `scrollIntoView({ block: 'nearest' })` on the ROW, a no-op when it
143
- is already visible — because a caret below the fold changes nothing on screen while the next keystroke
144
- goes somewhere invisible; focus itself then uses `preventScroll` so nothing moves twice. A caller that
145
- wants the row **opened without the caret** uses `expandFirstRequired` rather than
146
- `autoFocusFirstRequired`. The search is re-run by a one-shot `MutationObserver` on the row's value cell,
147
- so an editor that mounts its control several commits later (a host editor resolving a catalogue) still
148
- gets the caret, and it gives up the moment the caret is somewhere outside this row. Stories:
149
- `CompactAutoFocusFirstRequired`, `CompactAutoFocusPickOneFirstQuestion`,
150
- `CompactAutoFocusNonFocusableFirstField`, `CompactAutoFocusLateMountingEditor`.
151
- - **A row the AUTHOR opens into a picker opens the picker with it.** Read-first belongs to the
152
- COLLAPSED row; it must not be the answer twice. A picker's editor is a closed trigger printing the
153
- value the read row had just printed, so the row opened, nothing on screen changed, and changing the
154
- value still cost a second click ("clicking on a closed option like 'Kind' opens the option, but the
155
- same chosen value is displayed"). The row decides — it is the only party that knows both that the
156
- author opened it (rather than the form) and which control it offers (`findRowFocusTarget`, the same
157
- scan that hands over the caret) — and the control obeys, through
158
- **`RowOpenPickerContext`** ([`rowOpenPicker.ts`](../src/components/form/engine/rowOpenPicker.ts)), a
159
- one-shot `true` scoped to the row's own editor. A control declares itself a picker with
160
- **`aria-haspopup`** (`isClosedPickerTrigger` in `rowFocus.ts`), which is the attribute's own meaning
161
- and the existing contract with assistive technology — so a host's editor opts in by being accessible.
162
- A context value rather than a synthetic click on the trigger: reqore's popover binds its click
163
- listener in an effect keyed on the trigger element arriving, so a click dispatched from the row's
164
- effect lands before anything is listening.
165
- Read-first is kept where it still says something, and each of these is a term in the condition:
166
- the collapsed row itself; a row the FORM opened (`initialExpandedOptions` — an address, or
167
- qorus-ide's diagram showing a step — and `autoFocusFirstRequired`, which promises the caret and
168
- only the caret); and the edit CARD a complex field opens, which is a form in its own right whose
169
- first control is one of several. Stories: `CompactRowOpensItsPicker`,
170
- `CompactTextRowOpensItsTextBox`; tests: `__tests__/compactRowClickOpensThePicker.test.tsx`.
171
- - **Grouping.** Rows are grouped by each option's raw `group` key into collapsible `ReqorePanel` sections,
172
- each with a `✓ all set` / `⚠ N to resolve` badge (the catch-all `optional` group shows `N optional`
173
- instead). Display per group (label / icon / subtitle / order) is
174
- supplied by the consumer via the **`groups`** prop (the server sends only the bare group key — see
175
- research below); anything omitted defaults to a title-cased key, no icon, and schema order. Ungrouped
176
- required/preselected fields fall back to `general`, everything else to `optional`
177
- (`getOptionGroup` / `getOptionGroupLabel`).
178
- - **Dedicated layout.** Compact does **not** reuse the classic `ReqoreCollection` card-per-field layout —
179
- it renders its own flat rows (label | value | action, zebra blocks + spacing) so it reads like the
180
- IDE's restyled creator rather than a wall of cards. The classic always-expanded path is untouched.
181
-
182
- Interface-specific chrome (status hero, value chips, "Edit code", the help Hint) is intentionally **not**
183
- in the engine — a consumer wraps `FormEngine` and supplies that around it. The **server does not define
184
- group display metadata** (only the bare `group` string per field; no label/icon/order), so each UI owns
185
- it — hence the engine takes group display via the `groups` prop rather than hardcoding it.
186
-
187
- ## Where the logic lives
188
-
189
- - [`readFirst.ts`](../src/components/form/engine/readFirst.ts) — pure, unit-tested helpers:
190
- `formatOptionValue`, `formatColorValue` / `colorToCss` (colour → hex/`rgba()` + swatch CSS),
191
- `formatFileValue` / `getFileSize` / `formatBytes` (file → filename + size), `getHashEntries`
192
- (hash → labelled sub-field summaries), `getOptionGroup` (raw key), `getOptionGroupLabel` (key →
193
- display label, honouring the `groups` prop), `getReadFirstCompletion`, `isOptionValueEmpty`.
194
- - `FormEngine.tsx` — when `compact`, the component early-returns `renderCompact()` (the completion meter,
195
- invalid-fields message, grouped flat rows via `renderCompactRow`, and the "more options" adder) instead
196
- of the classic `ReqoreCollection`. Flat-row styling lives in module-level `styled-components`
197
- (`StyledCompactWrap`, `StyledGroupBody`, `StyledEditCard`) with theme-derived colours. The classic path
198
- is left exactly as it was.
199
-
200
- ## Usage
201
-
202
- ```tsx
203
- <FormEngine
204
- name="my-form"
205
- compact
206
- options={schema}
207
- value={value}
208
- onChange={handleChange}
209
- // optional: per-group display, keyed by the raw `group` string
210
- groups={{
211
- info: { label: 'Info', icon: 'IdCardLine', subtitle: 'Identity and core settings', sort: 0 },
212
- scaling: { icon: 'BroadcastLine', sort: 1 },
213
- }}
214
- />
215
- ```
216
-
217
- ## Async schema (`optionsLoader`)
218
-
219
- `FormEngine` normally renders a schema you hand it via `options`. `optionsLoader` lets the engine **fetch
220
- the schema itself**, owning the loading / error / refetch lifecycle, while staying **transport-agnostic** —
221
- the consumer supplies an async callback that resolves the schema however it likes (the engine never learns
222
- about any backend). This is what lets a consumer converge an old "fetch-by-URL" form (e.g. the qorus-ide
223
- `<Options url=…>` fork) onto the upstream engine without pushing app-specific fetch code into the library.
224
-
225
- ```tsx
226
- const loadSchema = useCallback(() => fetchSchemaSomehow(url), [url]); // memoise → refetch only on change
227
-
228
- <FormEngine
229
- name="protocol-options"
230
- compact
231
- value={value}
232
- optionsLoader={loadSchema} // no `options` — the engine loads it
233
- onChange={handleChange}
234
- />
235
- ```
236
-
237
- - While loading, the engine shows its skeleton; on rejection it renders the error message; on success it
238
- renders the schema and fires `onOptionsLoaded`.
239
- - The loader re-runs when its **identity changes**, so memoise it (`useCallback`) keyed on its inputs — a
240
- fresh function every render would refetch on every render.
241
- - Works in both compact and classic layouts. (Real consumer: qorus-ide's `useRemoteOptionsLoader` feeding
242
- the Connection creator's protocol-specific options panel.)
243
-
244
- ## Tests
245
-
246
- - **Unit:** [`__tests__/readFirst.test.ts`](../__tests__/readFirst.test.ts) — value formatting (incl.
247
- colour hex/`rgba()`, file filename, hash field-count + `getHashEntries` expansion, `formatBytes`),
248
- grouping, completion.
249
- - **Field-type catalog:** the `CompactFieldTypes` story is a literal catalog of the whole `TQorusType`
250
- union (grouped by family) — every renderable type plus the non-renderable/interface-reference types —
251
- asserting colour/file/hash read-first values and the hash "view more" sub-row reveal. Beyond the
252
- type families it carries one-capability-per-row groups for **field chrome** (icon / image / intent /
253
- badge / actions / tags), **descriptions & messages** (short_desc behind ⓘ, desc → `?` dialog,
254
- Tier-1 messages auto-open, Tier-2 behind ⓘ), and **meta** (sensitive / rules / default-value note);
255
- the combined worst-case stress form is `CompactShowcase` (the flagship "real form" story). Two everything-open variants:
256
- `CompactFieldTypesEditing` (every row activated — all ~70 real editors mounted at once) and
257
- `CompactFieldTypesEditingAllRequired` (same, but every field required and unset — each editor in
258
- its required/invalid state; the canary for editors that misbehave on empty required values).
259
- - **Reusable disclosure:** `ReqraftCollapsibleContent` has its own
260
- [`CollapsibleContent.stories.tsx`](../src/components/collapsible/CollapsibleContent.stories.tsx)
261
- (tall content clips + fades with a hover "Show more"; short content shows whole; custom fade colour).
262
- - **`optionsLoader`:** `CompactOptionsLoader` (async load → read-first rows + `onOptionsLoaded`),
263
- `CompactOptionsLoaderError` (rejection → error message), and `OptionsLoader` (classic-layout parity).
264
- - **Interaction:** the `Compact*` stories in
265
- [`FormEngine.stories.tsx`](../src/components/form/engine/FormEngine.stories.tsx), using the shared
266
- `_tests*` helpers. They mirror the classic story matrix: read-first edit (`CompactReadFirstEditing`), the
267
- Fields menu / search / search-hidden / overflow + sticky-top header, revert + show-types,
268
- on_change/refetch + dependents,
269
- and parity scenarios — field types, `required_groups`, `any` type, readonly-default-fix,
270
- non-existent-filtered, the help dialog, and render stability.
271
- - **Full-schema parity:** `CompactBasic` renders compact mode on the **exact** schema + value behind the
272
- classic `Basic` story (the shared fixture
273
- [`__fixtures__/basicFormOptions.ts`](../src/components/form/engine/__fixtures__/basicFormOptions.ts) —
274
- both stories import it, so they can never drift). Every option/state the classic layout exercises runs
275
- through the compact path: both hash options, file, auto, list, allowed-values (+creatable/broken), date,
276
- rgbcolor, richtext, templates, messages, disabled, readonly, depends_on. Running the full fixture
277
- immediately caught two real bugs: `richtextToString` crashing on scalar-valued richtext options, and
278
- `getHashEntries` mis-counting typed envelopes.
279
- - **Workflow-orders hash view:** `StructuredDataView`
280
- ([`_structuredData/`](../src/components/form/engine/_structuredData/)) is a thin Qorus wrapper
281
- around **`ReqoreDataView`** (upstreamed in reqore ≥0.69 — the toolkit was bumped 0.64 → 0.69.2 for
282
- it), mirroring qorus-ide's wrapper of the same name: it plugs in the Qorus typed-envelope
283
- allow-list, the embedded-YAML/JSON string parser, and the Qorus date parser/formatter
284
- (`structuredData.ts`). Theme-driven (key chips = `info` intent, values intent-tinted by type),
285
- scalars stay on the same row as their key at any depth, objects/lists collapse to
286
- `Object · N fields` / `List · N items`. It is the **only hash preview** in the compact form —
287
- the earlier flat key → value sub-row view was removed after Filip signed off on the structured
288
- look (`getHashEntries` remains as the "is this an expandable hash?" gate and for value
289
- summaries). See the `CompactHashStructuredView` story (which also contrasts an
290
- envelope-encoded hash against a raw order-style payload) plus its own
291
- `Form/Engine/StructuredDataView` story. In the compact form the tree is wired up:
292
- the Fields-menu **"Show field types"** toggle also drives the per-scalar type chips inside it,
293
- clicking a **value chip opens the hash's editor** (parity with the flat sub-rows; section
294
- summaries keep their expand/collapse clicks), and `defaultExpandDepth={2}` keeps deep nests
295
- collapsed so the preview stays short before the fade. Known gap: key chips show raw keys, not
296
- `arg_schema` `display_name`s — suggested upstream as
297
- [reqore#568](https://github.com/qoretechnologies/reqore/issues/568) (`keyLabel` callback).
298
-
299
- Interface-specific chrome the IDE still wraps around the engine (Phase 3): the status hero, value chips
300
- (e.g. the language logo), "Edit code", and the "Editing this form" Hint.