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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/describedControl.d.ts +54 -0
  3. package/dist/components/Description/describedControl.d.ts.map +1 -0
  4. package/dist/components/Description/describedControl.js +81 -0
  5. package/dist/components/Description/describedControl.js.map +1 -0
  6. package/dist/components/Description/index.d.ts.map +1 -1
  7. package/dist/components/Description/index.js +3 -2
  8. package/dist/components/Description/index.js.map +1 -1
  9. package/dist/components/colorValue/colorValue.d.ts +59 -0
  10. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  11. package/dist/components/colorValue/colorValue.js +245 -0
  12. package/dist/components/colorValue/colorValue.js.map +1 -0
  13. package/dist/components/colorValue/index.d.ts +34 -0
  14. package/dist/components/colorValue/index.d.ts.map +1 -0
  15. package/dist/components/colorValue/index.js +136 -0
  16. package/dist/components/colorValue/index.js.map +1 -0
  17. package/dist/components/colorValue/labels.d.ts +12 -0
  18. package/dist/components/colorValue/labels.d.ts.map +1 -0
  19. package/dist/components/colorValue/labels.js +11 -0
  20. package/dist/components/colorValue/labels.js.map +1 -0
  21. package/dist/components/composer/Composer.d.ts +1 -1
  22. package/dist/components/composer/Composer.d.ts.map +1 -1
  23. package/dist/components/composer/Composer.js +2 -2
  24. package/dist/components/composer/Composer.js.map +1 -1
  25. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  26. package/dist/components/dpqlEditor/DpqlEditor.js +25 -5
  27. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  28. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +36 -5
  29. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/dpqlHelpers.js +340 -62
  31. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlTags.d.ts +11 -7
  33. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  34. package/dist/components/dpqlEditor/dpqlTags.js +35 -17
  35. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  36. package/dist/components/dpqlEditor/types.d.ts +54 -8
  37. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  39. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  40. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  41. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  42. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  43. package/dist/components/form/engine/CompactRow.js +207 -97
  44. package/dist/components/form/engine/CompactRow.js.map +1 -1
  45. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  46. package/dist/components/form/engine/CompactToolbar.js +29 -3
  47. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  48. package/dist/components/form/engine/FormEngine.d.ts +58 -10
  49. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  50. package/dist/components/form/engine/FormEngine.js +542 -112
  51. package/dist/components/form/engine/FormEngine.js.map +1 -1
  52. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  53. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  54. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  55. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  56. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  57. package/dist/components/form/engine/OptionFieldMessages.js +24 -3
  58. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  59. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  60. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  61. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  62. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  63. package/dist/components/form/engine/compactRowContext.d.ts +21 -0
  64. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  65. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  66. package/dist/components/form/engine/compactRowStyles.d.ts +20 -10
  67. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  68. package/dist/components/form/engine/compactRowStyles.js +36 -30
  69. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  70. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  71. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  72. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  73. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  74. package/dist/components/form/engine/readFirst.d.ts +24 -8
  75. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  76. package/dist/components/form/engine/readFirst.js +77 -109
  77. package/dist/components/form/engine/readFirst.js.map +1 -1
  78. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  79. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  80. package/dist/components/form/engine/readFirstColors.js +51 -0
  81. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  82. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  83. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  84. package/dist/components/form/engine/rowFocus.js +26 -3
  85. package/dist/components/form/engine/rowFocus.js.map +1 -1
  86. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  87. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  88. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  89. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  90. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  91. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  92. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  93. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  94. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  95. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  96. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  97. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  98. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  99. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  100. package/dist/components/form/engine/variants/variantParts.js +25 -17
  101. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  102. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  103. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  104. package/dist/components/form/expressions/DpqlRendering.js +3 -3
  105. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  106. package/dist/components/form/expressions/ExpressionField.d.ts +64 -3
  107. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  108. package/dist/components/form/expressions/ExpressionField.js +459 -100
  109. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  110. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  111. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  112. package/dist/components/form/expressions/argumentPresence.js +16 -1
  113. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  114. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  115. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  116. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  117. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  118. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  119. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  120. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  121. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  122. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  123. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  124. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  125. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  126. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  127. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  128. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  129. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  130. package/dist/components/form/expressions/builder/index.d.ts +24 -2
  131. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  132. package/dist/components/form/expressions/builder/index.js +138 -78
  133. package/dist/components/form/expressions/builder/index.js.map +1 -1
  134. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  135. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  136. package/dist/components/form/expressions/builder/item.js +19 -5
  137. package/dist/components/form/expressions/builder/item.js.map +1 -1
  138. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  139. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  140. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  141. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  142. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  143. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  144. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  145. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  146. package/dist/components/form/expressions/expressionOperands.js +97 -0
  147. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  148. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  149. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  150. package/dist/components/form/expressions/fieldPath.js +152 -0
  151. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  152. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  153. package/dist/components/form/expressions/mockExpressions.js +22 -5
  154. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  155. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  156. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  157. package/dist/components/form/expressions/renderExpressionToText.js +40 -9
  158. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  159. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  160. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  161. package/dist/components/form/expressions/textOfExpression.js +49 -0
  162. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  163. package/dist/components/form/expressions/types.d.ts +7 -0
  164. package/dist/components/form/expressions/types.d.ts.map +1 -1
  165. package/dist/components/form/expressions/types.js +6 -1
  166. package/dist/components/form/expressions/types.js.map +1 -1
  167. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  168. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  169. package/dist/components/form/expressions/useExpressionType.js +181 -0
  170. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  171. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  172. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  173. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  174. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  175. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  176. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  177. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  178. package/dist/components/form/fields/Field.d.ts.map +1 -1
  179. package/dist/components/form/fields/Field.js +26 -9
  180. package/dist/components/form/fields/Field.js.map +1 -1
  181. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  182. package/dist/components/form/fields/allowed-values/AllowedValues.js +17 -4
  183. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  184. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  185. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  186. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  187. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  188. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  189. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  190. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  191. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  192. package/dist/components/form/fields/auto/AutoFormField.js +81 -36
  193. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  194. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  195. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  196. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  197. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  198. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  199. package/dist/components/form/fields/binary/Binary.js +23 -3
  200. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  201. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  202. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  203. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  204. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  205. package/dist/components/form/fields/color/Color.d.ts +103 -16
  206. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  207. package/dist/components/form/fields/color/Color.js +616 -16
  208. package/dist/components/form/fields/color/Color.js.map +1 -1
  209. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  210. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  211. package/dist/components/form/fields/emittedValues.js +24 -1
  212. package/dist/components/form/fields/emittedValues.js.map +1 -1
  213. package/dist/components/form/fields/file/File.d.ts +1 -1
  214. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  215. package/dist/components/form/fields/file/File.js +4 -2
  216. package/dist/components/form/fields/file/File.js.map +1 -1
  217. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  218. package/dist/components/form/fields/long-string/LongString.js +17 -3
  219. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  220. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  221. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +4 -1
  223. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  224. package/dist/components/form/fields/number/Number.d.ts +6 -0
  225. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  226. package/dist/components/form/fields/number/Number.js +41 -6
  227. package/dist/components/form/fields/number/Number.js.map +1 -1
  228. package/dist/components/form/fields/object/Object.d.ts +1 -1
  229. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  230. package/dist/components/form/fields/object/Object.js +4 -2
  231. package/dist/components/form/fields/object/Object.js.map +1 -1
  232. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  233. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  234. package/dist/components/form/fields/pendingEdit.js +79 -0
  235. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  236. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  237. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  238. package/dist/components/form/fields/rich-text/RichText.js +188 -82
  239. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  240. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  241. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  242. package/dist/components/form/fields/rich-text/useTemplateTags.js +49 -0
  243. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  244. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  245. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  246. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  247. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  248. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  249. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  250. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  251. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  252. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  253. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  254. package/dist/components/form/fields/schema-definition/index.js +8 -4
  255. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  256. package/dist/components/form/fields/select/Select.d.ts +2 -0
  257. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  258. package/dist/components/form/fields/select/Select.js +19 -10
  259. package/dist/components/form/fields/select/Select.js.map +1 -1
  260. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  261. package/dist/components/form/fields/select/SelectCollection.js +8 -2
  262. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  263. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  264. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  265. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  266. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  267. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  268. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  269. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +13 -5
  270. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  271. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  272. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  273. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  274. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  275. package/dist/components/form/fields/template/TemplateField.d.ts +102 -1
  276. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  277. package/dist/components/form/fields/template/TemplateField.js +572 -85
  278. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  279. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  280. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  281. package/dist/components/form/fields/template/TemplateText.js +9 -11
  282. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  283. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  284. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  285. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  286. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  287. package/dist/components/form/index.d.ts +10 -0
  288. package/dist/components/form/index.d.ts.map +1 -1
  289. package/dist/components/form/index.js +23 -1
  290. package/dist/components/form/index.js.map +1 -1
  291. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  292. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  293. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  294. package/dist/components/log/Log.d.ts.map +1 -1
  295. package/dist/components/log/Log.js +16 -8
  296. package/dist/components/log/Log.js.map +1 -1
  297. package/dist/components/menu/Menu.d.ts.map +1 -1
  298. package/dist/components/menu/Menu.js +19 -10
  299. package/dist/components/menu/Menu.js.map +1 -1
  300. package/dist/components/smartEditor/CompletionMenu.d.ts +43 -0
  301. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  302. package/dist/components/smartEditor/CompletionMenu.js +196 -0
  303. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  304. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  305. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  306. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  307. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  308. package/dist/components/smartEditor/SmartEditor.js +164 -180
  309. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  310. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  311. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  312. package/dist/components/smartEditor/completionStyle.js +68 -0
  313. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  314. package/dist/components/smartEditor/index.d.ts +5 -1
  315. package/dist/components/smartEditor/index.d.ts.map +1 -1
  316. package/dist/components/smartEditor/index.js +19 -1
  317. package/dist/components/smartEditor/index.js.map +1 -1
  318. package/dist/components/smartEditor/templateCompletions.d.ts +18 -0
  319. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  320. package/dist/components/smartEditor/templateCompletions.js +94 -0
  321. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  322. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  323. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  324. package/dist/components/smartEditor/typedReferences.js +82 -0
  325. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  326. package/dist/components/smartEditor/types.d.ts +33 -1
  327. package/dist/components/smartEditor/types.d.ts.map +1 -1
  328. package/dist/components/smartEditor/useLspAutocomplete.d.ts +32 -0
  329. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  330. package/dist/components/smartEditor/useLspAutocomplete.js +228 -118
  331. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  332. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  333. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  334. package/dist/components/smartEditor/useLspHover.js +279 -35
  335. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  336. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  337. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  338. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  339. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  340. package/dist/components/smartEditor/useLspSession.js +7 -6
  341. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  342. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  343. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  344. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  345. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  346. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  347. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  348. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  349. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  350. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  351. package/dist/components/supportTicket/TicketHeader.js +20 -2
  352. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  353. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  354. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  355. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  356. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  357. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  358. package/dist/components/ticketThread/TicketThread.js +38 -13
  359. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  360. package/dist/helpers/descriptionTooltip.d.ts +43 -0
  361. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  362. package/dist/helpers/descriptionTooltip.js +70 -0
  363. package/dist/helpers/descriptionTooltip.js.map +1 -0
  364. package/dist/helpers/domProps.d.ts +5 -0
  365. package/dist/helpers/domProps.d.ts.map +1 -0
  366. package/dist/helpers/domProps.js +47 -0
  367. package/dist/helpers/domProps.js.map +1 -0
  368. package/dist/helpers/expressions.d.ts +107 -2
  369. package/dist/helpers/expressions.d.ts.map +1 -1
  370. package/dist/helpers/expressions.js +223 -8
  371. package/dist/helpers/expressions.js.map +1 -1
  372. package/dist/helpers/hoveringPointer.d.ts +26 -0
  373. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  374. package/dist/helpers/hoveringPointer.js +29 -0
  375. package/dist/helpers/hoveringPointer.js.map +1 -0
  376. package/dist/helpers/markdownText.d.ts +14 -0
  377. package/dist/helpers/markdownText.d.ts.map +1 -0
  378. package/dist/helpers/markdownText.js +160 -0
  379. package/dist/helpers/markdownText.js.map +1 -0
  380. package/dist/helpers/qorusTypeCatalogue.d.ts +53 -0
  381. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  382. package/dist/helpers/qorusTypeCatalogue.js +262 -0
  383. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  384. package/dist/helpers/readableColors.d.ts +36 -0
  385. package/dist/helpers/readableColors.d.ts.map +1 -0
  386. package/dist/helpers/readableColors.js +116 -0
  387. package/dist/helpers/readableColors.js.map +1 -0
  388. package/dist/helpers/recordFieldReference.d.ts +15 -0
  389. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  390. package/dist/helpers/recordFieldReference.js +89 -0
  391. package/dist/helpers/recordFieldReference.js.map +1 -0
  392. package/dist/helpers/templateItems.d.ts +2 -2
  393. package/dist/helpers/templateItems.d.ts.map +1 -1
  394. package/dist/helpers/templateItems.js +6 -4
  395. package/dist/helpers/templateItems.js.map +1 -1
  396. package/dist/helpers/templateText.js +5 -2
  397. package/dist/helpers/templateText.js.map +1 -1
  398. package/dist/helpers/templates.d.ts +41 -14
  399. package/dist/helpers/templates.d.ts.map +1 -1
  400. package/dist/helpers/templates.js +152 -9
  401. package/dist/helpers/templates.js.map +1 -1
  402. package/dist/helpers/validations.d.ts +9 -0
  403. package/dist/helpers/validations.d.ts.map +1 -1
  404. package/dist/helpers/validations.js +139 -33
  405. package/dist/helpers/validations.js.map +1 -1
  406. package/dist/hooks/useQorusTypes.d.ts +7 -15
  407. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  408. package/dist/hooks/useQorusTypes.js +25 -166
  409. package/dist/hooks/useQorusTypes.js.map +1 -1
  410. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  411. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  412. package/dist/hooks/useReadableIntentShade.js +23 -0
  413. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  414. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  415. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  416. package/dist/hooks/useReadableOpacity.js +17 -0
  417. package/dist/hooks/useReadableOpacity.js.map +1 -0
  418. package/dist/index.d.ts +1 -0
  419. package/dist/index.d.ts.map +1 -1
  420. package/dist/index.js +1 -0
  421. package/dist/index.js.map +1 -1
  422. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  423. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  424. package/dist/tracking/ui/ExperimentCard.js +26 -10
  425. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  426. package/dist/tracking/ui/card.d.ts +2 -2
  427. package/dist/tracking/ui/card.d.ts.map +1 -1
  428. package/dist/tracking/ui/card.js +2 -2
  429. package/dist/tracking/ui/card.js.map +1 -1
  430. package/dist/tracking/ui/readable.d.ts +14 -0
  431. package/dist/tracking/ui/readable.d.ts.map +1 -0
  432. package/dist/tracking/ui/readable.js +60 -0
  433. package/dist/tracking/ui/readable.js.map +1 -0
  434. package/dist/utils/fetch.d.ts +9 -2
  435. package/dist/utils/fetch.d.ts.map +1 -1
  436. package/dist/utils/fetch.js +6 -5
  437. package/dist/utils/fetch.js.map +1 -1
  438. package/dist/utils/websocket.d.ts +65 -2
  439. package/dist/utils/websocket.d.ts.map +1 -1
  440. package/dist/utils/websocket.js +276 -44
  441. package/dist/utils/websocket.js.map +1 -1
  442. package/package.json +14 -5
  443. package/.claude/CLAUDE.md +0 -317
  444. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  445. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  446. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  447. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  448. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  449. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  450. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  451. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  452. package/.tasks/INDEX.md +0 -111
  453. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  454. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  455. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  456. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  457. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  458. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  459. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  460. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  461. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  462. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  463. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  464. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  465. package/CODE_OF_CONDUCT.md +0 -105
  466. package/CONTRIBUTING.MD +0 -78
  467. package/SECURITY.md +0 -3
  468. package/chromatic.config.json +0 -5
  469. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  470. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  471. package/design/COMPACT_PARITY.md +0 -85
  472. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  473. package/design/FORM_ENGINE_COMPACT.md +0 -300
  474. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  475. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  476. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  477. package/design/IDE_INTEGRATION.md +0 -64
  478. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  479. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  480. package/design/SMART_EDITOR_UX.md +0 -438
  481. package/design/TRACKING.md +0 -290
  482. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  483. package/src/components/Description/index.tsx +0 -254
  484. package/src/components/Description/markdownRendererContext.tsx +0 -29
  485. package/src/components/FocusedEditing/index.tsx +0 -50
  486. package/src/components/codeSize/index.tsx +0 -79
  487. package/src/components/composer/Composer.stories.tsx +0 -238
  488. package/src/components/composer/Composer.tsx +0 -554
  489. package/src/components/composer/helpers.ts +0 -74
  490. package/src/components/composer/index.ts +0 -2
  491. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  492. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  493. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  494. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  495. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  496. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  497. package/src/components/dpqlEditor/index.ts +0 -41
  498. package/src/components/dpqlEditor/types.ts +0 -203
  499. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  500. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  501. package/src/components/form/engine/CompactRow.tsx +0 -2620
  502. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  503. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  504. package/src/components/form/engine/FormEngine.tsx +0 -4569
  505. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  506. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  507. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  508. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  509. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  510. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  511. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  512. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  513. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  514. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  515. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  516. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  517. package/src/components/form/engine/compactRowContext.ts +0 -148
  518. package/src/components/form/engine/compactRowStyles.ts +0 -898
  519. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  520. package/src/components/form/engine/optionActions.ts +0 -128
  521. package/src/components/form/engine/optionsContext.ts +0 -24
  522. package/src/components/form/engine/readFirst.ts +0 -1077
  523. package/src/components/form/engine/rendererTypes.ts +0 -107
  524. package/src/components/form/engine/revealRow.ts +0 -123
  525. package/src/components/form/engine/rowFocus.ts +0 -101
  526. package/src/components/form/engine/rowMenuContext.ts +0 -159
  527. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  528. package/src/components/form/engine/typeChoices.ts +0 -63
  529. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  530. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  531. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  532. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  533. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  534. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  535. package/src/components/form/engine/variants/variantModel.ts +0 -223
  536. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  537. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  538. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  539. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  540. package/src/components/form/expressions/argumentPresence.ts +0 -213
  541. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  542. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  543. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  544. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  545. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  546. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  547. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  548. package/src/components/form/expressions/builder/index.tsx +0 -1545
  549. package/src/components/form/expressions/builder/item.tsx +0 -89
  550. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  551. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  552. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  553. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  554. package/src/components/form/expressions/mockExpressions.ts +0 -317
  555. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  556. package/src/components/form/expressions/types.ts +0 -110
  557. package/src/components/form/expressions/useExpressions.ts +0 -101
  558. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  559. package/src/components/form/fields/Field.stories.tsx +0 -143
  560. package/src/components/form/fields/Field.tsx +0 -732
  561. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  562. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  563. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  564. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  565. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  566. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  567. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  568. package/src/components/form/fields/binary/Binary.tsx +0 -91
  569. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  570. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  571. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  572. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  573. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  574. package/src/components/form/fields/color/Color.tsx +0 -46
  575. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  576. package/src/components/form/fields/cron/Cron.tsx +0 -80
  577. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  578. package/src/components/form/fields/date/Date.tsx +0 -55
  579. package/src/components/form/fields/emittedValues.ts +0 -70
  580. package/src/components/form/fields/file/File.stories.tsx +0 -161
  581. package/src/components/form/fields/file/File.tsx +0 -227
  582. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  583. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  584. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  585. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  586. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  587. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  588. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  589. package/src/components/form/fields/number/Number.tsx +0 -160
  590. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  591. package/src/components/form/fields/object/Object.tsx +0 -255
  592. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  593. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  594. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  595. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  596. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  597. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  598. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  599. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  600. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  601. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  602. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  603. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  604. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  605. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  606. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  607. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  608. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  609. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  610. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  611. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  612. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  613. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  614. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  615. package/src/components/form/fields/schema-definition/types.ts +0 -185
  616. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  617. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  618. package/src/components/form/fields/select/Select.tsx +0 -624
  619. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  620. package/src/components/form/fields/string/String.stories.tsx +0 -86
  621. package/src/components/form/fields/string/String.tsx +0 -43
  622. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  623. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  624. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  625. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  626. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  627. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  628. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  629. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  630. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  631. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  632. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  633. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  634. package/src/components/form/fields/url/Url.tsx +0 -85
  635. package/src/components/form/index.tsx +0 -47
  636. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  637. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  638. package/src/components/imageLightbox/index.ts +0 -1
  639. package/src/components/log/Log.stories.tsx +0 -333
  640. package/src/components/log/Log.tsx +0 -285
  641. package/src/components/menu/Menu.stories.tsx +0 -155
  642. package/src/components/menu/Menu.tsx +0 -312
  643. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  644. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  645. package/src/components/qonsoleSmartInput/index.ts +0 -16
  646. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  647. package/src/components/qonsoleSmartInput/types.ts +0 -133
  648. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  649. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  650. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  651. package/src/components/searchFilterBar/index.ts +0 -1
  652. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  653. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  654. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  655. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  656. package/src/components/smartEditor/helpers.ts +0 -217
  657. package/src/components/smartEditor/index.ts +0 -35
  658. package/src/components/smartEditor/styling.ts +0 -45
  659. package/src/components/smartEditor/types.ts +0 -211
  660. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  661. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  662. package/src/components/smartEditor/useLspHover.ts +0 -230
  663. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  664. package/src/components/smartEditor/useLspSession.ts +0 -231
  665. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  666. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  667. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  668. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  669. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  670. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  671. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  672. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  673. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  674. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  675. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  676. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  677. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  678. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  679. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  680. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  681. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  682. package/src/components/supportTicket/index.ts +0 -10
  683. package/src/components/supportTicket/meta.ts +0 -206
  684. package/src/components/supportTicket/ticketModel.ts +0 -131
  685. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  686. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  687. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  688. package/src/components/ticketReferences/index.ts +0 -2
  689. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  690. package/src/components/ticketThread/TicketThread.tsx +0 -719
  691. package/src/components/ticketThread/index.ts +0 -6
  692. package/src/contexts/FetchContext.tsx +0 -25
  693. package/src/contexts/ReqraftContext.tsx +0 -9
  694. package/src/contexts/StorageContext.tsx +0 -33
  695. package/src/global.d.ts +0 -4
  696. package/src/helpers/allowedValues.ts +0 -249
  697. package/src/helpers/choiceChip.ts +0 -227
  698. package/src/helpers/common.ts +0 -326
  699. package/src/helpers/dpqlDetection.ts +0 -209
  700. package/src/helpers/expressions.ts +0 -140
  701. package/src/helpers/optionUiTypes.ts +0 -199
  702. package/src/helpers/options.ts +0 -150
  703. package/src/helpers/providerValue.ts +0 -125
  704. package/src/helpers/scrollbar.ts +0 -32
  705. package/src/helpers/singleLineString.ts +0 -61
  706. package/src/helpers/templateItems.ts +0 -81
  707. package/src/helpers/templateText.ts +0 -350
  708. package/src/helpers/templates.ts +0 -602
  709. package/src/helpers/validations.ts +0 -2085
  710. package/src/hooks/useArgSchema.ts +0 -37
  711. package/src/hooks/useCoarsePointer.ts +0 -30
  712. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  713. package/src/hooks/useFetch/useFetch.tsx +0 -154
  714. package/src/hooks/usePhoneViewport.ts +0 -34
  715. package/src/hooks/useQorusTypes.ts +0 -233
  716. package/src/hooks/useReqraftProperty.ts +0 -16
  717. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  718. package/src/hooks/useStorage/useStorage.ts +0 -35
  719. package/src/hooks/useTemplates.ts +0 -123
  720. package/src/hooks/useValidation.ts +0 -9
  721. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  722. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  723. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  724. package/src/index.tsx +0 -86
  725. package/src/providers/FetchProvider.tsx +0 -40
  726. package/src/providers/ReqraftProvider.tsx +0 -52
  727. package/src/providers/StorageProvider.tsx +0 -131
  728. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  729. package/src/stores/currentUser/currentUser.tsx +0 -94
  730. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  731. package/src/stories/Tests/utils.ts +0 -320
  732. package/src/stories/storyNetwork.ts +0 -92
  733. package/src/stories/tracking.tsx +0 -206
  734. package/src/tracking/browser/attach.ts +0 -186
  735. package/src/tracking/browser/env.ts +0 -78
  736. package/src/tracking/core/consent.ts +0 -37
  737. package/src/tracking/core/engagement.ts +0 -47
  738. package/src/tracking/core/experiments.ts +0 -258
  739. package/src/tracking/core/hash.ts +0 -26
  740. package/src/tracking/core/ids.ts +0 -25
  741. package/src/tracking/core/observable.ts +0 -23
  742. package/src/tracking/core/queue.ts +0 -131
  743. package/src/tracking/core/sections.ts +0 -166
  744. package/src/tracking/core/storage.ts +0 -69
  745. package/src/tracking/core/tracker.ts +0 -417
  746. package/src/tracking/core/types.ts +0 -162
  747. package/src/tracking/core/utm.ts +0 -23
  748. package/src/tracking/index.ts +0 -72
  749. package/src/tracking/markup.ts +0 -17
  750. package/src/tracking/react/Experiment.tsx +0 -44
  751. package/src/tracking/react/TrackingProvider.tsx +0 -56
  752. package/src/tracking/react/hooks.ts +0 -106
  753. package/src/tracking/react/index.ts +0 -13
  754. package/src/tracking/testing.ts +0 -108
  755. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  756. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  757. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  758. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  759. package/src/tracking/ui/anchor.ts +0 -180
  760. package/src/tracking/ui/card.ts +0 -464
  761. package/src/tracking/ui/client.ts +0 -117
  762. package/src/tracking/ui/index.ts +0 -77
  763. package/src/tracking/ui/types.ts +0 -110
  764. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  765. package/src/types/Form.ts +0 -29
  766. package/src/types.ts +0 -14
  767. package/src/utils/datetime.ts +0 -10
  768. package/src/utils/fetch.ts +0 -457
  769. package/src/utils/lspClient.ts +0 -711
  770. package/src/utils/lspClient.types.ts +0 -211
  771. package/src/utils/queryUnlessCancelled.ts +0 -28
  772. package/src/utils/websocket.ts +0 -293
  773. package/vite.config.ts +0 -58
  774. package/vitest.config.ts +0 -69
