@qoretechnologies/reqraft 0.10.66-pr.152.g3349989 → 0.10.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (873) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +156 -10
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +39 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +294 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +54 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +420 -63
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +67 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +94 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +7 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +49 -17
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +322 -124
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +29 -3
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +66 -11
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +570 -176
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  68. package/dist/components/form/engine/OptionFieldMessages.js +25 -3
  69. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  70. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  72. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  73. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  77. package/dist/components/form/engine/compactRowContext.d.ts +30 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  79. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  80. package/dist/components/form/engine/compactRowStyles.d.ts +59 -22
  81. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  82. package/dist/components/form/engine/compactRowStyles.js +102 -55
  83. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  84. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  85. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  86. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  87. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  88. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  89. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  90. package/dist/components/form/engine/inheritProps.js +43 -0
  91. package/dist/components/form/engine/inheritProps.js.map +1 -0
  92. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  93. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  94. package/dist/components/form/engine/operatorSummary.js +35 -0
  95. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  96. package/dist/components/form/engine/readFirst.d.ts +24 -8
  97. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  98. package/dist/components/form/engine/readFirst.js +77 -109
  99. package/dist/components/form/engine/readFirst.js.map +1 -1
  100. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  101. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  102. package/dist/components/form/engine/readFirstColors.js +51 -0
  103. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  104. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  105. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  106. package/dist/components/form/engine/rowFocus.js +26 -3
  107. package/dist/components/form/engine/rowFocus.js.map +1 -1
  108. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  109. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  110. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  111. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  112. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  113. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  114. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  115. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  116. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  117. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  118. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  119. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  120. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  121. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/variantParts.js +25 -17
  123. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  124. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  125. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  126. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  127. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  128. package/dist/components/form/expressions/ExpressionField.d.ts +67 -3
  129. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  130. package/dist/components/form/expressions/ExpressionField.js +536 -114
  131. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  132. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  133. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  134. package/dist/components/form/expressions/argumentPresence.js +16 -1
  135. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  136. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  137. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  138. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  139. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentLabel.js +30 -11
  141. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  142. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  144. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  145. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts +9 -0
  146. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  147. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +30 -27
  148. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  149. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  150. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  151. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +7 -5
  152. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  153. package/dist/components/form/expressions/builder/index.d.ts +34 -2
  154. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  155. package/dist/components/form/expressions/builder/index.js +170 -80
  156. package/dist/components/form/expressions/builder/index.js.map +1 -1
  157. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  158. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  159. package/dist/components/form/expressions/builder/item.js +19 -5
  160. package/dist/components/form/expressions/builder/item.js.map +1 -1
  161. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  162. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  163. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  164. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  165. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  166. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  167. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  168. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  169. package/dist/components/form/expressions/expressionOperands.js +97 -0
  170. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  171. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  172. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  173. package/dist/components/form/expressions/fieldPath.js +152 -0
  174. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  175. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  176. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  177. package/dist/components/form/expressions/loneValue.js +33 -0
  178. package/dist/components/form/expressions/loneValue.js.map +1 -0
  179. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  180. package/dist/components/form/expressions/mockExpressions.js +22 -5
  181. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  182. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  183. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  184. package/dist/components/form/expressions/renderExpressionToText.js +43 -10
  185. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  186. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  187. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  188. package/dist/components/form/expressions/textOfExpression.js +49 -0
  189. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  190. package/dist/components/form/expressions/types.d.ts +12 -0
  191. package/dist/components/form/expressions/types.d.ts.map +1 -1
  192. package/dist/components/form/expressions/types.js +6 -1
  193. package/dist/components/form/expressions/types.js.map +1 -1
  194. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  195. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  196. package/dist/components/form/expressions/useExpressionType.js +181 -0
  197. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  198. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  199. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  200. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  201. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  202. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  203. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  204. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  205. package/dist/components/form/fields/Field.d.ts.map +1 -1
  206. package/dist/components/form/fields/Field.js +43 -20
  207. package/dist/components/form/fields/Field.js.map +1 -1
  208. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  209. package/dist/components/form/fields/allowed-values/AllowedValues.js +39 -6
  210. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  211. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  212. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  213. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  214. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  215. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  216. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  217. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  218. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  219. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  220. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  221. package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
  222. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  223. package/dist/components/form/fields/auto/AutoFormField.js +119 -62
  224. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  225. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  226. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  227. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  228. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  229. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  230. package/dist/components/form/fields/binary/Binary.js +23 -3
  231. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  232. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  233. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  234. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  235. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  236. package/dist/components/form/fields/color/Color.d.ts +103 -16
  237. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  238. package/dist/components/form/fields/color/Color.js +616 -16
  239. package/dist/components/form/fields/color/Color.js.map +1 -1
  240. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  241. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  242. package/dist/components/form/fields/emittedValues.js +24 -1
  243. package/dist/components/form/fields/emittedValues.js.map +1 -1
  244. package/dist/components/form/fields/file/File.d.ts +1 -1
  245. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  246. package/dist/components/form/fields/file/File.js +4 -2
  247. package/dist/components/form/fields/file/File.js.map +1 -1
  248. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  249. package/dist/components/form/fields/long-string/LongString.js +29 -8
  250. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  251. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  252. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  253. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +13 -9
  254. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  255. package/dist/components/form/fields/number/Number.d.ts +6 -0
  256. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  257. package/dist/components/form/fields/number/Number.js +41 -6
  258. package/dist/components/form/fields/number/Number.js.map +1 -1
  259. package/dist/components/form/fields/object/Object.d.ts +1 -1
  260. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  261. package/dist/components/form/fields/object/Object.js +4 -2
  262. package/dist/components/form/fields/object/Object.js.map +1 -1
  263. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  264. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  265. package/dist/components/form/fields/pendingEdit.js +79 -0
  266. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  267. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  268. package/dist/components/form/fields/radio-group/RadioGroup.js +4 -3
  269. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  270. package/dist/components/form/fields/rich-text/RichText.d.ts +20 -1
  271. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  272. package/dist/components/form/fields/rich-text/RichText.js +426 -91
  273. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  274. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  275. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  276. package/dist/components/form/fields/rich-text/useTemplateTags.js +80 -0
  277. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  278. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  279. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  280. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  281. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  282. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  283. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  284. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  285. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  286. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  287. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  288. package/dist/components/form/fields/schema-definition/index.js +8 -4
  289. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  290. package/dist/components/form/fields/select/Select.d.ts +10 -1
  291. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  292. package/dist/components/form/fields/select/Select.js +28 -14
  293. package/dist/components/form/fields/select/Select.js.map +1 -1
  294. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  295. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  296. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  297. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  298. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  299. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  300. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  301. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  302. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  303. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  304. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  305. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  306. package/dist/components/form/fields/template/TemplateBrowser.d.ts +16 -0
  307. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  308. package/dist/components/form/fields/template/TemplateBrowser.js +89 -0
  309. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  310. package/dist/components/form/fields/template/TemplateField.d.ts +105 -1
  311. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  312. package/dist/components/form/fields/template/TemplateField.js +678 -107
  313. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  314. package/dist/components/form/fields/template/TemplatePicker.d.ts +54 -0
  315. package/dist/components/form/fields/template/TemplatePicker.d.ts.map +1 -0
  316. package/dist/components/form/fields/template/TemplatePicker.js +459 -0
  317. package/dist/components/form/fields/template/TemplatePicker.js.map +1 -0
  318. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  319. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  320. package/dist/components/form/fields/template/TemplateText.js +22 -16
  321. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  322. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  323. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  324. package/dist/components/form/fields/template/referenceNames.js +69 -0
  325. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  326. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  327. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  328. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  329. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  330. package/dist/components/form/index.d.ts +12 -0
  331. package/dist/components/form/index.d.ts.map +1 -1
  332. package/dist/components/form/index.js +25 -1
  333. package/dist/components/form/index.js.map +1 -1
  334. package/dist/components/form/typeSentenceForm.d.ts +17 -0
  335. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  336. package/dist/components/form/typeSentenceForm.js +54 -0
  337. package/dist/components/form/typeSentenceForm.js.map +1 -0
  338. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  339. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  340. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  341. package/dist/components/log/Log.d.ts.map +1 -1
  342. package/dist/components/log/Log.js +20 -8
  343. package/dist/components/log/Log.js.map +1 -1
  344. package/dist/components/menu/Menu.d.ts.map +1 -1
  345. package/dist/components/menu/Menu.js +19 -10
  346. package/dist/components/menu/Menu.js.map +1 -1
  347. package/dist/components/smartEditor/CompletionMenu.d.ts +53 -0
  348. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  349. package/dist/components/smartEditor/CompletionMenu.js +302 -0
  350. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  351. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  352. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  353. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  354. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  355. package/dist/components/smartEditor/SmartEditor.js +616 -190
  356. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  357. package/dist/components/smartEditor/completionStyle.d.ts +28 -0
  358. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  359. package/dist/components/smartEditor/completionStyle.js +79 -0
  360. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  361. package/dist/components/smartEditor/contextTitle.d.ts +10 -0
  362. package/dist/components/smartEditor/contextTitle.d.ts.map +1 -0
  363. package/dist/components/smartEditor/contextTitle.js +21 -0
  364. package/dist/components/smartEditor/contextTitle.js.map +1 -0
  365. package/dist/components/smartEditor/editingAids.d.ts +64 -0
  366. package/dist/components/smartEditor/editingAids.d.ts.map +1 -0
  367. package/dist/components/smartEditor/editingAids.js +213 -0
  368. package/dist/components/smartEditor/editingAids.js.map +1 -0
  369. package/dist/components/smartEditor/index.d.ts +6 -1
  370. package/dist/components/smartEditor/index.d.ts.map +1 -1
  371. package/dist/components/smartEditor/index.js +19 -1
  372. package/dist/components/smartEditor/index.js.map +1 -1
  373. package/dist/components/smartEditor/templateCompletions.d.ts +98 -0
  374. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  375. package/dist/components/smartEditor/templateCompletions.js +380 -0
  376. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  377. package/dist/components/smartEditor/typedReferences.d.ts +34 -0
  378. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  379. package/dist/components/smartEditor/typedReferences.js +179 -0
  380. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  381. package/dist/components/smartEditor/types.d.ts +116 -2
  382. package/dist/components/smartEditor/types.d.ts.map +1 -1
  383. package/dist/components/smartEditor/useEditingAids.d.ts +38 -0
  384. package/dist/components/smartEditor/useEditingAids.d.ts.map +1 -0
  385. package/dist/components/smartEditor/useEditingAids.js +392 -0
  386. package/dist/components/smartEditor/useEditingAids.js.map +1 -0
  387. package/dist/components/smartEditor/useLspAutocomplete.d.ts +106 -3
  388. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  389. package/dist/components/smartEditor/useLspAutocomplete.js +592 -149
  390. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  391. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  392. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  393. package/dist/components/smartEditor/useLspHover.js +364 -35
  394. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  395. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  396. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  397. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  398. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  399. package/dist/components/smartEditor/useLspSession.js +7 -6
  400. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  401. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  402. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  403. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  404. package/dist/components/smartEditor/useTabCameIn.d.ts +10 -0
  405. package/dist/components/smartEditor/useTabCameIn.d.ts.map +1 -0
  406. package/dist/components/smartEditor/useTabCameIn.js +42 -0
  407. package/dist/components/smartEditor/useTabCameIn.js.map +1 -0
  408. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  409. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  410. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  411. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  412. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  413. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  414. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  415. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  416. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  417. package/dist/components/supportTicket/TicketHeader.js +20 -2
  418. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  419. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  420. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  421. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  422. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  423. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  424. package/dist/components/ticketThread/TicketThread.js +38 -13
  425. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  426. package/dist/helpers/allowedValues.d.ts +21 -0
  427. package/dist/helpers/allowedValues.d.ts.map +1 -1
  428. package/dist/helpers/allowedValues.js +40 -1
  429. package/dist/helpers/allowedValues.js.map +1 -1
  430. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  431. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  432. package/dist/helpers/descriptionTooltip.js +76 -0
  433. package/dist/helpers/descriptionTooltip.js.map +1 -0
  434. package/dist/helpers/domProps.d.ts +5 -0
  435. package/dist/helpers/domProps.d.ts.map +1 -0
  436. package/dist/helpers/domProps.js +47 -0
  437. package/dist/helpers/domProps.js.map +1 -0
  438. package/dist/helpers/expressions.d.ts +115 -4
  439. package/dist/helpers/expressions.d.ts.map +1 -1
  440. package/dist/helpers/expressions.js +247 -29
  441. package/dist/helpers/expressions.js.map +1 -1
  442. package/dist/helpers/hoveringPointer.d.ts +26 -0
  443. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  444. package/dist/helpers/hoveringPointer.js +29 -0
  445. package/dist/helpers/hoveringPointer.js.map +1 -0
  446. package/dist/helpers/markdownText.d.ts +14 -0
  447. package/dist/helpers/markdownText.d.ts.map +1 -0
  448. package/dist/helpers/markdownText.js +160 -0
  449. package/dist/helpers/markdownText.js.map +1 -0
  450. package/dist/helpers/noDescription.d.ts +9 -0
  451. package/dist/helpers/noDescription.d.ts.map +1 -0
  452. package/dist/helpers/noDescription.js +13 -0
  453. package/dist/helpers/noDescription.js.map +1 -0
  454. package/dist/helpers/optionUiTypes.d.ts +2 -2
  455. package/dist/helpers/qorusTypeCatalogue.d.ts +147 -0
  456. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  457. package/dist/helpers/qorusTypeCatalogue.js +505 -0
  458. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  459. package/dist/helpers/readableColors.d.ts +36 -0
  460. package/dist/helpers/readableColors.d.ts.map +1 -0
  461. package/dist/helpers/readableColors.js +116 -0
  462. package/dist/helpers/readableColors.js.map +1 -0
  463. package/dist/helpers/recordFieldReference.d.ts +15 -0
  464. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  465. package/dist/helpers/recordFieldReference.js +89 -0
  466. package/dist/helpers/recordFieldReference.js.map +1 -0
  467. package/dist/helpers/templateCatalogue.d.ts +104 -0
  468. package/dist/helpers/templateCatalogue.d.ts.map +1 -0
  469. package/dist/helpers/templateCatalogue.js +116 -0
  470. package/dist/helpers/templateCatalogue.js.map +1 -0
  471. package/dist/helpers/templateCatalogueContext.d.ts +19 -0
  472. package/dist/helpers/templateCatalogueContext.d.ts.map +1 -0
  473. package/dist/helpers/templateCatalogueContext.js +31 -0
  474. package/dist/helpers/templateCatalogueContext.js.map +1 -0
  475. package/dist/helpers/templateItems.d.ts +2 -2
  476. package/dist/helpers/templateItems.d.ts.map +1 -1
  477. package/dist/helpers/templateItems.js +6 -4
  478. package/dist/helpers/templateItems.js.map +1 -1
  479. package/dist/helpers/templateText.d.ts +1 -0
  480. package/dist/helpers/templateText.d.ts.map +1 -1
  481. package/dist/helpers/templateText.js +7 -3
  482. package/dist/helpers/templateText.js.map +1 -1
  483. package/dist/helpers/templateTree.d.ts +248 -0
  484. package/dist/helpers/templateTree.d.ts.map +1 -0
  485. package/dist/helpers/templateTree.js +892 -0
  486. package/dist/helpers/templateTree.js.map +1 -0
  487. package/dist/helpers/templateType.d.ts +28 -0
  488. package/dist/helpers/templateType.d.ts.map +1 -0
  489. package/dist/helpers/templateType.js +30 -0
  490. package/dist/helpers/templateType.js.map +1 -0
  491. package/dist/helpers/templates.d.ts +86 -16
  492. package/dist/helpers/templates.d.ts.map +1 -1
  493. package/dist/helpers/templates.js +305 -45
  494. package/dist/helpers/templates.js.map +1 -1
  495. package/dist/helpers/validations.d.ts +27 -0
  496. package/dist/helpers/validations.d.ts.map +1 -1
  497. package/dist/helpers/validations.js +169 -39
  498. package/dist/helpers/validations.js.map +1 -1
  499. package/dist/helpers/webLink.d.ts +8 -0
  500. package/dist/helpers/webLink.d.ts.map +1 -0
  501. package/dist/helpers/webLink.js +29 -0
  502. package/dist/helpers/webLink.js.map +1 -0
  503. package/dist/hooks/useQorusTypes.d.ts +12 -17
  504. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  505. package/dist/hooks/useQorusTypes.js +44 -172
  506. package/dist/hooks/useQorusTypes.js.map +1 -1
  507. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  508. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  509. package/dist/hooks/useReadableIntentShade.js +23 -0
  510. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  511. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  512. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  513. package/dist/hooks/useReadableOpacity.js +17 -0
  514. package/dist/hooks/useReadableOpacity.js.map +1 -0
  515. package/dist/index.d.ts +8 -0
  516. package/dist/index.d.ts.map +1 -1
  517. package/dist/index.js +24 -1
  518. package/dist/index.js.map +1 -1
  519. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  520. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  521. package/dist/tracking/ui/ExperimentCard.js +26 -10
  522. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  523. package/dist/tracking/ui/card.d.ts +2 -2
  524. package/dist/tracking/ui/card.d.ts.map +1 -1
  525. package/dist/tracking/ui/card.js +2 -2
  526. package/dist/tracking/ui/card.js.map +1 -1
  527. package/dist/tracking/ui/readable.d.ts +14 -0
  528. package/dist/tracking/ui/readable.d.ts.map +1 -0
  529. package/dist/tracking/ui/readable.js +60 -0
  530. package/dist/tracking/ui/readable.js.map +1 -0
  531. package/dist/utils/fetch.d.ts +9 -2
  532. package/dist/utils/fetch.d.ts.map +1 -1
  533. package/dist/utils/fetch.js +6 -5
  534. package/dist/utils/fetch.js.map +1 -1
  535. package/dist/utils/lspClient.types.d.ts +2 -0
  536. package/dist/utils/lspClient.types.d.ts.map +1 -1
  537. package/dist/utils/websocket.d.ts +65 -2
  538. package/dist/utils/websocket.d.ts.map +1 -1
  539. package/dist/utils/websocket.js +276 -44
  540. package/dist/utils/websocket.js.map +1 -1
  541. package/package.json +14 -6
  542. package/.claude/CLAUDE.md +0 -341
  543. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  544. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  545. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  546. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  547. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  548. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  549. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  550. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  551. package/.tasks/INDEX.md +0 -111
  552. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  553. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  554. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  555. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  556. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  557. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  558. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  559. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  560. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  561. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  562. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  563. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  564. package/CODE_OF_CONDUCT.md +0 -105
  565. package/CONTRIBUTING.MD +0 -78
  566. package/SECURITY.md +0 -3
  567. package/chromatic.config.json +0 -5
  568. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  569. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  570. package/design/COMPACT_PARITY.md +0 -85
  571. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  572. package/design/FORM_ENGINE_COMPACT.md +0 -300
  573. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  574. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  575. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  576. package/design/IDE_INTEGRATION.md +0 -64
  577. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  578. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  579. package/design/SMART_EDITOR_UX.md +0 -438
  580. package/design/TRACKING.md +0 -290
  581. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  582. package/src/components/Description/index.tsx +0 -254
  583. package/src/components/Description/markdownRendererContext.tsx +0 -29
  584. package/src/components/FocusedEditing/index.tsx +0 -50
  585. package/src/components/codeSize/index.tsx +0 -79
  586. package/src/components/composer/Composer.stories.tsx +0 -238
  587. package/src/components/composer/Composer.tsx +0 -554
  588. package/src/components/composer/helpers.ts +0 -74
  589. package/src/components/composer/index.ts +0 -2
  590. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  591. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  592. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  593. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  594. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  595. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  596. package/src/components/dpqlEditor/index.ts +0 -41
  597. package/src/components/dpqlEditor/types.ts +0 -203
  598. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  599. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  600. package/src/components/form/engine/CompactRow.tsx +0 -2620
  601. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  602. package/src/components/form/engine/FormEngine.stories.tsx +0 -10091
  603. package/src/components/form/engine/FormEngine.tsx +0 -4569
  604. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -688
  605. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -334
  606. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  607. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  608. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  609. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  610. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  611. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -242
  612. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  613. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  614. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  615. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  616. package/src/components/form/engine/compactRowContext.ts +0 -148
  617. package/src/components/form/engine/compactRowStyles.ts +0 -898
  618. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  619. package/src/components/form/engine/optionActions.ts +0 -128
  620. package/src/components/form/engine/optionsContext.ts +0 -24
  621. package/src/components/form/engine/readFirst.ts +0 -1077
  622. package/src/components/form/engine/rendererTypes.ts +0 -107
  623. package/src/components/form/engine/revealRow.ts +0 -123
  624. package/src/components/form/engine/rowFocus.ts +0 -101
  625. package/src/components/form/engine/rowMenuContext.ts +0 -159
  626. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  627. package/src/components/form/engine/typeChoices.ts +0 -63
  628. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  629. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  630. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  631. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  632. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  633. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  634. package/src/components/form/engine/variants/variantModel.ts +0 -223
  635. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  636. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  637. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  638. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  639. package/src/components/form/expressions/argumentPresence.ts +0 -213
  640. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1747
  641. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  642. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  643. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  644. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  645. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  646. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  647. package/src/components/form/expressions/builder/index.tsx +0 -1545
  648. package/src/components/form/expressions/builder/item.tsx +0 -89
  649. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  650. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  651. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  652. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  653. package/src/components/form/expressions/mockExpressions.ts +0 -317
  654. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  655. package/src/components/form/expressions/types.ts +0 -110
  656. package/src/components/form/expressions/useExpressions.ts +0 -101
  657. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  658. package/src/components/form/fields/Field.stories.tsx +0 -143
  659. package/src/components/form/fields/Field.tsx +0 -732
  660. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  661. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  662. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -484
  663. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  664. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  665. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  666. package/src/components/form/fields/binary/Binary.stories.tsx +0 -128
  667. package/src/components/form/fields/binary/Binary.tsx +0 -91
  668. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -128
  669. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  670. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  671. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  672. package/src/components/form/fields/color/Color.stories.tsx +0 -108
  673. package/src/components/form/fields/color/Color.tsx +0 -46
  674. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  675. package/src/components/form/fields/cron/Cron.tsx +0 -80
  676. package/src/components/form/fields/date/Date.stories.tsx +0 -80
  677. package/src/components/form/fields/date/Date.tsx +0 -55
  678. package/src/components/form/fields/emittedValues.ts +0 -70
  679. package/src/components/form/fields/file/File.stories.tsx +0 -167
  680. package/src/components/form/fields/file/File.tsx +0 -227
  681. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -123
  682. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  683. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  684. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  685. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  686. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  687. package/src/components/form/fields/number/Number.stories.tsx +0 -165
  688. package/src/components/form/fields/number/Number.tsx +0 -160
  689. package/src/components/form/fields/object/Object.stories.tsx +0 -410
  690. package/src/components/form/fields/object/Object.tsx +0 -255
  691. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  692. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  693. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  694. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  695. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  696. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  697. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  698. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  699. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  700. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  701. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  702. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  703. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  704. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -292
  705. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  706. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  707. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  708. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  709. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  710. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  711. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  712. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  713. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  714. package/src/components/form/fields/schema-definition/types.ts +0 -185
  715. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  716. package/src/components/form/fields/select/Select.stories.tsx +0 -890
  717. package/src/components/form/fields/select/Select.tsx +0 -624
  718. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  719. package/src/components/form/fields/string/String.stories.tsx +0 -86
  720. package/src/components/form/fields/string/String.tsx +0 -43
  721. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  722. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  723. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  724. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  725. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  726. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  727. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  728. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  729. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  730. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -246
  731. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  732. package/src/components/form/fields/url/Url.stories.tsx +0 -97
  733. package/src/components/form/fields/url/Url.tsx +0 -85
  734. package/src/components/form/index.tsx +0 -47
  735. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -241
  736. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  737. package/src/components/imageLightbox/index.ts +0 -1
  738. package/src/components/log/Log.stories.tsx +0 -348
  739. package/src/components/log/Log.tsx +0 -285
  740. package/src/components/menu/Menu.stories.tsx +0 -158
  741. package/src/components/menu/Menu.tsx +0 -312
  742. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  743. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  744. package/src/components/qonsoleSmartInput/index.ts +0 -16
  745. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  746. package/src/components/qonsoleSmartInput/types.ts +0 -133
  747. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  748. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  749. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  750. package/src/components/searchFilterBar/index.ts +0 -1
  751. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  752. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  753. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  754. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  755. package/src/components/smartEditor/helpers.ts +0 -217
  756. package/src/components/smartEditor/index.ts +0 -35
  757. package/src/components/smartEditor/styling.ts +0 -45
  758. package/src/components/smartEditor/types.ts +0 -211
  759. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  760. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  761. package/src/components/smartEditor/useLspHover.ts +0 -230
  762. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  763. package/src/components/smartEditor/useLspSession.ts +0 -231
  764. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  765. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -174
  766. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  767. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -260
  768. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  769. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -590
  770. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  771. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  772. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -186
  773. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  774. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -109
  775. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  776. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -357
  777. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  778. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  779. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  780. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  781. package/src/components/supportTicket/index.ts +0 -10
  782. package/src/components/supportTicket/meta.ts +0 -206
  783. package/src/components/supportTicket/ticketModel.ts +0 -131
  784. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  785. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -318
  786. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  787. package/src/components/ticketReferences/index.ts +0 -2
  788. package/src/components/ticketThread/TicketThread.stories.tsx +0 -844
  789. package/src/components/ticketThread/TicketThread.tsx +0 -719
  790. package/src/components/ticketThread/index.ts +0 -6
  791. package/src/contexts/FetchContext.tsx +0 -25
  792. package/src/contexts/ReqraftContext.tsx +0 -9
  793. package/src/contexts/StorageContext.tsx +0 -33
  794. package/src/global.d.ts +0 -4
  795. package/src/helpers/allowedValues.ts +0 -249
  796. package/src/helpers/choiceChip.ts +0 -227
  797. package/src/helpers/common.ts +0 -326
  798. package/src/helpers/dpqlDetection.ts +0 -209
  799. package/src/helpers/expressions.ts +0 -140
  800. package/src/helpers/optionUiTypes.ts +0 -199
  801. package/src/helpers/options.ts +0 -150
  802. package/src/helpers/providerValue.ts +0 -125
  803. package/src/helpers/scrollbar.ts +0 -32
  804. package/src/helpers/singleLineString.ts +0 -61
  805. package/src/helpers/templateItems.ts +0 -81
  806. package/src/helpers/templateText.ts +0 -350
  807. package/src/helpers/templates.ts +0 -602
  808. package/src/helpers/validations.ts +0 -2085
  809. package/src/hooks/useArgSchema.ts +0 -37
  810. package/src/hooks/useCoarsePointer.ts +0 -30
  811. package/src/hooks/useFetch/useFetch.stories.tsx +0 -388
  812. package/src/hooks/useFetch/useFetch.tsx +0 -154
  813. package/src/hooks/usePhoneViewport.ts +0 -34
  814. package/src/hooks/useQorusTypes.ts +0 -233
  815. package/src/hooks/useReqraftProperty.ts +0 -16
  816. package/src/hooks/useStorage/useStorage.stories.tsx +0 -177
  817. package/src/hooks/useStorage/useStorage.ts +0 -35
  818. package/src/hooks/useTemplates.ts +0 -123
  819. package/src/hooks/useValidation.ts +0 -9
  820. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  821. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -675
  822. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  823. package/src/index.tsx +0 -86
  824. package/src/providers/FetchProvider.tsx +0 -40
  825. package/src/providers/ReqraftProvider.tsx +0 -52
  826. package/src/providers/StorageProvider.tsx +0 -131
  827. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  828. package/src/stores/currentUser/currentUser.tsx +0 -94
  829. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  830. package/src/stories/Tests/utils.ts +0 -320
  831. package/src/stories/storyNetwork.ts +0 -92
  832. package/src/stories/tracking.tsx +0 -206
  833. package/src/tracking/browser/attach.ts +0 -186
  834. package/src/tracking/browser/env.ts +0 -78
  835. package/src/tracking/core/consent.ts +0 -37
  836. package/src/tracking/core/engagement.ts +0 -47
  837. package/src/tracking/core/experiments.ts +0 -258
  838. package/src/tracking/core/hash.ts +0 -26
  839. package/src/tracking/core/ids.ts +0 -25
  840. package/src/tracking/core/observable.ts +0 -23
  841. package/src/tracking/core/queue.ts +0 -131
  842. package/src/tracking/core/sections.ts +0 -166
  843. package/src/tracking/core/storage.ts +0 -69
  844. package/src/tracking/core/tracker.ts +0 -417
  845. package/src/tracking/core/types.ts +0 -162
  846. package/src/tracking/core/utm.ts +0 -23
  847. package/src/tracking/index.ts +0 -72
  848. package/src/tracking/markup.ts +0 -17
  849. package/src/tracking/react/Experiment.tsx +0 -44
  850. package/src/tracking/react/TrackingProvider.tsx +0 -56
  851. package/src/tracking/react/hooks.ts +0 -106
  852. package/src/tracking/react/index.ts +0 -13
  853. package/src/tracking/testing.ts +0 -108
  854. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -327
  855. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  856. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -157
  857. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  858. package/src/tracking/ui/anchor.ts +0 -180
  859. package/src/tracking/ui/card.ts +0 -464
  860. package/src/tracking/ui/client.ts +0 -117
  861. package/src/tracking/ui/index.ts +0 -77
  862. package/src/tracking/ui/types.ts +0 -110
  863. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  864. package/src/types/Form.ts +0 -29
  865. package/src/types.ts +0 -14
  866. package/src/utils/datetime.ts +0 -10
  867. package/src/utils/fetch.ts +0 -457
  868. package/src/utils/lspClient.ts +0 -711
  869. package/src/utils/lspClient.types.ts +0 -211
  870. package/src/utils/queryUnlessCancelled.ts +0 -28
  871. package/src/utils/websocket.ts +0 -293
  872. package/vite.config.ts +0 -58
  873. package/vitest.config.ts +0 -69
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
2
6
  var __assign = (this && this.__assign) || function () {
3
7
  __assign = Object.assign || function(t) {
4
8
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -10,28 +14,41 @@ var __assign = (this && this.__assign) || function () {
10
14
  };
11
15
  return __assign.apply(this, arguments);
12
16
  };
13
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
18
51
  }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
