@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,872 +0,0 @@
1
- import { ReqoreButton, ReqoreP } from '@qoretechnologies/reqore';
2
- import { StoryObj } from '@storybook/react-vite';
3
- import { expect, fireEvent, waitFor, within } from 'storybook/test';
4
- import { useState } from 'react';
5
- import { StoryMeta } from '../../../../types';
6
- import { SelectFormField } from './Select';
7
- import {
8
- SELECT_DIALOG_MIN_HEIGHT,
9
- SELECT_DIALOG_MIN_WIDTH,
10
- UNAVAILABLE_ITEM_CLASS,
11
- } from './SelectCollection';
12
-
13
- const meta = {
14
- component: SelectFormField,
15
- title: 'Components/Form/Select',
16
- args: {
17
- onChange: undefined,
18
- },
19
- render(args) {
20
- const [value, setValue] = useState(args.value);
21
- return (
22
- <SelectFormField
23
- {...args}
24
- value={value}
25
- onChange={(value) => {
26
- args.onChange?.(value);
27
- setValue(value);
28
- }}
29
- />
30
- );
31
- },
32
- } as StoryMeta<typeof SelectFormField>;
33
-
34
- export default meta;
35
- type Story = StoryObj<typeof meta>;
36
-
37
- export const Items: Story = {
38
- args: {
39
- items: [
40
- { display_name: 'Item 1', value: 'item1' },
41
- { display_name: 'Item 2', value: 'item2' },
42
- ],
43
- },
44
- parameters: {
45
- docs: {
46
- description: {
47
- story:
48
- 'Renders the Select field with two simple items and no value. Clicking the trigger opens the popover with the item list.',
49
- },
50
- },
51
- },
52
- async play({ canvasElement }) {
53
- const canvas = within(canvasElement);
54
- await fireEvent.click(canvas.getByRole('button'));
55
- await waitFor(() => expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument(), {
56
- timeout: 1000,
57
- });
58
- },
59
- };
60
-
61
- export const WithValueLabel: Story = {
62
- args: {
63
- value: 'seconds',
64
- valueLabel: 's',
65
- items: [{ value: 'ms' }, { value: 'seconds' }, { value: 'minutes' }],
66
- },
67
- parameters: {
68
- docs: {
69
- description: {
70
- story:
71
- 'Renders the Select field with a `valueLabel` override — the closed trigger shows the short "s" for the selected value, while opening the popover still lists the full item names.',
72
- },
73
- },
74
- },
75
- async play({ canvasElement }) {
76
- const canvas = within(canvasElement);
77
- await expect(canvas.getByText('s')).toBeInTheDocument();
78
- await fireEvent.click(canvas.getByText('s'));
79
- await waitFor(
80
- () => expect(within(document.body).getByText('seconds')).toBeInTheDocument(),
81
- { timeout: 5000 }
82
- );
83
- await expect(within(document.body).getByText('minutes')).toBeInTheDocument();
84
- },
85
- };
86
-
87
- export const ItemsWithDescription: Story = {
88
- parameters: {
89
- docs: {
90
- description: {
91
- story:
92
- 'Renders the Select field with twenty items, each carrying a description, icon or image. Opening the picker mounts a modal collection with all twenty entries.',
93
- },
94
- },
95
- },
96
- args: {
97
- forceDropdown: false,
98
- items: [
99
- { display_name: 'Item 1', desc: 'This is item 1', value: 'item1', icon: 'MoneyEuroCircleFill', groups: ['Miscellaneous'] },
100
- { display_name: 'Item 2', desc: 'This is item 2', value: 'item2', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
101
- { display_name: 'Item 3', short_desc: 'This is item 3', value: 'item3', icon: 'AppleFill' },
102
- { display_name: 'Item 4', short_desc: 'This is item 4', value: 'item4', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
103
- { display_name: 'Item 5', desc: 'This is item 5', value: 'item5', icon: 'MoneyEuroCircleFill' },
104
- { display_name: 'Item 6', desc: 'This is item 6', value: 'item6', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
105
- { display_name: 'Item 7', short_desc: 'This is item 7', value: 'item7', icon: 'AppleFill' },
106
- { display_name: 'Item 8', short_desc: 'This is item 8', value: 'item8', groups: ['Comparators'], image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
107
- { display_name: 'Item 9', desc: 'This is item 9', value: 'item9', icon: 'MoneyEuroCircleFill' },
108
- { display_name: 'Item 10', desc: 'This is item 10', value: 'item10', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
109
- { display_name: 'Item 11', short_desc: 'This is item 11', value: 'item11', icon: 'AppleFill', groups: ['Comparators'] },
110
- { display_name: 'Item 12', short_desc: 'This is item 12', value: 'item12', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
111
- { display_name: 'Item 13', desc: 'This is item 13', value: 'item13', icon: 'MoneyEuroCircleFill' },
112
- { display_name: 'Item 14', desc: 'This is item 14', value: 'item14', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
113
- { display_name: 'Item 15', short_desc: 'This is item 15', value: 'item15', icon: 'AppleFill' },
114
- { display_name: 'Item 16', short_desc: 'This is item 16', value: 'item16', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
115
- { display_name: 'Item 17', desc: 'This is item 17', value: 'item17', icon: 'MoneyEuroCircleFill' },
116
- { display_name: 'Item 18', desc: 'This is item 18', value: 'item18', image: 'https://avatars.githubusercontent.com/u/8861481?v=4', groups: ['Comparators'] },
117
- { display_name: 'Item 19', short_desc: 'This is item 19', value: 'item19', icon: 'AppleFill' },
118
- { display_name: 'Item 20', short_desc: 'This is item 20', value: 'item20', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
119
- ],
120
- },
121
- async play({ canvasElement }) {
122
- const canvas = within(canvasElement);
123
- await fireEvent.click(canvas.getByRole('button'));
124
- await waitFor(() => expect(document.querySelector('.reqore-modal')).toBeInTheDocument(), { timeout: 1000 });
125
- await waitFor(
126
- () => expect(document.querySelectorAll('.reqore-collection-item').length).toBe(20),
127
- { timeout: 1000 }
128
- );
129
- },
130
- };
131
-
132
- export const ItemsWithDescriptionAndMessages: Story = {
133
- parameters: {
134
- docs: {
135
- description: {
136
- story:
137
- 'Renders the Select field with two items that carry inline messages of different intents. The picker modal shows the messages beneath each item.',
138
- },
139
- },
140
- },
141
- args: {
142
- forceDropdown: false,
143
- items: [
144
- {
145
- display_name: 'Item 1',
146
- value: 'item1',
147
- desc: 'This is item 1',
148
- messages: [{ title: 'Test', intent: 'danger', content: 'This is a test' }],
149
- },
150
- {
151
- display_name: 'Item 2',
152
- value: 'item2',
153
- desc: 'This is item 2',
154
- messages: [
155
- { title: 'Test', intent: 'success', content: 'This is a test' },
156
- { intent: 'warning', content: 'This is a test' },
157
- ],
158
- },
159
- ],
160
- },
161
- async play({ canvasElement }) {
162
- const canvas = within(canvasElement);
163
- await fireEvent.click(canvas.getByRole('button'));
164
- await waitFor(() => expect(document.querySelector('.reqore-modal')).toBeInTheDocument(), { timeout: 1000 });
165
- await waitFor(
166
- () => expect(document.querySelectorAll('.reqore-collection-item').length).toBe(2),
167
- { timeout: 1000 }
168
- );
169
- },
170
- };
171
-
172
- export const DisabledItemsWithIntent: Story = {
173
- args: {
174
- items: [
175
- { display_name: 'Item 1', value: 'item1' },
176
- { display_name: 'Item 2', value: 'item2' },
177
- { display_name: 'Disabled item', disabled: true, value: 'item3' },
178
- { display_name: 'Item with intent', intent: 'success', value: 'item4' },
179
- { display_name: 'Disabled Item with Intent', intent: 'danger', disabled: true, value: 'item5' },
180
- ],
181
- },
182
- parameters: {
183
- docs: {
184
- description: {
185
- story:
186
- 'Renders the Select field with a mix of enabled, disabled and intent-tagged items — the disabled entries are non-interactive while success/danger items carry their intent styling.',
187
- },
188
- },
189
- },
190
- async play({ canvasElement }) {
191
- const canvas = within(canvasElement);
192
- await fireEvent.click(canvas.getByRole('button'));
193
- await waitFor(() => expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument(), { timeout: 1000 });
194
- },
195
- };
196
-
197
- export const DisabledItemsWithIntentAndDescriptions: Story = {
198
- args: {
199
- forceDropdown: false,
200
- items: [
201
- { display_name: 'Item 1', desc: 'This is item 1', value: 'item1' },
202
- { display_name: 'Item 2', short_desc: 'This is item 2', value: 'item2' },
203
- { display_name: 'Disabled item', disabled: true, short_desc: 'This is item 3', value: 'item3' },
204
- { display_name: 'Item with intent', intent: 'success', short_desc: 'This is item 4', value: 'item4' },
205
- { display_name: 'Disabled Item with Intent', intent: 'danger', disabled: true, short_desc: 'This is item 5', value: 'item5' },
206
- ],
207
- },
208
- parameters: {
209
- docs: {
210
- description: {
211
- story:
212
- 'Renders the Select field with five items mixing intents, descriptions and disabled states — the picker modal shows all five so their combined presentation can be reviewed.',
213
- },
214
- },
215
- },
216
- async play({ canvasElement }) {
217
- const canvas = within(canvasElement);
218
- await fireEvent.click(canvas.getByRole('button'));
219
- await waitFor(() => expect(document.querySelector('.reqore-modal')).toBeInTheDocument(), { timeout: 1000 });
220
- await waitFor(
221
- () => expect(document.querySelectorAll('.reqore-collection-item').length).toBe(5),
222
- { timeout: 1000 }
223
- );
224
- },
225
- };
226
-
227
- export const WithValue: Story = {
228
- args: {
229
- value: 'item2',
230
- items: [
231
- { display_name: 'Item 1', value: 'item1' },
232
- { display_name: 'Item 2', value: 'item2' },
233
- ],
234
- },
235
- parameters: {
236
- docs: {
237
- description: {
238
- story:
239
- 'Renders the Select field with two items and item2 pre-selected — the trigger shows the selected label and clicking it opens the popover.',
240
- },
241
- },
242
- },
243
- async play({ canvasElement }) {
244
- const canvas = within(canvasElement);
245
- await expect(canvas.getByRole('button')).toBeInTheDocument();
246
- await fireEvent.click(canvas.getByRole('button'));
247
- await waitFor(() => expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument(), { timeout: 1000 });
248
- },
249
- };
250
-
251
- export const WithValueAndErrors: Story = {
252
- args: {
253
- value: 'item2',
254
- items: [
255
- { display_name: 'Item 1', desc: 'This is item 1', intent: 'danger', value: 'item1' },
256
- { display_name: 'Item 2', desc: 'This is item 1', value: 'item2', image: 'https://avatars.githubusercontent.com/u/8861481?v=4' },
257
- ],
258
- },
259
- parameters: {
260
- docs: {
261
- description: {
262
- story:
263
- 'Renders the Select field with a danger-intent item in the list, but the selected value points at the healthy item — the trigger stays clean while the picker highlights the danger item.',
264
- },
265
- },
266
- },
267
- };
268
-
269
- export const WithValueAndErrorsSelected: Story = {
270
- args: {
271
- value: 'item1',
272
- items: [
273
- { display_name: 'Item 1', desc: 'This is item 1', intent: 'danger', value: 'item1' },
274
- { display_name: 'Item 2', desc: 'This is item 1', value: 'item2' },
275
- ],
276
- },
277
- parameters: {
278
- docs: {
279
- description: {
280
- story:
281
- 'Renders the Select field with the danger-intent item pre-selected — the trigger carries the danger styling so the operator can see the selected item has an error.',
282
- },
283
- },
284
- },
285
- };
286
-
287
- export const WithValueAndWarningsSelected: Story = {
288
- args: {
289
- value: 'item1',
290
- items: [
291
- { display_name: 'Item 1', desc: 'This is item 1', metadata: { needs_auth: true }, value: 'item1' },
292
- { display_name: 'Item 2', desc: 'This is item 1', value: 'item2' },
293
- ],
294
- },
295
- parameters: {
296
- docs: {
297
- description: {
298
- story:
299
- 'Renders the Select field with a pre-selected item whose metadata declares needs_auth — the trigger surfaces the warning so the operator knows the item needs configuration.',
300
- },
301
- },
302
- },
303
- };
304
-
305
- export const AutoSelect: Story = {
306
- args: {
307
- autoSelect: true,
308
- items: [{ display_name: 'Item 1', value: 'item1' }],
309
- },
310
- parameters: {
311
- docs: {
312
- description: {
313
- story:
314
- 'Renders the Select field with autoSelect and a single item — the field auto-selects the only option and the trigger shows its label on mount.',
315
- },
316
- },
317
- },
318
- async play({ canvasElement }) {
319
- const canvas = within(canvasElement);
320
- await waitFor(() => expect(canvas.getByText('Item 1')).toBeInTheDocument(), { timeout: 500 });
321
- },
322
- };
323
-
324
- export const AutoSelectWithShortDescriptions: Story = {
325
- args: {
326
- autoSelect: true,
327
- items: [{ display_name: 'Item 1', short_desc: 'Short item 1 description', value: 'item1' }],
328
- },
329
- parameters: {
330
- docs: {
331
- description: {
332
- story:
333
- 'Renders the Select field with autoSelect and a single item that carries a short description — the field auto-selects and the trigger shows both the label and the short description.',
334
- },
335
- },
336
- },
337
- async play({ canvasElement }) {
338
- const canvas = within(canvasElement);
339
- await waitFor(() => expect(canvas.getByText('Item 1')).toBeInTheDocument(), { timeout: 500 });
340
- },
341
- };
342
-
343
- export const AutoSelectWithDescriptions: Story = {
344
- args: {
345
- autoSelect: true,
346
- items: [{ display_name: 'Item 1', desc: 'This is item 1', value: 'item1' }],
347
- },
348
- parameters: {
349
- docs: {
350
- description: {
351
- story:
352
- 'Renders the Select field with autoSelect and a single item that carries a full description — the field auto-selects and the trigger shows the label with the description.',
353
- },
354
- },
355
- },
356
- async play({ canvasElement }) {
357
- const canvas = within(canvasElement);
358
- await waitFor(() => expect(canvas.getByText('Item 1')).toBeInTheDocument(), { timeout: 500 });
359
- },
360
- };
361
-
362
- export const ItemValuesAreObjectsAndCanBeSelected: Story = {
363
- args: {
364
- forceDropdown: false,
365
- value: { id: { type: 'string', value: 'item1' } },
366
- items: [
367
- { value: { id: { type: 'string', value: 'item1' } } },
368
- {
369
- display_name: 'Item 2',
370
- desc: 'This is item 2',
371
- value: { id: { type: 'string', value: 'item2' } },
372
- },
373
- ],
374
- },
375
- parameters: {
376
- docs: {
377
- description: {
378
- story:
379
- 'Renders the Select field with items whose values are hashes rather than primitives. The unlabelled first item shows its JSON as the trigger label; picking the second item swaps the selection to its display_name.',
380
- },
381
- },
382
- },
383
- async play({ canvasElement }) {
384
- const canvas = within(canvasElement);
385
- await waitFor(
386
- () => expect(canvas.getByText('{"id":{"type":"string","value":"item1"}}')).toBeInTheDocument(),
387
- { timeout: 500 }
388
- );
389
- await fireEvent.click(canvas.getByRole('button'));
390
- await waitFor(() => expect(document.querySelector('.reqore-modal')).toBeInTheDocument(), { timeout: 1000 });
391
- const item2 = Array.from(document.querySelectorAll('.reqore-collection-item')).find(
392
- (el) => el.textContent?.includes('Item 2')
393
- );
394
- await fireEvent.click(item2!);
395
- await waitFor(() => expect(canvas.getByText('Item 2')).toBeInTheDocument(), { timeout: 1000 });
396
- },
397
- };
398
-
399
- const PATH_ITEMS = [
400
- {
401
- display_name: 'status from create',
402
- short_desc: '$.create.status (int)',
403
- value: '$.create.status',
404
- },
405
- {
406
- display_name: 'body from create',
407
- short_desc: '$.create.body (auto)',
408
- value: '$.create.body',
409
- },
410
- {
411
- display_name: 'headers from create',
412
- short_desc: '$.create.headers (hash)',
413
- value: '$.create.headers',
414
- },
415
- ];
416
-
417
- export const Creatable: Story = {
418
- args: {
419
- canCreateItems: true,
420
- items: PATH_ITEMS,
421
- value: '$.create.status',
422
- },
423
- parameters: {
424
- docs: {
425
- description: {
426
- story:
427
- 'Renders the Select field as a chip plus a searchable list. The chosen value reads as the label its producer gave it, and a value the list does not offer can be typed and created — the case a reference path lands in once it goes deeper than the candidates reach.',
428
- },
429
- },
430
- },
431
- };
432
-
433
- export const CreatableWithValueOutsideTheList: Story = {
434
- args: {
435
- canCreateItems: true,
436
- items: PATH_ITEMS,
437
- value: '$.create.body.items[0].sku',
438
- },
439
- parameters: {
440
- docs: {
441
- description: {
442
- story:
443
- 'Renders a creatable Select holding a value no item offers. The chip is drawn from the value itself, so a hand-entered path still reads as a chosen value rather than as an empty field.',
444
- },
445
- },
446
- },
447
- };
448
-
449
- export const CreatableEmpty: Story = {
450
- args: {
451
- canCreateItems: true,
452
- items: PATH_ITEMS,
453
- },
454
- parameters: {
455
- docs: {
456
- description: {
457
- story:
458
- 'Renders a creatable Select with nothing chosen yet — the empty state says so rather than showing a blank text box.',
459
- },
460
- },
461
- },
462
- };
463
-
464
- export const CreatableOffersToCreate: Story = {
465
- args: {
466
- canCreateItems: true,
467
- items: PATH_ITEMS,
468
- },
469
- parameters: {
470
- docs: {
471
- description: {
472
- story:
473
- 'Typing a value no candidate matches offers to create it, above the candidates that do match. This is the affordance a single-value field had no way to express before: the list stays a list, and the value outside it is still reachable.',
474
- },
475
- },
476
- },
477
- async play({ canvasElement }) {
478
- const canvas = within(canvasElement);
479
- const input = canvas.getByRole('textbox');
480
- await fireEvent.change(input, { target: { value: '$.create.body.items[0].sku' } });
481
- await waitFor(
482
- () => expect(document.querySelector('.reqore-popover-content')).toBeInTheDocument(),
483
- { timeout: 2000 }
484
- );
485
- },
486
- };
487
-
488
- // ── per-item row affordances ──────────────────────────────────────────────
489
-
490
- /**
491
- * A caller's row control, as a component the item NAMES rather than one it
492
- * renders. Items travel through `JSON.stringify(items)` memo keys, and a React
493
- * element is circular through its fibre — `{ as, props }` is what survives.
494
- */
495
- const ExplainThisItem = ({ explanation }: { explanation?: string }) => (
496
- <ReqoreButton
497
- size='tiny'
498
- minimal
499
- flat
500
- compact
501
- fixed
502
- icon='QuestionLine'
503
- className='select-item-explanation'
504
- aria-label='What this is'
505
- tooltip={{ handler: 'click', content: explanation, maxWidth: '360px' }}
506
- // Reading is not choosing: the whole row is one click target.
507
- onClick={(event) => event.stopPropagation()}
508
- />
509
- );
510
-
511
- /** Whatever a caller wants inside the row's own hover. */
512
- const ItemProse = ({ text }: { text?: string }) => <ReqoreP>{text}</ReqoreP>;
513
-
514
- const EXPLAINED_ITEMS = [
515
- 'Coverage: process',
516
- 'Coverage: runtime',
517
- 'Event: posted',
518
- 'Value: equals',
519
- 'Value: partial match',
520
- 'String: matches regex',
521
- ].map((display_name) => ({
522
- display_name,
523
- value: display_name,
524
- short_desc: `What ${display_name} checks, in one line.`,
525
- desc: `What ${display_name} checks, in one line.`,
526
- title_actions: [{ as: ExplainThisItem, props: { explanation: `All of what ${display_name} is for.` } }],
527
- tooltip: {
528
- handler: 'hover' as const,
529
- delay: 0,
530
- placement: 'bottom-start' as const,
531
- maxWidth: '360px',
532
- content: { as: ItemProse, props: { text: `All of what ${display_name} is for.` } },
533
- },
534
- }));
535
-
536
- const openTheCollection = async (canvasElement: HTMLElement) => {
537
- await fireEvent.click(within(canvasElement).getByRole('button'));
538
- await waitFor(
539
- () => expect(document.querySelector('.reqraft-select-dialog .reqore-collection-item')).toBeTruthy(),
540
- { timeout: 5000 }
541
- );
542
- };
543
-
544
- const firstRow = () =>
545
- document.querySelector('.reqraft-select-dialog .reqore-collection-item') as HTMLElement;
546
-
547
- export const ItemActionsInTheTitleBar: Story = {
548
- args: {
549
- forceDropdown: false,
550
- items: EXPLAINED_ITEMS,
551
- },
552
- parameters: {
553
- docs: {
554
- description: {
555
- story:
556
- "Each offered item carries a control through `title_actions`, which renders it in the row's title bar, inline with the name. An item's `actions` render in the row BODY under the description and cost every entry a line of its own — measured at 31px of a 73px row on a list of twenty-nine. Both seams exist; this is the one for a single icon on a long list.",
557
- },
558
- },
559
- },
560
- async play({ canvasElement }) {
561
- await openTheCollection(canvasElement);
562
- const row = firstRow();
563
- /* `:scope >`: `Element.querySelector` matches against the whole document
564
- and then keeps what is inside the element, so a bare
565
- `.reqore-panel-content x` finds a control in the row's own TITLE — the
566
- modal around the collection is a panel too. */
567
- await expect(
568
- row.querySelector(':scope > .reqore-panel-title .select-item-explanation')
569
- ).toBeTruthy();
570
- await expect(
571
- row.querySelector(':scope > .reqore-panel-content .select-item-explanation')
572
- ).toBeNull();
573
- },
574
- };
575
-
576
- export const ItemTooltipOnTheRow: Story = {
577
- args: {
578
- forceDropdown: false,
579
- items: EXPLAINED_ITEMS,
580
- },
581
- parameters: {
582
- docs: {
583
- description: {
584
- story:
585
- "The per-item `tooltip` puts content on the ROW's own hover: the whole entry is the target, and the list pays nothing in height for something that is not on screen until a pointer rests. The content is a `{ as, props }` descriptor rather than a node, so an item still survives the `JSON.stringify(items)` memo key it travels under.",
586
- },
587
- },
588
- },
589
- async play({ canvasElement }) {
590
- await openTheCollection(canvasElement);
591
- await fireEvent.mouseEnter(firstRow());
592
- await waitFor(
593
- () =>
594
- expect(
595
- document.querySelector('[data-popper-placement]')?.textContent
596
- ).toContain('All of what Coverage: process is for.'),
597
- { timeout: 5000 }
598
- );
599
- },
600
- };
601
-
602
- const REFUSED_ITEMS = [
603
- {
604
- display_name: 'Coverage: process',
605
- value: 'process_coverage',
606
- short_desc: 'Passes when the process you name ran code.',
607
- desc: 'Passes when the process you name ran code.',
608
- },
609
- {
610
- display_name: 'Step: result',
611
- value: 'step_result',
612
- short_desc: 'Passes when the named step reported this result.',
613
- desc: 'Passes when the named step reported this result.',
614
- disabled: true,
615
- unavailable: {
616
- intent: 'warning' as const,
617
- content:
618
- 'Unavailable because some dependencies are not fulfilled: "Interface Kind" must be "workflow"',
619
- },
620
- },
621
- {
622
- display_name: 'File: written',
623
- value: 'file_written',
624
- short_desc: 'Passes when the target wrote the file.',
625
- desc: 'Passes when the target wrote the file.',
626
- disabled: true,
627
- messages: [
628
- { intent: 'danger' as const, content: 'This sandbox denies the FILESYSTEM domain.' },
629
- ],
630
- },
631
- {
632
- display_name: 'Value: equals',
633
- value: 'value_equals',
634
- short_desc: 'Passes when the value is exactly equal.',
635
- desc: 'Passes when the value is exactly equal.',
636
- },
637
- ];
638
-
639
- export const UnavailableItemsSayWhy: Story = {
640
- args: {
641
- forceDropdown: false,
642
- items: REFUSED_ITEMS,
643
- },
644
- parameters: {
645
- docs: {
646
- description: {
647
- story:
648
- "A value that cannot be picked is disabled and says why, never hidden — a choice that vanishes takes its own explanation with it. Two things refuse one and they render identically: the value's own `depends_on`, judged against the form it stands in (row 2), and a refusal the server had already decided as `disabled` with a message (row 3), for what only the server can know. The reason reads FIRST, above the description a `messages` entry would have landed under; the name is dimmed and the cursor says `not-allowed`; and the row keeps every pointer event, because reqore's `disabled` is `pointer-events: none` and would take the row's tooltip with it. What makes the row inert is having no click handler at all.",
649
- },
650
- },
651
- },
652
- async play({ canvasElement }) {
653
- await openTheCollection(canvasElement);
654
- const rows = () =>
655
- [...document.querySelectorAll<HTMLElement>('.reqraft-select-dialog .reqore-collection-item')];
656
- await waitFor(() => expect(rows().length).toBe(4), { timeout: 5000 });
657
- /* By name, not by index: the collection sorts its rows, so a positional
658
- lookup asserts about whichever row the sort happened to put there. */
659
- const rowNamed = (label: string) =>
660
- rows().find((row) =>
661
- row.querySelector(':scope > .reqore-panel-title')?.textContent?.includes(label)
662
- ) as HTMLElement;
663
-
664
- await expect(rows().filter((row) => row.className.includes(UNAVAILABLE_ITEM_CLASS)).length).toBe(
665
- 2
666
- );
667
-
668
- // The one thing this must never do: `DisabledElement` would make it `none`
669
- // and take the row's tooltip with it.
670
- const gated = rowNamed('Step: result');
671
- await expect(getComputedStyle(gated).pointerEvents).toBe('auto');
672
- await expect(getComputedStyle(gated).cursor).toBe('not-allowed');
673
- await expect(getComputedStyle(rowNamed('Value: equals')).cursor).toBe('pointer');
674
-
675
- // A served refusal is promoted out of `messages` and printed once, above
676
- // the description rather than under it.
677
- const text =
678
- (rowNamed('File: written').querySelector(':scope > .reqore-panel-content') as HTMLElement)
679
- .textContent || '';
680
- await expect(text.indexOf('FILESYSTEM')).toBeGreaterThan(-1);
681
- await expect(text.indexOf('FILESYSTEM')).toBeLessThan(text.indexOf('wrote the file'));
682
- },
683
- };
684
-
685
- /** The dialog box itself — the element `re-resizable` sizes and drags. */
686
- const selectDialog = () => document.querySelector('.reqraft-select-dialog') as HTMLElement;
687
-
688
- const dialogSize = () => {
689
- const rect = selectDialog().getBoundingClientRect();
690
- return { width: Math.round(rect.width), height: Math.round(rect.height) };
691
- };
692
-
693
- /** Whether a part of the picker is whole inside the dialog, not cut off by it. */
694
- const isWholeInsideTheDialog = (selector: string) => {
695
- const box = selectDialog().getBoundingClientRect();
696
- const part = selectDialog().querySelector(selector)?.getBoundingClientRect();
697
-
698
- if (!part) {
699
- return false;
700
- }
701
-
702
- return (
703
- part.width > 0 &&
704
- part.height > 0 &&
705
- part.left >= box.left - 0.5 &&
706
- part.right <= box.right + 0.5 &&
707
- part.top >= box.top - 0.5 &&
708
- part.bottom <= box.bottom + 0.5
709
- );
710
- };
711
-
712
- /**
713
- * Drag one of the dialog's resize handles, found by the cursor it sets.
714
- *
715
- * The first `col-resize` is the right edge and the first `row-resize` the top
716
- * one, so a negative dx and a positive dy both shrink. The pointer is kept
717
- * inside the box because the reqore we pin still clips the drawer, which
718
- * amputates the outer half of every handle.
719
- */
720
- const dragTheDialogBy = async (cursor: string, dx: number, dy: number) => {
721
- const box = selectDialog();
722
- const handle = [...box.querySelectorAll<HTMLElement>('div')].find((el) =>
723
- (el.getAttribute('style') || '').includes(`cursor: ${cursor}`)
724
- );
725
- await expect(handle).toBeTruthy();
726
-
727
- const rect = handle!.getBoundingClientRect();
728
- const boxRect = box.getBoundingClientRect();
729
- const x = Math.min(Math.max(rect.left + rect.width / 2, boxRect.left + 2), boxRect.right - 2);
730
- const y = Math.min(Math.max(rect.top + rect.height / 2, boxRect.top + 2), boxRect.bottom - 2);
731
-
732
- fireEvent.mouseDown(handle!, { clientX: x, clientY: y, button: 0 });
733
- fireEvent.mouseMove(document, { clientX: x + dx, clientY: y + dy });
734
- fireEvent.mouseUp(document, { clientX: x + dx, clientY: y + dy });
735
- };
736
-
737
- export const CannotBeDraggedBelowItsContent: Story = {
738
- args: {
739
- forceDropdown: false,
740
- items: EXPLAINED_ITEMS,
741
- },
742
- parameters: {
743
- docs: {
744
- description: {
745
- story:
746
- 'Drags the picker far past its minimum on both axes and shows that it stops at the size its own content needs — a row that fits, the search field, and the close control — rather than at the smaller floor the dialog chrome asks for.',
747
- },
748
- },
749
- },
750
- async play({ canvasElement }) {
751
- await openTheCollection(canvasElement);
752
- await waitFor(() => expect(dialogSize().width).toBe(700));
753
-
754
- // Far past any floor, on both axes, the way it was reported: the picker
755
- // was dragged to roughly 45px wide and still held a search box, a list and
756
- // a close button stacked in a column nobody could read.
757
- await dragTheDialogBy('col-resize', -3000, 0);
758
- await dragTheDialogBy('row-resize', 0, 3000);
759
-
760
- // The width at which a 300px collection row stops overhanging the dialog,
761
- // and the height at which the header, the search field and one whole row
762
- // all fit - the row taken at its tallest, the described row this same
763
- // picker is also used with.
764
- await waitFor(() =>
765
- expect(dialogSize()).toEqual({
766
- width: SELECT_DIALOG_MIN_WIDTH,
767
- height: SELECT_DIALOG_MIN_HEIGHT,
768
- })
769
- );
770
-
771
- // And what the floor was measured FOR is what has to be whole at it.
772
- await expect(isWholeInsideTheDialog('.reqore-collection-item')).toBe(true);
773
- await expect(isWholeInsideTheDialog('input')).toBe(true);
774
- await expect(isWholeInsideTheDialog('.reqore-drawer-close-button')).toBe(true);
775
- },
776
- };
777
-
778
- /**
779
- * Narrow the story's own viewport for the duration of `body`, then put it back.
780
- *
781
- * `page.viewport` is the same call qlip makes to capture a story at phone size,
782
- * and it is reached through a DYNAMIC import: `vitest/browser` throws on import
783
- * outside Browser Mode, so a static one would take the Storybook dev server
784
- * down with it. Where the call is unavailable — the dev server, a docs render —
785
- * the body simply runs at whatever width it already had, and the assertion
786
- * below is written against the live viewport so it stays true there.
787
- */
788
- const withViewport = async (
789
- width: number,
790
- height: number,
791
- /** `narrowed` is false where the call was unavailable — see above. */
792
- body: (narrowed: boolean) => Promise<void>
793
- ) => {
794
- let resize: ((w: number, h: number) => Promise<void>) | undefined;
795
- try {
796
- ({
797
- page: { viewport: resize },
798
- } = (await import('vitest/browser')) as never);
799
- } catch {
800
- resize = undefined;
801
- }
802
-
803
- const was = { width: window.innerWidth, height: window.innerHeight };
804
- await resize?.(width, height);
805
- try {
806
- await body(!!resize && window.innerWidth === width);
807
- } finally {
808
- // Unconditional: a viewport left narrowed is a 320px browser for every
809
- // story that runs after this one in the same file.
810
- await resize?.(was.width, was.height);
811
- }
812
- };
813
-
814
- /**
815
- * On a phone the floor is the SCREEN, not the content.
816
- *
817
- * `min(320px, 90vw)` / `min(180px, 90vh)` — the cap is the other half of the
818
- * floor, and it only engages below about a 356px viewport, which is why the
819
- * story above cannot see it: at the width the test browser runs at, `320px` is
820
- * simply the smaller of the two. A floor wider than the screen would be a
821
- * dialog whose edges cannot both be reached, which is worse than a cramped one;
822
- * 90vw is reqore's own maximum for a centred modal, so the floor stops exactly
823
- * where the ceiling is.
824
- */
825
- export const ItsFloorIsCappedAtTheScreen: Story = {
826
- args: {
827
- forceDropdown: false,
828
- items: EXPLAINED_ITEMS,
829
- },
830
- parameters: {
831
- // Captured at the width the assertion below runs at, so the picture is the
832
- // capped dialog rather than a phone-sized story of a desktop-sized one.
833
- qlip: { viewport: { width: 320, height: 800 } },
834
- docs: {
835
- description: {
836
- story:
837
- 'Drags the picker past its floor on a 320px-wide screen — the floor gives way to the viewport (90vw / 90vh) instead of holding a 320x180 box the screen cannot show, which is the cap the desktop story never reaches.',
838
- },
839
- },
840
- },
841
- async play({ canvasElement }) {
842
- await withViewport(320, 800, async (narrowed) => {
843
- await openTheCollection(canvasElement);
844
- await dragTheDialogBy('col-resize', -3000, 0);
845
- await dragTheDialogBy('row-resize', 0, 3000);
846
-
847
- /* The floor AS DECLARED, resolved against the viewport this is actually
848
- running in — 288x180 at 320x800, and the plain 320x180 anywhere wide
849
- enough that the cap does not bite. One assertion, true in both, and it
850
- is the formula itself rather than a number copied out of it. */
851
- const capped = {
852
- width: Math.min(SELECT_DIALOG_MIN_WIDTH, Math.round(window.innerWidth * 0.9)),
853
- height: Math.min(SELECT_DIALOG_MIN_HEIGHT, Math.round(window.innerHeight * 0.9)),
854
- };
855
- await waitFor(() => expect(dialogSize()).toEqual(capped), { timeout: 5000 });
856
-
857
- // And the claim the cap exists to make: the dialog is never wider or
858
- // taller than the screen it has to be read on.
859
- await expect(dialogSize().width).toBeLessThanOrEqual(window.innerWidth);
860
- await expect(dialogSize().height).toBeLessThanOrEqual(window.innerHeight);
861
-
862
- if (!narrowed) {
863
- return;
864
- }
865
- /* Where the viewport really was narrowed — the test browser, which is
866
- the run that gates — the cap is the branch that answered, and saying
867
- so is what stops this story passing as a second copy of the desktop
868
- one. */
869
- await expect(dialogSize().width).toBeLessThan(SELECT_DIALOG_MIN_WIDTH);
870
- });
871
- },
872
- };