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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +207 -97
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +21 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
@@ -1,4 +1,15 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
14
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
15
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -36,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
47
  }
37
48
  };
38
49
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.ExpressionField = void 0;
50
+ exports.ExpressionField = exports.DEFAULT_EXPRESSION_MODE_LABELS = void 0;
40
51
  var jsx_runtime_1 = require("react/jsx-runtime");
41
52
  // Copyright 2026 Qore Technologies, s.r.o.
42
53
  // The shell `TemplateField` renders when a field is in expression mode.
@@ -49,11 +60,15 @@ var jsx_runtime_1 = require("react/jsx-runtime");
49
60
  var reqore_1 = require("@qoretechnologies/reqore");
50
61
  var react_1 = require("react");
51
62
  var dpqlEditor_1 = require("../../dpqlEditor");
63
+ var TemplateBrowser_1 = require("../fields/template/TemplateBrowser");
52
64
  var dpqlHelpers_1 = require("../../dpqlEditor/dpqlHelpers");
53
65
  var builder_1 = require("./builder");
54
66
  var DpqlRendering_1 = require("./DpqlRendering");
67
+ var textOfExpression_1 = require("./textOfExpression");
55
68
  var useExpressions_1 = require("./useExpressions");
56
69
  var useRenderExpression_1 = require("./useRenderExpression");
70
+ var expressions_1 = require("../../../helpers/expressions");
71
+ var useQorusTypes_1 = require("../../../hooks/useQorusTypes");
57
72
  var optionUiTypes_1 = require("../../../helpers/optionUiTypes");
58
73
  var PARSE_DEBOUNCE_MS = 300;
59
74
  /**
@@ -65,24 +80,184 @@ var PARSE_DEBOUNCE_MS = 300;
65
80
  * has stopped moving rather than twitching on the way there.
66
81
  */
67
82
  var PREVIEW_DEBOUNCE_MS = 400;