52
  };
36
53
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
37
54
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
@@ -42,28 +59,42 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
42
59
  }
43
60
  return to.concat(ar || Array.prototype.slice.call(from));
44
61
  };
62
+ var __importDefault = (this && this.__importDefault) || function (mod) {
63
+ return (mod && mod.__esModule) ? mod : { "default": mod };
64
+ };
45
65
  Object.defineProperty(exports, "__esModule", { value: true });
46
66
  exports.SmartEditor = void 0;
47
67
  var jsx_runtime_1 = require("react/jsx-runtime");
48
68
  // Copyright 2026 Qore Technologies, s.r.o.
49
69
  var reqore_1 = require("@qoretechnologies/reqore");
50
70
  var Popover_1 = require("@qoretechnologies/reqore/dist/components/Popover");
71
+ var sizes_1 = require("@qoretechnologies/reqore/dist/constants/sizes");
51
72
  var RichTextEditor_1 = require("@qoretechnologies/reqore/dist/components/RichTextEditor");
52
73
  var colors_1 = require("@qoretechnologies/reqore/dist/helpers/colors");
53
- var react_1 = __importStar(require("react"));
74
+ var react_1 = require("react");
75
+ var react_use_1 = require("react-use");
76
+ var styled_components_1 = __importDefault(require("styled-components"));
54
77
  var slate_1 = require("slate");
