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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/README.md +21 -1
  2. package/dist/components/Description/describedControl.d.ts +48 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +10 -1
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +11 -6
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +47 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +151 -83
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +34 -1
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +487 -87
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +19 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +0 -1
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +12 -20
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +41 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +396 -99
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  111. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  112. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  113. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  115. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  116. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentWrapper.js +4 -2
  118. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  119. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  120. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  121. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  122. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  123. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  125. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  127. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/index.js +121 -77
  129. package/dist/components/form/expressions/builder/index.js.map +1 -1
  130. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  131. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/item.js +19 -5
  133. package/dist/components/form/expressions/builder/item.js.map +1 -1
  134. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  135. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  136. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  137. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  138. package/dist/components/form/expressions/expressionOperands.js +97 -0
  139. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  140. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/mockExpressions.js +22 -5
  142. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  144. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  145. package/dist/components/form/expressions/renderExpressionToText.js +35 -9
  146. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  147. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  148. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  149. package/dist/components/form/expressions/textOfExpression.js +37 -0
  150. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  151. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  152. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  153. package/dist/components/form/expressions/useExpressionType.js +181 -0
  154. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  155. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  156. package/dist/components/form/expressions/useRenderExpression.js +7 -7
  157. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  158. package/dist/components/form/fields/Field.d.ts.map +1 -1
  159. package/dist/components/form/fields/Field.js +20 -7
  160. package/dist/components/form/fields/Field.js.map +1 -1
  161. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  162. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  163. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  164. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  165. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  166. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  167. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  168. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  169. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  170. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  171. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  172. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  173. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  174. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  175. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  176. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  177. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  178. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  179. package/dist/components/form/fields/binary/Binary.js +23 -3
  180. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  181. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  182. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  183. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  184. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  185. package/dist/components/form/fields/color/Color.d.ts +103 -16
  186. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  187. package/dist/components/form/fields/color/Color.js +611 -16
  188. package/dist/components/form/fields/color/Color.js.map +1 -1
  189. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  190. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  191. package/dist/components/form/fields/emittedValues.js +24 -1
  192. package/dist/components/form/fields/emittedValues.js.map +1 -1
  193. package/dist/components/form/fields/file/File.d.ts +1 -1
  194. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  195. package/dist/components/form/fields/file/File.js +4 -2
  196. package/dist/components/form/fields/file/File.js.map +1 -1
  197. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  198. package/dist/components/form/fields/long-string/LongString.js +17 -3
  199. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  200. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  201. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  202. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  203. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  204. package/dist/components/form/fields/number/Number.d.ts +6 -0
  205. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  206. package/dist/components/form/fields/number/Number.js +41 -6
  207. package/dist/components/form/fields/number/Number.js.map +1 -1
  208. package/dist/components/form/fields/object/Object.d.ts +1 -1
  209. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  210. package/dist/components/form/fields/object/Object.js +4 -2
  211. package/dist/components/form/fields/object/Object.js.map +1 -1
  212. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  213. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  214. package/dist/components/form/fields/pendingEdit.js +79 -0
  215. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  216. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  217. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  218. package/dist/components/form/fields/rich-text/RichText.js +190 -81
  219. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  220. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  221. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  222. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  223. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  224. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  225. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  226. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  227. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  228. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  229. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  230. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  231. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  232. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  233. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  234. package/dist/components/form/fields/schema-definition/index.js +8 -4
  235. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  236. package/dist/components/form/fields/select/Select.d.ts +2 -0
  237. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  238. package/dist/components/form/fields/select/Select.js +19 -10
  239. package/dist/components/form/fields/select/Select.js.map +1 -1
  240. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  241. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  242. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  243. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  244. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  245. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  246. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  247. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +5 -5
  248. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  249. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
  250. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  251. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  252. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  253. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  254. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  255. package/dist/components/form/fields/template/TemplateField.d.ts +83 -1
  256. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  257. package/dist/components/form/fields/template/TemplateField.js +535 -85
  258. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  259. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  260. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  261. package/dist/components/form/fields/template/TemplateText.js +8 -4
  262. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  263. package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
  264. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  265. package/dist/components/form/fields/template/writtenAsText.js +188 -0
  266. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  267. package/dist/components/form/index.d.ts +10 -0
  268. package/dist/components/form/index.d.ts.map +1 -1
  269. package/dist/components/form/index.js +23 -1
  270. package/dist/components/form/index.js.map +1 -1
  271. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  272. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  273. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  274. package/dist/components/log/Log.d.ts.map +1 -1
  275. package/dist/components/log/Log.js +15 -7
  276. package/dist/components/log/Log.js.map +1 -1
  277. package/dist/components/menu/Menu.d.ts.map +1 -1
  278. package/dist/components/menu/Menu.js +19 -10
  279. package/dist/components/menu/Menu.js.map +1 -1
  280. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  281. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  282. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  283. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  284. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  285. package/dist/components/smartEditor/MarkdownDoc.js +1 -1
  286. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  287. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  288. package/dist/components/smartEditor/SmartEditor.js +51 -136
  289. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  290. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  291. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  292. package/dist/components/smartEditor/completionStyle.js +66 -0
  293. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  294. package/dist/components/smartEditor/index.d.ts +5 -1
  295. package/dist/components/smartEditor/index.d.ts.map +1 -1
  296. package/dist/components/smartEditor/index.js +19 -1
  297. package/dist/components/smartEditor/index.js.map +1 -1
  298. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  299. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  300. package/dist/components/smartEditor/templateCompletions.js +94 -0
  301. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  302. package/dist/components/smartEditor/types.d.ts +12 -1
  303. package/dist/components/smartEditor/types.d.ts.map +1 -1
  304. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  305. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  306. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  307. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  308. package/dist/components/smartEditor/useLspHover.d.ts +22 -7
  309. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  310. package/dist/components/smartEditor/useLspHover.js +86 -17
  311. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  312. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  313. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  314. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  315. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  316. package/dist/components/smartEditor/useLspSession.js +7 -6
  317. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  318. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  319. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  320. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  321. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  322. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  323. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  324. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  325. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  326. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  327. package/dist/components/supportTicket/TicketHeader.js +20 -2
  328. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  329. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  330. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  331. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  332. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  333. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  334. package/dist/components/ticketThread/TicketThread.js +36 -11
  335. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  336. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  337. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  338. package/dist/helpers/descriptionTooltip.js +70 -0
  339. package/dist/helpers/descriptionTooltip.js.map +1 -0
  340. package/dist/helpers/domProps.d.ts +5 -0
  341. package/dist/helpers/domProps.d.ts.map +1 -0
  342. package/dist/helpers/domProps.js +47 -0
  343. package/dist/helpers/domProps.js.map +1 -0
  344. package/dist/helpers/expressions.d.ts +107 -2
  345. package/dist/helpers/expressions.d.ts.map +1 -1
  346. package/dist/helpers/expressions.js +223 -8
  347. package/dist/helpers/expressions.js.map +1 -1
  348. package/dist/helpers/hoveringPointer.d.ts +26 -0
  349. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  350. package/dist/helpers/hoveringPointer.js +29 -0
  351. package/dist/helpers/hoveringPointer.js.map +1 -0
  352. package/dist/helpers/markdownText.d.ts +14 -0
  353. package/dist/helpers/markdownText.d.ts.map +1 -0
  354. package/dist/helpers/markdownText.js +160 -0
  355. package/dist/helpers/markdownText.js.map +1 -0
  356. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  357. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  358. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  359. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  360. package/dist/helpers/readableColors.d.ts +36 -0
  361. package/dist/helpers/readableColors.d.ts.map +1 -0
  362. package/dist/helpers/readableColors.js +116 -0
  363. package/dist/helpers/readableColors.js.map +1 -0
  364. package/dist/helpers/templateItems.d.ts +2 -2
  365. package/dist/helpers/templateItems.d.ts.map +1 -1
  366. package/dist/helpers/templateItems.js +6 -4
  367. package/dist/helpers/templateItems.js.map +1 -1
  368. package/dist/helpers/templates.d.ts +26 -1
  369. package/dist/helpers/templates.d.ts.map +1 -1
  370. package/dist/helpers/templates.js +41 -6
  371. package/dist/helpers/templates.js.map +1 -1
  372. package/dist/helpers/validations.d.ts +9 -0
  373. package/dist/helpers/validations.d.ts.map +1 -1
  374. package/dist/helpers/validations.js +139 -33
  375. package/dist/helpers/validations.js.map +1 -1
  376. package/dist/hooks/useQorusTypes.d.ts +7 -15
  377. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  378. package/dist/hooks/useQorusTypes.js +25 -166
  379. package/dist/hooks/useQorusTypes.js.map +1 -1
  380. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  381. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  382. package/dist/hooks/useReadableIntentShade.js +23 -0
  383. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  384. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  385. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  386. package/dist/hooks/useReadableOpacity.js +17 -0
  387. package/dist/hooks/useReadableOpacity.js.map +1 -0
  388. package/dist/index.d.ts +1 -0
  389. package/dist/index.d.ts.map +1 -1
  390. package/dist/index.js +1 -0
  391. package/dist/index.js.map +1 -1
  392. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  393. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  394. package/dist/tracking/ui/ExperimentCard.js +26 -10
  395. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  396. package/dist/tracking/ui/card.d.ts +2 -2
  397. package/dist/tracking/ui/card.d.ts.map +1 -1
  398. package/dist/tracking/ui/card.js +2 -2
  399. package/dist/tracking/ui/card.js.map +1 -1
  400. package/dist/tracking/ui/readable.d.ts +14 -0
  401. package/dist/tracking/ui/readable.d.ts.map +1 -0
  402. package/dist/tracking/ui/readable.js +60 -0
  403. package/dist/tracking/ui/readable.js.map +1 -0
  404. package/package.json +14 -5
  405. package/.claude/CLAUDE.md +0 -317
  406. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  407. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  408. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  409. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  410. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  411. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  412. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  413. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  414. package/.tasks/INDEX.md +0 -111
  415. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  416. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  417. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  418. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  419. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  420. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  421. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  422. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  423. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  424. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  425. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  426. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  427. package/CODE_OF_CONDUCT.md +0 -105
  428. package/CONTRIBUTING.MD +0 -78
  429. package/SECURITY.md +0 -3
  430. package/chromatic.config.json +0 -5
  431. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  432. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  433. package/design/COMPACT_PARITY.md +0 -85
  434. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  435. package/design/FORM_ENGINE_COMPACT.md +0 -300
  436. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  437. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  438. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  439. package/design/IDE_INTEGRATION.md +0 -64
  440. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  441. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  442. package/design/SMART_EDITOR_UX.md +0 -438
  443. package/design/TRACKING.md +0 -290
  444. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  445. package/src/components/Description/index.tsx +0 -254
  446. package/src/components/Description/markdownRendererContext.tsx +0 -29
  447. package/src/components/FocusedEditing/index.tsx +0 -50
  448. package/src/components/codeSize/index.tsx +0 -79
  449. package/src/components/composer/Composer.stories.tsx +0 -238
  450. package/src/components/composer/Composer.tsx +0 -554
  451. package/src/components/composer/helpers.ts +0 -74
  452. package/src/components/composer/index.ts +0 -2
  453. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  454. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  455. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  456. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  457. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  458. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  459. package/src/components/dpqlEditor/index.ts +0 -41
  460. package/src/components/dpqlEditor/types.ts +0 -203
  461. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  462. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  463. package/src/components/form/engine/CompactRow.tsx +0 -2620
  464. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  465. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  466. package/src/components/form/engine/FormEngine.tsx +0 -4569
  467. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  468. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  469. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  470. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  471. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  472. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  473. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  474. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  475. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  476. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  477. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  478. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  479. package/src/components/form/engine/compactRowContext.ts +0 -148
  480. package/src/components/form/engine/compactRowStyles.ts +0 -898
  481. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  482. package/src/components/form/engine/optionActions.ts +0 -128
  483. package/src/components/form/engine/optionsContext.ts +0 -24
  484. package/src/components/form/engine/readFirst.ts +0 -1077
  485. package/src/components/form/engine/rendererTypes.ts +0 -107
  486. package/src/components/form/engine/revealRow.ts +0 -123
  487. package/src/components/form/engine/rowFocus.ts +0 -101
  488. package/src/components/form/engine/rowMenuContext.ts +0 -159
  489. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  490. package/src/components/form/engine/typeChoices.ts +0 -63
  491. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  492. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  493. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  494. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  495. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  496. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  497. package/src/components/form/engine/variants/variantModel.ts +0 -223
  498. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  499. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  500. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  501. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  502. package/src/components/form/expressions/argumentPresence.ts +0 -213
  503. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  504. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  505. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  506. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  507. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  508. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  509. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  510. package/src/components/form/expressions/builder/index.tsx +0 -1545
  511. package/src/components/form/expressions/builder/item.tsx +0 -89
  512. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  513. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  514. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  515. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  516. package/src/components/form/expressions/mockExpressions.ts +0 -317
  517. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  518. package/src/components/form/expressions/types.ts +0 -110
  519. package/src/components/form/expressions/useExpressions.ts +0 -101
  520. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  521. package/src/components/form/fields/Field.stories.tsx +0 -143
  522. package/src/components/form/fields/Field.tsx +0 -732
  523. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  524. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  525. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  526. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  527. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  528. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  529. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  530. package/src/components/form/fields/binary/Binary.tsx +0 -91
  531. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  532. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  533. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  534. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  535. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  536. package/src/components/form/fields/color/Color.tsx +0 -46
  537. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  538. package/src/components/form/fields/cron/Cron.tsx +0 -80
  539. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  540. package/src/components/form/fields/date/Date.tsx +0 -55
  541. package/src/components/form/fields/emittedValues.ts +0 -70
  542. package/src/components/form/fields/file/File.stories.tsx +0 -161
  543. package/src/components/form/fields/file/File.tsx +0 -227
  544. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  545. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  546. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  547. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  548. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  549. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  550. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  551. package/src/components/form/fields/number/Number.tsx +0 -160
  552. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  553. package/src/components/form/fields/object/Object.tsx +0 -255
  554. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  555. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  556. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  557. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  558. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  559. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  560. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  561. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  562. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  563. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  564. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  565. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  566. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  567. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  568. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  569. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  570. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  571. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  572. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  573. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  574. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  575. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  576. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  577. package/src/components/form/fields/schema-definition/types.ts +0 -185
  578. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  579. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  580. package/src/components/form/fields/select/Select.tsx +0 -624
  581. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  582. package/src/components/form/fields/string/String.stories.tsx +0 -86
  583. package/src/components/form/fields/string/String.tsx +0 -43
  584. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  585. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  586. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  587. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  588. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  589. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  590. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  591. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  592. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  593. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  594. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  595. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  596. package/src/components/form/fields/url/Url.tsx +0 -85
  597. package/src/components/form/index.tsx +0 -47
  598. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  599. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  600. package/src/components/imageLightbox/index.ts +0 -1
  601. package/src/components/log/Log.stories.tsx +0 -333
  602. package/src/components/log/Log.tsx +0 -285
  603. package/src/components/menu/Menu.stories.tsx +0 -155
  604. package/src/components/menu/Menu.tsx +0 -312
  605. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  606. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  607. package/src/components/qonsoleSmartInput/index.ts +0 -16
  608. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  609. package/src/components/qonsoleSmartInput/types.ts +0 -133
  610. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  611. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  612. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  613. package/src/components/searchFilterBar/index.ts +0 -1
  614. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  615. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  616. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  617. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  618. package/src/components/smartEditor/helpers.ts +0 -217
  619. package/src/components/smartEditor/index.ts +0 -35
  620. package/src/components/smartEditor/styling.ts +0 -45
  621. package/src/components/smartEditor/types.ts +0 -211
  622. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  623. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  624. package/src/components/smartEditor/useLspHover.ts +0 -230
  625. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  626. package/src/components/smartEditor/useLspSession.ts +0 -231
  627. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  628. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  629. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  630. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  631. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  632. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  633. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  634. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  635. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  636. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  637. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  638. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  639. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  640. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  641. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  642. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  643. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  644. package/src/components/supportTicket/index.ts +0 -10
  645. package/src/components/supportTicket/meta.ts +0 -206
  646. package/src/components/supportTicket/ticketModel.ts +0 -131
  647. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  648. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  649. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  650. package/src/components/ticketReferences/index.ts +0 -2
  651. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  652. package/src/components/ticketThread/TicketThread.tsx +0 -719
  653. package/src/components/ticketThread/index.ts +0 -6
  654. package/src/contexts/FetchContext.tsx +0 -25
  655. package/src/contexts/ReqraftContext.tsx +0 -9
  656. package/src/contexts/StorageContext.tsx +0 -33
  657. package/src/global.d.ts +0 -4
  658. package/src/helpers/allowedValues.ts +0 -249
  659. package/src/helpers/choiceChip.ts +0 -227
  660. package/src/helpers/common.ts +0 -326
  661. package/src/helpers/dpqlDetection.ts +0 -209
  662. package/src/helpers/expressions.ts +0 -140
  663. package/src/helpers/optionUiTypes.ts +0 -199
  664. package/src/helpers/options.ts +0 -150
  665. package/src/helpers/providerValue.ts +0 -125
  666. package/src/helpers/scrollbar.ts +0 -32
  667. package/src/helpers/singleLineString.ts +0 -61
  668. package/src/helpers/templateItems.ts +0 -81
  669. package/src/helpers/templateText.ts +0 -350
  670. package/src/helpers/templates.ts +0 -602
  671. package/src/helpers/validations.ts +0 -2085
  672. package/src/hooks/useArgSchema.ts +0 -37
  673. package/src/hooks/useCoarsePointer.ts +0 -30
  674. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  675. package/src/hooks/useFetch/useFetch.tsx +0 -154
  676. package/src/hooks/usePhoneViewport.ts +0 -34
  677. package/src/hooks/useQorusTypes.ts +0 -233
  678. package/src/hooks/useReqraftProperty.ts +0 -16
  679. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  680. package/src/hooks/useStorage/useStorage.ts +0 -35
  681. package/src/hooks/useTemplates.ts +0 -123
  682. package/src/hooks/useValidation.ts +0 -9
  683. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  684. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  685. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  686. package/src/index.tsx +0 -86
  687. package/src/providers/FetchProvider.tsx +0 -40
  688. package/src/providers/ReqraftProvider.tsx +0 -52
  689. package/src/providers/StorageProvider.tsx +0 -131
  690. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  691. package/src/stores/currentUser/currentUser.tsx +0 -94
  692. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  693. package/src/stories/Tests/utils.ts +0 -320
  694. package/src/stories/storyNetwork.ts +0 -92
  695. package/src/stories/tracking.tsx +0 -206
  696. package/src/tracking/browser/attach.ts +0 -186
  697. package/src/tracking/browser/env.ts +0 -78
  698. package/src/tracking/core/consent.ts +0 -37
  699. package/src/tracking/core/engagement.ts +0 -47
  700. package/src/tracking/core/experiments.ts +0 -258
  701. package/src/tracking/core/hash.ts +0 -26
  702. package/src/tracking/core/ids.ts +0 -25
  703. package/src/tracking/core/observable.ts +0 -23
  704. package/src/tracking/core/queue.ts +0 -131
  705. package/src/tracking/core/sections.ts +0 -166
  706. package/src/tracking/core/storage.ts +0 -69
  707. package/src/tracking/core/tracker.ts +0 -417
  708. package/src/tracking/core/types.ts +0 -162
  709. package/src/tracking/core/utm.ts +0 -23
  710. package/src/tracking/index.ts +0 -72
  711. package/src/tracking/markup.ts +0 -17
  712. package/src/tracking/react/Experiment.tsx +0 -44
  713. package/src/tracking/react/TrackingProvider.tsx +0 -56
  714. package/src/tracking/react/hooks.ts +0 -106
  715. package/src/tracking/react/index.ts +0 -13
  716. package/src/tracking/testing.ts +0 -108
  717. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  718. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  719. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  720. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  721. package/src/tracking/ui/anchor.ts +0 -180
  722. package/src/tracking/ui/card.ts +0 -464
  723. package/src/tracking/ui/client.ts +0 -117
  724. package/src/tracking/ui/index.ts +0 -77
  725. package/src/tracking/ui/types.ts +0 -110
  726. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  727. package/src/types/Form.ts +0 -29
  728. package/src/types.ts +0 -14
  729. package/src/utils/datetime.ts +0 -10
  730. package/src/utils/fetch.ts +0 -457
  731. package/src/utils/lspClient.ts +0 -711
  732. package/src/utils/lspClient.types.ts +0 -211
  733. package/src/utils/queryUnlessCancelled.ts +0 -28
  734. package/src/utils/websocket.ts +0 -293
  735. package/vite.config.ts +0 -58
  736. package/vitest.config.ts +0 -69
