@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,1121 +0,0 @@
1
- // Ported from qorus-ide `src/stories/Fields/Template.stories.tsx`
2
- // (FIELD_STACK_REPORT batch). Adaptations, per the builder-stories pattern:
3
- // - offline fixtures: `__fixtures__/templates.json` + `multiLevelTemplates.json`
4
- // copied verbatim from the IDE's `stories/Data`;
5
- // - the IDE's `_tests*` helpers are inlined with `@storybook/test` primitives;
6
- // - the expression catalogue for the function stories is `mockExpressions`
7
- // plus local `substr` / `PLUS-INT` entries (the IDE relies on the live
8
- // server catalogue) passed via the `expressions` prop;
9
- // - the IDE's leaf story components (`LongStringField`, `Number`, `string`)
10
- // are local 2-arg wrappers over reqraft's leaf fields, `auto` is the ported
11
- // `AutoFormField`.
12
- import { Meta, StoryObj } from '@storybook/react-vite';
13
- import { expect, fireEvent, fn, screen, userEvent, waitFor, within } from 'storybook/test';
14
- import { useState } from 'react';
15
- import { buildTemplates } from '../../../../helpers/templates';
16
- import { mockExpressions } from '../../expressions/mockExpressions';
17
- import { IExpressionSchema } from '../../expressions/types';
18
- import { AutoFormField as auto } from '../auto/AutoFormField';
19
- import LongStringFormField from '../long-string/LongString';
20
- import NumberFormField from '../number/Number';
21
- import { StringFormField } from '../string/String';
22
- import { LONG_EXAMPLE_VALUE } from './__fixtures__/longExampleValue';
23
- import { TemplateField } from './TemplateField';
24
- import multiLevelTemplates from './__fixtures__/multiLevelTemplates.json';
25
- import templates from './__fixtures__/templates.json';
26
-
27
- // --- IDE leaf story components (2-arg field API over reqraft leafs) ---------
28
-
29
- /* eslint-disable @typescript-eslint/no-unused-vars */
30
- const LongStringField = ({ name, onChange, type, level, allowTemplates, ...rest }: any) => (
31
- <LongStringFormField {...rest} onChange={(value: string) => onChange?.(name, value)} />
32
- );
33
- const Number = ({ name, onChange, type, level, allowTemplates, ...rest }: any) => (
34
- <NumberFormField {...rest} onChange={(value: number | string) => onChange?.(name, value)} />
35
- );
36
- const string = ({ name, onChange, type, level, allowTemplates, ...rest }: any) => (
37
- <StringFormField {...rest} onChange={(value: string) => onChange?.(name, value)} />
38
- );
39
- /* eslint-enable @typescript-eslint/no-unused-vars */
40
-
41
- // --- expression catalogue for the function stories ---------------------------
42
- // `substr` / `PLUS-INT` match the server schema shape used by the IDE stories.
43
-
44
- const storyExpressions: IExpressionSchema[] = [
45
- ...mockExpressions,
46
- {
47
- name: 'substr',
48
- display_name: 'Substring',
49
- short_desc: 'Returns a substring of the given string',
50
- desc: 'Returns a substring of the given string from the start position with the given length.',
51
- symbol: 'substr',
52
- type: 1,
53
- subtype: 1,
54
- return_type: 'string',
55
- ui_return_type: 'string',
56
- varargs: false,
57
- groups: ['String'],
58
- args: [
59
- { name: 'softstring', display_name: 'String', ui_type: 'richtext', required: true },
60
- { name: 'int', display_name: 'Start', ui_type: 'int', required: true },
61
- { name: 'int', display_name: 'Length', ui_type: 'int', required: false },
62
- ],
63
- } as IExpressionSchema,
64
- {
65
- name: 'PLUS-INT',
66
- display_name: 'Plus',
67
- short_desc: 'Adds two integers',
68
- desc: 'Adds two integers.',
69
- symbol: '+',
70
- type: 1,
71
- subtype: 1,
72
- return_type: 'int',
73
- ui_return_type: 'int',
74
- varargs: false,
75
- groups: ['Math'],
76
- args: [
77
- { name: 'int', display_name: 'Value', ui_type: 'int', required: true },
78
- { name: 'int', display_name: 'Value', ui_type: 'int', required: true },
79
- ],
80
- } as IExpressionSchema,
81
- ];
82
-
83
- // --- inlined test helpers (equivalents of the IDE `../Tests/utils`) ---------
84
-
85
- const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
86
-
87
- async function _testsClickButton({
88
- label,
89
- selector,
90
- nth = 0,
91
- wait = 7000,
92
- parent = '.reqore-button',
93
- }: {
94
- label?: string;
95
- selector?: string;
96
- nth?: number;
97
- wait?: number;
98
- parent?: string;
99
- }) {
100
- if (!label) {
101
- await waitFor(() => expect(document.querySelectorAll(selector)[nth]).toBeInTheDocument(), {
102
- timeout: wait,
103
- });
104
- await waitFor(() => expect(document.querySelectorAll(selector)[nth]).toBeEnabled(), {
105
- timeout: wait,
106
- });
107
- await userEvent.click(document.querySelectorAll(selector)[nth]);
108
- } else {
109
- await waitFor(() => expect(screen.queryAllByText(label, { selector })[nth]).toBeInTheDocument(), {
110
- timeout: wait,
111
- });
112
- await waitFor(
113
- () => expect(screen.queryAllByText(label, { selector })[nth].closest(parent)).toBeEnabled(),
114
- { timeout: wait }
115
- );
116
- await userEvent.click(screen.queryAllByText(label, { selector })[nth]);
117
- }
118
- }
119
-
120
- async function _testsWaitForText(
121
- text: string | number | RegExp,
122
- selector?: string,
123
- nth: number = 1,
124
- exist: boolean = true
125
- ) {
126
- await waitFor(
127
- () => {
128
- const element = screen.queryAllByText(text, { selector })[nth - 1];
129
-
130
- if (!exist && !element) {
131
- return Promise.resolve();
132
- }
133
-
134
- return expect(element).toBeInTheDocument();
135
- },
136
- { timeout: 10000 }
137
- );
138
- }
139
-
140
- async function _testsWaitForTextToNotExist(text: string, selector?: string, nth: number = 1) {
141
- await _testsWaitForText(text, selector, nth, false);
142
- }
143
-
144
- async function _testsOpenTemplateMenu(nth: number = 1) {
145
- await _testsClickButton({ selector: '.template-more', nth: nth - 1 });
146
- }
147
-
148
- async function _testsSetTemplate(nth: number = 1) {
149
- await _testsOpenTemplateMenu(nth);
150
- await _testsClickButton({ selector: '.template-toggle' });
151
- }
152
-
153
- async function _testsOpenTemplates(nth: number = 1) {
154
- await waitFor(
155
- async () => {
156
- await expect(
157
- document.querySelectorAll('.template-selector.reqore-control')[nth - 1]
158
- ).toBeInTheDocument();
159
- },
160
- { timeout: 10000 }
161
- );
162
-
163
- // IDE-verbatim settle (stories/Tests/utils.ts): ReQore's textarea focus
164
- // handler needs a beat before the selector click lands — no deterministic
165
- // DOM signal to waitFor on.
166
- await sleep(1500);
167
-
168
- await _testsClickButton({
169
- selector: '.template-selector.reqore-control',
170
- wait: 15000,
171
- nth: nth - 1,
172
- });
173
-
174
- await waitFor(
175
- () => expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument(),
176
- { timeout: 10000 }
177
- );
178
- }
179
-
180
- // -----------------------------------------------------------------------------
181
-
182
- const meta = {
183
- component: TemplateField,
184
- title: 'Components/Form/Template',
185
- args: {
186
- templates: buildTemplates(templates as any),
187
- onChange: fn(),
188
- },
189
- render: (args) => {
190
- const [value, setValue] = useState(args.value);
191
-
192
- return (
193
- <TemplateField
194
- {...args}
195
- value={value}
196
- onChange={(name, value) => {
197
- args.onChange(name, value);
198
- setValue(value);
199
- }}
200
- />
201
- );
202
- },
203
- } as Meta<typeof TemplateField>;
204
-
205
- export default meta;
206
-
207
- export const StringComponent: StoryObj<typeof meta> = {
208
- args: {
209
- component: LongStringField,
210
- value: 'Some string',
211
- type: 'string',
212
- },
213
- parameters: {
214
- docs: {
215
- description: {
216
- story:
217
- 'Renders TemplateField wrapping a LongString component with a plain string value — the field shows the literal string in a textarea, no template selected.',
218
- },
219
- },
220
- },
221
- };
222
-
223
- export const BooleanComponent: StoryObj<typeof meta> = {
224
- args: {
225
- value: true,
226
- type: 'boolean',
227
- allowTemplates: true,
228
- componentFromType: true,
229
- },
230
- parameters: {
231
- docs: {
232
- description: {
233
- story:
234
- 'Renders TemplateField for a boolean value with templates allowed — the boolean toggle is shown with the template toggle available on the side.',
235
- },
236
- },
237
- },
238
- };
239
-
240
- export const NumberComponent: StoryObj<typeof meta> = {
241
- args: {
242
- value: 25,
243
- type: 'int',
244
- allowTemplates: true,
245
- componentFromType: true,
246
- },
247
- parameters: {
248
- docs: {
249
- description: {
250
- story:
251
- 'Renders TemplateField for an int value of 25 with templates allowed — the numeric input is shown alongside the template toggle.',
252
- },
253
- },
254
- },
255
- };
256
-
257
- export const AutoComponent: StoryObj<typeof meta> = {
258
- args: {
259
- defaultType: 'auto',
260
- allowTemplates: true,
261
- component: auto,
262
- },
263
- parameters: {
264
- docs: {
265
- description: {
266
- story:
267
- 'Renders TemplateField over an untyped (`auto`) field that accepts templates. While the field is empty it opens on an editor to type into, which offers the templates — never on a data-type picker, so the author can write the value they mean without answering how it is stored.',
268
- },
269
- },
270
- },
271
- play: async ({ canvasElement }) => {
272
- /* The editor itself, not a class: TemplateField puts `.template-selector`
273
- on every control it draws, the data-type picker included, so asserting
274
- the class passed while the story showed "Please select data type". */
275
- await waitFor(() => expect(canvasElement.querySelector('[contenteditable="true"]')).toBeTruthy(), {
276
- timeout: 5000,
277
- });
278
- expect(canvasElement.textContent).not.toContain('Please select data type');
279
- expect(canvasElement.textContent).not.toContain('Select Template');
280
- },
281
- };
282
-
283
- export const AllowedValuesWithTemplate: StoryObj<typeof meta> = {
284
- args: {
285
- defaultType: 'string',
286
- allowTemplates: true,
287
- allowed_values: [
288
- {
289
- value: { type: 'string', value: 'Test' },
290
- display_name: 'Test',
291
- },
292
- ],
293
- component: auto,
294
- },
295
- parameters: {
296
- docs: {
297
- description: {
298
- story:
299
- 'Renders TemplateField restricted to a single allowed value ("Test") but with templates also allowed — the operator can pick the allowed value or switch to a template.',
300
- },
301
- },
302
- },
303
- };
304
-
305
- export const TemplateValue: StoryObj<typeof meta> = {
306
- args: {
307
- component: Number,
308
- type: 'int',
309
- value: '$local:id',
310
- },
311
- parameters: {
312
- docs: {
313
- description: {
314
- story:
315
- 'Renders TemplateField for an int wrapped over the Number component with a template value ($local:id) — the template selector replaces the number input.',
316
- },
317
- },
318
- },
319
- };
320
-
321
- /** REGRESSION — a rehydrated whole-token template value (the FSM state-output
322
- * `$data:{…}` form above all) must render as the picker CHIP, not as its raw
323
- * token text in a string editor. */
324
- export const BracedTemplateValue: StoryObj<typeof meta> = {
325
- args: {
326
- component: LongStringField,
327
- type: 'string',
328
- allowTemplates: true,
329
- allowCustomValues: true,
330
- value: '$data:{W2n_BuSHbaNrbvV1MkfPF.filename}',
331
- templates: buildTemplates({
332
- state_outputs: {
333
- display_name: 'Context Data',
334
- short_desc: 'Outputs of previous states',
335
- app: 'GoogleDrive',
336
- items: [
337
- {
338
- name: 'filename',
339
- display_name: 'Filename',
340
- short_desc: 'The uploaded file name',
341
- desc: 'The uploaded file name',
342
- value: '$data:{W2n_BuSHbaNrbvV1MkfPF.filename}',
343
- type: 'string',
344
- },
345
- ],
346
- },
347
- } as any),
348
- },
349
- parameters: {
350
- docs: {
351
- description: {
352
- story:
353
- 'Renders TemplateField for a string field whose saved value is a braced state-output reference ($data:{id.filename}) — the field shows the resolved picker chip ("Filename"), never the raw token in a textarea, which is what rehydrated drafts degraded to before the token grammar learned braces.',
354
- },
355
- },
356
- },
357
- play: async () => {
358
- await waitFor(() => {
359
- const chip = Array.from(document.querySelectorAll('.reqore-button')).find((button) =>
360
- button.textContent?.includes('Filename')
361
- );
362
- expect(chip, 'the braced value renders as the labeled picker chip').toBeTruthy();
363
- });
364
- const rawTextareas = Array.from(document.querySelectorAll('textarea')).filter((textarea) =>
365
- textarea.value.includes('$data:{')
366
- );
367
- expect(rawTextareas, 'no textarea holds the raw token').toHaveLength(0);
368
- },
369
- };
370
-
371
- /** A template-authored Qog keys its states `'1'`, `'2'`, … while each state
372
- * carries its own id, and its saved `$data:{…}` refs use that id — so the
373
- * catalogue (spelled with the key) and the value (spelled with the id) never
374
- * match as text. The producer supplies the alternate spelling as an alias so
375
- * the chip still resolves to a name instead of printing the raw token. */
376
- export const AliasedStateTemplateValue: StoryObj<typeof meta> = {
377
- args: {
378
- component: LongStringField,
379
- type: 'string',
380
- allowTemplates: true,
381
- allowCustomValues: true,
382
- // what the Qog has saved — the state's own id
383
- value: '$data:{dc_ai_reply.choices}',
384
- templates: {
385
- items: [
386
- {
387
- label: 'Generate AI Reply',
388
- description: 'Outputs of the Groq chat-completion state',
389
- items: [
390
- {
391
- label: 'Choices',
392
- // what the server's catalogue offers — the states-hash key
393
- value: '$data:{3.choices}',
394
- badge: 'list',
395
- metadata: { aliasValues: ['$data:{dc_ai_reply.choices}'] },
396
- },
397
- ],
398
- },
399
- ],
400
- } as any,
401
- },
402
- parameters: {
403
- docs: {
404
- description: {
405
- story:
406
- 'Renders TemplateField holding a state-output reference spelled with the state id ($data:{dc_ai_reply.choices}) while the catalogue offers the same item spelled with the states-hash key ($data:{3.choices}) — the chip resolves through the item alias and shows "Choices", where it used to print the raw token.',
407
- },
408
- },
409
- },
410
- play: async () => {
411
- await waitFor(() => {
412
- const chip = Array.from(document.querySelectorAll('.reqore-button')).find((button) =>
413
- button.textContent?.includes('Choices')
414
- );
415
- expect(chip, 'the aliased value resolves to the labeled picker chip').toBeTruthy();
416
- });
417
- const rawChips = Array.from(document.querySelectorAll('.reqore-button')).filter((button) =>
418
- button.textContent?.includes('$data:{')
419
- );
420
- expect(rawChips, 'no chip prints the raw token').toHaveLength(0);
421
- },
422
- };
423
-
424
- /** A catalogue can only offer what the action's output type declares, so it
425
- * stops at a list — `choices` is offered, `choices[0].message.content` is
426
- * hand-written past it. Such a value has no item of its own and used to
427
- * render as its raw token; it is now named after its nearest ancestor. */
428
- export const ExtendedPathTemplateValue: StoryObj<typeof meta> = {
429
- args: {
430
- component: LongStringField,
431
- type: 'string',
432
- allowTemplates: true,
433
- allowCustomValues: true,
434
- value: '$data:{dc_ai_reply.choices[0].message.content}',
435
- templates: {
436
- items: [
437
- {
438
- label: 'Generate AI Reply',
439
- items: [
440
- {
441
- label: 'Choices',
442
- value: '$data:{3.choices}',
443
- badge: 'list',
444
- metadata: { aliasValues: ['$data:{dc_ai_reply.choices}'] },
445
- },
446
- ],
447
- },
448
- ],
449
- } as any,
450
- },
451
- parameters: {
452
- docs: {
453
- description: {
454
- story:
455
- 'Renders TemplateField holding a path extended past the named field it starts from ($data:{dc_ai_reply.choices[0].message.content}, where the catalogue only offers "choices") — the chip is named after its nearest ancestor as "Choices[0].message.content" instead of printing the raw token.',
456
- },
457
- },
458
- },
459
- play: async () => {
460
- await waitFor(() => {
461
- const chip = Array.from(document.querySelectorAll('.reqore-button')).find((button) =>
462
- button.textContent?.includes('Choices[0].message.content')
463
- );
464
- expect(chip, 'the extended path is named after its ancestor').toBeTruthy();
465
- });
466
- const rawChips = Array.from(document.querySelectorAll('.reqore-button')).filter((button) =>
467
- button.textContent?.includes('$data:{')
468
- );
469
- expect(rawChips, 'no chip prints the raw token').toHaveLength(0);
470
- },
471
- };
472
-
473
- export const ElementTypeInListShowsCorrectTemplates: StoryObj<typeof meta> = {
474
- args: {
475
- component: auto,
476
- defaultType: 'list',
477
- ui_element_type: 'number',
478
- display_name: 'Test',
479
- value: [
480
- { type: 'number', value: 1 },
481
- { type: 'number', value: 2 },
482
- { type: 'number', value: 3 },
483
- ],
484
- },
485
- parameters: {
486
- docs: {
487
- description: {
488
- story:
489
- 'Renders TemplateField in list mode with three number items. Adding a new item and opening the templates popover shows the templates that resolve to the number element type.',
490
- },
491
- },
492
- },
493
- play: async () => {
494
- await _testsClickButton({ label: 'Add new item for "Test"' });
495
- await _testsOpenTemplates();
496
- await _testsWaitForText('Interface ID');
497
- },
498
- };
499
-
500
- export const ShowsTemplatesList: StoryObj<typeof meta> = {
501
- ...TemplateValue,
502
- parameters: {
503
- docs: {
504
- description: {
505
- story:
506
- 'Renders TemplateField with the $local:id template value, then opens the templates popover — the operator sees the available templates that resolve to an int.',
507
- },
508
- },
509
- },
510
- play: async () => {
511
- await _testsOpenTemplates();
512
- },
513
- };
514
-
515
- export const ShowsTemplatesListForString: StoryObj<typeof meta> = {
516
- ...StringComponent,
517
- parameters: {
518
- docs: {
519
- description: {
520
- story:
521
- 'Renders TemplateField over a LongString component with a plain string value, then opens the templates popover — the templates list is shown for a string target type.',
522
- },
523
- },
524
- },
525
- play: async () => {
526
- await _testsOpenTemplates();
527
- },
528
- };
529
-
530
- export const ShowsTemplatesListForBoolean: StoryObj<typeof meta> = {
531
- ...BooleanComponent,
532
- parameters: {
533
- docs: {
534
- description: {
535
- story:
536
- 'Renders TemplateField for a boolean value, switches to template mode and opens the templates popover — the templates list is shown for a boolean target type.',
537
- },
538
- },
539
- },
540
- play: async () => {
541
- await _testsSetTemplate();
542
- await _testsOpenTemplates();
543
- },
544
- };
545
-
546
- export const ShowsTemplatesListForNumber: StoryObj<typeof meta> = {
547
- ...NumberComponent,
548
- parameters: {
549
- docs: {
550
- description: {
551
- story:
552
- 'Renders TemplateField for an int value, then opens the templates popover — the templates list is shown for an int target type.',
553
- },
554
- },
555
- },
556
- play: async () => {
557
- await _testsOpenTemplates();
558
- },
559
- };
560
-
561
- export const TemplateValueCanBeRemoved: StoryObj<typeof meta> = {
562
- args: {
563
- value: '$config:boolean',
564
- type: 'boolean',
565
- allowTemplates: true,
566
- componentFromType: true,
567
- },
568
- parameters: {
569
- docs: {
570
- description: {
571
- story:
572
- 'Renders TemplateField holding a $config:boolean template value. Clicking the template-remove action clears the template and the underlying boolean checkbox is shown instead.',
573
- },
574
- },
575
- },
576
- play: async () => {
577
- await expect(document.querySelector('.template-selector')).toBeInTheDocument();
578
-
579
- await fireEvent.click(document.querySelector('.template-remove'));
580
-
581
- await expect(document.querySelector('.reqore-checkbox')).toBeInTheDocument();
582
- },
583
- };
584
-
585
- export const TemplateWithFunctions: StoryObj<typeof meta> = {
586
- args: {
587
- allowFunctions: true,
588
- type: 'string',
589
- defaultType: 'string',
590
- component: auto,
591
- fixed: true,
592
- fluid: false,
593
- expressions: storyExpressions as any,
594
- },
595
- parameters: {
596
- docs: {
597
- description: {
598
- story:
599
- 'Renders TemplateField with allowFunctions enabled — the template menu now exposes a "Use Expression" entry alongside the plain templates.',
600
- },
601
- },
602
- },
603
- play: async () => {
604
- await _testsOpenTemplateMenu();
605
- await _testsWaitForText('Use Expression');
606
- },
607
- };
608
-
609
- export const TemplateWithFunctionValue: StoryObj<typeof meta> = {
610
- args: {
611
- allowFunctions: true,
612
- isFunction: true,
613
- value: {
614
- exp: 'substr',
615
- args: [
616
- { type: 'string', value: '$local:name' },
617
- { type: 'int', value: '$local:start' },
618
- { type: 'int', value: 10 },
619
- ],
620
- },
621
- type: 'string',
622
- defaultType: 'string',
623
- component: auto,
624
- fixed: true,
625
- fluid: false,
626
- expressions: storyExpressions as any,
627
- },
628
- parameters: {
629
- docs: {
630
- description: {
631
- story:
632
- 'Renders TemplateField holding a substr function value with three arguments — the expression builder shows the function name and each argument slot.',
633
- },
634
- },
635
- },
636
- };
637
-
638
- export const TemplateWithNestedFunctionValue: StoryObj<typeof meta> = {
639
- args: {
640
- allowFunctions: true,
641
- isFunction: true,
642
- value: {
643
- exp: 'substr',
644
- args: [
645
- { type: 'string', value: '$local:name' },
646
- {
647
- type: 'int',
648
- value: {
649
- exp: 'PLUS-INT',
650
- args: [
651
- { type: 'int', value: '$local:start' },
652
- { type: 'int', value: '5' },
653
- ],
654
- },
655
- is_expression: true,
656
- },
657
- { type: 'int', value: 10 },
658
- ],
659
- },
660
- type: 'string',
661
- defaultType: 'string',
662
- component: auto,
663
- fixed: true,
664
- fluid: false,
665
- expressions: storyExpressions as any,
666
- },
667
- parameters: {
668
- docs: {
669
- description: {
670
- story:
671
- 'Renders TemplateField holding a substr function whose second argument is itself a PLUS-INT expression — the expression builder shows the nested function inline within the outer call.',
672
- },
673
- },
674
- },
675
- };
676
-
677
- export const TemplateCanBeSelected: StoryObj<typeof meta> = {
678
- args: {
679
- type: 'string',
680
- defaultType: 'string',
681
- defaultInternalType: 'string',
682
- },
683
- parameters: {
684
- docs: {
685
- description: {
686
- story:
687
- 'Renders TemplateField for a string, opens the templates popover and clicks the Interface ID template — the field switches to template mode, where the $local:id reference is a chip named Interface ID inside an editor that can still be typed into.',
688
- },
689
- },
690
- },
691
- play: async ({ canvasElement, ...rest }) => {
692
- const canvas = within(canvasElement);
693
-
694
- await ShowsTemplatesListForString.play({ canvasElement, ...rest });
695
- await _testsClickButton({ label: 'Interface ID' });
696
-
697
- // The chosen reference reads as the name it was chosen by, in an editor
698
- // that can still be typed into — not as its spelling.
699
- await waitFor(
700
- () => {
701
- const chip = canvasElement.querySelector('.template-selector [contenteditable="true"] .reqore-tag');
702
- expect(chip?.textContent).toContain('Interface ID');
703
- },
704
- { timeout: 5000 }
705
- );
706
- await expect(canvas.queryByDisplayValue('$local:id')).toBeNull();
707
- },
708
- };
709
-
710
- export const ValueIsResetWhenChangingToCustom: StoryObj<typeof meta> = {
711
- parameters: {
712
- docs: {
713
- description: {
714
- story:
715
- 'Renders TemplateField over a number type holding a $config:something template value. Clicking template-remove resets the value to undefined and fires onChange with the cleared value.',
716
- },
717
- },
718
- },
719
- render: (args) => {
720
- const [value, setValue] = useState(args.value);
721
-
722
- return (
723
- <TemplateField
724
- {...args}
725
- value={value}
726
- onChange={(name, value) => {
727
- args.onChange(name, value);
728
- setValue(value);
729
- }}
730
- />
731
- );
732
- },
733
- args: {
734
- component: string,
735
- type: 'number',
736
- value: '$config:something',
737
- name: 'Test Field',
738
- },
739
- play: async ({ args }) => {
740
- await waitFor(
741
- async () => {
742
- await expect(document.querySelector('.template-selector')).toBeInTheDocument();
743
- },
744
- { timeout: 10000 }
745
- );
746
-
747
- await fireEvent.click(document.querySelectorAll('.template-remove')[0]);
748
- await expect(args.onChange).toHaveBeenLastCalledWith('Test Field', undefined);
749
- },
750
- };
751
-
752
- export const TemplatesWithMultipleLevels: StoryObj<typeof meta> = {
753
- args: {
754
- component: LongStringField,
755
- type: 'string',
756
- templates: buildTemplates(multiLevelTemplates as any),
757
- },
758
- parameters: {
759
- docs: {
760
- description: {
761
- story:
762
- 'Renders TemplateField for a string with a hierarchical template catalogue. Drilling into "Testing Hash" narrows the list to templates that resolve to a string (Testing Int Item is filtered out).',
763
- },
764
- },
765
- },
766
- play: async () => {
767
- await _testsOpenTemplates();
768
- await _testsClickButton({ label: 'Testing Hash' });
769
- await _testsWaitForText('Testing String Item');
770
- await _testsWaitForTextToNotExist('Testing Int Item');
771
- },
772
- };
773
-
774
- export const TemplatesWithMultipleLevelsAndHashField: StoryObj<typeof meta> = {
775
- parameters: {
776
- docs: {
777
- description: {
778
- story:
779
- 'Renders TemplateField for a hash type with a hierarchical template catalogue — switching to template mode and opening the popover exposes the nested template groups.',
780
- },
781
- },
782
- },
783
- render: (args) => {
784
- const [value, setValue] = useState(args.value);
785
-
786
- return (
787
- <TemplateField
788
- {...args}
789
- value={value}
790
- onChange={(name, value) => {
791
- args.onChange(name, value);
792
- setValue(value);
793
- }}
794
- />
795
- );
796
- },
797
- args: {
798
- component: auto,
799
- type: 'hash',
800
- defaultType: 'hash',
801
- templates: buildTemplates(multiLevelTemplates as any),
802
- },
803
- play: async () => {
804
- await _testsSetTemplate();
805
- await _testsOpenTemplates();
806
- },
807
- };
808
-
809
- export const TemplateWithItemsCanBeSelected: StoryObj<typeof meta> = {
810
- ...TemplatesWithMultipleLevelsAndHashField,
811
- parameters: {
812
- docs: {
813
- description: {
814
- story:
815
- 'Renders TemplateField for a hash type with a hierarchical catalogue. Selecting an item from a nested group updates the template value to the picked entry (Testing Hash).',
816
- },
817
- },
818
- },
819
- play: async (args) => {
820
- await TemplatesWithMultipleLevelsAndHashField.play(args);
821
- await _testsClickButton({ selector: '.reqore-menu-item-left-action' });
822
- await _testsWaitForText('Testing Hash');
823
- },
824
- };
825
-
826
- /* One group, four items covering every affordance combination:
827
- - "Attachment Body" — leaf, LONG example → "?" (right) only
828
- - "Attachment Name" — leaf, short example → no actions at all
829
- - "Message Author Props" — hash with children, LONG example (the whole
830
- object) → BOTH: the "+" select action (left) and the "?" (right)
831
- - "Delivery Flags" — hash with children, short example → "+" only
832
- The sentinel at the very end proves truncation in the picker and
833
- completeness in the modal. */
834
- const longExampleTemplates = {
835
- gmail_attachment: {
836
- display_name: 'New Attachment',
837
- short_desc: 'Data from the attachment trigger',
838
- app: 'Gmail',
839
- items: [
840
- {
841
- name: 'attachment_body',
842
- display_name: 'Attachment Body',
843
- value: '$data:{on_attachment.data}',
844
- type: 'data',
845
- example_value: LONG_EXAMPLE_VALUE,
846
- },
847
- {
848
- name: 'attachment_name',
849
- display_name: 'Attachment Name',
850
- value: '$data:{on_attachment.name}',
851
- type: 'string',
852
- example_value: 'invoice.pdf',
853
- },
854
- {
855
- name: 'author',
856
- display_name: 'Message Author Properties',
857
- value: '$data:{on_attachment.author}',
858
- type: 'hash',
859
- // A parent's example is the whole object, so it goes long almost by
860
- // definition — this is the "+ AND ?" case.
861
- example_value: {
862
- name: 'Ada Lovelace',
863
- email: 'ada@example.com',
864
- signature: LONG_EXAMPLE_VALUE.slice(0, 600),
865
- },
866
- items: [
867
- {
868
- name: 'author_name',
869
- display_name: 'Name',
870
- value: '$data:{on_attachment.author.name}',
871
- type: 'string',
872
- example_value: 'Ada Lovelace',
873
- },
874
- {
875
- name: 'author_email',
876
- display_name: 'Email',
877
- value: '$data:{on_attachment.author.email}',
878
- type: 'string',
879
- example_value: 'ada@example.com',
880
- },
881
- ],
882
- },
883
- {
884
- name: 'flags',
885
- display_name: 'Delivery Flags',
886
- value: '$data:{on_attachment.flags}',
887
- type: 'hash',
888
- // Small object: the serialized example stays under the preview
889
- // threshold, so this parent keeps ONLY the "+" select action.
890
- example_value: { read: true },
891
- items: [
892
- {
893
- name: 'flags_read',
894
- display_name: 'Read',
895
- value: '$data:{on_attachment.flags.read}',
896
- type: 'bool',
897
- example_value: true,
898
- },
899
- ],
900
- },
901
- ],
902
- },
903
- };
904
-
905
- export const LongExampleValueTruncatedWithModal: StoryObj<typeof meta> = {
906
- args: {
907
- component: LongStringField,
908
- value: 'Some string',
909
- type: 'string',
910
- templates: buildTemplates(longExampleTemplates as any),
911
- },
912
- parameters: {
913
- docs: {
914
- description: {
915
- story:
916
- 'Every item-affordance combination in one picker: a leaf with a whole-base64-file example gets a single-line ellipsized preview (cut at the popover\'s actual width — no breakpoints) and the "?" action (right) opening the full value in a modal; a hash parent whose own example object is long gets BOTH the "+" select action (left) and the "?"; a small hash parent keeps only the "+"; and a short leaf keeps its full wrapped preview with no actions. Neither previewing nor copying ever selects an item.',
917
- },
918
- },
919
- },
920
- play: async ({ args }) => {
921
- await _testsOpenTemplates();
922
- await _testsWaitForText('Attachment Body');
923
-
924
- // The picker shows TRUNCATED previews — the long value's tail sentinel
925
- // must not be in the popover…
926
- const popover = document.querySelector('.reqore-popover-content');
927
- await expect(popover.textContent).toContain('Example value: "JVBERi0x');
928
- await expect(popover.textContent).not.toContain('THE_VERY_END');
929
-
930
- // …and the affordances land exactly by shape: "?" on the long leaf AND
931
- // the long-example hash parent (2), "+" on both hash parents (2) — the
932
- // long-example parent carries both at once. The short leaf and the small
933
- // parent's example stay modal-free.
934
- await expect(popover.querySelectorAll('.reqore-menu-item-right-action').length).toBe(2);
935
- await expect(popover.querySelectorAll('.reqore-menu-item-left-action').length).toBe(2);
936
-
937
- // Long previews are single-line ellipsized at the RENDERED width
938
- // (container-intrinsic — the same item adapts to any popover width);
939
- // short previews keep normal wrapping.
940
- const descriptions = popover.querySelectorAll('.reqore-button-description');
941
- const longDescription = Array.from(descriptions).find((el) =>
942
- el.textContent?.includes('JVBERi0x')
943
- ) as HTMLElement;
944
- const shortDescription = Array.from(descriptions).find((el) =>
945
- el.textContent?.includes('invoice.pdf')
946
- ) as HTMLElement;
947
- await expect(getComputedStyle(longDescription).whiteSpace).toBe('nowrap');
948
- await expect(longDescription.scrollWidth).toBeGreaterThan(longDescription.clientWidth);
949
- await expect(getComputedStyle(shortDescription).whiteSpace).not.toBe('nowrap');
950
-
951
- await _testsClickButton({ selector: '.reqore-menu-item-right-action' });
952
-
953
- const modal = await waitFor(
954
- () => {
955
- const el = document.querySelector('.reqraft-template-example-value-modal');
956
- if (!el) throw new Error('modal not open yet');
957
- return el;
958
- },
959
- { timeout: 10000 }
960
- );
961
-
962
- // The modal holds the WHOLE value, down to the sentinel.
963
- const textarea = modal.querySelector('textarea') as HTMLTextAreaElement;
964
- await expect(textarea.value.endsWith('THE_VERY_END"')).toBe(true);
965
-
966
- // Close it; opening/previewing must never have selected the item.
967
- fireEvent.click(modal.querySelector('.reqore-drawer-close-button'));
968
- await waitFor(
969
- () => {
970
- if (document.querySelector('.reqraft-template-example-value-modal')) {
971
- throw new Error('modal still open');
972
- }
973
- },
974
- { timeout: 10000 }
975
- );
976
- await expect(args.onChange).not.toHaveBeenCalled();
977
-
978
- // End on the informative frame for the visual snapshot: the popover with
979
- // the truncated preview and its "?" action visible (the assertions above
980
- // close everything, which would leave the capture showing an empty field).
981
- await _testsOpenTemplates();
982
- await _testsWaitForText('Attachment Body');
983
- },
984
- };
985
-
986
- /**
987
- * An EMPTY `any` field opens on the template selector, not the type picker.
988
- *
989
- * An `any` field has no editor of its own until a concrete type is chosen, so it
990
- * used to open on the type picker — making the author answer a question about
991
- * storage ("Text or Number?") before they could say what they meant, and often a
992
- * question they cannot answer, because the value they want is a reference to
993
- * something else whose type is not theirs to pick.
994
- *
995
- * The literal is still one menu item away: "Set Custom Value" in the ⋮ menu.
996
- * That is the right way round — picking a template is choosing from a list,
997
- * picking a literal is a decision.
998
- */
999
- export const EmptyAnyOpensOnTemplates: StoryObj<typeof meta> = {
1000
- args: {
1001
- component: auto,
1002
- type: 'any',
1003
- allowTemplates: true,
1004
- allowCustomValues: true,
1005
- value: undefined,
1006
- },
1007
- parameters: {
1008
- docs: {
1009
- description: {
1010
- story:
1011
- 'An untyped, empty field that accepts templates opens on an editor to type into, which offers the templates — never on a data-type picker.',
1012
- },
1013
- },
1014
- },
1015
- play: async ({ canvasElement }) => {
1016
- /* The editor itself, not a class: TemplateField puts `.template-selector`
1017
- on every control it draws, the data-type picker included, so asserting
1018
- the class passed while the story showed "Please select data type". */
1019
- await waitFor(() => expect(canvasElement.querySelector('[contenteditable="true"]')).toBeTruthy(), {
1020
- timeout: 5000,
1021
- });
1022
- expect(canvasElement.textContent).not.toContain('Please select data type');
1023
- expect(canvasElement.textContent).not.toContain('Select Template');
1024
- },
1025
- };
1026
-
1027
- /** A string mixing text with template references, as template mode edits it. */
1028
- const templateReferencesInText: StoryObj<typeof meta> = {
1029
- args: {
1030
- type: 'string',
1031
- defaultType: 'string',
1032
- defaultInternalType: 'string',
1033
- value: 'Interface $local:id failed at $timestamp:now',
1034
- },
1035
- play: async ({ canvasElement }) => {
1036
- const editor = await waitFor(
1037
- () => {
1038
- const element = canvasElement.querySelector<HTMLElement>('.template-selector [contenteditable="true"]');
1039
- expect(element).toBeTruthy();
1040
- return element!;
1041
- },
1042
- { timeout: 5000 }
1043
- );
1044
- // Each reference is its catalogue name; the text between them is untouched.
1045
- await waitFor(() =>
1046
- expect(Array.from(editor.querySelectorAll('.reqore-tag')).map((chip) => chip.textContent?.trim())).toEqual([
1047
- 'Interface ID',
1048
- 'Current Timestamp',
1049
- ])
1050
- );
1051
- expect(editor.textContent).toContain('failed at');
1052
- expect(editor.textContent).not.toContain('$local:id');
1053
- },
1054
- };
1055
-
1056
- export const TemplateReferencesInText: StoryObj<typeof meta> = {
1057
- ...templateReferencesInText,
1058
- parameters: {
1059
- docs: {
1060
- description: {
1061
- story:
1062
- 'Renders TemplateField holding the string "Interface $local:id failed at $timestamp:now". Template mode draws each reference as a chip named from the catalogue (Interface ID, Current Timestamp) inside an editor that can still be typed into; the text between them reads as typed.',
1063
- },
1064
- },
1065
- },
1066
- };
1067
-
1068
- export const TemplateReferencesInTextOnPhone: StoryObj<typeof meta> = {
1069
- ...templateReferencesInText,
1070
- parameters: {
1071
- qlip: { viewport: { width: 390, height: 844 } },
1072
- docs: {
1073
- description: {
1074
- story:
1075
- 'Renders the same string with two template references at phone width (390px): the named chips and the text around them wrap inside the editor rather than overflowing it.',
1076
- },
1077
- },
1078
- },
1079
- };
1080
-
1081
- /**
1082
- * An `any` field that ALREADY HOLDS A LITERAL opens on that literal.
1083
- *
1084
- * The other half of the same choice, and the one that keeps it safe: defaulting
1085
- * to the template view unconditionally would hide a value the author had already
1086
- * typed, which reads as the value having been lost.
1087
- */
1088
- export const AnyWithLiteralOpensOnTheValue: StoryObj<typeof meta> = {
1089
- args: {
1090
- component: auto,
1091
- type: 'any',
1092
- allowTemplates: true,
1093
- allowCustomValues: true,
1094
- value: 'already-typed',
1095
- },
1096
- parameters: {
1097
- docs: {
1098
- description: {
1099
- story:
1100
- 'An untyped field holding a literal keeps showing that literal — only an empty one defaults to the template selector. Where the field offers templates that editor is the chip editor (a contenteditable box), not a textarea, so the literal appears there.',
1101
- },
1102
- },
1103
- },
1104
- play: async ({ canvasElement }) => {
1105
- // The property that matters is that the VALUE is still on screen. Asserting
1106
- // the absence of `.template-selector` would be wrong: that class is also on
1107
- // a control that renders either way, so it says nothing about which view is
1108
- // active.
1109
- await waitFor(() => {
1110
- // Its editor may be a field or, where templates are offered, the chip editor.
1111
- const shown = [
1112
- ...canvasElement.querySelectorAll<HTMLElement>('input, textarea, [contenteditable="true"]'),
1113
- ].map((el) =>
1114
- el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement ?
1115
- el.value
1116
- : (el.textContent ?? '').replace(/\uFEFF/g, '').trim()
1117
- );
1118
- expect(shown).toContain('already-typed');
1119
- });
1120
- },
1121
- };