55
78
  var slate_react_1 = require("slate-react");
56
79
  var emittedValues_1 = require("../form/fields/emittedValues");
57
80
  var helpers_1 = require("./helpers");
81
+ var useTemplateTags_1 = require("../form/fields/rich-text/useTemplateTags");
82
+ var CompletionMenu_1 = require("./CompletionMenu");
58
83
  var MarkdownDoc_1 = require("./MarkdownDoc");
59
- var styling_1 = require("./styling");
84
+ var typedReferences_1 = require("./typedReferences");
60
85
  var useLspAutocomplete_1 = require("./useLspAutocomplete");
61
86
  var useLspDiagnosticDecorations_1 = require("./useLspDiagnosticDecorations");
62
87
  var useLspHover_1 = require("./useLspHover");
88
+ var useCoarsePointer_1 = require("../../hooks/useCoarsePointer");
63
89
  var useLspSemanticTokens_1 = require("./useLspSemanticTokens");
64
90
  var useLspSignatureHelp_1 = require("./useLspSignatureHelp");
91
+ var templateTree_1 = require("../../helpers/templateTree");
92
+ var useTabCameIn_1 = require("./useTabCameIn");
93
+ var templateTree_2 = require("../../helpers/templateTree");
94
+ var typedReferences_2 = require("./typedReferences");
95
+ var useEditingAids_1 = require("./useEditingAids");
65
96
  // One-Dark-ish palette keyed off the LSP semantic-token legend; absent
66
- // types fall through to Slate's default text colour.
97
+ // types fall through to Slate's default text color.
67
98
  var SEMANTIC_TOKEN_COLORS = {
68
99
  keyword: '#c678dd', // purple — control flow, `in`, `not`, `between`, …
69
100
  operator: '#56b6c2', // cyan — ==, !=, &&, ||, =~, !~, …
@@ -82,56 +113,6 @@ var SEMANTIC_TOKEN_COLORS = {
82
113
  decorator: '#c678dd', // purple
83
114
  namespace: '#e5c07b', // yellow
84
115
  };
85
- // Kind chip + a Warning chip (Qonsole flags mutating verbs) for a
86
- // completion row; undefined when neither applies.
87
- function buildKindBadge(item) {
88
- var _a;
89
- var kindIntent = ((_a = item.metadata) === null || _a === void 0 ? void 0 : _a.kind) !== undefined ? styling_1.COMPLETION_KIND_INTENTS[item.metadata.kind] : undefined;
90
- var kindBadge = item.kindLabel ?
91
- {
92
- label: item.kindLabel,
93
- minimal: true,
94
- size: 'small',
95
- intent: kindIntent,
96
- }
97
- : null;
98
- var warningBadge = item.warning ?
99
- {
100
- label: 'Warning',
101
- size: 'small',
102
- intent: 'warning',
103
- tooltip: item.warning,
104
- }
105
- : null;
106
- if (warningBadge && kindBadge)
107
- return [kindBadge, warningBadge];
108
- if (warningBadge)
109
- return [warningBadge];
110
- if (kindBadge)
111
- return kindBadge;
112
- return undefined;
113
- }
114
- // Tooltip prop rendering a row's LSP `documentation` (markdown/plaintext),
115
- // or undefined when there is none.
116
- function buildDocTooltip(item) {
117
- var _a;
118
- var doc = item.documentation;
119
- if (!doc)
120
- return undefined;
121
- var isMarkdown = typeof doc === 'object' && doc !== null && doc.kind === 'markdown';
122
- var text = typeof doc === 'string' ? doc : ((_a = doc === null || doc === void 0 ? void 0 : doc.value) !== null && _a !== void 0 ? _a : '');
123
- if (!text)
124
- return undefined;
125
- return {
126
- content: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: text, markdown: isMarkdown }),
127
- placement: 'right',
128
- delay: 200,
129
- // The cast covers popover props missing from the older tooltip type.
130
- flat: true,
131
- transparent: true,
132
- backgroundBlur: 20,
133
- };
134
- }
135
116
  // Applies the server's `textEdit` (replacing the typed partial token so
