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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (736) hide show
  1. package/README.md +21 -1
  2. package/dist/components/Description/describedControl.d.ts +48 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +10 -1
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +30 -13
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +11 -6
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +47 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +151 -83
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +34 -1
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +487 -87
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +19 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +0 -1
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +12 -20
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +41 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +396 -99
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  111. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  112. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  113. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  115. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  116. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentWrapper.js +4 -2
  118. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  119. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  120. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  121. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  122. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  123. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  125. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  127. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/index.js +121 -77
  129. package/dist/components/form/expressions/builder/index.js.map +1 -1
  130. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  131. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/item.js +19 -5
  133. package/dist/components/form/expressions/builder/item.js.map +1 -1
  134. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  135. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  136. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  137. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  138. package/dist/components/form/expressions/expressionOperands.js +97 -0
  139. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  140. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  141. package/dist/components/form/expressions/mockExpressions.js +22 -5
  142. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  143. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  144. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  145. package/dist/components/form/expressions/renderExpressionToText.js +35 -9
  146. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  147. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  148. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  149. package/dist/components/form/expressions/textOfExpression.js +37 -0
  150. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  151. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  152. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  153. package/dist/components/form/expressions/useExpressionType.js +181 -0
  154. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  155. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  156. package/dist/components/form/expressions/useRenderExpression.js +7 -7
  157. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  158. package/dist/components/form/fields/Field.d.ts.map +1 -1
  159. package/dist/components/form/fields/Field.js +20 -7
  160. package/dist/components/form/fields/Field.js.map +1 -1
  161. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  162. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  163. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  164. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  165. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  166. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  167. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  168. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  169. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  170. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  171. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  172. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  173. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  174. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  175. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  176. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  177. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  178. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  179. package/dist/components/form/fields/binary/Binary.js +23 -3
  180. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  181. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  182. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  183. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  184. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  185. package/dist/components/form/fields/color/Color.d.ts +103 -16
  186. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  187. package/dist/components/form/fields/color/Color.js +611 -16
  188. package/dist/components/form/fields/color/Color.js.map +1 -1
  189. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  190. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  191. package/dist/components/form/fields/emittedValues.js +24 -1
  192. package/dist/components/form/fields/emittedValues.js.map +1 -1
  193. package/dist/components/form/fields/file/File.d.ts +1 -1
  194. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  195. package/dist/components/form/fields/file/File.js +4 -2
  196. package/dist/components/form/fields/file/File.js.map +1 -1
  197. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  198. package/dist/components/form/fields/long-string/LongString.js +17 -3
  199. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  200. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  201. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  202. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  203. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  204. package/dist/components/form/fields/number/Number.d.ts +6 -0
  205. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  206. package/dist/components/form/fields/number/Number.js +41 -6
  207. package/dist/components/form/fields/number/Number.js.map +1 -1
  208. package/dist/components/form/fields/object/Object.d.ts +1 -1
  209. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  210. package/dist/components/form/fields/object/Object.js +4 -2
  211. package/dist/components/form/fields/object/Object.js.map +1 -1
  212. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  213. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  214. package/dist/components/form/fields/pendingEdit.js +79 -0
  215. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  216. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  217. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  218. package/dist/components/form/fields/rich-text/RichText.js +190 -81
  219. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  220. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  221. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  222. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  223. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  224. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  225. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  226. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  227. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  228. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  229. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  230. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  231. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  232. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  233. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  234. package/dist/components/form/fields/schema-definition/index.js +8 -4
  235. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  236. package/dist/components/form/fields/select/Select.d.ts +2 -0
  237. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  238. package/dist/components/form/fields/select/Select.js +19 -10
  239. package/dist/components/form/fields/select/Select.js.map +1 -1
  240. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  241. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  242. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  243. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  244. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  245. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  246. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  247. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +5 -5
  248. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  249. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +11 -4
  250. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  251. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  252. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  253. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  254. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  255. package/dist/components/form/fields/template/TemplateField.d.ts +83 -1
  256. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  257. package/dist/components/form/fields/template/TemplateField.js +535 -85
  258. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  259. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  260. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  261. package/dist/components/form/fields/template/TemplateText.js +8 -4
  262. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  263. package/dist/components/form/fields/template/writtenAsText.d.ts +55 -0
  264. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  265. package/dist/components/form/fields/template/writtenAsText.js +188 -0
  266. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  267. package/dist/components/form/index.d.ts +10 -0
  268. package/dist/components/form/index.d.ts.map +1 -1
  269. package/dist/components/form/index.js +23 -1
  270. package/dist/components/form/index.js.map +1 -1
  271. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  272. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  273. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  274. package/dist/components/log/Log.d.ts.map +1 -1
  275. package/dist/components/log/Log.js +15 -7
  276. package/dist/components/log/Log.js.map +1 -1
  277. package/dist/components/menu/Menu.d.ts.map +1 -1
  278. package/dist/components/menu/Menu.js +19 -10
  279. package/dist/components/menu/Menu.js.map +1 -1
  280. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  281. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  282. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  283. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  284. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  285. package/dist/components/smartEditor/MarkdownDoc.js +1 -1
  286. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  287. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  288. package/dist/components/smartEditor/SmartEditor.js +51 -136
  289. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  290. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  291. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  292. package/dist/components/smartEditor/completionStyle.js +66 -0
  293. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  294. package/dist/components/smartEditor/index.d.ts +5 -1
  295. package/dist/components/smartEditor/index.d.ts.map +1 -1
  296. package/dist/components/smartEditor/index.js +19 -1
  297. package/dist/components/smartEditor/index.js.map +1 -1
  298. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  299. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  300. package/dist/components/smartEditor/templateCompletions.js +94 -0
  301. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  302. package/dist/components/smartEditor/types.d.ts +12 -1
  303. package/dist/components/smartEditor/types.d.ts.map +1 -1
  304. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  305. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  306. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  307. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  308. package/dist/components/smartEditor/useLspHover.d.ts +22 -7
  309. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  310. package/dist/components/smartEditor/useLspHover.js +86 -17
  311. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  312. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  313. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  314. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  315. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  316. package/dist/components/smartEditor/useLspSession.js +7 -6
  317. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  318. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  319. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  320. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  321. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  322. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  323. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  324. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  325. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  326. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  327. package/dist/components/supportTicket/TicketHeader.js +20 -2
  328. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  329. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  330. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  331. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  332. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  333. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  334. package/dist/components/ticketThread/TicketThread.js +36 -11
  335. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  336. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  337. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  338. package/dist/helpers/descriptionTooltip.js +70 -0
  339. package/dist/helpers/descriptionTooltip.js.map +1 -0
  340. package/dist/helpers/domProps.d.ts +5 -0
  341. package/dist/helpers/domProps.d.ts.map +1 -0
  342. package/dist/helpers/domProps.js +47 -0
  343. package/dist/helpers/domProps.js.map +1 -0
  344. package/dist/helpers/expressions.d.ts +107 -2
  345. package/dist/helpers/expressions.d.ts.map +1 -1
  346. package/dist/helpers/expressions.js +223 -8
  347. package/dist/helpers/expressions.js.map +1 -1
  348. package/dist/helpers/hoveringPointer.d.ts +26 -0
  349. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  350. package/dist/helpers/hoveringPointer.js +29 -0
  351. package/dist/helpers/hoveringPointer.js.map +1 -0
  352. package/dist/helpers/markdownText.d.ts +14 -0
  353. package/dist/helpers/markdownText.d.ts.map +1 -0
  354. package/dist/helpers/markdownText.js +160 -0
  355. package/dist/helpers/markdownText.js.map +1 -0
  356. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  357. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  358. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  359. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  360. package/dist/helpers/readableColors.d.ts +36 -0
  361. package/dist/helpers/readableColors.d.ts.map +1 -0
  362. package/dist/helpers/readableColors.js +116 -0
  363. package/dist/helpers/readableColors.js.map +1 -0
  364. package/dist/helpers/templateItems.d.ts +2 -2
  365. package/dist/helpers/templateItems.d.ts.map +1 -1
  366. package/dist/helpers/templateItems.js +6 -4
  367. package/dist/helpers/templateItems.js.map +1 -1
  368. package/dist/helpers/templates.d.ts +26 -1
  369. package/dist/helpers/templates.d.ts.map +1 -1
  370. package/dist/helpers/templates.js +41 -6
  371. package/dist/helpers/templates.js.map +1 -1
  372. package/dist/helpers/validations.d.ts +9 -0
  373. package/dist/helpers/validations.d.ts.map +1 -1
  374. package/dist/helpers/validations.js +139 -33
  375. package/dist/helpers/validations.js.map +1 -1
  376. package/dist/hooks/useQorusTypes.d.ts +7 -15
  377. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  378. package/dist/hooks/useQorusTypes.js +25 -166
  379. package/dist/hooks/useQorusTypes.js.map +1 -1
  380. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  381. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  382. package/dist/hooks/useReadableIntentShade.js +23 -0
  383. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  384. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  385. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  386. package/dist/hooks/useReadableOpacity.js +17 -0
  387. package/dist/hooks/useReadableOpacity.js.map +1 -0
  388. package/dist/index.d.ts +1 -0
  389. package/dist/index.d.ts.map +1 -1
  390. package/dist/index.js +1 -0
  391. package/dist/index.js.map +1 -1
  392. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  393. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  394. package/dist/tracking/ui/ExperimentCard.js +26 -10
  395. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  396. package/dist/tracking/ui/card.d.ts +2 -2
  397. package/dist/tracking/ui/card.d.ts.map +1 -1
  398. package/dist/tracking/ui/card.js +2 -2
  399. package/dist/tracking/ui/card.js.map +1 -1
  400. package/dist/tracking/ui/readable.d.ts +14 -0
  401. package/dist/tracking/ui/readable.d.ts.map +1 -0
  402. package/dist/tracking/ui/readable.js +60 -0
  403. package/dist/tracking/ui/readable.js.map +1 -0
  404. package/package.json +14 -5
  405. package/.claude/CLAUDE.md +0 -317
  406. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  407. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  408. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  409. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  410. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  411. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  412. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  413. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  414. package/.tasks/INDEX.md +0 -111
  415. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  416. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  417. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  418. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  419. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  420. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  421. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  422. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  423. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  424. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  425. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  426. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  427. package/CODE_OF_CONDUCT.md +0 -105
  428. package/CONTRIBUTING.MD +0 -78
  429. package/SECURITY.md +0 -3
  430. package/chromatic.config.json +0 -5
  431. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  432. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  433. package/design/COMPACT_PARITY.md +0 -85
  434. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  435. package/design/FORM_ENGINE_COMPACT.md +0 -300
  436. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  437. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  438. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  439. package/design/IDE_INTEGRATION.md +0 -64
  440. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  441. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  442. package/design/SMART_EDITOR_UX.md +0 -438
  443. package/design/TRACKING.md +0 -290
  444. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  445. package/src/components/Description/index.tsx +0 -254
  446. package/src/components/Description/markdownRendererContext.tsx +0 -29
  447. package/src/components/FocusedEditing/index.tsx +0 -50
  448. package/src/components/codeSize/index.tsx +0 -79
  449. package/src/components/composer/Composer.stories.tsx +0 -238
  450. package/src/components/composer/Composer.tsx +0 -554
  451. package/src/components/composer/helpers.ts +0 -74
  452. package/src/components/composer/index.ts +0 -2
  453. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  454. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  455. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  456. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  457. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  458. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  459. package/src/components/dpqlEditor/index.ts +0 -41
  460. package/src/components/dpqlEditor/types.ts +0 -203
  461. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  462. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  463. package/src/components/form/engine/CompactRow.tsx +0 -2620
  464. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  465. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  466. package/src/components/form/engine/FormEngine.tsx +0 -4569
  467. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  468. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  469. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  470. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  471. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  472. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  473. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  474. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  475. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  476. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  477. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  478. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  479. package/src/components/form/engine/compactRowContext.ts +0 -148
  480. package/src/components/form/engine/compactRowStyles.ts +0 -898
  481. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  482. package/src/components/form/engine/optionActions.ts +0 -128
  483. package/src/components/form/engine/optionsContext.ts +0 -24
  484. package/src/components/form/engine/readFirst.ts +0 -1077
  485. package/src/components/form/engine/rendererTypes.ts +0 -107
  486. package/src/components/form/engine/revealRow.ts +0 -123
  487. package/src/components/form/engine/rowFocus.ts +0 -101
  488. package/src/components/form/engine/rowMenuContext.ts +0 -159
  489. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  490. package/src/components/form/engine/typeChoices.ts +0 -63
  491. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  492. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  493. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  494. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  495. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  496. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  497. package/src/components/form/engine/variants/variantModel.ts +0 -223
  498. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  499. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  500. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  501. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  502. package/src/components/form/expressions/argumentPresence.ts +0 -213
  503. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  504. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  505. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  506. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  507. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  508. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  509. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  510. package/src/components/form/expressions/builder/index.tsx +0 -1545
  511. package/src/components/form/expressions/builder/item.tsx +0 -89
  512. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  513. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  514. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  515. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  516. package/src/components/form/expressions/mockExpressions.ts +0 -317
  517. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  518. package/src/components/form/expressions/types.ts +0 -110
  519. package/src/components/form/expressions/useExpressions.ts +0 -101
  520. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  521. package/src/components/form/fields/Field.stories.tsx +0 -143
  522. package/src/components/form/fields/Field.tsx +0 -732
  523. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  524. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  525. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  526. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  527. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  528. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  529. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  530. package/src/components/form/fields/binary/Binary.tsx +0 -91
  531. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  532. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  533. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  534. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  535. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  536. package/src/components/form/fields/color/Color.tsx +0 -46
  537. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  538. package/src/components/form/fields/cron/Cron.tsx +0 -80
  539. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  540. package/src/components/form/fields/date/Date.tsx +0 -55
  541. package/src/components/form/fields/emittedValues.ts +0 -70
  542. package/src/components/form/fields/file/File.stories.tsx +0 -161
  543. package/src/components/form/fields/file/File.tsx +0 -227
  544. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  545. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  546. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  547. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  548. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  549. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  550. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  551. package/src/components/form/fields/number/Number.tsx +0 -160
  552. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  553. package/src/components/form/fields/object/Object.tsx +0 -255
  554. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  555. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  556. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  557. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  558. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  559. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  560. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  561. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  562. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  563. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  564. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  565. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  566. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  567. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  568. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  569. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  570. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  571. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  572. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  573. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  574. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  575. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  576. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  577. package/src/components/form/fields/schema-definition/types.ts +0 -185
  578. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  579. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  580. package/src/components/form/fields/select/Select.tsx +0 -624
  581. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  582. package/src/components/form/fields/string/String.stories.tsx +0 -86
  583. package/src/components/form/fields/string/String.tsx +0 -43
  584. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  585. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  586. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  587. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  588. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  589. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  590. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  591. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  592. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  593. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  594. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  595. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  596. package/src/components/form/fields/url/Url.tsx +0 -85
  597. package/src/components/form/index.tsx +0 -47
  598. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  599. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  600. package/src/components/imageLightbox/index.ts +0 -1
  601. package/src/components/log/Log.stories.tsx +0 -333
  602. package/src/components/log/Log.tsx +0 -285
  603. package/src/components/menu/Menu.stories.tsx +0 -155
  604. package/src/components/menu/Menu.tsx +0 -312
  605. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  606. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  607. package/src/components/qonsoleSmartInput/index.ts +0 -16
  608. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  609. package/src/components/qonsoleSmartInput/types.ts +0 -133
  610. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  611. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  612. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  613. package/src/components/searchFilterBar/index.ts +0 -1
  614. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  615. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  616. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  617. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  618. package/src/components/smartEditor/helpers.ts +0 -217
  619. package/src/components/smartEditor/index.ts +0 -35
  620. package/src/components/smartEditor/styling.ts +0 -45
  621. package/src/components/smartEditor/types.ts +0 -211
  622. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  623. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  624. package/src/components/smartEditor/useLspHover.ts +0 -230
  625. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  626. package/src/components/smartEditor/useLspSession.ts +0 -231
  627. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  628. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  629. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  630. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  631. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  632. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  633. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  634. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  635. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  636. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  637. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  638. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  639. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  640. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  641. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  642. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  643. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  644. package/src/components/supportTicket/index.ts +0 -10
  645. package/src/components/supportTicket/meta.ts +0 -206
  646. package/src/components/supportTicket/ticketModel.ts +0 -131
  647. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  648. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  649. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  650. package/src/components/ticketReferences/index.ts +0 -2
  651. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  652. package/src/components/ticketThread/TicketThread.tsx +0 -719
  653. package/src/components/ticketThread/index.ts +0 -6
  654. package/src/contexts/FetchContext.tsx +0 -25
  655. package/src/contexts/ReqraftContext.tsx +0 -9
  656. package/src/contexts/StorageContext.tsx +0 -33
  657. package/src/global.d.ts +0 -4
  658. package/src/helpers/allowedValues.ts +0 -249
  659. package/src/helpers/choiceChip.ts +0 -227
  660. package/src/helpers/common.ts +0 -326
  661. package/src/helpers/dpqlDetection.ts +0 -209
  662. package/src/helpers/expressions.ts +0 -140
  663. package/src/helpers/optionUiTypes.ts +0 -199
  664. package/src/helpers/options.ts +0 -150
  665. package/src/helpers/providerValue.ts +0 -125
  666. package/src/helpers/scrollbar.ts +0 -32
  667. package/src/helpers/singleLineString.ts +0 -61
  668. package/src/helpers/templateItems.ts +0 -81
  669. package/src/helpers/templateText.ts +0 -350
  670. package/src/helpers/templates.ts +0 -602
  671. package/src/helpers/validations.ts +0 -2085
  672. package/src/hooks/useArgSchema.ts +0 -37
  673. package/src/hooks/useCoarsePointer.ts +0 -30
  674. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  675. package/src/hooks/useFetch/useFetch.tsx +0 -154
  676. package/src/hooks/usePhoneViewport.ts +0 -34
  677. package/src/hooks/useQorusTypes.ts +0 -233
  678. package/src/hooks/useReqraftProperty.ts +0 -16
  679. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  680. package/src/hooks/useStorage/useStorage.ts +0 -35
  681. package/src/hooks/useTemplates.ts +0 -123
  682. package/src/hooks/useValidation.ts +0 -9
  683. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  684. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  685. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  686. package/src/index.tsx +0 -86
  687. package/src/providers/FetchProvider.tsx +0 -40
  688. package/src/providers/ReqraftProvider.tsx +0 -52
  689. package/src/providers/StorageProvider.tsx +0 -131
  690. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  691. package/src/stores/currentUser/currentUser.tsx +0 -94
  692. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  693. package/src/stories/Tests/utils.ts +0 -320
  694. package/src/stories/storyNetwork.ts +0 -92
  695. package/src/stories/tracking.tsx +0 -206
  696. package/src/tracking/browser/attach.ts +0 -186
  697. package/src/tracking/browser/env.ts +0 -78
  698. package/src/tracking/core/consent.ts +0 -37
  699. package/src/tracking/core/engagement.ts +0 -47
  700. package/src/tracking/core/experiments.ts +0 -258
  701. package/src/tracking/core/hash.ts +0 -26
  702. package/src/tracking/core/ids.ts +0 -25
  703. package/src/tracking/core/observable.ts +0 -23
  704. package/src/tracking/core/queue.ts +0 -131
  705. package/src/tracking/core/sections.ts +0 -166
  706. package/src/tracking/core/storage.ts +0 -69
  707. package/src/tracking/core/tracker.ts +0 -417
  708. package/src/tracking/core/types.ts +0 -162
  709. package/src/tracking/core/utm.ts +0 -23
  710. package/src/tracking/index.ts +0 -72
  711. package/src/tracking/markup.ts +0 -17
  712. package/src/tracking/react/Experiment.tsx +0 -44
  713. package/src/tracking/react/TrackingProvider.tsx +0 -56
  714. package/src/tracking/react/hooks.ts +0 -106
  715. package/src/tracking/react/index.ts +0 -13
  716. package/src/tracking/testing.ts +0 -108
  717. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  718. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  719. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  720. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  721. package/src/tracking/ui/anchor.ts +0 -180
  722. package/src/tracking/ui/card.ts +0 -464
  723. package/src/tracking/ui/client.ts +0 -117
  724. package/src/tracking/ui/index.ts +0 -77
  725. package/src/tracking/ui/types.ts +0 -110
  726. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  727. package/src/types/Form.ts +0 -29
  728. package/src/types.ts +0 -14
  729. package/src/utils/datetime.ts +0 -10
  730. package/src/utils/fetch.ts +0 -457
  731. package/src/utils/lspClient.ts +0 -711
  732. package/src/utils/lspClient.types.ts +0 -211
  733. package/src/utils/queryUnlessCancelled.ts +0 -28
  734. package/src/utils/websocket.ts +0 -293
  735. package/vite.config.ts +0 -58
  736. package/vitest.config.ts +0 -69