package/README.md CHANGED
@@ -77,7 +77,7 @@ The ref exposes `format()`, `validate()`, `parse(text)`, and `serialize(expressi
77
77
 
78
78
  ### `SmartEditor`
79
79
 
80
- The generic Slate-based editor primitive that `DpqlEditor` wraps. Knows nothing about any specific language — instead it takes a caller-owned LSP session (`useLspSession`) plus a set of language-flavour props (`decorate`, `customRenderLeaf`, `tagRenderer`, `triggerCharacters`, `converter`, `completionInserter`, `topActions`). The same primitive can drive a DPQL editor, a Qonsole command input, or any other LSP-backed text field.
80
+ The generic Slate-based editor primitive that `DpqlEditor` wraps. Knows nothing about any specific language — instead it takes a caller-owned LSP session (`useLspSession`) plus a set of language-flavor props (`decorate`, `customRenderLeaf`, `tagRenderer`, `triggerCharacters`, `converter`, `completionInserter`, `topActions`). The same primitive can drive a DPQL editor, a Qonsole command input, or any other LSP-backed text field.
81
81
 
82
82
  ```tsx
83
83
  import { SmartEditor, useLspSession } from '@qoretechnologies/reqraft';
@@ -148,6 +148,58 @@ client.onNotification('qonsole/sessionStateChanged', (params) => { /* … */ });
148
148
  client.disconnect();