136
117
  // `-` + `--desc=` doesn't become `---desc=`), else inserts at the cursor.
137
118
  // DPQL/Qonsole wrappers override this to insert tag chips.
@@ -175,19 +156,6 @@ var defaultCompletionInserter = function (item, editor, ctx) {
175
156
  // Editor may not be focused.
176
157
  }
177
158
  };
178
- // Module-scoped so the reference is stable across renders — an inline
179
- // object would defeat ReqoreMenuItem's memoization.
180
- var COMPLETION_ITEM_STYLE = { fontFamily: 'monospace' };
181
- // Memoized completion row so badge/tooltip derivation runs once per item,
182
- // not on every SmartEditor re-render.
183
- var CompletionMenuItem = (0, react_1.memo)(function (_a) {
184
- var item = _a.item, isFocused = _a.isFocused, onSelect = _a.onSelect;
185
- var badge = (0, react_1.useMemo)(function () { return buildKindBadge(item); }, [item]);
186
- var tooltip = (0, react_1.useMemo)(function () { return buildDocTooltip(item); }, [item]);
187
- var handleClick = (0, react_1.useCallback)(function () { return onSelect(item); }, [onSelect, item]);
188
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: item.icon, label: item.label, description: item.description, badge: badge, tooltip: tooltip, selected: isFocused, active: isFocused, minimal: true, scrollIntoView: isFocused, onClick: handleClick, compact: true, style: COMPLETION_ITEM_STYLE }));
189
- });
190
- CompletionMenuItem.displayName = 'CompletionMenuItem';
191
159
  // Memoized signature pill. Prefers ABOVE the caret line, falling back to
192
160
  // BELOW when that would clip the viewport top; horizontally clamped to the
193
161
  // viewport.
@@ -246,14 +214,61 @@ var SignatureHelpPill = (0, react_1.memo)(function (_a) {
246
214
  boxShadow: '0 4px 16px rgba(0,0,0,0.3)',
247
215
  pointerEvents: 'none',
248
216
  zIndex: 100,
249
- }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreCallout, { size: 'small', paddingSize: 'tiny', style: { fontFamily: 'monospace' }, label: label }), paramDoc && ((0, jsx_runtime_1.jsx)("div", { style: { marginTop: 4, opacity: 0.85 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: paramDoc, markdown: true }) }))] }, "sig-".concat(position.left, "-").concat(position.top, "-").concat(placeBelow)));
217
+ }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreCallout, { size: 'small', paddingSize: 'tiny', style: { fontFamily: reqore_1.ReqoreFonts.mono }, label: label }), paramDoc && ((0, jsx_runtime_1.jsx)("div", { style: { marginTop: 4, opacity: 0.85 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: paramDoc, markdown: true }) }))] }, "sig-".concat(position.left, "-").concat(position.top, "-").concat(placeBelow)));
250
218
  });
251
219
  SignatureHelpPill.displayName = 'SignatureHelpPill';
220
+ /** Distinguishes the completion lists of the editors on a page, for each editor's `aria-controls`. */
221
+ var completionMenuCounter = 0;
222
+ /* The text's box in its row: it takes the row, and gives it up to the Details button beside it on a touch
223
+ screen. */
224
+ /** The width of the editor's row (Reqore's phone width) at or below which its Details button is its icon alone. */
225
+ var DETAILS_WORD_MIN_ROW_WIDTH = 480;
226
+ /**
227
+ * The box the text is drawn in, as a code editor draws it where asked: lines that do not wrap (`wordWrap: off`),
228
+ * scrolled inside the box, no wider than it; a height the text scrolls within (`maxHeight`); each line's number
229
+ * before it (`lineNumbers`), counted by its paragraph.
230
+ */
231
+ var StyledEditorBox = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n [data-slate-editor] {\n ", "\n ", "\n ", "\n }\n ", "\n"], ["\n [data-slate-editor] {\n ", "\n ", "\n ", "\n }\n ", "\n"])), function (_a) {
232
+ var $wordWrap = _a.$wordWrap;
233
+ return $wordWrap === 'off' ? 'white-space: pre !important; overflow-wrap: normal !important; overflow-x: auto;' : '';
234
+ }, function (_a) {
235
+ var $maxHeight = _a.$maxHeight;
236
+ return ($maxHeight ? "max-height: ".concat($maxHeight, "; overflow-y: auto;") : '');
237
+ }, function (_a) {
238
+ var $lineNumbers = _a.$lineNumbers;
239
+ return ($lineNumbers ? 'counter-reset: smart-editor-line; padding-left: 3em !important;' : '');
240
+ }, function (_a) {
241
+ var $lineNumbers = _a.$lineNumbers;
242
+ return $lineNumbers ?
243
+ "[data-slate-editor] > [data-slate-node='element'] {\n position: relative;\n counter-increment: smart-editor-line;\n }\n [data-slate-editor] > [data-slate-node='element']::before {\n content: counter(smart-editor-line);\n position: absolute;\n left: -3em;\n width: 2.2em;\n text-align: right;\n opacity: 0.45;\n user-select: none;\n pointer-events: none;\n }"
244
+ : '';
245
+ });
246
+ var EDITOR_BOX_STYLE = {
247
+ position: 'relative',
248
+ flex: '1 1 auto',
249
+ minWidth: 0,
250
+ };
251
+ /**
252
+ * The button beside the text that opens the template picker for a pick at the caret (qorus#646): where a value
253
+ * cannot be written after the text before the caret (`insertableAt`), it says why and cannot be pressed. Its press
254
+ * keeps the focus, and the caret the pick goes at, in the text.
255
+ */
256
+ var TemplateButton = function (_a) {
257
+ var size = _a.size, insertable = _a.insertable, notInsertable = _a.notInsertable, open = _a.open;
258
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'smart-editor-template-button', icon: 'MoneyDollarCircleLine', fixed: true, size: size !== null && size !== void 0 ? size : 'normal', "aria-label": 'Insert a template', tooltip: insertable ? 'Insert a template' : notInsertable, disabled: !insertable, onMouseDown: function (event) { return event.preventDefault(); }, onClick: function (event) {
259
+ var _a = event.currentTarget.getBoundingClientRect(), left = _a.left, bottom = _a.bottom;
260
+ open({ left: left, bottom: bottom });
261
+ } }));
262
+ };
252
263
  exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
253
- var session = _a.session, value = _a.value, onChange = _a.onChange, decorate = _a.decorate, customRenderLeaf = _a.customRenderLeaf, tagRenderer = _a.tagRenderer, onTagClick = _a.onTagClick, triggerCharacters = _a.triggerCharacters, _b = _a.converter, converter = _b === void 0 ? helpers_1.defaultSlateConverter : _b, _c = _a.completionInserter, completionInserter = _c === void 0 ? defaultCompletionInserter : _c, topActions = _a.topActions, height = _a.height, _d = _a.readOnly, readOnly = _d === void 0 ? false : _d, _e = _a.showDiagnostics, showDiagnostics = _e === void 0 ? true : _e, onBlur = _a.onBlur, loadingIndicator = _a.loadingIndicator, _f = _a.enableHover, enableHover = _f === void 0 ? true : _f, _g = _a.isLoading, isLoading = _g === void 0 ? false : _g, _h = _a.enableSignatureHelp, enableSignatureHelp = _h === void 0 ? true : _h;
264
+ var _b, _c;
265
+ var session = _a.session, value = _a.value, onChange = _a.onChange, decorate = _a.decorate, customRenderLeaf = _a.customRenderLeaf, tagRenderer = _a.tagRenderer, onTagClick = _a.onTagClick, triggerCharacters = _a.triggerCharacters, _d = _a.converter, converter = _d === void 0 ? helpers_1.defaultSlateConverter : _d, _e = _a.completionInserter, completionInserter = _e === void 0 ? defaultCompletionInserter : _e, topActions = _a.topActions, height = _a.height, size = _a.size, _f = _a.readOnly, readOnly = _f === void 0 ? false : _f, _g = _a.showDiagnostics, showDiagnostics = _g === void 0 ? true : _g, onBlur = _a.onBlur, tags = _a.tags, loadingIndicator = _a.loadingIndicator, _h = _a.enableHover, enableHover = _h === void 0 ? true : _h, hoverDelayMs = _a.hoverDelayMs, _j = _a.isLoading, isLoading = _j === void 0 ? false : _j, _k = _a.enableSignatureHelp, enableSignatureHelp = _k === void 0 ? true : _k, _l = _a.completeOnClick, completeOnClick = _l === void 0 ? false : _l, completionsWith = _a.completionsWith, emptyCompletionMessage = _a.emptyCompletionMessage, presentDiagnostics = _a.presentDiagnostics, diagnosticAction = _a.diagnosticAction, referenceNamesNothing = _a.referenceNamesNothing, templateRoots = _a.templateRoots, templateButton = _a.templateButton, editingLanguage = _a.editingLanguage, formatDocument = _a.formatDocument, _m = _a.wordWrap, wordWrap = _m === void 0 ? 'on' : _m, maxHeight = _a.maxHeight, _o = _a.lineNumbers, lineNumbers = _o === void 0 ? false : _o;
254
266
  var theme = (0, reqore_1.useReqoreTheme)();
255
267
  var editorRef = (0, react_1.useRef)(null);
268
+ var completionMenuId = (0, react_1.useMemo)(function () { return "completion-menu-".concat(++completionMenuCounter); }, []);
256
269
  var lastPlainTextRef = (0, react_1.useRef)(value);
270
+ // what an emptied text opens (set where the picker's roots are known, below)
271
+ var emptiedRef = (0, react_1.useRef)(function () { return undefined; });
257
272
  // Cached Slate nodes, refreshed only on EXTERNAL value changes — not on
258
273
  // the typing echo. Passing a fresh ref every keystroke re-runs
259
274
  // ReqoreRichTextEditor's tokenizer mid-token (typed `@s` collapses to a
@@ -264,9 +279,9 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
264
279
  from outside — a leading chip gains an empty text leaf before it — without
265
280
  changing its text, so `value` never changes and the cache above kept the
266
281
  tree the editor no longer had. Every offset computed from it (token
267
- colours, diagnostics, signature help) then pointed one leaf off: a Text
282
+ colors, diagnostics, signature help) then pointed one leaf off: a Text
268
283
  view seeded with `"$local:name" == "John"` was never highlighted. */
