@qoretechnologies/reqraft 0.10.62 → 0.10.63-pr.142.g0b675cd

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 (736) hide show
  1. package/README.md +21 -1
  2. package/dist/components/Description/describedControl.d.ts +48 -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 +10 -1
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
  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 +11 -6
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +47 -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 +151 -83
  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 +34 -1
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +487 -87
  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 +19 -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 +0 -1
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +12 -20
  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 +41 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +396 -99
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  111. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  112. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  113. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  115. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  116. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentWrapper.js +4 -2
  118. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  119. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  120. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  121. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  122. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  123. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  125. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  127. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/index.js +121 -77
  129. package/dist/components/form/expressions/builder/index.js.map +1 -1
  130. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  131. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/item.js +19 -5
  133. package/dist/components/form/expressions/builder/item.js.map +1 -1
  134. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  135. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  136. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  137. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  138. package/dist/components/form/expressions/expressionOperands.js +97 -0
  139. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  140. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/mockExpressions.js +22 -5
  142. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  144. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  145. package/dist/components/form/expressions/renderExpressionToText.js +35 -9
  146. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  147. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  148. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  149. package/dist/components/form/expressions/textOfExpression.js +37 -0
  150. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  151. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  152. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  153. package/dist/components/form/expressions/useExpressionType.js +181 -0
  154. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  155. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  156. package/dist/components/form/expressions/useRenderExpression.js +7 -7
  157. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  158. package/dist/components/form/fields/Field.d.ts.map +1 -1
  159. package/dist/components/form/fields/Field.js +20 -7
  160. package/dist/components/form/fields/Field.js.map +1 -1
  161. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  162. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  163. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  164. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  165. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  166. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  167. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  168. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  169. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  170. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  171. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  172. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  173. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  174. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  175. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  176. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  177. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  178. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  179. package/dist/components/form/fields/binary/Binary.js +23 -3
  180. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  181. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  182. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  183. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  184. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  185. package/dist/components/form/fields/color/Color.d.ts +103 -16
  186. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  187. package/dist/components/form/fields/color/Color.js +611 -16
  188. package/dist/components/form/fields/color/Color.js.map +1 -1
  189. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  190. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  191. package/dist/components/form/fields/emittedValues.js +24 -1
  192. package/dist/components/form/fields/emittedValues.js.map +1 -1
  193. package/dist/components/form/fields/file/File.d.ts +1 -1
  194. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  195. package/dist/components/form/fields/file/File.js +4 -2
  196. package/dist/components/form/fields/file/File.js.map +1 -1
  197. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  198. package/dist/components/form/fields/long-string/LongString.js +17 -3
  199. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  200. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  201. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  202. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  203. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  204. package/dist/components/form/fields/number/Number.d.ts +6 -0
  205. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  206. package/dist/components/form/fields/number/Number.js +41 -6
  207. package/dist/components/form/fields/number/Number.js.map +1 -1
  208. package/dist/components/form/fields/object/Object.d.ts +1 -1
  209. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  210. package/dist/components/form/fields/object/Object.js +4 -2
  211. package/dist/components/form/fields/object/Object.js.map +1 -1
  212. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  213. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  214. package/dist/components/form/fields/pendingEdit.js +79 -0
  215. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  216. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  217. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  218. package/dist/components/form/fields/rich-text/RichText.js +190 -81
  219. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  220. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  221. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  222. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  223. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  224. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  225. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  226. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  227. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  228. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  229. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  230. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  231. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  232. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  233. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  234. package/dist/components/form/fields/schema-definition/index.js +8 -4
  235. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  236. package/dist/components/form/fields/select/Select.d.ts +2 -0
  237. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  238. package/dist/components/form/fields/select/Select.js +19 -10
  239. package/dist/components/form/fields/select/Select.js.map +1 -1
  240. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  241. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  242. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  243. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  244. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  245. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  246. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  247. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +5 -5
  248. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  249. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
  250. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  251. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  252. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  253. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  254. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  255. package/dist/components/form/fields/template/TemplateField.d.ts +83 -1
  256. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  257. package/dist/components/form/fields/template/TemplateField.js +535 -85
  258. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  259. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  260. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  261. package/dist/components/form/fields/template/TemplateText.js +8 -4
  262. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  263. package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
  264. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  265. package/dist/components/form/fields/template/writtenAsText.js +188 -0
  266. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  267. package/dist/components/form/index.d.ts +10 -0
  268. package/dist/components/form/index.d.ts.map +1 -1
  269. package/dist/components/form/index.js +23 -1
  270. package/dist/components/form/index.js.map +1 -1
  271. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  272. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  273. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  274. package/dist/components/log/Log.d.ts.map +1 -1
  275. package/dist/components/log/Log.js +15 -7
  276. package/dist/components/log/Log.js.map +1 -1
  277. package/dist/components/menu/Menu.d.ts.map +1 -1
  278. package/dist/components/menu/Menu.js +19 -10
  279. package/dist/components/menu/Menu.js.map +1 -1
  280. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  281. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  282. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  283. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  284. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  285. package/dist/components/smartEditor/MarkdownDoc.js +1 -1
  286. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  287. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  288. package/dist/components/smartEditor/SmartEditor.js +51 -136
  289. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  290. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  291. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  292. package/dist/components/smartEditor/completionStyle.js +66 -0
  293. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  294. package/dist/components/smartEditor/index.d.ts +5 -1
  295. package/dist/components/smartEditor/index.d.ts.map +1 -1
  296. package/dist/components/smartEditor/index.js +19 -1
  297. package/dist/components/smartEditor/index.js.map +1 -1
  298. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  299. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  300. package/dist/components/smartEditor/templateCompletions.js +94 -0
  301. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  302. package/dist/components/smartEditor/types.d.ts +12 -1
  303. package/dist/components/smartEditor/types.d.ts.map +1 -1
  304. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  305. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  306. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  307. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  308. package/dist/components/smartEditor/useLspHover.d.ts +22 -7
  309. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  310. package/dist/components/smartEditor/useLspHover.js +86 -17
  311. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  312. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  313. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  314. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  315. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  316. package/dist/components/smartEditor/useLspSession.js +7 -6
  317. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  318. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  319. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  320. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  321. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  322. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  323. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  324. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  325. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  326. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  327. package/dist/components/supportTicket/TicketHeader.js +20 -2
  328. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  329. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  330. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  331. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  332. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  333. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  334. package/dist/components/ticketThread/TicketThread.js +36 -11
  335. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  336. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  337. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  338. package/dist/helpers/descriptionTooltip.js +70 -0
  339. package/dist/helpers/descriptionTooltip.js.map +1 -0
  340. package/dist/helpers/domProps.d.ts +5 -0
  341. package/dist/helpers/domProps.d.ts.map +1 -0
  342. package/dist/helpers/domProps.js +47 -0
  343. package/dist/helpers/domProps.js.map +1 -0
  344. package/dist/helpers/expressions.d.ts +107 -2
  345. package/dist/helpers/expressions.d.ts.map +1 -1
  346. package/dist/helpers/expressions.js +223 -8
  347. package/dist/helpers/expressions.js.map +1 -1
  348. package/dist/helpers/hoveringPointer.d.ts +26 -0
  349. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  350. package/dist/helpers/hoveringPointer.js +29 -0
  351. package/dist/helpers/hoveringPointer.js.map +1 -0
  352. package/dist/helpers/markdownText.d.ts +14 -0
  353. package/dist/helpers/markdownText.d.ts.map +1 -0
  354. package/dist/helpers/markdownText.js +160 -0
  355. package/dist/helpers/markdownText.js.map +1 -0
  356. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  357. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  358. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  359. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  360. package/dist/helpers/readableColors.d.ts +36 -0
  361. package/dist/helpers/readableColors.d.ts.map +1 -0
  362. package/dist/helpers/readableColors.js +116 -0
  363. package/dist/helpers/readableColors.js.map +1 -0
  364. package/dist/helpers/templateItems.d.ts +2 -2
  365. package/dist/helpers/templateItems.d.ts.map +1 -1
  366. package/dist/helpers/templateItems.js +6 -4
  367. package/dist/helpers/templateItems.js.map +1 -1
  368. package/dist/helpers/templates.d.ts +26 -1
  369. package/dist/helpers/templates.d.ts.map +1 -1
  370. package/dist/helpers/templates.js +41 -6
  371. package/dist/helpers/templates.js.map +1 -1
  372. package/dist/helpers/validations.d.ts +9 -0
  373. package/dist/helpers/validations.d.ts.map +1 -1
  374. package/dist/helpers/validations.js +139 -33
  375. package/dist/helpers/validations.js.map +1 -1
  376. package/dist/hooks/useQorusTypes.d.ts +7 -15
  377. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  378. package/dist/hooks/useQorusTypes.js +25 -166
  379. package/dist/hooks/useQorusTypes.js.map +1 -1
  380. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  381. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  382. package/dist/hooks/useReadableIntentShade.js +23 -0
  383. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  384. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  385. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  386. package/dist/hooks/useReadableOpacity.js +17 -0
  387. package/dist/hooks/useReadableOpacity.js.map +1 -0
  388. package/dist/index.d.ts +1 -0
  389. package/dist/index.d.ts.map +1 -1
  390. package/dist/index.js +1 -0
  391. package/dist/index.js.map +1 -1
  392. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  393. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  394. package/dist/tracking/ui/ExperimentCard.js +26 -10
  395. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  396. package/dist/tracking/ui/card.d.ts +2 -2
  397. package/dist/tracking/ui/card.d.ts.map +1 -1
  398. package/dist/tracking/ui/card.js +2 -2
  399. package/dist/tracking/ui/card.js.map +1 -1
  400. package/dist/tracking/ui/readable.d.ts +14 -0
  401. package/dist/tracking/ui/readable.d.ts.map +1 -0
  402. package/dist/tracking/ui/readable.js +60 -0
  403. package/dist/tracking/ui/readable.js.map +1 -0
  404. package/package.json +14 -5
  405. package/.claude/CLAUDE.md +0 -317
  406. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  407. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  408. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  409. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  410. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  411. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  412. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  413. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  414. package/.tasks/INDEX.md +0 -111
  415. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  416. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  417. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  418. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  419. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  420. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  421. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  422. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  423. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  424. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  425. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  426. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  427. package/CODE_OF_CONDUCT.md +0 -105
  428. package/CONTRIBUTING.MD +0 -78
  429. package/SECURITY.md +0 -3
  430. package/chromatic.config.json +0 -5
  431. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  432. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  433. package/design/COMPACT_PARITY.md +0 -85
  434. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  435. package/design/FORM_ENGINE_COMPACT.md +0 -300
  436. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  437. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  438. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  439. package/design/IDE_INTEGRATION.md +0 -64
  440. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  441. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  442. package/design/SMART_EDITOR_UX.md +0 -438
  443. package/design/TRACKING.md +0 -290
  444. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  445. package/src/components/Description/index.tsx +0 -254
  446. package/src/components/Description/markdownRendererContext.tsx +0 -29
  447. package/src/components/FocusedEditing/index.tsx +0 -50
  448. package/src/components/codeSize/index.tsx +0 -79
  449. package/src/components/composer/Composer.stories.tsx +0 -238
  450. package/src/components/composer/Composer.tsx +0 -554
  451. package/src/components/composer/helpers.ts +0 -74
  452. package/src/components/composer/index.ts +0 -2
  453. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  454. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  455. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  456. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  457. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  458. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  459. package/src/components/dpqlEditor/index.ts +0 -41
  460. package/src/components/dpqlEditor/types.ts +0 -203
  461. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  462. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  463. package/src/components/form/engine/CompactRow.tsx +0 -2620
  464. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  465. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  466. package/src/components/form/engine/FormEngine.tsx +0 -4569
  467. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  468. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  469. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  470. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  471. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  472. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  473. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  474. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  475. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  476. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  477. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  478. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  479. package/src/components/form/engine/compactRowContext.ts +0 -148
  480. package/src/components/form/engine/compactRowStyles.ts +0 -898
  481. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  482. package/src/components/form/engine/optionActions.ts +0 -128
  483. package/src/components/form/engine/optionsContext.ts +0 -24
  484. package/src/components/form/engine/readFirst.ts +0 -1077
  485. package/src/components/form/engine/rendererTypes.ts +0 -107
  486. package/src/components/form/engine/revealRow.ts +0 -123
  487. package/src/components/form/engine/rowFocus.ts +0 -101
  488. package/src/components/form/engine/rowMenuContext.ts +0 -159
  489. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  490. package/src/components/form/engine/typeChoices.ts +0 -63
  491. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  492. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  493. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  494. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  495. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  496. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  497. package/src/components/form/engine/variants/variantModel.ts +0 -223
  498. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  499. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  500. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  501. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  502. package/src/components/form/expressions/argumentPresence.ts +0 -213
  503. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  504. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  505. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  506. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  507. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  508. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  509. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  510. package/src/components/form/expressions/builder/index.tsx +0 -1545
  511. package/src/components/form/expressions/builder/item.tsx +0 -89
  512. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  513. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  514. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  515. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  516. package/src/components/form/expressions/mockExpressions.ts +0 -317
  517. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  518. package/src/components/form/expressions/types.ts +0 -110
  519. package/src/components/form/expressions/useExpressions.ts +0 -101
  520. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  521. package/src/components/form/fields/Field.stories.tsx +0 -143
  522. package/src/components/form/fields/Field.tsx +0 -732
  523. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  524. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  525. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  526. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  527. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  528. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  529. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  530. package/src/components/form/fields/binary/Binary.tsx +0 -91
  531. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  532. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  533. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  534. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  535. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  536. package/src/components/form/fields/color/Color.tsx +0 -46
  537. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  538. package/src/components/form/fields/cron/Cron.tsx +0 -80
  539. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  540. package/src/components/form/fields/date/Date.tsx +0 -55
  541. package/src/components/form/fields/emittedValues.ts +0 -70
  542. package/src/components/form/fields/file/File.stories.tsx +0 -161
  543. package/src/components/form/fields/file/File.tsx +0 -227
  544. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  545. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  546. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  547. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  548. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  549. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  550. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  551. package/src/components/form/fields/number/Number.tsx +0 -160
  552. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  553. package/src/components/form/fields/object/Object.tsx +0 -255
  554. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  555. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  556. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  557. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  558. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  559. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  560. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  561. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  562. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  563. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  564. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  565. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  566. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  567. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  568. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  569. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  570. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  571. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  572. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  573. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  574. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  575. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  576. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  577. package/src/components/form/fields/schema-definition/types.ts +0 -185
  578. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  579. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  580. package/src/components/form/fields/select/Select.tsx +0 -624
  581. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  582. package/src/components/form/fields/string/String.stories.tsx +0 -86
  583. package/src/components/form/fields/string/String.tsx +0 -43
  584. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  585. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  586. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  587. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  588. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  589. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  590. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  591. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  592. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  593. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  594. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  595. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  596. package/src/components/form/fields/url/Url.tsx +0 -85
  597. package/src/components/form/index.tsx +0 -47
  598. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  599. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  600. package/src/components/imageLightbox/index.ts +0 -1
  601. package/src/components/log/Log.stories.tsx +0 -333
  602. package/src/components/log/Log.tsx +0 -285
  603. package/src/components/menu/Menu.stories.tsx +0 -155
  604. package/src/components/menu/Menu.tsx +0 -312
  605. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  606. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  607. package/src/components/qonsoleSmartInput/index.ts +0 -16
  608. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  609. package/src/components/qonsoleSmartInput/types.ts +0 -133
  610. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  611. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  612. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  613. package/src/components/searchFilterBar/index.ts +0 -1
  614. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  615. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  616. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  617. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  618. package/src/components/smartEditor/helpers.ts +0 -217
  619. package/src/components/smartEditor/index.ts +0 -35
  620. package/src/components/smartEditor/styling.ts +0 -45
  621. package/src/components/smartEditor/types.ts +0 -211
  622. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  623. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  624. package/src/components/smartEditor/useLspHover.ts +0 -230
  625. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  626. package/src/components/smartEditor/useLspSession.ts +0 -231
  627. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  628. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  629. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  630. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  631. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  632. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  633. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  634. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  635. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  636. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  637. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  638. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  639. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  640. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  641. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  642. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  643. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  644. package/src/components/supportTicket/index.ts +0 -10
  645. package/src/components/supportTicket/meta.ts +0 -206
  646. package/src/components/supportTicket/ticketModel.ts +0 -131
  647. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  648. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  649. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  650. package/src/components/ticketReferences/index.ts +0 -2
  651. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  652. package/src/components/ticketThread/TicketThread.tsx +0 -719
  653. package/src/components/ticketThread/index.ts +0 -6
  654. package/src/contexts/FetchContext.tsx +0 -25
  655. package/src/contexts/ReqraftContext.tsx +0 -9
  656. package/src/contexts/StorageContext.tsx +0 -33
  657. package/src/global.d.ts +0 -4
  658. package/src/helpers/allowedValues.ts +0 -249
  659. package/src/helpers/choiceChip.ts +0 -227
  660. package/src/helpers/common.ts +0 -326
  661. package/src/helpers/dpqlDetection.ts +0 -209
  662. package/src/helpers/expressions.ts +0 -140
  663. package/src/helpers/optionUiTypes.ts +0 -199
  664. package/src/helpers/options.ts +0 -150
  665. package/src/helpers/providerValue.ts +0 -125
  666. package/src/helpers/scrollbar.ts +0 -32
  667. package/src/helpers/singleLineString.ts +0 -61
  668. package/src/helpers/templateItems.ts +0 -81
  669. package/src/helpers/templateText.ts +0 -350
  670. package/src/helpers/templates.ts +0 -602
  671. package/src/helpers/validations.ts +0 -2085
  672. package/src/hooks/useArgSchema.ts +0 -37
  673. package/src/hooks/useCoarsePointer.ts +0 -30
  674. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  675. package/src/hooks/useFetch/useFetch.tsx +0 -154
  676. package/src/hooks/usePhoneViewport.ts +0 -34
  677. package/src/hooks/useQorusTypes.ts +0 -233
  678. package/src/hooks/useReqraftProperty.ts +0 -16
  679. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  680. package/src/hooks/useStorage/useStorage.ts +0 -35
  681. package/src/hooks/useTemplates.ts +0 -123
  682. package/src/hooks/useValidation.ts +0 -9
  683. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  684. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  685. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  686. package/src/index.tsx +0 -86
  687. package/src/providers/FetchProvider.tsx +0 -40
  688. package/src/providers/ReqraftProvider.tsx +0 -52
  689. package/src/providers/StorageProvider.tsx +0 -131
  690. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  691. package/src/stores/currentUser/currentUser.tsx +0 -94
  692. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  693. package/src/stories/Tests/utils.ts +0 -320
  694. package/src/stories/storyNetwork.ts +0 -92
  695. package/src/stories/tracking.tsx +0 -206
  696. package/src/tracking/browser/attach.ts +0 -186
  697. package/src/tracking/browser/env.ts +0 -78
  698. package/src/tracking/core/consent.ts +0 -37
  699. package/src/tracking/core/engagement.ts +0 -47
  700. package/src/tracking/core/experiments.ts +0 -258
  701. package/src/tracking/core/hash.ts +0 -26
  702. package/src/tracking/core/ids.ts +0 -25
  703. package/src/tracking/core/observable.ts +0 -23
  704. package/src/tracking/core/queue.ts +0 -131
  705. package/src/tracking/core/sections.ts +0 -166
  706. package/src/tracking/core/storage.ts +0 -69
  707. package/src/tracking/core/tracker.ts +0 -417
  708. package/src/tracking/core/types.ts +0 -162
  709. package/src/tracking/core/utm.ts +0 -23
  710. package/src/tracking/index.ts +0 -72
  711. package/src/tracking/markup.ts +0 -17
  712. package/src/tracking/react/Experiment.tsx +0 -44
  713. package/src/tracking/react/TrackingProvider.tsx +0 -56
  714. package/src/tracking/react/hooks.ts +0 -106
  715. package/src/tracking/react/index.ts +0 -13
  716. package/src/tracking/testing.ts +0 -108
  717. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  718. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  719. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  720. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  721. package/src/tracking/ui/anchor.ts +0 -180
  722. package/src/tracking/ui/card.ts +0 -464
  723. package/src/tracking/ui/client.ts +0 -117
  724. package/src/tracking/ui/index.ts +0 -77
  725. package/src/tracking/ui/types.ts +0 -110
  726. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  727. package/src/types/Form.ts +0 -29
  728. package/src/types.ts +0 -14
  729. package/src/utils/datetime.ts +0 -10
  730. package/src/utils/fetch.ts +0 -457
  731. package/src/utils/lspClient.ts +0 -711
  732. package/src/utils/lspClient.types.ts +0 -211
  733. package/src/utils/queryUnlessCancelled.ts +0 -28
  734. package/src/utils/websocket.ts +0 -293
  735. package/vite.config.ts +0 -58
  736. package/vitest.config.ts +0 -69
