@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,758 +0,0 @@
1
- // Copyright 2026 Qore Technologies, s.r.o.
2
-
3
- import { debounce } from 'lodash';
4
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
5
- import { BaseEditor, Transforms } from 'slate';
6
- import { HistoryEditor } from 'slate-history';
7
- import { ReactEditor } from 'slate-react';
8
- import { ILspCompletionItem } from '../../utils/lspClient.types';
9
- import { mapCompletionKindToIcon } from './helpers';
10
- import { ISlateConverter, ISlateElement, TCompletionInserter } from './types';
11
-
12
- const DEFAULT_TRIGGER_CHARS = new Set(['.', ':', ' ']);
13
- const DEBOUNCE_MS = 150;
14
- // Defer `isFetching=true` so the "Loading…" stub only shows for genuinely
15
- // slow responses; sub-250ms responses never set the flag.
16
- const LOADER_DELAY_MS = 250;
17
-
18
- const COMPLETION_KIND_LABELS: Record<number, string> = {
19
- 2: 'Methods',
20
- 3: 'Functions',
21
- 5: 'Fields',
22
- 6: 'Variables',
23
- 14: 'Keywords',
24
- 15: 'Snippets',
25
- };
26
-
27
- const COMPLETION_KIND_CHIPS: Record<number, string> = {
28
- 1: 'Text',
29
- 2: 'Method',
30
- 3: 'Function',
31
- 4: 'Constructor',
32
- 5: 'Field',
33
- 6: 'Variable',
34
- 7: 'Class',
35
- 8: 'Interface',
36
- 9: 'Module',
37
- 10: 'Property',
38
- 11: 'Unit',
39
- 12: 'Value',
40
- 13: 'Enum',
41
- 14: 'Keyword',
42
- 15: 'Snippet',
43
- 16: 'Color',
44
- 17: 'File',
45
- 18: 'Reference',
46
- 19: 'Folder',
47
- 20: 'EnumMember',
48
- 21: 'Constant',
49
- 22: 'Struct',
50
- 23: 'Event',
51
- 24: 'Operator',
52
- 25: 'TypeParameter',
53
- };
54
-
55
- export interface ICompletionDropdownItem {
56
- label: string;
57
- value: string;
58
- icon?: string;
59
- description?: string;
60
- documentation?: ILspCompletionItem['documentation'];
61
- kindLabel?: string;
62
- // Non-standard LSP field; Qonsole emits it on mutating verbs.
63
- warning?: string;
64
- raw: ILspCompletionItem;
65
- metadata?: {
66
- insertTextFormat?: number;
67
- retrigger?: boolean;
68
- kind?: number;
69
- };
70
- }
71
-
72
- export interface ICompletionGroup {
73
- label: string;
74
- items: ICompletionDropdownItem[];
75
- }
76
-
77
- export interface IUseLspAutocompleteOptions {
78
- /** Function that requests completions at a plain-text offset. */
79
- getCompletions: (plainText: string, offset: number) => Promise<ILspCompletionItem[]>;
80
- /** Whether the LSP session is ready to serve requests. */
81
- isReady: boolean;
82
- /** Characters that open the dropdown. Defaults to `{., :, space}`. */
83
- triggerCharacters?: Set<string>;
84
- /** Converter for Slate ↔ plain text and cursor-offset math. */
85
- converter: ISlateConverter;
86
- /**
87
- * Called when the user selects an item. Wrappers control whether the
88
- * value is inserted as a tag element, plain text, with re-trigger, etc.
89
- */
90
- inserter: TCompletionInserter;
91
- }
92
-
93
- export interface IUseLspAutocompleteResult {
94
- items: ICompletionDropdownItem[];
95
- groups: ICompletionGroup[];
96
- isOpen: boolean;
97
- // True while anchored at a chip (via `openAtChip`); keeps the popover
98
- // open with a stub even when `items` is empty, unlike normal typing.
99
- isReplaceMode: boolean;
100
- isFetching: boolean;
101
- focusedIndex: number;
102
- close: () => void;
103
- onSlateChange: (
104
- editor: BaseEditor & ReactEditor & HistoryEditor,
105
- nodes: ISlateElement[]
106
- ) => void;
107
- onItemSelect: (
108
- item: ICompletionDropdownItem,
109
- editor: BaseEditor & ReactEditor & HistoryEditor
110
- ) => void;
111
- // Open in "replace mode" anchored at an existing tag chip; `chipRect`
112
- // is the chip's viewport rect, `chipPath` is forwarded to the inserter.
113
- openAtChip: (
114
- editor: BaseEditor & ReactEditor & HistoryEditor,
115
- chipPath: number[],
116
- chipRect: { left: number; bottom: number }
117
- ) => void;
118
- // Drops the spurious close Reqore's outside-click detector fires on the
119
- // same click that opened the popover; without it the chip click would
120
- // open then immediately close.
121
- handleExternalClose: (open: boolean) => void;
122
- // Bumped on every (re)open; used as the ReqorePopover `key` to force a
123
- // fresh mount so its internal `showing` state stays in sync with ours.
124
- popoverKey: number;
125
- position: { top: number; left: number };
126
- }
127
-
128
- export function useLspAutocomplete(
129
- opts: IUseLspAutocompleteOptions
130
- ): IUseLspAutocompleteResult {
131
- const {
132
- getCompletions,
133
- isReady,
134
- triggerCharacters = DEFAULT_TRIGGER_CHARS,
135
- converter,
136
- inserter,
137
- } = opts;
138
-
139
- const [items, setItems] = useState<ICompletionDropdownItem[]>([]);
140
- const [isOpen, setIsOpen] = useState(false);
141
- const [position, setPosition] = useState({ top: 0, left: 0 });
142
- const [focusedIndex, setFocusedIndex] = useState(0);
143
- const [isFetching, setIsFetching] = useState(false);
144
- // Handle for the deferred `setIsFetching(true)`; cleared on resolve or
145
- // close so the loader never flashes on a fast-resolved request.
146
- const fetchingTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
147
- // Partial token typed since the trigger opened the dropdown; the list
148
- // narrows to items whose `filterText || label` matches it.
149
- const [filterPrefix, setFilterPrefix] = useState('');
150
- const focusedIndexRef = useRef(0);
151
- const editorRef = useRef<(BaseEditor & ReactEditor & HistoryEditor) | null>(null);
152
- // "Replace mode": the user clicked a chip and the chosen completion
153
- // should replace that node. Holds the chip's Slate path, consumed by
154
- // the inserter via `ctx.replacementPath`.
155
- const replacingChipPathRef = useRef<number[] | null>(null);
156
- // Holds a chip-click request made before `isReady`; fired by the effect
157
- // below once the session connects so the click isn't dropped.
158
- const pendingChipRequestRef = useRef<{
159
- plainText: string;
160
- offset: number;
161
- } | null>(null);
162
- // Timestamp of the last `openAtChip`; `handleExternalClose` uses it to
163
- // suppress the close Reqore fires on the same mousedown that opened it.
164
- const justOpenedAtChipAtRef = useRef(0);
165
- const [isReplaceMode, setIsReplaceMode] = useState(false);
166
- // See `popoverKey` in the result interface — forces a popover re-mount.
167
- const [popoverKey, setPopoverKey] = useState(0);
168
-
169
- useEffect(() => {
170
- focusedIndexRef.current = focusedIndex;
171
- }, [focusedIndex]);
172
-
173
- // Server completions omit the sigil from `label`/`filterText` (Qonsole
174
- // returns `list` not `/list`, DPQL `name` not `@name`), so strip it off
175
- // both sides before matching or the filter hides everything after the
176
- // trigger char.
177
- const filteredItems = useMemo(() => {
178
- if (!filterPrefix) return items;
179
- // Strip the leading sigil AND any member-access/namespace prefix up to
180
- // the last `.`/`:`. The token deliberately includes `.`/`:` (for paths
181
- // like `$data:state.field`), but filtering wants only the trailing
182
- // word — else after `arr.` typing `for` yields needle `arr.for`, which
183
- // matches no `forEach`-style label and hides every suggestion.
184
- const segment = filterPrefix
185
- .replace(/^[@$/-]+/, '')
186
- .replace(/^.*[.:]/, '');
187
- const needle = segment.toLowerCase();
188
- if (!needle) return items;
189
- return items.filter((item) => {
190
- const haystack = (item.raw.filterText ?? item.label)
191
- .toLowerCase()
192
- .replace(/^[@$/-]+/, '');
193
- return haystack.startsWith(needle) || haystack.includes(needle);
194
- });
195
- }, [items, filterPrefix]);
196
-
197
- useEffect(() => {
198
- if (focusedIndex >= filteredItems.length) {
199
- setFocusedIndex(Math.max(0, filteredItems.length - 1));
200
- }
201
- }, [filteredItems.length, focusedIndex]);
202
-
203
- const groups = useMemo((): ICompletionGroup[] => {
204
- if (filteredItems.length === 0) return [];
205
-
206
- // When the server populates `sortText` it has already ranked items;
207
- // use the flat list directly rather than re-ordering across kinds.
208
- // Qonsole takes this path; DPQL has no sortText and falls through.
209
- const hasSortText = filteredItems.some((i) => i.raw.sortText);
210
- if (hasSortText) {
211
- return [{ label: '', items: filteredItems }];
212
- }
213
-
214
- const groupMap = new Map<string, ICompletionDropdownItem[]>();
215
- for (const item of filteredItems) {
216
- const kind = item.metadata?.kind;
217
- const groupLabel = (kind && COMPLETION_KIND_LABELS[kind]) || 'Other';
218
- if (!groupMap.has(groupLabel)) {
219
- groupMap.set(groupLabel, []);
220
- }
221
- groupMap.get(groupLabel)!.push(item);
222
- }
223
- if (groupMap.size <= 1) {
224
- return [{ label: '', items: filteredItems }];
225
- }
226
- return Array.from(groupMap.entries()).map(([label, groupItems]) => ({
227
- label,
228
- items: groupItems,
229
- }));
230
- }, [filteredItems]);
231
-
232
- // Fires the LSP request and commits results into state. Separate from
233
- // the debounced wrapper so imperative callers (`openAtChip`) can bypass
234
- // the typing debounce.
235
- const performCompletionRequest = useCallback(
236
- async (
237
- plainText: string,
238
- offset: number,
239
- opts: { eager?: boolean } = {}
240
- ) => {
241
- // `eager` (default) opens the popover immediately, for explicit
242
- // triggers where items are coming. Autosuggest passes `eager: false`
243
- // so the popover stays closed until items arrive and doesn't flicker
244
- // in no-suggestion spots (inside a string, a dead-end identifier).
245
- const { eager = true } = opts;
246
- if (!isReady) return;
247
- // Re-measure the caret now that the debounce expired and Slate has
248
- // committed the char to the DOM. The earlier measure in
249
- // `onSlateChangeImpl` can fire before the DOM commit, where
250
- // `toDOMRange` throws or returns a stale range and the popover lands
251
- // at {top: 0, left: 0}.
252
- const editor = editorRef.current;
253
- if (editor && editor.selection) {
254
- try {
255
- const domRange = ReactEditor.toDOMRange(editor, editor.selection);
256
- const rect = domRange.getBoundingClientRect();
257
- // A 0,0,0,0 rect means the DOM still isn't ready — keep the
258
- // earlier measure rather than slamming back to origin.
259
- if (rect.width || rect.height || rect.left || rect.top) {
260
- setPosition({ left: rect.left, top: rect.bottom });
261
- }
262
- } catch {
263
- // Editor unmounted mid-request.
264
- }
265
- }
266
- if (eager) {
267
- setIsOpen(true);
268
- if (fetchingTimerRef.current !== null) {
269
- clearTimeout(fetchingTimerRef.current);
270
- }
271
- fetchingTimerRef.current = setTimeout(() => {
272
- setIsFetching(true);
273
- fetchingTimerRef.current = null;
274
- }, LOADER_DELAY_MS);
275
- }
276
- try {
277
- const lspItems = await getCompletions(plainText, offset);
278
- if (lspItems.length === 0) {
279
- setItems([]);
280
- // Replace mode keeps the popover open to show "No alternatives".
281
- if (!replacingChipPathRef.current) {
282
- setIsOpen(false);
283
- }
284
- return;
285
- }
286
- // Sort by `sortText` when present (Qonsole encodes rank into it);
287
- // otherwise preserve server order, as DPQL doesn't populate it.
288
- const sortedLspItems = lspItems.some((i) => i.sortText)
289
- ? [...lspItems].sort((a, b) =>
290
- (a.sortText ?? a.label).localeCompare(b.sortText ?? b.label)
291
- )
292
- : lspItems;
293
-
294
- const mapped: ICompletionDropdownItem[] = sortedLspItems.map((item) => {
295
- const insertText = item.insertText || item.label;
296
- return {
297
- label: item.label,
298
- value: insertText,
299
- icon: mapCompletionKindToIcon(item.kind),
300
- description: item.detail,
301
- documentation: item.documentation,
302
- kindLabel:
303
- item.kind !== undefined
304
- ? COMPLETION_KIND_CHIPS[item.kind]
305
- : undefined,
306
- warning: item.warning,
307
- raw: item,
308
- metadata: {
309
- insertTextFormat: item.insertTextFormat,
310
- retrigger: insertText.endsWith(':'),
311
- kind: item.kind,
312
- },
313
- };
314
- });
315
- setItems(mapped);
316
- setFocusedIndex(0);
317
- setIsOpen(true);
318
- } catch {
319
- setItems([]);
320
- setIsOpen(false);
321
- } finally {
322
- if (fetchingTimerRef.current !== null) {
323
- clearTimeout(fetchingTimerRef.current);
324
- fetchingTimerRef.current = null;
325
- }
326
- setIsFetching(false);
327
- }
328
- },
329
- [getCompletions, isReady]
330
- );
331
-
332
- const requestCompletions = useMemo(
333
- () => debounce(performCompletionRequest, DEBOUNCE_MS),
334
- [performCompletionRequest]
335
- );
336
-
337
- useEffect(() => {
338
- return () => {
339
- requestCompletions.cancel();
340
- };
341
- }, [requestCompletions]);
342
-
343
- const close = useCallback(() => {
344
- setIsOpen(false);
345
- setItems([]);
346
- setFocusedIndex(0);
347
- setFilterPrefix('');
348
- setIsReplaceMode(false);
349
- setIsFetching(false);
350
- if (fetchingTimerRef.current !== null) {
351
- clearTimeout(fetchingTimerRef.current);
352
- fetchingTimerRef.current = null;
353
- }
354
- replacingChipPathRef.current = null;
355
- pendingChipRequestRef.current = null;
356
- requestCompletions.cancel();
357
- }, [requestCompletions]);
358
-
359
- const positionTrigger = useCallback(
360
- (editor: BaseEditor & ReactEditor & HistoryEditor) => {
361
- if (!editor.selection) return;
362
- try {
363
- const domRange = ReactEditor.toDOMRange(editor, editor.selection);
364
- const rect = domRange.getBoundingClientRect();
365
- // Viewport coordinates (+ `position: fixed` on the wrapper) avoid
366
- // parent-offset math that broke when the editor sat in a padded
367
- // panel and Popper overlapped the popover onto the input.
368
- setPosition({
369
- left: rect.left,
370
- top: rect.bottom,
371
- });
372
- } catch {
373
- // Editor may not be focused / mounted.
374
- }
375
- },
376
- []
377
- );
378
-
379
- // Scan back from the cursor to the start offset of the current token
380
- // (a word sequence optionally prefixed with `@` / `$` / `/`).
381
- const findTokenStart = useCallback(
382
- (plainText: string, cursorOffset: number): number => {
383
- let i = cursorOffset - 1;
384
- while (i >= 0 && /[\w.:{}-]/.test(plainText[i])) {
385
- i--;
386
- }
387
- if (i >= 0 && /[@$/-]/.test(plainText[i])) {
388
- i--;
389
- }
390
- return i + 1;
391
- },
392
- []
393
- );
394
-
395
- // Live ref to the change handler defined below — selectItem's retrigger
396
- // path runs in a timeout and must see the CURRENT impl, not whatever its
397
- // own (intentionally narrow) deps closed over. Same workaround as
398
- // `stableOnTagClick` in SmartEditor.
399
- const onSlateChangeImplRef = useRef<
400
- (editor: BaseEditor & ReactEditor & HistoryEditor, nodes: ISlateElement[]) => void
401
- >(() => undefined);
402
-
403
- const selectItem = useCallback(
404
- (item: ICompletionDropdownItem) => {
405
- const editor = editorRef.current;
406
- if (!editor) return;
407
- const replacementPath = replacingChipPathRef.current;
408
- // The typing path needs a live selection so the inserter knows how
409
- // much partial token to delete; replace mode works off a path.
410
- if (!editor.selection && !replacementPath) return;
411
-
412
- const nodes = editor.children as ISlateElement[];
413
- const plainText = converter.fromSlateNodes(nodes);
414
- const cursorOffset = editor.selection
415
- ? converter.selectionToOffset(
416
- nodes,
417
- editor.selection.anchor.path as number[],
418
- editor.selection.anchor.offset
419
- )
420
- : converter.selectionToOffset(nodes, replacementPath as number[], 0);
421
-
422
- inserter(item.raw, editor, {
423
- plainText,
424
- cursorOffset,
425
- replacementPath: replacementPath ?? undefined,
426
- });
427
- close();
428
- // Re-trigger completions for partial items (e.g. `$timestamp:` shows
429
- // sub-completions for the value).
430
- if (item.metadata?.retrigger) {
431
- setTimeout(() => {
432
- const newNodes = editor.children as ISlateElement[];
433
- onSlateChangeImplRef.current(editor, newNodes);
434
- }, 50);
435
- }
436
- },
437
- [close, inserter, converter]
438
- );
439
-
440
- useEffect(() => {
441
- // Keyboard nav operates on the filtered list, not the raw items.
442
- if (!isOpen || filteredItems.length === 0) return undefined;
443
- const handleKeyDown = (e: KeyboardEvent) => {
444
- switch (e.key) {
445
- case 'ArrowDown':
446
- e.preventDefault();
447
- e.stopPropagation();
448
- setFocusedIndex((prev) => Math.min(prev + 1, filteredItems.length - 1));
449
- break;
450
- case 'ArrowUp':
451
- e.preventDefault();
452
- e.stopPropagation();
453
- setFocusedIndex((prev) => Math.max(prev - 1, 0));
454
- break;
455
- case 'Enter':
456
- case 'Tab': {
457
- e.preventDefault();
458
- e.stopPropagation();
459
- const item = filteredItems[focusedIndexRef.current];
460
- if (item && editorRef.current) {
461
- selectItem(item);
462
- }
463
- break;
464
- }
465
- case 'Escape':
466
- e.preventDefault();
467
- e.stopPropagation();
468
- close();
469
- break;
470
- default: {
471
- // `commitCharacters`: typing a commit char accepts the item and
472
- // inserts the char (VS Code semantics).
473
- if (e.key.length !== 1) break;
474
- const focusedItem = filteredItems[focusedIndexRef.current];
475
- const commits = focusedItem?.raw.commitCharacters;
476
- if (!commits || !commits.includes(e.key)) break;
477
- const editor = editorRef.current;
478
- if (!editor) break;
479
- e.preventDefault();
480
- e.stopPropagation();
481
- // Don't double-insert when the server's edit already ends with
482
- // the committed char (e.g. `--limit=` for an `=`-committed flag).
483
- const inserted =
484
- focusedItem.raw.textEdit?.newText ??
485
- focusedItem.raw.insertText ??
486
- focusedItem.raw.label;
487
- selectItem(focusedItem);
488
- if (!inserted.endsWith(e.key)) {
489
- Transforms.insertText(editor, e.key);
490
- }
491
- break;
492
- }
493
- }
494
- };
495
- document.addEventListener('keydown', handleKeyDown, true);
496
- return () => document.removeEventListener('keydown', handleKeyDown, true);
497
- }, [isOpen, filteredItems, close, selectItem]);
498
-
499
- /**
500
- * Opens, narrows or closes the completions for what the editor holds at its caret, after a content
501
- * edit: a trigger character just typed, typing inside a sigil token, narrowing an open list, or
502
- * autosuggest inside a bare identifier.
503
- */
504
- const completeAtCaret = useCallback(
505
- (editor: BaseEditor & ReactEditor & HistoryEditor, nodes: ISlateElement[]) => {
506
- if (!editor.selection) {
507
- close();
508
- return;
509
- }
510
- const { anchor } = editor.selection;
511
- const plainText = converter.fromSlateNodes(nodes);
512
- const cursorOffset = converter.selectionToOffset(
513
- nodes,
514
- anchor.path as number[],
515
- anchor.offset
516
- );
517
- const charBefore = cursorOffset > 0 ? plainText[cursorOffset - 1] : '';
518
-
519
- // After accepting a tag completion the cursor sits at offset 0 of a
520
- // fresh text node right after the tag, which in plain text looks
521
- // mid-`@field` token and would re-fire completions. Detect it via
522
- // Slate structure (prev sibling is a `tag` element) and don't reopen.
523
- const cursorPath = anchor.path as number[];
524
- if (
525
- anchor.offset === 0 &&
526
- cursorPath.length === 2 &&
527
- cursorPath[1] > 0
528
- ) {
529
- const paragraph = nodes[cursorPath[0]];
530
- const prevSibling = paragraph?.children[cursorPath[1] - 1];
531
- if (
532
- prevSibling &&
533
- 'type' in prevSibling &&
534
- (prevSibling as ISlateElement).type === 'tag'
535
- ) {
536
- if (isOpen) {
537
- close();
538
- }
539
- return;
540
- }
541
- }
542
-
543
- if (triggerCharacters.has(charBefore)) {
544
- setFilterPrefix('');
545
- positionTrigger(editor);
546
- requestCompletions(plainText, cursorOffset);
547
- return;
548
- }
549
-
550
- // Typing inside a sigil-prefixed token.
551
- const tokenStart = findTokenStart(plainText, cursorOffset);
552
- const tokenPrefix = plainText[tokenStart];
553
- if (tokenPrefix && /[@$/]/.test(tokenPrefix)) {
554
- setFilterPrefix(plainText.slice(tokenStart, cursorOffset));
555
- positionTrigger(editor);
556
- requestCompletions(plainText, cursorOffset);
557
- return;
558
- }
559
-
560
- // Dropdown open and typing alphanumeric — keep narrowing.
561
- if (isOpen && /\w/.test(charBefore)) {
562
- setFilterPrefix(plainText.slice(tokenStart, cursorOffset));
563
- positionTrigger(editor);
564
- requestCompletions(plainText, cursorOffset);
565
- return;
566
- }
567
-
568
- // Autosuggest inside a bare identifier: quiet request. The DPQL
569
- // server is position-aware — it returns `[]` inside strings etc., so
570
- // `eager: false` keeps the dropdown from flickering where there's
571
- // nothing to suggest.
572
- if (/\w/.test(charBefore) && tokenPrefix && /\w/.test(tokenPrefix)) {
573
- setFilterPrefix(plainText.slice(tokenStart, cursorOffset));
574
- positionTrigger(editor);
575
- requestCompletions(plainText, cursorOffset, { eager: false });
576
- return;
577
- }
578
-
579
- close();
580
- },
581
- [isOpen, close, findTokenStart, positionTrigger, requestCompletions, triggerCharacters, converter]
582
- );
583
-
584
- /* An edit made before the session is ready - typing `$` or `@` while the connection is still being
585
- made, or its context bound - would otherwise be dropped: the list is closed and nothing asks again,
586
- so the trigger the author typed never opens anything. The editor is kept, and once the session is
587
- ready the completions are asked for what it holds then, as for a chip click (see
588
- `pendingChipRequestRef`). */
589
- const pendingTypingRef = useRef<(BaseEditor & ReactEditor & HistoryEditor) | null>(null);
590
-
591
- const onSlateChangeImpl = useCallback(
592
- (
593
- editor: BaseEditor & ReactEditor & HistoryEditor,
594
- nodes: ISlateElement[]
595
- ) => {
596
- editorRef.current = editor;
597
- if (!editor.selection || !isReady) {
598
- // Don't tear down replace mode just because the click that
599
- // opened it momentarily left the selection null — clicking a
600
- // void inline can do that.
601
- if (replacingChipPathRef.current) return;
602
- // a content edit before the session is ready is answered once it is (see `pendingTypingRef`)
603
- if (editor.selection && editor.operations.some((op) => op.type !== 'set_selection')) {
604
- pendingTypingRef.current = editor;
605
- }
606
- close();
607
- return;
608
- }
609
- pendingTypingRef.current = null;
610
- // `onChange` fires for content edits AND selection-only changes
611
- // (cursor moves, click-to-focus). Only OPEN on content edits — else
612
- // clicking after a trigger char (e.g. the space in `/list services `)
613
- // pops the dropdown without the user typing. An all-`set_selection`
614
- // op batch is selection-only.
615
- const isContentChange = editor.operations.some(
616
- (op) => op.type !== 'set_selection'
617
- );
618
- if (!isContentChange) {
619
- // Replace mode anchors on a chip; the selection echo from the
620
- // opening click must not close it (outside-click handler does).
621
- if (isOpen && !replacingChipPathRef.current) {
622
- close();
623
- }
624
- return;
625
- }
626
- // A content edit in replace mode means the user typed instead of
627
- // picking a replacement — fall back to normal flow.
628
- if (replacingChipPathRef.current) {
629
- close();
630
- return;
631
- }
632
-
633
- completeAtCaret(editor, nodes);
634
- },
635
- [isReady, isOpen, close, completeAtCaret]
636
- );
637
-
638
- // Answer an edit made before the session was ready, for what the editor holds now.
639
- useEffect(() => {
640
- const editor = pendingTypingRef.current;
641
- if (!isReady || !editor) return;
642
- pendingTypingRef.current = null;
643
- completeAtCaret(editor, editor.children as ISlateElement[]);
644
- }, [isReady, completeAtCaret]);
645
- onSlateChangeImplRef.current = onSlateChangeImpl;
646
-
647
- const onItemSelect = useCallback(
648
- (
649
- item: ICompletionDropdownItem,
650
- editor: BaseEditor & ReactEditor & HistoryEditor
651
- ) => {
652
- editorRef.current = editor;
653
- selectItem(item);
654
- },
655
- [selectItem]
656
- );
657
-
658
- // Imperative entry for the "replace this chip" flow. Anchors at the
659
- // chip's viewport rect and fires a request immediately, bypassing the
660
- // typing debounce.
661
- const openAtChip = useCallback(
662
- (
663
- editor: BaseEditor & ReactEditor & HistoryEditor,
664
- chipPath: number[],
665
- chipRect: { left: number; bottom: number }
666
- ) => {
667
- // Clicking the chip the dropdown is already anchored to closes it;
668
- // without this the outside-click suppression below re-opens it on
669
- // every chip click.
670
- const prevPath = replacingChipPathRef.current;
671
- if (
672
- isOpen &&
673
- prevPath &&
674
- prevPath.length === chipPath.length &&
675
- prevPath.every((seg, i) => seg === chipPath[i])
676
- ) {
677
- close();
678
- return;
679
- }
680
- editorRef.current = editor;
681
- replacingChipPathRef.current = chipPath;
682
- justOpenedAtChipAtRef.current = Date.now();
683
- setFilterPrefix('');
684
- setPosition({ left: chipRect.left, top: chipRect.bottom });
685
- // Pre-open for immediate feedback even before the LSP is ready (the
686
- // popover shows a "Connecting…" stub); items populate on response.
687
- setItems([]);
688
- setFocusedIndex(0);
689
- setIsReplaceMode(true);
690
- setIsOpen(true);
691
- setPopoverKey((k) => k + 1);
692
- const nodes = editor.children as ISlateElement[];
693
- const plainText = converter.fromSlateNodes(nodes);
694
- // Request at the END of the chip's span — the natural "what could
695
- // complete this token" position, so the server returns swappable
696
- // candidates.
697
- const chipChildIdx = chipPath[chipPath.length - 1];
698
- const paragraph = nodes[chipPath[0]];
699
- const chipNode = paragraph?.children?.[chipChildIdx];
700
- const chipText =
701
- chipNode && 'value' in chipNode
702
- ? String((chipNode as ISlateElement).value ?? '')
703
- : '';
704
- const chipStart = converter.selectionToOffset(nodes, chipPath, 0);
705
- const chipEnd = chipStart + chipText.length;
706
- if (isReady) {
707
- performCompletionRequest(plainText, chipEnd);
708
- } else {
709
- pendingChipRequestRef.current = { plainText, offset: chipEnd };
710
- }
711
- },
712
- [isReady, isOpen, close, converter, performCompletionRequest]
713
- );
714
-
715
- const handleExternalClose = useCallback(
716
- (open: boolean) => {
717
- if (open) return;
718
- // Within ~300ms of `openAtChip`, this close is the popover reacting
719
- // to the same mousedown that opened it — ignore.
720
- if (Date.now() - justOpenedAtChipAtRef.current < 300) {
721
- return;
722
- }
723
- close();
724
- },
725
- [close]
726
- );
727
-
728
- // Fire a deferred chip-click request once the session connects — covers
729
- // a click made during the initialize handshake.
730
- useEffect(() => {
731
- if (
732
- isReady &&
733
- pendingChipRequestRef.current &&
734
- replacingChipPathRef.current
735
- ) {
736
- const { plainText, offset } = pendingChipRequestRef.current;
737
- pendingChipRequestRef.current = null;
738
- performCompletionRequest(plainText, offset);
739
- }
740
- }, [isReady, performCompletionRequest]);
741
-
742
- return {
743
- // Expose the post-filter list as `items`; `groups` is filter-derived too.
744
- items: filteredItems,
745
- groups,
746
- isOpen,
747
- isReplaceMode,
748
- isFetching,
749
- focusedIndex,
750
- close,
751
- onSlateChange: onSlateChangeImpl,
752
- onItemSelect,
753
- openAtChip,
754
- handleExternalClose,
755
- popoverKey,
756
- position,
757
- };
758
- }