269
- var _j = (0, react_1.useReducer)(function (count) { return count + 1; }, 0), editorTreeVersion = _j[0], noteEditorTree = _j[1];
284
+ var _p = (0, react_1.useReducer)(function (count) { return count + 1; }, 0), editorTreeVersion = _p[0], noteEditorTree = _p[1];
270
285
  (0, react_1.useImperativeHandle)(ref, function () { return editorRef.current; }, []);
271
286
  // Gates all LSP hooks on both the connection (`isReady`) and any
272
287
  // wrapper context binding (`isContextReady`) — without the latter,
@@ -274,16 +289,117 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
274
289
  // the server context-less and the dropdown silently closes. Generic
275
290
  // sessions set `isContextReady: true`, collapsing this to `isReady`.
276
291
  var lspReady = session.isReady && session.isContextReady;
292
+ /* What the list offers at the caret: the server's answer, with the host's own entries merged in where they
293
+ can be written (`completionsWith`). Where no server can be asked, the host's alone. */
294
+ var noServer = session.isUnavailable && !!completionsWith;
295
+ var askServer = session.getCompletions;
296
+ var getCompletions = (0, react_1.useCallback)(function (plainText, offset, typedInText) { return __awaiter(void 0, void 0, void 0, function () {
297
+ var serverItems, _a;
298
+ return __generator(this, function (_b) {
299
+ switch (_b.label) {
300
+ case 0:
301
+ if (!noServer) return [3 /*break*/, 1];
302
+ _a = undefined;
303
+ return [3 /*break*/, 3];
304
+ case 1: return [4 /*yield*/, askServer(plainText, offset)];
305
+ case 2:
306
+ _a = _b.sent();
307
+ _b.label = 3;
308
+ case 3:
309
+ serverItems = _a;
310
+ return [2 /*return*/, completionsWith ?
311
+ completionsWith({ plainText: plainText, offset: offset, serverItems: serverItems, typedInText: typedInText })
312
+ : (serverItems !== null && serverItems !== void 0 ? serverItems : [])];
313
+ }
314
+ });
315
+ }); }, [noServer, askServer, completionsWith]);
316
+ /* What the language server completes where a value can be written (the start of the text), for the template
317
+ picker to offer beside the field's own templates: the record's fields, the template contexts, the functions
318
+ and the values (qorus#646, David: "users should be supported with all available completions in the template
319
+ picker"). Asked once the server is ready, again as the field's templates change, and when the picker opens. */
320
+ var _q = (0, react_1.useState)(), serverValues = _q[0], setServerValues = _q[1];
321
+ var askedValuesRef = (0, react_1.useRef)(0);
322
+ var askServerValues = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
323
+ var asked, items;
324
+ return __generator(this, function (_a) {
325
+ switch (_a.label) {
326
+ case 0:
327
+ // only an editor of templates has a template picker to offer them in (`templateRoots`)
328
+ if (noServer || !lspReady || !templateRoots)
329
+ return [2 /*return*/];
330
+ asked = ++askedValuesRef.current;
331
+ return [4 /*yield*/, askServer('', 0)];
332
+ case 1:
333
+ items = _a.sent();
334
+ // only the latest answer, and only while the editor is there
335
+ if (asked === askedValuesRef.current && mountedRef.current)
336
+ setServerValues(items);
337
+ return [2 /*return*/];
338
+ }
339
+ });
340
+ }); }, [noServer, lspReady, askServer, templateRoots]);
341
+ var mountedRef = (0, react_1.useRef)(true);
342
+ (0, react_1.useEffect)(function () { return function () {
343
+ mountedRef.current = false;
344
+ }; }, []);
345
+ // asked when the server is ready and as the field's templates change
346
+ (0, react_1.useEffect)(function () {
347
+ void askServerValues();
348
+ }, [lspReady, templateRoots]);
349
+ var pickerRoots = (0, react_1.useMemo)(
350
+ // a lone group of the field's opened only where nothing is added beside it
351
+ function () { return (templateRoots ? (0, templateTree_2.openLoneGroup)((0, templateTree_2.withServerCompletions)(templateRoots, serverValues)) : []); }, [templateRoots, serverValues]);
277
352
  var autocomplete = (0, useLspAutocomplete_1.useLspAutocomplete)({
278
- getCompletions: session.getCompletions,
279
- isReady: lspReady,
353
+ getCompletions: getCompletions,
354
+ isReady: lspReady || noServer,
280
355
  triggerCharacters: triggerCharacters,
281
356
  converter: converter,
282
357
  inserter: completionInserter,
358
+ emptyMessage: emptyCompletionMessage,
359
+ // what to write next, above the rows, where none of them is what is written
360
+ noteAt: emptyCompletionMessage,
361
+ // Enter or Tab where nothing more is listed: what is written at the caret, a whole reference, is its chip
362
+ commitTyped: function (editor) {
363
+ var _a;
364
+ return (0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing, (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor.path[0]);
365
+ },
283
366
  });
367
+ // the picker opened: what the server completes asked again, for the record and the context bound now
368
+ var pickerOpen = !!autocomplete.browse;
369
+ (0, react_1.useEffect)(function () {
370
+ if (pickerOpen)
371
+ void askServerValues();
372
+ }, [pickerOpen, askServerValues]);
284
373
  var hover = (0, useLspHover_1.useLspHover)(session, editorRef, converter, {
285
374
  enabled: enableHover,
375
+ debounceMs: hoverDelayMs,
376
+ // a chip whose props carry a tooltip (a field the record describes) shows that, not the server's hover too
377
+ chipHasOwnHover: function (tag) {
378
+ var _a;
379
+ return !!((_a = tagRenderer === null || tagRenderer === void 0 ? void 0 : tagRenderer(tag)) === null || _a === void 0 ? void 0 : _a.tooltip);
380
+ },
286
381
  });
382
+ /* The hover the popover drawn in this render is of: what it dismisses when it closes, and nothing newer. */
383
+ var shownHoverId = hover.hoverId;
384
+ /* A finger cannot hover: where the pointer is one, "Details" shows what the server says of the word at the
385
+ caret, in the same pop-up a mouse gets by hovering. Only where the server says anything (`hoverProvider`). */
386
+ var coarse = (0, useCoarsePointer_1.useCoarsePointer)();
387
+ /* The row the text and its Details button share, measured: in a row a phone's width or narrower, Details is its
388
+ icon alone - its word took the text's room (Foxhoundn on qlip #383: "The details button should be just an icon
389
+ on such small screen / container size"). The row, not the screen: an editor in a narrow card on a wide
390
+ screen is as short of room. */
391
+ var _r = (0, react_use_1.useMeasure)(), rowRef = _r[0], rowWidth = _r[1].width;
392
+ var detailsSaysItsWord = !rowWidth || rowWidth > DETAILS_WORD_MIN_ROW_WIDTH;
393
+ var showDetailsButton = coarse &&
394
+ // Details says what the word at the caret is, and a read-only text has no caret: a tap on a read-only
395
+ // rendering (a collapsed row's expression) opens what holds it, where Details is
396
+ !readOnly &&
397
+ enableHover &&
398
+ session.isReady &&
399
+ !!((_c = (_b = session.client) === null || _b === void 0 ? void 0 : _b.capabilities) === null || _c === void 0 ? void 0 : _c.hoverProvider);
400
+ /* The hover Details showed, drawn as a card under the button rather than over the text (`showAtCaret`). */
401
+ var _s = (0, react_1.useState)(), detailsHoverId = _s[0], setDetailsHoverId = _s[1];
402
+ var detailsShown = detailsHoverId !== undefined && hover.hoverId === detailsHoverId;
287
403
  /* What the editor has reported and the host has not handed back yet. A host can hand an emit back
288
404
  after the next key is already in the editor - one that debounces, or a render that lands between
289
405
  two keys - and that stale value is not a change: rebuilding the document from it replaced the text
@@ -309,7 +425,7 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
309
425
  }, [value, converter, editorTreeVersion]);
310
426
  /* A value set from outside is a change to the document as much as typing
311
427
  is — a Text view seeded after mount, a Preview following the author. The
312
- server colours and diagnoses its own copy of the text, so it must hold
428
+ server colors and diagnoses its own copy of the text, so it must hold
313
429
  this one; typing already sent its text, and is not resent. */
314
430
  var syncDocument = session.didChange;
315
431
  (0, react_1.useEffect)(function () {
@@ -323,21 +439,82 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
323
439
  lastPlainTextRef.current = value;
324
440
  syncDocument(value);
325
441
  }, [syncDocument, value, emitted]);
326
- var diagnosticDecorate = (0, useLspDiagnosticDecorations_1.useLspDiagnosticDecorations)(session.diagnostics, converter, slateValue);
442
+ /* The server's diagnostics as the editor says them: in the host's words for what it wrote itself
443
+ (`presentDiagnostics`), and without the error of a reference half-typed at the caret while its list is open
444
+ or on its way - a `$` typed to ask for a template is not a mistake yet (qorus#646, David's decision). It
445
+ is said once the list is put away. */
446
+ var listActive = autocomplete.isActive;
447
+ var shownDiagnostics = (0, react_1.useMemo)(function () {
448
+ var _a;
449
+ var editor = editorRef.current;
450
+ var nodes = (_a = editor === null || editor === void 0 ? void 0 : editor.children) !== null && _a !== void 0 ? _a : slateValue;
451
+ var said = presentDiagnostics ?
452
+ presentDiagnostics(session.diagnostics, converter.fromSlateNodes(nodes))
453
+ : session.diagnostics;
454
+ var at = editor === null || editor === void 0 ? void 0 : editor.selection;
455
+ if (!listActive || !converter.referenceBeingWritten || !at || !slate_1.Range.isCollapsed(at)) {
456
+ return said;
457
+ }
458
+ var _b = at.anchor.path, index = _b[0], child = _b[1];
459
+ var paragraph = nodes[index];
460
+ if (at.anchor.path.length !== 2 || !paragraph) {
461
+ return said;
462
+ }
463
+ var end = converter.selectionToOffset([paragraph], [0, child], at.anchor.offset);
464
+ var written = converter.referenceBeingWritten(converter.fromSlateNodes([paragraph]).slice(0, end));
465
+ /* what is said of the reference being written, which reaches the caret: from where it starts in what is
466
+ being written, or a whole reference that ends at the caret (`$data:receive_order.ev`, of which only `ev`
467
+ is being written) */
468
+ return said.filter(function (_a) {
469
+ var _b = _a.range, start = _b.start, to = _b.end;
470
+ return !(start.line === index &&
471
+ ((written > 0 && start.character >= end - written && start.character < end) ||
472
+ (start.character < end && to.line === index && to.character === end)));
473
+ });
474
+ }, [session.diagnostics, presentDiagnostics, converter, slateValue, listActive]);
475
+ var diagnosticDecorate = (0, useLspDiagnosticDecorations_1.useLspDiagnosticDecorations)(shownDiagnostics, converter, slateValue);
327
476
  // Server-driven syntax highlighting (replaces the old client-side regex
328
477
  // highlighter — see design doc §7).
329
478
  var semanticDecorate = (0, useLspSemanticTokens_1.useLspSemanticTokens)(session, converter, slateValue);
330
479
  // No-ops when the server doesn't advertise `signatureHelpProvider`.
331
480
  var signatureHelp = (0, useLspSignatureHelp_1.useLspSignatureHelp)(session, editorRef, converter, slateValue, { enabled: enableSignatureHelp });
481
+ /* What a code editor does for what is typed (`useEditingAids`): pairs closed, a selection wrapped, the
482
+ bracket at the caret matched, the search (Ctrl+F) and its replace, lines moved and copied, the document
483
+ formatted (Shift+Alt+F), completion asked for (Ctrl+Space). */
484
+ // the editing aids follow every change of the editor, its caret's included (the bracket match)
485
+ var aidsChangeRef = (0, react_1.useRef)(function () { return undefined; });
486
+ var aids = (0, useEditingAids_1.useEditingAids)({
487
+ editorRef: editorRef,
488
+ converter: converter,
489
+ nodes: slateValue,
490
+ language: editingLanguage,
491
+ readOnly: readOnly,
492
+ onFormat: formatDocument,
493
+ onComplete: function () {
494
+ var editor = editorRef.current;
495
+ var at = editor === null || editor === void 0 ? void 0 : editor.selection;
496
+ if (!editor || !at)
497
+ return;
498
+ try {
499
+ var rect = slate_react_1.ReactEditor.toDOMRange(editor, at).getBoundingClientRect();
500
+ autocomplete.openAtCaret(editor, at.anchor, { left: rect.left, bottom: rect.bottom });
501
+ }
502
+ catch (_a) {
503
+ // the caret is not drawn: nothing is asked
504
+ }
505
+ },
506
+ });
507
+ aidsChangeRef.current = aids.onEditorChange;
332
508
  var composedDecorate = (0, react_1.useCallback)(function (entry) {
333
509
  var _a;
334
510
  var userRanges = (_a = decorate === null || decorate === void 0 ? void 0 : decorate(entry)) !== null && _a !== void 0 ? _a : [];
335
511
  var semanticRanges = semanticDecorate(entry);
512
+ var aidRanges = aids.decorate(entry);
336
513
  var diagRanges = showDiagnostics ? diagnosticDecorate(entry) : [];
337
514
  // Diagnostics last so the wavy underline isn't overdrawn.
338
- return __spreadArray(__spreadArray(__spreadArray([], userRanges, true), semanticRanges, true), diagRanges, true);
339
- }, [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics]);
340
- // Paints semantic-token colours and diagnostic underlines, falling
515
+ return __spreadArray(__spreadArray(__spreadArray(__spreadArray([], userRanges, true), semanticRanges, true), aidRanges, true), diagRanges, true);
516
+ }, [decorate, semanticDecorate, diagnosticDecorate, showDiagnostics, aids.decorate]);
517
+ // Paints semantic-token colors and diagnostic underlines, falling
341
518
  // through to the consumer's `customRenderLeaf` for everything else.