@@ -1,1164 +0,0 @@
1
- // Verbatim port of qorus-ide `src/components/Field/auto.tsx` — keep edits to
2
- // the documented seams (leaf-API `onChange` adaptation, `query()`/`FormEngine`
3
- // swaps) so it stays in sync with the IDE. Intentionally-unported IDE types
4
- // and the full seam list live in `.tasks/FIELD_STACK_REPORT.md`.
5
- import {
6
- ReqoreButton,
7
- ReqoreControlGroup,
8
- ReqoreErrorBoundary,
9
- ReqoreMessage,
10
- ReqoreTag,
11
- } from '@qoretechnologies/reqore';
12
- import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
13
- import { IWithReqoreSize } from '@qoretechnologies/reqore/dist/types/global';
14
- import { TQorusFormFieldSchema, TQorusType } from '@qoretechnologies/ts-toolkit';
15
- import { isEqual, size, uniqBy } from 'lodash';
16
- import React, { memo, useCallback, useEffect, useState } from 'react';
17
- import { useUpdateEffect } from 'react-use';
18
- import useMount from 'react-use/lib/useMount';
19
- import { typedToYaml, yamlToTyped } from '../../../../helpers/common';
20
- import { getListElementValue } from '../../../../helpers/options';
21
- import { isSingleLineStringType } from '../../../../helpers/singleLineString';
22
- import {
23
- getTypeFromValue,
24
- getValueOrDefaultValue,
25
- maybeParseYaml,
26
- } from '../../../../helpers/validations';
27
- import { useWhyDidYouUpdate } from '../../../../hooks/useWhyDidYouUpdate';
28
- import { isQueryCancelled, query } from '../../../../utils/fetch';
29
- import { DpqlEditor } from '../../../dpqlEditor';
30
- import { FormEngine, IOptionsSchema } from '../../engine/FormEngine';
31
- import {
32
- FieldAllowedValues,
33
- FieldAllowedValuesCheckGroup,
34
- rendersCreatableValueSelect,
35
- } from '../allowed-values/AllowedValues';
36
- import { ArrayAuto } from '../array/ArrayAuto';
37
- import BooleanFormField from '../boolean/Boolean';
38
- import { ByteSizeFormField } from '../byte-size/ByteSize';
39
- import { TimeoutFormField } from '../timeout/Timeout';
40
- import ColorFormField from '../color/Color';
41
- import CronFormField from '../cron/Cron';
42
- import { DateFormField } from '../date/Date';
43
- import { IFileFormFieldValue, ReqraftFileFormField } from '../file/File';
44
- import LongStringFormField from '../long-string/LongString';
45
- import MarkdownFormField from '../markdown/Markdown';
46
- import { MultiSelectFormField } from '../multi-select/MultiSelectFormField';
47
- import NumberFormField from '../number/Number';
48
- import { ReqraftObjectFormField } from '../object/Object';
49
- import RadioGroupFormField from '../radio-group/RadioGroup';
50
- import { RichTextFormField } from '../rich-text/RichText';
51
- import { SchemaDefinitionEditor } from '../schema-definition';
52
- import { IDataSchemaDefinition } from '../schema-definition/types';
53
- import { ISelectFormFieldItem, SelectFormField } from '../select/Select';
54
- import { StringFormField } from '../string/String';
55
- import { UrlFormField } from '../url/Url';
56
- import { FormFieldsSkeleton } from '../../engine/FormFieldsSkeleton';
57
- import { isUntypedOptionType } from '../../../../helpers/optionUiTypes';
58
-
59
- /** UI superset of `TQorusType` — the IDE's `Field/systemOptions` `IQorusType`. */
60
- export type IQorusType = TQorusType | string;
61
-
62
- export interface IAutoFieldProps
63
- extends
64
- IWithReqoreSize,
65
- Omit<
66
- TQorusFormFieldSchema,
67
- 'get_message' | 'return_message' | 'on_change' | 'type' | 'arg_schema' | 'ui_type'
68
- > {
69
- name?: string;
70
- /**
71
- * The editor the schema asks for. Optional here although the shared
72
- * descriptor requires it: the field renders from `type` / `defaultType` when
73
- * there is none, and reads this only to pick an override or a special editor.
74
- */
75
- ui_type?: IQorusType;
76
- value?: any;
77
- default_value?: any;
78
- type?: IQorusType;
79
- onChange?: (name: string, value: any, type?: IQorusType, canBeNull?: boolean) => void;
80
- /** From IDE FieldWrapper `IField` — lets `type-depends-on` query sibling fields. */
81
- requestFieldData?: (name: string, key: string) => any;
82
- canBeNull?: boolean;
83
- disabled?: boolean;
84
- readonly?: boolean;
85
- uniqueName?: string;
86
-
87
- arg_schema?: string | IOptionsSchema;
88
- /** Render the arg_schema sub-form in compact (read-first) mode, matching the
89
- * parent engine. */
90
- compact?: boolean;
91
- /** Open the arg_schema sub-form's first attention row on mount, without taking
92
- * focus — see FormEngine's `expandFirstRequired`. Set by ArrayAuto on a
93
- * just-added row so its required choice is visible without a second click. */
94
- expandFirstRequired?: boolean;
95
- path?: string;
96
- column?: boolean;
97
- level?: number;
98
- defaultType?: IQorusType;
99
- defaultInternalType?: IQorusType;
100
- /**
101
- * @deprecated Inert: the type picker never offers a soft type (see
102
- * `getImmediateValueTypes`). Kept so existing callers still compile.
103
- */
104
- noSoft?: boolean;
105
-
106
- /** SEAM: inert in reqraft — saved-values storage is IDE-only. */
107
- allowSaving?: boolean;
108
- /** SEAM: inert in reqraft — saved-values storage is IDE-only. */
109
- showSavedValues?: boolean;
110
-
111
- app?: string;
112
- action?: string;
113
-
114
- isConfigItem?: boolean;
115
- isVariable?: boolean;
116
- disableSearchOptions?: boolean;
117
- disableManagement?: boolean;
118
-
119
- allowedTypes?: { name: IQorusType; display_name?: string }[];
120
- allowTemplates?: boolean;
121
-
122
- fluid?: boolean;
123
-
124
- showDescription?: boolean;
125
-
126
- templates?: IReqoreFormTemplates;
127
- metadata?: ISelectFormFieldItem['metadata'];
128
-
129
- /**
130
- * SEAM (reqraft): per-type editor injection — checked by `type` /
131
- * `ui_type` before the built-in switch. The IDE re-injects its own
132
- * editors (InterfaceSelector, ConnectorField, CodeEditor, …) here at the
133
- * dedupe phase; without an override those types render the verbatim
134
- * "Unknown type!" tag.
135
- */
136
- componentOverrides?: Record<string, React.FC<any>>;
137
-
138
- [key: string]: any;
139
- }
140
-
141
- /**
142
- * The types the picker offers for a value typed into this field.
143
- *
144
- * No Qore soft type (`softint`, `softstring`, `softlist`, …) is among them. A
145
- * soft type is a DECLARATION: it says that whatever a variable or parameter is
146
- * given is converted to the base type. A value typed in here is already a
147
- * literal of the type its editor makes, so there is nothing to convert and no
148
- * editor of its own to draw — the picker used to offer them anyway, and each
149
- * one drew "Unknown type!".
150
- */
151
- export const getImmediateValueTypes = (): { name: IQorusType; display_name: string }[] => [
152
- { name: 'bool', display_name: 'True/False' },
153
- { name: 'date', display_name: 'Date' },
154
- { name: 'string', display_name: 'Text' },
155
- { name: 'binary', display_name: 'Binary' },
156
- { name: 'float', display_name: 'Decimal' },
157
- { name: 'list', display_name: 'List' },
158
- { name: 'hash', display_name: 'Key/Value {}' },
159
- { name: 'int', display_name: 'Integer' },
160
- { name: 'rgbcolor', display_name: 'RGB Color' },
161
- ];
162
-
163
- /** @deprecated Use `getImmediateValueTypes()`; every picker now offers this list. */
164
- export const DefaultNoSoftTypes = getImmediateValueTypes();
165
-
166
- /**
167
- * The type a value is EDITED as: a soft type is edited as its base type.
168
- *
169
- * A soft type still reaches this field from data saved before the picker
170
- * stopped offering them, and from a declared type the server sends (an option
171
- * or a config item declared `softint`). It is shown and edited as the base
172
- * type it converts to, so that value keeps its editor; the declared type
173
- * itself is left as it is and is what the field reports back.
174
- */
175
- export const editorTypeOf = <T extends string | undefined | null>(type: T): T =>
176
- (typeof type === 'string' && /^soft[a-z]/.test(type) ? type.slice(4) : type) as T;
177
-
178
- function AutoField<T = any>({
179
- name,
180
- onChange,
181
- value,
182
- default_value,
183
- defaultType,
184
- defaultInternalType,
185
- requestFieldData,
186
- type,
187
- // Inert (deprecated); destructured so it does not land in `...rest`.
188
- noSoft, // eslint-disable-line @typescript-eslint/no-unused-vars
189
- path,
190
- arg_schema,
191
- compact,
192
- column,
193
- level = 0,
194
- canBeNull,
195
- isConfigItem,
196
- isVariable,
197
- allowedTypes,
198
- element_type,
199
- ui_element_type,
200
- disableManagement,
201
- allowSaving,
202
- showSavedValues,
203
- uniqueName,
204
- componentOverrides,
205
- // qorus#347-followup (scope forwarding): destructure so it does NOT
206
- // land in `...rest` — otherwise the primitive field renderers spread
207
- // rest onto DOM nodes and React warns about the unknown attribute.
208
- // Only the nested arg_schema mount sites re-forward this into their
209
- // sub-forms explicitly.
210
- inheritedFromParent,
211
- // Destructured for the same reason as `inheritedFromParent`: only the nested
212
- // sub-form mount site consumes it, and leaving it in `...rest` would spread an
213
- // unknown attribute onto the primitive field renderers' DOM nodes.
214
- expandFirstRequired,
215
- ...rest
216
- }: IAutoFieldProps & T) {
217
- const [currentType, setType] = useState<IQorusType>(defaultInternalType || null);
218
- const [storedInternalType, setInternalType] = useState<IQorusType>(
219
- defaultInternalType || 'any'
220
- );
221
- // What the value is edited as; see `editorTypeOf`.
222
- const currentInternalType = editorTypeOf(storedInternalType);
223
- const [isSetToNull, setIsSetToNull] = useState<boolean>(false);
224
- const [finalArgSchema, setFinalArgSchema] = useState<IOptionsSchema>(
225
- typeof arg_schema === 'string' ? undefined : arg_schema
226
- );
227
- const [error, setError] = useState<string>();
228
-
229
- useWhyDidYouUpdate(`Auto field ${name} ${currentType}`, {
230
- name,
231
- onChange,
232
- value,
233
- default_value,
234
- defaultType,
235
- defaultInternalType,
236
- requestFieldData,
237
- type,
238
- path,
239
- arg_schema,
240
- column,
241
- level,
242
- canBeNull,
243
- isConfigItem,
244
- isVariable,
245
- allowedTypes,
246
- element_type,
247
- disableManagement,
248
- allowSaving,
249
- showSavedValues,
250
- uniqueName,
251
- ...rest,
252
- });
253
-
254
- // Some arg schemas are not provided as objects, but as strings
255
- // so we need to fetch them
256
- useEffect(() => {
257
- if (typeof arg_schema === 'string') {
258
- (async () => {
259
- /* The await is guarded because `query` can REJECT rather than answer
260
- `{ ok: false }` — a malformed instance URL, an aborted request, a
261
- transport error. Unguarded, that rejection escaped the async IIFE as
262
- an unhandled promise rejection, `setError` never ran, `finalArgSchema`
263
- stayed undefined, and the field showed "Loading field data..." for the
264
- life of the form: a request that failed instantly and a request that
265
- is merely slow looked exactly the same, forever. */
266
- try {
267
- const schema = await query<IOptionsSchema>({
268
- url: `dataprovider/arg_schemas/${arg_schema}`,
269
- method: 'GET',
270
- });
271
-
272
- if (schema.ok) {
273
- setError(undefined);
274
- setFinalArgSchema(schema.data);
275
- } else {
276
- setError(schema.error ?? `The schema "${arg_schema}" could not be loaded.`);
277
- }
278
- } catch (fetchError) {
279
- // abandoned (the query cache was cleared mid-flight), not refused:
280
- // there is no schema that "could not be loaded" to report
281
- if (isQueryCancelled(fetchError)) {
282
- return;
283
- }
284
- setError(
285
- fetchError instanceof Error ?
286
- fetchError.message
287
- : `The schema "${arg_schema}" could not be loaded.`
288
- );
289
- }
290
- })();
291
- } else {
292
- setError(undefined);
293
- setFinalArgSchema(arg_schema);
294
- }
295
- }, [JSON.stringify(arg_schema)]);
296
-
297
- useMount(() => {
298
- let defType: IQorusType = defaultType && (defaultType.replace(/"/g, '').trim() as any);
299
-
300
- // If default type was not provided, get the type from the value
301
- if (!defType) {
302
- defType = getTypeFromValue(maybeParseYaml(value)) as IQorusType;
303
- }
304
-
305
- let internalType: IQorusType;
306
- // If value already exists, but the type is auto or any
307
- // set the type based on the value
308
- if (value && isUntypedOptionType(defType) && !defaultInternalType) {
309
- internalType = getTypeFromValue(maybeParseYaml(value)) as IQorusType;
310
- } else {
311
- internalType = defaultInternalType || defType;
312
- }
313
-
314
- setInternalType(internalType);
315
- setType(defType);
316
- // If the value is null and can be null, set the null flag
317
- if (
318
- (getValueOrDefaultValue(value, default_value, _canBeNull(defType)) === 'null' ||
319
- getValueOrDefaultValue(value, default_value, _canBeNull(defType)) === null) &&
320
- _canBeNull(defType)
321
- ) {
322
- setIsSetToNull(true);
323
- }
324
- });
325
-
326
- useUpdateEffect(() => {
327
- if (defaultType && storedInternalType !== defaultType) {
328
- setType(defaultType);
329
- setInternalType(defaultType);
330
- }
331
- }, [defaultType]);
332
-
333
- useEffect(() => {
334
- // Auto field type depends on other fields' value
335
- // which will be used as a type
336
- if (rest['type-depends-on']) {
337
- // Get the requested type
338
- const typeValue: IQorusType = requestFieldData(rest['type-depends-on'], 'value');
339
- // Check if the field has the value set yet
340
- if (typeValue && typeValue !== currentType) {
341
- // If this is auto / any field
342
- // set the internal type
343
- if (isUntypedOptionType(typeValue)) {
344
- setInternalType(value ? (getTypeFromValue(maybeParseYaml(value)) as IQorusType) : 'any');
345
- } else {
346
- setInternalType(typeValue);
347
- }
348
- // Set the new type
349
- setType(typeValue);
350
- if (!currentType) {
351
- handleChange(name, value === undefined ? undefined : value, typeValue);
352
- } else if (typeValue !== 'any') {
353
- const typeFromValue =
354
- value || value === null ? getTypeFromValue(maybeParseYaml(value)) : 'any';
355
-
356
- handleChange(
357
- name,
358
- value === null ? null : typeValue === typeFromValue ? value : undefined,
359
- typeValue
360
- );
361
- }
362
- }
363
- }
364
- // If can be undefined was toggled off, but the value right now is null
365
- // we need to set the ability to be null to false and remove
366
- if (!_canBeNull() && isSetToNull) {
367
- setIsSetToNull(false);
368
- handleChange(name, null);
369
- }
370
- });
371
-
372
- const _canBeNull = (type = currentType) => {
373
- if (type === 'any' || canBeNull) {
374
- return true;
375
- }
376
-
377
- if (requestFieldData) {
378
- return requestFieldData('can_be_undefined', 'value');
379
- }
380
-
381
- return false;
382
- };
383
-
384
- const handleChange: (name: string, val: any, type?: IQorusType) => void = useCallback(
385
- (name, val, type) => {
386
- const returnType: IQorusType = type || currentType;
387
- // Run the onchange
388
- if (onChange && returnType) {
389
- onChange(name, val, returnType, _canBeNull(returnType));
390
- }
391
- },
392
- [currentInternalType, currentType, onChange]
393
- );
394
-
395
- const handleListObjectChange = useCallback(
396
- (name, val, type) => {
397
- const typedValue = yamlToTyped(val);
398
- handleChange(name, typedValue?.value, type);
399
- },
400
- [handleChange]
401
- );
402
-
403
- const handleTypeChange: (name: string, type?: IQorusType) => void = (name, type) => {
404
- // Run the onchange
405
- onChange?.(name, null, 'auto');
406
- setInternalType(type);
407
- };
408
-
409
- const handleNullToggle = () => {
410
- setType(defaultType || 'any');
411
- setInternalType(defaultType || 'any');
412
- setIsSetToNull((current) => {
413
- return !current;
414
- });
415
-
416
- // Handle change
417
- handleChange(name, isSetToNull ? undefined : null);
418
- };
419
-
420
- // SEAM (reqraft): consumer-injected editors for types reqraft doesn't
421
- // ship (the IDE's processor-mappings, tool-catalog, test-cases,
422
- // active-windows, collection-documents, data-provider, interface
423
- // selectors, code-editor, …).
424
- const Override =
425
- componentOverrides?.[type as string] || componentOverrides?.[(rest as any).ui_type];
426
- if (Override) {
427
- return (
428
- <Override
429
- {...rest}
430
- // The field's SHAPE, which `rest` does not carry: these three are
431
- // destructured into named props above, so a host editor received a
432
- // field it could not describe. `arg_schema` is the sub-schema a host
433
- // sub-form renders FROM — without it the IDE's test-cases drawer fell
434
- // back to humanising each key, so `Path`, `Actual` and `Expected` were
435
- // asked for with no label of their own and no description, while the
436
- // text sat one fetch away. `element_type`/`ui_element_type` travel with
437
- // it: a sub-schema alone cannot say whether the value is one hash or a
438
- // list of them.
439
- arg_schema={arg_schema}
440
- element_type={element_type}
441
- ui_element_type={ui_element_type}
442
- // Same reason as the three above: it is destructured out of `rest` so the
443
- // primitive renderers do not spread it onto a DOM node, which also took
444
- // it away from host editors — and a host editor is exactly what
445
- // `inherit_props` exists to feed. A field declaring it got the values
446
- // resolved and then had nowhere to send them, so every consumer
447
- // downstream saw `undefined` and silently did nothing.
448
- inheritedFromParent={inheritedFromParent}
449
- name={name}
450
- value={value}
451
- onChange={(val: any, emittedType?: IQorusType, emittedIsFunction?: boolean) => {
452
- const returnType = emittedType || currentType;
453
- if (onChange && returnType) {
454
- onChange(name, val, returnType, emittedIsFunction);
455
- }
456
- }}
457
- />
458
- );
459
- }
460
-
461
- // Render the structured DataSchema editor for the schema object's
462
- // `definition` hash — server-driven via `?action=options` (qorus#225).
463
- if (
464
- (type as string) === 'schema-definition' ||
465
- (rest as any).ui_type === 'schema-definition'
466
- ) {
467
- return (
468
- <SchemaDefinitionEditor
469
- {...((rest as any).fieldProps || {})}
470
- value={
471
- value === null || value === undefined
472
- ? undefined
473
- : (value as IDataSchemaDefinition)
474
- }
475
- onChange={(definition) => handleChange(name, definition, 'hash')}
476
- readOnly={rest.readonly || rest.disabled}
477
- />
478
- );
479
- }
480
-
481
- // Render the Monaco DPQL editor for a DPQL match-expression field
482
- // (alert rules / silences opt their `match` field in via `ui_type`).
483
- if ((type as string) === 'dpql' || (rest as any).ui_type === 'dpql') {
484
- return (
485
- <DpqlEditor
486
- value={typeof value === 'string' ? value : value == null ? '' : String(value)}
487
- onChange={(next) => handleChange(name, next, 'string')}
488
- readOnly={rest.readonly || rest.disabled}
489
- />
490
- );
491
- }
492
-
493
- /* The error is checked BEFORE the spinner, and the spinner waits on the error
494
- being absent.
495
-
496
- A named `arg_schema` is fetched (`dataprovider/arg_schemas/<name>`), and when
497
- that fetch failed `finalArgSchema` stayed undefined forever — so this spinner
498
- returned on every subsequent render and the `if (error)` branch further down
499
- was unreachable. The field sat on "Loading field data..." for the life of the
500
- form with no way to find out why, which is indistinguishable from a request
501
- that is merely slow. */
502
- if (arg_schema && !finalArgSchema && error) {
503
- return (
504
- <ReqoreMessage intent='danger' size='small'>
505
- {error}
506
- </ReqoreMessage>
507
- );
508
- }
509
-
510
- if (arg_schema && !finalArgSchema) {
511
- /* One ROW, because this stands in for one field. It was a spinner reading
512
- "Loading field data…", which is a different picture from every other
513
- wait on the page and announces a delay the reader cannot act on. */
514
- return <FormFieldsSkeleton rows={1} reason='arg-schema' />;
515
- }
516
-
517
- const renderAllowedValues = (currentType: IQorusType) => {
518
- if (rest.allowed_values_creatable && (!currentInternalType || currentInternalType === 'auto')) {
519
- return null;
520
- }
521
-
522
- return (
523
- <FieldAllowedValues
524
- items={rest.allowed_values}
525
- type={currentType as TQorusType}
526
- elementType={ui_element_type || element_type}
527
- value={value}
528
- name={name}
529
- onChange={handleChange}
530
- // The picker heads itself with the field's own name rather than a
531
- // generic "Select one:".
532
- label={rest.display_name}
533
- size={rest.size}
534
- disabled={rest.disabled}
535
- app={rest.app}
536
- action={rest.action}
537
- showDescription={rest.showDescription}
538
- forceDropdown={rest.forceDropdown}
539
- allowCreation={rest.allowed_values_creatable}
540
- showSavedValues={showSavedValues}
541
- readOnly={rest.readonly}
542
- canAutoSelect={!size(rest.required_groups)}
543
- />
544
- );
545
- };
546
-
547
- /* Text that may hold template references is edited in the chip editor
548
- whenever the field offers templates (`RichTextFormField`, `text` format):
549
- each reference is drawn as the name it was chosen by and the value stays the
550
- plain string. Text holding a reference anywhere but its start
551
- (`Interface $local:id failed`) never enters template mode, so in a textarea
552
- its references read as their spelling. */
553
- const offersTemplates = rest.allowTemplates !== false && size(rest.templates?.items) > 0;
554
- const renderTextEditor = (editorType: string) =>
555
- offersTemplates ?
556
- <RichTextFormField
557
- {...rest}
558
- valueFormat='text'
559
- singleLine={isSingleLineStringType(editorType)}
560
- allowTemplates
561
- /* Stringified rather than blanked: an `auto` field resolved to a text
562
- type can be holding a number, and showing an empty box for it reads
563
- as the value having been lost. A non-string coming back out is not a
564
- value this editor produced, so it is ignored rather than written as
565
- '' over what is there. */
566
- value={String(value ?? '')}
567
- onChange={(next) => {
568
- if (typeof next !== 'string') {
569
- return;
570
- }
571
- handleChange(name, next);
572
- }}
573
- />
574
- : <LongStringFormField
575
- {...rest}
576
- type={editorType}
577
- onChange={(next) => handleChange(name, next)}
578
- value={value}
579
- />;
580
-
581
- const renderField = (currentType: IQorusType) => {
582
- // If this field is set to null
583
- if (isSetToNull) {
584
- // Render a readonly field with null
585
- return <StringFormField value='null' readOnly />;
586
- }
587
-
588
- if (!currentType) {
589
- return null;
590
- }
591
- // Check if there is a `<` in the type
592
- const pos: number = (currentType as string).indexOf('<');
593
-
594
- if (pos > 0) {
595
- // Get the type from start to the position of the `<`
596
- currentType = (currentType as string).slice(0, pos) as IQorusType;
597
- }
598
-
599
- // Readonly fields whose value is a primitive (string / number / boolean)
600
- // get the compact button shortcut below. Complex values — Slate
601
- // documents for richtext, lists, hashes — MUST fall through to the
602
- // switch-case so their kind-specific renderer (RichTextField,
603
- // LongStringField, …) handles the read-only display. Rendering a Slate
604
- // doc as a ReqoreButton label otherwise lands an object in JSX
605
- // children and React crashes with "Objects are not valid as a React
606
- // child (found: object with keys {type, children})".
607
- const isPrimitiveValue =
608
- value === null ||
609
- value === undefined ||
610
- typeof value === 'string' ||
611
- typeof value === 'number' ||
612
- typeof value === 'boolean';
613
-
614
- if (rest.readonly && isPrimitiveValue) {
615
- return (
616
- <ReqoreButton
617
- readOnly
618
- fluid
619
- label={value === default_value ? rest.default_value_display_name || value : value}
620
- customTheme={{
621
- main: 'main:darken:2',
622
- }}
623
- description={value === default_value ? rest.default_value_desc : undefined}
624
- />
625
- );
626
- }
627
-
628
- // A creatable string field's value is held by the chip picker that
629
- // `renderAllowedValues` draws below, so a raw editor here would be a
630
- // second control for the same value.
631
- if (
632
- rendersCreatableValueSelect(
633
- currentType,
634
- rest.allowed_values_creatable,
635
- rest.allowed_values
636
- )
637
- ) {
638
- return null;
639
- }
640
-
641
- // Non-creatable allowed_values render through FieldAllowedValues
642
- // (`renderAllowedValues` below) — a radio CheckGroup for ≤3 simple values, a
643
- // Select otherwise — matching the IDE (which returns null here). `enum` is the
644
- // exception: FieldAllowedValues skips it (it has its own `case 'enum'` radio
645
- // renderer), so let enum fall through. f5f2e11 had returned a second RadioGroup
646
- // here, which duplicated FieldAllowedValues for string allowed-value fields.
647
- if (rest.allowed_values && !rest.allowed_values_creatable && currentType !== 'enum') {
648
- return null;
649
- }
650
-
651
- const renderFieldComponent = () => {
652
- // Render the field based on the type. SEAM (reqraft): `long-string` is
653
- // reqraft FormField vocabulary — the IDE calls it `string` (both render
654
- // the textarea field).
655
- switch (currentType) {
656
- /* These four share an editor but not a shape: a `string` holds exactly
657
- one line, while `data`, `binary` and `long-string` hold a document.
658
- Without the type the field cannot tell them apart and treats them all
659
- as documents, so an interface's Internal Name — which becomes a YAML
660
- key — accepted Enter. Only text takes references; `data` and
661
- `binary` are encoded content, where a chip would stand for nothing. */
662
- case 'string':
663
- case 'long-string':
664
- return renderTextEditor(currentType);
665
- case 'data':
666
- case 'binary':
667
- return (
668
- <LongStringFormField
669
- {...rest}
670
- /* Say what the field takes before it is typed into. The server
671
- decodes a binary value as base64 unless it is told otherwise
672
- (`lib/misc.ql` `_priv_parse_ui_hash_value_intern`, symmetric
673
- with the `toBase64()` it encodes with), and bare hex is the
674
- trap: it is not rejected, it is read as base64 and corrupts.
675
- `validateField` already accepts exactly these three spellings
676
- — this is that rule said up front instead of after the fact.
677
- Kept short enough to read in one line at phone width, where a
678
- longer hint wrapped out of the field's single visible row. */
679
- placeholder={
680
- currentType === 'binary' ?
681
- ((rest as { placeholder?: string }).placeholder ??
682
- 'Base64, 0x hex, or data: URL')
683
- : (rest as { placeholder?: string }).placeholder
684
- }
685
- type={currentType}
686
- onChange={(value) => handleChange(name, value)}
687
- value={value}
688
- />
689
- );
690
- // reqraft ships these editors (see Field.tsx), but the compact /
691
- // TemplateField path dispatches through AutoFormField — bridge them so
692
- // they render here instead of falling through to "Unknown type!".
693
- case 'markdown':
694
- return (
695
- <MarkdownFormField
696
- {...rest}
697
- onChange={(value) => handleChange(name, value)}
698
- value={value}
699
- />
700
- );
701
- case 'cron':
702
- return (
703
- <CronFormField
704
- {...rest}
705
- onChange={(value) => handleChange(name, value)}
706
- value={value}
707
- />
708
- );
709
- case 'processor':
710
- case 'richtext': {
711
- return (
712
- <RichTextFormField
713
- {...rest}
714
- onChange={(value) => {
715
- handleChange(name, value);
716
- }}
717
- value={value}
718
- />
719
- );
720
- }
721
- case 'bool':
722
- case 'boolean':
723
- return (
724
- <BooleanFormField
725
- {...rest}
726
- checked={!!value}
727
- onChange={(checked) => handleChange(name, checked)}
728
- />
729
- );
730
- case 'date':
731
- return (
732
- <DateFormField
733
- {...rest}
734
- onChange={(val) => handleChange(name, val)}
735
- value={value}
736
- />
737
- );
738
- case 'hash':
739
- case 'free-hash': {
740
- if (finalArgSchema) {
741
- return (
742
- <FormEngine
743
- wrapperPadding='top'
744
- flat
745
- compact={compact}
746
- // A row added just now: open the field it cannot be saved
747
- // without, instead of making the author find it and click it.
748
- expandFirstRequired={expandFirstRequired}
749
- // Embedded sub-form: no scroll context of its own, so its toolbar
750
- // isn't sticky and its header stays transparent (no dark backdrop).
751
- compactNested
752
- name={name}
753
- uniqueName={uniqueName}
754
- options={finalArgSchema}
755
- value={value === null ? undefined : value}
756
- templateFieldProps={{
757
- level: level + 1,
758
- }}
759
- allowTemplates
760
- onChange={(name, value) => {
761
- handleChange(name, value, 'hash');
762
- }}
763
- columns={1}
764
- minColumnWidth='150px'
765
- stringTemplates={rest.templates}
766
- size={rest.size}
767
- disabled={rest.disabled}
768
- // Forward consumer-injected editors into the nested sub-form
769
- // so its own fields can render host-injected types (e.g. a
770
- // `code-editor` override for a `body` sub-field inside a
771
- // list-of-hash row). Was missing pre-qorus#347-followup —
772
- // catches an existing gap surfaced by the nested inherit_props
773
- // story.
774
- componentOverrides={componentOverrides}
775
- // qorus#347-followup (scope forwarding): thread the accumulated
776
- // inheritance bag into the nested sub-form so its own fields'
777
- // `inherit_props` can reach ancestor-scope values (e.g. a
778
- // service-method row's `body` picking up `language` from the
779
- // parent service form). The parent FormEngine populates this
780
- // via TemplateField -> AutoFormField's `rest`.
781
- inheritedFromParent={inheritedFromParent}
782
- />
783
- );
784
- }
785
-
786
- const yamlValue = value ? typedToYaml({ type: 'hash', value }) : value;
787
-
788
- return (
789
- <ReqraftObjectFormField
790
- value={yamlValue}
791
- onChange={(value) => handleListObjectChange(name, value, 'hash')}
792
- type='object'
793
- dataType='yaml'
794
- resultDataType='yaml'
795
- {...rest}
796
- />
797
- );
798
- }
799
- case 'list':
800
- case 'free-list': {
801
- if (
802
- ui_element_type ||
803
- element_type ||
804
- (rest.element_allowed_values && !rest.element_allowed_values_creatable)
805
- ) {
806
- const formatToServerValue = (value) => {
807
- return (value || []).map((item) => {
808
- // If this value is actually in allowed values, just return it
809
- if (rest.element_allowed_values?.find((ev) => isEqual(ev.value, item))) {
810
- return item;
811
- }
812
-
813
- return {
814
- value: item,
815
- type:
816
- ui_element_type ||
817
- element_type ||
818
- rest.element_allowed_values?.find((ev) => isEqual(ev.value, item))?.ui_type,
819
- };
820
- });
821
- };
822
-
823
- // An element may arrive bare or in a `{value, type}` envelope. The
824
- // envelope is what `formatToServerValue` writes, so a list the user
825
- // has edited in this session is always wrapped — but a list read
826
- // back from storage holds exactly what the server contract asks
827
- // for, which for a list of strings is the strings themselves.
828
- // Reaching for `.value` on those answered `undefined` for every
829
- // element: the row rendered as an empty, invalid item, and the
830
- // emptiness was then written back over the stored value.
831
- const formatFromServerValue = (value) => {
832
- return (value || []).map(getListElementValue);
833
- };
834
-
835
- const mappedAllowedValues = rest.element_allowed_values?.map((ev) => ({
836
- ...ev,
837
- value: ev.value?.value,
838
- }));
839
-
840
- if (
841
- rest.element_allowed_values &&
842
- !rest.element_allowed_values_creatable &&
843
- !rest.allowed_values_creatable
844
- ) {
845
- if (size(rest.element_allowed_values) <= 3) {
846
- return (
847
- <FieldAllowedValuesCheckGroup
848
- items={mappedAllowedValues}
849
- value={formatFromServerValue(value)}
850
- multiSelect
851
- onChange={(_name, value) => {
852
- handleChange(name, formatToServerValue(value));
853
- }}
854
- />
855
- );
856
- }
857
-
858
- // the multi-select reads each item's `{type, value}` envelope itself, as Field.tsx gives it;
859
- // handing it the unwrapped values left every choice `undefined`, so a pick stored an empty
860
- // element and drew an "undefined" chip
861
- return (
862
- <MultiSelectFormField
863
- items={rest.element_allowed_values}
864
- value={formatFromServerValue(value)}
865
- onChange={(selected) => {
866
- handleChange(name, formatToServerValue(selected));
867
- }}
868
- disabled={rest.disabled}
869
- size={rest.size}
870
- />
871
- );
872
- }
873
-
874
- const effectiveElementType = ui_element_type || element_type;
875
-
876
- return (
877
- <ArrayAuto
878
- {...rest}
879
- level={level + 1}
880
- arg_schema={finalArgSchema}
881
- name={name}
882
- value={formatFromServerValue(value)}
883
- allowed_values={rest.element_allowed_values}
884
- allowed_values_creatable={rest.element_allowed_values_creatable}
885
- type={effectiveElementType}
886
- // Propagate compact into every row, exactly as the `hash` case
887
- // above does for a single sub-form. `compact` is destructured
888
- // out of `rest`, so without this each row's AutoFormField saw
889
- // `compact: undefined` and its arg_schema sub-form fell back to
890
- // the classic FormEngine — a list-of-hash field inside a compact
891
- // form rendered stacked labels + an option filter, while every
892
- // sibling field rendered as a compact read-first row.
893
- compact={compact}
894
- componentOverrides={componentOverrides}
895
- // qorus#347-followup (scope forwarding): thread the accumulated
896
- // inheritance bag through the list wrapper so each row's
897
- // arg_schema sub-form sees it. ArrayAuto forwards this via
898
- // TemplateField's `rest` into each row's AutoFormField, which
899
- // hands it to the row's nested FormEngine (case 'hash' above).
900
- inheritedFromParent={inheritedFromParent}
901
- onChange={(name, value) => {
902
- if (!size(value)) {
903
- return handleChange(name, undefined);
904
- }
905
-
906
- handleChange(name, formatToServerValue(value));
907
- }}
908
- />
909
- );
910
- }
911
-
912
- const yamlValue = value ? typedToYaml({ type: 'list', value }) : value;
913
-
914
- return (
915
- <ReqraftObjectFormField
916
- value={yamlValue}
917
- onChange={(value) => handleListObjectChange(name, value, 'list')}
918
- type='array'
919
- dataType='yaml'
920
- resultDataType='yaml'
921
- {...rest}
922
- />
923
- );
924
- }
925
- case 'int':
926
- case 'integer':
927
- case 'float':
928
- case 'number':
929
- return (
930
- <NumberFormField
931
- {...rest}
932
- onChange={(value) => handleChange(name, value)}
933
- value={value}
934
- />
935
- );
936
- // A connection's `connect_timeout` / `timeout` arrive from
937
- // `getCreateConnectionOptions` as `type: 'timeout'` with a bare-integer
938
- // default (45000) and an "in milliseconds" description. The value stays
939
- // that integer millisecond count — TimeoutFormField only adds the
940
- // unit-aware display. Extras are trimmed the same way as `byte-size`
941
- // below: `rest` carries `templates`, which would flip the inner
942
- // NumberFormField into its templates-dropdown variant.
943
- case 'timeout':
944
- return (
945
- <TimeoutFormField
946
- value={value}
947
- onChange={(val) => handleChange(name, val)}
948
- disabled={rest.disabled}
949
- readOnly={rest.readonly}
950
- size={rest.size}
951
- aria-label={rest['aria-label']}
952
- />
953
- );
954
- case 'byte-size':
955
- // The IDE spreads `{...rest}` here but its ByteSizeField ignores
956
- // extras — reqraft's forwards them into the amount input, and `rest`
957
- // carries `templates` (which would flip NumberFormField into its
958
- // templates-dropdown variant), so only `aria-label` is forwarded.
959
- return (
960
- <ByteSizeFormField
961
- value={value}
962
- onChange={(val) => handleChange(name, val)}
963
- disabled={rest.disabled}
964
- readOnly={rest.readonly}
965
- size={rest.size}
966
- aria-label={rest['aria-label']}
967
- />
968
- );
969
- case 'enum': {
970
- // Two option shapes describe the same enum: reqraft `allowed_values`
971
- // ({ value: { type, value }, display_name, image }) and the IDE
972
- // `items` ({ value, title, display_name?, image? }). Accept both so a
973
- // server-driven enum field (e.g. language) renders its choices —
974
- // previously only `allowed_values` was read, leaving `items` empty.
975
- const enumItems = (rest.allowed_values as any[] | undefined)?.length
976
- ? (rest.allowed_values as any[]).map((av) => ({
977
- label: av.display_name ?? String(av.value?.value ?? av.value),
978
- value: av.value?.value ?? av.value,
979
- image: av.image,
980
- icon: av.icon,
981
- }))
982
- : ((rest as any).items as any[] | undefined ?? []).map((it) => ({
983
- label: it.display_name ?? it.title ?? String(it.value),
984
- value: it.value,
985
- image: it.image,
986
- icon: it.icon,
987
- }));
988
- return (
989
- <RadioGroupFormField
990
- items={enumItems}
991
- value={value}
992
- onChange={(val) => handleChange(name, val)}
993
- disabled={rest.disabled}
994
- />
995
- );
996
- }
997
- case 'url': {
998
- return (
999
- <UrlFormField
1000
- {...rest}
1001
- value={value}
1002
- onChange={(val) => handleChange(name, val)}
1003
- />
1004
- );
1005
- }
1006
- case 'select-string': {
1007
- return (
1008
- <SelectFormField
1009
- items={(rest.allowed_values || []).map((av) => ({
1010
- ...av,
1011
- value: av.value?.value,
1012
- }))}
1013
- value={value}
1014
- onChange={(val) => handleChange(name, val)}
1015
- />
1016
- );
1017
- }
1018
- case 'select-array':
1019
- case 'multi-select': {
1020
- return (
1021
- <MultiSelectFormField
1022
- items={rest.allowed_values ?? []}
1023
- value={(value as unknown[]) ?? []}
1024
- onChange={(selected) => handleChange(name, selected)}
1025
- canCreateItems={rest.allowed_values_creatable || !size(rest.allowed_values)}
1026
- disabled={rest.disabled}
1027
- size={rest.size}
1028
- />
1029
- );
1030
- }
1031
- case 'file':
1032
- case 'file-as-string': {
1033
- return (
1034
- <ReqraftFileFormField
1035
- onChange={(val) => handleChange(name, val)}
1036
- options={rest.type_options}
1037
- value={value as IFileFormFieldValue}
1038
- argSchema={finalArgSchema as any}
1039
- {...rest}
1040
- />
1041
- );
1042
- }
1043
- case 'rgbcolor': {
1044
- return (
1045
- <ColorFormField
1046
- {...rest}
1047
- value={!value ? undefined : value}
1048
- onChange={(color) => handleChange(name, color)}
1049
- />
1050
- );
1051
- }
1052
- /* An UNTYPED field is typed into, never asked for a type.
1053
-
1054
- It used to show a type picker and "Please select data type" — a
1055
- question about storage ("is this a Text or a Number?") that an author
1056
- writing a value often cannot answer, asked before they could write
1057
- anything. What is typed is stored untyped, exactly as template mode
1058
- stores it; a value of an explicit type is set from the field's ⋮ menu
1059
- (see `FormEngine`'s `getCustomMenuTemplateItems`). */
1060
- case 'any':
1061
- case 'auto':
1062
- return renderTextEditor('string');
1063
- default:
1064
- return <ReqoreTag intent='danger' icon='SpamLine' label='Unknown type!' />;
1065
- }
1066
- };
1067
-
1068
- return (
1069
- <ReqoreControlGroup vertical={false} fluid={true} verticalAlign='flex-start'>
1070
- {renderFieldComponent()}
1071
- </ReqoreControlGroup>
1072
- );
1073
- };
1074
-
1075
- /* No picker while the type is unresolved: the field is typed into instead
1076
- (see the `auto` / `any` editor above). A field declaring several allowed
1077
- types still picks between THOSE — that is a choice the schema offers, not a
1078
- question about storage. */
1079
- const typeIsUnresolved =
1080
- !currentInternalType || isUntypedOptionType(currentInternalType);
1081
- const showPicker =
1082
- size(allowedTypes) > 1 ||
1083
- (!typeIsUnresolved &&
1084
- (!size(rest.allowed_values) ||
1085
- (size(rest?.allowed_values) > 0 && !rest.allowed_values_creatable) ||
1086
- !size(rest.element_allowed_values) ||
1087
- (size(rest?.element_allowed_values) > 0 && !rest.element_allowed_values_creatable)) &&
1088
- !isSetToNull &&
1089
- (defaultType === 'auto' ||
1090
- defaultType === 'any' ||
1091
- currentType === 'auto' ||
1092
- currentType === 'any'));
1093
-
1094
- // A caller's own list is offered as the editors it names, so a soft type in
1095
- // it is offered once, as its base type.
1096
- const types = allowedTypes
1097
- ? uniqBy(
1098
- allowedTypes.map((allowed) => {
1099
- const name = editorTypeOf(allowed.name);
1100
- return {
1101
- ...allowed,
1102
- name,
1103
- display_name:
1104
- allowed.display_name ||
1105
- getImmediateValueTypes().find((type) => type.name === name)?.display_name,
1106
- };
1107
- }),
1108
- 'name'
1109
- )
1110
- : getImmediateValueTypes();
1111
-
1112
- if (error) {
1113
- return <ReqoreMessage intent='danger'>{error}</ReqoreMessage>;
1114
- }
1115
-
1116
- if (arg_schema) {
1117
- return (
1118
- <ReqoreControlGroup vertical className='auto-field-schema-wrapper' fluid>
1119
- {renderField(currentInternalType)}
1120
- {currentInternalType && currentInternalType !== 'auto'
1121
- ? renderAllowedValues(currentInternalType)
1122
- : null}
1123
- </ReqoreControlGroup>
1124
- );
1125
- }
1126
-
1127
- // Render type picker if the type is auto or any
1128
- return (
1129
- <ReqoreErrorBoundary>
1130
- <ReqoreControlGroup {...rest} className={`auto-field-group`} vertical fluid>
1131
- {showPicker && (
1132
- <SelectFormField
1133
- fixed
1134
- flat
1135
- minimal={rest.minimal}
1136
- size={rest.size}
1137
- items={types as ISelectFormFieldItem[]}
1138
- /* A count on a fixed list of types says nothing the open list
1139
- does not; the IDE's picker shows none either. */
1140
- hideItemCount
1141
- value={currentInternalType}
1142
- onChange={(value) => {
1143
- handleTypeChange(name, value as IQorusType);
1144
- }}
1145
- />
1146
- )}
1147
- {renderField(currentInternalType)}
1148
- {renderAllowedValues(currentInternalType)}
1149
- {canBeNull && (
1150
- <ReqoreButton
1151
- intent={isSetToNull ? 'warning' : undefined}
1152
- icon={isSetToNull ? 'CloseLine' : undefined}
1153
- onClick={handleNullToggle}
1154
- fixed
1155
- >
1156
- {isSetToNull ? 'Unset null' : 'Set as null'}
1157
- </ReqoreButton>
1158
- )}
1159
- </ReqoreControlGroup>
1160
- </ReqoreErrorBoundary>
1161
- );
1162
- }
1163
-
1164
- export const AutoFormField = memo(AutoField) as React.FC<IAutoFieldProps>;