68
- /** Retry cadence for seeding the Text editor while its LSP session opens. */
69
- var SEED_RETRY_MS = 400;
70
- var SEED_MAX_TRIES = 20;
83
+ /**
84
+ * A control in the field's column at its own width: the column stretches what it holds across it. The Text /
85
+ * Visual toggle is as wide as what the two say, not across the form: a control is its own width on any screen
86
+ * wider than a phone's (qorus#646, David's width rule), so it is not fluid either.
87
+ */
88
+ var OWN_WIDTH_STYLE = { alignSelf: 'flex-start' };
89
+ exports.DEFAULT_EXPRESSION_MODE_LABELS = {
90
+ text: 'Text',
91
+ visual: 'Visual',
92
+ textUnavailable: 'The expression language server is not available',
93
+ };
94
+ /** A diagnostic that is an error: the server marks one severity 1, or `error`. */
95
+ var isErrorDiagnostic = function (diagnostic) {
96
+ return diagnostic.severity === 1 || diagnostic.severity === 'error';
97
+ };
98
+ /** What the server says of a condition as a condition: drawn by the builder, on the cards it is about. */
99
+ var CONDITION_DIAGNOSTIC_CODES = ['NOT_A_CONDITION', 'CONDITION_BY_TRUTHINESS'];
100
+ /**
101
+ * What the server says of an expression built in the Visual view: its errors, in its words, at the danger
102
+ * intent. It writes the expression as DPQL (`dpql/serialize`) and reads it back (`dpql/parse`) on a document
103
+ * bound to the record's fields, as the Text view's document is - so the server judges what is built as it
104
+ * judges what is written. Mounted only while the Visual view shows a whole expression it can type.
105
+ *
106
+ * A condition is read as one (`condition: true`): what the server says of the whole condition and of each part
107
+ * of its `&&`, `||` and `!` goes to `onConditionParts`, for the builder to draw on the cards it is about, and is
108
+ * not repeated here.
109
+ */
110
+ var ExpressionServerErrors = (0, react_1.memo)(function (_a) {
111
+ var expression = _a.expression, fields = _a.fields, provider = _a.provider, recordType = _a.recordType, condition = _a.condition, onConditionParts = _a.onConditionParts;
112
+ var dpql = (0, dpqlEditor_1.useDpqlSession)({ fields: fields, provider: provider, recordType: recordType });
113
+ var ready = dpql.session.isReady && dpql.session.isContextReady;
114
+ var _b = (0, react_1.useState)([]), errors = _b[0], setErrors = _b[1];
115
+ var expressionKey = JSON.stringify(expression);
116
+ var serialize = dpql.serialize, parse = dpql.parse;
117
+ (0, react_1.useEffect)(function () {
118
+ if (!ready)
119
+ return undefined;
120
+ var cancelled = false;
121
+ var check = function () { return __awaiter(void 0, void 0, void 0, function () {
122
+ var said, parts, whole, text, result, _a;
123
+ return __generator(this, function (_b) {
124
+ switch (_b.label) {
125
+ case 0:
126
+ said = [];
127
+ _b.label = 1;
128
+ case 1:
129
+ _b.trys.push([1, 5, , 6]);
130
+ return [4 /*yield*/, serialize(JSON.parse(expressionKey))];
131
+ case 2:
132
+ text = _b.sent();
133
+ if (!text) return [3 /*break*/, 4];
134
+ return [4 /*yield*/, parse(text, undefined, condition ? { condition: true } : undefined)];
135
+ case 3:
136
+ result = _b.sent();
137
+ parts = (0, expressions_1.conditionPartsWithMessages)(result.parts, result.inferred_type, result.diagnostics);
138
+ whole =
139
+ condition ? (0, expressions_1.conditionWholeMessage)(result.inferred_type, result.diagnostics) : undefined;
140
+ said = result.diagnostics
141
+ .filter(function (d) {
142
+ var _a;
143
+ return isErrorDiagnostic(d) &&
144
+ !(condition && CONDITION_DIAGNOSTIC_CODES.includes(String((_a = d.code) !== null && _a !== void 0 ? _a : '')));
145
+ })
146
+ .map(function (d) { return d.message; });
147
+ _b.label = 4;
148
+ case 4: return [3 /*break*/, 6];
149
+ case 5:
150
+ _a = _b.sent();
151
+ // a server that cannot write or read it says nothing about it here
152
+ said = [];
153
+ parts = undefined;
154
+ whole = undefined;
155
+ return [3 /*break*/, 6];
156
+ case 6:
157
+ if (cancelled)
158
+ return [2 /*return*/];
159
+ setErrors(said);
160
+ onConditionParts === null || onConditionParts === void 0 ? void 0 : onConditionParts(expressionKey, parts, whole);
161
+ return [2 /*return*/];
162
+ }
163
+ });
164
+ }); };
165
+ void check();
166
+ return function () {
167
+ cancelled = true;
168
+ };
169
+ }, [ready, expressionKey, serialize, parse, condition, onConditionParts]);
170
+ if (!errors.length)
171
+ return null;
172
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, size: 'small', className: 'expression-server-errors', children: errors.map(function (message, index) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'danger', "data-severity": 'danger', size: 'small', flat: true, opaque: false, children: message }, index)); }) }));
173
+ });
71
174
  exports.ExpressionField = (0, react_1.memo)(function (_a) {
72
- var _b;
73
- var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, extraActions = _a.extraActions, provider = _a.provider, fields = _a.fields, recordType = _a.recordType, _c = _a.defaultMode, defaultMode = _c === void 0 ? 'visual' : _c, size = _a.size, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
175
+ var _b, _c, _d, _e;
176
+ var value = _a.value, onChange = _a.onChange, type = _a.type, returnType = _a.returnType, readOnly = _a.readOnly, expressionsOverride = _a.expressions, expressionsUrl = _a.expressionsUrl, localTemplates = _a.localTemplates, serverHandled = _a.serverHandled, condition = _a.condition, extraActions = _a.extraActions, provider = _a.provider, fields = _a.fields, recordType = _a.recordType, _f = _a.defaultMode, defaultMode = _f === void 0 ? 'text' : _f, initialText = _a.initialText, draftText = _a.draftText, onDraftChange = _a.onDraftChange, heldAsValue = _a.heldAsValue, requestedMode = _a.requestedMode, hideModeToggle = _a.hideModeToggle, modeLabels = _a.modeLabels, onTextUnavailable = _a.onTextUnavailable, onModeChange = _a.onModeChange, flushRef = _a.flushRef, size = _a.size, componentOverrides = _a.componentOverrides, reorder = _a.reorder;
74
177
  var expressions = (0, useExpressions_1.useExpressions)({
75
178
  override: expressionsOverride,
76
179
  expressionsUrl: expressionsUrl,
77
180
  }).expressions;
78
181
  var renderRich = (0, useRenderExpression_1.useRenderExpression)().renderRich;
79
- var _d = (0, react_1.useState)(defaultMode), mode = _d[0], setMode = _d[1];
182
+ var _g = (0, react_1.useState)(defaultMode), mode = _g[0], setMode = _g[1];
183
+ var modeWords = (0, react_1.useMemo)(function () { return (__assign(__assign({}, exports.DEFAULT_EXPRESSION_MODE_LABELS), modeLabels)); }, [modeLabels]);
184
+ var onModeChangeRef = (0, react_1.useRef)(onModeChange);
185
+ onModeChangeRef.current = onModeChange;
186
+ (0, react_1.useEffect)(function () {
187
+ var _a;
188
+ (_a = onModeChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onModeChangeRef, mode);
189
+ }, [mode]);
80
190
  /* The server's rendering of the current AST; empty until it has one. There is
81
191
  no client-side stand-in — see `useRenderExpression`. */
82
- var _e = (0, react_1.useState)(''), preview = _e[0], setPreview = _e[1];
192
+ var _h = (0, react_1.useState)(''), preview = _h[0], setPreview = _h[1];
83
193
  // Text mode state. `text` is the DPQL string the editor shows; the AST
84
194
  // (`value`) stays the source of truth, kept in sync via parse-on-edit.
85
- var _f = (0, react_1.useState)(''), text = _f[0], setText = _f[1];
195
+ var _j = (0, react_1.useState)((_b = draftText !== null && draftText !== void 0 ? draftText : initialText) !== null && _b !== void 0 ? _b : ''), text = _j[0], setText = _j[1];
196
+ /* What the author wrote in the Text view that the value does not hold (see `onDraftChange`): it is this
197
+ field's text until it parses or is cleared, so a later visit to the Text view shows it, not the value
198
+ written out. */
199
+ var draftRef = (0, react_1.useRef)(draftText);
200
+ var onDraftChangeRef = (0, react_1.useRef)(onDraftChange);
201
+ onDraftChangeRef.current = onDraftChange;
202
+ var setDraft = (0, react_1.useCallback)(function (next) {
203
+ var _a;
204
+ if (draftRef.current === next)
205
+ return;
206
+ draftRef.current = next;
207
+ (_a = onDraftChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onDraftChangeRef, next);
208
+ }, []);
209
+ /** The text the editor was given, for its echo of that text to be told from typing. */
210
+ var textRef = (0, react_1.useRef)(text);
211
+ textRef.current = text;
212
+ /* No language server to parse or write the text: the Text view cannot work, so the field shows the
213
+ Visual view, which needs none, and says why (qorus#646). */
214
+ var _k = (0, react_1.useState)(false), textUnavailable = _k[0], setTextUnavailable = _k[1];
215
+ /* Why the server would not write this value as text, or null. The field is then built in Visual: an empty
216
+ Text view would be one the author types over, replacing the value (qorus#646). */
217
+ var _l = (0, react_1.useState)(null), textRefused = _l[0], setTextRefused = _l[1];
218
+ // read when a refusal lands, so a host's new callback on each render does not restart the seed
219
+ var onTextUnavailableRef = (0, react_1.useRef)(onTextUnavailable);
220
+ onTextUnavailableRef.current = onTextUnavailable;
221
+ /* Whether the Text view's language server can parse and write its text - the session's own signal
222
+ (`onReady`), never a guess by time. Typed text waits for it; it is not asked of a session that is not
223
+ up, whose answer is "nothing parsed" (qorus#646: under load, text typed before the session was up
224
+ never reached the value). Each visit to the Text view opens a session of its own. */
225
+ var _m = (0, react_1.useState)(false), sessionReady = _m[0], setSessionReady = _m[1];
226
+ var sessionReadyRef = (0, react_1.useRef)(false);
227
+ /** Who waits for the session: told true when it is ready, false when it cannot be reached or goes. */
228
+ var sessionWaiters = (0, react_1.useRef)([]);
229
+ var settleSessionWaiters = (0, react_1.useCallback)(function (ready) {
230
+ var waiters = sessionWaiters.current;
231
+ sessionWaiters.current = [];
232
+ waiters.forEach(function (resolve) { return resolve(ready); });
233
+ }, []);
234
+ var whenSessionReady = (0, react_1.useCallback)(function () {
235
+ return sessionReadyRef.current ?
236
+ Promise.resolve(true)
237
+ : new Promise(function (resolve) { return sessionWaiters.current.push(resolve); });
238
+ }, []);
239
+ var handleTextReady = (0, react_1.useCallback)(function () {
240
+ sessionReadyRef.current = true;
241
+ setSessionReady(true);
242
+ settleSessionWaiters(true);
243
+ }, [settleSessionWaiters]);
244
+ (0, react_1.useEffect)(function () {
245
+ if (mode === 'text')
246
+ return;
247
+ sessionReadyRef.current = false;
248
+ setSessionReady(false);
249
+ settleSessionWaiters(false);
250
+ }, [mode, settleSessionWaiters]);
251
+ (0, react_1.useEffect)(function () { return function () { return settleSessionWaiters(false); }; }, [settleSessionWaiters]);
252
+ var handleTextUnavailable = (0, react_1.useCallback)(function () {
253
+ setTextUnavailable(true);
254
+ settleSessionWaiters(false);
255
+ onTextUnavailable === null || onTextUnavailable === void 0 ? void 0 : onTextUnavailable();
256
+ // text typed and not read stays as typed, in the Text view, with the reason under it: nothing is lost
257
+ if (pendingParse.current !== null)
258
+ return;
259
+ setMode('visual');
260
+ }, [onTextUnavailable, settleSessionWaiters]);
86
261
  /* The text the current AST was parsed FROM.
87
262
  *
88
263
  * The preview renders the AST, and the AST only moves on a SUCCESSFUL
@@ -91,15 +266,17 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
91
266
  * the editor does not contain: deleting the `2` from `1 + 2` left
92
267
  * "Unexpected end of input" sitting directly above a Preview confidently
93
268
  * reading `1 + 2`. */
94
- var _g = (0, react_1.useState)(''), astText = _g[0], setAstText = _g[1];
269
+ var _o = (0, react_1.useState)(''), astText = _o[0], setAstText = _o[1];
95
270
  /**
96
271
  * The server's answer to "can this expression's result satisfy the type
97
272
  * this field declares?". `null` when nothing has been asked, or when the
98
273
  * field declares no type worth asking about.
99
274
  */
100
- var _h = (0, react_1.useState)(null), typeCheck = _h[0], setTypeCheck = _h[1];
275
+ var _p = (0, react_1.useState)(null), typeCheck = _p[0], setTypeCheck = _p[1];
101
276
  var dpqlRef = (0, react_1.useRef)(null);
102
277
  var parseTimer = (0, react_1.useRef)(null);
278
+ /** The text typed whose parse is still waiting on the debounce, or null. */
279
+ var pendingParse = (0, react_1.useRef)(null);
103
280
  var ast = (0, react_1.useMemo)(function () { return value === null || value === void 0 ? void 0 : value.value; }, [value]);
104
281
  /**
105
282
  * The type the expression's result has to satisfy, sent with every parse.
@@ -113,6 +290,36 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
113
290
  var declared = Array.isArray(returnType) ? undefined : (returnType !== null && returnType !== void 0 ? returnType : type);
114
291
  return declared && !(0, optionUiTypes_1.isUntypedOptionType)(declared) ? declared : undefined;
115
292
  }, [returnType, type]);
293
+ /** A condition is asked as one, not as a type to fit. */
294
+ var parseOptions = (0, react_1.useMemo)(function () { return (condition ? { condition: true } : undefined); }, [condition]);
295
+ /**
296
+ * The expression built in the Visual view, as the server is asked about it (qorus#646): whole, and only
297
+ * where the server can type its operands - with the record's fields or a provider's. The server refuses
298
+ * operands its operators cannot combine (DPQL-E050, `@create + 1` with `create` a hash), which nothing
299
+ * on this side can tell; the Text view shows it as the server publishes it, and so does this view.
300
+ */
301
+ var serverCheckable = (0, react_1.useMemo)(function () {
302
+ return (mode === 'visual' &&
303
+ ((!!fields && Object.keys(fields).length > 0) || !!provider || !!condition)) ?
304
+ (0, textOfExpression_1.serializableExpression)(ast)
305
+ : undefined;
306
+ }, [mode, fields, provider, condition, ast]);
307
+ /* What the server said of each part of the condition built in the Visual view (qorus#646), for the
308
+ expression it was said of: an answer about an expression since edited is not drawn on it. */
309
+ var _q = (0, react_1.useState)(), conditionParts = _q[0], setConditionParts = _q[1];
310
+ var onConditionParts = (0, react_1.useCallback)(function (key, parts, whole) {
311
+ return setConditionParts({ key: key, parts: parts, whole: whole });
312
+ }, []);
313
+ var currentCondition = serverCheckable && (conditionParts === null || conditionParts === void 0 ? void 0 : conditionParts.key) === JSON.stringify(serverCheckable) ?
314
+ conditionParts
315
+ : undefined;
316
+ var currentConditionParts = currentCondition === null || currentCondition === void 0 ? void 0 : currentCondition.parts;
317
+ /* What the server says of the whole condition built in the Visual view, in its words: drawn there as the
318
+ Text view draws it, in place of the builder's own fallback. */
319
+ var currentConditionMessage = currentCondition === null || currentCondition === void 0 ? void 0 : currentCondition.whole;
320
+ var qorusTypes = (0, useQorusTypes_1.useQorusTypes)();
321
+ /** A type named inside a sentence: the sentence form of what it is ("a whole number"), or nothing (qorus#646). */
322
+ var typeInSentence = (0, react_1.useCallback)(function (type) { var _a; return (_a = qorusTypes.getTypeSentenceForm((0, expressions_1.conditionBaseType)(type))) !== null && _a !== void 0 ? _a : 'nothing'; }, [qorusTypes]);
116
323
  /**
117
324
  * Read the type analysis off a parse result, or clear it.
118
325
  *
@@ -122,7 +329,27 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
122
329
  * noise the message below is written to avoid.
123
330
  */
124
331
  var readTypeCheck = (0, react_1.useCallback)(function (result) {
125
- var _a;
332
+ var _a, _b, _c;
333
+ /* A condition is not a type to fit (qorus#646): the server reads it as true unless its value is
334
+ zero or empty, so it is said as every condition editor says it - a number accepted with a warning,
335
+ text refused. The server's reading, with its own words, when it gave one; the inferred type read
336
+ the same way when it did not (a server that does not know the question). */
337
+ if (condition) {
338
+ if (!result) {
339
+ setTypeCheck(null);
340
+ return;
341
+ }
342
+ var reading = result.condition_reading;
343
+ var verdict_1 = reading === 'not_a_condition' ? 'error'
344
+ : reading === 'truthiness' ? 'warning'
345
+ : reading ? undefined
346
+ : (0, expressions_1.conditionVerdict)(result.inferred_type);
347
+ var said = (_b = (_a = result.diagnostics) === null || _a === void 0 ? void 0 : _a.find(function (d) {
348
+ return verdict_1 === 'error' ? d.code === 'NOT_A_CONDITION' : d.code === 'CONDITION_BY_TRUTHINESS';
349
+ })) === null || _b === void 0 ? void 0 : _b.message;
350
+ setTypeCheck(verdict_1 ? __assign({ compatible: verdict_1 !== 'error', mayFail: false, inferred: result.inferred_type, condition: verdict_1 }, (said ? { message: said } : {})) : null);
351
+ return;
352
+ }
126
353
  if (!result || result.type_compatible === undefined) {
127
354
  setTypeCheck(null);
128
355
  return;
@@ -133,9 +360,9 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
133
360
  mayFail: !!result.coercion_may_fail,
134
361
  inferred: result.inferred_type,
135
362
  target: result.target_type,
136
- fix: (_a = result.suggested_fix) === null || _a === void 0 ? void 0 : _a.text,
363
+ fix: (_c = result.suggested_fix) === null || _c === void 0 ? void 0 : _c.text,
137
364
  });
138
- }, []);
365
+ }, [condition]);
139
366
  // Keep a readable rendering of the current expression in sync — the