@@ -1,742 +0,0 @@
1
- import {
2
- ReqoreCollapsibleContent,
3
- ReqoreIcon,
4
- ReqoreLink,
5
- ReqoreP,
6
- ReqoreTag,
7
- } from '@qoretechnologies/reqore';
8
- import { IReqoreFormTemplates } from '@qoretechnologies/reqore/dist/components/Textarea';
9
- import {
10
- IQorusFormField,
11
- IQorusFormSchema,
12
- TQorusFormFieldSchema,
13
- } from '@qoretechnologies/ts-toolkit';
14
- import { IRichtextSegment } from '../../../../helpers/common';
15
- import { templateTextSegments } from '../../../../helpers/templateText';
16
- import React from 'react';
17
- import styled from 'styled-components';
18
- import { useContextSelector } from 'use-context-selector';
19
- import { CompactRowContext } from '../compactRowContext';
20
- import {
21
- MONO_FONT_STACK,
22
- StyledCodePreview,
23
- StyledRowLabel,
24
- StyledRowValue,
25
- } from '../compactRowStyles';
26
- import {
27
- fieldLabel,
28
- findAllowedValueOption,
29
- formatOptionValue,
30
- getAllowedValueIcon,
31
- getAllowedValueImage,
32
- isCodeField,
33
- orderedKeys,
34
- recordIdentity,
35
- titleKeyFor,
36
- } from '../readFirst';
37
- import { TemplateText } from '../../fields/template/TemplateText';
38
- import { TFieldWithOwnTemplates } from '../rendererTypes';
39
- import { isEmptyUiEnvelope, isUiEncodedValue } from './structuredData';
40
-
41
- /**
42
- * A read-only rendering of a value THROUGH the schema that describes it.
43
- *
44
- * `StructuredDataView` renders data nobody has described: it has to announce
45
- * what it found ("Object · 2 fields"), print raw keys, and colour values by
46
- * inferred type, because inference is all it has. That is the right rendering
47
- * for untyped data and the wrong one for ours — a form field with an
48
- * `arg_schema` is a value whose shape, names and choices are all known in
49
- * advance, and showing it as a data tree asks the reader to decode a structure
50
- * the form already knows how to say out loud.
51
- *
52
- * So a described value is rendered the way the form asked for it, in the form's
53
- * own clothes:
54
- *
55
- * - Field names use `StyledFieldLabel` (a `StyledRowLabel` in the read-only
56
- * eyebrow treatment) and values use `StyledRowValue` — the very components the
57
- * option rows above are built from. Not a copy of their CSS: a copy is a
58
- * second definition of "what a form label looks like", and the two drift the
59
- * first time either is touched.
60
- * - Values are formatted by the same `formatOptionValue` the rows use, so an
61
- * `allowed_values` entry resolves to its display name, a bool to Yes/No, a
62
- * date to the app's format. The same words appear in the summary, the preview
63
- * and the editor.
64
- * - Fields appear in the schema's order — the order the form puts them in.
65
- *
66
- * A list renders as numbered items: the number sits in a left margin with a rule
67
- * running down beside the fields belonging to it, and the item's first field
68
- * starts on the number's own line. The rule is what makes a list of multi-field
69
- * items readable — without it, "which item does this field belong to?" is
70
- * answered only by counting.
71
- *
72
- * Two deliberate properties:
73
- *
74
- * - **Nothing is hidden.** A key the schema does not describe is still shown,
75
- * under its raw name, after the described ones. A preview that quietly dropped
76
- * data would be worse than a raw tree, not better.
77
- * - **It degrades, it does not fail.** With no schema for a level, the caller
78
- * keeps using `StructuredDataView` — undescribed data still deserves the
79
- * renderer built for undescribed data.
80
- */
81
-
82
- /** Width of the shared label column, set once on the root (see `labelColumn`). */
83
- const LABEL_COL_VAR = '--schema-view-label-col';
84
-
85
- const StyledSchemaView = styled.div`
86
- display: flex;
87
- flex-direction: column;
88
- gap: 6px;
89
- min-width: 0;
90
- `;
91
-
92
- /**
93
- * One list item: its number in the left margin, its fields beside it.
94
- *
95
- * `align-items: start` over a single grid row is what puts the first field on
96
- * the number's line — the fields are one block starting at the top, not a grid
97
- * row each, so nothing can push them down past their own marker.
98
- */
99
- const StyledItem = styled.div`
100
- display: grid;
101
- grid-template-columns: auto minmax(0, 1fr);
102
- column-gap: 8px;
103
- align-items: start;
104
- min-width: 0;
105
- `;
106
-
107
- /** The item number. Furniture, so it reads quieter than the data it indexes;
108
- * `tabular-nums` keeps "9." and "10." the same width. */
109
- const StyledMarker = styled.div<{ $color: string }>`
110
- color: ${({ $color }) => $color};
111
- font-size: 12px;
112
- font-variant-numeric: tabular-nums;
113
- line-height: 20px;
114
- white-space: nowrap;
115
- `;
116
-
117
- /**
118
- * The item's identifying value, set as its heading.
119
- *
120
- * The first field a schema declares is the one that says WHICH item this is — a
121
- * method's name, a scheme's type — and it was reading as just another row: same
122
- * size, same weight, sat behind its own label. Scanning seven methods meant
123
- * reading fourteen lines to find seven names.
124
- *
125
- * Promoting the value (not the label) is what makes the list scannable: the eye
126
- * lands on `init`, `onOrderStatus`, `onConnect` down the left edge, and the
127
- * supporting fields stay where they were. The label is not lost, it moves to the
128
- * title attribute — a heading that needs a caption is not a heading.
129
- */
130
- const StyledItemTitle = styled.div<{ $color: string; $mono: boolean; $accent: string }>`
131
- color: ${({ $color }) => $color};
132
- /* An accent bar and a tinted surface, so the name is found by shape and not
133
- only by size — at seven items, scanning a column of identical-weight text is
134
- the thing this is trying to remove. The bar sits where the item's own rule
135
- runs, so the heading reads as the start of that item rather than as a
136
- decoration floating beside it. */
137
- display: inline-block;
138
- background: ${({ $accent }) => `${$accent}1f`};
139
- border-left: 3px solid ${({ $accent }) => $accent};
140
- border-radius: 0 4px 4px 0;
141
- padding: 1px 8px;
142
- margin-left: -11px;
143
- /* Outranks the field labels beneath it, which are 600 at 13px.
144
- One step was not enough: at 14px the name and the "Description" label under
145
- it read as the same thing, and the reported symptom was exactly that — the
146
- name looked like another label. Three points and a full weight above the
147
- labels is what separates "which item is this" from "what is in it". */
148
- font-weight: 700;
149
- font-size: 16px;
150
- line-height: 22px;
151
- margin-bottom: 3px;
152
- min-width: 0;
153
- overflow-wrap: anywhere;
154
- /* A literal keeps its mono face, one notch down: mono runs visually larger at
155
- the same pixel size, so 15px here sits level with 16px prose. */
156
- ${({ $mono }) => ($mono ? `font-family: ${MONO_FONT_STACK}; font-size: 15px;` : '')}
157
- `;
158
-
159
- /**
160
- * Does this record have anything to show BELOW its heading?
161
- *
162
- * The heading consumes the identifying field, so a record holding only that has
163
- * an empty body — and a rule drawn down an empty body is a line to nowhere.
164
- */
165
- const hasContentUnderHeading = (record: unknown, schema?: IQorusFormSchema): boolean => {
166
- if (!isRecord(record)) {
167
- return true;
168
- }
169
- const titleKey = titleKeyFor(record, schema);
170
-
171
- return Object.entries(record).some(
172
- ([key, value]) => key !== titleKey && value !== undefined && value !== null && value !== ''
173
- );
174
- };
175
-
176
- /** The rule tying an item's fields to its number.
177
- *
178
- * Same 3px as the heading's accent bar directly above it: at 1px the two read as
179
- * two different devices stacked on each other rather than one rule running down
180
- * the item, and the padding drops to 8px so the text stays on the same column.
181
- *
182
- * The rule is drawn only when something is actually under the heading. The
183
- * heading is pulled left of the rule by its own negative margin, so an item
184
- * whose record holds nothing but its identity showed a 1-2px sliver of line and
185
- * nothing else — which reads as a rendering artefact, because that is what it
186
- * was. It keeps a transparent border in that case so the column does not shift.
187
- */
188
- const StyledItemFields = styled.div<{ $border: string; $rule: boolean }>`
189
- border-left: 3px solid ${({ $border, $rule }) => ($rule ? $border : 'transparent')};
190
- padding-left: 8px;
191
- min-width: 0;
192
- `;
193
-
194
- /**
195
- * A record's fields: one shared label column, values in the next.
196
- *
197
- * The column width is a variable set once on the root, so every field of every
198
- * item lines up on one edge. Sizing per record would align an item's own fields
199
- * and leave the items ragged against each other, which reads as a rendering
200
- * fault rather than as a list.
201
- */
202
- /**
203
- * A record field's name, in the detail-page vocabulary.
204
- *
205
- * Uppercase, tracked and dimmed, so a field name reads as furniture and the
206
- * VALUE beside it is what the eye lands on. Same treatment the read-only
207
- * interface panels use, which is the point: an in-editor list of records and a
208
- * detail-page panel showing the same shape should not look like two components.
209
- *
210
- * A variant rather than a change to `StyledRowLabel`: that one is the FORM's own
211
- * option-row label, and the form's fields are not read-only furniture — they are
212
- * the things you are about to edit. Composing it keeps the colour, weight base
213
- * and wrapping behaviour in one place instead of copying them.
214
- *
215
- * Applies to the label only. A VALUE is never uppercased: values are frequently
216
- * case-sensitive — a service method is `onOrderStatus`, not `ONORDERSTATUS` —
217
- * and the item heading is a value.
218
- */
219
- const StyledFieldLabel = styled(StyledRowLabel)`
220
- font-size: 12px;
221
- text-transform: uppercase;
222
- letter-spacing: 0.06em;
223
- opacity: 0.55;
224
- `;
225
-
226
- const StyledFields = styled.div`
227
- /* The supporting fields step in under the heading, so the heading keeps the
228
- left edge to itself. This is the half that answers "the name is written in
229
- the position of the label": with the labels indented, it no longer is. */
230
- padding-left: 14px;
231
- display: grid;
232
- grid-template-columns: var(${LABEL_COL_VAR}, 140px) minmax(0, 1fr);
233
- column-gap: 10px;
234
- row-gap: 2px;
235
- align-items: baseline;
236
- min-width: 0;
237
-
238
- /* A row's value truncates because a row is one line high. The preview is the
239
- place that shows what the row could not, so a long value wraps here instead
240
- of ellipsising — otherwise opening the preview would reveal exactly as
241
- little as the line above it. */
242
- .options-readfirst-valuetext {
243
- white-space: normal;
244
- overflow: visible;
245
- text-overflow: clip;
246
- overflow-wrap: anywhere;
247
- }
248
-
249
- /* Mono faces run visually larger than the UI face at the same pixel size, so
250
- a literal set at the row's 13px looks a step bolder than the label naming
251
- it. A hair smaller puts the two back on the same footing. */
252
- .schema-view-data {
253
- font-size: 12.5px;
254
- }
255
- `;
256
-
257
- /** A nested level spans both columns and indents under its own name. */
258
- const StyledNested = styled.div<{ $border: string }>`
259
- grid-column: 1 / -1;
260
- margin-left: 2px;
261
- padding-left: 10px;
262
- border-left: 1px solid ${({ $border }) => $border};
263
- min-width: 0;
264
- `;
265
-
266
- const StyledNestedLabel = styled.div`
267
- grid-column: 1 / -1;
268
- `;
269
-
270
- /** A code value is a block, not a cell: it spans the grid under its own name. */
271
- const StyledCodeCell = styled.div`
272
- grid-column: 1 / -1;
273
- min-width: 0;
274
- margin: 2px 0 4px;
275
- `;
276
-
277
- export interface ISchemaDataViewProps {
278
- /** The stored value, with or without `{type, value}` envelopes. */
279
- value: unknown;
280
- /** The schema describing this level — a field's `arg_schema`. */
281
- schema: IQorusFormSchema;
282
- /** Show each field's declared type beside its name. */
283
- showTypes?: boolean;
284
- /**
285
- * Colours, taken from the row so the preview matches its surroundings.
286
- *
287
- * `accent` marks the identifying heading. It comes from the consuming row's
288
- * THEME rather than a literal here, so an app that registers its own intent
289
- * (BRAND_DESIGN §1 names qorus-ide's brand purple as exactly this case) gets
290
- * its own colour without this component knowing anything about it. It is only
291
- * ever a fill or a bar, never applied to text: an intent used as text fails
292
- * contrast — a muted label measures 1.3:1.
293
- */
294
- colors: { key: string; muted: string; border: string; accent: string };
295
- onItemClick?: () => void;
296
- }
297
-
298
- /** Look inside a `{type, value}` envelope, once. `isUiEncodedValue` is the
299
- * engine's single authority on what an envelope is — a looser test would unwrap
300
- * a real user hash that happens to carry a `value` key and drop its siblings. */
301
- const unwrap = (item: unknown): unknown => (isUiEncodedValue(item) ? item.value : item);
302
-
303
- const isRecord = (value: unknown): value is Record<string, unknown> =>
304
- !!value && typeof value === 'object' && !Array.isArray(value);
305
-
306
- /**
307
- * The width of the shared label column, measured from the longest name that will
308
- * actually be rendered.
309
- *
310
- * A fixed width is a guess in both directions: too wide and a name sits far from
311
- * its value, too narrow and every name ellipsises. Measuring fits the content;
312
- * the `%` ceiling stops one long name from taking the whole row when the inset
313
- * is narrow — a phone, or a deeply nested level.
314
- */
315
- /** Approximate rendered width of one label character, in px. See `labelColumn`. */
316
- const LABEL_CHAR_PX = 9.5;
317
-
318
- /** Gap to the value, so the longest label is not flush against it. */
319
- const LABEL_SLACK_PX = 14;
320
-
321
- const labelColumn = (value: unknown, schema: IQorusFormSchema): string => {
322
- const inner = unwrap(value);
323
- const records = (Array.isArray(inner) ? inner.map(unwrap) : [inner]).filter(isRecord);
324
- const longest = records.reduce((widest, record) => {
325
- const own = orderedKeys(record, schema).reduce(
326
- (max, key) =>
327
- Math.max(max, fieldLabel(key, schema[key] as TQorusFormFieldSchema | undefined).length),
328
- 0
329
- );
330
- return Math.max(widest, own);
331
- }, 0);
332
- // px, not `ch`. `ch` is the base font's `0` advance and knows nothing about
333
- // the label's own treatment — uppercase, semibold, `letter-spacing: 0.06em`,
334
- // at 12px — so it under-measures by about a tenth. With `overflow-wrap:
335
- // anywhere` on the label, an under-measured column does not ellipsise, it
336
- // BREAKS THE NAME IN HALF: `LEGACY_FLAG` came out over two lines the moment
337
- // the labels became uppercase. Erring high costs a few px of gap; erring low
338
- // costs a broken word.
339
- return longest ? `min(${Math.ceil(longest * LABEL_CHAR_PX + LABEL_SLACK_PX)}px, 45%)` : '140px';
340
- };
341
-
342
- /**
343
- * `true` when a value is an address a browser can open.
344
- *
345
- * Deliberately per VALUE, not per field: a field named `url` frequently holds
346
- * something that is not one — a bare path, a regex, a template — and offering
347
- * those a link promises a destination there is not.
348
- */
349
- const isNavigableUrl = (value: unknown): value is string =>
350
- typeof value === 'string' && /^(https?|wss?|ftps?):\/\//i.test(value);
351
-
352
- /**
353
- * The reference chips inside a formatted value — none when it holds no
354
- * reference at all.
355
- *
356
- * The preview is the SAME value the row above draws, one level down, and it
357
- * reached the mono cell as a raw string: a sub-field holding
358
- * `$._case.mode != 'simulate'` read as a chip on the row and as the engine's
359
- * own spelling in the inset beneath it, which is a row disagreeing with itself
360
- * about what its value is.
361
- *
362
- * A field's OWN list and grammar win where it declares them — the same
363
- * precedence the rows use — falling back to the form's shared catalogue.
364
- */
365
- const referenceSegments = (
366
- text: unknown,
367
- templates: IReqoreFormTemplates | undefined,
368
- fieldSchema?: TQorusFormFieldSchema
369
- ): IRichtextSegment[] => {
370
- if (typeof text !== 'string' || !text) {
371
- return [];
372
- }
373
- const own = fieldSchema as TFieldWithOwnTemplates | undefined;
374
- const segments = templateTextSegments(text, own?.templates ?? templates, own?.templateToken);
375
- return segments.some((segment) => segment.kind === 'tag') ? segments : [];
376
- };
377
-
378
- /** One field's value, rendered the way its row above renders it. */
379
- const FieldValue = ({
380
- field,
381
- fieldSchema,
382
- color,
383
- }: {
384
- field: IQorusFormField;
385
- fieldSchema: TQorusFormFieldSchema | undefined;
386
- color: string;
387
- }) => {
388
- const formatted = formatOptionValue(field, fieldSchema);
389
- // An allowed value that carries a logo shows it here too, exactly as the row
390
- // above does — the preview is the same value, so it gets the same treatment.
391
- // An option marked with an ICON rather than a logo gets the same, for the same
392
- // reason: the mark is how a list of bare words is told apart, and dropping it
393
- // here would make the preview disagree with the row it previews.
394
- const image = getAllowedValueImage(field.value, fieldSchema);
395
- const icon = getAllowedValueIcon(field.value, fieldSchema);
396
-
397
- // Data reads in mono; a chosen label does not.
398
- //
399
- // "qorus-session" is a literal the author typed — an identifier where the
400
- // characters themselves matter, and where a proportional font makes `l`/`1`
401
- // and `O`/`0` a guess. "Default RBAC" is not data at all: it is the name of a
402
- // choice, written by whoever wrote the schema, and setting it in mono would
403
- // dress up a label as a value. Resolving through `allowed_values` is what
404
- // separates the two, and it is the same lookup that produced the text.
405
- const isChosenLabel = !!findAllowedValueOption(field.value, fieldSchema);
406
-
407
- /* Read from context, like the code renderer above: a level is arbitrarily
408
- deep, and the form's catalogue is a property of the form rather than of any
409
- one level. See `referenceSegments`. */
410
- const templates = useContextSelector(CompactRowContext, (v) => v.templates);
411
- const fieldTemplates = (fieldSchema as TFieldWithOwnTemplates | undefined)?.templates ?? templates;
412
- const segments = isNavigableUrl(field.value) ? [] : referenceSegments(formatted, templates, fieldSchema);
413
-
414
- return (
415
- <StyledRowValue $color={color}>
416
- {field.value === true || field.value === false ?
417
- <ReqoreTag
418
- size='small'
419
- minimal
420
- intent={field.value === true ? 'success' : 'danger'}
421
- label={formatted}
422
- />
423
- : <span
424
- className={`options-readfirst-valuetext${isChosenLabel ? '' : ' schema-view-data'}`}
425
- style={isChosenLabel ? undefined : { fontFamily: MONO_FONT_STACK }}
426
- >
427
- {image ?
428
- <ReqoreIcon
429
- image={image}
430
- size='14px'
431
- style={{ flexShrink: 0, marginRight: 6, verticalAlign: 'middle' }}
432
- />
433
- : icon ?
434
- <ReqoreIcon
435
- icon={icon as any}
436
- size='14px'
437
- style={{ flexShrink: 0, marginRight: 6, verticalAlign: 'middle' }}
438
- />
439
- : null}
440
- {isNavigableUrl(field.value) ?
441
- // The address IS the link — it used to render as inert text with a
442
- // separate icon button beside it to open it, which is two things
443
- // where there is one. ReqoreLink renders a real anchor, so
444
- // middle-click and "copy link address" still work;
445
- // `stopPropagation` because the row around it toggles.
446
- <ReqoreLink
447
- className='schema-view-open-url'
448
- href={field.value}
449
- target='_blank'
450
- rel='noreferrer noopener'
451
- onClick={(event: React.MouseEvent) => event.stopPropagation()}
452
- >
453
- {formatted}
454
- </ReqoreLink>
455
- : segments.length ?
456
- // `full`: the preview is where a value that the row had to cut is
457
- // shown whole, so its chips wrap rather than clipping.
458
- <TemplateText segments={segments} templates={fieldTemplates} full />
459
- : formatted}
460
- </span>
461
- }
462
- </StyledRowValue>
463
- );
464
- };
465
-
466
- /**
467
- * A value with no field schema of its own — a bare entry in a list, a level
468
- * that turned out to be a scalar. It still reads as prose with named chips
469
- * where it holds references, because a reference is not more raw for having
470
- * arrived without a schema.
471
- */
472
- const ScalarText = ({
473
- text,
474
- templates,
475
- }: {
476
- text: string;
477
- templates: IReqoreFormTemplates | undefined;
478
- }) => {
479
- const segments = referenceSegments(text, templates);
480
- return segments.length ?
481
- <TemplateText segments={segments} templates={templates} full />
482
- : <>{text}</>;
483
- };
484
-
485
- /** One described hash: its fields as label/value pairs in the shared columns. */
486
- const SchemaRecord = ({
487
- record,
488
- schema,
489
- showTypes,
490
- colors,
491
- skipKey,
492
- }: {
493
- record: Record<string, unknown>;
494
- schema: IQorusFormSchema;
495
- showTypes?: boolean;
496
- colors: ISchemaDataViewProps['colors'];
497
- /** Rendered as the item's heading already, so it must not repeat as a row. */
498
- skipKey?: string;
499
- }) => {
500
- // The SAME host renderer the row above uses for a `code-editor` field. Read
501
- // from context rather than threaded through props: a nested level is arbitrarily
502
- // deep, and the renderer is a property of the form, not of any one level.
503
- const codePreviewRenderer = useContextSelector(CompactRowContext, (v) => v.codePreviewRenderer);
504
- const cHover = useContextSelector(CompactRowContext, (v) => v.cHover);
505
-
506
- return (
507
- <StyledFields className='schema-view-fields'>
508
- {orderedKeys(record, schema)
509
- .filter((key) => key !== skipKey)
510
- .map((key) => {
511
- const fieldSchema = schema[key] as TQorusFormFieldSchema | undefined;
512
- const nested = (fieldSchema as { arg_schema?: IQorusFormSchema } | undefined)?.arg_schema;
513
- // A schema-declared field the form materialised but never filled in
514
- // arrives as `{type: 'int'}` with no `value` key. `unwrap` cannot see
515
- // that — `isUiEncodedValue` requires a `value` — so it fell through as
516
- // CONTENT and was wrapped as one below, and `formatOptionValue` counted
517
- // the envelope's own `type` key: an untouched Runtime Defaults read
518
- // "Timeout (Seconds) 1 field" three times over while the sub-form it
519
- // previews correctly said 0/3 set. `fieldSchema` is what licenses the
520
- // reading: the schema declares this field, so a `{type}`-only object
521
- // under it is an empty envelope, never somebody's data.
522
- const raw = record[key];
523
- // `!nested` is the discriminator, and it is not a detail: a field that
524
- // declares its OWN level describes what is inside it, so `{type: 'default'}`
525
- // there is content — the scheme's Scheme Type, reading "Default RBAC" —
526
- // not an envelope. Only a leaf can be empty in this sense.
527
- const value =
528
- fieldSchema && !nested && isEmptyUiEnvelope(raw) ? undefined : unwrap(raw);
529
- const label = fieldLabel(key, fieldSchema);
530
- const labelWithType =
531
- showTypes && fieldSchema?.type ? `${label} · ${fieldSchema.type}` : label;
532
-
533
- // A field that describes its own level renders AS that level, indented
534
- // under its name — the same decision, one step down.
535
- if (nested && (isRecord(value) || Array.isArray(value))) {
536
- return (
537
- <React.Fragment key={key}>
538
- <StyledNestedLabel>
539
- <StyledFieldLabel $color={colors.key}>{labelWithType}</StyledFieldLabel>
540
- </StyledNestedLabel>
541
- <StyledNested $border={colors.border}>
542
- <SchemaLevel
543
- value={value}
544
- schema={nested}
545
- showTypes={showTypes}
546
- colors={colors}
547
- />
548
- </StyledNested>
549
- </React.Fragment>
550
- );
551
- }
552
-
553
- // A code value is source, and source is read as source: the host's renderer
554
- // gives it the syntax highlighting (and read-only LSP hover) it has in the
555
- // Source Code field, and "Show more" keeps a long body from taking over the
556
- // preview. Flattening it to one mono line — which is what a plain value cell
557
- // does — throws all of that away for a field whose whole content is code.
558
- if (isCodeField(fieldSchema) && typeof value === 'string') {
559
- return (
560
- <React.Fragment key={key}>
561
- <StyledNestedLabel>
562
- <StyledFieldLabel $color={colors.key}>{labelWithType}</StyledFieldLabel>
563
- </StyledNestedLabel>
564
- <StyledCodeCell onClick={(event) => event.stopPropagation()}>
565
- <ReqoreCollapsibleContent
566
- maxCollapsedHeight={96}
567
- buttonProps={{ className: 'options-readfirst-viewmore' }}
568
- >
569
- {codePreviewRenderer ?
570
- codePreviewRenderer({
571
- value,
572
- name: key,
573
- schema: fieldSchema,
574
- options: schema,
575
- values: record as never,
576
- })
577
- : <StyledCodePreview
578
- className='options-readfirst-code'
579
- $bg={cHover}
580
- $border={`${colors.border}88`}
581
- $fg={colors.key}
582
- >
583
- {value}
584
- </StyledCodePreview>
585
- }
586
- </ReqoreCollapsibleContent>
587
- </StyledCodeCell>
588
- </React.Fragment>
589
- );
590
- }
591
-
592
- return (
593
- <React.Fragment key={key}>
594
- <StyledFieldLabel $color={colors.key} title={label}>
595
- {labelWithType}
596
- </StyledFieldLabel>
597
- <FieldValue
598
- field={{ type: fieldSchema?.type, value } as IQorusFormField}
599
- fieldSchema={fieldSchema}
600
- color={colors.key}
601
- />
602
- </React.Fragment>
603
- );
604
- })}
605
- </StyledFields>
606
- );
607
- };
608
-
609
- /** A level: a list of numbered items, or a single described hash. */
610
- const SchemaLevel = ({
611
- value,
612
- schema,
613
- showTypes,
614
- colors,
615
- }: {
616
- value: unknown;
617
- schema: IQorusFormSchema;
618
- showTypes?: boolean;
619
- colors: ISchemaDataViewProps['colors'];
620
- }) => {
621
- const inner = unwrap(value);
622
- // Same reason as `FieldValue`: a heading and a bare list entry are values too,
623
- // and a reference in one reads as a name everywhere else in the form.
624
- const templates = useContextSelector(CompactRowContext, (v) => v.templates);
625
-
626
- if (Array.isArray(inner)) {
627
- return (
628
- <>
629
- {inner.map((item, index) => {
630
- const record = unwrap(item);
631
- return (
632
- <StyledItem key={index} className='schema-view-item'>
633
- <StyledMarker $color={colors.muted}>{index + 1}.</StyledMarker>
634
- <StyledItemFields
635
- $border={colors.border}
636
- $rule={hasContentUnderHeading(record, schema)}
637
- >
638
- {isRecord(record) ?
639
- <>
640
- {(() => {
641
- const identity = recordIdentity(record, schema);
642
- if (!identity) {
643
- return null;
644
- }
645
- // An item is headed by one of its own fields, so the
646
- // heading is that field's value and reads like it: a case
647
- // named by a reference is named by the reference's NAME.
648
- const titleSegments = referenceSegments(
649
- identity.text,
650
- templates,
651
- schema[identity.key] as TQorusFormFieldSchema | undefined
652
- );
653
- return (
654
- <StyledItemTitle
655
- className='schema-view-item-title'
656
- $color={colors.key}
657
- // A literal keeps the mono treatment it has as a value —
658
- // promoting it must not change what it IS. A chosen
659
- // label ("Default RBAC") is prose and stays prose.
660
- $mono={identity.mono}
661
- $accent={colors.accent}
662
- title={identity.label}
663
- >
664
- {titleSegments.length ?
665
- <TemplateText segments={titleSegments} templates={templates} full />
666
- : identity.text}
667
- </StyledItemTitle>
668
- );
669
- })()}
670
- <SchemaRecord
671
- record={record}
672
- schema={schema}
673
- showTypes={showTypes}
674
- colors={colors}
675
- skipKey={titleKeyFor(record, schema)}
676
- />
677
- </>
678
- : <StyledRowValue $color={colors.key}>
679
- <span
680
- className='options-readfirst-valuetext schema-view-data'
681
- style={{ fontFamily: MONO_FONT_STACK }}
682
- >
683
- <ScalarText
684
- text={formatOptionValue({ value: record } as IQorusFormField)}
685
- templates={templates}
686
- />
687
- </span>
688
- </StyledRowValue>
689
- }
690
- </StyledItemFields>
691
- </StyledItem>
692
- );
693
- })}
694
- </>
695
- );
696
- }
697
-
698
- if (isRecord(inner)) {
699
- return <SchemaRecord record={inner} schema={schema} showTypes={showTypes} colors={colors} />;
700
- }
701
-
702
- return (
703
- <ReqoreP size='small' style={{ color: colors.key }}>
704
- <ScalarText
705
- text={formatOptionValue({ value: inner } as IQorusFormField)}
706
- templates={templates}
707
- />
708
- </ReqoreP>
709
- );
710
- };
711
-
712
- export const SchemaDataView = React.memo(
713
- ({ value, schema, showTypes, colors, onItemClick }: ISchemaDataViewProps) => (
714
- <StyledSchemaView
715
- className='schema-data-view'
716
- onClick={onItemClick}
717
- style={{ [LABEL_COL_VAR]: labelColumn(value, schema) } as React.CSSProperties}
718
- >
719
- <SchemaLevel value={value} schema={schema} showTypes={showTypes} colors={colors} />
720
- </StyledSchemaView>
721
- )
722
- );
723
-
724
- SchemaDataView.displayName = 'SchemaDataView';
725
-
726
- /**
727
- * Whether a value can be rendered through a schema at all.
728
- *
729
- * A schema describes fields, so there has to be a described level to show: a
730
- * hash, or a list of them. A list of scalars has no field names to use and falls
731
- * back to the untyped renderer, which is the right tool for it.
732
- */
733
- export const canRenderWithSchema = (value: unknown, schema: unknown): boolean => {
734
- if (!schema || typeof schema !== 'object' || !Object.keys(schema).length) {
735
- return false;
736
- }
737
- const inner = unwrap(value);
738
- if (Array.isArray(inner)) {
739
- return inner.some((item) => isRecord(unwrap(item)));
740
- }
741
- return isRecord(inner);
742
- };