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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +207 -97
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +21 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
@@ -1,563 +0,0 @@
1
- import {
2
- ReqoreInput,
3
- ReqoreMenu,
4
- ReqoreMenuItem,
5
- ReqoreModal,
6
- ReqoreSpinner,
7
- } from '@qoretechnologies/reqore';
8
- import { TReqoreBadge } from '@qoretechnologies/reqore/dist/components/Button';
9
- import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';
10
- import styled from 'styled-components';
11
- import { thinScrollbar } from '../../helpers/scrollbar';
12
- import { usePhoneViewport } from '../../hooks/usePhoneViewport';
13
- import {
14
- defaultInterfaceIcon,
15
- defaultInterfaceKindLabel,
16
- IInterfaceReference,
17
- toInterfaceKindMark,
18
- TResolveInterfaceIcon,
19
- } from './meta';
20
- import { useLoadedImages } from './useLoadedImages';
21
-
22
- /*
23
- * The interface browser: kinds on one side, the selected kind's interfaces on the
24
- * other, and one search field that scopes both. Sits above a ticket composer, toggled
25
- * by the composer's "Reference interfaces" action.
26
- *
27
- * The host owns the data. Which kinds exist and what lives under one are questions only
28
- * the surrounding app can answer — the IDE lists them off the customer's live instance,
29
- * a story hands over fixtures — so this component takes `kinds` and the selected kind's
30
- * `items` and does the rest: selection, search, and turning a click into a reference.
31
- * Nothing here fetches; `kind` is the only contract, and the host maps it onto whatever
32
- * transport it has.
33
- *
34
- * Three rules the layout follows, in order of how often they bite:
35
- *
36
- * - Search filters the kind list down to what matches, and keeps ONE extra row: the
37
- * selected kind, dimmed, when the query doesn't match it. That row is what stops the
38
- * right-hand results outliving the kind they belong to — without it you'd see three
39
- * interfaces and no way to tell what they were. Everything else goes, because a match
40
- * that survives only by scrolling past nine dimmed rows isn't a match the user found.
41
- * - A picked interface STAYS in the list, selected. Dropping it on pick was a
42
- * disappearing act with no undo inside the picker; now the row toggles.
43
- * - Below `STACK_BREAKPOINT` of its OWN width — not the viewport's, since this thing
44
- * lives inside composers and drawers — the two panes collapse into one column and the
45
- * selected kind's interfaces render directly beneath it. On a phone it goes further
46
- * and lifts into a modal, because inline it would own the whole screen.
47
- */
48
-
49
- /** How tall the panes get before they scroll: side by side, stacked, and in the modal. */
50
- const COLUMNS_MAX_HEIGHT = '220px';
51
- const STACKED_MAX_HEIGHT = '280px';
52
- const MODAL_MAX_HEIGHT = '60vh';
53
- const KIND_PANE_WIDTH = 150;
54
- /** Container width (not viewport) below which the panes stack into one column. */
55
- const STACK_BREAKPOINT = 420;
56
- const BORDER = 'rgba(123, 104, 238, 0.25)';
57
- /*
58
- * Marks the selected kind when the search doesn't match it — it's only still on the
59
- * list to say what the interfaces on the right are. Quiet, but pickable.
60
- */
61
- const DIMMED_CLASS = 'reqore-reference-picker-dimmed';
62
- /*
63
- * Marks an already-referenced row. Reqore paints `selected` purely through styled
64
- * props — no class, no aria state — so "is this row picked" is unobservable from the
65
- * outside without a marker of our own. Stable, so a host can style on it too.
66
- */
67
- const PICKED_CLASS = 'reqore-reference-picker-picked';
68
-
69
- /*
70
- * A scroll pane with the thin, unobtrusive scrollbar the Qonsole surfaces use
71
- * (transparent track, translucent rounded thumb) rather than the raw browser one.
72
- * webkit-only, like those surfaces: setting `scrollbar-width` as well would let
73
- * Chromium override this custom 6px with its own, wider, "thin".
74
- */
75
- const Pane = styled.div<{ $right?: boolean; $maxHeight: string }>`
76
- ${({ $right }) =>
77
- $right
78
- ? 'flex: 1; min-width: 0;'
79
- : `width: ${KIND_PANE_WIDTH}px; flex: none; border-right: 1px solid ${BORDER};`}
80
- max-height: ${({ $maxHeight }) => $maxHeight};
81
- overflow-y: auto;
82
- padding: 4px;
83
-
84
- ${thinScrollbar}
85
- `;
86
-
87
- /** The stacked counterpart of `Pane` — one column, so one scroll region. */
88
- const Stack = styled.div<{ $maxHeight: string }>`
89
- max-height: ${({ $maxHeight }) => $maxHeight};
90
- overflow-y: auto;
91
- padding: 4px;
92
-
93
- ${thinScrollbar}
94
- `;
95
-
96
- /*
97
- * The selected kind's interfaces once the panes have collapsed. The indent and the
98
- * rule are the only things left saying "these belong to the row above" — in the
99
- * two-pane layout the divider between the panes says it.
100
- */
101
- const Nested = styled.div`
102
- margin: 2px 0 4px 10px;
103
- padding-left: 8px;
104
- border-left: 1px solid ${BORDER};
105
- `;
106
-
107
- const Frame = styled.div<{ $bare?: boolean }>`
108
- ${({ $bare }) => ($bare ? '' : `border: 1px solid ${BORDER}; border-radius: 8px;`)}
109
- overflow: hidden;
110
-
111
- /* Rows the search doesn't match. Set here rather than per row so the rule is
112
- stated once, and on the row itself (not a wrapper) so it can't disturb the
113
- menu's own flex layout. */
114
- .${DIMMED_CLASS} {
115
- opacity: 0.35;
116
- }
117
- `;
118
-
119
- const Panes = styled.div`
120
- display: flex;
121
- `;
122
-
123
- /*
124
- * An underline search field. The input itself is borderless (`flat transparent`) and
125
- * this wrapper carries the single bottom border, so the search reads as a line rather
126
- * than a full grey box — including on focus, where Reqore's default is a 2px outline
127
- * around the whole control. Suppressing that outline and brightening the underline
128
- * instead keeps a focus cue without the box. The selector is scoped under this wrapper,
129
- * so it outranks Reqore's without `!important`.
130
- *
131
- * `$active` (the field has a query) holds the underline at full accent, so a filtered
132
- * list is legible as filtered at a glance — the same signal `intent='info'` carries on
133
- * a plain filter control, spoken in this surface's own accent.
134
- */
135
- const Search = styled.div<{ $accent: string; $active?: boolean }>`
136
- padding: 6px 4px 4px;
137
- border-bottom: 1px solid
138
- ${({ $accent, $active }) => ($active ? $accent : `${$accent}80`)};
139
- transition: border-color 0.15s ease-out;
140
-
141
- .reqore-control-wrapper:focus-within {
142
- outline: none;
143
- }
144
- &:focus-within {
145
- border-bottom-color: ${({ $accent }) => $accent};
146
- }
147
- `;
148
-
149
- const Note = styled.div`
150
- opacity: 0.4;
151
- padding: 8px 6px;
152
- font-size: 12px;
153
- `;
154
-
155
- const DEFAULT_ACCENT = '#762f7e';
156
-
157
- /*
158
- * How a picked row reads: `info`, tinted rather than filled.
159
- *
160
- * Two Reqore details make this less obvious than `selected` + `intent`:
161
- *
162
- * - `selected` becomes `active` on the button, and the active branch paints a solid
163
- * background from the intent while ignoring `minimal` and `transparent` outright.
164
- * So `selected` can't be softened — it has to go, and `minimal` carries the state.
165
- * - `ReqoreMenuItem` sets `transparent` on every row, and `transparent` short-circuits
166
- * `minimal`'s tint to nothing. Turning it off for picked rows is what lets the tint
167
- * land, and it's only spread when the row IS picked — a `transparent: undefined` on
168
- * the others would override the menu item's own default and flatten them all.
169
- *
170
- * The point of the tint: a solid blue bar is too much weight for "this one's already
171
- * in your list". The rows still up for choosing are what the user is reading, and they
172
- * should stay the loudest thing in the pane.
173
- */
174
- const pickedItemProps = (isPicked: boolean) =>
175
- isPicked ? ({ intent: 'info', minimal: true, transparent: false } as const) : {};
176
-
177
- /**
178
- * One interface in the list. A bare string is the name and nothing else — the common
179
- * case, and what a host that has only names can keep passing. The object form adds the
180
- * two things a name alone can't disambiguate: a `description` second line (what the
181
- * thing is for, an owning group, a path) and a `badge` (a version, a run count, a
182
- * status tag). Search reads both the name and the description, since both are on screen.
183
- */
184
- export interface IReferencePickerItem {
185
- /** the interface name — this is what gets stored on the reference */
186
- name: string;
187
- /** a muted second line under the name */
188
- description?: string;
189
- /** trailing badge, before the add/remove icon */
190
- badge?: TReqoreBadge | TReqoreBadge[];
191
- }
192
-
193
- export type TReferencePickerItem = string | IReferencePickerItem;
194
-
195
- /** `auto` picks `stacked` from the picker's own measured width. */
196
- export type TReferencePickerLayout = 'auto' | 'columns' | 'stacked';
197
- /** `auto` lifts into a modal on a phone-sized viewport, when `onClose` is given. */
198
- export type TReferencePickerPresentation = 'auto' | 'inline' | 'modal';
199
-
200
- export interface IReferencePickerProps {
201
- /** the interface kinds listed down the left pane */
202
- kinds: string[];
203
- /** the kind whose interfaces `items` holds */
204
- kind: string;
205
- onKindChange: (kind: string) => void;
206
- /**
207
- * The selected kind's interfaces — bare names, or objects carrying a description
208
- * and a badge. Fetching is the host's job; it knows where they come from and how
209
- * to cache them.
210
- */
211
- items: TReferencePickerItem[];
212
- /** `items` is still being fetched, so the right pane shows a spinner rather than
213
- * claiming the kind is empty */
214
- loading?: boolean;
215
- /**
216
- * The host's fetch for this kind failed. Shown in place of the list, because an
217
- * empty pane would otherwise read as "this instance has no workflows" — which is a
218
- * different and much more alarming statement than "we couldn't ask".
219
- */
220
- error?: string;
221
- /** Retry the failed fetch. The error state is pressable when given. */
222
- onRetry?: () => void;
223
- /** Already-picked references. Anything of the current kind that is already picked
224
- * renders selected in place — never removed from the list. */
225
- picked?: IInterfaceReference[];
226
- onAdd: (reference: IInterfaceReference) => void;
227
- /** Un-pick a reference from inside the picker. Without it a picked row still shows
228
- * as picked, it just can't be toggled back off here. */
229
- onRemove?: (reference: IInterfaceReference) => void;
230
- /** the whole picker is inert (e.g. a reply is in flight) */
231
- disabled?: boolean;
232
- /** Per-kind icon: a font icon, or a mark `{ icon, image }` whose image (e.g. the Qog
233
- * logo) is drawn once it loads, with the font icon before that and instead of it if
234
- * it fails. Consumers with their own icon vocabulary (the IDE) pass one; the
235
- * built-in per-kind default is used when omitted. */
236
- resolveInterfaceIcon?: TResolveInterfaceIcon;
237
- /**
238
- * Per-kind reading name — "Value maps" for `value-map`. The kind id is a wire value
239
- * and never reaches the user; this is what does. Search matches both, so typing
240
- * either the id or the label finds the kind. Defaults to the built-in Qorus
241
- * vocabulary.
242
- */
243
- resolveKindLabel?: (kind: string) => string;
244
- /** the underline / selected-kind colour. Defaults to the support surfaces' violet. */
245
- accent?: string;
246
- /** shown above the panes — the composer's picked-reference chips, typically */
247
- header?: ReactNode;
248
- /**
249
- * Dismiss the picker. Required for the modal presentation (a modal with no way out
250
- * is a trap); the inline presentation ignores it, since the host's own toggle is
251
- * what closes the picker there.
252
- */
253
- onClose?: () => void;
254
- /** Modal heading. */
255
- title?: string;
256
- /** How the panes arrange. `auto` (default) stacks below `STACK_BREAKPOINT` of the
257
- * picker's own width; the explicit values are what stories pin. */
258
- layout?: TReferencePickerLayout;
259
- /** Where the picker renders. `auto` (default) goes to a modal on a phone-sized
260
- * viewport when `onClose` is given, and stays inline otherwise. */
261
- presentation?: TReferencePickerPresentation;
262
- }
263
-
264
- /**
265
- * Watches an element's own width, because the viewport's is the wrong question for
266
- * anything that lives inside a composer, a drawer or a side panel — those stay narrow
267
- * on a 2560px screen. A callback ref rather than `useRef` so the observer attaches the
268
- * moment the node mounts; a ref that never gets attached silently reports "wide"
269
- * forever, which is exactly the bug this is meant to catch.
270
- */
271
- const useIsNarrow = (enabled: boolean): [(node: HTMLDivElement | null) => void, boolean] => {
272
- const [node, setNode] = useState<HTMLDivElement | null>(null);
273
- const [narrow, setNarrow] = useState<boolean>(false);
274
-
275
- useEffect(() => {
276
- if (!enabled || !node || typeof ResizeObserver === 'undefined') {
277
- return undefined;
278
- }
279
-
280
- const observer = new ResizeObserver(([entry]) => {
281
- setNarrow(entry.contentRect.width < STACK_BREAKPOINT);
282
- });
283
-
284
- observer.observe(node);
285
-
286
- return () => observer.disconnect();
287
- }, [enabled, node]);
288
-
289
- return [setNode, narrow];
290
- };
291
-
292
- export const ReferencePicker = ({
293
- kinds,
294
- kind,
295
- onKindChange,
296
- items,
297
- loading,
298
- error,
299
- onRetry,
300
- picked,
301
- onAdd,
302
- onRemove,
303
- disabled,
304
- resolveInterfaceIcon = defaultInterfaceIcon,
305
- resolveKindLabel = defaultInterfaceKindLabel,
306
- accent = DEFAULT_ACCENT,
307
- header,
308
- onClose,
309
- title = 'Reference interfaces',
310
- layout = 'auto',
311
- presentation = 'auto',
312
- }: IReferencePickerProps) => {
313
- const [query, setQuery] = useState<string>('');
314
- const needle = query.trim().toLowerCase();
315
-
316
- const [frameRef, narrow] = useIsNarrow(layout === 'auto');
317
- const phone = usePhoneViewport(presentation === 'auto');
318
-
319
- const asModal = presentation === 'modal' || (presentation === 'auto' && phone && !!onClose);
320
- const stacked = layout === 'stacked' || (layout === 'auto' && narrow);
321
- const label = resolveKindLabel(kind);
322
-
323
- /* A kind matches on its id or its reading name, so "value map" and `value-map`
324
- * both find it. */
325
- const matchesKind = useCallback(
326
- (candidate: string) =>
327
- !needle ||
328
- candidate.toLowerCase().includes(needle) ||
329
- resolveKindLabel(candidate).toLowerCase().includes(needle),
330
- [needle, resolveKindLabel]
331
- );
332
-
333
- /* The matches, plus the selected kind whether or not it matched — it keeps its
334
- * natural position rather than jumping to the top, so the list a user is reading
335
- * doesn't reorder under them mid-keystroke. */
336
- const visibleKinds = useMemo(
337
- () => kinds.filter((candidate) => candidate === kind || matchesKind(candidate)),
338
- [kinds, kind, matchesKind]
339
- );
340
-
341
- const pickedNames = useMemo(
342
- () =>
343
- new Set(
344
- (picked ?? [])
345
- .filter((reference) => reference.interface_kind === kind)
346
- .map((reference) => reference.interface_name)
347
- ),
348
- [picked, kind]
349
- );
350
-
351
- /** One shape from here down, whichever of the two the host passed. */
352
- const normalizedItems = useMemo(
353
- () => items.map((item) => (typeof item === 'string' ? { name: item } : item)),
354
- [items]
355
- );
356
-
357
- /*
358
- * The interfaces the search leaves standing. When the KIND itself matches
359
- * ("workflow"), its interfaces all stay — you searched for the kind, so you want to
360
- * see what's in it. Otherwise the name and the description are both fair game,
361
- * because both are text the user can see.
362
- */
363
- const visibleItems = useMemo(() => {
364
- const kindMatches = matchesKind(kind);
365
-
366
- return normalizedItems.filter(
367
- (item) =>
368
- !needle ||
369
- kindMatches ||
370
- item.name.toLowerCase().includes(needle) ||
371
- !!item.description?.toLowerCase().includes(needle)
372
- );
373
- }, [normalizedItems, kind, needle, matchesKind]);
374
-
375
- /* Drives the "…but other types do" hint: with the kind list now always on screen,
376
- * an empty result is only puzzling when the answer is sitting in another row. */
377
- const otherKindsMatch = useMemo(
378
- () => !!needle && kinds.some((candidate) => candidate !== kind && matchesKind(candidate)),
379
- [kinds, kind, needle, matchesKind]
380
- );
381
-
382
- const toggle = (name: string) => {
383
- const reference: IInterfaceReference = { interface_kind: kind, interface_name: name };
384
-
385
- if (pickedNames.has(name)) {
386
- onRemove?.(reference);
387
- } else {
388
- onAdd(reference);
389
- }
390
- };
391
-
392
- const emptyNote = () => {
393
- if (!needle) {
394
- return `No ${label.toLowerCase()} on this instance`;
395
- }
396
-
397
- return otherKindsMatch
398
- ? `No ${label.toLowerCase()} match “${query.trim()}” — other types do`
399
- : `Nothing matches “${query.trim()}”`;
400
- };
401
-
402
- /* Both panes are `ReqoreMenu`s of `ReqoreMenuItem`s — a vertical selectable list is
403
- exactly what Menu is, so the selection (`selected`), the left-icon + right-icon,
404
- and the item chrome come from reqore rather than hand-styled buttons. The wrappers
405
- still own the scroll and the layout; the menus render transparent inside them.
406
- Only menu items go inside a `ReqoreMenu`: it clones every child with its own props,
407
- so a spinner or a note nested in one would be handed props it can't take. */
408
- /* A kind's icon on a menu item: its font icon, and its image (the Qog logo) once
409
- that has loaded — never a broken picture while it loads or if it fails. */
410
- const kindMarks = new Map(
411
- Array.from(new Set([...visibleKinds, kind].filter(Boolean) as string[])).map((option) => [
412
- option,
413
- toInterfaceKindMark(resolveInterfaceIcon(option)),
414
- ])
415
- );
416
- const isImageLoaded = useLoadedImages(Array.from(kindMarks.values()).map((mark) => mark.image));
417
- const kindIconProps = (option: string) => {
418
- const mark = kindMarks.get(option) ?? toInterfaceKindMark(resolveInterfaceIcon(option));
419
- return {
420
- icon: mark.icon,
421
- leftIconProps: isImageLoaded(mark.image) ? { image: mark.image } : undefined,
422
- };
423
- };
424
-
425
- const kindItems = visibleKinds.map((option) => (
426
- <ReqoreMenuItem
427
- key={option}
428
- className={matchesKind(option) ? undefined : DIMMED_CLASS}
429
- {...kindIconProps(option)}
430
- label={resolveKindLabel(option)}
431
- selected={option === kind}
432
- disabled={disabled}
433
- onClick={() => onKindChange(option)}
434
- />
435
- ));
436
-
437
- const interfaces = (() => {
438
- if (error) {
439
- return (
440
- <ReqoreMenu transparent flat padded={false} width='100%' size='small'>
441
- <ReqoreMenuItem
442
- icon='ErrorWarningLine'
443
- rightIcon={onRetry ? 'RefreshLine' : undefined}
444
- intent='danger'
445
- label={`Couldn't load ${label.toLowerCase()}`}
446
- /* the specific failure is the tooltip — the pane states the outcome */
447
- tooltip={error}
448
- onClick={onRetry}
449
- />
450
- </ReqoreMenu>
451
- );
452
- }
453
-
454
- if (loading) {
455
- return (
456
- <ReqoreSpinner iconColor='info' size='small' centered>
457
- Loading {label.toLowerCase()}…
458
- </ReqoreSpinner>
459
- );
460
- }
461
-
462
- if (!visibleItems.length) {
463
- return <Note>{emptyNote()}</Note>;
464
- }
465
-
466
- return (
467
- <ReqoreMenu transparent flat padded={false} width='100%' size='small'>
468
- {visibleItems.map(({ name, description, badge }) => {
469
- const isPicked = pickedNames.has(name);
470
- const removable = isPicked && !!onRemove;
471
-
472
- return (
473
- <ReqoreMenuItem
474
- key={name}
475
- className={isPicked ? PICKED_CLASS : undefined}
476
- {...kindIconProps(kind)}
477
- rightIcon={isPicked ? 'CheckLine' : 'AddLine'}
478
- label={name}
479
- description={description}
480
- badge={badge}
481
- disabled={disabled}
482
- tooltip={
483
- isPicked
484
- ? removable
485
- ? `Remove “${name}”`
486
- : `“${name}” is already referenced`
487
- : `Reference “${name}”`
488
- }
489
- onClick={!isPicked || removable ? () => toggle(name) : undefined}
490
- {...pickedItemProps(isPicked)}
491
- />
492
- );
493
- })}
494
- </ReqoreMenu>
495
- );
496
- })();
497
-
498
- const maxHeight = asModal
499
- ? MODAL_MAX_HEIGHT
500
- : stacked
501
- ? STACKED_MAX_HEIGHT
502
- : COLUMNS_MAX_HEIGHT;
503
-
504
- /* Stacked: one column, with the selected kind's interfaces spliced in directly
505
- under its row. A kind the host hasn't listed puts them at the end rather than
506
- dropping them. */
507
- const selectedIndex = visibleKinds.indexOf(kind);
508
- const splitAt = selectedIndex === -1 ? visibleKinds.length : selectedIndex + 1;
509
-
510
- const body = (
511
- <Frame ref={frameRef} $bare={asModal}>
512
- {header}
513
- <Search $accent={accent} $active={!!needle}>
514
- <ReqoreInput
515
- value={query}
516
- onChange={(event) => setQuery((event.target as HTMLInputElement).value)}
517
- placeholder='Search types and interfaces…'
518
- icon='SearchLine'
519
- minimal
520
- flat
521
- transparent
522
- fluid
523
- disabled={disabled}
524
- onClearClick={query ? () => setQuery('') : undefined}
525
- />
526
- </Search>
527
- {stacked ? (
528
- <Stack $maxHeight={maxHeight}>
529
- <ReqoreMenu transparent flat padded={false} width='100%' size='small'>
530
- {kindItems.slice(0, splitAt)}
531
- </ReqoreMenu>
532
- <Nested>{interfaces}</Nested>
533
- {splitAt < kindItems.length ? (
534
- <ReqoreMenu transparent flat padded={false} width='100%' size='small'>
535
- {kindItems.slice(splitAt)}
536
- </ReqoreMenu>
537
- ) : null}
538
- </Stack>
539
- ) : (
540
- <Panes>
541
- <Pane $maxHeight={maxHeight}>
542
- <ReqoreMenu transparent flat padded={false} width='100%' size='small'>
543
- {kindItems}
544
- </ReqoreMenu>
545
- </Pane>
546
- <Pane $right $maxHeight={maxHeight}>
547
- {interfaces}
548
- </Pane>
549
- </Panes>
550
- )}
551
- </Frame>
552
- );
553
-
554
- if (!asModal) {
555
- return body;
556
- }
557
-
558
- return (
559
- <ReqoreModal isOpen icon='LinksLine' label={title} width='100%' blur={3} onClose={onClose}>
560
- {body}
561
- </ReqoreModal>
562
- );
563
- };
@@ -1,121 +0,0 @@
1
- import { ReqoreUIProvider } from '@qoretechnologies/reqore';
2
- import { StoryObj } from '@storybook/react-vite';
3
- import { expect, fn } from 'storybook/test';
4
- import { ReactNode } from 'react';
5
- import { StoryMeta } from '../../types';
6
- import { ITicketThreadMessage, TicketThread } from '../ticketThread/TicketThread';
7
- import { InterfaceReferenceTags } from './InterfaceReferenceTags';
8
- import { TicketReplyBox } from './TicketReplyBox';
9
-
10
- /**
11
- * The full ticket surface — the shared `<TicketThread>` conversation above the
12
- * `<TicketReplyBox>` composer, the way a ticket detail (customer) or the staff
13
- * drawer stacks them. Shown under the Qorus theme so the `custom1` accent renders.
14
- */
15
- const meta = {
16
- component: TicketReplyBox,
17
- title: 'Components/TicketConversation',
18
- args: { onSend: fn() },
19
- } as StoryMeta<typeof TicketReplyBox>;
20
-
21
- export default meta;
22
- type Story = StoryObj<typeof meta>;
23
-
24
- const CUSTOMER: ITicketThreadMessage = {
25
- message_id: 'm1',
26
- author_type: 'customer',
27
- author_id: 'ops@acme.io',
28
- body: 'Since upgrading to 3.2 our nightly SFTP transfer to the partner endpoint times out after about 30 seconds. It ran fine on 3.1 with the same connection config.',
29
- created: '2026-07-16T09:12:00Z',
30
- referenced_interfaces: [{ interface_kind: 'connection', interface_name: 'sftp-partner' }],
31
- };
32
- const STAFF: ITicketThreadMessage = {
33
- message_id: 'm2',
34
- author_type: 'staff',
35
- author_id: 'nick',
36
- body: "Thanks for the detailed report — we've reproduced the timeout and a fix is in review. In the meantime, can you confirm the datasource pool size configured for the sftp-partner connection?",
37
- created: '2026-07-16T10:03:00Z',
38
- };
39
- const INTERNAL: ITicketThreadMessage = {
40
- message_id: 'm3',
41
- author_type: 'staff',
42
- author_id: 'nick',
43
- internal: true,
44
- body: 'Root cause: the connection-pool default silently dropped from 4 to 1 in the 3.2 migration. Patch is in review against develop.',
45
- created: '2026-07-16T10:05:00Z',
46
- };
47
-
48
- const themed = (node: ReactNode) => (
49
- <ReqoreUIProvider theme={{ main: '#121212', intents: { custom1: '#762f7e' } }}>
50
- <div style={{ padding: 20, background: '#121212', maxWidth: 780 }}>{node}</div>
51
- </ReqoreUIProvider>
52
- );
53
-
54
- const refs = (
55
- <InterfaceReferenceTags
56
- customTheme={{ main: 'custom1' }}
57
- references={[{ interface_kind: 'connection', interface_name: 'sftp-partner' }]}
58
- />
59
- );
60
-
61
- /**
62
- * Staff view — the thread with `viewerRole='staff'` (internal notes show, amber)
63
- * above the staff composer with the split send.
64
- */
65
- export const StaffConversation: Story = {
66
- parameters: {
67
- docs: {
68
- description: {
69
- story:
70
- "Renders the staff view — the thread with viewerRole='staff' (internal notes visible, amber) stacked above the staff composer with its split send.",
71
- },
72
- },
73
- },
74
- render: () =>
75
- themed(
76
- <>
77
- <TicketThread viewerRole='staff' messages={[CUSTOMER, STAFF, INTERNAL]} />
78
- <div style={{ marginTop: 16 }}>
79
- <TicketReplyBox allowInternalNote onSend={fn()} aboveInput={refs} />
80
- </div>
81
- </>
82
- ),
83
- async play({ canvasElement }) {
84
- await expect(canvasElement.textContent).toContain('reproduced the timeout');
85
- // the internal note is visible to staff
86
- await expect(canvasElement.textContent).toContain('Root cause');
87
- // the composer (rich editor) renders below the thread
88
- await expect(canvasElement.querySelector('[contenteditable="true"]')).not.toBeNull();
89
- },
90
- };
91
-
92
- /**
93
- * Customer view — the same thread as the customer sees it (`viewerRole='customer'`,
94
- * staff shown as "Qorus Support", no internal notes) above their reply composer.
95
- */
96
- export const CustomerConversation: Story = {
97
- parameters: {
98
- docs: {
99
- description: {
100
- story:
101
- "Renders the customer view — the same thread with viewerRole='customer' (staff shown as 'Qorus Support', no internal notes) stacked above the customer's reply composer.",
102
- },
103
- },
104
- },
105
- render: () =>
106
- themed(
107
- <>
108
- <TicketThread viewerRole='customer' messages={[CUSTOMER, STAFF]} />
109
- <div style={{ marginTop: 16 }}>
110
- <TicketReplyBox onSend={fn()} aboveInput={refs} />
111
- </div>
112
- </>
113
- ),
114
- async play({ canvasElement }) {
115
- await expect(canvasElement.textContent).toContain('reproduced the timeout');
116
- // the internal note is not in the customer's messages
117
- await expect(canvasElement.textContent).not.toContain('Root cause');
118
- // the composer (rich editor) renders below the thread
119
- await expect(canvasElement.querySelector('[contenteditable="true"]')).not.toBeNull();
120
- },
121
- };