342
519
  var renderLeafWithMarks = (0, react_1.useCallback)(function (props) {
343
520
  var _a, _b, _c, _d, _e, _f, _g, _h;
@@ -358,7 +535,19 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
358
535
  }, children: child }));
359
536
  }
360
537
  }
361
- // Underline outermost so it overlays the syntax colour; hex
538
+ // the bracket matching the one at the caret, and the search's matches (the current one stronger)
539
+ if (leaf.bracketMatch || leaf.findMatch) {
540
+ child = ((0, jsx_runtime_1.jsx)("span", { className: leaf.findCurrent ? 'smart-editor-find-current'
541
+ : leaf.findMatch ? 'smart-editor-find-match'
542
+ : 'smart-editor-bracket-match', style: {
543
+ borderRadius: 2,
544
+ background: leaf.findCurrent ? 'rgba(255, 200, 0, 0.55)'
545
+ : leaf.findMatch ? 'rgba(255, 200, 0, 0.25)'
546
+ : 'rgba(255, 255, 255, 0.12)',
547
+ outline: leaf.bracketMatch ? '1px solid rgba(255, 255, 255, 0.45)' : undefined,
548
+ }, children: child }));
549
+ }
550
+ // Underline outermost so it overlays the syntax color; hex
362
551
  // fallbacks cover host themes that omit a diagnostic intent.
363
552
  if (leaf.error) {
364
553
  var underlineColor = leaf.severity === 2 ? ((_d = (_c = theme.intents) === null || _c === void 0 ? void 0 : _c.warning) !== null && _d !== void 0 ? _d : '#f0a500')
@@ -372,8 +561,90 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
372
561
  }
373
562
  return child;
374
563
  }, [customRenderLeaf, theme]);
564
+ /* A reference typed out in full is drawn as its chip, as one picked from the completion list is: the
565
+ paragraph is redrawn from its text, which the converter reads it in (`rechipTypedReferences`). The text is
566
+ the same, so nothing is reported for it. */
567
+ var drawTypedReferences = typedReferences_2.drawRechipped;
568
+ // the editor has been left: every reference typed in it is drawn as its chip
569
+ var handleBlur = (0, react_1.useCallback)(function () {
570
+ var editor = editorRef.current;
571
+ if (editor && !readOnly) {
572
+ (0, typedReferences_2.commitTypedReferences)(editor, converter, referenceNamesNothing);
573
+ }
574
+ onBlur === null || onBlur === void 0 ? void 0 : onBlur();
575
+ }, [converter, readOnly, onBlur, referenceNamesNothing]);
576
+ /* A chip put in at the caret takes the place of the reference being written there, wherever it is picked
577
+ from (qorus#646, David's review). The completion list's inserter takes it away itself; the list the
578
+ editor's templates are browsed in is reqore's, which puts a chip in at the caret as it is: a `$` typed to
579
+ ask for a template stayed in front of the one picked, and `pos + 1 + $pos` is refused by the server. A
580
+ Slate plugin on the editor reqore made for this one (its `insertNodes`), so both are one step of one
581
+ change - one text sent, one undo. A chip put in at a place of its own (`at`: a typed reference drawn as its
582
+ chip, a chip replaced) is left alone. */
583
+ var referenceBeingWritten = readOnly ? undefined : converter.referenceBeingWritten;
584
+ (0, react_1.useEffect)(function () {
585
+ var editor = editorRef.current;
586
+ if (!editor || !referenceBeingWritten) {
587
+ return undefined;
588
+ }
589
+ var insertNodes = editor.insertNodes;
590
+ editor.insertNodes = function (nodes, options) {
591
+ var at = editor.selection;
592
+ var inserted = Array.isArray(nodes) ? nodes : [nodes];
593
+ var chip = inserted.length === 1 && inserted[0].type === 'tag';
594
+ if (chip && !(options === null || options === void 0 ? void 0 : options.at) && at && slate_1.Range.isCollapsed(at) && at.anchor.path.length === 2) {
595
+ var _a = at.anchor.path, index = _a[0], child = _a[1];
596
+ var paragraph = editor.children[index];
597
+ if (paragraph) {
598
+ var before = converter
599
+ .fromSlateNodes([paragraph])
600
+ .slice(0, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset));
601
+ var written = referenceBeingWritten(before);
602
+ // what is being written is typed text, in the text the caret is in
603
+ if (written > 0 && written <= at.anchor.offset) {
604
+ slate_1.Transforms.delete(editor, {
605
+ at: {
606
+ anchor: { path: at.anchor.path, offset: at.anchor.offset - written },
607
+ focus: at.anchor,
608
+ },
609
+ });
610
+ }
611
+ }
612
+ }
613
+ insertNodes(nodes, options);
614
+ };
615
+ return function () {
616
+ editor.insertNodes = insertNodes;
617
+ };
618
+ }, [converter, referenceBeingWritten]);
619
+ /* Whether a template can be written at the caret, for the template button: asked again at every change of the
620
+ editor, a move of its caret included, so the button is never left as it was for a caret that has moved. */
621
+ var _t = (0, react_1.useState)(true), insertableAtCaret = _t[0], setInsertableAtCaret = _t[1];
622
+ var insertableAt = templateButton === null || templateButton === void 0 ? void 0 : templateButton.insertableAt;
623
+ var askInsertable = (0, react_1.useCallback)(function () {
624
+ var _a;
625
+ var editor = editorRef.current;
626
+ if (!editor || !insertableAt)
627
+ return;
628
+ try {
629
+ var nodes = editor.children;
630
+ var plainText = converter.fromSlateNodes(nodes);
631
+ var at = (_a = editor.selection) === null || _a === void 0 ? void 0 : _a.anchor;
632
+ var offset = at ? converter.selectionToOffset(nodes, at.path, at.offset) : plainText.length;
633
+ setInsertableAtCaret(insertableAt(plainText.slice(0, offset)));
634
+ }
635
+ catch (_b) {
636
+ // a selection the editor no longer has: the end of the text is asked about
637
+ setInsertableAtCaret(insertableAt(converter.fromSlateNodes(editor.children)));
638
+ }
639
+ }, [insertableAt, converter]);
640
+ (0, react_1.useEffect)(askInsertable, [askInsertable, value]);
641
+ var askInsertableRef = (0, react_1.useRef)(askInsertable);
642
+ askInsertableRef.current = askInsertable;
375
643
  var handleSlateChange = (0, react_1.useCallback)(function (newNodes) {
644
+ var _a;
376
645
  var plainText = converter.fromSlateNodes(newNodes);
646
+ // the text emptied by this edit (cleared, or its last character deleted): see below
647
+ var emptied = !!((_a = lastPlainTextRef.current) === null || _a === void 0 ? void 0 : _a.trim()) && !plainText.trim();
377
648
  // A selection change reports the same tree; anything else is the tree
378
649
  // the editor now holds, and the one every offset is computed against.
379
650
  if (newNodes !== slateValueRef.current) {
@@ -390,30 +661,151 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
390
661
  // parameter never advances.
391
662
  onChange(plainText);
392
663
  session.didChange(plainText);
664
+ // a reference typed out in full, and left by the character just typed, is drawn as its chip
665
+ var editor = editorRef.current;
666
+ var at = editor === null || editor === void 0 ? void 0 : editor.selection;
667
+ if (editor && at && slate_1.Range.isCollapsed(at) && !readOnly && converter.endsReference) {
668
+ var _b = at.anchor.path, index = _b[0], child = _b[1];
669
+ var paragraph = newNodes[index];
670
+ var rechipped = paragraph &&
671
+ (0, typedReferences_1.rechipTypedReferences)(converter, paragraph, index, converter.selectionToOffset([paragraph], [0, child], at.anchor.offset), referenceNamesNothing);
672
+ if (rechipped) {
673
+ drawTypedReferences(editor, index, rechipped);
674
+ }
675
+ }
393
676
  }
394
677
  if (editorRef.current && !readOnly) {
395
678
  autocomplete.onSlateChange(editorRef.current, newNodes);
679
+ /* A text emptied where the author is writing offers what an empty text offers: its templates and
680
+ fields, the picker at its top, as a click in it opens it - not nothing, nor a list of one row that
681
+ only leads there (Foxhoundn on qlip #425; David: the picker offers every completion in every
682
+ state). */
683
+ if (emptied)
684
+ emptiedRef.current();
396
685
  }
686
+ aidsChangeRef.current();
687
+ askInsertableRef.current();
397
688
  }, [onChange, session, readOnly, autocomplete, converter, emitted]);
398
689
  // Replace mode: open the dropdown at the chip's DOM rect (not the
399
690
  // editor selection — clicks on a Slate VOID inline don't reliably
400
691
  // update `editor.selection`) and atomically swap the chip on select.