149
149
  ```
150
150
 
151
+ ### `ReqraftWebSocket`
152
+
153
+ The WebSocket under `useReqraftWebSocket` and `ReqraftLspClient`: one socket per URL on the configured instance (unless `pooled: false`), with a heartbeat and reconnects. `useReqraftWebSocket` takes the same options.
154
+
155
+ ```ts
156
+ import { ReqraftWebSocket } from '@qoretechnologies/reqraft';
157
+
158
+ const socket = new ReqraftWebSocket({
159
+ url: 'log/main', // the path on the instance
160
+ onMessage: (event) => append(event.data),
161
+ onReconnectFailed: () => offerReload(),
162
+ });
163
+
164
+ socket.remove(); // let go of it; the last user of a shared socket closes it
165
+ ```
166
+
167
+ | Option | Default | |
168
+ |---|---|---|
169
+ | `pooled` | `true` | Users of the same `url` share one socket; `false` gives this one its own |
170
+ | `reconnect` | `true` | Replace a socket that closes, or whose handshake does not open in time |
171
+ | `reconnectInterval` | `5000` | ms between attempts; the first attempt after a socket is lost is made at once |
172
+ | `maxReconnectTries` | `10` | Attempts before `onReconnectFailed` |
173
+ | `handshakeTimeout` | `15000` (`REQRAFT_WS_HANDSHAKE_TIMEOUT_MS`) | ms a handshake has to open; `0` sets no limit |
174
+ | `probeTimeout` | `10000` (`REQRAFT_WS_PROBE_TIMEOUT_MS`) | ms an attempt waits for its server-status probe; `0` sets no limit |
175
+ | `useHeartbeat` | `true` | Send `ping` every 3 s while open |
176
+ | `tokenOverride` | | A token for this socket instead of the instance's |
177
+ | `onOpen`, `onMessage`, `onClose`, `onError`, `onReconnecting`, `onReconnectFailed` | | Callbacks |
178
+
179
+ - **A handshake that hangs** (the server takes the connection and never answers the upgrade) sends no event at all until the browser gives up, about four minutes later in Chromium, and Chromium holds back every other socket to the same host and port while it waits. At `handshakeTimeout` the socket is closed and replaced: its users get `onError` and then `onClose` with code 1006, as for a handshake that failed, and the replacement follows the same `reconnectInterval` and `maxReconnectTries` as after a close. An open socket has no deadline, and a connection never has more than one socket.
180
+ - **Before each attempt** it asks the server `GET system/pid`, so that a session that has expired is sent to sign in (`fetchConfig.unauthorizedRedirect`). The answer never holds the attempt back: the request is aborted after `probeTimeout`, and the attempt is made either way.
181
+ - **`remove()` and `close()`** close on purpose: the socket is not reconnected, also when it was still connecting (a browser reports that close as 1006), and a reconnect waiting to run, its probe and the handshake deadline are called off. `ReqraftWebSocketsManager.closeAll()` closes every socket the same way.
182
+
183
+ ### `ReqraftColorValue`
184
+
185
+ A stored color, read-only: a swatch painted the color, beside the color written out (`#6495ED`, or `rgba(255, 0, 0, 0.5)` when it is see-through), on a wash of the color. A compact form row draws its colors with it, so a page and a form show a color the same way.
186
+
187
+ ```tsx
188
+ import { ReqraftColorValue } from '@qoretechnologies/reqraft';
189
+
190
+ <ReqraftColorValue value={{ r: 100, g: 149, b: 237 }} /> // detail page
191
+ <ReqraftColorValue value={option.value} size='compact' /> // one-line summary (row, cell)
192
+ ```
193
+
194
+ - **Values:** `{ r, g, b }`, `{ r, g, b, a }` (as the color field stores it), `{ hex }`, or a hex code of 3, 4, 6 or 8 digits, with or without its `#`. A channel past its range is brought into it, as the color field does.
195
+ - **A stored color** is `{ r, g, b, a? }` and nothing more: `r`, `g` and `b` whole numbers from 0 to 255, `a` its opacity from 0 to 1 (none: opaque). A hex code, bare or as `{ hex }`, and a color with another field beside its own (`{ r, g, b, hex }`, which the server refuses), are drawn so a value stored that way is seen, but they are not stored colors: the `rgbcolor` validator says what is wrong (`storedColorProblem(value)`), and the color field stores the hash, and only the hash, when it edits such a value.
196
+ - **A value that is not a color** (`#zzz`, `red`, a channel that is not a number) draws no swatch: it says what the value is ("Not a color: “#zzz”"). With no value it says "No color".
197
+ - **Sizes:** `normal` (default; a 20px swatch over a checkerboard, so transparency shows; the text wraps) and `compact` (a 12px swatch; one line ending in an ellipsis). `wrap` overrides the line behavior.
198
+ - **Accessible:** the color is text (it reads, copies and is found like any text); the swatch is an image named for the color ("Color #6495ED").
199
+ - **Words:** `labels` replaces any of `swatch(color)`, `invalid(shown)` and `empty` for a host that translates its interface.
200
+
201
+ `describeColorValue(value)` is the reader on its own: `{ kind: 'color', text, css }`, `{ kind: 'invalid', shown }` or `{ kind: 'empty' }`.
202
+
151
203
  ## Tracking, consent and A/B testing
