@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,667 +0,0 @@
1
- import {
2
- ReqoreCallout,
3
- ReqoreEntityRow,
4
- ReqoreH4,
5
- ReqoreModal,
6
- ReqoreP,
7
- ReqorePanel,
8
- ReqoreProgress,
9
- ReqoreVerticalSpacer,
10
- useReqoreProperty,
11
- useReqoreTheme,
12
- } from '@qoretechnologies/reqore';
13
- import type { TReqoreBadge } from '@qoretechnologies/reqore/dist/components/Button';
14
- import type { IReqoreEntityRowAction } from '@qoretechnologies/reqore/dist/components/EntityRow';
15
- import type { IReqorePanelBottomAction } from '@qoretechnologies/reqore/dist/components/Panel';
16
- import type { IReqoreIconName } from '@qoretechnologies/reqore/dist/types/icons';
17
- import { RADIUS_FROM_SIZE } from '@qoretechnologies/reqore/dist/constants/sizes';
18
- import { getLuminance, rgba } from 'polished';
19
- import {
20
- useEffect,
21
- useLayoutEffect,
22
- useMemo,
23
- useRef,
24
- useState,
25
- type KeyboardEvent as ReactKeyboardEvent,
26
- } from 'react';
27
- import styled from 'styled-components';
28
- import { activatesRow } from './anchor';
29
- import {
30
- actionOutcome,
31
- barValues,
32
- canAccept,
33
- canPause,
34
- canRemove,
35
- canStart,
36
- canStop,
37
- confirmCopy,
38
- helpSections,
39
- leadingVersion,
40
- lifecycleCopy,
41
- numbersLine,
42
- phaseNote,
43
- primaryMetric,
44
- sortVersionRows,
45
- statusTag,
46
- verdictIntent,
47
- verdictLine,
48
- versionRows,
49
- versionsMaxHeight,
50
- } from './card';
51
- import type { IExperimentEntry, TExperimentAction, TExperimentActionResult } from './types';
52
-
53
- type TMaybeAsync<T = unknown> = T | Promise<T>;
54
-
55
- export interface IExperimentCardProps {
56
- /** The experiment key (`data-experiment` of `<Experiment>`). */
57
- experimentKey: string;
58
- /** The server's experiment and its results; absent while the test is not on the server. */
59
- test?: IExperimentEntry | null;
60
- /** The card's title. Default: the experiment's name, else its key. */
61
- name?: string;
62
- /** The version this page shows now: its row takes the info colour (and `aria-current`). */
63
- shown?: string;
64
- /** The versions the page's code renders (`data-variants`); a server version outside it cannot be shown. */
65
- codeVariants?: string[];
66
- /** The room the card has (px): the versions scroll inside when it is short. */
67
- maxHeight?: number;
68
- /** Why the list could not be loaded (the analytics service cannot be reached). */
69
- loadError?: string | null;
70
- /** An "Open in …" link at the start of the footer (a new tab). */
71
- detailsUrl?: string | null;
72
- /** The link's label. Default `Open in admin portal`. */
73
- detailsLabel?: string;
74
- /** One version's analytics (a new tab): a "Show analytics" action on each row; none without it. */
75
- versionDetailsUrl?: (variant: string) => string | null | undefined;
76
- /** Where the full analytics live, in the help's words. Default `the admin portal`. */
77
- analyticsLabel?: string;
78
- /** Best first (conversion on the primary metric, then visitors). Default true. */
79
- sort?: boolean;
80
- /** The words for a test that is in the page's code but not set up in the analytics service yet. */
81
- notSetUpText?: string;
82
- /** Who removed a version, in words, by the history's `actor` (`{ 'landing-editor': 'in the editor' }`). */
83
- actorLabels?: Record<string, string>;
84
- /** Asks before Accept, Remove, Start, Pause and Stop (Reqore's confirm dialog). Default true. */
85
- confirm?: boolean;
86
- /** A notification after each action (what happened, or the server's error). Default true. */
87
- notify?: boolean;
88
- /** A click (or Enter / Space) on a version's row: show that version on this page. Rows are not clickable without it. */
89
- onShow?: (variant: string) => void;
90
- /** Each action appears only when its callback is given; a returned promise shows the button busy until it settles. */
91
- onAccept?: (variant: string) => TMaybeAsync<TExperimentActionResult | unknown>;
92
- onRemove?: (variant: string) => TMaybeAsync<TExperimentActionResult | unknown>;
93
- onStart?: () => TMaybeAsync;
94
- onPause?: () => TMaybeAsync;
95
- onStop?: () => TMaybeAsync;
96
- /** The ✕ in the header. */
97
- onClose?: () => void;
98
- }
99
-
100
- type TTagIntent = 'success' | 'warning' | 'danger' | 'muted' | 'info';
101
-
102
- // Soft tags: an outlined pill over a wash of its colour, readable on dark and light themes.
103
- const soft = (intent: TTagIntent) => ({ intent, appearance: 'soft' as const });
104
-
105
- type THighlight = 'winner' | 'leading' | undefined;
106
-
107
- const ROW_GAP = 6;
108
- /** Below this width (the versions list, px) the footer's link drops its words for its icon. */
109
- const NARROW_CARD = 400;
110
- /** Room around the rows for the leader's glow, taken from the card's own padding. */
111
- const GLOW_ROOM = 6;
112
-
113
- /**
114
- * How a version's row stands out, drawn around and over the row without taking the pointer:
115
- *
116
- * - the version this page shows: an inset ring and a flat wash in the info colour (the row itself
117
- * keeps no intent, so its actions stay neutral);
118
- * - the leading version: a ring and a soft glow in the success colour, and a wash from the left;
119
- * - the winner (a likely-winner verdict or an ended test's winner): the same, clearly stronger.
120
- *
121
- * Static (nothing animates, so there is nothing for reduced motion to stop), and in the theme's
122
- * own intent colours, so it reads on dark and light.
123
- */
124
- const StyledVersion = styled.div<{
125
- $highlight: THighlight;
126
- $shown: boolean;
127
- $success: string;
128
- $info: string;
129
- $radius: number;
130
- }>`
131
- position: relative;
132
- border-radius: ${({ $radius }) => $radius}px;
133
- box-shadow: ${({ $highlight, $success }) =>
134
- [
135
- $highlight === 'winner' ?
136
- `0 0 0 1px ${rgba($success, 0.95)}, 0 0 18px ${rgba($success, 0.4)}`
137
- : null,
138
- $highlight === 'leading' ?
139
- `0 0 0 1px ${rgba($success, 0.5)}, 0 0 10px ${rgba($success, 0.18)}`
140
- : null,
141
- ]
142
- .filter(Boolean)
143
- .join(', ') || 'none'};
144
-
145
- &::after {
146
- content: '';
147
- position: absolute;
148
- inset: 0;
149
- border-radius: inherit;
150
- pointer-events: none;
151
- /* The shown version's ring sits over the row (an inset shadow on the wrapper would be
152
- painted under the row's own background). */
153
- box-shadow: ${({ $shown, $info }) => ($shown ? `inset 0 0 0 1px ${rgba($info, 0.85)}` : 'none')};
154
- background: ${({ $highlight, $shown, $success, $info }) =>
155
- [
156
- $highlight ?
157
- `linear-gradient(100deg, ${rgba($success, $highlight === 'winner' ? 0.26 : 0.13)} 0%, ${rgba(
158
- $success,
159
- $highlight === 'winner' ? 0.08 : 0.04
160
- )} 45%, ${rgba($success, 0)} 75%)`
161
- : null,
162
- $shown ? `linear-gradient(${rgba($info, 0.1)}, ${rgba($info, 0.1)})` : null,
163
- ]
164
- .filter(Boolean)
165
- .join(', ') || 'none'};
166
- }
167
- `;
168
-
169
- // Layout only: the versions scroll inside the card past three and a half rows.
170
- const StyledVersions = styled.div<{ $max: number | null }>`
171
- display: flex;
172
- flex-direction: column;
173
- gap: ${ROW_GAP}px;
174
- max-height: ${({ $max }) => ($max ? `${$max}px` : 'none')};
175
- overflow-y: ${({ $max }) => ($max ? 'auto' : 'visible')};
176
- overflow-x: hidden;
177
- overscroll-behavior: contain;
178
- min-width: 0;
179
- /* Room for the leader's glow, taken back from the card's padding so the rows keep their width. */
180
- margin: 0 -${GLOW_ROOM}px;
181
- padding: ${GLOW_ROOM}px;
182
-
183
- /* The rows take the card's width, never their content's, padding included: a host page
184
- without a global border-box reset would otherwise push each row past the card's edge. */
185
- > * {
186
- min-width: 0;
187
- }
188
- *,
189
- *::before,
190
- *::after {
191
- box-sizing: border-box;
192
- }
193
- `;
194
-
195
- /** Header, verdict and footer take about this much of `maxHeight`; the versions get the rest. */
196
- const CHROME_HEIGHT = 230;
197
-
198
- /**
199
- * One A/B test: its name and status, the verdict in plain words, one row per version (visitors,
200
- * conversion, chance to beat the original, a bar; click a row to show that version; Accept, and
201
- * Remove at the far end), and the test's own controls (Start / Resume, Pause, Stop) with an
202
- * optional link to its details. Driven only by props: no requests of its own.
203
- */
204
- export const ExperimentCard = ({
205
- experimentKey,
206
- test,
207
- name,
208
- shown,
209
- codeVariants = [],
210
- maxHeight,
211
- loadError,
212
- detailsUrl,
213
- detailsLabel = 'Open in admin portal',
214
- versionDetailsUrl,
215
- analyticsLabel = 'the admin portal',
216
- sort = true,
217
- notSetUpText,
218
- actorLabels,
219
- confirm = true,
220
- notify = true,
221
- onShow,
222
- onAccept,
223
- onRemove,
224
- onStart,
225
- onPause,
226
- onStop,
227
- onClose,
228
- }: IExperimentCardProps) => {
229
- const entry = test ?? undefined;
230
- const confirmAction = useReqoreProperty('confirmAction');
231
- const addNotification = useReqoreProperty('addNotification');
232
- const theme = useReqoreTheme();
233
- // The card's own width, not the window's: it lives in a narrow overlay on a wide page.
234
- const [narrow, setNarrow] = useState(false);
235
- const versionsList = useRef<HTMLDivElement>(null);
236
- useEffect(() => {
237
- const el = versionsList.current;
238
- if (!el || typeof ResizeObserver === 'undefined') return undefined;
239
- const ro = new ResizeObserver(() => setNarrow(el.offsetWidth < NARROW_CARD));
240
- ro.observe(el);
241
- return () => ro.disconnect();
242
- }, []);
243
- const light = (() => {
244
- try {
245
- return getLuminance(theme.main) > 0.5;
246
- } catch {
247
- return false;
248
- }
249
- })();
250
- const [busy, setBusy] = useState<string | null>(null);
251
- const [helpOpen, setHelpOpen] = useState(false);
252
- const [rowHeight, setRowHeight] = useState(0);
253
- const firstRow = useRef<HTMLDivElement>(null);
254
- const mounted = useRef(true);
255
- useEffect(
256
- () => () => {
257
- mounted.current = false;
258
- },
259
- []
260
- );
261
-
262
- const unreachable = !entry && !!loadError;
263
- const codeKey = codeVariants.join(',');
264
- // The order is decided when the data arrives (a refresh), never while the user works in the card.
265
- const order = useMemo(() => {
266
- const all = versionRows(entry, codeVariants);
267
- return (sort ? sortVersionRows(all) : all).map((r) => r.key);
268
- // `codeVariants` is followed by its keys, not its identity.
269
- }, [entry, codeKey, sort]);
270
- const unsorted = versionRows(entry, codeVariants);
271
- const rows = order
272
- .map((key) => unsorted.find((r) => r.key === key))
273
- .filter(Boolean)
274
- .concat(unsorted.filter((r) => !order.includes(r.key)));
275
- const leader = leadingVersion(entry, rows);
276
- const bars = barValues(rows);
277
- const metric = primaryMetric(entry?.results);
278
- const status = entry?.experiment.status;
279
- const title = name || entry?.experiment.name || experimentKey;
280
- const tag = statusTag(entry, unreachable);
281
- const note = phaseNote(entry, actorLabels);
282
- const busyOn = (action: string, variant = '') => busy === `${action}:${variant}`;
283
-
284
- useLayoutEffect(() => {
285
- const h = firstRow.current?.offsetHeight ?? 0;
286
- if (h && h !== rowHeight) setRowHeight(h);
287
- });
288
- // A row's height changes with the card's width (a phone, a resized window): measure it again.
289
- useEffect(() => {
290
- const el = firstRow.current;
291
- if (!el || typeof ResizeObserver === 'undefined') return undefined;
292
- const ro = new ResizeObserver(() => setRowHeight(el.offsetHeight));
293
- ro.observe(el);
294
- return () => ro.disconnect();
295
- }, []);
296
-
297
- // Minimal buttons tint their text from the intent, too pale on a light theme: a deeper shade there.
298
- const quiet = (intent?: 'success' | 'warning' | 'danger' | 'info') => ({
299
- minimal: true,
300
- ...(light && intent ?
301
- {
302
- effect: { color: `${intent}:darken:2` as const, weight: 'thick' as const },
303
- iconColor: `${intent}:darken:2` as const,
304
- }
305
- : {}),
306
- });
307
-
308
- const act = (action: TExperimentAction, variant?: string) => {
309
- if (!entry) return;
310
- const callbacks = {
311
- accept: onAccept,
312
- remove: onRemove,
313
- start: onStart,
314
- pause: onPause,
315
- stop: onStop,
316
- };
317
- const callback = callbacks[action];
318
- if (!callback) return;
319
- const isVersion = action === 'accept' || action === 'remove';
320
- const copy = isVersion ? confirmCopy(action, entry, variant) : lifecycleCopy(action, entry);
321
- const titles: Record<TExperimentAction, [string, string]> = {
322
- accept: ['Winner accepted', 'Could not accept'],
323
- remove: ['Version removed', 'Could not remove'],
324
- start: [status === 'paused' ? 'Test resumed' : 'Test started', 'Could not start'],
325
- pause: ['Test paused', 'Could not pause'],
326
- stop: ['Test stopped', 'Could not stop'],
327
- };
328
- const run = async () => {
329
- setBusy(`${action}:${variant ?? ''}`);
330
- try {
331
- const result = await (callback as (v?: string) => TMaybeAsync)(variant);
332
- if (notify) {
333
- const content =
334
- isVersion ?
335
- actionOutcome(action, result as TExperimentActionResult, variant)
336
- : `“${title}” is ${
337
- action === 'start' ? 'running'
338
- : action === 'pause' ? 'paused'
339
- : 'stopped'
340
- }.`;
341
- addNotification?.({
342
- intent: 'success',
343
- title: titles[action][0],
344
- content,
345
- duration: 8000,
346
- });
347
- }
348
- } catch (err) {
349
- if (notify) {
350
- addNotification?.({
351
- intent: 'danger',
352
- title: titles[action][1],
353
- content: (err as Error)?.message ?? String(err),
354
- duration: 10000,
355
- });
356
- }
357
- } finally {
358
- if (mounted.current) setBusy(null);
359
- }
360
- };
361
- if (confirm && confirmAction) {
362
- confirmAction({
363
- title: copy.title,
364
- description: copy.description,
365
- confirmLabel: copy.confirmLabel,
366
- confirmButtonIntent:
367
- action === 'accept' || action === 'start' ? 'success'
368
- : action === 'pause' ? 'warning'
369
- : 'danger',
370
- onConfirm: () => void run(),
371
- });
372
- } else {
373
- void run();
374
- }
375
- };
376
-
377
- const footer: IReqorePanelBottomAction[] = [];
378
- // A test the analytics service does not know has no analytics to open.
379
- if (detailsUrl && entry) {
380
- footer.push({
381
- position: 'left',
382
- icon: 'ExternalLinkLine',
383
- // In a narrow card it is the icon alone (with its tooltip and name), so the footer fits one row.
384
- label: narrow ? undefined : detailsLabel,
385
- 'aria-label': detailsLabel,
386
- responsive: false,
387
- ...quiet(),
388
- tooltip: 'This test’s details (a new tab)',
389
- onClick: () => window.open(detailsUrl, '_blank', 'noopener'),
390
- });
391
- }
392
- if (entry && status) {
393
- // Every button in the card is minimal, except Start test / Resume: the one primary action.
394
- if (onStart && canStart(status)) {
395
- footer.push({
396
- position: 'right',
397
- icon: 'PlayLine',
398
- intent: 'success',
399
- label: status === 'paused' ? 'Resume' : 'Start test',
400
- responsive: false,
401
- disabled: !!busy,
402
- loading: busyOn('start'),
403
- tooltip:
404
- status === 'paused' ?
405
- 'Split visitors between the versions again'
406
- : 'Start splitting visitors between the versions and counting',
407
- onClick: () => act('start'),
408
- });
409
- }
410
- if (onPause && canPause(status)) {
411
- footer.push({
412
- position: 'right',
413
- icon: 'PauseLine',
414
- intent: 'warning',
415
- label: 'Pause',
416
- responsive: false,
417
- ...quiet('warning'),
418
- disabled: !!busy,
419
- loading: busyOn('pause'),
420
- tooltip: 'Everybody sees the original until you resume',
421
- onClick: () => act('pause'),
422
- });
423
- }
424
- if (onStop && canStop(status)) {
425
- footer.push({
426
- position: 'right',
427
- icon: 'StopLine',
428
- intent: 'danger',
429
- label: 'Stop',
430
- responsive: false,
431
- ...quiet('danger'),
432
- disabled: !!busy,
433
- loading: busyOn('stop'),
434
- tooltip: 'End the test without a winner',
435
- onClick: () => act('stop'),
436
- });
437
- }
438
- }
439
-
440
- const accept = status ? canAccept(status) : false;
441
- const remove = status ? canRemove(status, rows.length) : false;
442
- const listMax = versionsMaxHeight({
443
- rows: rows.length,
444
- rowHeight,
445
- gap: ROW_GAP,
446
- available: maxHeight ? Math.max(rowHeight, maxHeight - CHROME_HEIGHT) : undefined,
447
- });
448
-
449
- return (
450
- <ReqorePanel
451
- className='reqraft-experiment-card'
452
- label={title}
453
- showLabelTooltip
454
- labelMaxLines={1}
455
- icon='FlaskLine'
456
- badge={{ label: tag.label, icon: tag.icon as IReqoreIconName, ...soft(tag.intent) }}
457
- size='small'
458
- rounded
459
- flat={false}
460
- padded
461
- collapsible={false}
462
- onClose={onClose}
463
- closeTooltip='Close (Esc)'
464
- closeButtonProps={{ 'aria-label': 'Close the test card', minimal: true } as never}
465
- actions={[
466
- {
467
- icon: 'QuestionLine',
468
- minimal: true,
469
- flat: true,
470
- tooltip: 'How A/B tests work',
471
- 'aria-label': 'How A/B tests work',
472
- onClick: () => setHelpOpen(true),
473
- } as never,
474
- ]}
475
- bottomActions={footer.length ? footer : undefined}
476
- >
477
- <ReqoreCallout
478
- size='small'
479
- flat
480
- icon='LineChartLine'
481
- intent={unreachable ? 'warning' : verdictIntent(entry)}
482
- effect={{ weight: 500 }}
483
- >
484
- {verdictLine(entry, { unreachable, notSetUpText })}
485
- </ReqoreCallout>
486
- {note && (
487
- <>
488
- <ReqoreVerticalSpacer height={6} />
489
- <ReqoreP size='small' effect={{ opacity: 0.7 }}>
490
- {note}
491
- </ReqoreP>
492
- </>
493
- )}
494
- <ReqoreVerticalSpacer height={10} />
495
- <ReqoreP size='small' effect={{ opacity: 0.75, weight: 500 }}>
496
- {`${rows.length} versions${metric?.name ? ` · goal: “${metric.name}”` : ''}`}
497
- </ReqoreP>
498
- <ReqoreVerticalSpacer height={6} />
499
- <StyledVersions
500
- ref={versionsList}
501
- $max={listMax}
502
- role='list'
503
- aria-label='Versions'
504
- className='reqraft-experiment-versions'
505
- >
506
- {rows.map((r, i) => {
507
- const isShown = r.key === shown;
508
- const highlight: THighlight = leader?.key === r.key ? leader.kind : undefined;
509
- const badges: TReqoreBadge[] = [];
510
- if (leader?.key === r.key) {
511
- badges.push(
512
- leader.kind === 'winner' ?
513
- { label: 'Winner', icon: 'TrophyLine', ...soft('success') }
514
- : { label: 'Leading', icon: 'ArrowUpLine', ...soft('success') }
515
- );
516
- }
517
- if (r.control) badges.push({ label: 'Original', icon: 'HomeLine', ...soft('muted') });
518
- if (!r.inCode)
519
- badges.push({ label: 'Not in the code', icon: 'AlertLine', ...soft('warning') });
520
- // The whole row shows its version; Accept and Remove stop the click (Reqore's row actions do).
521
- const showable = !!onShow && r.inCode && !isShown;
522
- const actions: IReqoreEntityRowAction[] = [];
523
- const analytics = entry ? versionDetailsUrl?.(r.key) : null;
524
- if (analytics) {
525
- actions.push({
526
- size: 'small',
527
- icon: 'BarChartBoxLine',
528
- label: 'Show analytics',
529
- ...quiet(),
530
- tooltip: `Show analytics for “${r.name}” (a new tab)`,
531
- 'aria-label': `Show analytics for ${r.name}`,
532
- onClick: () => window.open(analytics, '_blank', 'noopener'),
533
- } as IReqoreEntityRowAction);
534
- }
535
- if (entry && onAccept) {
536
- actions.push({
537
- size: 'small',
538
- icon: 'TrophyLine',
539
- intent: 'success',
540
- label: 'Accept',
541
- ...quiet('success'),
542
- disabled: !accept || !!busy,
543
- loading: busyOn('accept', r.key),
544
- tooltip:
545
- accept ?
546
- `End the test: every visitor sees “${r.name}”`
547
- : 'Only a started test can be accepted',
548
- onClick: () => act('accept', r.key),
549
- });
550
- }
551
- if (entry && onRemove) {
552
- actions.push({
553
- size: 'small',
554
- icon: 'DeleteBinLine',
555
- intent: 'danger',
556
- ...quiet('danger'),
557
- 'aria-label': `Remove version ${r.name}`,
558
- // At the far end of the row, away from Accept, so it is not clicked by accident.
559
- style: { marginLeft: 'auto' },
560
- disabled: !remove || !!busy,
561
- loading: busyOn('remove', r.key),
562
- tooltip:
563
- remove ?
564
- `Remove version: drop “${r.name}” from the test`
565
- : 'This version cannot be removed now',
566
- onClick: () => act('remove', r.key),
567
- } as IReqoreEntityRowAction);
568
- }
569
- return (
570
- <StyledVersion
571
- role='listitem'
572
- key={r.key}
573
- ref={i === 0 ? firstRow : undefined}
574
- data-version={r.key}
575
- data-highlight={highlight}
576
- aria-current={isShown || undefined}
577
- $highlight={highlight}
578
- $shown={isShown}
579
- $success={theme.intents?.success}
580
- $info={theme.intents?.info}
581
- $radius={RADIUS_FROM_SIZE.small}
582
- >
583
- <ReqoreEntityRow
584
- size='small'
585
- rounded
586
- flat
587
- label={r.name}
588
- badge={badges}
589
- description={numbersLine(r, metric?.name, status)}
590
- metadata={
591
- r.visitors ?
592
- <ReqoreProgress
593
- value={bars[i]}
594
- size='tiny'
595
- rounded
596
- flat
597
- style={{ width: '100%', minWidth: 160 }}
598
- intent={
599
- isShown ? 'info'
600
- : r.control ?
601
- 'muted'
602
- : 'success'
603
- }
604
- aria-label={`${r.name}: conversion compared with the best version`}
605
- />
606
- : undefined
607
- }
608
- iconHasBackground={false}
609
- showIcon={false}
610
- actions={actions.length ? actions : undefined}
611
- {...(showable ?
612
- {
613
- role: 'button',
614
- tabIndex: 0,
615
- 'aria-label': `Show “${r.name}” on this page`,
616
- tooltip: `Show “${r.name}” on this page (only here, never counted)`,
617
- onClick: () => onShow(r.key),
618
- onKeyDown: (e: ReactKeyboardEvent<HTMLDivElement>) => {
619
- if (!activatesRow(e.key, e.target === e.currentTarget)) return;
620
- e.preventDefault();
621
- onShow(r.key);
622
- },
623
- }
624
- : {})}
625
- />
626
- </StyledVersion>
627
- );
628
- })}
629
- </StyledVersions>
630
- {!entry && (
631
- <>
632
- <ReqoreVerticalSpacer height={8} />
633
- <ReqoreP size='small' effect={{ opacity: 0.7 }}>
634
- {unreachable ?
635
- 'Start, Accept and Remove come back once the analytics service answers.'
636
- : 'Start, Accept and Remove appear once the test is set up.'}
637
- </ReqoreP>
638
- </>
639
- )}
640
- <ReqoreModal
641
- isOpen={helpOpen}
642
- onClose={() => setHelpOpen(false)}
643
- label='How A/B tests work'
644
- icon='QuestionLine'
645
- width='640px'
646
- blur={2}
647
- className='reqraft-experiment-help'
648
- >
649
- {helpSections(entry, analyticsLabel).map((section) => (
650
- <div key={section.title}>
651
- <ReqoreH4>{section.title}</ReqoreH4>
652
- <ReqoreVerticalSpacer height={4} />
653
- {section.paragraphs.map((text) => (
654
- <div key={text}>
655
- <ReqoreP size='small' effect={{ weight: 500 }}>
656
- {text}
657
- </ReqoreP>
658
- <ReqoreVerticalSpacer height={6} />
659
- </div>
660
- ))}
661
- <ReqoreVerticalSpacer height={14} />
662
- </div>
663
- ))}
664
- </ReqoreModal>
665
- </ReqorePanel>
666
- );
667
- };