140
367
  // single live mirror of the AST (the server's `dpql/renderExpression`).
141
368
  //
@@ -189,65 +416,97 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
189
416
  hadExpression.current = true;
190
417
  return;
191
418
  }
419
+ // a template or a literal written here is held as itself: the text stands for it, and stays
420
+ if (heldAsValue) {
421
+ hadExpression.current = false;
422
+ return;
423
+ }
192
424
  if (hadExpression.current) {
193
425
  hadExpression.current = false;
194
426
  userTypedRef.current = false;
195
427
  setText('');
196
428
  }
197
- }, [ast]);
198
- // Text mode: parse the DPQL into the AST (debounced).
199
- /* The session may not be attached when the debounce fires — the editor
200
- mounts on the render that flips the mode, and its LSP session comes up
201
- after that. `dpqlRef.current?.parse?.()` is optional all the way down, so
202
- an early call resolves `undefined`, `readTypeCheck` CLEARS the analysis,
203
- and nothing asks again: the author types once into a fresh Text field and
204
- is told nothing about the type until they happen to type another
205
- character.
206
-
207
- The seeding effect below already retries for this exact reason
208
- ("`serialize` resolves '' until the editor's LSP session is ready"); the
209
- parse path needed the same care and did not have it. Same budget as
210
- seeding, so a session that never arrives gives up rather than spinning.
211
-
212
- Found by CI, not locally: the session is up before the debounce on a
213
- fast machine, so the story asserting the type message passed here every
214
- time and failed on the runner. */
429
+ }, [ast, heldAsValue]);
430
+ /* Read the text typed and not yet read: once the session is ready, however long that takes, and the
431
+ latest text typed by then. Gives the expression it is, or nothing. The debounce, the host leaving the
432
+ Text view (its tabs) and the session coming up all read through here. */
433
+ var flushPendingParse = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
434
+ var pending, parse, result;
435
+ var _a;
436
+ return __generator(this, function (_b) {
437
+ switch (_b.label) {
438
+ case 0:
439
+ if (pendingParse.current === null)
440
+ return [2 /*return*/, undefined];
441
+ /* An emptied text is no value, as an emptied Value tab is: the field holds nothing. It stayed what it
442
+ was, and came back on the next visit (qorus#646: the text's × left the 201). */
443
+ if (!pendingParse.current.trim()) {
444
+ if (parseTimer.current)
445
+ clearTimeout(parseTimer.current);
446
+ pendingParse.current = null;
447
+ setDraft(undefined);
448
+ if (ast || heldAsValue)
449
+ onChange({ is_expression: true }, true);
450
+ return [2 /*return*/, undefined];
451
+ }
452
+ return [4 /*yield*/, whenSessionReady()];
453
+ case 1:
454
+ if (!(_b.sent()))
455
+ return [2 /*return*/, undefined];
456
+ pending = pendingParse.current;
457
+ parse = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.parse;
458
+ if (pending === null || !parse)
459
+ return [2 /*return*/, undefined];
460
+ if (parseTimer.current)
461
+ clearTimeout(parseTimer.current);
462
+ pendingParse.current = null;
463
+ return [4 /*yield*/, parse(pending, targetType, parseOptions)];
464
+ case 2:
465
+ result = _b.sent();
466
+ readTypeCheck(result);
467
+ // not parsed: the value keeps what it held, and the text stays the author's (see `onDraftChange`)
468
+ if (!(result === null || result === void 0 ? void 0 : result.success) || !result.expression)
469
+ return [2 /*return*/, undefined];
470
+ setDraft(undefined);
471
+ setAstText(pending);
472
+ // `dpql/parse` returns the field-ready `{ is_expression, value }`.
473
+ onChange(result.expression);
474
+ return [2 /*return*/, result.expression];
475
+ }
476
+ });
477
+ }); }, [
478
+ onChange,
479
+ targetType,
480
+ parseOptions,
481
+ readTypeCheck,
482
+ whenSessionReady,
483
+ setDraft,
484
+ ast,
485
+ heldAsValue,
486
+ ]);
487
+ // the latest reader, for the seeding below, which is not run again for a new one
488
+ var flushLatest = (0, react_1.useRef)(flushPendingParse);
489
+ flushLatest.current = flushPendingParse;
490
+ // Text mode: parse the DPQL into the AST, debounced, once the session can read it.
215
491
  var handleDpqlChange = (0, react_1.useCallback)(function (next) {
492
+ /* The editor reports the text it was given back as a change (Slate's first operation after the
493
+ value is set). That is not typing: counted as such it stopped the session from writing the
494
+ expression into the view once it was ready. */
495
+ if (next === textRef.current)
496
+ return;
216
497
  userTypedRef.current = true;
217
498
  setText(next);
499
+ // the value does not hold it until it parses
500
+ setDraft(next);
218
501
  if (parseTimer.current)
219
502
  clearTimeout(parseTimer.current);
220
- var tries = 0;
221
- var runParse = function () { return __awaiter(void 0, void 0, void 0, function () {
222
- var parse, result;
223
- var _a;
224
- return __generator(this, function (_b) {
225
- switch (_b.label) {
226
- case 0:
227
- parse = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.parse;
228
- if (!parse) {
229
- if (++tries < SEED_MAX_TRIES) {
230
- parseTimer.current = setTimeout(runParse, SEED_RETRY_MS);
231
- }
232
- return [2 /*return*/];
233
- }
234
- return [4 /*yield*/, parse(next, targetType)];
235
- case 1:
236
- result = _b.sent();
237
- readTypeCheck(result);
238
- if ((result === null || result === void 0 ? void 0 : result.success) && result.expression) {
239
- setAstText(next);
240
- // `dpql/parse` returns the field-ready `{ is_expression, value }`.
241
- onChange(result.expression);
242
- }
243
- return [2 /*return*/];
244
- }
245
- });
246
- }); };
247
- parseTimer.current = setTimeout(runParse, PARSE_DEBOUNCE_MS);
248
- }, [onChange, targetType, readTypeCheck]);
249
- /** Whether this visit to Text mode has already put the AST in the editor. */
250
- var seededRef = (0, react_1.useRef)(false);
503
+ pendingParse.current = next;
504
+ parseTimer.current = setTimeout(function () { return void flushPendingParse(); }, PARSE_DEBOUNCE_MS);
505
+ }, [flushPendingParse, setDraft]);
506
+ /** Whether this visit to Text mode has already put the AST in the editor. The host's own text for the
507
+ * first visit (`initialText`, such as the value written as `concat("SUP-", $record:{pos})`) is that visit's
508
+ * text: the session does not write over it once it is ready. */
509
+ var seededRef = (0, react_1.useRef)(!!initialText);
251
510
  /* Seed the Text editor from the AST whenever Text mode becomes active
252
511
  * (including a `defaultMode='text'` mount). This must run as an effect: the
253
512
  * editor only mounts on the same render that flips the mode (so `dpqlRef`
@@ -278,41 +537,89 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
278
537
  }
279
538
  if (seededRef.current || userTypedRef.current)
280
539
  return undefined;
540
+ /* What was written and does not parse is this visit's text, read again so its error is said again: not the
541
+ value written out over it. */
542
+ if (draftRef.current !== undefined) {
543
+ seededRef.current = true;
544
+ setText(draftRef.current);
545
+ pendingParse.current = draftRef.current;
546
+ void flushLatest.current();
547
+ return undefined;
548
+ }
281
549
  if (!(ast === null || ast === void 0 ? void 0 : ast.exp))