152
204
 
153
205
  First-party analytics with a consent gate and client-side A/B testing, for any Qore web app. The core is plain TypeScript with no DOM, the browser layer attaches the listeners, and the React bindings sit on top. Everything product-specific comes in through config; the server keeps each product's data separate by `property`.
@@ -0,0 +1,54 @@
1
+ import { IReqorePanelAction } from '@qoretechnologies/reqore/dist/components/Panel';
2
+ import { TSizes } from '@qoretechnologies/reqore/dist/constants/sizes';
3
+ import { TReqoreTooltipProp } from '@qoretechnologies/reqore/dist/types/global';
4
+ import { Key, ReactElement } from 'react';
5
+ import { IDescriptionTooltipOptions } from '../../helpers/descriptionTooltip';
6
+ /** What the ⓘ is called, for a screen reader: the thing it explains. */
7
+ export declare const describedControlInfoLabel: (name: string) => string;
8
+ export interface IDescriptionInfoButtonProps {
9
+ /** The description it opens: the server's markdown, drawn as every description card is. */
10
+ description: string;
11
+ /** What it describes: the card's title and the button's accessible name. */
12
+ name: string;
13
+ descriptions: IDescriptionTooltipOptions;
14
+ /** The size of the group it is in, which a control group hands its children: the control beside it has it too. */
15
+ size?: TSizes;
16
+ }
17
+ /**
18
+ * A finger's way to a control's description: a small ⓘ beside the control that opens its card on a tap. A tap on
19
+ * the control itself does what the control does, and only that.
20
+ *
21
+ * It is the size of the control it sits beside: no size of its own, so it takes the group's, as the control does.
22
+ * A fixed big one (48px) beside a small checkbox read as the main thing in the row (Foxhoundn, qlip #361).
23
+ */
24
+ export declare const DescriptionInfoButton: import("react").MemoExoticComponent<({ description, name, descriptions, size }: IDescriptionInfoButtonProps) => import("react/jsx-runtime").JSX.Element>;
25
+ export interface IDescribedControl {
26
+ /** The control's own hover, with a mouse. None on a touch screen, where a tap is the control's own. */
27
+ tooltip?: TReqoreTooltipProp;
28
+ /** The ⓘ to put beside the control, on a touch screen. */
29
+ info?: ReactElement;
30
+ /** The same ⓘ as a panel's header action, for a control that is a panel. */
31
+ infoAction?: IReqorePanelAction;
32
+ }
33
+ /**
34
+ * How a control that does something when tapped - a checkbox, a tab, a collapsible section - shows its description.
35
+ *
36
+ * With a mouse, as its hover card. On a touch screen (`descriptions.tapToOpen`), never on the control: a tap there
37
+ * ticked the box or switched the tab and opened the card at once. The card opens from an ⓘ beside the control
38
+ * instead (`info`, or `infoAction` for a panel's header). A control with no description gets neither.
39
+ */
40
+ export declare const describedControl: (description: unknown, descriptions: IDescriptionTooltipOptions, name: string) => IDescribedControl;
41
+ /**
42
+ * A control with its ⓘ beside it, in one row, keyed as the control was; the control alone where there is no ⓘ
43
+ * (a mouse, or no description).
44
+ */
45
+ export declare const besideItsInfo: (control: ReactElement, info: ReactElement | undefined, key: Key) => ReactElement;
46
+ /**
47
+ * A collapsible section's description, as props for its `ReqorePanel`: with a mouse its header's hover, on a touch
48
+ * screen an ⓘ among its header's actions, so a tap on the header only opens or closes it.
49
+ */
50
+ export declare const describedPanelProps: (description: unknown, descriptions: IDescriptionTooltipOptions, name: string) => {
51
+ tooltip?: TReqoreTooltipProp;
52
+ actions?: IReqorePanelAction[];
53
+ };
54
+ //# sourceMappingURL=describedControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describedControl.d.ts","sourceRoot":"","sources":["../../../src/components/Description/describedControl.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gDAAgD,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,+CAA+C,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAgB,GAAG,EAAQ,YAAY,EAAE,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAsB,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAElG,wEAAwE;AACxE,eAAO,MAAM,yBAAyB,SAAU,MAAM,WAAoB,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;IACpB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,0BAA0B,CAAC;IACzC,kHAAkH;IAClH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,kFACY,2BAA2B,6CAYxE,CAAC;AAIF,MAAM,WAAW,iBAAiB;IAChC,uGAAuG;IACvG,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,gBACd,OAAO,gBACN,0BAA0B,QAClC,MAAM,KACX,iBAkBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,YACf,YAAY,QACf,YAAY,GAAG,SAAS,OACzB,GAAG,KACP,YAM+B,CAAC;AAEnC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,gBACjB,OAAO,gBACN,0BAA0B,QAClC,MAAM,KACX;IAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAAC,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAA;CAGhE,CAAC"}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.describedPanelProps = exports.besideItsInfo = exports.describedControl = exports.DescriptionInfoButton = exports.describedControlInfoLabel = void 0;
15
+ var jsx_runtime_1 = require("react/jsx-runtime");
16
+ // Copyright 2026 Qore Technologies, s.r.o.
17
+ var reqore_1 = require("@qoretechnologies/reqore");
18
+ var react_1 = require("react");
19
+ var descriptionTooltip_1 = require("../../helpers/descriptionTooltip");
20
+ /** What the ⓘ is called, for a screen reader: the thing it explains. */
21
+ var describedControlInfoLabel = function (name) { return "About ".concat(name); };
22
+ exports.describedControlInfoLabel = describedControlInfoLabel;
23
+ /**
24
+ * A finger's way to a control's description: a small ⓘ beside the control that opens its card on a tap. A tap on
25
+ * the control itself does what the control does, and only that.
26
+ *
27
+ * It is the size of the control it sits beside: no size of its own, so it takes the group's, as the control does.
28
+ * A fixed big one (48px) beside a small checkbox read as the main thing in the row (Foxhoundn, qlip #361).
29
+ */
30
+ exports.DescriptionInfoButton = (0, react_1.memo)(function (_a) {
31
+ var description = _a.description, name = _a.name, descriptions = _a.descriptions, size = _a.size;
32
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'reqraft-description-info', icon: 'InformationLine', size: size, minimal: true, flat: true, fixed: true, "aria-label": (0, exports.describedControlInfoLabel)(name), tooltip: (0, descriptionTooltip_1.descriptionTooltip)(description, __assign(__assign({}, descriptions), { tapToOpen: true }), name) }));
33
+ });
34
+ exports.DescriptionInfoButton.displayName = 'DescriptionInfoButton';
35
+ /**
36
+ * How a control that does something when tapped - a checkbox, a tab, a collapsible section - shows its description.
37
+ *
38
+ * With a mouse, as its hover card. On a touch screen (`descriptions.tapToOpen`), never on the control: a tap there
39
+ * ticked the box or switched the tab and opened the card at once. The card opens from an ⓘ beside the control
40
+ * instead (`info`, or `infoAction` for a panel's header). A control with no description gets neither.
41
+ */
42
+ var describedControl = function (description, descriptions, name) {
43
+ if (!descriptions.tapToOpen) {
44
+ return { tooltip: (0, descriptionTooltip_1.descriptionTooltip)(description, descriptions) };
45
+ }
46
+ if (typeof description !== 'string' || !description.trim()) {
47
+ return {};
48
+ }
49
+ return {
50
+ info: (0, jsx_runtime_1.jsx)(exports.DescriptionInfoButton, { description: description, name: name, descriptions: descriptions }),
51
+ infoAction: {
52
+ className: 'reqraft-description-info',
53
+ icon: 'InformationLine',
54
+ minimal: true,
55
+ flat: true,
56
+ 'aria-label': (0, exports.describedControlInfoLabel)(name),
57
+ tooltip: (0, descriptionTooltip_1.descriptionTooltip)(description, __assign(__assign({}, descriptions), { tapToOpen: true }), name),
58
+ },
59
+ };
60
+ };
61
+ exports.describedControl = describedControl;
62
+ /**
63
+ * A control with its ⓘ beside it, in one row, keyed as the control was; the control alone where there is no ⓘ
64
+ * (a mouse, or no description).
65
+ */
66
+ var besideItsInfo = function (control, info, key) {
67
+ return info ?
68
+ (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreControlGroup, { className: 'reqraft-described-control', gapSize: 'tiny', children: [control, info] }, key)
69
+ : (0, react_1.cloneElement)(control, { key: key });
70
+ };
71
+ exports.besideItsInfo = besideItsInfo;
72
+ /**
73
+ * A collapsible section's description, as props for its `ReqorePanel`: with a mouse its header's hover, on a touch
74
+ * screen an ⓘ among its header's actions, so a tap on the header only opens or closes it.
75
+ */
76
+ var describedPanelProps = function (description, descriptions, name) {
77
+ var _a = (0, exports.describedControl)(description, descriptions, name), tooltip = _a.tooltip, infoAction = _a.infoAction;
78
+ return __assign({ tooltip: tooltip }, (infoAction ? { actions: [infoAction] } : {}));
79
+ };
80
+ exports.describedPanelProps = describedPanelProps;
81
+ //# sourceMappingURL=describedControl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"describedControl.js","sourceRoot":"","sources":["../../../src/components/Description/describedControl.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2C;AAC3C,mDAA4E;AAI5E,+BAA8D;AAC9D,uEAAkG;AAElG,wEAAwE;AACjE,IAAM,yBAAyB,GAAG,UAAC,IAAY,IAAK,OAAA,gBAAS,IAAI,CAAE,EAAf,CAAe,CAAC;AAA9D,QAAA,yBAAyB,6BAAqC;AAY3E;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAG,IAAA,YAAI,EACvC,UAAC,EAAsE;QAApE,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,YAAY,kBAAA,EAAE,IAAI,UAAA;IAAoC,OAAA,CAC1E,uBAAC,qBAAY,IACX,SAAS,EAAC,0BAA0B,EACpC,IAAI,EAAC,iBAAiB,EACtB,IAAI,EAAE,IAAI,EACV,OAAO,QACP,IAAI,QACJ,KAAK,sBACO,IAAA,iCAAyB,EAAC,IAAI,CAAC,EAC3C,OAAO,EAAE,IAAA,uCAAkB,EAAC,WAAW,wBAAO,YAAY,KAAE,SAAS,EAAE,IAAI,KAAI,IAAI,CAAC,GACpF,CACH;AAX2E,CAW3E,CACF,CAAC;AAEF,6BAAqB,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAW5D;;;;;;GAMG;AACI,IAAM,gBAAgB,GAAG,UAC9B,WAAoB,EACpB,YAAwC,EACxC,IAAY;IAEZ,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,IAAA,uCAAkB,EAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;IACpE,CAAC;IACD,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,uBAAC,6BAAqB,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,GAAI;QACjG,UAAU,EAAE;YACV,SAAS,EAAE,0BAA0B;YACrC,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,IAAA,iCAAyB,EAAC,IAAI,CAAC;YAC7C,OAAO,EAAE,IAAA,uCAAkB,EAAC,WAAW,wBAAO,YAAY,KAAE,SAAS,EAAE,IAAI,KAAI,IAAI,CAAC;SAC/D;KACxB,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,gBAAgB,oBAsB3B;AAEF;;;GAGG;AACI,IAAM,aAAa,GAAG,UAC3B,OAAqB,EACrB,IAA8B,EAC9B,GAAQ;IAER,OAAA,IAAI,CAAC,CAAC;QACJ,wBAAC,2BAAkB,IAAW,SAAS,EAAC,2BAA2B,EAAC,OAAO,EAAC,MAAM,aAC/E,OAAO,EACP,IAAI,KAFkB,GAAG,CAGP;QACvB,CAAC,CAAC,IAAA,oBAAY,EAAC,OAAO,EAAE,EAAE,GAAG,KAAA,EAAE,CAAC;AALhC,CAKgC,CAAC;AAVtB,QAAA,aAAa,iBAUS;AAEnC;;;GAGG;AACI,IAAM,mBAAmB,GAAG,UACjC,WAAoB,EACpB,YAAwC,EACxC,IAAY;IAEN,IAAA,KAA0B,IAAA,wBAAgB,EAAC,WAAW,EAAE,YAAY,EAAE,IAAI,CAAC,EAAzE,OAAO,aAAA,EAAE,UAAU,gBAAsD,CAAC;IAClF,kBAAS,OAAO,SAAA,IAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAG;AACvE,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Description/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAW,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAM1D,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoHD,eAAO,MAAM,YAAY,UAAW,GAAG,4CAQtC,CAAC;AAEF,eAAO,MAAM,WAAW,oMAWnB,iBAAiB,6CA6FrB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Description/index.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,qBAAqB,EAAW,MAAM,oDAAoD,CAAC;AACpG,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAO1D,MAAM,WAAW,iBAAkB,SAAQ,qBAAqB;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,6BAA6B,CAAC,EAAE,OAAO,CAAC;IACxC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5C,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoHD,eAAO,MAAM,YAAY,UAAW,GAAG,4CAQtC,CAAC;AAEF,eAAO,MAAM,WAAW,oMAWnB,iBAAiB,6CA8FrB,CAAC"}
@@ -36,6 +36,7 @@ var Paragraph_1 = require("@qoretechnologies/reqore/dist/components/Paragraph");
36
36
  var react_1 = require("react");
