@qoretechnologies/reqraft 0.10.66-pr.145.gcb1e59d → 0.10.66

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