282
550
  return undefined;
283
- var seedAst = ast;
551
+ /* Only what DPQL can write is serialized. An operand whose operation is not
552
+ chosen yet, or that is not filled in, has no text; handed to serialize as
553
+ it was, it came back as the server's (or a stand-in's) rendering of a hash:
554
+ `{args=(null)} > {type=int}`. The Text view shows the expression with a hole
555
+ for each part not filled in instead - `… > …`, as the row's summary does -
556
+ and serialize gets custom Text values as the strings or templates they are. */
557
+ var seedAst = (0, textOfExpression_1.serializableExpression)(ast);
558
+ if (!seedAst) {
559
+ var holes = (0, textOfExpression_1.incompleteExpressionText)(ast, expressions);
560
+ seededRef.current = true;
561
+ setText(holes);
562
+ setAstText(holes);
563
+ return undefined;
564
+ }
565
+ // written by the session once it is ready, as the session says it - not asked of it before
566
+ if (!sessionReady)
567
+ return undefined;
284
568
  var cancelled = false;
285
- var timer = null;
286
- var tries = 0;
287
569
  var seed = function () { return __awaiter(void 0, void 0, void 0, function () {
288
- var t;
289
- var _a, _b;
290
- return __generator(this, function (_c) {
291
- switch (_c.label) {
292
- case 0: return [4 /*yield*/, ((_b = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.serialize) === null || _b === void 0 ? void 0 : _b.call(_a, seedAst))];
570
+ var t, error_1, result;
571
+ var _a, _b, _c, _d, _e, _f;
572
+ return __generator(this, function (_g) {
573
+ switch (_g.label) {
574
+ case 0:
575
+ _g.trys.push([0, 2, , 3]);
576
+ return [4 /*yield*/, ((_b = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.serialize) === null || _b === void 0 ? void 0 : _b.call(_a, seedAst))];
293
577
  case 1:
294
- t = _c.sent();
578
+ t = _g.sent();
579
+ return [3 /*break*/, 3];
580
+ case 2:
581
+ error_1 = _g.sent();
295
582
  if (cancelled || userTypedRef.current)
296
583
  return [2 /*return*/];
297
- if (t) {
298
- seededRef.current = true;
299
- setText(t);
300
- setAstText(t);
301
- }
302
- else if (++tries < SEED_MAX_TRIES) {
303
- timer = setTimeout(seed, SEED_RETRY_MS);
304
- }
584
+ setTextRefused(String((_c = error_1 === null || error_1 === void 0 ? void 0 : error_1.message) !== null && _c !== void 0 ? _c : error_1));
585
+ setMode('visual');
586
+ // a host drawing the views as tabs follows: the Visual tab
587
+ (_d = onTextUnavailableRef.current) === null || _d === void 0 ? void 0 : _d.call(onTextUnavailableRef);
305
588
  return [2 /*return*/];
589
+ case 3:
590
+ if (cancelled || userTypedRef.current)
591
+ return [2 /*return*/];
592
+ setTextRefused(null);
593
+ if (!t) return [3 /*break*/, 5];
594
+ seededRef.current = true;
595
+ setText(t);
596
+ setAstText(t);
597
+ if (!(targetType || condition)) return [3 /*break*/, 5];
598
+ return [4 /*yield*/, ((_f = (_e = dpqlRef.current) === null || _e === void 0 ? void 0 : _e.parse) === null || _f === void 0 ? void 0 : _f.call(_e, t, targetType, parseOptions))];
599
+ case 4:
600
+ result = _g.sent();
601
+ if (!cancelled && !userTypedRef.current)
602
+ readTypeCheck(result);
603
+ _g.label = 5;
604
+ case 5: return [2 /*return*/];
306
605
  }
307
606
  });
308
607
  }); };
309
608
  void seed();
310
609
  return function () {
311
610
  cancelled = true;
312
- if (timer)
313
- clearTimeout(timer);
314
611
  };
315
- }, [mode, ast]);
612
+ }, [mode, ast, expressions, targetType, parseOptions, condition, readTypeCheck, sessionReady]);
613
+ /** The field's templates, its catalogue's entries, for the Text view's picker. */
614
+ var templateItems = (0, react_1.useMemo)(function () { var _a; return ((_a = localTemplates === null || localTemplates === void 0 ? void 0 : localTemplates.items) !== null && _a !== void 0 ? _a : []); }, [localTemplates]);
615
+ /* A template chosen from the picker goes in after the text, as a chip, and is parsed as typed text is:
616
+ the editor keeps no caret the field can reach, so the end of the text is where it is put. */
617
+ var insertTemplate = (0, react_1.useCallback)(function (item) {
618
+ if (typeof (item === null || item === void 0 ? void 0 : item.value) !== 'string' || !item.value)
619
+ return;
620
+ var current = text.trimEnd();
621
+ handleDpqlChange(current ? "".concat(current, " ").concat(item.value) : item.value);
622
+ }, [text, handleDpqlChange]);
316
623
  // Switch to Text: the seeding effect above serializes the AST once