37
37
  var react_markdown_1 = __importDefault(require("react-markdown"));
38
38
  var styled_components_1 = __importDefault(require("styled-components"));
39
+ var markdownText_1 = require("../../helpers/markdownText");
39
40
  var markdownRendererContext_1 = require("./markdownRendererContext");
40
41
  /**
41
42
  * System monospace, spelled out rather than imported from
@@ -51,7 +52,7 @@ var MONO_FONT = "ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberat
51
52
  * `styled(ReactMarkdown)` — hence a wrapper element rather than a styled
52
53
  * component around the renderer itself.
53
54
  */
54
- var StyledDescriptionMarkdown = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n /*\n * Inline code. A backtick span marks an identifier \u2014 an option key, a header\n * name, a path \u2014 so it has to be monospace, and it has to sit quietly inside\n * the sentence around it.\n *\n * This used to map the code element to a ReqoreTag with an explicit near-white\n * colour, which auto-contrasted to near-black text: on a dark form a description\n * full of option names read as a row of glaring labels rather than as prose with\n * identifiers in it. Keeping the reading colour and tinting the background\n * behind it says \"literal\" without shouting it.\n */\n code {\n font-family: ", ";\n font-size: 0.92em;\n background: rgba(255, 255, 255, 0.09);\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 3px;\n padding: 0.05em 0.35em;\n color: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n }\n\n /* Block code owns the whole pre surface; it must not also be chipped. */\n pre {\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n pre code {\n background: none;\n border: 0;\n padding: 0;\n font-size: 1em;\n }\n\n /*\n * Headings. These used to map to ReqoreH1\u2026ReqoreH6, which render at page-title\n * scale \u2014 an option description opening with a level-two heading came out\n * larger than the dialog title above it. A description is never a page, so the\n * scale here is relative to the text it interrupts.\n */\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: ", ";\n line-height: 1.3;\n font-weight: 600;\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child {\n margin-top: 0;\n }\n\n h1 {\n font-size: ", ";\n }\n h2 {\n font-size: ", ";\n }\n h3 {\n font-size: ", ";\n }\n h4,\n h5,\n h6 {\n font-size: 1em;\n opacity: 0.85;\n }\n\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 4px 0;\n padding-left: 20px;\n }\n li {\n margin: 2px 0;\n }\n"], ["\n /*\n * Inline code. A backtick span marks an identifier \u2014 an option key, a header\n * name, a path \u2014 so it has to be monospace, and it has to sit quietly inside\n * the sentence around it.\n *\n * This used to map the code element to a ReqoreTag with an explicit near-white\n * colour, which auto-contrasted to near-black text: on a dark form a description\n * full of option names read as a row of glaring labels rather than as prose with\n * identifiers in it. Keeping the reading colour and tinting the background\n * behind it says \"literal\" without shouting it.\n */\n code {\n font-family: ", ";\n font-size: 0.92em;\n background: rgba(255, 255, 255, 0.09);\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 3px;\n padding: 0.05em 0.35em;\n color: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n }\n\n /* Block code owns the whole pre surface; it must not also be chipped. */\n pre {\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n pre code {\n background: none;\n border: 0;\n padding: 0;\n font-size: 1em;\n }\n\n /*\n * Headings. These used to map to ReqoreH1\u2026ReqoreH6, which render at page-title\n * scale \u2014 an option description opening with a level-two heading came out\n * larger than the dialog title above it. A description is never a page, so the\n * scale here is relative to the text it interrupts.\n */\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: ", ";\n line-height: 1.3;\n font-weight: 600;\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child {\n margin-top: 0;\n }\n\n h1 {\n font-size: ", ";\n }\n h2 {\n font-size: ", ";\n }\n h3 {\n font-size: ", ";\n }\n h4,\n h5,\n h6 {\n font-size: 1em;\n opacity: 0.85;\n }\n\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 4px 0;\n padding-left: 20px;\n }\n li {\n margin: 2px 0;\n }\n"])), MONO_FONT, function (_a) {
55
+ var StyledDescriptionMarkdown = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n /*\n * Inline code. A backtick span marks an identifier \u2014 an option key, a header\n * name, a path \u2014 so it has to be monospace, and it has to sit quietly inside\n * the sentence around it.\n *\n * This used to map the code element to a ReqoreTag with an explicit near-white\n * color, which auto-contrasted to near-black text: on a dark form a description\n * full of option names read as a row of glaring labels rather than as prose with\n * identifiers in it. Keeping the reading color and tinting the background\n * behind it says \"literal\" without shouting it.\n */\n code {\n font-family: ", ";\n font-size: 0.92em;\n background: rgba(255, 255, 255, 0.09);\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 3px;\n padding: 0.05em 0.35em;\n color: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n }\n\n /* Block code owns the whole pre surface; it must not also be chipped. */\n pre {\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n pre code {\n background: none;\n border: 0;\n padding: 0;\n font-size: 1em;\n }\n\n /*\n * Headings. These used to map to ReqoreH1\u2026ReqoreH6, which render at page-title\n * scale \u2014 an option description opening with a level-two heading came out\n * larger than the dialog title above it. A description is never a page, so the\n * scale here is relative to the text it interrupts.\n */\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: ", ";\n line-height: 1.3;\n font-weight: 600;\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child {\n margin-top: 0;\n }\n\n h1 {\n font-size: ", ";\n }\n h2 {\n font-size: ", ";\n }\n h3 {\n font-size: ", ";\n }\n h4,\n h5,\n h6 {\n font-size: 1em;\n opacity: 0.85;\n }\n\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 4px 0;\n padding-left: 20px;\n }\n li {\n margin: 2px 0;\n }\n"], ["\n /*\n * Inline code. A backtick span marks an identifier \u2014 an option key, a header\n * name, a path \u2014 so it has to be monospace, and it has to sit quietly inside\n * the sentence around it.\n *\n * This used to map the code element to a ReqoreTag with an explicit near-white\n * color, which auto-contrasted to near-black text: on a dark form a description\n * full of option names read as a row of glaring labels rather than as prose with\n * identifiers in it. Keeping the reading color and tinting the background\n * behind it says \"literal\" without shouting it.\n */\n code {\n font-family: ", ";\n font-size: 0.92em;\n background: rgba(255, 255, 255, 0.09);\n border: 1px solid rgba(255, 255, 255, 0.08);\n border-radius: 3px;\n padding: 0.05em 0.35em;\n color: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n }\n\n /* Block code owns the whole pre surface; it must not also be chipped. */\n pre {\n white-space: pre-wrap;\n word-break: break-word;\n overflow-wrap: anywhere;\n max-width: 100%;\n }\n pre code {\n background: none;\n border: 0;\n padding: 0;\n font-size: 1em;\n }\n\n /*\n * Headings. These used to map to ReqoreH1\u2026ReqoreH6, which render at page-title\n * scale \u2014 an option description opening with a level-two heading came out\n * larger than the dialog title above it. A description is never a page, so the\n * scale here is relative to the text it interrupts.\n */\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n margin: ", ";\n line-height: 1.3;\n font-weight: 600;\n }\n\n > h1:first-child,\n > h2:first-child,\n > h3:first-child,\n > h4:first-child,\n > h5:first-child,\n > h6:first-child {\n margin-top: 0;\n }\n\n h1 {\n font-size: ", ";\n }\n h2 {\n font-size: ", ";\n }\n h3 {\n font-size: ", ";\n }\n h4,\n h5,\n h6 {\n font-size: 1em;\n opacity: 0.85;\n }\n\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n\n ul,\n ol {\n margin: 4px 0;\n padding-left: 20px;\n }\n li {\n margin: 2px 0;\n }\n"])), MONO_FONT, function (_a) {
55
56
  var $compact = _a.$compact;