692
+ var hasBrowseList = !!tags && Object.keys(tags).length > 0;
401
693
  var handleTagClickDefault = (0, react_1.useCallback)(function (tag, editor) {
402
694
  if (readOnly)
403
695
  return;
696
+ /* An editor with a browse list (`tags`) answers a click on a chip with that list, as a click anywhere
697
+ in its text, and as a value's text does: one list at a time. Opening the chip's replacements beside
698
+ it put two lists over the text, and what was typed then reached neither (qorus#646, David: "you
699
+ can't type"). */
700
+ if (hasBrowseList)
701
+ return;
404
702
  try {
405
703
  var tagPath = slate_react_1.ReactEditor.findPath(editor, tag);
406
704
  var domNode = slate_react_1.ReactEditor.toDOMNode(editor, tag);
407
705
  var rect = domNode.getBoundingClientRect();
408
- autocomplete.openAtChip(editor, tagPath, {
409
- left: rect.left,
410
- bottom: rect.bottom,
411
- });
706
+ /* A chip the field's templates or fields list opens the picker where it is - its group, its row the
707
+ keyboard's - and the pick takes its place (qorus#646). A second click on it puts the picker away. */
708
+ var listed = (templateRoots === null || templateRoots === void 0 ? void 0 : templateRoots.length) && typeof tag.value === 'string' ?
709
+ (0, templateTree_1.templateNodeFor)(templateRoots, tag.value)
710
+ : undefined;
711
+ if (listed) {
712
+ if (autocomplete.browse && autocomplete.isReplaceMode) {
713
+ autocomplete.close();
714
+ return;
715
+ }
716
+ autocomplete.openBrowse(editor, {
717
+ rect: { left: rect.left, bottom: rect.bottom },
718
+ replacementPath: tagPath,
719
+ levelId: listed.trailIds[listed.trailIds.length - 1],
720
+ selectedValue: tag.value,
721
+ });
722
+ return;
723
+ }
724
+ /* An editor that completes on a click lists what can stand in the chip's place - the fields and
725
+ templates the chip is one of - and the pick replaces it (qorus#646, David: a click on pos listed
726
+ nothing). */
727
+ autocomplete.openAtChip(editor, tagPath, { left: rect.left, bottom: rect.bottom }, { inItsPlace: completeOnClick });
412
728
  }
413
729
  catch (_a) {
414
730
  // Tag may have been removed mid-render — ignore.
415
731
  }
416
- }, [readOnly, autocomplete]);
732
+ }, [readOnly, autocomplete, hasBrowseList, completeOnClick, templateRoots]);
733
+ /* A click, a tap or Tab into the text asks what can be written at the caret (`completeOnClick`): the caret the
734
+ page put there, which Slate's selection follows only later. Not a click on a chip, which is a control of
735
+ its own, nor anything outside the text: the list's rows are drawn elsewhere, and their clicks reach this
736
+ box through React. */
737
+ var openAtCaret = autocomplete.openAtCaret, openBrowse = autocomplete.openBrowse;
738
+ var browsesOnClick = !!pickerRoots.length;
739
+ // the picker at the top of an emptied text, where it has templates and the author is in it
740
+ emptiedRef.current = function () {
741
+ var editor = editorRef.current;
742
+ if (!browsesOnClick || readOnly || !editor)
743
+ return;
744
+ try {
745
+ if (!slate_react_1.ReactEditor.isFocused(editor))
746
+ return;
747
+ var at = slate_react_1.ReactEditor.toDOMNode(editor, editor).getBoundingClientRect();
748
+ openBrowse(editor, {
749
+ rect: { left: at.left, bottom: at.bottom },
750
+ caret: slate_1.Editor.start(editor, []),
751
+ arrows: true,
752
+ });
753
+ }
754
+ catch (_a) {
755
+ // the editor is not drawn: nothing opens
756
+ }
757
+ };
758
+ // whether the Tab whose key comes up brought the focus into the editor (`onKeyUp` below)
759
+ var tabCameIn = (0, useTabCameIn_1.useTabCameIn)(function () {
760
+ var editor = editorRef.current;
761
+ return editor ? slate_react_1.ReactEditor.toDOMNode(editor, editor) : null;
762
+ });
763
+ var completeAtPageCaret = (0, react_1.useCallback)(function (target) {
764
+ var _a;
765
+ var editor = editorRef.current;
766
+ if ((!completeOnClick && !browsesOnClick) || readOnly || !editor)
767
+ return;
768
+ try {
769
+ var root = slate_react_1.ReactEditor.toDOMNode(editor, editor);
770
+ if (!(target instanceof Node) || !root.contains(target))
771
+ return;
772
+ if (target instanceof Element && target.closest('[data-slate-void="true"]'))
773
+ return;
774
+ var page = slate_react_1.ReactEditor.getWindow(editor).getSelection();
775
+ if (!page || page.rangeCount === 0 || !page.isCollapsed)
776
+ return;
777
+ var caret = slate_react_1.ReactEditor.toSlateRange(editor, page, {
778
+ exactMatch: false,
779
+ suppressThrow: true,
780
+ });
781
+ if (!caret)
782
+ return;
783
+ var box = page.getRangeAt(0).getBoundingClientRect();
784
+ // a caret in an empty line has no box of its own: the text's
785
+ var at = box.width || box.height ? box : root.getBoundingClientRect();
786
+ /* An empty text offers its templates and fields: the picker, at its top (qorus#646, David: a click in an
787
+ empty field shows the templates, the record's fields among them). */
788
+ var empty = !converter.fromSlateNodes(editor.children).trim();
789
+ /* A reference being written at the caret is completed where it is - what is listed of it, what to write
790
+ next and Browse all templates to put a working one in its place - not left for the picker at the top
791
+ (qorus#646, David's review: a click at the end of `$dynamic:` showed the picker's top silently). */
792
+ // what is typed in the text the caret is in: a chip before it is a value, not a reference being written
793
+ var leaf = slate_1.Editor.leaf(editor, caret.anchor)[0];
794
+ var writing = /[$@][\w.:{}*-]*$/.test(((_a = leaf.text) !== null && _a !== void 0 ? _a : '').slice(0, caret.anchor.offset));
795
+ if (browsesOnClick && !writing && (empty || !completeOnClick)) {
796
+ openBrowse(editor, {
797
+ rect: { left: at.left, bottom: at.bottom },
798
+ caret: caret.anchor,
799
+ arrows: empty,
800
+ });
801
+ return;
802
+ }
803
+ openAtCaret(editor, caret.anchor, { left: at.left, bottom: at.bottom });
804
+ }
805
+ catch (_b) {
806
+ // the editor is not drawn, or the page's caret is not in it: nothing is asked
807
+ }
808
+ }, [completeOnClick, browsesOnClick, readOnly, openAtCaret, openBrowse, converter]);
417
809
  var resolvedTagClick = onTagClick !== null && onTagClick !== void 0 ? onTagClick : handleTagClickDefault;
418
810
  // ReqoreRichTextEditor memoizes `renderElement` without `onTagClick` in
419
811
  // its deps, so it captures the FIRST render's handler forever (stale
@@ -431,15 +823,6 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
431
823
  return;
432
824
  autocomplete.onItemSelect(item, editorRef.current);
433
825
  }, [autocomplete]);
434
- // Flatten groups into rows carrying a flat index to compare against
435
- // `focusedIndex` (which is flat across all groups).
436
- var completionGroups = (0, react_1.useMemo)(function () {
437
- var flatIndex = 0;
438
- return autocomplete.groups.map(function (group) { return ({
439
- label: group.label,
440
- items: group.items.map(function (item) { return ({ item: item, index: flatIndex++ }); }),
441
- }); });
442
- }, [autocomplete.groups]);
443
826
  // Overlay shown while the session connects, a context binding resolves,
444
827
  // or the wrapper signals `isLoading` (e.g. DpqlEditor awaiting
445
828
  // `dpql/toRichtext`). The editor stays mounted underneath;
