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

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