56
57
  return ($compact ? '10px 0 4px' : '16px 0 8px');
57
58
  }, function (_a) {
@@ -111,7 +112,7 @@ exports.Description = (0, react_1.memo)(function (_a) {
111
112
  // its own paragraphs, lists, headings — and a `<p>` may not contain
112
113
  // any of them, so the browser closed the outer paragraph early and
113
114
  // the rest of the description escaped its own styling.
114
- (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [markdownRenderer ? (markdownRenderer({ value: finalLongDescription, compact: compact })) : ((0, jsx_runtime_1.jsx)(StyledDescriptionMarkdown, { "$compact": compact, children: (0, jsx_runtime_1.jsx)(react_markdown_1.default, { components: components, children: finalLongDescription }) })), renderToggle()] })) : ((0, jsx_runtime_1.jsx)(Paragraph_1.ReqoreP, __assign({}, rest, { children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreSpan, { effect: effect, children: [finalShownDescription, " ", finalLongDescription ? renderToggle() : null] }) }))), margin === 'both' || margin === 'bottom' ? (0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 10 }) : null] }));
115
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [markdownRenderer ? (markdownRenderer({ value: finalLongDescription, compact: compact })) : ((0, jsx_runtime_1.jsx)(StyledDescriptionMarkdown, { "$compact": compact, children: (0, jsx_runtime_1.jsx)(react_markdown_1.default, { components: components, children: finalLongDescription }) })), renderToggle()] })) : ((0, jsx_runtime_1.jsx)(Paragraph_1.ReqoreP, __assign({}, rest, { children: (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreSpan, { effect: effect, children: [(0, markdownText_1.markdownToProse)(finalShownDescription), " ", finalLongDescription ? renderToggle() : null] }) }))), margin === 'both' || margin === 'bottom' ? (0, jsx_runtime_1.jsx)(reqore_1.ReqoreVerticalSpacer, { height: 10 }) : null] }));
115
116
  });