@@ -453,85 +836,128 @@ exports.SmartEditor = (0, react_1.forwardRef)(function (_a, ref) {
453
836
  var overlayContent = !showLoadingOverlay ? null
454
837
  : loadingIndicator !== undefined && loadingIndicator !== null ? loadingIndicator
455
838
  : (0, jsx_runtime_1.jsx)(reqore_1.ReqoreSpinner, { iconColor: 'info:lighten:2', size: 'small', centered: true, labelEffect: { textSize: 'small' }, children: defaultLoadingLabel });
456
- return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, children: [topActions, (0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative' }, children: [(0, jsx_runtime_1.jsx)(RichTextEditor_1.ReqoreRichTextEditor, { ref: editorRef, value: slateValue, onChange: handleSlateChange, readOnly: readOnly, customRenderLeaf: renderLeafWithMarks, decorate: composedDecorate, getTagProps: tagRenderer, onTagClick: stableOnTagClick, onBlur: onBlur, panelProps: {
457
- fluid: true,
458
- flat: true,
459
- style: {
460
- // Auto-grow: the editor sizes to its content and grows
461
- // as lines are added. `height` is an optional *minimum*
462
- // floor (e.g. a multi-line code editor); when omitted,
463
- // a single comfortable line so the empty field stays
464
- // clickable and the diagnostics panel hugs the input
465
- // instead of sitting below a tall reserved box.
466
- minHeight: height !== null && height !== void 0 ? height : '2.4em',
467
- fontFamily: 'monospace',
468
- fontSize: '13px',
469
- },
470
- } }), showLoadingOverlay && ((0, jsx_runtime_1.jsx)("div", {
471
- // Absolutely-positioned, centred panel covering the
472
- // editor body. `backdrop-filter: blur` matches the
473
- // 20px backdrop blur Reqore uses for drawers — keeps
474
- // the editor content faintly readable underneath while
475
- // signalling "this surface is paused". Pointer events
476
- // pass through; the LSP-dependent paths short-circuit
477
- // on `!isReady` / `!isContextReady` anyway.
478
- style: {
479
- position: 'absolute',
480
- inset: 0,
481
- display: 'flex',
482
- alignItems: 'center',
483
- justifyContent: 'center',
484
- background: 'rgba(10, 10, 10, 0.35)',
485
- backdropFilter: 'blur(4px)',
486
- WebkitBackdropFilter: 'blur(4px)',
487
- borderRadius: 4,
488
- pointerEvents: 'none',
489
- zIndex: 2,
490
- }, children: overlayContent })), autocomplete.isOpen &&
491
- (autocomplete.items.length > 0 ||
492
- autocomplete.isReplaceMode ||
493
- autocomplete.isFetching) && ((0, jsx_runtime_1.jsx)(Popover_1.ReqorePopover, { component: 'span', wrapperStyle: {
494
- // `fixed` anchor at the cursor's screen coords — avoids
495
- // parent-offset math.
496
- position: 'fixed',
497
- top: autocomplete.position.top,
498
- left: autocomplete.position.left,
499
- width: '1px',
500
- height: '1px',
501
- pointerEvents: 'none',
502
- }, content: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMenu, { rounded: true, flat: true, maxHeight: '300px', width: '300px', effect: styling_1.SMART_EDITOR_OVERLAY_EFFECT, customTheme: { main: '#1e0d29' }, children: [autocomplete.items.length === 0 &&
503
- (autocomplete.isReplaceMode || autocomplete.isFetching) && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuItem, { icon: 'LoaderLine', label: !session.isReady ? 'Connecting to language server…'
504
- : !session.isContextReady ?
505
- 'Loading schema…'
506
- : autocomplete.isFetching ?
507
- 'Loading completions…'
508
- : 'No alternatives available', disabled: true, compact: true })), completionGroups.map(function (group) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [group.label && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMenuDivider, { label: group.label,
509
- // @ts-expect-error — intent type not in older Reqore
510
- intent: 'muted' })), group.items.map(function (_a) {
511
- var item = _a.item, index = _a.index;
512
- return ((0, jsx_runtime_1.jsx)(CompletionMenuItem, { item: item, isFocused: index === autocomplete.focusedIndex, onSelect: handleCompletionSelect }, item.value));
513
- })] }, group.label || '_default')); })] }), openOnMount: true, noArrow: true, placement: 'bottom-start', handler: 'click', closeOnOutsideClick: true, closeOnInsideClick: false, minWidth: '300px', flat: true,
514
- // Transparent so the popover wrapper doesn't frame the menu.
515
- transparent: true, onToggleChange: autocomplete.handleExternalClose }, autocomplete.popoverKey)), hover.hoverContent && hover.hoverPosition && (
516
- // Non-interactive (`pointerEvents: none`) so typing/clicking
517
- // doesn't dismiss it via a focus trap.
518
- (0, jsx_runtime_1.jsx)(Popover_1.ReqorePopover, { component: 'span', wrapperStyle: {
519
- position: 'fixed',
520
- top: hover.hoverPosition.top,
521
- left: hover.hoverPosition.left,
522
- width: '1px',
523
- height: '1px',
524
- pointerEvents: 'none',
525
- }, content: (0, jsx_runtime_1.jsx)("div", { style: { padding: 4 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: hover.hoverContent.value, markdown: hover.hoverContent.kind === 'markdown' }) }), openOnMount: true, noArrow: true, placement: 'top', handler: 'hover', closeOnOutsideClick: true, minWidth: '220px', flat: true, transparent: true, backgroundBlur: 20, onToggleChange: function (open) {
526
- if (!open)
527
- hover.clearHover();
528
- } }, "hover-".concat(hover.hoverPosition.left, "-").concat(hover.hoverPosition.top))), signatureHelp.signature && signatureHelp.position && ((0, jsx_runtime_1.jsx)(SignatureHelpPill, { signature: signatureHelp.signature, position: signatureHelp.position }))] }), showDiagnostics && session.diagnostics.length > 0 && (
529
- // One ReqoreMessage per diagnostic, severity → intent. Same
530
- // `session.diagnostics` source as the inline underline above.
531
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'small', children: session.diagnostics.map(function (diag, i) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), icon: diag.severity === 2 ? 'AlertLine'
839
+ return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, children: [topActions, aids.findBar, (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { ref: rowRef, fluid: true, verticalAlign: 'flex-start', className: 'smart-editor-row', "data-completion": autocomplete.isOpen ? 'open'
840
+ : autocomplete.isActive ?
841
+ 'asking'
842
+ : 'idle', children: [(0, jsx_runtime_1.jsxs)(StyledEditorBox, { style: EDITOR_BOX_STYLE, "$wordWrap": wordWrap, "$maxHeight": maxHeight, "$lineNumbers": lineNumbers, className: 'smart-editor-box', onClick: function (event) { return completeAtPageCaret(event.target); },
843
+ /* Tab's key comes up in the editor it moved the focus into. One that went down in the editor - a Tab
844
+ that took a completion, or moved the focus on - asks nothing: its key coming up here reopened the
845
+ list just taken from (qorus#646). */
846
+ onKeyUp: function (event) {
847
+ if (event.key === 'Tab' && tabCameIn())
848
+ completeAtPageCaret(event.target);
849
+ }, children: [(0, jsx_runtime_1.jsx)(RichTextEditor_1.ReqoreRichTextEditor, { ref: editorRef, value: slateValue, onChange: handleSlateChange, readOnly: readOnly, customRenderLeaf: renderLeafWithMarks, decorate: composedDecorate, getTagProps: tagRenderer, onTagClick: stableOnTagClick, size: size, onBlur: handleBlur, onKeyDown: function (event) {
850
+ aids.onKeyDown(event);
851
+ },
852
+ // the field's templates, browsed when the text is clicked, tapped or tabbed into: the browse list,
853
+ // drawn as the completion list is
854
+ tags: tags, tagsListProps: __assign({ useTargetWidth: true }, useTemplateTags_1.TEMPLATE_BROWSE_LIST_PROPS), "aria-autocomplete": 'list', "aria-expanded": autocomplete.isOpen, "aria-controls": completionMenuId, panelProps: {
855
+ fluid: true,
856
+ flat: true,
857
+ style: {
858
+ // Auto-grow: the editor sizes to its content and grows
859
+ // as lines are added. `height` is an optional *minimum*
860
+ // floor (e.g. a multi-line code editor); when omitted,
861
+ // a single comfortable line so the empty field stays
862
+ // clickable and the diagnostics panel hugs the input
863
+ // instead of sitting below a tall reserved box.
864
+ minHeight: height !== null && height !== void 0 ? height : '2.4em',
865
+ /* reqore's mono stack, as every other code-like text: the bare generic keyword is the browser's
866
+ default fixed-width font (Courier in Chrome on macOS), larger than the field's own face */
867
+ fontFamily: reqore_1.ReqoreFonts.mono,
868
+ /* the size the text is written in (the text area's, for this size), so the frame and its `em`
869
+ floor are the text's: a fixed 13px was larger than a small field's text, and the panel's own
870
+ size larger again, which made the frame taller than the field's other tabs */
871
+ fontSize: sizes_1.CONTROL_TEXT_FROM_SIZE[size !== null && size !== void 0 ? size : 'normal'],
872
+ },
873
+ } }), showLoadingOverlay && ((0, jsx_runtime_1.jsx)("div", {
874
+ // Absolutely-positioned, centred panel covering the
875
+ // editor body. `backdrop-filter: blur` matches the
876
+ // 20px backdrop blur Reqore uses for drawers — keeps
877
+ // the editor content faintly readable underneath while
878
+ // signalling "this surface is paused". Pointer events
879
+ // pass through; the LSP-dependent paths short-circuit
880
+ // on `!isReady` / `!isContextReady` anyway.
881
+ style: {
882
+ position: 'absolute',
883
+ inset: 0,
884
+ display: 'flex',
885
+ alignItems: 'center',
886
+ justifyContent: 'center',
887
+ background: 'rgba(10, 10, 10, 0.35)',
888
+ backdropFilter: 'blur(4px)',
889
+ WebkitBackdropFilter: 'blur(4px)',
890
+ borderRadius: 4,
891
+ pointerEvents: 'none',
892
+ zIndex: 2,
893
+ }, children: overlayContent })), (0, jsx_runtime_1.jsx)(CompletionMenu_1.CompletionMenu, { autocomplete: autocomplete, id: completionMenuId, onSelect: handleCompletionSelect, templateRoots: pickerRoots, pendingLabel: !session.isReady ? 'Connecting to language server…'
894
+ : !session.isContextReady ? 'Loading schema…'
895
+ : undefined }), hover.hoverContent && hover.hoverPosition && (
896
+ // Non-interactive (`pointerEvents: none`) so typing/clicking
897
+ // doesn't dismiss it via a focus trap.
898
+ (0, jsx_runtime_1.jsx)(Popover_1.ReqorePopover
899
+ // one popover per hover: the next one is a popover of its own, wherever it is
900
+ , { component: 'span', wrapperStyle: {
901
+ position: 'fixed',
902
+ top: hover.hoverPosition.top,
903
+ left: hover.hoverPosition.left,
904
+ width: '1px',
905
+ height: '1px',
906
+ pointerEvents: 'none',
907
+ }, content: (0, jsx_runtime_1.jsx)("div", { style: { padding: 4 }, children: (0, jsx_runtime_1.jsx)(MarkdownDoc_1.MarkdownDoc, { content: hover.hoverContent.value, markdown: hover.hoverContent.kind === 'markdown' }) }), openOnMount: true, noArrow: true,
908
+ /* A mouse's hover is over the word it is of; what Details shows is under the button, beside the
909
+ text. Both are a popover's card, the surface a chip's hover is drawn on: drawn as glass, a hover
910
+ over an empty page was its words with nothing under them (Foxhoundn, qlip #392: "It looks like
911
+ the background is transparent? Is it not using a ReqorePopover / the tags tooltip?"). */
912
+ placement: detailsShown ? 'bottom-end' : 'top', handler: 'hover', closeOnOutsideClick: true, minWidth: '220px', onToggleChange: function (open) {
913
+ // this hover only: a popover replaced by the next hover says it closed as it goes
914
+ if (!open)
915
+ hover.clearHover(shownHoverId);
916
+ } }, "hover-".concat(hover.hoverId))), signatureHelp.signature && signatureHelp.position && ((0, jsx_runtime_1.jsx)(SignatureHelpPill, { signature: signatureHelp.signature, position: signatureHelp.position }))] }), templateButton && pickerRoots.length && !readOnly ?
917
+ (0, jsx_runtime_1.jsx)(TemplateButton, { size: size, insertable: insertableAtCaret, notInsertable: templateButton.notInsertable, open: function (rect) {
918
+ var editor = editorRef.current;
919
+ if (!editor)
920
+ return;
921
+ if (autocomplete.browse && !autocomplete.isReplaceMode) {
922
+ autocomplete.close();
923
+ return;
924
+ }
925
+ openBrowse(editor, {
926
+ rect: rect,
927
+ arrows: !converter.fromSlateNodes(editor.children).trim(),
928
+ });
929
+ } })
930
+ : null, showDetailsButton && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'smart-editor-details', icon: 'InformationLine', fixed: true, flat: true, minimal: true, "aria-label": 'Show what the word at the cursor is', tooltip: detailsSaysItsWord ? undefined : 'Details',
931
+ // the press keeps the focus, and the caret the details are of, in the text
932
+ onMouseDown: function (event) { return event.preventDefault(); }, onClick: function (event) {
933
+ var _a;
934
+ // anchored under the button's right edge: the card opens beside the text, not over it
935
+ /* Under the row, not only under the button: an editor of more than one line is taller than
936
+ the button, and the card drawn under the button covered the lines below the first
937
+ (DpqlEditor · Details On A Chip On A Touch Screen, at 390px). */
938
+ var _b = event.currentTarget.getBoundingClientRect(), right = _b.right, bottom = _b.bottom;
939
+ var row = event.currentTarget.closest('.smart-editor-row');
940
+ var rowBottom = (_a = row === null || row === void 0 ? void 0 : row.getBoundingClientRect().bottom) !== null && _a !== void 0 ? _a : bottom;
941
+ void hover
942
+ .showAtCaret({ left: right, top: Math.max(bottom, rowBottom) })
943
+ .then(setDetailsHoverId);
944
+ }, children: detailsSaysItsWord ? 'Details' : undefined }))] }), showDiagnostics && shownDiagnostics.length > 0 && (
945
+ // One ReqoreMessage per diagnostic, severity → intent. The same
946
+ // diagnostics as the inline underline above (`shownDiagnostics`).
947
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'small', children: shownDiagnostics.map(function (diag, i) { return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), "data-severity": (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), icon: diag.severity === 2 ? 'AlertLine'
532
948
  : diag.severity && diag.severity >= 3 ?
533
949
  'InformationLine'
534
- : 'ErrorWarningLine', size: 'small', opaque: false, children: diag.message }, "".concat(diag.range.start.line, ":").concat(diag.range.start.character, ":").concat(i))); }) }))] }));
950
+ : 'ErrorWarningLine', size: 'small', opaque: false, children: [diag.message, (function () {
951
+ // what the host can do about it, beside what is said of it
952
+ var action = diagnosticAction === null || diagnosticAction === void 0 ? void 0 : diagnosticAction(diag);
953
+ // as wide as its words, under what is said and apart from it: a message lays its children out at
954
+ // its width. The size of the message's words with a pointer, a finger's on a touch screen
955
+ // (Foxhoundn on qlip #425: "enormous compared to the text in the message")
956
+ return action ?
957
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { size: coarse ? 'small' : 'tiny', fluid: false, style: { marginTop: 8 }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { size: coarse ? 'small' : 'tiny', compact: true, fixed: true, className: 'smart-editor-diagnostic-action', intent: (0, useLspDiagnosticDecorations_1.severityToIntent)(diag.severity), onClick: action.onClick, children: action.label }) })
958
+ : null;
959
+ })()] }, "".concat(diag.range.start.line, ":").concat(diag.range.start.character, ":").concat(i))); }) }))] }));
535
960
  });
536
961
  exports.SmartEditor.displayName = 'SmartEditor';
962
+ var templateObject_1;
537
963
  //# sourceMappingURL=SmartEditor.js.map