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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +207 -97
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +21 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
@@ -1,566 +0,0 @@
1
- // Copyright 2026 Qore Technologies, s.r.o.
2
- // The DPQL the story language server speaks: tokens, parse, type analysis,
3
- // serialize and render, as pure functions.
4
- //
5
- // A mock that answers every request with a fixed shape makes stories assert
6
- // its artefacts instead of the product. The one this replaced parsed ANY text
7
- // into `text == ""`, so `1 + 2 ==` — which the real server rejects — previewed
8
- // as `"1 + 2 ==" == ""` and a bool field reported "returns string". Each
9
- // answer here follows what the Qorus `/lsp` handler actually returned for the
10
- // same input, recorded in `__tests__/dpqlMockLanguage.test.ts`; only the subset
11
- // the stories exercise is modelled.
12
- import { mockExpressions } from './mockExpressions';
13
- import { IExpressionSchema } from './types';
14
-
15
- /** One argument or node of a DPQL expression AST, as the server shapes it. */
16
- export interface IDpqlMockNode {
17
- exp?: string;
18
- args?: IDpqlMockNode[];
19
- type?: string;
20
- value?: unknown;
21
- is_expression?: boolean;
22
- }
23
-
24
- export interface IDpqlMockDiagnostic {
25
- severity: 'error' | 'warning';
26
- message: string;
27
- code: string;
28
- line: number;
29
- column: number;
30
- end_line: number;
31
- end_column: number;
32
- }
33
-
34
- export interface IDpqlMockParseResult {
35
- success: boolean;
36
- expression?: { is_expression: true; value: IDpqlMockNode };
37
- inferred_type?: string;
38
- target_type?: string;
39
- type_compatible?: boolean;
40
- auto_coercible?: boolean;
41
- coercion_may_fail?: boolean;
42
- suggested_fix?: { text: string; description: string };
43
- diagnostics: IDpqlMockDiagnostic[];
44
- }
45
-
46
- // ─── Catalogue ───────────────────────────────────────────────────────────────
47
-
48
- /* The server parses, serializes and renders by the expression catalogue — an
49
- expression's symbol, type, group and `render_template` — so this reads the
50
- stories' catalogue for the same answers. */
51
- const CATALOGUE = new Map<string, IExpressionSchema>(
52
- mockExpressions.map((info) => [info.name, info])
53
- );
54
-
55
- /** `DET_Function`: a rendering calls it by name. */
56
- const DET_FUNCTION = 2;
57
- /** `DET_Operator`. */
58
- const DET_OPERATOR = 1;
59
-
60
- const WORD = /^[A-Za-z_]\w*$/;
61
-
62
- /** An expression's DPQL spelling: its symbol without a display `()`, else its name. */
63
- const symbolOf = (name: string): string =>
64
- CATALOGUE.get(name)?.symbol?.replace(/\(\)$/, '') || name;
65
-
66
- /**
67
- * A two-argument catalogue comparison is written infix by its symbol:
68
- * `"test" startsWith "t"`. With any other number of arguments it is a call.
69
- * `regex` is the exception the server spells `=~ /…/`, which is not modelled.
70
- */
71
- const isInfixComparison = (name: string, argCount: number): boolean => {
72
- const info = CATALOGUE.get(name);
73
- return (
74
- argCount === 2 &&
75
- info?.type === DET_OPERATOR &&
76
- !!info.groups?.includes('Comparison') &&
77
- name !== 'regex'
78
- );
79
- };
80
-
81
- /** Expression names by the word DPQL spells them with: `startsWith` → `starts-with`. */
82
- const NAME_BY_SYMBOL = new Map<string, string>(
83
- mockExpressions
84
- .filter((info) => WORD.test(symbolOf(info.name)))
85
- .map((info) => [symbolOf(info.name), info.name])
86
- );
87
-
88
- // ─── Semantic tokens ─────────────────────────────────────────────────────────
89
-
90
- const DPQL_KEYWORDS = new Set(['in', 'not', 'between', 'and', 'like', 'true', 'false', 'null']);
91
- const DPQL_FUNCTIONS = new Set([
92
- 'abs', 'round', 'floor', 'ceil', 'trim', 'ltrim', 'rtrim', 'concat', 'split', 'substr',
93
- 'coalesce', 'nullif', 'now', 'days', 'hours', 'minutes', 'seconds', 'milliseconds',
94
- 'microseconds', 'years', 'months', 'weeks', 'get_year', 'get_month', 'get_day', 'get_hour',
95
- 'get_minute', 'get_second', 'format_date', 'format_number', 'map', 'hash_map', 'contains',
96
- 'ignore', 'case', 'toString', 'toInt', 'toFloat', 'toBool', 'startsWith', 'endsWith',
97
- ]);
98
-
99
- /**
100
- * `textDocument/semanticTokens/full` for `text`: the LSP delta-encoded 5-tuple
101
- * array, with type indices into `SEMANTIC_TOKENS_LEGEND`. It covers readable
102
- * renderings as well as DPQL, as the server's does — `contains` and
103
- * `(ignore case)` in an explanation are coloured too.
104
- */
105
- export function mockTokenizeDpql(text: string): number[] {
106
- // Longer operators must come first so `==` isn't matched as two `=`.
107
- const TOKEN_RE = new RegExp(
108
- [
109
- `("(?:\\\\.|[^"\\\\])*")`, // 1: double-quoted string
110
- `('(?:\\\\.|[^'\\\\])*')`, // 2: single-quoted string
111
- `(/(?:\\\\.|[^/\\\\])*/[gimsux]*)`, // 3: regex literal /…/flags
112
- // a field name is bare in any script, as the server reads it: @menge_bestätigt, @名前
113
- `(@"(?:\\\\.|[^"\\\\])*"|@[\\p{L}_][\\p{L}\\p{M}\\p{N}_.]*)`, // 4: @field
114
- `(\\$[A-Za-z_-][\\w-]*:(?:\\{[^}]*\\}|[\\w.{}]+))`, // 5: $context:value
115
- `(\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b)`, // 6: number
116
- `(==|!=|<=|>=|&&|\\|\\||=~|!~|[+\\-*/%<>!=])`, // 7: operator
117
- // 8: punctuation — matched so it is not misread, but the server leaves it uncoloured
118
- `(\\.\\.|[,(){}\\[\\].])`,
119
- `(\\b[A-Za-z_][\\w]*\\b)`, // 9: identifier (keyword check)
120
- ].join('|'),
121
- 'gu'
122
- );
123
-
124
- const tokens: Array<{ line: number; char: number; length: number; type: number }> = [];
125
- text.split('\n').forEach((line, lineIdx) => {
126
- TOKEN_RE.lastIndex = 0;
127
- let match: RegExpExecArray | null;
128
- while ((match = TOKEN_RE.exec(line)) !== null) {
129
- let type = -1;
130
- if (match[1] || match[2]) type = 11; // string
131
- else if (match[3]) type = 13; // regexp
132
- else if (match[4]) type = 4; // variable
133
- else if (match[5]) type = 2; // class (template)
134
- else if (match[6]) type = 12; // number
135
- else if (match[7]) type = 14; // operator
136
- else if (match[9]) {
137
- const word = match[9];
138
- if (DPQL_KEYWORDS.has(word.toLowerCase())) type = 8; // keyword
139
- else if (DPQL_FUNCTIONS.has(word) || DPQL_FUNCTIONS.has(word.toLowerCase())) type = 6; // function
140
- }
141
- if (type >= 0) {
142
- tokens.push({ line: lineIdx, char: match.index, length: match[0].length, type });
143
- }
144
- }
145
- });
146
-
147
- const data: number[] = [];
148
- let prevLine = 0;
149
- let prevChar = 0;
150
- for (const t of tokens) {
151
- const deltaLine = t.line - prevLine;
152
- data.push(deltaLine, deltaLine === 0 ? t.char - prevChar : t.char, t.length, t.type, 0);
153
- prevLine = t.line;
154
- prevChar = t.char;
155
- }
156
- return data;
157
- }
158
-
159
- // ─── Parse ───────────────────────────────────────────────────────────────────
160
-
161
- type TToken =
162
- | { kind: 'number'; text: string; start: number }
163
- | { kind: 'string'; text: string; start: number }
164
- | { kind: 'template'; text: string; start: number }
165
- | { kind: 'word'; text: string; start: number }
166
- | { kind: 'op'; text: string; start: number };
167
-
168
- const LEX_RE =
169
- /\s*(?:("(?:\\.|[^"\\])*")|(\$[A-Za-z_-][\w-]*:[\w.{}]+)|(\d+(?:\.\d+)?)|([A-Za-z_]\w*)|(==|!=|<=|>=|&&|\|\||[-+*/<>!(),]))/y;
170
-
171
- /** Binary operators, loosest first — the precedence the server parenthesises by. */
172
- const BINARY_PRECEDENCE: Record<string, number> = {
173
- '||': 1,
174
- '&&': 2,
175
- '==': 3,
176
- '!=': 3,
177
- '<': 3,
178
- '>': 3,
179
- '<=': 3,
180
- '>=': 3,
181
- '+': 4,
182
- '-': 4,
183
- '*': 5,
184
- '/': 5,
185
- };
186
-
187
- const RETURN_TYPES: Record<string, string> = {
188
- toString: 'string',
189
- toInt: 'int',
190
- toFloat: 'float',
191
- toBool: 'bool',
192
- };
193
-
194
- class DpqlMockSyntaxError extends Error {
195
- constructor(
196
- message: string,
197
- readonly column: number
198
- ) {
199
- super(message);
200
- }
201
- }
202
-
203
- const tokenize = (text: string): TToken[] => {
204
- const tokens: TToken[] = [];
205
- LEX_RE.lastIndex = 0;
206
- while (LEX_RE.lastIndex < text.length) {
207
- const start = LEX_RE.lastIndex;
208
- const m = LEX_RE.exec(text);
209
- if (!m) {
210
- if (text.slice(start).trim() === '') break;
211
- throw new DpqlMockSyntaxError('Unexpected character', start + 1);
212
- }
213
- const tokenStart = start + m[0].length - m[0].trimStart().length;
214
- if (m[1]) tokens.push({ kind: 'string', text: m[1], start: tokenStart });
215
- else if (m[2]) tokens.push({ kind: 'template', text: m[2], start: tokenStart });
216
- else if (m[3]) tokens.push({ kind: 'number', text: m[3], start: tokenStart });
217
- else if (m[4]) tokens.push({ kind: 'word', text: m[4], start: tokenStart });
218
- else if (m[5]) tokens.push({ kind: 'op', text: m[5], start: tokenStart });
219
- }
220
- return tokens;
221
- };
222
-
223
- const templateArg = (raw: string): IDpqlMockNode => {
224
- const [, context, value] = raw.match(/^\$([^:]+):(.*)$/) ?? [];
225
- return { type: 'auto', value: { tmpl_context: context, tmpl_value: value, raw } };
226
- };
227
-
228
- /** An operand: a bare argument, or a nested expression wrapped as the server wraps it. */
229
- const asOperand = (node: IDpqlMockNode): IDpqlMockNode =>
230
- node.exp ? { is_expression: true, value: node } : node;
231
-
232
- const parseTokens = (tokens: TToken[], endColumn: number): IDpqlMockNode => {
233
- let pos = 0;
234
- const peek = () => tokens[pos];
235
- const fail = (): never => {
236
- const token = peek();
237
- throw new DpqlMockSyntaxError(
238
- token ? `Unexpected token '${token.text}'` : 'Unexpected end of input, expected value',
239
- token ? token.start + 1 : endColumn
240
- );
241
- };
242
-
243
- const primary = (): IDpqlMockNode => {
244
- const token = peek();
245
- if (!token) return fail();
246
- pos++;
247
- switch (token.kind) {
248
- case 'number':
249
- return token.text.includes('.')
250
- ? { type: 'float', value: parseFloat(token.text) }
251
- : { type: 'int', value: parseInt(token.text, 10) };
252
- case 'string':
253
- return { type: 'string', value: JSON.parse(token.text) };
254
- case 'template':
255
- return templateArg(token.text);
256
- case 'word': {
257
- if (token.text === 'true' || token.text === 'false') {
258
- return { type: 'bool', value: token.text === 'true' };
259
- }
260
- if (token.text === 'null') {
261
- return { type: 'any', value: null };
262
- }
263
- if (peek()?.text === '(') {
264
- pos++;
265
- const args: IDpqlMockNode[] = [];
266
- while (peek() && peek()!.text !== ')') {
267
- args.push(asOperand(binary(1)));
268
- if (peek()?.text === ',') {
269
- pos++;
270
- }
271
- }
272
- if (peek()?.text !== ')') return fail();
273
- pos++;
274
- return { exp: NAME_BY_SYMBOL.get(token.text) ?? token.text, args };
275
- }
276
- return { type: 'string', value: token.text };
277
- }
278
- case 'op':
279
- if (token.text === '(') {
280
- const inner = binary(1);
281
- if (peek()?.text !== ')') return fail();
282
- pos++;
283
- return inner;
284
- }
285
- if (token.text === '!') {
286
- return { exp: '!', args: [asOperand(primary())] };
287
- }
288
- pos--;
289
- return fail();
290
- }
291
- return fail();
292
- };
293
-
294
- const binary = (minPrecedence: number): IDpqlMockNode => {
295
- let left = primary();
296
- for (;;) {
297
- const op = peek();
298
- // A word comparison (`"a" contains "b"`) binds as the symbol comparisons do.
299
- const wordComparison =
300
- op?.kind === 'word' && NAME_BY_SYMBOL.has(op.text) &&
301
- isInfixComparison(NAME_BY_SYMBOL.get(op.text)!, 2)
302
- ? NAME_BY_SYMBOL.get(op.text)
303
- : undefined;
304
- const precedence =
305
- op?.kind === 'op' ? BINARY_PRECEDENCE[op.text]
306
- : wordComparison ? BINARY_PRECEDENCE['==']
307
- : undefined;
308
- if (precedence === undefined || precedence < minPrecedence) {
309
- return left;
310
- }
311
- pos++;
312
- const right = binary(precedence + 1);
313
- left = { exp: wordComparison ?? op!.text, args: [asOperand(left), asOperand(right)] };
314
- }
315
- };
316
-
317
- const root = binary(1);
318
- if (pos < tokens.length) fail();
319
- return root;
320
- };
321
-
322
- const nodeOf = (operand: IDpqlMockNode): IDpqlMockNode =>
323
- operand.is_expression ? (operand.value as IDpqlMockNode) : operand;
324
-
325
- /** The type an expression returns, as far as the server can tell before it runs. */
326
- export const inferDpqlMockType = (node: IDpqlMockNode): string => {
327
- if (!node.exp) {
328
- return node.type === 'auto' ? 'auto' : (node.type ?? 'auto');
329
- }
330
- if (node.exp === 'value') return 'auto';
331
- if (RETURN_TYPES[node.exp]) return RETURN_TYPES[node.exp];
332
- if (['==', '!=', '<', '>', '<=', '>=', '&&', '||', '!'].includes(node.exp)) return 'bool';
333
- if (['+', '-', '*', '/'].includes(node.exp)) {
334
- const operandTypes = (node.args ?? []).map((arg) => inferDpqlMockType(nodeOf(arg)));
335
- if (operandTypes.includes('auto')) return 'auto';
336
- if (node.exp === '+' && operandTypes.includes('string')) return 'string';
337
- return operandTypes.includes('float') ? 'float' : 'int';
338
- }
339
- return 'auto';
340
- };
341
-
342
- const capitalise = (word: string) => word[0].toUpperCase() + word.slice(1);
343
-
344
- /** What a successful parse says about fitting `target`, shaped as the server's answer. */
345
- const analyse = (
346
- text: string,
347
- inferred: string,
348
- target: string
349
- ): Omit<IDpqlMockParseResult, 'success' | 'expression' | 'diagnostics'> & {
350
- diagnostics: IDpqlMockDiagnostic[];
351
- } => {
352
- const base = { inferred_type: inferred, target_type: target };
353
- if (inferred === 'auto' || target === 'auto' || target === 'any' || inferred === target) {
354
- return { ...base, type_compatible: true, auto_coercible: true, coercion_may_fail: false, diagnostics: [] };
355
- }
356
- // Text can become anything but may not parse on the day; a number or a bool
357
- // always becomes text; nothing else converts implicitly.
358
- const coercible = inferred === 'string' || target === 'string';
359
- const mayFail = inferred === 'string';
360
- const span = { line: 1, column: 1, end_line: 1, end_column: text.length + 1 };
361
- return {
362
- ...base,
363
- type_compatible: false,
364
- auto_coercible: coercible,
365
- coercion_may_fail: mayFail,
366
- ...(coercible
367
- ? {
368
- suggested_fix: {
369
- text: `to${capitalise(target)}(${text})`,
370
- description: `Convert ${inferred} to ${target} using to${capitalise(target)}()`,
371
- },
372
- }
373
- : {}),
374
- diagnostics: [
375
- {
376
- severity: coercible ? 'warning' : 'error',
377
- message: coercible
378
- ? `Expression returns '${inferred}' but target expects '${target}' (auto-coercion available)`
379
- : `Expression returns '${inferred}' but target expects '${target}'`,
380
- code: 'TYPE_MISMATCH',
381
- ...span,
382
- },
383
- ],
384
- };
385
- };
386
-
387
- /** `dpql/parse`: the AST for `text`, or the diagnostic the server reports. */
388
- export const mockParseDpql = (text: string, target?: string): IDpqlMockParseResult => {
389
- const trimmed = text.trim();
390
- try {
391
- const tokens = tokenize(trimmed);
392
- const node = parseTokens(tokens, trimmed.length + 1);
393
- // A lone value is wrapped in `value(...)`, which is how the server tells a
394
- // literal apart from an expression.
395
- const root: IDpqlMockNode = node.exp ? node : { exp: 'value', args: [node] };
396
- const inferred = inferDpqlMockType(root);
397
- return {
398
- success: true,
399
- expression: { is_expression: true, value: root },
400
- ...(target ? analyse(trimmed, inferred, target) : { inferred_type: inferred, diagnostics: [] }),
401
- } as IDpqlMockParseResult;
402
- } catch (err) {
403
- const column = err instanceof DpqlMockSyntaxError ? err.column : 1;
404
- return {
405
- success: false,
406
- diagnostics: [
407
- {
408
- severity: 'error',
409
- message: err instanceof Error ? err.message : String(err),
410
- code: 'DPQL-E001',
411
- line: 1,
412
- column,
413
- end_line: 1,
414
- end_column: column,
415
- },
416
- ],
417
- };
418
- }
419
- };
420
-
421
- // ─── Serialize and render ────────────────────────────────────────────────────
422
-
423
- const TEMPLATE_TOKEN = /^\$[A-Za-z_-][\w-]*:[\w.{}]+$/;
424
-
425
- /** An argument's own value, for a rendering that asks whether it is set. */
426
- const argumentValue = (arg: IDpqlMockNode | undefined): unknown =>
427
- arg && !arg.exp && !arg.is_expression ? arg.value : arg;
428
-
429
- const printLiteral = (value: unknown, readable: boolean): string => {
430
- if (value && typeof value === 'object' && 'raw' in value) {
431
- return String((value as { raw?: string }).raw);
432
- }
433
- if (typeof value === 'string') {
434
- // Serialized DPQL keeps a string a string; a readable rendering shows a
435
- // reference the string holds as the reference, which the server's does too.
436
- return readable && TEMPLATE_TOKEN.test(value) ? value : JSON.stringify(value);
437
- }
438
- return value === null || value === undefined ? 'null' : String(value);
439
- };
440
-
441
- /**
442
- * `parentPrecedence` is the context: a nested operator binding looser than it
443
- * is parenthesised. `0` never parenthesises (a call's own commas delimit its
444
- * arguments); `Infinity` always does, which is how the server substitutes an
445
- * argument into a `render_template`.
446
- */
447
- const printArg = (arg: IDpqlMockNode, parentPrecedence: number, readable: boolean): string => {
448
- if (arg.is_expression) {
449
- const inner = arg.value as IDpqlMockNode;
450
- const printed = printNode(inner, readable);
451
- const precedence = BINARY_PRECEDENCE[inner.exp ?? ''];
452
- return precedence !== undefined && precedence < parentPrecedence ? `(${printed})` : printed;
453
- }
454
- if (arg.exp) return printNode(arg, readable);
455
- return printLiteral(arg.value, readable);
456
- };
457
-
458
- /** `render_template` substitution, in the server's order. */
459
- const renderTemplate = (info: IExpressionSchema, args: IDpqlMockNode[]): string => {
460
- const argument = (n: number): string => {
461
- if (n < args.length) return printArg(args[n], Infinity, true);
462
- // A missing argument reads as its default, or as nothing.
463
- const fallback = info.args?.[n]?.default_value;
464
- return fallback === undefined ? '' : printLiteral(fallback, true);
465
- };
466
- return info
467
- .render_template!.split('$symbol')
468
- .join(info.symbol)
469
- .split('$args')
470
- .join(args.map((_, n) => argument(n)).join(', '))
471
- .replace(/\$arg\[(\d+)\]/g, (_, n) => argument(Number(n)))
472
- .replace(
473
- /\$\{arg\[(\d+)\](?:\s*\?([^:}]*):([^}]*))?\}/g,
474
- (_, n, whenSet = '', whenUnset = '') => {
475
- /* The argument decides when it was given, its default only when it was
476
- not — as the expression evaluates. An explicit `false` on a
477
- default-true argument reads as unset (Qore `5f3d9b491`). */
478
- const given = args[Number(n)];
479
- const isSet =
480
- given !== undefined ? argumentValue(given) : info.args?.[Number(n)]?.default_value;
481
- return isSet ? whenSet : whenUnset;
482
- }
483
- );
484
- };
485
-
486
- /** A node as `dpql/serialize` writes it: DPQL that parses back to the same node. */
487
- const serializeNode = (args: IDpqlMockNode[], name: string): string => {
488
- if (isInfixComparison(name, args.length) && WORD.test(symbolOf(name))) {
489
- // Not in the server's precedence table, so its operands are rendered in the
490
- // tightest context: any operator inside one is parenthesised.
491
- return `${printArg(args[0], Infinity, false)} ${symbolOf(name)} ${printArg(args[1], Infinity, false)}`;
492
- }
493
- return `${symbolOf(name)}(${args.map((arg) => printArg(arg, 0, false)).join(', ')})`;
494
- };
495
-
496
- /** A node as `dpql/renderExpression` reads it: a function by name, else its template. */
497
- const renderNode = (args: IDpqlMockNode[], name: string): string | undefined => {
498
- const info = CATALOGUE.get(name);
499
- if (info?.type === DET_FUNCTION) {
500
- return `${name}(${args.map((arg) => printArg(arg, 0, true)).join(', ')})`;
501
- }
502
- return info?.render_template ? renderTemplate(info, args) : undefined;
503
- };
504
-
505
- const printNode = (node: IDpqlMockNode, readable: boolean): string => {
506
- const args = node.args ?? [];
507
- const name = node.exp ?? '';
508
- if (name === 'value' && args.length === 1) return printArg(args[0], 0, readable);
509
- const rendered = readable ? renderNode(args, name) : undefined;
510
- if (rendered !== undefined) return rendered;
511
- const precedence = BINARY_PRECEDENCE[name];
512
- if (precedence !== undefined && args.length === 2) {
513
- return `${printArg(args[0], precedence, readable)} ${name} ${printArg(args[1], precedence + 1, readable)}`;
514
- }
515
- // The builder stores an AND/OR group as ONE node with every member as an
516
- // argument; it reads as the members joined by the operator.
517
- if ((name === '&&' || name === '||') && args.length !== 2) {
518
- return args.map((arg) => printArg(arg, precedence + 1, readable)).join(` ${name} `);
519
- }
520
- if (name === '!') return `!${printArg(args[0], 6, readable)}`;
521
- if (!readable) return serializeNode(args, name);
522
- // Any other catalogue operator reads as its arguments joined by its symbol.
523
- const info = CATALOGUE.get(name);
524
- if (info) {
525
- return args.length === 1 ?
526
- `${info.symbol} ${printArg(args[0], 0, true)}`
527
- : args.map((arg) => printArg(arg, precedence ?? 0, true)).join(` ${info.symbol} `);
528
- }
529
- return `${name}(${args.map((arg) => printArg(arg, 0, true)).join(', ')})`;
530
- };
531
-
532
- const rootOf = (expression: IDpqlMockNode | undefined): IDpqlMockNode =>
533
- expression?.value && !expression.exp ? (expression.value as IDpqlMockNode) : (expression ?? {});
534
-
535
- /** The richtext the server sends beside a rendering: each `$context:value` becomes a chip. */
536
- export const dpqlMockRichtext = (text: string) => {
537
- const children: unknown[] = [];
538
- const reference = /\$([A-Za-z_-][\w-]*):([\w.{}]+)/g;
539
- let last = 0;
540
- let match: RegExpExecArray | null;
541
- while ((match = reference.exec(text)) !== null) {
542
- if (match.index > last) children.push({ text: text.slice(last, match.index) });
543
- children.push({
544
- type: 'tag',
545
- value: match[0],
546
- label: match[2],
547
- children: [{ text: '' }],
548
- metadata: { displayName: `${capitalise(match[1])} Context` },
549
- });
550
- last = match.index + match[0].length;
551
- }
552
- if (last < text.length || !children.length) children.push({ text: text.slice(last) });
553
- return { type: 'richtext', value: [{ type: 'paragraph', children }] };
554
- };
555
-
556
- /** `dpql/serialize`: DPQL text that parses back to the same expression. */
557
- export const mockSerializeDpql = (expression: IDpqlMockNode | undefined) => {
558
- const dpql = printNode(rootOf(expression), false);
559
- return { dpql, richtext: dpqlMockRichtext(dpql) };
560
- };
561
-
562
- /** `dpql/renderExpression`: the readable rendering shown in previews and explanations. */
563
- export const mockRenderDpql = (expression: IDpqlMockNode | undefined) => {
564
- const rendered = printNode(rootOf(expression), true);
565
- return { rendered, richtext: dpqlMockRichtext(rendered) };
566
- };
@@ -1,126 +0,0 @@
1
- // Copyright 2026 Qore Technologies, s.r.o.
2
- // The DPQL language server every story talks to unless it brings its own.
3
- //
4
- // `.storybook/preview.tsx` starts it before each story, so an expression field,
5
- // a Preview or an Explain panel finds a server on the endpoint whatever story it
6
- // sits in — the same way `GLOBAL_STORY_MOCK_DATA` answers the REST requests
7
- // components make on their own. A story that needs different handlers starts
8
- // its own server on the URL and replaces this one (see `createMockLspServer`).
9
- // The answers come from `dpqlMockLanguage`, which follows the real server.
10
- import {
11
- createMockLspServer,
12
- DEFAULT_LSP_CAPABILITIES,
13
- IMockLspServer,
14
- MOCK_LSP_URL,
15
- TMockLspHandler,
16
- } from '../../smartEditor/__fixtures__/mockLspServer';
17
- import {
18
- IDpqlMockNode,
19
- mockParseDpql,
20
- mockRenderDpql,
21
- mockSerializeDpql,
22
- mockTokenizeDpql,
23
- } from './dpqlMockLanguage';
24
-
25
- /**
26
- * Every `dpql/parse` the mock answered, in order, for diagnosis.
27
- *
28
- * The type-analysis stories depend on the front end SENDING `target_type` —
29
- * the mock returns analysis only when it is present, exactly as the server
30
- * behaves. When one of those stories fails there are two very different
31
- * causes, and the rendered DOM cannot tell them apart: the request never
32
- * carried a target, or it did and the answer was not rendered. This records
33
- * which, and the story reports it in its assertion message so the answer
34
- * survives into a CI log.
35
- */
36
- export interface IDpqlMockParseCall {
37
- text: string;
38
- target?: string;
39
- analysed: boolean;
40
- }
41
- export const dpqlMockParseCalls: IDpqlMockParseCall[] = [];
42
-
43
- /** The template namespaces the server offers after a `$`. */
44
- const DPQL_MOCK_TEMPLATE_ITEMS = [
45
- { label: '$data:', insertText: '$data:', kind: 1, detail: 'template' },
46
- { label: '$config:', insertText: '$config:', kind: 1, detail: 'template' },
47
- { label: '$static:', insertText: '$static:', kind: 1, detail: 'template' },
48
- { label: '$timestamp:', insertText: '$timestamp:', kind: 1, detail: 'template' },
49
- ];
50
-
51
- /** The record fields the server offers after an `@`. */
52
- const DPQL_MOCK_FIELD_ITEMS = [
53
- { label: '@name', insertText: '@name', kind: 5, detail: 'string' },
54
- { label: '@status', insertText: '@status', kind: 5, detail: 'string' },
55
- ];
56
-
57
- const DPQL_MOCK_HANDLERS: Record<string, TMockLspHandler> = {
58
- /* Position-aware, as the real server is: `$` opens the template
59
- namespaces, `@` the record fields. Answering the same list whatever
60
- precedes the cursor would make a story asserting the `$` menu pass
61
- for a shell that asked in the wrong context — which is the only thing
62
- such a story is there to catch. (`DpqlEditor`'s own stories carry the
63
- full catalogue; this is the minimal subset.) */
64
- 'textDocument/completion': (msg, server) => {
65
- const position = msg.params?.position ?? { line: 0, character: 0 };
66
- const line = server.textOf(msg.params?.textDocument?.uri).split('\n')[position.line] ?? '';
67
- const head = line.slice(0, position.character);
68
- const sigil = head.match(/[@$][\w:.{}]*$/)?.[0]?.[0] ?? '';
69
- if (sigil === '$') {
70
- return { isIncomplete: false, items: DPQL_MOCK_TEMPLATE_ITEMS };
71
- }
72
- if (sigil === '@') {
73
- return { isIncomplete: false, items: DPQL_MOCK_FIELD_ITEMS };
74
- }
75
- return { isIncomplete: false, items: [] };
76
- },
77
-
78
- 'textDocument/semanticTokens/full': (msg, server) => ({
79
- data: mockTokenizeDpql(server.textOf(msg.params?.textDocument?.uri)),
80
- }),
81
-
82
- 'dpql/setContext': () => ({ fields: {} }),
83
-
84
- 'dpql/parse': (msg) => {
85
- const text = String(msg.params?.text ?? '');
86
- const target = msg.params?.target_type as string | undefined;
87
- dpqlMockParseCalls.push({ text: text.trim(), target, analysed: !!target });
88
- return mockParseDpql(text, target);
89
- },
90
-
91
- 'dpql/serialize': (msg) => mockSerializeDpql(msg.params?.expression as IDpqlMockNode),
92
-
93
- 'dpql/validate': () => ({ diagnostics: [] }),
94
-
95
- 'dpql/renderExpression': (msg) => mockRenderDpql(msg.params?.expression as IDpqlMockNode),
96
- };
97
-
98
- export interface IStartDpqlMockLspOptions {
99
- /** Handlers to use instead of, or beside, the default ones. */
100
- handlers?: Record<string, TMockLspHandler>;
101
- /** Per-method response delays in ms. */
102
- delays?: Record<string, number>;
103
- }
104
-
105
- /** Start the mock DPQL language server; returns the server and a teardown. */
106
- export const startDpqlMockLspServer = (
107
- options: IStartDpqlMockLspOptions = {}
108
- ): { lsp: IMockLspServer; stop: () => void } => {
109
- dpqlMockParseCalls.length = 0;
110
- const lsp = createMockLspServer(MOCK_LSP_URL, {
111
- capabilities: {
112
- ...DEFAULT_LSP_CAPABILITIES,
113
- textDocumentSync: { openClose: true, change: 2 },
114
- completionProvider: { triggerCharacters: ['@', '$', '.', ':'] },
115
- },
116
- // Unknown requests get an empty success so nothing hangs.
117
- defaultResult: {},
118
- delays: options.delays,
119
- handlers: { ...DPQL_MOCK_HANDLERS, ...options.handlers },
120
- });
121
- return { lsp, stop: () => lsp.close() };
122
- };
123
-
124
- /** Start the mock DPQL language server; returns a teardown function. */
125
- export const startDpqlMockLsp = (options?: IStartDpqlMockLspOptions): (() => void) =>
126
- startDpqlMockLspServer(options).stop;