116
117
  var templateObject_1;
117
118
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Description/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Description/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /** What a stored value is, as a color. */
2
+ export type TReqraftColorValueDescription =
3
+ /** A color: `text` is how it is written (`#6495ED`, or `rgba(…)` when it is see-through), `css` paints it. */
4
+ {
5
+ kind: 'color';
6
+ text: string;
7
+ css: string;
8
+ }
9
+ /** No color: nothing, an empty string or an empty hash. */
10
+ | {
11
+ kind: 'empty';
12
+ }
13
+ /** A value that is not a color; `shown` is the value as text (a string in quotes), to say what it is. */
14
+ | {
15
+ kind: 'invalid';
16
+ shown: string;
17
+ };
18
+ /** A color's red, green and blue, each from 0 to 255, and its opacity, from 0 to 1. */
19
+ export interface IReqraftRgba {
20
+ r: number;
21
+ g: number;
22
+ b: number;
23
+ a: number;
24
+ }
25
+ /**
26
+ * What a hex code says: its red, green and blue, and its opacity - the one hex reader in reqraft (qorus#646), for
27
+ * the color field, the readers here and a host that turns a hex code into a stored color. A hex code has 3, 4, 6 or 8
28
+ * hex digits, with or without its `#`, in either case. 3 and 4 are short for 6 and 8, each digit doubled: `F808` is
29
+ * `FF880088`. The last pair of 8 (the last digit of 4) is the opacity, `00` to `FF` read as 0 to 1; without one the
30
+ * color is opaque. Undefined when the text is not a hex code.
31
+ */
32
+ export declare const readHexColor: (text: string) => IReqraftRgba | undefined;
33
+ /** Whether a hex code gives its own opacity: 4 or 8 digits. */
34
+ export declare const hexGivesOpacity: (text: string) => boolean;
35
+ /**
36
+ * What a stored value is, as a color: a color (how it is written, and how CSS paints it), no color, or
37
+ * a value that is not a color (shown as it is). A channel past its range is brought into it, as the color
38
+ * field does; a channel that is not a finite number, a hex code that is not one (`#zzz`, seven digits) or
39
+ * a color name is not a color.
40
+ */
41
+ export declare const describeColorValue: (value: unknown) => TReqraftColorValueDescription;
42
+ /** How a color is written (`#0000FF`, or `rgba(…)` when see-through); undefined when the value is none. */
43
+ export declare const formatColorValue: (value: unknown) => string | undefined;
44
+ /** The CSS color a swatch is painted (alpha kept); undefined when the value is none. */
45
+ export declare const colorToCss: (value: unknown) => string | undefined;
46
+ /**
47
+ * What is wrong with a value stored as an `rgbcolor`, in plain words; undefined when it is a stored color (qorus#646,
48
+ * David): the hash `{ r, g, b, a? }`, `r`, `g` and `b` whole numbers from 0 to 255 and `a` its opacity, a number from
49
+ * 0 to 1 (without one, the color is opaque), and no other field: the server refuses one (Qore's RgbColorDataType:
50
+ * "unsupported fields in value").
51
+ *
52
+ * A hex code, bare or as `{ hex }`, and a color with other fields beside its own (react-color wrote a `hex`) are not
53
+ * stored colors: the readers above still draw them, so a value stored that way is seen, and this says why it is
54
+ * wrong. The color field stores the hash, and only the hash, when it edits such a value.
55
+ */
56
+ export declare const storedColorProblem: (value: unknown) => string | undefined;
57
+ /** Whether a value is a stored color, `{ r, g, b, a? }`; see `storedColorProblem`. */
58
+ export declare const isStoredColor: (value: unknown) => boolean;
59
+ //# sourceMappingURL=colorValue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorValue.d.ts","sourceRoot":"","sources":["../../../src/components/colorValue/colorValue.ts"],"names":[],"mappings":"AASA,0CAA0C;AAC1C,MAAM,MAAM,6BAA6B;AACvC,8GAA8G;AAC5G;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAC9C,2DAA2D;GACzD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE;AACnB,yGAAyG;GACvG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA8BvC,uFAAuF;AACvF,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,SAAU,MAAM,KAAG,YAAY,GAAG,SAe1D,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,OAG9C,CAAC;AAmEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,KAAG,6BA8BnD,CAAC;AAEF,2GAA2G;AAC3G,eAAO,MAAM,gBAAgB,UAAW,OAAO,KAAG,MAAM,GAAG,SAG1D,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,MAAM,GAAG,SAGpD,CAAC;AA2BF;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,UAAW,OAAO,KAAG,MAAM,GAAG,SA+C5D,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,aAAa,UAAW,OAAO,KAAG,OAAkD,CAAC"}
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+ // Copyright 2026 Qore Technologies, s.r.o.
3
+ // What a stored color is: the one reader for every read-only view of a color (qorus#646).
4
+ //
5
+ // A color reaches a page in the shapes it is stored in - `{ r, g, b }` or `{ r, g, b, a }` as the color
6
+ // field stores it - and in shapes a stored color is not, which are drawn so a value stored that way is seen:
7
+ // `{ r, g, b, a }` with other fields beside them (react-color wrote a `hex`), `{ hex }`, or a hex code, with or
8
+ // without its `#`, as a value written by hand or by another client can be. `ReqraftColorValue` draws what
9
+ // this reads, and a compact form row summarises a color with it, so the two never disagree.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.isStoredColor = exports.storedColorProblem = exports.colorToCss = exports.formatColorValue = exports.describeColorValue = exports.hexGivesOpacity = exports.readHexColor = void 0;
12
+ /** A hex code as CSS takes one: 3, 4, 6 or 8 hex digits (the last digit or pair is the alpha). */
13
+ var HEX_CODE = /^#?([0-9a-f]{3}|[0-9a-f]{4}|[0-9a-f]{6}|[0-9a-f]{8})$/i;
14
+ /** The longest an invalid value is shown; a longer one is cut, with an ellipsis. */
15
+ var SHOWN_MAX = 60;
16
+ var isFiniteNumber = function (n) { return typeof n === 'number' && Number.isFinite(n); };
17
+ /** A channel brought into its range, as a whole number: the color field does the same. */
18
+ var clampChannel = function (n) { return Math.max(0, Math.min(255, Math.round(n))); };
19
+ var clampAlpha = function (n) { return Math.max(0, Math.min(1, n)); };
20
+ var toHexPart = function (n) { return clampChannel(n).toString(16).padStart(2, '0'); };
21
+ var hasRgb = function (c) {
22
+ return c.r !== undefined && c.g !== undefined && c.b !== undefined;
23
+ };
24
+ /**
25
+ * What a hex code says: its red, green and blue, and its opacity - the one hex reader in reqraft (qorus#646), for
26
+ * the color field, the readers here and a host that turns a hex code into a stored color. A hex code has 3, 4, 6 or 8
27
+ * hex digits, with or without its `#`, in either case. 3 and 4 are short for 6 and 8, each digit doubled: `F808` is
28
+ * `FF880088`. The last pair of 8 (the last digit of 4) is the opacity, `00` to `FF` read as 0 to 1; without one the
29
+ * color is opaque. Undefined when the text is not a hex code.
30
+ */
31
+ var readHexColor = function (text) {
32
+ var _a;
33
+ var match = HEX_CODE.exec(text.trim());
34
+ if (!match) {
35
+ return undefined;
36
+ }
37
+ var digits = match[1];
38
+ var full = digits.length <= 4 ?
39
+ digits
40
+ .split('')
41
+ .map(function (digit) { return "".concat(digit).concat(digit); })
42
+ .join('')
43
+ : digits;
44
+ var _b = ((_a = full.match(/../g)) !== null && _a !== void 0 ? _a : []).map(function (pair) { return parseInt(pair, 16); }), r = _b[0], g = _b[1], b = _b[2], a = _b[3];
45
+ return { r: r, g: g, b: b, a: a === undefined ? 1 : a / 255 };
46
+ };
47
+ exports.readHexColor = readHexColor;
48
+ /** Whether a hex code gives its own opacity: 4 or 8 digits. */
49
+ var hexGivesOpacity = function (text) {
50
+ var match = HEX_CODE.exec(text.trim());
51
+ return !!match && (match[1].length === 4 || match[1].length === 8);
52
+ };
53
+ exports.hexGivesOpacity = hexGivesOpacity;
54
+ /** A hex code with its `#`, or undefined when the text is not one. */
55
+ var hexCode = function (text) {
56
+ var trimmed = text.trim();
57
+ return (HEX_CODE.test(trimmed) ?
58
+ trimmed.startsWith('#') ?
59
+ trimmed
60
+ : "#".concat(trimmed)
61
+ : undefined);
62
+ };
63
+ /** Whether a value holds nothing: nothing, an empty string or an empty hash. */
64
+ var isEmpty = function (value) {
65
+ return value === undefined ||
66
+ value === null ||
67
+ (typeof value === 'string' && value.trim() === '') ||
68
+ (typeof value === 'object' && !Array.isArray(value) && Object.keys(value).length === 0);
69
+ };
70
+ /** A stored color's parts, or undefined when the value is not a color. */
71
+ var parseColor = function (value) {
72
+ if (typeof value === 'string') {
73
+ var hex = hexCode(value);
74
+ return hex ? { hex: hex, a: 1 } : undefined;
75
+ }
76
+ if (value && typeof value === 'object' && !Array.isArray(value)) {
77
+ var _a = value, r = _a.r, g = _a.g, b = _a.b, a = _a.a, hex = _a.hex;
78
+ // an alpha that is given is a number, or this is not a color (null is an alpha not given)
79
+ if (a !== undefined && a !== null && !isFiniteNumber(a)) {
80
+ return undefined;
81
+ }
82
+ var alpha = isFiniteNumber(a) ? clampAlpha(a) : 1;
83
+ if (isFiniteNumber(r) && isFiniteNumber(g) && isFiniteNumber(b)) {
84
+ return { r: r, g: g, b: b, a: alpha };
85
+ }
86
+ if (typeof hex === 'string') {
87
+ var code = hexCode(hex);
88
+ return code ? { hex: code, a: alpha } : undefined;
89
+ }
90
+ }
91
+ return undefined;
92
+ };
93
+ /** A value that is not a color, as text: a string in quotes, anything else as JSON, cut when long. */
94
+ var showValue = function (value) {
95
+ var _a;
96
+ var shown;
97
+ if (typeof value === 'string') {
98
+ shown = "\u201C".concat(value, "\u201D");
99
+ }
100
+ else {
101
+ try {
102
+ shown = (_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : String(value);
103
+ }
104
+ catch (_b) {
105
+ // a value JSON cannot write (a cycle, a BigInt) is still shown as something
106
+ shown = String(value);
107
+ }
108
+ }
109
+ return shown.length > SHOWN_MAX ? "".concat(shown.slice(0, SHOWN_MAX), "\u2026") : shown;
110
+ };
111
+ /**
112
+ * What a stored value is, as a color: a color (how it is written, and how CSS paints it), no color, or
113
+ * a value that is not a color (shown as it is). A channel past its range is brought into it, as the color
114
+ * field does; a channel that is not a finite number, a hex code that is not one (`#zzz`, seven digits) or
115
+ * a color name is not a color.
116
+ */
117
+ var describeColorValue = function (value) {
118
+ if (isEmpty(value)) {
119
+ return { kind: 'empty' };
120
+ }
121
+ var c = parseColor(value);
122
+ if (!c) {
123
+ return { kind: 'invalid', shown: showValue(value) };
124
+ }
125
+ if (hasRgb(c)) {
126
+ var _a = [clampChannel(c.r), clampChannel(c.g), clampChannel(c.b)], r = _a[0], g = _a[1], b = _a[2];
127
+ var alpha = Math.round(c.a * 100) / 100;
128
+ return {
129
+ kind: 'color',
130
+ // rgba(…) for a see-through color: the hex shortcut would drop its alpha
131
+ text: c.a < 1 ?
132
+ "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(alpha, ")")
133
+ : "#".concat(toHexPart(r)).concat(toHexPart(g)).concat(toHexPart(b)).toUpperCase(),
134
+ css: "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(c.a, ")"),
135
+ };
136
+ }
137
+ // written as it was stored; painted as the hex reader reads it, as the color field would store it - its own
138
+ // opacity where it has one (4 or 8 digits), or the opacity given beside it
139
+ var read = (0, exports.readHexColor)(c.hex);
140
+ return {
141
+ kind: 'color',
142
+ text: c.hex.toUpperCase(),
143
+ // the opacity in hundredths, as the color field stores it
144
+ css: "rgba(".concat(read.r, ", ").concat(read.g, ", ").concat(read.b, ", ").concat((0, exports.hexGivesOpacity)(c.hex) ? Math.round(read.a * 100) / 100 : c.a, ")"),
145
+ };
146
+ };
147
+ exports.describeColorValue = describeColorValue;
148
+ /** How a color is written (`#0000FF`, or `rgba(…)` when see-through); undefined when the value is none. */
149
+ var formatColorValue = function (value) {
150
+ var description = (0, exports.describeColorValue)(value);
151
+ return description.kind === 'color' ? description.text : undefined;
152
+ };
153
+ exports.formatColorValue = formatColorValue;
154
+ /** The CSS color a swatch is painted (alpha kept); undefined when the value is none. */
155
+ var colorToCss = function (value) {
156
+ var description = (0, exports.describeColorValue)(value);
157
+ return description.kind === 'color' ? description.css : undefined;
158
+ };
159
+ exports.colorToCss = colorToCss;
160
+ /** The channels of a stored color, with the words a reader knows them by. */
161
+ var STORED_CHANNELS = [
162
+ ['r', 'red'],
163
+ ['g', 'green'],
164
+ ['b', 'blue'],
165
+ ];
166
+ var isWholeChannel = function (n) {
167
+ return typeof n === 'number' && Number.isInteger(n) && n >= 0 && n <= 255;
168
+ };
169
+ var isOpacity = function (n) {
170
+ return typeof n === 'number' && Number.isFinite(n) && n >= 0 && n <= 1;
171
+ };
172
+ /** "red (r)", "red (r) and blue (b)", "red (r), green (g) and blue (b)" - and the same for any words. */
173
+ var listChannels = function (channels) {
174
+ return channels.length < 2 ?
175
+ channels.join('')
176
+ : "".concat(channels.slice(0, -1).join(', '), " and ").concat(channels[channels.length - 1]);
177
+ };
178
+ /** The fields a stored color has: its channels and its opacity. */
179
+ var STORED_FIELDS = ['r', 'g', 'b', 'a'];
180
+ /** The stored shape, said where a value is not in it at all. */
181
+ var STORED_AS = 'A color is stored as its red, green and blue values (r, g, b)';
182
+ /**
183
+ * What is wrong with a value stored as an `rgbcolor`, in plain words; undefined when it is a stored color (qorus#646,
184
+ * David): the hash `{ r, g, b, a? }`, `r`, `g` and `b` whole numbers from 0 to 255 and `a` its opacity, a number from
185
+ * 0 to 1 (without one, the color is opaque), and no other field: the server refuses one (Qore's RgbColorDataType:
186
+ * "unsupported fields in value").
187
+ *
188
+ * A hex code, bare or as `{ hex }`, and a color with other fields beside its own (react-color wrote a `hex`) are not
189
+ * stored colors: the readers above still draw them, so a value stored that way is seen, and this says why it is
190
+ * wrong. The color field stores the hash, and only the hash, when it edits such a value.
191
+ */
192
+ var storedColorProblem = function (value) {
193
+ if (value === undefined || value === null || (typeof value === 'string' && value.trim() === '')) {
194
+ return 'No color is set.';
195
+ }
196
+ if (typeof value === 'string') {
197
+ var hex = hexCode(value);
198
+ return "".concat(STORED_AS, ", not as ").concat(hex ? "the hex code ".concat(showValue(value)) : showValue(value), ".");
199
+ }
200
+ if (typeof value !== 'object' || Array.isArray(value)) {
201
+ return "".concat(STORED_AS, ", not as ").concat(showValue(value), ".");
202
+ }
203
+ var color = value;
204
+ var missing = STORED_CHANNELS.filter(function (_a) {
205
+ var key = _a[0];
206
+ return color[key] === undefined || color[key] === null;
207
+ });
208
+ if (missing.length === STORED_CHANNELS.length && typeof color.hex === 'string') {
209
+ return "".concat(STORED_AS, ", not as the hex code ").concat(showValue(color.hex), ".");
210
+ }
211
+ var problems = [];
212
+ if (missing.length) {
213
+ var names = missing.map(function (_a) {
214
+ var key = _a[0], name = _a[1];
215
+ return "".concat(name, " (").concat(key, ")");
216
+ });
217
+ problems.push("".concat(listChannels(names), " ").concat(missing.length === 1 ? 'is' : 'are', " missing"));
218
+ }
219
+ for (var _i = 0, STORED_CHANNELS_1 = STORED_CHANNELS; _i < STORED_CHANNELS_1.length; _i++) {
220
+ var _a = STORED_CHANNELS_1[_i], key = _a[0], name_1 = _a[1];
221
+ var channel = color[key];
222
+ if (channel !== undefined && channel !== null && !isWholeChannel(channel)) {
223
+ problems.push("".concat(name_1, " (").concat(key, ") must be a whole number from 0 to 255, not ").concat(showValue(channel)));
224
+ }
225
+ }
226
+ // an opacity that is not given is a color that is opaque
227
+ if (color.a !== undefined && color.a !== null && !isOpacity(color.a)) {
228
+ problems.push("opacity (a) must be a number from 0 to 1, not ".concat(showValue(color.a)));
229
+ }
230
+ // a field beside its own, which the server refuses
231
+ var extra = Object.keys(color).filter(function (key) { return !STORED_FIELDS.includes(key); });
232
+ if (extra.length) {
233
+ problems.push("the color also has ".concat(listChannels(extra.map(function (key) { return showValue(key); })), ", which a stored color can't have"));
234
+ }
235
+ if (!problems.length) {
236
+ return undefined;
237
+ }
238
+ var said = problems.join('; ');
239
+ return "".concat(said.charAt(0).toUpperCase()).concat(said.slice(1), ".");
240
+ };
241
+ exports.storedColorProblem = storedColorProblem;
242
+ /** Whether a value is a stored color, `{ r, g, b, a? }`; see `storedColorProblem`. */
243
+ var isStoredColor = function (value) { return (0, exports.storedColorProblem)(value) === undefined; };
244
+ exports.isStoredColor = isStoredColor;
245
+ //# sourceMappingURL=colorValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorValue.js","sourceRoot":"","sources":["../../../src/components/colorValue/colorValue.ts"],"names":[],"mappings":"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"}