317
624
  // the editor's session is up.
318
625
  var enterTextMode = (0, react_1.useCallback)(function () {
@@ -320,28 +627,55 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
320
627
  }, []);
321
628
  // Switch to Visual: flush any pending parse so the AST is current.
322
629
  var enterVisualMode = (0, react_1.useCallback)(function () { return __awaiter(void 0, void 0, void 0, function () {
323
- var result;
324
- var _a, _b;
325
- return __generator(this, function (_c) {
326
- switch (_c.label) {
630
+ var edited, _a, result;
631
+ var _b, _c;
632
+ return __generator(this, function (_d) {
633
+ switch (_d.label) {
327
634
  case 0:
328
635
  if (parseTimer.current)
329
636
  clearTimeout(parseTimer.current);
330
- if (!(mode === 'text' && text)) return [3 /*break*/, 2];
331
- return [4 /*yield*/, ((_b = (_a = dpqlRef.current) === null || _a === void 0 ? void 0 : _a.parse) === null || _b === void 0 ? void 0 : _b.call(_a, text, targetType))];
637
+ pendingParse.current = null;
638
+ edited = text !== astText && userTypedRef.current;
639
+ _a = mode === 'text' && text && edited;
640
+ if (!_a) return [3 /*break*/, 2];
641
+ return [4 /*yield*/, whenSessionReady()];
332
642
  case 1:
333
- result = _c.sent();
643
+ _a = (_d.sent());
644
+ _d.label = 2;
645
+ case 2:
646
+ if (!_a) return [3 /*break*/, 4];
647
+ return [4 /*yield*/, ((_c = (_b = dpqlRef.current) === null || _b === void 0 ? void 0 : _b.parse) === null || _c === void 0 ? void 0 : _c.call(_b, text, targetType, parseOptions))];
648
+ case 3:
649
+ result = _d.sent();
334
650
  readTypeCheck(result);
335
651
  if ((result === null || result === void 0 ? void 0 : result.success) && result.expression) {
336
652
  onChange(result.expression);
337
653
  }
338
- _c.label = 2;
339
- case 2:
654
+ _d.label = 4;
655
+ case 4:
340
656
  setMode('visual');
341
657
  return [2 /*return*/];
342
658
  }
343
659
  });
344
- }); }, [mode, text, onChange, targetType, readTypeCheck]);
660
+ }); }, [mode, text, astText, onChange, targetType, parseOptions, readTypeCheck, whenSessionReady]);
661
+ // the host's tabs: followed as the toggle is (see `requestedMode`)
662
+ (0, react_1.useEffect)(function () {
663
+ if (!requestedMode || requestedMode === mode)
664
+ return;
665
+ if (requestedMode === 'visual')
666
+ void enterVisualMode();
667
+ else if (!textUnavailable)
668
+ enterTextMode();
669
+ }, [requestedMode]);
670
+ (0, react_1.useEffect)(function () {
671
+ if (!flushRef)
672
+ return undefined;
673
+ flushRef.current = flushPendingParse;
674
+ return function () {
675
+ if (flushRef.current === flushPendingParse)
676
+ flushRef.current = null;
677
+ };
678
+ }, [flushRef, flushPendingParse]);
345
679
  (0, react_1.useEffect)(function () { return function () {
346
680
  if (parseTimer.current)
347
681
  clearTimeout(parseTimer.current);
@@ -353,13 +687,38 @@ exports.ExpressionField = (0, react_1.memo)(function (_a) {
353
687
  var previewState = !preview || astText.trim() !== text.trim() ? 'none'
354
688
  : (0, dpqlHelpers_1.dpqlDisplayedText)(preview).trim() === (0, dpqlHelpers_1.dpqlDisplayedText)(text).trim() ? 'repeats'
355
689
  : 'shown';
356
- return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, gapSize: 'small', className: 'expression-field', "data-preview": mode === 'text' ? previewState : undefined, children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid: true, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'NodeTree', active: mode === 'visual', onClick: enterVisualMode, disabled: readOnly, size: size, children: "Visual" }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'CodeLine', active: mode === 'text', onClick: enterTextMode, disabled: readOnly, size: size, children: "Text" })] }), mode === 'text' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(dpqlEditor_1.DpqlEditor, { ref: dpqlRef, value: text, onChange: handleDpqlChange, provider: provider, recordType: recordType, fields: fields, readOnly: readOnly, height: '48px' }), typeCheck && !typeCheck.compatible && ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: typeCheck.mayFail ? 'warning' : 'danger', size: 'small', flat: true, opaque: false, title: typeCheck.mayFail ? 'This may not fit' : 'This does not fit', children: ["The expression returns ".concat(typeCheck.inferred, ", and this field holds ").concat(typeCheck.target, "."), typeCheck.mayFail ?
357
- ' That conversion is attempted rather than guaranteed, so the value itself is checked when it runs.'
358
- : '', typeCheck.fix ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 6 }), (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: typeCheck.fix, "data-testid": 'expression-type-fix' })] })) : null] })), previewState === 'shown' ? ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'info', size: 'small', title: 'Preview', flat: true, opaque: false, children: (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: preview, "data-testid": 'expression-preview' }) })) : null] })) : ((0, jsx_runtime_1.jsx)(builder_1.ExpressionBuilder, { value: value, onChange: function (v, remove) { return onChange(v, remove); }, expressions: expressions,
359
- // Default to `auto` when the field declares no return type, so a
360
- // valid expression renders `muted` rather than `danger` (the
361
- // builder's intent requires a truthy returnType).
362
- returnType: ((_b = returnType !== null && returnType !== void 0 ? returnType : type) !== null && _b !== void 0 ? _b : 'auto'), readOnly: readOnly, localTemplates: localTemplates !== null && localTemplates !== void 0 ? localTemplates : { items: [] }, serverHandled: serverHandled, componentOverrides: componentOverrides, extraActions: extraActions, size: size, reorder: reorder }))] }));
690
+ return ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { vertical: true, fluid: true, gapSize: 'small', className: 'expression-field', "data-preview": mode === 'text' ? previewState : undefined, children: [hideModeToggle ? null : ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid: false, className: 'expression-mode-toggle', style: OWN_WIDTH_STYLE, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'CodeLine', active: mode === 'text', onClick: enterTextMode, disabled: readOnly || textUnavailable, tooltip: textUnavailable ? modeWords.textUnavailable : undefined, size: size, children: modeWords.text }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'NodeTree', active: mode === 'visual', onClick: enterVisualMode, disabled: readOnly, size: size, children: modeWords.visual })] })), mode === 'text' ?
691
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textUnavailable ?
692
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'warning', size: 'small', flat: true, opaque: false, className: 'expression-text-unavailable', children: "The expression language server is not available, so this text cannot be read yet. It is kept as you typed it; the Visual view builds the expression without the server." })
693
+ : null, (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { gapSize: 'small', fluid: true, verticalAlign: 'flex-start', children: [(0, jsx_runtime_1.jsx)(dpqlEditor_1.DpqlEditor, { ref: dpqlRef, value: text, onChange: handleDpqlChange, provider: provider, recordType: recordType, fields: fields,
694
+ // the field's own templates name the chips as its catalogue names them
695
+ templates: localTemplates, readOnly: readOnly,
696
+ // the field's size, as its Value tab draws the same value: a reference is the same chip in both
697
+ size: size,
698
+ // no floor of its own: one line as tall as the text it shows, growing with its lines - a
699
+ // 48px floor left an empty strip under the text, which the picker beside it could not match
700
+ onUnavailable: handleTextUnavailable, onReady: handleTextReady }), templateItems.length && !readOnly ?
701
+ (0, jsx_runtime_1.jsx)(TemplateBrowser_1.TemplateBrowser, { className: 'expression-text-template-picker', icon: 'MoneyDollarCircleLine', "aria-label": 'Insert a template', tooltip: 'Insert a template',
702
+ // the size of the text it inserts into, so the two are as tall as each other
703
+ size: (_c = size) !== null && _c !== void 0 ? _c : 'normal', fixed: true, templates: localTemplates, focusFilter: true, onItemSelect: insertTemplate })
704
+ : null] }), (typeCheck === null || typeCheck === void 0 ? void 0 : typeCheck.condition) && ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { className: 'expression-condition-verdict', intent: typeCheck.condition === 'error' ? 'danger' : 'warning', size: 'small', flat: true, opaque: false, children: (_d = typeCheck.message) !== null && _d !== void 0 ? _d : (typeCheck.condition === 'error' ?
705
+ (0, expressions_1.conditionErrorText)(typeInSentence(typeCheck.inferred), typeCheck.inferred)
706
+ : (0, expressions_1.conditionByTruthinessText)(typeCheck.inferred)) })), typeCheck && !typeCheck.compatible && !typeCheck.condition && ((0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: typeCheck.mayFail ? 'warning' : 'danger', size: 'small', flat: true, opaque: false, title: typeCheck.mayFail ? 'This may not fit' : 'This does not fit', children: ["The expression gives ".concat(typeInSentence(typeCheck.inferred), ", and this field takes ").concat(typeInSentence(typeCheck.target), "."), typeCheck.mayFail ? ' Qorus converts the value when it runs, and checks it then.' : '', typeCheck.fix ?
707
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 6 }), (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: typeCheck.fix, "data-testid": 'expression-type-fix' })] })
708
+ : null] })), previewState === 'shown' ?
709
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'info', size: 'small', title: 'Preview', flat: true, opaque: false, children: (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: preview, "data-testid": 'expression-preview' }) })
710
+ : null] })
711
+ : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [textRefused ?
712
+ (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreMessage, { intent: 'warning', size: 'small', flat: true, opaque: false, className: 'expression-text-refused', children: ["This expression cannot be shown as text, so it is built here: ", textRefused] })
713
+ : null, textUnavailable ?
714
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { intent: 'muted', size: 'small', flat: true, opaque: false, className: 'expression-text-unavailable', children: "The Text view needs the expression language server, which is not available: the expression is built here instead." })
715
+ : null, (0, jsx_runtime_1.jsx)(builder_1.ExpressionBuilder, { value: value, onChange: function (v, remove) { return onChange(v, remove); }, expressions: expressions,
716
+ // Default to `auto` when the field declares no return type, so a
717
+ // valid expression renders `muted` rather than `danger` (the
718
+ // builder's intent requires a truthy returnType).
719
+ returnType: ((_e = returnType !== null && returnType !== void 0 ? returnType : type) !== null && _e !== void 0 ? _e : 'auto'), readOnly: readOnly, localTemplates: localTemplates !== null && localTemplates !== void 0 ? localTemplates : { items: [] }, serverHandled: serverHandled, condition: condition, conditionParts: currentConditionParts, conditionMessage: currentConditionMessage, componentOverrides: componentOverrides, extraActions: extraActions, size: size, reorder: reorder }), serverCheckable ?
720
+ (0, jsx_runtime_1.jsx)(ExpressionServerErrors, { expression: serverCheckable, fields: fields, provider: provider, recordType: recordType, condition: condition, onConditionParts: condition ? onConditionParts : undefined })
721
+ : null] })] }));
363
722
  });
364
723
  exports.default = exports.ExpressionField;
365
724
  //# sourceMappingURL=ExpressionField.js.map