@@ -1,808 +0,0 @@
1
- // Copyright 2026 Qore Technologies, s.r.o.
2
-
3
- import {
4
- ReqoreCallout,
5
- ReqoreControlGroup,
6
- ReqoreMenu,
7
- ReqoreMenuDivider,
8
- ReqoreMenuItem,
9
- ReqoreMessage,
10
- ReqorePanel,
11
- ReqoreSpinner,
12
- useReqoreTheme,
13
- } from '@qoretechnologies/reqore';
14
- import { ReqorePopover } from '@qoretechnologies/reqore/dist/components/Popover';
15
- import {
16
- ReqoreRichTextEditor,
17
- TReqoreRichTextEditorRef,
18
- } from '@qoretechnologies/reqore/dist/components/RichTextEditor';
19
- import { getReadableColor } from '@qoretechnologies/reqore/dist/helpers/colors';
20
- import { IReqoreTooltip } from '@qoretechnologies/reqore/dist/types/global';
21
- import React, {
22
- forwardRef,
23
- memo,
24
- useCallback,
25
- useEffect,
26
- useImperativeHandle,
27
- useMemo,
28
- useReducer,
29
- useRef,
30
- } from 'react';
31
- import { Editor, NodeEntry, Range, Transforms } from 'slate';
32
- import { ReactEditor, RenderLeafProps } from 'slate-react';
33
- import { ILspSignatureHelp } from '../../utils/lspClient.types';
34
- import { useEmittedValues } from '../form/fields/emittedValues';
35
- import { defaultSlateConverter, expandSnippet, lspPositionToOffset } from './helpers';
36
- import { MarkdownDoc } from './MarkdownDoc';
37
- import { COMPLETION_KIND_INTENTS, SMART_EDITOR_OVERLAY_EFFECT } from './styling';
38
- import { ISlateElement, ISmartEditorProps, TCompletionInserter } from './types';
39
- import { ICompletionDropdownItem, useLspAutocomplete } from './useLspAutocomplete';
40
- import { severityToIntent, useLspDiagnosticDecorations } from './useLspDiagnosticDecorations';
41
- import { useLspHover } from './useLspHover';
42
- import { useLspSemanticTokens } from './useLspSemanticTokens';
43
- import { useLspSignatureHelp } from './useLspSignatureHelp';
44
-
45
- // One-Dark-ish palette keyed off the LSP semantic-token legend; absent
46
- // types fall through to Slate's default text colour.
47
- const SEMANTIC_TOKEN_COLORS: Record<string, string> = {
48
- keyword: '#c678dd', // purple — control flow, `in`, `not`, `between`, …
49
- operator: '#56b6c2', // cyan — ==, !=, &&, ||, =~, !~, …
50
- string: '#98c379', // green — "Alice", 'foo'
51
- number: '#d19a66', // orange — 18, 3.14, 2e-3
52
- comment: '#5c6370', // grey
53
- variable: '#e06c75', // red-pink — `@field` references
54
- parameter: '#e06c75', // red-pink — function parameters
55
- property: '#e06c75', // red-pink — record properties
56
- function: '#e5c07b', // yellow — DPQL built-ins (abs, now, coalesce…)
57
- method: '#e5c07b', // yellow
58
- class: '#e5c07b', // yellow — Qonsole resource names (`services`, …)
59
- type: '#e5c07b', // yellow
60
- regexp: '#d16969', // coral — kept distinct from operator cyan + variable pink
61
- modifier: '#c678dd', // purple
62
- decorator: '#c678dd', // purple
63
- namespace: '#e5c07b', // yellow
64
- };
65
-
66
- // Kind chip + a Warning chip (Qonsole flags mutating verbs) for a
67
- // completion row; undefined when neither applies.
68
- function buildKindBadge(
69
- item: ICompletionDropdownItem
70
- ): Record<string, unknown> | Array<Record<string, unknown>> | undefined {
71
- const kindIntent =
72
- item.metadata?.kind !== undefined ? COMPLETION_KIND_INTENTS[item.metadata.kind] : undefined;
73
- const kindBadge =
74
- item.kindLabel ?
75
- {
76
- label: item.kindLabel,
77
- minimal: true as const,
78
- size: 'small' as const,
79
- intent: kindIntent,
80
- }
81
- : null;
82
- const warningBadge =
83
- item.warning ?
84
- {
85
- label: 'Warning',
86
- size: 'small' as const,
87
- intent: 'warning' as const,
88
- tooltip: item.warning,
89
- }
90
- : null;
91
- if (warningBadge && kindBadge) return [kindBadge, warningBadge];
92
- if (warningBadge) return [warningBadge];
93
- if (kindBadge) return kindBadge;
94
- return undefined;
95
- }
96
-
97
- // Tooltip prop rendering a row's LSP `documentation` (markdown/plaintext),
98
- // or undefined when there is none.
99
- function buildDocTooltip(item: ICompletionDropdownItem) {
100
- const doc = item.documentation;
101
- if (!doc) return undefined;
102
- const isMarkdown = typeof doc === 'object' && doc !== null && doc.kind === 'markdown';
103
- const text = typeof doc === 'string' ? doc : (doc?.value ?? '');
104
- if (!text) return undefined;
105
- return {
106
- content: <MarkdownDoc content={text} markdown={isMarkdown} />,
107
- placement: 'right' as const,
108
- delay: 200,
109
- // The cast covers popover props missing from the older tooltip type.
110
- flat: true,
111
- transparent: true,
112
- backgroundBlur: 20,
113
- } as IReqoreTooltip;
114
- }
115
-
116
- // Applies the server's `textEdit` (replacing the typed partial token so
117
- // `-` + `--desc=` doesn't become `---desc=`), else inserts at the cursor.
118
- // DPQL/Qonsole wrappers override this to insert tag chips.
119
- const defaultCompletionInserter: TCompletionInserter = (item, editor, ctx) => {
120
- const rawText = item.textEdit?.newText ?? item.insertText ?? item.label;
121
- // Expand LSP snippet placeholders so `slice(${1:List Value})$0` doesn't
122
- // leak `${…}$0` into the document.
123
- const newText = item.insertTextFormat === 2 ? expandSnippet(rawText) : rawText;
124
-
125
- // Replace mode — atomically swap the node at the chip's path.
126
- if (ctx.replacementPath) {
127
- const path = ctx.replacementPath;
128
- Editor.withoutNormalizing(editor, () => {
129
- Transforms.removeNodes(editor, { at: path });
130
- Transforms.insertNodes(editor, [{ text: newText }] as any, {
131
- at: path,
132
- select: true,
133
- });
134
- });
135
- try {
136
- ReactEditor.focus(editor);
137
- } catch {
138
- // Editor may not be focusable in this render cycle.
139
- }
140
- return;
141
- }
142
-
143
- if (item.textEdit) {
144
- const startOffset = lspPositionToOffset(ctx.plainText, item.textEdit.range.start);
145
- // Delete the partial token between the edit-range start and the caret.
146
- const charsToDelete = Math.max(0, ctx.cursorOffset - startOffset);
147
- for (let i = 0; i < charsToDelete; i++) {
148
- Editor.deleteBackward(editor, { unit: 'character' });
149
- }
150
- }
151
-
152
- Transforms.insertText(editor, newText);
153
- try {
154
- ReactEditor.focus(editor);
155
- } catch {
156
- // Editor may not be focused.
157
- }
158
- };
159
-
160
- // Module-scoped so the reference is stable across renders — an inline
161
- // object would defeat ReqoreMenuItem's memoization.
162
- const COMPLETION_ITEM_STYLE: React.CSSProperties = { fontFamily: 'monospace' };
163
-
164
- interface ICompletionMenuItemProps {
165
- item: ICompletionDropdownItem;
166
- isFocused: boolean;
167
- onSelect: (item: ICompletionDropdownItem) => void;
168
- }
169
-
170
- // Memoized completion row so badge/tooltip derivation runs once per item,
171
- // not on every SmartEditor re-render.
172
- const CompletionMenuItem = memo(({ item, isFocused, onSelect }: ICompletionMenuItemProps) => {
173
- const badge = useMemo(() => buildKindBadge(item), [item]);
174
- const tooltip = useMemo(() => buildDocTooltip(item), [item]);
175
- const handleClick = useCallback(() => onSelect(item), [onSelect, item]);
176
-
177
- return (
178
- <ReqoreMenuItem
179
- icon={item.icon as any}
180
- label={item.label}
181
- description={item.description}
182
- badge={badge as any}
183
- tooltip={tooltip as any}
184
- selected={isFocused}
185
- active={isFocused}
186
- minimal
187
- scrollIntoView={isFocused}
188
- onClick={handleClick}
189
- compact
190
- style={COMPLETION_ITEM_STYLE}
191
- />
192
- );
193
- });
194
- CompletionMenuItem.displayName = 'CompletionMenuItem';
195
-
196
- interface ISignatureHelpPillProps {
197
- signature: ILspSignatureHelp;
198
- position: { left: number; top: number };
199
- }
200
-
201
- // Memoized signature pill. Prefers ABOVE the caret line, falling back to
202
- // BELOW when that would clip the viewport top; horizontally clamped to the
203
- // viewport.
204
- const SignatureHelpPill = memo(({ signature, position }: ISignatureHelpPillProps) => {
205
- const theme = useReqoreTheme();
206
-
207
- const sig = signature.signatures[signature.activeSignature ?? 0];
208
- if (!sig) return null;
209
-
210
- const activeIdx = sig.activeParameter ?? signature.activeParameter ?? 0;
211
- const params = sig.parameters ?? [];
212
- const activeParam = params[activeIdx];
213
-
214
- const activeParamColor = theme.intents?.info ?? getReadableColor(theme);
215
-
216
- // Bold the active parameter inside the label — by [start, end] tuple or
217
- // by literal-name match. Plain `<strong>` (not `ReqoreSpan`, whose
218
- // `inline-block` would break the flowing label text).
219
- let label: React.ReactNode = sig.label;
220
- if (activeParam) {
221
- if (Array.isArray(activeParam.label)) {
222
- const [start, end] = activeParam.label;
223
- label = (
224
- <>
225
- {sig.label.slice(0, start)}
226
- <strong style={{ color: activeParamColor }}>{sig.label.slice(start, end)}</strong>
227
- {sig.label.slice(end)}
228
- </>
229
- );
230
- } else {
231
- const name = activeParam.label;
232
- const idx = sig.label.indexOf(name);
233
- if (idx >= 0) {
234
- label = (
235
- <>
236
- {sig.label.slice(0, idx)}
237
- <strong style={{ color: activeParamColor }}>{name}</strong>
238
- {sig.label.slice(idx + name.length)}
239
- </>
240
- );
241
- }
242
- }
243
- }
244
-
245
- const paramDoc =
246
- activeParam && activeParam.documentation ?
247
- typeof activeParam.documentation === 'string' ?
248
- activeParam.documentation
249
- : activeParam.documentation.value
250
- : null;
251
-
252
- const PILL_HEIGHT_ESTIMATE = 64;
253
- const PILL_WIDTH_ESTIMATE = 480; // matches maxWidth below
254
- const VIEWPORT_MARGIN = 8;
255
- const lineHeightEstimate = 18;
256
- const placeBelow = position.top < PILL_HEIGHT_ESTIMATE + 8;
257
- const pillTop = placeBelow ? position.top + lineHeightEstimate + 4 : position.top - 6;
258
- const viewportWidth = typeof window !== 'undefined' ? window.innerWidth : 1920;
259
- const maxLeft = viewportWidth - PILL_WIDTH_ESTIMATE - VIEWPORT_MARGIN;
260
- const pillLeft = Math.max(VIEWPORT_MARGIN, Math.min(position.left, maxLeft));
261
-
262
- return (
263
- <ReqorePanel
264
- // Remount on placement flip so `transform` recalculates cleanly.
265
- key={`sig-${position.left}-${position.top}-${placeBelow}`}
266
- size='small'
267
- opacity={0.85}
268
- customTheme={{ main: '#11181c' }}
269
- blur={5}
270
- style={{
271
- position: 'fixed',
272
- top: pillTop,
273
- left: pillLeft,
274
- transform: placeBelow ? undefined : 'translate(0, -100%)',
275
- maxWidth: 480,
276
- minWidth: 280,
277
- fontSize: 12,
278
- boxShadow: '0 4px 16px rgba(0,0,0,0.3)',
279
- pointerEvents: 'none',
280
- zIndex: 100,
281
- }}
282
- >
283
- <ReqoreCallout
284
- size='small'
285
- paddingSize='tiny'
286
- style={{ fontFamily: 'monospace' }}
287
- label={label}
288
- />
289
-
290
- {paramDoc && (
291
- <div style={{ marginTop: 4, opacity: 0.85 }}>
292
- <MarkdownDoc content={paramDoc} markdown />
293
- </div>
294
- )}
295
- </ReqorePanel>
296
- );
297
- });
298
- SignatureHelpPill.displayName = 'SignatureHelpPill';
299
-
300
- export const SmartEditor = forwardRef<TReqoreRichTextEditorRef, ISmartEditorProps>(
301
- (
302
- {
303
- session,
304
- value,
305
- onChange,
306
- decorate,
307
- customRenderLeaf,
308
- tagRenderer,
309
- onTagClick,
310
- triggerCharacters,
311
- converter = defaultSlateConverter,
312
- completionInserter = defaultCompletionInserter,
313
- topActions,
314
- height,
315
- readOnly = false,
316
- showDiagnostics = true,
317
- onBlur,
318
- loadingIndicator,
319
- enableHover = true,
320
- isLoading = false,
321
- enableSignatureHelp = true,
322
- },
323
- ref
324
- ) => {
325
- const theme = useReqoreTheme();
326
- const editorRef = useRef<TReqoreRichTextEditorRef>(null);
327
- const lastPlainTextRef = useRef(value);
328
- // Cached Slate nodes, refreshed only on EXTERNAL value changes — not on
329
- // the typing echo. Passing a fresh ref every keystroke re-runs
330
- // ReqoreRichTextEditor's tokenizer mid-token (typed `@s` collapses to a
331
- // tag chip, making the rest of the field name impossible to type).
332
- const slateValueRef = useRef<ISlateElement[] | null>(null);
333
- /* Counts the node trees the editor has reported. The tree a value converts
334
- to is not always the tree the editor holds: Slate normalises a value set
335
- from outside — a leading chip gains an empty text leaf before it — without
336
- changing its text, so `value` never changes and the cache above kept the
337
- tree the editor no longer had. Every offset computed from it (token
338
- colours, diagnostics, signature help) then pointed one leaf off: a Text
339
- view seeded with `"$local:name" == "John"` was never highlighted. */
340
- const [editorTreeVersion, noteEditorTree] = useReducer((count: number) => count + 1, 0);
341
-
342
- useImperativeHandle(ref, () => editorRef.current as TReqoreRichTextEditorRef, []);
343
-
344
- // Gates all LSP hooks on both the connection (`isReady`) and any
345
- // wrapper context binding (`isContextReady`) — without the latter,
346
- // typing `@` in the ~50–200ms before `dpql/setContext` resolves hits
347
- // the server context-less and the dropdown silently closes. Generic
348
- // sessions set `isContextReady: true`, collapsing this to `isReady`.
349
- const lspReady = session.isReady && session.isContextReady;
350
-
351
- const autocomplete = useLspAutocomplete({
352
- getCompletions: session.getCompletions,
353
- isReady: lspReady,
354
- triggerCharacters,
355
- converter,
356
- inserter: completionInserter,
357
- });
358
-
359
- const hover = useLspHover(session, editorRef as React.RefObject<any>, converter, {
360
- enabled: enableHover,
361
- });
362
-
363
- /* What the editor has reported and the host has not handed back yet. A host can hand an emit back
364
- after the next key is already in the editor - one that debounces, or a render that lands between
365
- two keys - and that stale value is not a change: rebuilding the document from it replaced the text
366
- and put the caret at its end, so the next key followed the stale text (`name` typed came out
367
- `nae`). See `EmittedValues`. */
368
- const emitted = useEmittedValues<string>();
369
- /* The value the host last handed down. The editor re-renders between keys for its own reasons (it
370
- has just reported a new tree), and the host has not caught up then: the value it still holds is
371
- not a change either. */
372
- // nothing until the first value is committed, so the server is sent the first value too
373
- const committedValueRef = useRef<string | undefined>(undefined);
374
-
375
- const slateValue = useMemo(() => {
376
- // Reuse the cache unless the host handed down something new: the same value again, the editor's
377
- // own typing echo - the latest, or one still in flight - is not
378
- if (
379
- slateValueRef.current !== null &&
380
- (value === committedValueRef.current || value === lastPlainTextRef.current || emitted.includes(value))
381
- ) {
382
- return slateValueRef.current;
383
- }
384
- const next = converter.toSlateNodes(value);
385
- slateValueRef.current = next;
386
- return next;
387
- // `editorTreeVersion` re-reads the cache once the editor reports its own tree.
388
- }, [value, converter, editorTreeVersion]);
389
-
390
- /* A value set from outside is a change to the document as much as typing
391
- is — a Text view seeded after mount, a Preview following the author. The
392
- server colours and diagnoses its own copy of the text, so it must hold
393
- this one; typing already sent its text, and is not resent. */
394
- const { didChange: syncDocument } = session;
395
- useEffect(() => {
396
- // the echo of an emit is acknowledged, and is not sent: the server already has the newer text
397
- // typing sent; anything else is a change from outside
398
- if (committedValueRef.current === value) return;
399
- committedValueRef.current = value;
400
- if (emitted.isEcho(value)) return;
401
- lastPlainTextRef.current = value;
402
- syncDocument(value);
403
- }, [syncDocument, value, emitted]);
404
-
405
- const diagnosticDecorate = useLspDiagnosticDecorations(
406
- session.diagnostics,
407
- converter,
408
- slateValue
409
- );
410
-
411
- // Server-driven syntax highlighting (replaces the old client-side regex
412
- // highlighter — see design doc §7).
413
- const semanticDecorate = useLspSemanticTokens(session, converter, slateValue);
414
-
415
- // No-ops when the server doesn't advertise `signatureHelpProvider`.
416
- const signatureHelp = useLspSignatureHelp(
417
- session,
418
- editorRef as React.RefObject<any>,
419
- converter,
420
- slateValue,
421
- { enabled: enableSignatureHelp }
422
- );
423
-
424
- const composedDecorate = useCallback(
425
- (entry: NodeEntry): Range[] => {
426
- const userRanges = decorate?.(entry) ?? [];
427
- const semanticRanges = semanticDecorate(entry);
428
- const diagRanges = showDiagnostics ? diagnosticDecorate(entry) : [];
429
- // Diagnostics last so the wavy underline isn't overdrawn.
430
- return [...userRanges, ...semanticRanges, ...diagRanges];
431
- },
432
- [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics]
433
- );
434
-
435
- // Paints semantic-token colours and diagnostic underlines, falling
436
- // through to the consumer's `customRenderLeaf` for everything else.
437
- const renderLeafWithMarks = useCallback(
438
- (props: RenderLeafProps) => {
439
- const leaf = props.leaf as RenderLeafProps['leaf'] & {
440
- error?: true;
441
- errorMessage?: string;
442
- severity?: number;
443
- tokenType?: string;
444
- tokenModifiers?: string[];
445
- };
446
-
447
- let child =
448
- customRenderLeaf ?
449
- customRenderLeaf(props)
450
- : <span {...props.attributes}>{props.children}</span>;
451
-
452
- if (leaf.tokenType) {
453
- const color = SEMANTIC_TOKEN_COLORS[leaf.tokenType];
454
- const italic = leaf.tokenModifiers?.includes('declaration');
455
- const dim = leaf.tokenModifiers?.includes('deprecated');
456
- if (color || italic || dim) {
457
- child = (
458
- <span
459
- style={{
460
- color,
461
- fontStyle: italic ? 'italic' : undefined,
462
- opacity: dim ? 0.6 : undefined,
463
- textDecoration: dim ? 'line-through' : undefined,
464
- }}
465
- >
466
- {child}
467
- </span>
468
- );
469
- }
470
- }
471
-
472
- // Underline outermost so it overlays the syntax colour; hex
473
- // fallbacks cover host themes that omit a diagnostic intent.
474
- if (leaf.error) {
475
- const underlineColor =
476
- leaf.severity === 2 ? (theme.intents?.warning ?? '#f0a500')
477
- : leaf.severity && leaf.severity >= 3 ? (theme.intents?.info ?? '#3a86ff')
478
- : (theme.intents?.danger ?? '#d62828');
479
- child = (
480
- <span
481
- data-testid='diagnostic-underline'
482
- title={leaf.errorMessage}
483
- style={{
484
- textDecoration: 'underline wavy',
485
- textDecorationColor: underlineColor,
486
- textDecorationSkipInk: 'none',
487
- }}
488
- >
489
- {child}
490
- </span>
491
- );
492
- }
493
-
494
- return child;
495
- },
496
- [customRenderLeaf, theme]
497
- );
498
-
499
- const handleSlateChange = useCallback(
500
- (newNodes: ISlateElement[]) => {
501
- const plainText = converter.fromSlateNodes(newNodes);
502
-
503
- // A selection change reports the same tree; anything else is the tree
504
- // the editor now holds, and the one every offset is computed against.
505
- if (newNodes !== slateValueRef.current) {
506
- slateValueRef.current = newNodes;
507
- noteEditorTree();
508
- }
509
-
510
- if (plainText !== lastPlainTextRef.current) {
511
- lastPlainTextRef.current = plainText;
512
- emitted.record(plainText);
513
- // CRITICAL: the next render's `value` equals `lastPlainTextRef` (the
514
- // typing echo), so `slateValue`'s cache returns the live nodes set
515
- // above — leave them stale and downstream hooks (signature help,
516
- // semantic tokens) never recompute, so the signature pill's active
517
- // parameter never advances.
518
- onChange(plainText);
519
- session.didChange(plainText);
520
- }
521
-
522
- if (editorRef.current && !readOnly) {
523
- autocomplete.onSlateChange(editorRef.current as any, newNodes);
524
- }
525
- },
526
- [onChange, session, readOnly, autocomplete, converter, emitted]
527
- );
528
-
529
- // Replace mode: open the dropdown at the chip's DOM rect (not the
530
- // editor selection — clicks on a Slate VOID inline don't reliably
531
- // update `editor.selection`) and atomically swap the chip on select.
532
- const handleTagClickDefault = useCallback(
533
- (tag: ISlateElement, editor: TReqoreRichTextEditorRef) => {
534
- if (readOnly) return;
535
- try {
536
- const tagPath = ReactEditor.findPath(editor, tag as any);
537
- const domNode = ReactEditor.toDOMNode(editor, tag as any);
538
- const rect = (domNode as HTMLElement).getBoundingClientRect();
539
- autocomplete.openAtChip(editor, tagPath, {
540
- left: rect.left,
541
- bottom: rect.bottom,
542
- });
543
- } catch {
544
- // Tag may have been removed mid-render — ignore.
545
- }
546
- },
547
- [readOnly, autocomplete]
548
- );
549
-
550
- const resolvedTagClick = onTagClick ?? handleTagClickDefault;
551
-
552
- // ReqoreRichTextEditor memoizes `renderElement` without `onTagClick` in
553
- // its deps, so it captures the FIRST render's handler forever (stale
554
- // `isReady` etc.). Pass a stable wrapper that indirects through a ref
555
- // to the latest handler.
556
- const resolvedTagClickRef = useRef(resolvedTagClick);
557
- resolvedTagClickRef.current = resolvedTagClick;
558
- const stableOnTagClick = useCallback((tag: any) => {
559
- if (editorRef.current) {
560
- resolvedTagClickRef.current(tag as ISlateElement, editorRef.current);
561
- }
562
- }, []);
563
-
564
- const handleCompletionSelect = useCallback(
565
- (item: ICompletionDropdownItem) => {
566
- if (!editorRef.current) return;
567
- autocomplete.onItemSelect(item, editorRef.current as any);
568
- },
569
- [autocomplete]
570
- );
571
-
572
- // Flatten groups into rows carrying a flat index to compare against
573
- // `focusedIndex` (which is flat across all groups).
574
- const completionGroups = useMemo(() => {
575
- let flatIndex = 0;
576
- return autocomplete.groups.map((group) => ({
577
- label: group.label,
578
- items: group.items.map((item) => ({ item, index: flatIndex++ })),
579
- }));
580
- }, [autocomplete.groups]);
581
-
582
- // Overlay shown while the session connects, a context binding resolves,
583
- // or the wrapper signals `isLoading` (e.g. DpqlEditor awaiting
584
- // `dpql/toRichtext`). The editor stays mounted underneath;
585
- // `loadingIndicator === null` opts out, a non-null value overrides.
586
- const showLoadingOverlay =
587
- (!session.isReady || !session.isContextReady || isLoading) && loadingIndicator !== null;
588
- const defaultLoadingLabel =
589
- !session.isReady ? 'Connecting to language server…'
590
- : !session.isContextReady ? 'Loading schema…'
591
- : 'Loading…';
592
- // Built only when shown — skips a ReqoreSpinner alloc on every render
593
- // of an already-connected editor.
594
- const overlayContent =
595
- !showLoadingOverlay ? null
596
- : loadingIndicator !== undefined && loadingIndicator !== null ? loadingIndicator
597
- : <ReqoreSpinner
598
- iconColor='info:lighten:2'
599
- size='small'
600
- centered
601
- labelEffect={{ textSize: 'small' }}
602
- >
603
- {defaultLoadingLabel}
604
- </ReqoreSpinner>;
605
-
606
- return (
607
- <ReqoreControlGroup vertical fluid>
608
- {topActions}
609
- <div style={{ position: 'relative' }}>
610
- <ReqoreRichTextEditor
611
- ref={editorRef}
612
- value={slateValue as any}
613
- onChange={handleSlateChange as any}
614
- readOnly={readOnly}
615
- customRenderLeaf={renderLeafWithMarks}
616
- decorate={composedDecorate}
617
- getTagProps={tagRenderer as any}
618
- onTagClick={stableOnTagClick}
619
- onBlur={onBlur}
620
- panelProps={{
621
- fluid: true,
622
- flat: true,
623
- style: {
624
- // Auto-grow: the editor sizes to its content and grows
625
- // as lines are added. `height` is an optional *minimum*
626
- // floor (e.g. a multi-line code editor); when omitted,
627
- // a single comfortable line so the empty field stays
628
- // clickable and the diagnostics panel hugs the input
629
- // instead of sitting below a tall reserved box.
630
- minHeight: height ?? '2.4em',
631
- fontFamily: 'monospace',
632
- fontSize: '13px',
633
- },
634
- }}
635
- />
636
- {showLoadingOverlay && (
637
- <div
638
- // Absolutely-positioned, centred panel covering the
639
- // editor body. `backdrop-filter: blur` matches the
640
- // 20px backdrop blur Reqore uses for drawers — keeps
641
- // the editor content faintly readable underneath while
642
- // signalling "this surface is paused". Pointer events
643
- // pass through; the LSP-dependent paths short-circuit
644
- // on `!isReady` / `!isContextReady` anyway.
645
- style={{
646
- position: 'absolute',
647
- inset: 0,
648
- display: 'flex',
649
- alignItems: 'center',
650
- justifyContent: 'center',
651
- background: 'rgba(10, 10, 10, 0.35)',
652
- backdropFilter: 'blur(4px)',
653
- WebkitBackdropFilter: 'blur(4px)',
654
- borderRadius: 4,
655
- pointerEvents: 'none',
656
- zIndex: 2,
657
- }}
658
- >
659
- {overlayContent}
660
- </div>
661
- )}
662
- {autocomplete.isOpen &&
663
- (autocomplete.items.length > 0 ||
664
- autocomplete.isReplaceMode ||
665
- autocomplete.isFetching) && (
666
- <ReqorePopover
667
- key={autocomplete.popoverKey}
668
- component='span'
669
- wrapperStyle={{
670
- // `fixed` anchor at the cursor's screen coords — avoids
671
- // parent-offset math.
672
- position: 'fixed',
673
- top: autocomplete.position.top,
674
- left: autocomplete.position.left,
675
- width: '1px',
676
- height: '1px',
677
- pointerEvents: 'none',
678
- }}
679
- content={
680
- <ReqoreMenu
681
- rounded
682
- flat
683
- maxHeight='300px'
684
- width='300px'
685
- effect={SMART_EDITOR_OVERLAY_EFFECT}
686
- customTheme={{ main: '#1e0d29' }}
687
- >
688
- {autocomplete.items.length === 0 &&
689
- (autocomplete.isReplaceMode || autocomplete.isFetching) && (
690
- <ReqoreMenuItem
691
- icon='LoaderLine'
692
- label={
693
- !session.isReady ? 'Connecting to language server…'
694
- : !session.isContextReady ?
695
- 'Loading schema…'
696
- : autocomplete.isFetching ?
697
- 'Loading completions…'
698
- : 'No alternatives available'
699
- }
700
- disabled
701
- compact
702
- />
703
- )}
704
- {completionGroups.map((group) => (
705
- <React.Fragment key={group.label || '_default'}>
706
- {group.label && (
707
- <ReqoreMenuDivider
708
- label={group.label}
709
- // @ts-expect-error — intent type not in older Reqore
710
- intent='muted'
711
- />
712
- )}
713
- {group.items.map(({ item, index }) => (
714
- <CompletionMenuItem
715
- key={item.value}
716
- item={item}
717
- isFocused={index === autocomplete.focusedIndex}
718
- onSelect={handleCompletionSelect}
719
- />
720
- ))}
721
- </React.Fragment>
722
- ))}
723
- </ReqoreMenu>
724
- }
725
- openOnMount
726
- noArrow
727
- placement='bottom-start'
728
- handler='click'
729
- closeOnOutsideClick
730
- closeOnInsideClick={false}
731
- minWidth='300px'
732
- flat
733
- // Transparent so the popover wrapper doesn't frame the menu.
734
- transparent
735
- onToggleChange={autocomplete.handleExternalClose}
736
- />
737
- )}
738
- {hover.hoverContent && hover.hoverPosition && (
739
- // Non-interactive (`pointerEvents: none`) so typing/clicking
740
- // doesn't dismiss it via a focus trap.
741
- <ReqorePopover
742
- key={`hover-${hover.hoverPosition.left}-${hover.hoverPosition.top}`}
743
- component='span'
744
- wrapperStyle={{
745
- position: 'fixed',
746
- top: hover.hoverPosition.top,
747
- left: hover.hoverPosition.left,
748
- width: '1px',
749
- height: '1px',
750
- pointerEvents: 'none',
751
- }}
752
- content={
753
- <div style={{ padding: 4 }}>
754
- <MarkdownDoc
755
- content={hover.hoverContent.value}
756
- markdown={hover.hoverContent.kind === 'markdown'}
757
- />
758
- </div>
759
- }
760
- openOnMount
761
- noArrow
762
- placement='top'
763
- handler='hover'
764
- closeOnOutsideClick
765
- minWidth='220px'
766
- flat
767
- transparent
768
- backgroundBlur={20}
769
- onToggleChange={(open: boolean) => {
770
- if (!open) hover.clearHover();
771
- }}
772
- />
773
- )}
774
- {signatureHelp.signature && signatureHelp.position && (
775
- <SignatureHelpPill
776
- signature={signatureHelp.signature}
777
- position={signatureHelp.position}
778
- />
779
- )}
780
- </div>
781
- {showDiagnostics && session.diagnostics.length > 0 && (
782
- // One ReqoreMessage per diagnostic, severity → intent. Same
783
- // `session.diagnostics` source as the inline underline above.
784
- <ReqoreControlGroup vertical fluid size='small'>
785
- {session.diagnostics.map((diag, i) => (
786
- <ReqoreMessage
787
- key={`${diag.range.start.line}:${diag.range.start.character}:${i}`}
788
- intent={severityToIntent(diag.severity)}
789
- icon={
790
- diag.severity === 2 ? 'AlertLine'
791
- : diag.severity && diag.severity >= 3 ?
792
- 'InformationLine'
793
- : 'ErrorWarningLine'
794
- }
795
- size='small'
796
- opaque={false}
797
- >
798
- {diag.message}
799
- </ReqoreMessage>
800
- ))}
801
- </ReqoreControlGroup>
802
- )}
803
- </ReqoreControlGroup>
804
- );
805
- }
806
- );
807
-
808
- SmartEditor.displayName = 'SmartEditor';