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

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 (834) hide show
  1. package/README.md +53 -1
  2. package/dist/components/Description/AllowedValuesHelp.d.ts +20 -0
  3. package/dist/components/Description/AllowedValuesHelp.d.ts.map +1 -0
  4. package/dist/components/Description/AllowedValuesHelp.js +86 -0
  5. package/dist/components/Description/AllowedValuesHelp.js.map +1 -0
  6. package/dist/components/Description/describedControl.d.ts +54 -0
  7. package/dist/components/Description/describedControl.d.ts.map +1 -0
  8. package/dist/components/Description/describedControl.js +81 -0
  9. package/dist/components/Description/describedControl.js.map +1 -0
  10. package/dist/components/Description/index.d.ts.map +1 -1
  11. package/dist/components/Description/index.js +3 -2
  12. package/dist/components/Description/index.js.map +1 -1
  13. package/dist/components/colorValue/colorValue.d.ts +59 -0
  14. package/dist/components/colorValue/colorValue.d.ts.map +1 -0
  15. package/dist/components/colorValue/colorValue.js +245 -0
  16. package/dist/components/colorValue/colorValue.js.map +1 -0
  17. package/dist/components/colorValue/index.d.ts +34 -0
  18. package/dist/components/colorValue/index.d.ts.map +1 -0
  19. package/dist/components/colorValue/index.js +136 -0
  20. package/dist/components/colorValue/index.js.map +1 -0
  21. package/dist/components/colorValue/labels.d.ts +12 -0
  22. package/dist/components/colorValue/labels.d.ts.map +1 -0
  23. package/dist/components/colorValue/labels.js +11 -0
  24. package/dist/components/colorValue/labels.js.map +1 -0
  25. package/dist/components/composer/Composer.d.ts +1 -1
  26. package/dist/components/composer/Composer.d.ts.map +1 -1
  27. package/dist/components/composer/Composer.js +2 -2
  28. package/dist/components/composer/Composer.js.map +1 -1
  29. package/dist/components/dpqlEditor/DpqlEditor.d.ts.map +1 -1
  30. package/dist/components/dpqlEditor/DpqlEditor.js +41 -8
  31. package/dist/components/dpqlEditor/DpqlEditor.js.map +1 -1
  32. package/dist/components/dpqlEditor/dpqlCompletions.d.ts +35 -0
  33. package/dist/components/dpqlEditor/dpqlCompletions.d.ts.map +1 -0
  34. package/dist/components/dpqlEditor/dpqlCompletions.js +122 -0
  35. package/dist/components/dpqlEditor/dpqlCompletions.js.map +1 -0
  36. package/dist/components/dpqlEditor/dpqlHelpers.d.ts +47 -5
  37. package/dist/components/dpqlEditor/dpqlHelpers.d.ts.map +1 -1
  38. package/dist/components/dpqlEditor/dpqlHelpers.js +390 -62
  39. package/dist/components/dpqlEditor/dpqlHelpers.js.map +1 -1
  40. package/dist/components/dpqlEditor/dpqlInserter.d.ts.map +1 -1
  41. package/dist/components/dpqlEditor/dpqlInserter.js +59 -29
  42. package/dist/components/dpqlEditor/dpqlInserter.js.map +1 -1
  43. package/dist/components/dpqlEditor/dpqlTags.d.ts +17 -7
  44. package/dist/components/dpqlEditor/dpqlTags.d.ts.map +1 -1
  45. package/dist/components/dpqlEditor/dpqlTags.js +44 -17
  46. package/dist/components/dpqlEditor/dpqlTags.js.map +1 -1
  47. package/dist/components/dpqlEditor/types.d.ts +61 -8
  48. package/dist/components/dpqlEditor/types.d.ts.map +1 -1
  49. package/dist/components/dpqlEditor/useDpqlSession.d.ts +2 -2
  50. package/dist/components/dpqlEditor/useDpqlSession.d.ts.map +1 -1
  51. package/dist/components/dpqlEditor/useDpqlSession.js +16 -7
  52. package/dist/components/dpqlEditor/useDpqlSession.js.map +1 -1
  53. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  54. package/dist/components/form/engine/CompactRow.js +327 -123
  55. package/dist/components/form/engine/CompactRow.js.map +1 -1
  56. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  57. package/dist/components/form/engine/CompactToolbar.js +29 -3
  58. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  59. package/dist/components/form/engine/FormEngine.d.ts +66 -11
  60. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  61. package/dist/components/form/engine/FormEngine.js +597 -173
  62. package/dist/components/form/engine/FormEngine.js.map +1 -1
  63. package/dist/components/form/engine/HiddenFieldsNote.d.ts +28 -0
  64. package/dist/components/form/engine/HiddenFieldsNote.d.ts.map +1 -0
  65. package/dist/components/form/engine/HiddenFieldsNote.js +32 -0
  66. package/dist/components/form/engine/HiddenFieldsNote.js.map +1 -0
  67. package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
  68. package/dist/components/form/engine/OptionFieldMessages.js +25 -3
  69. package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
  70. package/dist/components/form/engine/OptionsHelpDialog.d.ts.map +1 -1
  71. package/dist/components/form/engine/OptionsHelpDialog.js +19 -2
  72. package/dist/components/form/engine/OptionsHelpDialog.js.map +1 -1
  73. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts +2 -2
  74. package/dist/components/form/engine/_structuredData/SchemaDataView.d.ts.map +1 -1
  75. package/dist/components/form/engine/_structuredData/SchemaDataView.js +12 -6
  76. package/dist/components/form/engine/_structuredData/SchemaDataView.js.map +1 -1
  77. package/dist/components/form/engine/compactRowContext.d.ts +32 -1
  78. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  79. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  80. package/dist/components/form/engine/compactRowStyles.d.ts +22 -10
  81. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  82. package/dist/components/form/engine/compactRowStyles.js +53 -39
  83. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  84. package/dist/components/form/engine/compactToolbarColors.d.ts +16 -0
  85. package/dist/components/form/engine/compactToolbarColors.d.ts.map +1 -0
  86. package/dist/components/form/engine/compactToolbarColors.js +21 -0
  87. package/dist/components/form/engine/compactToolbarColors.js.map +1 -0
  88. package/dist/components/form/engine/inheritProps.d.ts +29 -0
  89. package/dist/components/form/engine/inheritProps.d.ts.map +1 -0
  90. package/dist/components/form/engine/inheritProps.js +43 -0
  91. package/dist/components/form/engine/inheritProps.js.map +1 -0
  92. package/dist/components/form/engine/operatorSummary.d.ts +26 -0
  93. package/dist/components/form/engine/operatorSummary.d.ts.map +1 -0
  94. package/dist/components/form/engine/operatorSummary.js +35 -0
  95. package/dist/components/form/engine/operatorSummary.js.map +1 -0
  96. package/dist/components/form/engine/readFirst.d.ts +24 -8
  97. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  98. package/dist/components/form/engine/readFirst.js +77 -109
  99. package/dist/components/form/engine/readFirst.js.map +1 -1
  100. package/dist/components/form/engine/readFirstColors.d.ts +30 -0
  101. package/dist/components/form/engine/readFirstColors.d.ts.map +1 -0
  102. package/dist/components/form/engine/readFirstColors.js +51 -0
  103. package/dist/components/form/engine/readFirstColors.js.map +1 -0
  104. package/dist/components/form/engine/rowFocus.d.ts +2 -0
  105. package/dist/components/form/engine/rowFocus.d.ts.map +1 -1
  106. package/dist/components/form/engine/rowFocus.js +26 -3
  107. package/dist/components/form/engine/rowFocus.js.map +1 -1
  108. package/dist/components/form/engine/typeChoices.d.ts +1 -1
  109. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -1
  110. package/dist/components/form/engine/variants/VariantCalmTable.js +2 -1
  111. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -1
  112. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -1
  113. package/dist/components/form/engine/variants/VariantCards.js +2 -1
  114. package/dist/components/form/engine/variants/VariantCards.js.map +1 -1
  115. package/dist/components/form/engine/variants/VariantFocus.js +1 -1
  116. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -1
  117. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -1
  118. package/dist/components/form/engine/variants/VariantMinimal.js +2 -1
  119. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -1
  120. package/dist/components/form/engine/variants/variantParts.d.ts +1 -1
  121. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -1
  122. package/dist/components/form/engine/variants/variantParts.js +25 -17
  123. package/dist/components/form/engine/variants/variantParts.js.map +1 -1
  124. package/dist/components/form/expressions/DpqlRendering.d.ts +1 -1
  125. package/dist/components/form/expressions/DpqlRendering.d.ts.map +1 -1
  126. package/dist/components/form/expressions/DpqlRendering.js +7 -6
  127. package/dist/components/form/expressions/DpqlRendering.js.map +1 -1
  128. package/dist/components/form/expressions/ExpressionField.d.ts +66 -3
  129. package/dist/components/form/expressions/ExpressionField.d.ts.map +1 -1
  130. package/dist/components/form/expressions/ExpressionField.js +475 -100
  131. package/dist/components/form/expressions/ExpressionField.js.map +1 -1
  132. package/dist/components/form/expressions/argumentPresence.d.ts +14 -0
  133. package/dist/components/form/expressions/argumentPresence.d.ts.map +1 -1
  134. package/dist/components/form/expressions/argumentPresence.js +16 -1
  135. package/dist/components/form/expressions/argumentPresence.js.map +1 -1
  136. package/dist/components/form/expressions/builder/argumentDetail.d.ts.map +1 -1
  137. package/dist/components/form/expressions/builder/argumentDetail.js +4 -1
  138. package/dist/components/form/expressions/builder/argumentDetail.js.map +1 -1
  139. package/dist/components/form/expressions/builder/argumentLabel.d.ts.map +1 -1
  140. package/dist/components/form/expressions/builder/argumentLabel.js +27 -9
  141. package/dist/components/form/expressions/builder/argumentLabel.js.map +1 -1
  142. package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
  143. package/dist/components/form/expressions/builder/argumentWrapper.js +3 -1
  144. package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
  145. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.d.ts.map +1 -1
  146. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js +5 -4
  147. package/dist/components/form/expressions/builder/confirmMismatchedTypesModal.js.map +1 -1
  148. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts +1 -1
  149. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.d.ts.map +1 -1
  150. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js +6 -3
  151. package/dist/components/form/expressions/builder/confirmUnsupportedTypeModal.js.map +1 -1
  152. package/dist/components/form/expressions/builder/index.d.ts +29 -2
  153. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  154. package/dist/components/form/expressions/builder/index.js +161 -78
  155. package/dist/components/form/expressions/builder/index.js.map +1 -1
  156. package/dist/components/form/expressions/builder/item.d.ts +6 -2
  157. package/dist/components/form/expressions/builder/item.d.ts.map +1 -1
  158. package/dist/components/form/expressions/builder/item.js +19 -5
  159. package/dist/components/form/expressions/builder/item.js.map +1 -1
  160. package/dist/components/form/expressions/builder/renderTemplate.js +1 -1
  161. package/dist/components/form/expressions/builder/renderTemplate.js.map +1 -1
  162. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts +11 -0
  163. package/dist/components/form/expressions/dpqlMockRecordPath.d.ts.map +1 -0
  164. package/dist/components/form/expressions/dpqlMockRecordPath.js +254 -0
  165. package/dist/components/form/expressions/dpqlMockRecordPath.js.map +1 -0
  166. package/dist/components/form/expressions/expressionOperands.d.ts +16 -0
  167. package/dist/components/form/expressions/expressionOperands.d.ts.map +1 -0
  168. package/dist/components/form/expressions/expressionOperands.js +97 -0
  169. package/dist/components/form/expressions/expressionOperands.js.map +1 -0
  170. package/dist/components/form/expressions/fieldPath.d.ts +24 -0
  171. package/dist/components/form/expressions/fieldPath.d.ts.map +1 -0
  172. package/dist/components/form/expressions/fieldPath.js +152 -0
  173. package/dist/components/form/expressions/fieldPath.js.map +1 -0
  174. package/dist/components/form/expressions/loneValue.d.ts +17 -0
  175. package/dist/components/form/expressions/loneValue.d.ts.map +1 -0
  176. package/dist/components/form/expressions/loneValue.js +33 -0
  177. package/dist/components/form/expressions/loneValue.js.map +1 -0
  178. package/dist/components/form/expressions/mockExpressions.d.ts.map +1 -1
  179. package/dist/components/form/expressions/mockExpressions.js +22 -5
  180. package/dist/components/form/expressions/mockExpressions.js.map +1 -1
  181. package/dist/components/form/expressions/renderExpressionToText.d.ts +2 -0
  182. package/dist/components/form/expressions/renderExpressionToText.d.ts.map +1 -1
  183. package/dist/components/form/expressions/renderExpressionToText.js +43 -10
  184. package/dist/components/form/expressions/renderExpressionToText.js.map +1 -1
  185. package/dist/components/form/expressions/textOfExpression.d.ts +18 -0
  186. package/dist/components/form/expressions/textOfExpression.d.ts.map +1 -0
  187. package/dist/components/form/expressions/textOfExpression.js +49 -0
  188. package/dist/components/form/expressions/textOfExpression.js.map +1 -0
  189. package/dist/components/form/expressions/types.d.ts +7 -0
  190. package/dist/components/form/expressions/types.d.ts.map +1 -1
  191. package/dist/components/form/expressions/types.js +6 -1
  192. package/dist/components/form/expressions/types.js.map +1 -1
  193. package/dist/components/form/expressions/useExpressionType.d.ts +26 -0
  194. package/dist/components/form/expressions/useExpressionType.d.ts.map +1 -0
  195. package/dist/components/form/expressions/useExpressionType.js +181 -0
  196. package/dist/components/form/expressions/useExpressionType.js.map +1 -0
  197. package/dist/components/form/expressions/useRenderExpression.d.ts.map +1 -1
  198. package/dist/components/form/expressions/useRenderExpression.js +13 -9
  199. package/dist/components/form/expressions/useRenderExpression.js.map +1 -1
  200. package/dist/components/form/expressions/wildcardExpressions.d.ts +27 -0
  201. package/dist/components/form/expressions/wildcardExpressions.d.ts.map +1 -0
  202. package/dist/components/form/expressions/wildcardExpressions.js +101 -0
  203. package/dist/components/form/expressions/wildcardExpressions.js.map +1 -0
  204. package/dist/components/form/fields/Field.d.ts.map +1 -1
  205. package/dist/components/form/fields/Field.js +43 -20
  206. package/dist/components/form/fields/Field.js.map +1 -1
  207. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  208. package/dist/components/form/fields/allowed-values/AllowedValues.js +39 -6
  209. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  210. package/dist/components/form/fields/allowed-values/choicePicture.d.ts +37 -0
  211. package/dist/components/form/fields/allowed-values/choicePicture.d.ts.map +1 -0
  212. package/dist/components/form/fields/allowed-values/choicePicture.js +64 -0
  213. package/dist/components/form/fields/allowed-values/choicePicture.js.map +1 -0
  214. package/dist/components/form/fields/array/ArrayAuto.d.ts.map +1 -1
  215. package/dist/components/form/fields/array/ArrayAuto.js +24 -0
  216. package/dist/components/form/fields/array/ArrayAuto.js.map +1 -1
  217. package/dist/components/form/fields/array/ArrayAutoField.d.ts.map +1 -1
  218. package/dist/components/form/fields/array/ArrayAutoField.js +36 -13
  219. package/dist/components/form/fields/array/ArrayAutoField.js.map +1 -1
  220. package/dist/components/form/fields/auto/AutoFormField.d.ts +20 -1
  221. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  222. package/dist/components/form/fields/auto/AutoFormField.js +91 -53
  223. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  224. package/dist/components/form/fields/auto/hostEditorValue.d.ts +30 -0
  225. package/dist/components/form/fields/auto/hostEditorValue.d.ts.map +1 -0
  226. package/dist/components/form/fields/auto/hostEditorValue.js +53 -0
  227. package/dist/components/form/fields/auto/hostEditorValue.js.map +1 -0
  228. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -1
  229. package/dist/components/form/fields/binary/Binary.js +23 -3
  230. package/dist/components/form/fields/binary/Binary.js.map +1 -1
  231. package/dist/components/form/fields/boolean/Boolean.d.ts +5 -0
  232. package/dist/components/form/fields/boolean/Boolean.d.ts.map +1 -1
  233. package/dist/components/form/fields/boolean/Boolean.js +9 -1
  234. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  235. package/dist/components/form/fields/color/Color.d.ts +103 -16
  236. package/dist/components/form/fields/color/Color.d.ts.map +1 -1
  237. package/dist/components/form/fields/color/Color.js +616 -16
  238. package/dist/components/form/fields/color/Color.js.map +1 -1
  239. package/dist/components/form/fields/emittedValues.d.ts +34 -3
  240. package/dist/components/form/fields/emittedValues.d.ts.map +1 -1
  241. package/dist/components/form/fields/emittedValues.js +24 -1
  242. package/dist/components/form/fields/emittedValues.js.map +1 -1
  243. package/dist/components/form/fields/file/File.d.ts +1 -1
  244. package/dist/components/form/fields/file/File.d.ts.map +1 -1
  245. package/dist/components/form/fields/file/File.js +4 -2
  246. package/dist/components/form/fields/file/File.js.map +1 -1
  247. package/dist/components/form/fields/long-string/LongString.d.ts.map +1 -1
  248. package/dist/components/form/fields/long-string/LongString.js +29 -8
  249. package/dist/components/form/fields/long-string/LongString.js.map +1 -1
  250. package/dist/components/form/fields/markdown/MarkdownView.js +1 -1
  251. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  252. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +13 -9
  253. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  254. package/dist/components/form/fields/number/Number.d.ts +6 -0
  255. package/dist/components/form/fields/number/Number.d.ts.map +1 -1
  256. package/dist/components/form/fields/number/Number.js +41 -6
  257. package/dist/components/form/fields/number/Number.js.map +1 -1
  258. package/dist/components/form/fields/object/Object.d.ts +1 -1
  259. package/dist/components/form/fields/object/Object.d.ts.map +1 -1
  260. package/dist/components/form/fields/object/Object.js +4 -2
  261. package/dist/components/form/fields/object/Object.js.map +1 -1
  262. package/dist/components/form/fields/pendingEdit.d.ts +52 -0
  263. package/dist/components/form/fields/pendingEdit.d.ts.map +1 -0
  264. package/dist/components/form/fields/pendingEdit.js +79 -0
  265. package/dist/components/form/fields/pendingEdit.js.map +1 -0
  266. package/dist/components/form/fields/radio-group/RadioGroup.d.ts.map +1 -1
  267. package/dist/components/form/fields/radio-group/RadioGroup.js +4 -3
  268. package/dist/components/form/fields/radio-group/RadioGroup.js.map +1 -1
  269. package/dist/components/form/fields/rich-text/RichText.d.ts +8 -1
  270. package/dist/components/form/fields/rich-text/RichText.d.ts.map +1 -1
  271. package/dist/components/form/fields/rich-text/RichText.js +211 -85
  272. package/dist/components/form/fields/rich-text/RichText.js.map +1 -1
  273. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts +18 -0
  274. package/dist/components/form/fields/rich-text/useTemplateTags.d.ts.map +1 -0
  275. package/dist/components/form/fields/rich-text/useTemplateTags.js +77 -0
  276. package/dist/components/form/fields/rich-text/useTemplateTags.js.map +1 -0
  277. package/dist/components/form/fields/schema-definition/CatalogLeafForm.d.ts.map +1 -1
  278. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js +4 -1
  279. package/dist/components/form/fields/schema-definition/CatalogLeafForm.js.map +1 -1
  280. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.d.ts.map +1 -1
  281. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js +20 -5
  282. package/dist/components/form/fields/schema-definition/CatalogNodeEditor.js.map +1 -1
  283. package/dist/components/form/fields/schema-definition/TableEditor.d.ts.map +1 -1
  284. package/dist/components/form/fields/schema-definition/TableEditor.js +10 -2
  285. package/dist/components/form/fields/schema-definition/TableEditor.js.map +1 -1
  286. package/dist/components/form/fields/schema-definition/index.d.ts.map +1 -1
  287. package/dist/components/form/fields/schema-definition/index.js +8 -4
  288. package/dist/components/form/fields/schema-definition/index.js.map +1 -1
  289. package/dist/components/form/fields/select/Select.d.ts +10 -1
  290. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  291. package/dist/components/form/fields/select/Select.js +28 -14
  292. package/dist/components/form/fields/select/Select.js.map +1 -1
  293. package/dist/components/form/fields/select/SelectCollection.d.ts +5 -0
  294. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  295. package/dist/components/form/fields/select/SelectCollection.js +25 -12
  296. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  297. package/dist/components/form/fields/select/unavailableRow.d.ts +23 -0
  298. package/dist/components/form/fields/select/unavailableRow.d.ts.map +1 -0
  299. package/dist/components/form/fields/select/unavailableRow.js +55 -0
  300. package/dist/components/form/fields/select/unavailableRow.js.map +1 -0
  301. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts +11 -5
  302. package/dist/components/form/fields/template/ReadOnlyTemplateTag.d.ts.map +1 -1
  303. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js +21 -5
  304. package/dist/components/form/fields/template/ReadOnlyTemplateTag.js.map +1 -1
  305. package/dist/components/form/fields/template/TemplateBrowser.d.ts +22 -0
  306. package/dist/components/form/fields/template/TemplateBrowser.d.ts.map +1 -0
  307. package/dist/components/form/fields/template/TemplateBrowser.js +54 -0
  308. package/dist/components/form/fields/template/TemplateBrowser.js.map +1 -0
  309. package/dist/components/form/fields/template/TemplateField.d.ts +103 -1
  310. package/dist/components/form/fields/template/TemplateField.d.ts.map +1 -1
  311. package/dist/components/form/fields/template/TemplateField.js +652 -104
  312. package/dist/components/form/fields/template/TemplateField.js.map +1 -1
  313. package/dist/components/form/fields/template/TemplateText.d.ts +0 -17
  314. package/dist/components/form/fields/template/TemplateText.d.ts.map +1 -1
  315. package/dist/components/form/fields/template/TemplateText.js +22 -16
  316. package/dist/components/form/fields/template/TemplateText.js.map +1 -1
  317. package/dist/components/form/fields/template/referenceNames.d.ts +63 -0
  318. package/dist/components/form/fields/template/referenceNames.d.ts.map +1 -0
  319. package/dist/components/form/fields/template/referenceNames.js +69 -0
  320. package/dist/components/form/fields/template/referenceNames.js.map +1 -0
  321. package/dist/components/form/fields/template/writtenAsText.d.ts +61 -0
  322. package/dist/components/form/fields/template/writtenAsText.d.ts.map +1 -0
  323. package/dist/components/form/fields/template/writtenAsText.js +204 -0
  324. package/dist/components/form/fields/template/writtenAsText.js.map +1 -0
  325. package/dist/components/form/index.d.ts +11 -0
  326. package/dist/components/form/index.d.ts.map +1 -1
  327. package/dist/components/form/index.js +24 -1
  328. package/dist/components/form/index.js.map +1 -1
  329. package/dist/components/form/typeSentenceForm.d.ts +11 -0
  330. package/dist/components/form/typeSentenceForm.d.ts.map +1 -0
  331. package/dist/components/form/typeSentenceForm.js +40 -0
  332. package/dist/components/form/typeSentenceForm.js.map +1 -0
  333. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -1
  334. package/dist/components/imageLightbox/ImageLightbox.js +19 -7
  335. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -1
  336. package/dist/components/log/Log.d.ts.map +1 -1
  337. package/dist/components/log/Log.js +16 -8
  338. package/dist/components/log/Log.js.map +1 -1
  339. package/dist/components/menu/Menu.d.ts.map +1 -1
  340. package/dist/components/menu/Menu.js +19 -10
  341. package/dist/components/menu/Menu.js.map +1 -1
  342. package/dist/components/smartEditor/CompletionMenu.d.ts +45 -0
  343. package/dist/components/smartEditor/CompletionMenu.d.ts.map +1 -0
  344. package/dist/components/smartEditor/CompletionMenu.js +207 -0
  345. package/dist/components/smartEditor/CompletionMenu.js.map +1 -0
  346. package/dist/components/smartEditor/MarkdownDoc.d.ts +1 -1
  347. package/dist/components/smartEditor/MarkdownDoc.js +3 -3
  348. package/dist/components/smartEditor/MarkdownDoc.js.map +1 -1
  349. package/dist/components/smartEditor/SmartEditor.d.ts.map +1 -1
  350. package/dist/components/smartEditor/SmartEditor.js +366 -187
  351. package/dist/components/smartEditor/SmartEditor.js.map +1 -1
  352. package/dist/components/smartEditor/completionStyle.d.ts +27 -0
  353. package/dist/components/smartEditor/completionStyle.d.ts.map +1 -0
  354. package/dist/components/smartEditor/completionStyle.js +68 -0
  355. package/dist/components/smartEditor/completionStyle.js.map +1 -0
  356. package/dist/components/smartEditor/index.d.ts +5 -1
  357. package/dist/components/smartEditor/index.d.ts.map +1 -1
  358. package/dist/components/smartEditor/index.js +19 -1
  359. package/dist/components/smartEditor/index.js.map +1 -1
  360. package/dist/components/smartEditor/templateCompletions.d.ts +38 -0
  361. package/dist/components/smartEditor/templateCompletions.d.ts.map +1 -0
  362. package/dist/components/smartEditor/templateCompletions.js +126 -0
  363. package/dist/components/smartEditor/templateCompletions.js.map +1 -0
  364. package/dist/components/smartEditor/typedReferences.d.ts +21 -0
  365. package/dist/components/smartEditor/typedReferences.d.ts.map +1 -0
  366. package/dist/components/smartEditor/typedReferences.js +82 -0
  367. package/dist/components/smartEditor/typedReferences.js.map +1 -0
  368. package/dist/components/smartEditor/types.d.ts +66 -2
  369. package/dist/components/smartEditor/types.d.ts.map +1 -1
  370. package/dist/components/smartEditor/useLspAutocomplete.d.ts +62 -2
  371. package/dist/components/smartEditor/useLspAutocomplete.d.ts.map +1 -1
  372. package/dist/components/smartEditor/useLspAutocomplete.js +345 -146
  373. package/dist/components/smartEditor/useLspAutocomplete.js.map +1 -1
  374. package/dist/components/smartEditor/useLspHover.d.ts +33 -7
  375. package/dist/components/smartEditor/useLspHover.d.ts.map +1 -1
  376. package/dist/components/smartEditor/useLspHover.js +351 -35
  377. package/dist/components/smartEditor/useLspHover.js.map +1 -1
  378. package/dist/components/smartEditor/useLspSemanticTokens.js +1 -1
  379. package/dist/components/smartEditor/useLspSemanticTokens.js.map +1 -1
  380. package/dist/components/smartEditor/useLspSession.d.ts +6 -0
  381. package/dist/components/smartEditor/useLspSession.d.ts.map +1 -1
  382. package/dist/components/smartEditor/useLspSession.js +7 -6
  383. package/dist/components/smartEditor/useLspSession.js.map +1 -1
  384. package/dist/components/smartEditor/useLspSignatureHelp.d.ts.map +1 -1
  385. package/dist/components/smartEditor/useLspSignatureHelp.js +6 -11
  386. package/dist/components/smartEditor/useLspSignatureHelp.js.map +1 -1
  387. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -1
  388. package/dist/components/supportTicket/AttachmentChips.js +15 -5
  389. package/dist/components/supportTicket/AttachmentChips.js.map +1 -1
  390. package/dist/components/supportTicket/ReferencePicker.d.ts +9 -2
  391. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -1
  392. package/dist/components/supportTicket/ReferencePicker.js +27 -6
  393. package/dist/components/supportTicket/ReferencePicker.js.map +1 -1
  394. package/dist/components/supportTicket/TicketHeader.d.ts +3 -4
  395. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -1
  396. package/dist/components/supportTicket/TicketHeader.js +20 -2
  397. package/dist/components/supportTicket/TicketHeader.js.map +1 -1
  398. package/dist/components/supportTicket/TicketMetaTags.d.ts +1 -1
  399. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -1
  400. package/dist/components/ticketReferences/TicketReferences.js +9 -4
  401. package/dist/components/ticketReferences/TicketReferences.js.map +1 -1
  402. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -1
  403. package/dist/components/ticketThread/TicketThread.js +38 -13
  404. package/dist/components/ticketThread/TicketThread.js.map +1 -1
  405. package/dist/helpers/allowedValues.d.ts +21 -0
  406. package/dist/helpers/allowedValues.d.ts.map +1 -1
  407. package/dist/helpers/allowedValues.js +40 -1
  408. package/dist/helpers/allowedValues.js.map +1 -1
  409. package/dist/helpers/descriptionTooltip.d.ts +46 -0
  410. package/dist/helpers/descriptionTooltip.d.ts.map +1 -0
  411. package/dist/helpers/descriptionTooltip.js +76 -0
  412. package/dist/helpers/descriptionTooltip.js.map +1 -0
  413. package/dist/helpers/domProps.d.ts +5 -0
  414. package/dist/helpers/domProps.d.ts.map +1 -0
  415. package/dist/helpers/domProps.js +47 -0
  416. package/dist/helpers/domProps.js.map +1 -0
  417. package/dist/helpers/expressions.d.ts +107 -2
  418. package/dist/helpers/expressions.d.ts.map +1 -1
  419. package/dist/helpers/expressions.js +223 -8
  420. package/dist/helpers/expressions.js.map +1 -1
  421. package/dist/helpers/hoveringPointer.d.ts +26 -0
  422. package/dist/helpers/hoveringPointer.d.ts.map +1 -0
  423. package/dist/helpers/hoveringPointer.js +29 -0
  424. package/dist/helpers/hoveringPointer.js.map +1 -0
  425. package/dist/helpers/markdownText.d.ts +14 -0
  426. package/dist/helpers/markdownText.d.ts.map +1 -0
  427. package/dist/helpers/markdownText.js +160 -0
  428. package/dist/helpers/markdownText.js.map +1 -0
  429. package/dist/helpers/noDescription.d.ts +9 -0
  430. package/dist/helpers/noDescription.d.ts.map +1 -0
  431. package/dist/helpers/noDescription.js +13 -0
  432. package/dist/helpers/noDescription.js.map +1 -0
  433. package/dist/helpers/optionUiTypes.d.ts +2 -2
  434. package/dist/helpers/qorusTypeCatalogue.d.ts +85 -0
  435. package/dist/helpers/qorusTypeCatalogue.d.ts.map +1 -0
  436. package/dist/helpers/qorusTypeCatalogue.js +301 -0
  437. package/dist/helpers/qorusTypeCatalogue.js.map +1 -0
  438. package/dist/helpers/readableColors.d.ts +36 -0
  439. package/dist/helpers/readableColors.d.ts.map +1 -0
  440. package/dist/helpers/readableColors.js +116 -0
  441. package/dist/helpers/readableColors.js.map +1 -0
  442. package/dist/helpers/recordFieldReference.d.ts +15 -0
  443. package/dist/helpers/recordFieldReference.d.ts.map +1 -0
  444. package/dist/helpers/recordFieldReference.js +89 -0
  445. package/dist/helpers/recordFieldReference.js.map +1 -0
  446. package/dist/helpers/templateItems.d.ts +2 -2
  447. package/dist/helpers/templateItems.d.ts.map +1 -1
  448. package/dist/helpers/templateItems.js +6 -4
  449. package/dist/helpers/templateItems.js.map +1 -1
  450. package/dist/helpers/templateText.d.ts +1 -0
  451. package/dist/helpers/templateText.d.ts.map +1 -1
  452. package/dist/helpers/templateText.js +7 -3
  453. package/dist/helpers/templateText.js.map +1 -1
  454. package/dist/helpers/templates.d.ts +68 -14
  455. package/dist/helpers/templates.d.ts.map +1 -1
  456. package/dist/helpers/templates.js +210 -24
  457. package/dist/helpers/templates.js.map +1 -1
  458. package/dist/helpers/validations.d.ts +28 -1
  459. package/dist/helpers/validations.d.ts.map +1 -1
  460. package/dist/helpers/validations.js +166 -37
  461. package/dist/helpers/validations.js.map +1 -1
  462. package/dist/helpers/webLink.d.ts +8 -0
  463. package/dist/helpers/webLink.d.ts.map +1 -0
  464. package/dist/helpers/webLink.js +29 -0
  465. package/dist/helpers/webLink.js.map +1 -0
  466. package/dist/hooks/useQorusTypes.d.ts +7 -15
  467. package/dist/hooks/useQorusTypes.d.ts.map +1 -1
  468. package/dist/hooks/useQorusTypes.js +25 -166
  469. package/dist/hooks/useQorusTypes.js.map +1 -1
  470. package/dist/hooks/useReadableIntentShade.d.ts +9 -0
  471. package/dist/hooks/useReadableIntentShade.d.ts.map +1 -0
  472. package/dist/hooks/useReadableIntentShade.js +23 -0
  473. package/dist/hooks/useReadableIntentShade.js.map +1 -0
  474. package/dist/hooks/useReadableOpacity.d.ts +6 -0
  475. package/dist/hooks/useReadableOpacity.d.ts.map +1 -0
  476. package/dist/hooks/useReadableOpacity.js +17 -0
  477. package/dist/hooks/useReadableOpacity.js.map +1 -0
  478. package/dist/index.d.ts +1 -0
  479. package/dist/index.d.ts.map +1 -1
  480. package/dist/index.js +1 -0
  481. package/dist/index.js.map +1 -1
  482. package/dist/tracking/ui/ExperimentCard.d.ts +1 -1
  483. package/dist/tracking/ui/ExperimentCard.d.ts.map +1 -1
  484. package/dist/tracking/ui/ExperimentCard.js +26 -10
  485. package/dist/tracking/ui/ExperimentCard.js.map +1 -1
  486. package/dist/tracking/ui/card.d.ts +2 -2
  487. package/dist/tracking/ui/card.d.ts.map +1 -1
  488. package/dist/tracking/ui/card.js +2 -2
  489. package/dist/tracking/ui/card.js.map +1 -1
  490. package/dist/tracking/ui/readable.d.ts +14 -0
  491. package/dist/tracking/ui/readable.d.ts.map +1 -0
  492. package/dist/tracking/ui/readable.js +60 -0
  493. package/dist/tracking/ui/readable.js.map +1 -0
  494. package/dist/utils/fetch.d.ts +9 -2
  495. package/dist/utils/fetch.d.ts.map +1 -1
  496. package/dist/utils/fetch.js +6 -5
  497. package/dist/utils/fetch.js.map +1 -1
  498. package/dist/utils/websocket.d.ts +65 -2
  499. package/dist/utils/websocket.d.ts.map +1 -1
  500. package/dist/utils/websocket.js +276 -44
  501. package/dist/utils/websocket.js.map +1 -1
  502. package/package.json +14 -5
  503. package/.claude/CLAUDE.md +0 -317
  504. package/.tasks/EXPORT_EXPRESSION_BUILDER.md +0 -38
  505. package/.tasks/EXPRESSION_BUILDER_REPORT.md +0 -149
  506. package/.tasks/EXPRESSION_FIELD_SEAMS.md +0 -66
  507. package/.tasks/FIELD_STACK_REPORT.md +0 -234
  508. package/.tasks/FORM_ENGINE_COMPACT_READ_FIRST.md +0 -558
  509. package/.tasks/FORM_ENGINE_EXPRESSIONS.md +0 -197
  510. package/.tasks/FORM_ENGINE_OPTIONS_SYNC.md +0 -95
  511. package/.tasks/FORM_FIELD_EXTRAS.md +0 -72
  512. package/.tasks/INDEX.md +0 -111
  513. package/.tasks/LSP_SHARED_CONNECTION.md +0 -75
  514. package/.tasks/QONSOLE_ASSIST_FEATURES.md +0 -306
  515. package/.tasks/RENDER_EXPRESSION_LSP.md +0 -159
  516. package/.tasks/REQRAFT_AUTO_FIELD.md +0 -176
  517. package/.tasks/SCHEMA_DEFINITION_FIELD.md +0 -250
  518. package/.tasks/SMART_EDITOR_CONTEXT_AND_POLISH.md +0 -340
  519. package/.tasks/SMART_EDITOR_LSP_FEATURES.md +0 -299
  520. package/.tasks/SMART_EDITOR_REVIEW_FOLLOWUPS.md +0 -280
  521. package/.tasks/SMART_EDITOR_UX_POLISH.md +0 -383
  522. package/.tasks/SMART_EDITOR_VISUAL_POLISH.md +0 -246
  523. package/.tasks/STORY_NETWORK_ISOLATION.md +0 -98
  524. package/.tasks/TEMPLATE_TOKEN_GRAMMAR.md +0 -72
  525. package/CODE_OF_CONDUCT.md +0 -105
  526. package/CONTRIBUTING.MD +0 -78
  527. package/SECURITY.md +0 -3
  528. package/chromatic.config.json +0 -5
  529. package/design/COMPACT_ENGINE_REDESIGN.md +0 -156
  530. package/design/COMPACT_INFO_DISPLAY.md +0 -87
  531. package/design/COMPACT_PARITY.md +0 -85
  532. package/design/EXPRESSION_BUILDER_REPORT_STRATEGY.md +0 -92
  533. package/design/FORM_ENGINE_COMPACT.md +0 -300
  534. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +0 -353
  535. package/design/FORM_ENGINE_EXPRESSIONS.md +0 -257
  536. package/design/FORM_ENGINE_FIELD_MIGRATION.md +0 -419
  537. package/design/IDE_INTEGRATION.md +0 -64
  538. package/design/RENDER_EXPRESSION_TRANSPORT.md +0 -156
  539. package/design/SELECT_DIALOG_FLOOR.md +0 -86
  540. package/design/SMART_EDITOR_UX.md +0 -438
  541. package/design/TRACKING.md +0 -290
  542. package/design/UNAVAILABLE_ALLOWED_VALUES.md +0 -226
  543. package/src/components/Description/index.tsx +0 -254
  544. package/src/components/Description/markdownRendererContext.tsx +0 -29
  545. package/src/components/FocusedEditing/index.tsx +0 -50
  546. package/src/components/codeSize/index.tsx +0 -79
  547. package/src/components/composer/Composer.stories.tsx +0 -238
  548. package/src/components/composer/Composer.tsx +0 -554
  549. package/src/components/composer/helpers.ts +0 -74
  550. package/src/components/composer/index.ts +0 -2
  551. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +0 -1183
  552. package/src/components/dpqlEditor/DpqlEditor.tsx +0 -219
  553. package/src/components/dpqlEditor/dpqlHelpers.ts +0 -287
  554. package/src/components/dpqlEditor/dpqlInserter.ts +0 -121
  555. package/src/components/dpqlEditor/dpqlProbe.ts +0 -165
  556. package/src/components/dpqlEditor/dpqlTags.ts +0 -114
  557. package/src/components/dpqlEditor/index.ts +0 -41
  558. package/src/components/dpqlEditor/types.ts +0 -203
  559. package/src/components/dpqlEditor/useDpqlProbe.ts +0 -33
  560. package/src/components/dpqlEditor/useDpqlSession.ts +0 -411
  561. package/src/components/form/engine/CompactRow.tsx +0 -2620
  562. package/src/components/form/engine/CompactToolbar.tsx +0 -330
  563. package/src/components/form/engine/FormEngine.stories.tsx +0 -9920
  564. package/src/components/form/engine/FormEngine.tsx +0 -4569
  565. package/src/components/form/engine/FormEngineRemote.stories.tsx +0 -679
  566. package/src/components/form/engine/FormEngineStickyHeaders.stories.tsx +0 -331
  567. package/src/components/form/engine/FormFieldsSkeleton.tsx +0 -82
  568. package/src/components/form/engine/OptionFieldMessages.tsx +0 -477
  569. package/src/components/form/engine/OptionsHelpDialog.tsx +0 -29
  570. package/src/components/form/engine/__fixtures__/basicFormOptions.ts +0 -309
  571. package/src/components/form/engine/__fixtures__/fieldChromeOptions.ts +0 -45
  572. package/src/components/form/engine/_structuredData/SchemaDataView.stories.tsx +0 -233
  573. package/src/components/form/engine/_structuredData/SchemaDataView.tsx +0 -742
  574. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +0 -85
  575. package/src/components/form/engine/_structuredData/StructuredDataView.tsx +0 -75
  576. package/src/components/form/engine/_structuredData/structuredData.ts +0 -145
  577. package/src/components/form/engine/compactRowContext.ts +0 -148
  578. package/src/components/form/engine/compactRowStyles.ts +0 -898
  579. package/src/components/form/engine/compactToolbarContext.ts +0 -69
  580. package/src/components/form/engine/optionActions.ts +0 -128
  581. package/src/components/form/engine/optionsContext.ts +0 -24
  582. package/src/components/form/engine/readFirst.ts +0 -1077
  583. package/src/components/form/engine/rendererTypes.ts +0 -107
  584. package/src/components/form/engine/revealRow.ts +0 -123
  585. package/src/components/form/engine/rowFocus.ts +0 -101
  586. package/src/components/form/engine/rowMenuContext.ts +0 -159
  587. package/src/components/form/engine/rowOpenPicker.ts +0 -27
  588. package/src/components/form/engine/typeChoices.ts +0 -63
  589. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +0 -159
  590. package/src/components/form/engine/variants/VariantCalmTable.tsx +0 -244
  591. package/src/components/form/engine/variants/VariantCards.tsx +0 -212
  592. package/src/components/form/engine/variants/VariantFocus.tsx +0 -382
  593. package/src/components/form/engine/variants/VariantMinimal.tsx +0 -170
  594. package/src/components/form/engine/variants/focusDemo.ts +0 -145
  595. package/src/components/form/engine/variants/variantModel.ts +0 -223
  596. package/src/components/form/engine/variants/variantParts.tsx +0 -313
  597. package/src/components/form/expressions/DpqlRendering.tsx +0 -85
  598. package/src/components/form/expressions/ExpressionField.stories.tsx +0 -1395
  599. package/src/components/form/expressions/ExpressionField.tsx +0 -503
  600. package/src/components/form/expressions/argumentPresence.ts +0 -213
  601. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +0 -1683
  602. package/src/components/form/expressions/builder/argumentDetail.tsx +0 -17
  603. package/src/components/form/expressions/builder/argumentLabel.tsx +0 -146
  604. package/src/components/form/expressions/builder/argumentSlot.tsx +0 -101
  605. package/src/components/form/expressions/builder/argumentWrapper.tsx +0 -243
  606. package/src/components/form/expressions/builder/confirmMismatchedTypesModal.tsx +0 -120
  607. package/src/components/form/expressions/builder/confirmUnsupportedTypeModal.tsx +0 -69
  608. package/src/components/form/expressions/builder/index.tsx +0 -1545
  609. package/src/components/form/expressions/builder/item.tsx +0 -89
  610. package/src/components/form/expressions/builder/moveToPositionStrip.tsx +0 -156
  611. package/src/components/form/expressions/builder/renderTemplate.tsx +0 -42
  612. package/src/components/form/expressions/dpqlMockLanguage.ts +0 -566
  613. package/src/components/form/expressions/dpqlMockLsp.ts +0 -126
  614. package/src/components/form/expressions/mockExpressions.ts +0 -317
  615. package/src/components/form/expressions/renderExpressionToText.ts +0 -137
  616. package/src/components/form/expressions/types.ts +0 -110
  617. package/src/components/form/expressions/useExpressions.ts +0 -101
  618. package/src/components/form/expressions/useRenderExpression.ts +0 -165
  619. package/src/components/form/fields/Field.stories.tsx +0 -143
  620. package/src/components/form/fields/Field.tsx +0 -732
  621. package/src/components/form/fields/allowed-values/AllowedValues.tsx +0 -297
  622. package/src/components/form/fields/array/ArrayAuto.tsx +0 -237
  623. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +0 -475
  624. package/src/components/form/fields/array/ArrayAutoField.tsx +0 -367
  625. package/src/components/form/fields/auto/AutoFormField.stories.tsx +0 -825
  626. package/src/components/form/fields/auto/AutoFormField.tsx +0 -1164
  627. package/src/components/form/fields/binary/Binary.stories.tsx +0 -122
  628. package/src/components/form/fields/binary/Binary.tsx +0 -91
  629. package/src/components/form/fields/boolean/Boolean.stories.tsx +0 -125
  630. package/src/components/form/fields/boolean/Boolean.tsx +0 -34
  631. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +0 -87
  632. package/src/components/form/fields/byte-size/ByteSize.tsx +0 -58
  633. package/src/components/form/fields/color/Color.stories.tsx +0 -99
  634. package/src/components/form/fields/color/Color.tsx +0 -46
  635. package/src/components/form/fields/cron/Cron.stories.tsx +0 -68
  636. package/src/components/form/fields/cron/Cron.tsx +0 -80
  637. package/src/components/form/fields/date/Date.stories.tsx +0 -77
  638. package/src/components/form/fields/date/Date.tsx +0 -55
  639. package/src/components/form/fields/emittedValues.ts +0 -70
  640. package/src/components/form/fields/file/File.stories.tsx +0 -161
  641. package/src/components/form/fields/file/File.tsx +0 -227
  642. package/src/components/form/fields/long-string/LongString.stories.tsx +0 -120
  643. package/src/components/form/fields/long-string/LongString.tsx +0 -130
  644. package/src/components/form/fields/markdown/Markdown.stories.tsx +0 -76
  645. package/src/components/form/fields/markdown/Markdown.tsx +0 -81
  646. package/src/components/form/fields/markdown/MarkdownView.tsx +0 -222
  647. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +0 -139
  648. package/src/components/form/fields/number/Number.stories.tsx +0 -159
  649. package/src/components/form/fields/number/Number.tsx +0 -160
  650. package/src/components/form/fields/object/Object.stories.tsx +0 -398
  651. package/src/components/form/fields/object/Object.tsx +0 -255
  652. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +0 -95
  653. package/src/components/form/fields/radio-group/RadioGroup.tsx +0 -46
  654. package/src/components/form/fields/radio-group/images/java-96x128.png +0 -0
  655. package/src/components/form/fields/radio-group/images/python-129x128.png +0 -0
  656. package/src/components/form/fields/radio-group/images/qore-106x128.png +0 -0
  657. package/src/components/form/fields/rich-text/RichText.stories.tsx +0 -260
  658. package/src/components/form/fields/rich-text/RichText.tsx +0 -537
  659. package/src/components/form/fields/schema-definition/CatalogLeafForm.tsx +0 -242
  660. package/src/components/form/fields/schema-definition/CatalogNodeEditor.tsx +0 -758
  661. package/src/components/form/fields/schema-definition/Hint.tsx +0 -22
  662. package/src/components/form/fields/schema-definition/InlineValidationBanner.tsx +0 -138
  663. package/src/components/form/fields/schema-definition/Loader.tsx +0 -20
  664. package/src/components/form/fields/schema-definition/MigrationsTab.tsx +0 -187
  665. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +0 -286
  666. package/src/components/form/fields/schema-definition/TableEditor.tsx +0 -155
  667. package/src/components/form/fields/schema-definition/TablesTab.tsx +0 -138
  668. package/src/components/form/fields/schema-definition/catalog.ts +0 -237
  669. package/src/components/form/fields/schema-definition/helpers.ts +0 -90
  670. package/src/components/form/fields/schema-definition/index.tsx +0 -418
  671. package/src/components/form/fields/schema-definition/mockCatalog.ts +0 -325
  672. package/src/components/form/fields/schema-definition/mockDefinition.ts +0 -111
  673. package/src/components/form/fields/schema-definition/referenceSuggestions.tsx +0 -152
  674. package/src/components/form/fields/schema-definition/starterTemplate.ts +0 -68
  675. package/src/components/form/fields/schema-definition/types.ts +0 -185
  676. package/src/components/form/fields/schema-definition/useSchemaOptionCatalog.ts +0 -49
  677. package/src/components/form/fields/select/Select.stories.tsx +0 -872
  678. package/src/components/form/fields/select/Select.tsx +0 -624
  679. package/src/components/form/fields/select/SelectCollection.tsx +0 -594
  680. package/src/components/form/fields/string/String.stories.tsx +0 -86
  681. package/src/components/form/fields/string/String.tsx +0 -43
  682. package/src/components/form/fields/template/ExampleValueModal.stories.tsx +0 -114
  683. package/src/components/form/fields/template/ExampleValueModal.tsx +0 -99
  684. package/src/components/form/fields/template/ReadOnlyTemplateTag.tsx +0 -47
  685. package/src/components/form/fields/template/TemplateField.stories.tsx +0 -1121
  686. package/src/components/form/fields/template/TemplateField.tsx +0 -1717
  687. package/src/components/form/fields/template/TemplateText.tsx +0 -115
  688. package/src/components/form/fields/template/__fixtures__/longExampleValue.ts +0 -7
  689. package/src/components/form/fields/template/__fixtures__/multiLevelTemplates.json +0 -147
  690. package/src/components/form/fields/template/__fixtures__/templates.json +0 -83
  691. package/src/components/form/fields/timeout/Timeout.stories.tsx +0 -228
  692. package/src/components/form/fields/timeout/Timeout.tsx +0 -87
  693. package/src/components/form/fields/url/Url.stories.tsx +0 -94
  694. package/src/components/form/fields/url/Url.tsx +0 -85
  695. package/src/components/form/index.tsx +0 -47
  696. package/src/components/imageLightbox/ImageLightbox.stories.tsx +0 -238
  697. package/src/components/imageLightbox/ImageLightbox.tsx +0 -236
  698. package/src/components/imageLightbox/index.ts +0 -1
  699. package/src/components/log/Log.stories.tsx +0 -333
  700. package/src/components/log/Log.tsx +0 -285
  701. package/src/components/menu/Menu.stories.tsx +0 -155
  702. package/src/components/menu/Menu.tsx +0 -312
  703. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +0 -797
  704. package/src/components/qonsoleSmartInput/QonsoleSmartInput.tsx +0 -105
  705. package/src/components/qonsoleSmartInput/index.ts +0 -16
  706. package/src/components/qonsoleSmartInput/qonsoleInserter.ts +0 -77
  707. package/src/components/qonsoleSmartInput/types.ts +0 -133
  708. package/src/components/qonsoleSmartInput/useQonsoleSession.ts +0 -124
  709. package/src/components/searchFilterBar/SearchFilterBar.stories.tsx +0 -62
  710. package/src/components/searchFilterBar/SearchFilterBar.tsx +0 -144
  711. package/src/components/searchFilterBar/index.ts +0 -1
  712. package/src/components/smartEditor/MarkdownDoc.tsx +0 -190
  713. package/src/components/smartEditor/SmartEditor.stories.tsx +0 -475
  714. package/src/components/smartEditor/SmartEditor.tsx +0 -808
  715. package/src/components/smartEditor/__fixtures__/mockLspServer.ts +0 -205
  716. package/src/components/smartEditor/helpers.ts +0 -217
  717. package/src/components/smartEditor/index.ts +0 -35
  718. package/src/components/smartEditor/styling.ts +0 -45
  719. package/src/components/smartEditor/types.ts +0 -211
  720. package/src/components/smartEditor/useLspAutocomplete.ts +0 -758
  721. package/src/components/smartEditor/useLspDiagnosticDecorations.ts +0 -125
  722. package/src/components/smartEditor/useLspHover.ts +0 -230
  723. package/src/components/smartEditor/useLspSemanticTokens.ts +0 -298
  724. package/src/components/smartEditor/useLspSession.ts +0 -231
  725. package/src/components/smartEditor/useLspSignatureHelp.ts +0 -198
  726. package/src/components/supportTicket/AttachmentChips.stories.tsx +0 -171
  727. package/src/components/supportTicket/AttachmentChips.tsx +0 -147
  728. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +0 -257
  729. package/src/components/supportTicket/InterfaceReferenceTags.tsx +0 -129
  730. package/src/components/supportTicket/ReferencePicker.stories.tsx +0 -584
  731. package/src/components/supportTicket/ReferencePicker.tsx +0 -563
  732. package/src/components/supportTicket/TicketConversation.stories.tsx +0 -121
  733. package/src/components/supportTicket/TicketHeader.stories.tsx +0 -183
  734. package/src/components/supportTicket/TicketHeader.tsx +0 -247
  735. package/src/components/supportTicket/TicketMetaTags.stories.tsx +0 -103
  736. package/src/components/supportTicket/TicketMetaTags.tsx +0 -85
  737. package/src/components/supportTicket/TicketReplyBox.stories.tsx +0 -354
  738. package/src/components/supportTicket/TicketReplyBox.tsx +0 -150
  739. package/src/components/supportTicket/__fixtures__/kindMarks.ts +0 -28
  740. package/src/components/supportTicket/attachmentAccess.ts +0 -97
  741. package/src/components/supportTicket/fileToAttachment.ts +0 -24
  742. package/src/components/supportTicket/index.ts +0 -10
  743. package/src/components/supportTicket/meta.ts +0 -206
  744. package/src/components/supportTicket/ticketModel.ts +0 -131
  745. package/src/components/supportTicket/useLoadedImages.ts +0 -73
  746. package/src/components/ticketReferences/TicketReferences.stories.tsx +0 -315
  747. package/src/components/ticketReferences/TicketReferences.tsx +0 -906
  748. package/src/components/ticketReferences/index.ts +0 -2
  749. package/src/components/ticketThread/TicketThread.stories.tsx +0 -829
  750. package/src/components/ticketThread/TicketThread.tsx +0 -719
  751. package/src/components/ticketThread/index.ts +0 -6
  752. package/src/contexts/FetchContext.tsx +0 -25
  753. package/src/contexts/ReqraftContext.tsx +0 -9
  754. package/src/contexts/StorageContext.tsx +0 -33
  755. package/src/global.d.ts +0 -4
  756. package/src/helpers/allowedValues.ts +0 -249
  757. package/src/helpers/choiceChip.ts +0 -227
  758. package/src/helpers/common.ts +0 -326
  759. package/src/helpers/dpqlDetection.ts +0 -209
  760. package/src/helpers/expressions.ts +0 -140
  761. package/src/helpers/optionUiTypes.ts +0 -199
  762. package/src/helpers/options.ts +0 -150
  763. package/src/helpers/providerValue.ts +0 -125
  764. package/src/helpers/scrollbar.ts +0 -32
  765. package/src/helpers/singleLineString.ts +0 -61
  766. package/src/helpers/templateItems.ts +0 -81
  767. package/src/helpers/templateText.ts +0 -350
  768. package/src/helpers/templates.ts +0 -602
  769. package/src/helpers/validations.ts +0 -2085
  770. package/src/hooks/useArgSchema.ts +0 -37
  771. package/src/hooks/useCoarsePointer.ts +0 -30
  772. package/src/hooks/useFetch/useFetch.stories.tsx +0 -379
  773. package/src/hooks/useFetch/useFetch.tsx +0 -154
  774. package/src/hooks/usePhoneViewport.ts +0 -34
  775. package/src/hooks/useQorusTypes.ts +0 -233
  776. package/src/hooks/useReqraftProperty.ts +0 -16
  777. package/src/hooks/useStorage/useStorage.stories.tsx +0 -168
  778. package/src/hooks/useStorage/useStorage.ts +0 -35
  779. package/src/hooks/useTemplates.ts +0 -123
  780. package/src/hooks/useValidation.ts +0 -9
  781. package/src/hooks/useWebSocket/useWebSocket.ts +0 -224
  782. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +0 -640
  783. package/src/hooks/useWhyDidYouUpdate.ts +0 -38
  784. package/src/index.tsx +0 -86
  785. package/src/providers/FetchProvider.tsx +0 -40
  786. package/src/providers/ReqraftProvider.tsx +0 -52
  787. package/src/providers/StorageProvider.tsx +0 -131
  788. package/src/stores/currentUser/currentUser.stories.tsx +0 -100
  789. package/src/stores/currentUser/currentUser.tsx +0 -94
  790. package/src/stories/Data/fileFieldArgSchema.json +0 -86
  791. package/src/stories/Tests/utils.ts +0 -320
  792. package/src/stories/storyNetwork.ts +0 -92
  793. package/src/stories/tracking.tsx +0 -206
  794. package/src/tracking/browser/attach.ts +0 -186
  795. package/src/tracking/browser/env.ts +0 -78
  796. package/src/tracking/core/consent.ts +0 -37
  797. package/src/tracking/core/engagement.ts +0 -47
  798. package/src/tracking/core/experiments.ts +0 -258
  799. package/src/tracking/core/hash.ts +0 -26
  800. package/src/tracking/core/ids.ts +0 -25
  801. package/src/tracking/core/observable.ts +0 -23
  802. package/src/tracking/core/queue.ts +0 -131
  803. package/src/tracking/core/sections.ts +0 -166
  804. package/src/tracking/core/storage.ts +0 -69
  805. package/src/tracking/core/tracker.ts +0 -417
  806. package/src/tracking/core/types.ts +0 -162
  807. package/src/tracking/core/utm.ts +0 -23
  808. package/src/tracking/index.ts +0 -72
  809. package/src/tracking/markup.ts +0 -17
  810. package/src/tracking/react/Experiment.tsx +0 -44
  811. package/src/tracking/react/TrackingProvider.tsx +0 -56
  812. package/src/tracking/react/hooks.ts +0 -106
  813. package/src/tracking/react/index.ts +0 -13
  814. package/src/tracking/testing.ts +0 -108
  815. package/src/tracking/ui/ExperimentCard.stories.tsx +0 -296
  816. package/src/tracking/ui/ExperimentCard.tsx +0 -667
  817. package/src/tracking/ui/ExperimentsOverlay.stories.tsx +0 -155
  818. package/src/tracking/ui/ExperimentsOverlay.tsx +0 -437
  819. package/src/tracking/ui/anchor.ts +0 -180
  820. package/src/tracking/ui/card.ts +0 -464
  821. package/src/tracking/ui/client.ts +0 -117
  822. package/src/tracking/ui/index.ts +0 -77
  823. package/src/tracking/ui/types.ts +0 -110
  824. package/src/tracking/ui/useExperimentsAdmin.ts +0 -103
  825. package/src/types/Form.ts +0 -29
  826. package/src/types.ts +0 -14
  827. package/src/utils/datetime.ts +0 -10
  828. package/src/utils/fetch.ts +0 -457
  829. package/src/utils/lspClient.ts +0 -711
  830. package/src/utils/lspClient.types.ts +0 -211
  831. package/src/utils/queryUnlessCancelled.ts +0 -28
  832. package/src/utils/websocket.ts +0 -293
  833. package/vite.config.ts +0 -58
  834. package/vitest.config.ts +0 -69
@@ -107,6 +107,7 @@ var validations_1 = require("../../../helpers/validations");
107
107
  var templates_1 = require("../../../helpers/templates");
108
108
  var common_1 = require("../../../helpers/common");
109
109
  var templateText_1 = require("../../../helpers/templateText");
110
+ var pendingEdit_1 = require("../fields/pendingEdit");
110
111
  var ReadOnlyTemplateTag_1 = require("../fields/template/ReadOnlyTemplateTag");
111
112
  var TemplateText_1 = require("../fields/template/TemplateText");
112
113
  var codeSize_1 = require("../../codeSize");
@@ -114,6 +115,11 @@ var Description_1 = require("../../Description");
114
115
  var markdownRendererContext_1 = require("../../Description/markdownRendererContext");
115
116
  var FocusedEditing_1 = require("../../FocusedEditing");
116
117
  var compactRowContext_1 = require("./compactRowContext");
118
+ var useCoarsePointer_1 = require("../../../hooks/useCoarsePointer");
119
+ var qorusTypeCatalogue_1 = require("../../../helpers/qorusTypeCatalogue");
120
+ var typeSentenceForm_1 = require("../typeSentenceForm");
121
+ var inheritProps_1 = require("./inheritProps");
122
+ var noDescription_1 = require("../../../helpers/noDescription");
117
123
  var revealRow_1 = require("./revealRow");
118
124
  var compactRowStyles_1 = require("./compactRowStyles");
119
125
  var OptionFieldMessages_1 = require("./OptionFieldMessages");
@@ -121,9 +127,14 @@ var rowFocus_1 = require("./rowFocus");
121
127
  var rowOpenPicker_1 = require("./rowOpenPicker");
122
128
  var SchemaDataView_1 = require("./_structuredData/SchemaDataView");
123
129
  var queryUnlessCancelled_1 = require("../../../utils/queryUnlessCancelled");
130
+ var markdownText_1 = require("../../../helpers/markdownText");
124
131
  var readFirst_1 = require("./readFirst");
125
132
  var StructuredDataView_1 = require("./_structuredData/StructuredDataView");
126
133
  var DpqlRendering_1 = require("../expressions/DpqlRendering");
134
+ var argumentPresence_1 = require("../expressions/argumentPresence");
135
+ var colorValue_1 = require("../../colorValue");
136
+ var hoveringPointer_1 = require("../../../helpers/hoveringPointer");
137
+ var webLink_1 = require("../../../helpers/webLink");
127
138
  /**
128
139
  * Does this markdown value have more document in it than one row can show?
129
140
  *
@@ -209,6 +220,39 @@ var richtextItemText = function (item) {
209
220
  : undefined;
210
221
  };
211
222
  exports.richtextItemText = richtextItemText;
223
+ /**
224
+ * An editable row's plain text: wrapped, up to three lines (see `renderReadFirstValue`). Its newlines fold into
225
+ * the line, as the one-line summary folded them.
226
+ */
227
+ var SUMMARY_TEXT_STYLE = Object.freeze({
228
+ display: '-webkit-box',
229
+ WebkitBoxOrient: 'vertical',
230
+ WebkitLineClamp: 3,
231
+ overflow: 'hidden',
232
+ whiteSpace: 'normal',
233
+ overflowWrap: 'anywhere',
234
+ minWidth: 0,
235
+ });
236
+ /**
237
+ * A value that is a web address, as a link to it: it opens in a new tab, and a click or Enter on it follows it
238
+ * without opening the row it is in. Reached with Tab, it says where it goes and that it opens a new tab, and
239
+ * shows its focus ring (`.options-readfirst-link`); its address is copied as a link's is.
240
+ */
241
+ var WebLink = (0, react_1.memo)(function (_a) {
242
+ var address = _a.address, color = _a.color;
243
+ return ((0, jsx_runtime_1.jsx)("a", { className: 'options-readfirst-link', href: address, target: '_blank', rel: 'noopener noreferrer', "aria-label": "".concat(address, " (opens in a new tab)"), style: color ? { color: color } : undefined,
244
+ // the link's, not the row's: the row opens on a click and on Enter or Space
245
+ onClick: function (event) { return event.stopPropagation(); }, onKeyDown: function (event) {
246
+ if (event.key === 'Enter' || event.key === ' ') {
247
+ event.stopPropagation();
248
+ }
249
+ }, children: address }));
250
+ });
251
+ WebLink.displayName = 'WebLink';
252
+ /** The status boxes by name, as their headers say them. */
253
+ var BOX_NAMES = { attention: 'Needs attention', set: 'Set', optional: 'Optional' };
254
+ /** A read-only editor's change: there is none to take. */
255
+ var ignoreReadOnlyChange = function () { return undefined; };
212
256
  exports.CompactRow = (0, react_1.memo)(function (_a) {
213
257
  var _b;
214
258
  var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
@@ -225,14 +269,24 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
225
269
  absorbedName;
226
270
  };
227
271
  var codePreviewRenderer = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.codePreviewRenderer; });
272
+ var CodeEditor = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.codeEditor; });
273
+ var readSummaries = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.readSummaries; });
274
+ var cardEditorTypes = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.cardEditorTypes; });
228
275
  var markdownRenderer = (0, markdownRendererContext_1.useMarkdownRenderer)();
229
276
  var operators = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.operators; });
230
277
  var focusedEditing = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.focusedEditing; });
231
278
  var showFieldTypes = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.showFieldTypes; });
279
+ // a finger's target is `small`, a mouse's `tiny` (the help button)
280
+ var coarse = (0, useCoarsePointer_1.useCoarsePointer)();
281
+ // what kind of value the option takes, in the words the form's type catalogue names it
282
+ var typeName = (0, typeSentenceForm_1.useTypeName)();
283
+ var typeSentenceForm = (0, typeSentenceForm_1.useTypeSentenceForm)();
232
284
  var showAllDescriptions = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.showAllDescriptions; });
233
285
  var isExpanded = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) {
234
286
  return v.expandedOptions.includes(optionName);
235
287
  });
288
+ // the box this open field moves to when it is closed, when that is not the one it is shown in
289
+ var movesTo = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { var _a; return (_a = v.heldOptions) === null || _a === void 0 ? void 0 : _a[optionName]; });
236
290
  var isHighlighted = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) {
237
291
  return v.highlightedOptions.includes(optionName);
238
292
  });
@@ -278,7 +332,8 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
278
332
  var availableOptions = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.availableOptions; });
279
333
  var requiredGroupsInfo = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.requiredGroupsInfo; });
280
334
  var handleValueChange = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.handleValueChange; });
281
- var toggleExpandedOption = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.toggleExpandedOption; });
335
+ var expandOption = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.expandOption; });
336
+ var collapseOption = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.collapseOption; });
282
337
  var flashOption = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.flashOption; });
283
338
  var hasOptionChanged = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.hasOptionChanged; });
284
339
  var handleOptionLabelClick = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.handleOptionLabelClick; });
@@ -291,6 +346,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
291
346
  var renderOption = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.renderOption; });
292
347
  var theme = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.theme; });
293
348
  var cMuted = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.cMuted; });
349
+ var rowInks = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.rowInks; });
294
350
  var templates = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.templates; });
295
351
  var cKey = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.cKey; });
296
352
  var cDivider = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.cDivider; });
@@ -300,20 +356,25 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
300
356
  var cInfo = (0, use_context_selector_1.useContextSelector)(compactRowContext_1.CompactRowContext, function (v) { return v.cInfo; });
301
357
  // A markdown value renders as a document in the row's inset; the host's
302
358
  // renderer when it supplied one, reqraft's own otherwise.
303
- // Value-cell content: colour adds a swatch, file an icon + size; hash keeps
359
+ // Value-cell content: color adds a swatch, file an icon + size; hash keeps
304
360
  // its "N fields" summary (sub-fields reveal beneath the row).
305
361
  var renderReadFirstValue = function (field, schema, formatted,
306
- // An editable row gets one line and an ellipsis — its value line is a
307
- // summary you click to open. A read-only row is the only rendering the
308
- // value gets, so it wraps.
362
+ /* An editable row's plain text wraps, up to three lines: its value line is a summary you click to open,
363
+ and the whole value is in the row's editor. It was one line with an ellipsis, and an address or a
364
+ sentence lost its end at every width (qorus#646, Foxhoundn on qlip #383: "wrap texts so users on both
365
+ phones and desktops can easily read and copy it"; David, 2026-10-22). A read-only row is the only
366
+ rendering the value gets, so it wraps in full (`full`), a long text moving to the inset under the row
367
+ with "Show more". */
309
368
  full) {
310
369
  var _a;
311
370
  if (full === void 0) { full = false; }
312
371
  var valueType = (0, readFirst_1.getValueType)(field, schema);
313
372
  var wrapStyle = __assign({ display: 'inline-flex', alignItems: 'center', gap: 6, minWidth: 0, maxWidth: '100%' }, (full ? { flexWrap: 'wrap' } : {}));
314
- var textStyle = full ?
315
- { whiteSpace: 'pre-wrap', overflowWrap: 'anywhere' }
316
- : { overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' };
373
+ var textStyle = full ? { whiteSpace: 'pre-wrap', overflowWrap: 'anywhere' } : SUMMARY_TEXT_STYLE;
374
+ // The expression the value holds, in either shape the editor stores it: the flag on the option, or
375
+ // the envelope nested in its value as a reloaded draft has it.
376
+ var expressionAst = (0, readFirst_1.getExpressionAst)(field);
377
+ var isExpression = !!(field === null || field === void 0 ? void 0 : field.is_expression) || expressionAst !== undefined;
317
378
  /* A row has to SAY when its value is an expression.
318
379
 
319
380
  Reported from the live IDE: an author accepted the *Use as expression*
@@ -326,7 +387,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
326
387
  The same Σ the expression editor uses, so the mark means the same thing
327
388
  wherever it appears. */
328
389
  var withExpressionMarker = function (rendered) {
329
- if (!(field === null || field === void 0 ? void 0 : field.is_expression)) {
390
+ if (!isExpression) {
330
391
  return rendered;
331
392
  }
332
393
  return ((0, jsx_runtime_1.jsxs)("span", { style: __assign(__assign({}, wrapStyle), { gap: 4 }), children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Functions', size: 'tiny',
@@ -339,13 +400,43 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
339
400
  rule, which reqore has no prop for, stays inline. */
340
401
  effect: { opacity: 0.7 }, style: { flexShrink: 0 }, tooltip: 'This value is an expression' }), rendered] }));
341
402
  };
342
- if (valueType === 'rgbcolor') {
343
- var swatch = (0, readFirst_1.colorToCss)(field === null || field === void 0 ? void 0 : field.value);
344
- return ((0, jsx_runtime_1.jsxs)("span", { style: swatch ? __assign(__assign({}, wrapStyle), {
345
- // a slight wash of the chosen colour behind the swatch + hex
346
- background: "color-mix(in srgb, ".concat(swatch, " 14%, transparent)"), padding: '1px 8px', borderRadius: 4 }) : wrapStyle, children: [swatch ?
347
- (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledColorSwatch, { "aria-hidden": true, "$color": swatch, "$border": cDivider })
348
- : null, (0, jsx_runtime_1.jsx)("span", { style: textStyle, children: formatted })] }));
403
+ // Template value ($local:…): the read-only template picker — the SAME chip
404
+ // TemplateField renders when disabled, so a template reads identically here
405
+ // and in the editor (qorus-ide intent scheme: info / qorus purple).
406
+ //
407
+ // A field may also declare templates OF ITS OWN, and a value drawn from
408
+ // that list is just as much a template even when it does not look like
409
+ // `$name:key` — `isValueTemplate` is a guess at the shape of the built-in
410
+ // grammar, and a host's own grammar (a Qorus test's `$.order.id`) fails it.
411
+ // Asking the field's list whether it CONTAINS the value settles it without
412
+ // guessing at syntax, and hands back the entry whose label the chip prints,
413
+ // so a reference reads as the name it was chosen by here as well as in the
414
+ // editor rather than as a raw path.
415
+ var ownTemplates = (_a = schema === null || schema === void 0 ? void 0 : schema.templates) !== null && _a !== void 0 ? _a : templates;
416
+ // The grammar the field declares its references in, when it speaks one of
417
+ // its own — the same schema key its rich-text editor is given.
418
+ var templateGrammar = schema === null || schema === void 0 ? void 0 : schema.templateToken;
419
+ /* A template or an expression is shown as one, whatever the field's type, so these two come before
420
+ any type draws a value of its own (qorus#646). A color's branch came first and called a template
421
+ or an expression on a color option "Set"; a file's printed the raw reference as a file name. */
422
+ if (typeof (field === null || field === void 0 ? void 0 : field.value) === 'string' &&
423
+ !isExpression &&
424
+ ((0, templates_1.isValueTemplate)(field.value) || !!(0, templates_1.findTemplate)(ownTemplates !== null && ownTemplates !== void 0 ? ownTemplates : {}, field.value))) {
425
+ return (0, jsx_runtime_1.jsx)(ReadOnlyTemplateTag_1.ReadOnlyTemplateTag, { value: field.value, templates: ownTemplates });
426
+ }
427
+ // An expression reads as DPQL wherever it is shown without being edited:
428
+ // the same rendering its Explain panel and Preview use — monospace,
429
+ // colored by the language server, template references as chips — so a
430
+ // collapsed row and the editor it opens never disagree about what the
431
+ // value looks like. See `DpqlRendering`. In either shape the editor stores
432
+ // it: the flag on the option, or the envelope nested in its value as a
433
+ // reloaded draft has it (`getExpressionAst`).
434
+ if (isExpression && formatted) {
435
+ return withExpressionMarker((0, jsx_runtime_1.jsx)("span", { style: __assign({ minWidth: 0, flex: '1 1 auto' }, (full ? {} : { overflow: 'hidden' })), children: (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: formatted, templates: ownTemplates }) }));
436
+ }
437
+ // a color reads as ReqraftColorValue draws one, at its one-line size; a sensitive one is not shown
438
+ if (valueType === 'rgbcolor' && !(schema === null || schema === void 0 ? void 0 : schema.sensitive)) {
439
+ return (0, jsx_runtime_1.jsx)(colorValue_1.ReqraftColorValue, { value: field === null || field === void 0 ? void 0 : field.value, size: 'compact', wrap: full });
349
440
  }
350
441
  if (valueType === 'file') {
351
442
  var fileSize = (0, readFirst_1.getFileSize)(field === null || field === void 0 ? void 0 : field.value);
@@ -353,6 +444,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
353
444
  // trailing key pill (the editor renders it as a ReqoreButton badge).
354
445
  return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'small', minimal: true, intent: 'info', icon: 'FileLine', label: formatted, labelKey: fileSize !== undefined ? (0, readFirst_1.formatBytes)(fileSize) : undefined }));
355
446
  }
447
+ // a yes/no holding a template has read as the template, above, not as Yes (qorus#646)
356
448
  if (valueType === 'bool' || valueType === 'boolean') {
357
449
  var truthy = (field === null || field === void 0 ? void 0 : field.value) === true || (field === null || field === void 0 ? void 0 : field.value) === 'true';
358
450
  return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'small', minimal: true, intent: truthy ? 'success' : 'danger', label: formatted }));
@@ -368,7 +460,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
368
460
  // only surface still printing them as prose.
369
461
  //
370
462
  // `intent` is a FILL, which is what a tag is — the hazard the other
371
- // branches warn about is only ever using an intent as a TEXT colour.
463
+ // branches warn about is only ever using an intent as a TEXT color.
372
464
  //
373
465
  // Falls through to the plain summary unless EVERY entry yields a name: a
374
466
  // partly-chipped row would read as though the unnamed cases were missing.
@@ -396,12 +488,17 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
396
488
  // It reads as a chip beside the size chip — "Qore · 62 lines" — which
397
489
  // is the same summary the read-only interface pages already show.
398
490
  return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { gapSize: 'tiny', verticalAlign: 'center', wrap: true, children: (absorbedFields !== null && absorbedFields !== void 0 ? absorbedFields : []).map(function (absorbedName) {
399
- var _a;
400
- var absorbedValue = (_a = availableOptions === null || availableOptions === void 0 ? void 0 : availableOptions[absorbedName]) === null || _a === void 0 ? void 0 : _a.value;
491
+ var absorbedField = availableOptions === null || availableOptions === void 0 ? void 0 : availableOptions[absorbedName];
492
+ var absorbedValue = absorbedField === null || absorbedField === void 0 ? void 0 : absorbedField.value;
401
493
  if (absorbedValue === undefined || absorbedValue === null || absorbedValue === '') {
402
494
  return null;
403
495
  }
404
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { className: 'options-readfirst-absorbed-tag', size: 'small', minimal: true, label: String(absorbedValue), tooltip: getAbsorbedLabel(absorbedName) }, absorbedName));
496
+ /* What the value is called and its picture, as its own control draws it: a language is "Qore" with
497
+ its logo, not the value it is stored as, "qore" (qorus#646, David's review). */
498
+ var absorbedSchema = options === null || options === void 0 ? void 0 : options[absorbedName];
499
+ var choice = (0, readFirst_1.findAllowedValueOption)(absorbedValue, absorbedSchema);
500
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { className: 'options-readfirst-absorbed-tag', size: 'small', minimal: true, icon: (choice === null || choice === void 0 ? void 0 : choice.image) ? 'CheckboxBlankLine' : undefined, leftIconProps: (choice === null || choice === void 0 ? void 0 : choice.image) ? { image: choice.image } : undefined, label: (0, readFirst_1.formatOptionValue)(absorbedField, absorbedSchema) ||
501
+ String(absorbedValue), tooltip: getAbsorbedLabel(absorbedName) }, absorbedName));
405
502
  }) }));
406
503
  }
407
504
  // Markdown read summary: the row prints the value's prose (the markdown
@@ -437,27 +534,6 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
437
534
  if (allowedIcon) {
438
535
  return ((0, jsx_runtime_1.jsxs)("span", { style: wrapStyle, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: allowedIcon, size: '16px', style: { flexShrink: 0 } }), (0, jsx_runtime_1.jsx)("span", { style: textStyle, children: formatted })] }));
439
536
  }
440
- // Template value ($local:…): the read-only template picker — the SAME chip
441
- // TemplateField renders when disabled, so a template reads identically here
442
- // and in the editor (qorus-ide intent scheme: info / qorus purple).
443
- //
444
- // A field may also declare templates OF ITS OWN, and a value drawn from
445
- // that list is just as much a template even when it does not look like
446
- // `$name:key` — `isValueTemplate` is a guess at the shape of the built-in
447
- // grammar, and a host's own grammar (a Qorus test's `$.order.id`) fails it.
448
- // Asking the field's list whether it CONTAINS the value settles it without
449
- // guessing at syntax, and hands back the entry whose label the chip prints,
450
- // so a reference reads as the name it was chosen by here as well as in the
451
- // editor rather than as a raw path.
452
- var ownTemplates = (_a = schema === null || schema === void 0 ? void 0 : schema.templates) !== null && _a !== void 0 ? _a : templates;
453
- // The grammar the field declares its references in, when it speaks one of
454
- // its own — the same schema key its rich-text editor is given.
455
- var templateGrammar = schema === null || schema === void 0 ? void 0 : schema.templateToken;
456
- if (typeof (field === null || field === void 0 ? void 0 : field.value) === 'string' &&
457
- !field.is_expression &&
458
- ((0, templates_1.isValueTemplate)(field.value) || !!(0, templates_1.findTemplate)(ownTemplates !== null && ownTemplates !== void 0 ? ownTemplates : {}, field.value))) {
459
- return (0, jsx_runtime_1.jsx)(ReadOnlyTemplateTag_1.ReadOnlyTemplateTag, { value: field.value, templates: ownTemplates, size: 'small' });
460
- }
461
537
  // A LIST whose elements are rich-text envelopes is a list of strings, so it
462
538
  // reads as those strings. Without this the row fell through to the generic
463
539
  // list summary and printed a bare count ("1 item") above the structured
@@ -478,14 +554,6 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
478
554
  return (0, jsx_runtime_1.jsx)(TemplateText_1.TemplateText, { segments: segments, templates: ownTemplates, full: full });
479
555
  }
480
556
  }
481
- // An expression reads as DPQL wherever it is shown without being edited:
482
- // the same rendering its Explain panel and Preview use — monospace,
483
- // coloured by the language server, template references as chips — so a
484
- // collapsed row and the editor it opens never disagree about what the
485
- // value looks like. See `DpqlRendering`.
486
- if ((field === null || field === void 0 ? void 0 : field.is_expression) && formatted) {
487
- return withExpressionMarker((0, jsx_runtime_1.jsx)("span", { style: __assign({ minWidth: 0, flex: '1 1 auto' }, (full ? {} : { overflow: 'hidden' })), children: (0, jsx_runtime_1.jsx)(DpqlRendering_1.DpqlRendering, { text: formatted, templates: ownTemplates }) }));
488
- }
489
557
  /* A value that MENTIONS a reference rather than being one.
490
558
 
491
559
  The branch above answers "is this value a template?", and a predicate is
@@ -506,7 +574,14 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
506
574
  if (templateSegments.some(function (segment) { return segment.kind === 'tag'; })) {
507
575
  return withExpressionMarker((0, jsx_runtime_1.jsx)(TemplateText_1.TemplateText, { segments: templateSegments, templates: ownTemplates, full: full }));
508
576
  }
509
- return withExpressionMarker(full ? (0, jsx_runtime_1.jsx)("span", { style: textStyle, children: formatted }) : formatted);
577
+ /* A value that is a web address is a link to it, in an editable row and a read-only one: it opens in a
578
+ new tab, and a click or a key on it follows it and does not open the row (Foxhoundn on qlip #383:
579
+ "Please render links as links"; David, 2026-10-22). Only the value as typed: a value drawn as a label
580
+ or masked is not its address. */
581
+ var link = formatted === (field === null || field === void 0 ? void 0 : field.value) ? (0, webLink_1.webLinkOf)(formatted) : undefined;
582
+ return withExpressionMarker((0, jsx_runtime_1.jsx)("span", { style: textStyle, children: link ?
583
+ (0, jsx_runtime_1.jsx)(WebLink, { address: link, color: cInfo })
584
+ : formatted }));
510
585
  };
511
586
  var schema = options === null || options === void 0 ? void 0 : options[optionName];
512
587
  var label = (schema === null || schema === void 0 ? void 0 : schema.display_name) || optionName;
@@ -587,9 +662,13 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
587
662
  var chipGroups = unmetGroups.length ? unmetGroups : memberGroups;
588
663
  var groupResolved = !!memberGroups.length && !unmetGroups.length;
589
664
  var requiredGroupChip = !hidden && !readOnly && memberGroups.length && !(schema === null || schema === void 0 ? void 0 : schema.required) ?
590
- (0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex' }, role: 'presentation', onClick: function (e) { return e.stopPropagation(); }, onKeyDown: function (e) { return e.stopPropagation(); }, onMouseEnter: function () {
591
- return setHighlightedOptions(requiredGroupsInfo.members[chipGroups[0]] || []);
592
- }, onMouseLeave: function () { return setHighlightedOptions([]); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-readfirst-required-group', size: 'tiny', minimal: true, flat: true, compact: true, effect: { uppercase: true, spaced: 1 }, intent: groupResolved ? 'success' : 'warning', icon: groupResolved ? 'CheckLine' : 'LinkM', label: !groupResolved ? 'One of'
665
+ (0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex' }, role: 'presentation', onClick: function (e) { return e.stopPropagation(); }, onKeyDown: function (e) { return e.stopPropagation(); },
666
+ // a mouse's hover, not a tap's emulated one: see `isHoveringPointer`
667
+ onPointerEnter: function (e) {
668
+ if ((0, hoveringPointer_1.isHoveringPointer)(e)) {
669
+ setHighlightedOptions(requiredGroupsInfo.members[chipGroups[0]] || []);
670
+ }
671
+ }, onPointerLeave: function () { return setHighlightedOptions([]); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-readfirst-required-group', size: 'tiny', minimal: true, flat: true, compact: true, effect: { uppercase: true, spaced: 1 }, intent: groupResolved ? 'success' : 'warning', icon: groupResolved ? 'CheckLine' : 'LinkM', label: !groupResolved ? 'One of'
593
672
  : coveredByLabel ?
594
673
  "Covered by \u201C".concat(coveredByLabel, "\u201D")
595
674
  : 'Covers', filterable: chipGroups.reduce(function (n, g) { return n + requiredGroupsInfo.members[g].length; }, 0) > 6, items: chipGroups.flatMap(function (groupName) { return __spreadArray(__spreadArray([], (chipGroups.length > 1 ?
@@ -609,6 +688,20 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
609
688
  var editType = (_d = (fixedAllowedValueOption ?
610
689
  (schema === null || schema === void 0 ? void 0 : schema.type) || (schema === null || schema === void 0 ? void 0 : schema.ui_type)
611
690
  : (schema === null || schema === void 0 ? void 0 : schema.ui_type) || (schema === null || schema === void 0 ? void 0 : schema.type))) !== null && _d !== void 0 ? _d : '';
691
+ /* A complex field (a tall or nested editor) opens in the card below the row: reqraft's own complex types, and
692
+ the host's editors it names (`cardEditorTypes`): a host editor of its own, such as a sheet contract, opened
693
+ in the row's value column, about 240px wide (qorus#646). */
694
+ var isHostCardEditor = !!(cardEditorTypes === null || cardEditorTypes === void 0 ? void 0 : cardEditorTypes.includes(editType));
695
+ var opensInCard = COMPACT_COMPLEX_TYPES.has(editType) || isHostCardEditor;
696
+ /* What the host draws for the row when it is closed (`readSummaries`): a summary of its own, under which the
697
+ row draws no preview of the value (see `hostSummarizes`). */
698
+ var readSummaryUiType = schema === null || schema === void 0 ? void 0 : schema.ui_type;
699
+ var ReadSummary = readSummaryUiType ? readSummaries === null || readSummaries === void 0 ? void 0 : readSummaries[readSummaryUiType] : undefined;
700
+ /* In a read-only form, a row whose content its line does not show - a host editor that opens in the card, or a
701
+ row the host summarizes - opens its card with the editor read-only, and its fullscreen view: the summary is
702
+ one line ("4 columns · 1 rule"), and with no preview under it, the card is where what it holds is read
703
+ (qorus#646). Any other read-only row shows all it holds and opens nothing. */
704
+ var readOnlyOpens = !!readOnly && !hidden && (isHostCardEditor || !!ReadSummary);
612
705
  // Scalars edit in place inside the row; complex fields (tall or nested
613
706
  // editors) still open the expanded card below.
614
707
  var inlineEditableNow = !readOnly &&
@@ -618,7 +711,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
618
711
  !optionField.is_expression &&
619
712
  // A choice with per-option logos (e.g. language) reads better collapsed.
620
713
  !(0, readFirst_1.optionHasImages)(schema) &&
621
- !COMPACT_COMPLEX_TYPES.has(editType);
714
+ !opensInCard;
622
715
  /* Which of the two editors a row gets is settled when the row OPENS.
623
716
  *
624
717
  * Every term above reads the VALUE or a schema derived from it, so the
@@ -794,7 +887,11 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
794
887
  var editEntryValue = react_1.default.useRef(undefined);
795
888
  react_1.default.useEffect(function () {
796
889
  if (isExpanded) {
797
- editEntryValue.current = { value: optionField === null || optionField === void 0 ? void 0 : optionField.value, type: optionField === null || optionField === void 0 ? void 0 : optionField.type };
890
+ editEntryValue.current = {
891
+ value: optionField === null || optionField === void 0 ? void 0 : optionField.value,
892
+ type: optionField === null || optionField === void 0 ? void 0 : optionField.type,
893
+ is_expression: !!(optionField === null || optionField === void 0 ? void 0 : optionField.is_expression),
894
+ };
798
895
  }
799
896
  else {
800
897
  editEntryValue.current = undefined;
@@ -804,15 +901,25 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
804
901
  var editedSinceOpened = isExpanded &&
805
902
  !!editEntryValue.current &&
806
903
  !(0, isEqual_1.default)(editEntryValue.current.value, optionField === null || optionField === void 0 ? void 0 : optionField.value);
904
+ // What this row's own editor has typed and not yet reported: its fields report after a pause, and the
905
+ // row closing takes the pause with it. Done sends it before the row closes; Cancel and Escape drop it
906
+ // (see `usePendingEdit`).
907
+ var pendingEdits = (0, pendingEdit_1.usePendingEdits)();
807
908
  // Discard whatever was typed since the field was opened and close it. Used
808
909
  // by both the Cancel button and Escape, so the two cannot diverge.
809
910
  var cancelEdit = react_1.default.useCallback(function () {
911
+ // an edit still waiting for its pause is part of what is discarded
912
+ pendingEdits.discard();
810
913
  var snapshot = editEntryValue.current;
811
- if (snapshot && !(0, isEqual_1.default)(snapshot.value, optionField === null || optionField === void 0 ? void 0 : optionField.value)) {
812
- handleValueChange(optionName, snapshot.value, snapshot.type);
914
+ // the field as it was opened: an expression is put back as one, a value as a value
915
+ if (snapshot &&
916
+ (!(0, isEqual_1.default)(snapshot.value, optionField === null || optionField === void 0 ? void 0 : optionField.value) ||
917
+ snapshot.is_expression !==
918
+ !!(optionField === null || optionField === void 0 ? void 0 : optionField.is_expression))) {
919
+ handleValueChange.apply(void 0, __spreadArray([optionName], (0, argumentPresence_1.restoredFieldChange)(snapshot), false));
813
920
  }
814
- toggleExpandedOption(optionName);
815
- }, [handleValueChange, optionField === null || optionField === void 0 ? void 0 : optionField.value, optionName, toggleExpandedOption]);
921
+ collapseOption(optionName);
922
+ }, [handleValueChange, optionField === null || optionField === void 0 ? void 0 : optionField.value, optionName, collapseOption, pendingEdits]);
816
923
  // The sub-schema describing this field's value, when it has one. A value the
817
924
  // form knows the shape of is previewed THROUGH that shape (see
818
925
  // `SchemaDataView`); only genuinely undescribed data falls through to the
@@ -881,9 +988,9 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
881
988
  // whole-field revert is the only undo that makes sense.
882
989
  var revertButton = changed ?
883
990
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'options-readfirst-revert', size: 'small', flat: true, minimal: true, icon: 'HistoryLine', tooltip: 'Revert changes', onClick: function (e) {
884
- var _a, _b, _c, _d;
991
+ var _a;
885
992
  e.stopPropagation();
886
- handleValueChange(optionName, (_b = (_a = originalValue.current) === null || _a === void 0 ? void 0 : _a[optionName]) === null || _b === void 0 ? void 0 : _b.value, (_d = (_c = originalValue.current) === null || _c === void 0 ? void 0 : _c[optionName]) === null || _d === void 0 ? void 0 : _d.type);
993
+ handleValueChange.apply(void 0, __spreadArray([optionName], (0, argumentPresence_1.restoredFieldChange)((_a = originalValue.current) === null || _a === void 0 ? void 0 : _a[optionName]), false));
887
994
  } })
888
995
  : null;
889
996
  // Clear-value: empties a set field (keeps the field; the value goes blank)
@@ -923,7 +1030,8 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
923
1030
  var draftChip = commitMode === 'batched' && changed ?
924
1031
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { className: 'options-readfirst-draft', label: 'Draft', intent: 'warning', icon: 'EditLine', size: 'tiny', minimal: true, fixed: true, flat: true, compact: true, effect: { uppercase: true, spaced: 1 } })
925
1032
  : null;
926
- var isPassiveCloseAction = fixedAllowedValueOption;
1033
+ // nothing can have been typed where the value is a fixed choice, or the form is read-only (a card opened to read)
1034
+ var isPassiveCloseAction = fixedAllowedValueOption || !!readOnly;
927
1035
  // Cancel — the counterpart to Done, and the answer to "how do I get out of
928
1036
  // here without keeping this". Done was the only way to leave an open field,
929
1037
  // so every way out committed: the check, clicking away, and Escape (which
@@ -945,10 +1053,18 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
945
1053
  var openedWithFormLoadValue = !editEntryValue.current ||
946
1054
  (0, isEqual_1.default)(editEntryValue.current.value, (_f = (_e = originalValue.current) === null || _e === void 0 ? void 0 : _e[optionName]) === null || _f === void 0 ? void 0 : _f.value);
947
1055
  var editRowRevertButton = openedWithFormLoadValue ? null : revertButton;
948
- var closeExpandedFieldButton = ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'options-readfirst-done', size: 'small', intent: !isPassiveCloseAction ? 'success' : undefined, flat: isPassiveCloseAction, minimal: isPassiveCloseAction, fixed: true, icon: isPassiveCloseAction ? 'CloseLine' : 'CheckLine', "aria-label": isPassiveCloseAction ? 'Close field' : 'Done', tooltip: isPassiveCloseAction ? 'Close field' : 'Done', onClick: function () { return toggleExpandedOption(optionName); } }));
1056
+ var closeExpandedFieldButton = ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'options-readfirst-done', size: 'small', intent: !isPassiveCloseAction ? 'success' : undefined, flat: isPassiveCloseAction, minimal: isPassiveCloseAction, fixed: true, icon: isPassiveCloseAction ? 'CloseLine' : 'CheckLine', "aria-label": isPassiveCloseAction ? 'Close field' : 'Done', tooltip: isPassiveCloseAction ? 'Close field' : 'Done', onClick: function () {
1057
+ // what was typed inside the field's pause reaches the form before the row closes
1058
+ pendingEdits.flush();
1059
+ collapseOption(optionName);
1060
+ } }));
949
1061
  // Info tiers: Tier 1 (danger/warning + dependency hints) must be visible
950
1062
  // without interaction; Tier 2 (info/success, default notes) sits behind ⓘ.
951
- var infoActive = !hidden;
1063
+ /* A field not set yet keeps quiet in the Optional box, but not once it is opened: its editor is where
1064
+ its messages are read, and one saying why the field cannot be used is the answer to opening it. Such
1065
+ a row used to show them only when its editor reported '' on opening, which put the field in the form
1066
+ (qorus#646: the Qorus IDE's "Wait (ms)", disabled while "Until Step" is set). */
1067
+ var infoActive = !hidden || isExpanded;
952
1068
  var schemaMessages = infoActive ?
953
1069
  (0, OptionFieldMessages_1.getShownSchemaMessages)(schema === null || schema === void 0 ? void 0 : schema.messages, availableOptions, options).map(function (m) { return ({
954
1070
  intent: m.intent,
@@ -974,14 +1090,15 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
974
1090
  }).map(function (m) { return ({ intent: m.intent, content: String(m.label) }); })
975
1091
  : [];
976
1092
  // TWO display channels, matching the Focus prototype:
977
- // • dedicated schema `messages` → prominent coloured PANELS below the row;
1093
+ // • dedicated schema `messages` → prominent colored PANELS below the row;
978
1094
  // • everything else (validation reasons, the unmet-dependency hint, the
979
1095
  // default-value note) → a compact INLINE reason strip — not a panel.
980
1096
  var panelMessages = schemaMessages;
981
1097
  var inlineMessages = __spreadArray(__spreadArray([], fieldMessages, true), (infoActive && (schema === null || schema === void 0 ? void 0 : schema.default_value_desc) ?
982
1098
  [
983
1099
  {
984
- content: "Default: ".concat(schema.default_value_display_name || '', " \u2014 ").concat(schema.default_value_desc).trim(),
1100
+ // the default's description is the server's markdown: its words, not its marks
1101
+ content: "Default: ".concat(schema.default_value_display_name || '', " \u2014 ").concat((0, readFirst_1.markdownToProse)(schema.default_value_desc)).trim(),
985
1102
  },
986
1103
  ]
987
1104
  : []), true);
@@ -1001,12 +1118,40 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1001
1118
  // the inline editor: opening a field used to drop it, leaving an editing row
1002
1119
  // with no route to the field's description at all. Stops propagation because
1003
1120
  // both labels are click targets themselves (the row expands / collapses).
1004
- var helpIcon = (schema === null || schema === void 0 ? void 0 : schema.desc) ?
1005
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'QuestionLine', size: '12px', effect: { opacity: 0.55 }, margin: 'left', marginSize: 'tiny', role: 'button', tabIndex: -1, "aria-label": 'Help', className: 'options-readfirst-help', style: { cursor: 'help' }, onClick: function (event) {
1121
+ /* A real button (qorus#646, David's decision): in the tab order with a focus ring, a finger's size on a touch
1122
+ screen (`small`) and a mouse's on a desktop (`tiny`), opening the help on a click, Enter or Space. It was a
1123
+ 12px icon the keyboard could not reach. It sits in a label or a row that opens or closes on the same keys and
1124
+ clicks, so it keeps them: the row does not also open or close. */
1125
+ /* What kind of value the option takes (qorus#646, David's review: "type information should be shown on hover or
1126
+ after clicking the 'Show all field information' control rather than by default"): in its name's hover and
1127
+ in its help, beside its description, and beside its name only while the form shows all field information or
1128
+ its types. */
1129
+ var typeWords = (0, qorusTypeCatalogue_1.optionTypeWords)(schema, typeName);
1130
+ var typeSentence = (0, qorusTypeCatalogue_1.optionTypeSentence)(schema, typeName, typeSentenceForm);
1131
+ // what the option is, or, where it has no description at all, why nothing says so (qorus#646)
1132
+ var labelHover = [
1133
+ (schema === null || schema === void 0 ? void 0 : schema.short_desc) || (!(schema === null || schema === void 0 ? void 0 : schema.desc) && typeSentence ? noDescription_1.NO_OPTION_DESCRIPTION : undefined),
1134
+ typeSentence && "Takes ".concat(typeSentence, "."),
1135
+ ]
1136
+ .filter(Boolean)
1137
+ .join('\n') || undefined;
1138
+ var typeShown = !!showFieldTypes || showAllDescriptions === true;
1139
+ /* the help says what the option takes, and its description where it has one: every option with either has
1140
+ it, a short description too, so a touch screen, which has no hover, reaches the type (qorus#646, David) */
1141
+ var helpIcon = (schema === null || schema === void 0 ? void 0 : schema.desc) || (schema === null || schema === void 0 ? void 0 : schema.short_desc) || typeSentence ?
1142
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { icon: 'QuestionLine', size: coarse ? 'small' : 'tiny', minimal: true, flat: true, fixed: true, className: "options-readfirst-help".concat(coarse ? ' options-readfirst-help-touch' : ''), "aria-label": "Help: ".concat(label), tooltip: 'Help', effect: { opacity: rowInks.helpOpacity }, onClick: function (event) {
1006
1143
  event.stopPropagation();
1007
1144
  handleOptionLabelClick(optionName);
1145
+ }, onKeyDown: function (event) {
1146
+ if (event.key === 'Enter' || event.key === ' ') {
1147
+ event.stopPropagation();
1148
+ }
1008
1149
  } })
1009
1150
  : null;
1151
+ // beside the name, muted: it is about the field, not its value
1152
+ var typeTag = typeWords && typeShown ?
1153
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'tiny', minimal: true, className: 'options-readfirst-type', label: typeWords, labelEffect: { opacity: rowInks.descOpacity } })
1154
+ : null;
1010
1155
  // The gap rides on the message itself rather than on the panel around it:
1011
1156
  // the panel is a vertical ReqoreControlGroup, which owns its own layout and
1012
1157
  // stacks children flush, and the class rule that used to carry a 4px gap
@@ -1024,17 +1169,16 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1024
1169
  `compact` for the same reason the row inset asks for it: this is a strip
1025
1170
  inside a row, never a page, and markdown authored as a document opens with
1026
1171
  a heading that would outgrow the field label above it. Without a host
1027
- renderer the string is drawn as it always was. */
1172
+ renderer it reads as the plain text its markdown renders to (`plainTextNode`). */
1028
1173
  var renderInfoStrip = function (m, index) { return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreMessage, { size: 'small', opaque: false, flat: true, intent: m.intent, title: m.title, style: { marginBottom: 8 }, children: markdownRenderer && typeof m.content === 'string' ?
1029
1174
  markdownRenderer({ value: m.content, compact: true })
1030
- : m.content }, "".concat(m.content, "-").concat(index))); };
1175
+ : (0, markdownText_1.plainTextNode)(m.content) }, "".concat(m.content, "-").concat(index))); };
1176
+ // in the intent's shade that reads on the row (the intents themselves did not: a danger reason was 2.7:1)
1031
1177
  var reasonColor = function (intent) {
1032
- var _a;
1033
- return intent === 'danger' ? cDanger
1034
- : intent === 'warning' ? cWarning
1035
- : intent === 'success' ?
1036
- ((_a = theme === null || theme === void 0 ? void 0 : theme.intents) === null || _a === void 0 ? void 0 : _a.success) || cInfo
1037
- : "".concat(cMuted, "cc");
1178
+ return intent === 'danger' ? rowInks.danger
1179
+ : intent === 'warning' ? rowInks.warning
1180
+ : intent === 'success' ? rowInks.success
1181
+ : rowInks.mutedReason;
1038
1182
  };
1039
1183
  var infoToggle = null;
1040
1184
  // Cluster (required-group connection) — shared by the read row, its block
@@ -1054,8 +1198,13 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1054
1198
  var clusterNode = null;
1055
1199
  var clusterHoverProps = clustered && clusterMembers.length ?
1056
1200
  {
1057
- onMouseEnter: function () { return setHighlightedOptions(clusterMembers); },
1058
- onMouseLeave: function () { return setHighlightedOptions([]); },
1201
+ // a mouse's hover, not a tap's emulated one: see `isHoveringPointer`
1202
+ onPointerEnter: function (e) {
1203
+ if ((0, hoveringPointer_1.isHoveringPointer)(e)) {
1204
+ setHighlightedOptions(clusterMembers);
1205
+ }
1206
+ },
1207
+ onPointerLeave: function () { return setHighlightedOptions([]); },
1059
1208
  }
1060
1209
  : {};
1061
1210
  // Items the EDITOR inside this row published — see `rowMenuContext`.
@@ -1065,8 +1214,10 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1065
1214
  // just before the Done ✓ in both expanded layouts.
1066
1215
  var moreMenu = ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-readfirst-more', icon: 'More2Fill', flat: true, minimal: true, fixed: true, size: 'small', tooltip: 'More actions', items: __spreadArray(__spreadArray(__spreadArray([
1067
1216
  {
1068
- label: 'Edit fullscreen',
1217
+ // a card opened to read is viewed in full, not edited
1218
+ label: readOnly ? 'View fullscreen' : 'Edit fullscreen',
1069
1219
  icon: 'FullscreenLine',
1220
+ className: 'options-readfirst-fullscreen',
1070
1221
  onClick: function () { return setFocusedEditing(optionName); },
1071
1222
  }
1072
1223
  ], (removable && !hidden ?
@@ -1125,23 +1276,27 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1125
1276
  optionField.value !== '') ?
1126
1277
  (function () {
1127
1278
  var _a = (0, codeSize_1.describeCodeSize)(optionField.value), lines = _a.lines, chars = _a.chars;
1128
- return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { className: 'options-readfirst-label-code-size', size: 'tiny', effect: { opacity: 0.45, textAlign: 'left' }, style: { fontFamily: 'monospace' }, children: "".concat((0, codeSize_1.formatCodeChars)(chars), " ").concat((0, codeSize_1.formatCodeLines)(lines)) }));
1279
+ return ((0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { className: 'options-readfirst-label-code-size', size: 'tiny', effect: { opacity: rowInks.noteOpacity, textAlign: 'left' }, style: { fontFamily: compactRowStyles_1.MONO_FONT_STACK }, children: "".concat((0, codeSize_1.formatCodeChars)(chars), " ").concat((0, codeSize_1.formatCodeLines)(lines)) }));
1129
1280
  })()
1130
1281
  : null;
1131
- if (isExpanded && !readOnly) {
1282
+ if (isExpanded && (!readOnly || readOnlyOpens)) {
1132
1283
  if (inlineEditable) {
1133
- var collapse_1 = function () { return toggleExpandedOption(optionName); };
1284
+ // closing the row by its label keeps what was typed, as Done does
1285
+ var collapse_1 = function () {
1286
+ pendingEdits.flush();
1287
+ collapseOption(optionName);
1288
+ };
1134
1289
  var editingRow = ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: rowRef, "data-field": optionName, className: 'readfirst-row readfirst-row-editing options-readfirst-inline options-readfirst-value', style: readRowHeights.current[optionName] ?
1135
1290
  { minHeight: readRowHeights.current[optionName] }
1136
- : undefined }, clusterHoverProps, { children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelBlock, { className: 'options-readfirst-label-block', children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowLabel, { role: 'button', tabIndex: 0, "aria-label": "Collapse ".concat(label), title: (schema === null || schema === void 0 ? void 0 : schema.short_desc) || undefined, "$color": cKey, "$pointer": true, onClick: collapse_1, onKeyDown: function (event) {
1291
+ : undefined }, clusterHoverProps, { children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelBlock, { className: 'options-readfirst-label-block', children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowLabel, { role: 'button', tabIndex: 0, "aria-label": "Collapse ".concat(label), title: labelHover, "$color": cKey, "$pointer": true, onClick: collapse_1, onKeyDown: function (event) {
1137
1292
  if (event.key === 'Enter' || event.key === ' ') {
1138
1293
  event.preventDefault();
1139
1294
  collapse_1();
1140
1295
  }
1141
- }, children: [label, required ?
1142
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: 'danger', size: '10px' })
1143
- : null, helpIcon] }), labelShortDesc ?
1144
- (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledLabelDesc, { className: 'options-readfirst-label-desc', size: 'small', effect: { opacity: 0.55 }, children: labelShortDesc })
1296
+ }, children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelName, { children: [(0, jsx_runtime_1.jsx)("span", { style: { minWidth: 0 }, children: label }), required ?
1297
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: rowInks.danger, size: '10px' })
1298
+ : null, helpIcon] }), typeTag] }), labelShortDesc ?
1299
+ (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledLabelDesc, { className: 'options-readfirst-label-desc', size: 'small', effect: { opacity: rowInks.descOpacity }, children: (0, readFirst_1.markdownToProse)(labelShortDesc) })
1145
1300
  : null, codeSizeNode] }), (0, jsx_runtime_1.jsxs)("div", { ref: editorRef, style: { minWidth: 0 }, onKeyDown: function (event) {
1146
1301
  if (event.key === 'Escape') {
1147
1302
  event.stopPropagation();
@@ -1153,7 +1308,11 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1153
1308
  }
1154
1309
  }, children: [panelMessages.length ?
1155
1310
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { className: 'options-readfirst-info-panel', vertical: true, fluid: true, gapSize: 'normal', children: panelMessages.map(renderInfoStrip) })
1156
- : null, absorbedNodes, (0, jsx_runtime_1.jsx)(rowOpenPicker_1.RowOpenPickerContext.Provider, { value: openThePicker, children: (0, jsx_runtime_1.jsx)(rowMenuContext_1.RowMenuContext.Provider, { value: rowMenu, children: renderOption(optionName, optionField, 'small', true) }) })] }), (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowActions, { children: [draftChip, editRowRevertButton, cancelEditButton, clearValueButton, inlineOptionActions.map(function (action, index) {
1311
+ : null, absorbedNodes, (0, jsx_runtime_1.jsx)(rowOpenPicker_1.RowOpenPickerContext.Provider, { value: openThePicker, children: (0, jsx_runtime_1.jsx)(rowMenuContext_1.RowMenuContext.Provider, { value: rowMenu, children: (0, jsx_runtime_1.jsx)(pendingEdit_1.PendingEditsContext.Provider, { value: pendingEdits, children: renderOption(optionName, optionField, 'small', true) }) }) }), movesTo ?
1312
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { size: 'small', className: 'options-readfirst-moves-to', effect: {
1313
+ color: movesTo === 'attention' ? rowInks.warning : rowInks.success,
1314
+ }, style: { marginTop: 4 }, children: "Moves to \"".concat(BOX_NAMES[movesTo], "\" when you close it (\u2713)") })
1315
+ : null] }), (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowActions, { children: [draftChip, editRowRevertButton, cancelEditButton, clearValueButton, inlineOptionActions.map(function (action, index) {
1157
1316
  return renderInjectedOptionAction(action, index);
1158
1317
  }), moreMenu, closeExpandedFieldButton] }), clusterNode] }), optionName));
1159
1318
  // ALWAYS wrap the editing row in the same StyledColumn so its parent stays
@@ -1163,7 +1322,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1163
1322
  // them. The wrapper carries the cluster rail class so the connection
1164
1323
  // persists while a member is being edited.
1165
1324
  return ((0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledColumn, { "data-field": optionName, className: clusterBlockClass || undefined, children: [editingRow, focusedEditing === optionName ?
1166
- (0, jsx_runtime_1.jsxs)(FocusedEditing_1.FocusedEditing, { isFullscreen: true, modalOnly: true, onClose: function () { return setFocusedEditing(undefined); }, description: (schema === null || schema === void 0 ? void 0 : schema.display_name) || optionName, children: [(0, jsx_runtime_1.jsx)(Description_1.Description, { longDescription: schema === null || schema === void 0 ? void 0 : schema.desc, shortDescription: schema === null || schema === void 0 ? void 0 : schema.short_desc, longDescriptionShownByDefault: true }), renderOption(optionName, optionField)] })
1325
+ (0, jsx_runtime_1.jsxs)(FocusedEditing_1.FocusedEditing, { isFullscreen: true, modalOnly: true, onClose: function () { return setFocusedEditing(undefined); }, description: (schema === null || schema === void 0 ? void 0 : schema.display_name) || optionName, children: [(0, jsx_runtime_1.jsx)(Description_1.Description, { longDescription: schema === null || schema === void 0 ? void 0 : schema.desc, shortDescription: schema === null || schema === void 0 ? void 0 : schema.short_desc, longDescriptionShownByDefault: true }), (0, jsx_runtime_1.jsx)(pendingEdit_1.PendingEditsContext.Provider, { value: pendingEdits, children: renderOption(optionName, optionField) })] })
1167
1326
  : null] }, optionName));
1168
1327
  }
1169
1328
  // Card chrome: badge / actions / tags render here — the row only fits
@@ -1179,17 +1338,19 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1179
1338
  : undefined;
1180
1339
  return ((0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledEditCard, { "data-field": optionName, className: COMPACT_SINGLE_VALUE_TYPES.has(editType) ?
1181
1340
  'options-readfirst-card options-readfirst-card-single'
1182
- : 'options-readfirst-card', "$bg": cHover, "$border": schemaIntentColor ? "".concat(schemaIntentColor, "66") : "".concat(cInfo, "66"), children: [(0, jsx_runtime_1.jsxs)("div", { style: {
1341
+ : 'options-readfirst-card', "$bg": cHover, "$border": schemaIntentColor ? "".concat(schemaIntentColor, "66") : "".concat(cInfo, "66"), children: [(0, jsx_runtime_1.jsxs)("div", { className: 'options-readfirst-card-header', style: {
1183
1342
  display: 'flex',
1184
- alignItems: 'flex-start',
1343
+ // a heading of one line is centred on the card's actions; one with a description or tags under
1344
+ // its name lines up by its top (David's review of qorus#646: the name sat above the buttons)
1345
+ alignItems: (schema === null || schema === void 0 ? void 0 : schema.short_desc) || cardTags.length ? 'flex-start' : 'center',
1185
1346
  justifyContent: 'space-between',
1186
1347
  gap: 12,
1187
- }, children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCardHeading, { children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCardLabel, { "$color": cKey, children: [((schema === null || schema === void 0 ? void 0 : schema.icon) ||
1348
+ }, children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCardHeading, { children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledCardLabel, { "$color": cKey, title: labelHover, children: [((schema === null || schema === void 0 ? void 0 : schema.icon) ||
1188
1349
  (schema === null || schema === void 0 ? void 0 : schema.image)) ?
1189
1350
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: schema === null || schema === void 0 ? void 0 : schema.icon, image: schema === null || schema === void 0 ? void 0 : schema.image, size: '14px' })
1190
- : null, (0, jsx_runtime_1.jsxs)("span", { children: [label, required ?
1191
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: 'danger', size: '10px' })
1192
- : null, helpIcon] }), cardBadges.map(function (badge, index) {
1351
+ : null, (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelName, { children: [(0, jsx_runtime_1.jsxs)("span", { style: { minWidth: 0 }, children: [label, required ?
1352
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: rowInks.danger, size: '10px' })
1353
+ : null] }), helpIcon] }), typeTag, cardBadges.map(function (badge, index) {
1193
1354
  return typeof badge === 'object' ?
1194
1355
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, __assign({ size: 'small', minimal: true, className: 'options-readfirst-card-badge' }, badge), index)
1195
1356
  : (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'small', minimal: true, className: 'options-readfirst-card-badge', label: badge }, index);
@@ -1209,9 +1370,9 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1209
1370
  event.stopPropagation();
1210
1371
  cancelEdit();
1211
1372
  }
1212
- }, children: (0, jsx_runtime_1.jsxs)(FocusedEditing_1.FocusedEditing, { isFullscreen: focusedEditing === optionName, onClose: function () { return setFocusedEditing(undefined); }, description: (schema === null || schema === void 0 ? void 0 : schema.display_name) || optionName, children: [focusedEditing === optionName ?
1373
+ }, children: (0, jsx_runtime_1.jsxs)(FocusedEditing_1.FocusedEditing, __assign({ isFullscreen: focusedEditing === optionName, onClose: function () { return setFocusedEditing(undefined); }, description: (schema === null || schema === void 0 ? void 0 : schema.display_name) || optionName }, (readOnly ? { label: 'Focused View' } : {}), { children: [focusedEditing === optionName ?
1213
1374
  (0, jsx_runtime_1.jsx)(Description_1.Description, { longDescription: schema === null || schema === void 0 ? void 0 : schema.desc, shortDescription: schema === null || schema === void 0 ? void 0 : schema.short_desc, longDescriptionShownByDefault: true })
1214
- : null, (0, jsx_runtime_1.jsx)(rowMenuContext_1.RowMenuContext.Provider, { value: rowMenu, children: renderOption(optionName, optionField) })] }) })] }, optionName));
1375
+ : null, (0, jsx_runtime_1.jsx)(rowMenuContext_1.RowMenuContext.Provider, { value: rowMenu, children: (0, jsx_runtime_1.jsx)(pendingEdit_1.PendingEditsContext.Provider, { value: pendingEdits, children: renderOption(optionName, optionField) }) })] })) })] }, optionName));
1215
1376
  }
1216
1377
  var formatted = (0, readFirst_1.formatOptionValue)(optionField, schema);
1217
1378
  var empty = formatted === '';
@@ -1266,7 +1427,12 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1266
1427
  typeof optionField.value === 'object' &&
1267
1428
  !Array.isArray(optionField.value) &&
1268
1429
  !isExpression;
1269
- var hashEntries = !hidden && (isPlainHashType || isObjectValuedType) ?
1430
+ /* Where the host draws the row's summary (`readSummaries`), the row draws no preview of its own under it: the
1431
+ host's summary says what the value is ("4 columns · 1 rule"), and a structured preview of the same value
1432
+ under it ("columns · List · 4 items") said it again, in reqraft's words (qorus#646). The card, which a
1433
+ read-only form opens for such a row too (`readOnlyOpens`), is where the value is read in full. */
1434
+ var hostSummarizes = !!ReadSummary;
1435
+ var hashEntries = !hidden && !hostSummarizes && (isPlainHashType || isObjectValuedType) ?
1270
1436
  (0, readFirst_1.getHashEntries)(optionField, schema)
1271
1437
  : [];
1272
1438
  // A LIST OF HASHES/objects gets the same expandable structured preview a hash
@@ -1274,6 +1440,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1274
1440
  // never print "[object Object]"). StructuredDataView unwraps each item's
1275
1441
  // {type,value} envelope. Plain scalar lists keep just their joined summary.
1276
1442
  var isHashList = !hidden &&
1443
+ !hostSummarizes &&
1277
1444
  (valueType === 'list' || valueType === 'free-list' || valueType === 'array') &&
1278
1445
  Array.isArray(optionField === null || optionField === void 0 ? void 0 : optionField.value) &&
1279
1446
  optionField.value.length > 0 &&
@@ -1293,6 +1460,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1293
1460
  // "Show more" reveals the rest. Sits in the same inset the hash/list
1294
1461
  // preview uses — mutually exclusive with `showStructuredPreview`.
1295
1462
  var showCodePreview = !hidden &&
1463
+ !hostSummarizes &&
1296
1464
  valueType === 'code-editor' &&
1297
1465
  typeof (optionField === null || optionField === void 0 ? void 0 : optionField.value) === 'string' &&
1298
1466
  optionField.value.length > 0;
@@ -1339,6 +1507,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1339
1507
  // rendered as the row's own text, and a second copy of it below would make
1340
1508
  // every description row tall for nothing.
1341
1509
  var showMarkdownPreview = !hidden &&
1510
+ !hostSummarizes &&
1342
1511
  !showCodePreview &&
1343
1512
  !!markdownRenderer &&
1344
1513
  // keyed on the schema's ui_type, not on getValueType(): a markdown value
@@ -1360,6 +1529,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1360
1529
  // sentence's worth of characters (a short value wraps in place).
1361
1530
  var showLongTextInset = readOnly &&
1362
1531
  !hidden &&
1532
+ !hostSummarizes &&
1363
1533
  !showCodePreview &&
1364
1534
  !showMarkdownPreview &&
1365
1535
  !showStructuredPreview &&
@@ -1384,9 +1554,8 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1384
1554
  isMultilineMarkdown(optionField.value)) ?
1385
1555
  "".concat(optionField.value.trim().split('\n').length, " lines")
1386
1556
  : undefined;
1387
- var typeLabel = showFieldTypes ?
1388
- "<".concat((schema === null || schema === void 0 ? void 0 : schema.ui_type) || (schema === null || schema === void 0 ? void 0 : schema.type) || 'auto').concat((schema === null || schema === void 0 ? void 0 : schema.ui_element_type) ? "[".concat(schema.ui_element_type, "]") : '', ">")
1389
- : null;
1557
+ // the option's type beside its name, while the form shows field types: in words, as an open option says it
1558
+ var typeLabel = typeShown ? typeWords : undefined;
1390
1559
  // A `readonly` field is one the system owns — an assigned id, a recorded
1391
1560
  // provenance. The server states that on the field itself; only the older
1392
1561
  // compat projection also mapped it to `disabled`, so on this path the form
@@ -1439,7 +1608,13 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1439
1608
  // "Depends on" dropdown whose items are the blocking fields (an "any of:"
1440
1609
  // divider for OR-groups), each clickable to flash/locate the blocker.
1441
1610
  var dependsOnChip = fieldDisabled && dependencyEntries.length ?
1442
- (0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex' }, role: 'presentation', onClick: function (e) { return e.stopPropagation(); }, onKeyDown: function (e) { return e.stopPropagation(); }, onMouseEnter: function () { return setHighlightedOptions(depHighlightNames); }, onMouseLeave: function () { return setHighlightedOptions([]); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-readfirst-lock-deps', size: 'tiny', minimal: true, flat: true, compact: true, icon: 'LockLine', tooltip: 'Disabled \u2014 depends on other fields. Click to locate them.', items: __spreadArray([
1611
+ (0, jsx_runtime_1.jsx)("span", { style: { display: 'inline-flex' }, role: 'presentation', onClick: function (e) { return e.stopPropagation(); }, onKeyDown: function (e) { return e.stopPropagation(); },
1612
+ // a mouse's hover, not a tap's emulated one: see `isHoveringPointer`
1613
+ onPointerEnter: function (e) {
1614
+ if ((0, hoveringPointer_1.isHoveringPointer)(e)) {
1615
+ setHighlightedOptions(depHighlightNames);
1616
+ }
1617
+ }, onPointerLeave: function () { return setHighlightedOptions([]); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-readfirst-lock-deps', size: 'tiny', minimal: true, flat: true, compact: true, icon: 'LockLine', tooltip: 'Disabled \u2014 depends on other fields. Click to locate them.', items: __spreadArray([
1443
1618
  { divider: true, label: 'Unlocked by:', dividerAlign: 'left' }
1444
1619
  ], dependencyEntries.flatMap(function (entry) { return __spreadArray(__spreadArray([], (Array.isArray(entry) ?
1445
1620
  [{ divider: true, label: 'any of:', dividerAlign: 'left' }]
@@ -1470,7 +1645,12 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1470
1645
  // change has said exactly what they want, and answering with silence
1471
1646
  // teaches them the surface is broken.
1472
1647
  if (fieldDisabled || readOnly) {
1473
- if (readOnly && !fieldDisabled) {
1648
+ // ...except a row whose line cannot show what it holds: it opens its card to be read (`readOnlyOpens`)
1649
+ if (readOnlyOpens && !fieldDisabled) {
1650
+ // what the row was drawn as decides: open, it closes; closed, it opens (see expandOption)
1651
+ (isExpanded ? collapseOption : expandOption)(optionName);
1652
+ }
1653
+ else if (readOnly && !fieldDisabled) {
1474
1654
  onReadOnlyActivate === null || onReadOnlyActivate === void 0 ? void 0 : onReadOnlyActivate(optionName);
1475
1655
  }
1476
1656
  return;
@@ -1487,7 +1667,11 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1487
1667
  // not-yet-set field just expands its editor (with an empty value); it joins
1488
1668
  // the form's output the moment a value is set (and moves to Set / Needs
1489
1669
  // attention), and drops back to Optional when cleared. No explicit add step.
1490
- toggleExpandedOption(optionName);
1670
+ //
1671
+ // What the row was drawn as decides, not the state by the time the update lands: a click on a row drawn
1672
+ // closed opens it, even if the first-required scan's update has opened it in the meantime (a toggle closed
1673
+ // it again: qorus#646, the Qorus IDE's Schema "Draft Is Saved").
1674
+ (isExpanded ? collapseOption : expandOption)(optionName);
1491
1675
  };
1492
1676
  // Row chrome: icon/image before the label; schema `intent` as the edge
1493
1677
  // stripe (message-severity stripes win when both apply).
@@ -1530,23 +1714,28 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1530
1714
  go. Then it takes a button's role, focus and keyboard handling, because
1531
1715
  a thing that acts on a click has to be reachable without a mouse and has
1532
1716
  to announce what it does — and "Edit X", not "X", is what it does. */
1533
- var readOnlyIsAWayIn = !!readOnly && !fieldDisabled && !!onReadOnlyActivate;
1534
- var actsOnClick = !readOnly || readOnlyIsAWayIn;
1717
+ var readOnlyIsAWayIn = !!readOnly && !fieldDisabled && !readOnlyOpens && !!onReadOnlyActivate;
1718
+ var actsOnClick = !readOnly || readOnlyIsAWayIn || readOnlyOpens;
1535
1719
  var row = ((0, jsx_runtime_1.jsxs)("div", __assign({ "data-field": optionName, role: actsOnClick ? 'button' : undefined, tabIndex: actsOnClick ? 0 : undefined, "aria-label": readOnlyIsAWayIn ? "Edit ".concat(label)
1536
- : readOnly ? undefined
1537
- : label, className: "readfirst-row options-readfirst-value".concat(readOnly ? ' readfirst-row-read' : '').concat(readOnlyIsAWayIn ? ' readfirst-row-way-in' : '').concat(hidden ? ' readfirst-row-hidden' : '').concat(fieldDisabled ? ' readfirst-row-disabled' : '').concat(isHighlighted ? ' readfirst-row-group-highlight' : '').concat(isFlashed ? ' readfirst-row-flash' : '').concat(showLabelDesc ? ' readfirst-row-info-open' : '').concat(panelMessages.length || showStructuredPreview || showCodePreview || showMarkdownPreview || showLongTextInset ? ' readfirst-row-tall' : '').concat(clusterBlockClass ? ' ' + clusterBlockClass : ''), "aria-disabled": fieldDisabled || undefined, style: readOnlyIsAWayIn ? __assign(__assign({}, stripeStyle), { cursor: 'pointer' }) : stripeStyle, onClick: actsOnClick ? activate : undefined, onKeyDown: !actsOnClick ? undefined : (function (event) {
1720
+ : readOnlyOpens ?
1721
+ "View ".concat(label)
1722
+ : readOnly ?
1723
+ undefined
1724
+ : label, className: "readfirst-row options-readfirst-value".concat(readOnly ? ' readfirst-row-read' : '').concat(readOnlyIsAWayIn || readOnlyOpens ? ' readfirst-row-way-in' : '').concat(readOnlyOpens ? ' readfirst-row-opens' : '').concat(hidden ? ' readfirst-row-hidden' : '').concat(fieldDisabled ? ' readfirst-row-disabled' : '').concat(isHighlighted ? ' readfirst-row-group-highlight' : '').concat(isFlashed ? ' readfirst-row-flash' : '').concat(showLabelDesc ? ' readfirst-row-info-open' : '').concat(panelMessages.length || showStructuredPreview || showCodePreview || showMarkdownPreview || showLongTextInset ? ' readfirst-row-tall' : '').concat(clusterBlockClass ? ' ' + clusterBlockClass : ''), "aria-disabled": fieldDisabled || undefined, style: readOnlyIsAWayIn || readOnlyOpens ? __assign(__assign({}, stripeStyle), { cursor: 'pointer' }) : stripeStyle, onClick: actsOnClick ? activate : undefined, onKeyDown: !actsOnClick ? undefined : (function (event) {
1538
1725
  if (event.key === 'Enter' || event.key === ' ') {
1539
1726
  event.preventDefault();
1540
1727
  activate(event);
1541
1728
  }
1542
- }) }, clusterHoverProps, { children: [clusterNode, (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelBlock, { className: 'options-readfirst-label-block', children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowLabel, { title: (schema === null || schema === void 0 ? void 0 : schema.short_desc) || undefined, "$color": cKey, children: [rowChromeIcon, (0, jsx_runtime_1.jsxs)("span", { className: 'options-readfirst-label-text', style: { minWidth: 0 }, children: [label, requiredMark ?
1543
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: 'danger', size: '10px', margin: 'left', marginSize: 'tiny' })
1544
- : null, helpIcon] }), typeLabel ?
1545
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'tiny', minimal: true, label: typeLabel, labelEffect: { opacity: 0.55 } })
1729
+ }) }, clusterHoverProps, { children: [clusterNode, (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelBlock, { className: 'options-readfirst-label-block', children: [(0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowLabel, { title: labelHover, "$color": cKey, children: [rowChromeIcon, (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledLabelName, { children: [(0, jsx_runtime_1.jsxs)("span", { className: 'options-readfirst-label-text', style: { minWidth: 0 }, children: [label, requiredMark ?
1730
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', color: rowInks.danger, size: '10px', margin: 'left', marginSize: 'tiny' })
1731
+ : null] }), helpIcon] }), typeLabel ?
1732
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreTag, { size: 'tiny', minimal: true, className: 'options-readfirst-type', label: typeLabel, labelEffect: { opacity: rowInks.descOpacity } })
1546
1733
  : null] }), showLabelDesc ?
1547
- (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledLabelDesc, { className: 'options-readfirst-label-desc', size: 'small', effect: { opacity: 0.55 }, children: labelShortDesc })
1734
+ /* A sentence in the label's own type, clamped to three lines: drawn as the prose its markdown
1735
+ renders to, never its marks (`markdownToProse`). */
1736
+ (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledLabelDesc, { className: 'options-readfirst-label-desc', size: 'small', effect: { opacity: rowInks.descOpacity }, children: (0, readFirst_1.markdownToProse)(labelShortDesc) })
1548
1737
  : null, codeSizeNode, lineCountNote ?
1549
- (0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { className: 'options-readfirst-label-lines', size: 'tiny', effect: { opacity: 0.45, textAlign: 'left' }, style: { fontFamily: 'monospace' }, children: lineCountNote })
1738
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { className: 'options-readfirst-label-lines', size: 'tiny', effect: { opacity: rowInks.noteOpacity, textAlign: 'left' }, style: { fontFamily: compactRowStyles_1.MONO_FONT_STACK }, children: lineCountNote })
1550
1739
  : null] }), (0, jsx_runtime_1.jsxs)(compactRowStyles_1.StyledRowValue
1551
1740
  // A code field draws its whole value in the preview below, with
1552
1741
  // "Show more" for the rest, so a hover carrying the same text is
@@ -1574,12 +1763,22 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1574
1763
  !showsTemplateText &&
1575
1764
  typeof formatted === 'string') ?
1576
1765
  formatted
1577
- : undefined, "$color": empty || hidden ? "".concat(cMuted, "66") : cKey, "$empty": empty || hidden, children: [(showMarkdownPreview || showLongTextInset || (previewWithSchema && showStructuredPreview)) ?
1766
+ : undefined, "$color": empty || hidden ? rowInks.emptyValue : cKey, "$empty": empty || hidden, children: [(showMarkdownPreview || showLongTextInset || (previewWithSchema && showStructuredPreview)) ?
1578
1767
  null
1579
- : (0, jsx_runtime_1.jsx)("span", { className: 'options-readfirst-valuetext', children: hidden || empty ?
1580
- formattedDefault || '—'
1581
- : renderReadFirstValue(optionField, schema, formatted, readOnly) }), readOnlyChoiceDesc ?
1582
- (0, jsx_runtime_1.jsx)("span", { className: 'options-readfirst-choice-desc', children: readOnlyChoiceDesc })
1768
+ : (0, jsx_runtime_1.jsx)("span", { className: 'options-readfirst-valuetext', children: ReadSummary && !hidden ?
1769
+ /* the host's own summary: an editor that reports a status says it here, set or not
1770
+ ("Field mappings required", "… incomplete"), where "2 items" said nothing of it (qorus#646) */
1771
+ (0, jsx_runtime_1.jsx)(ReadSummary, { name: optionName, value: optionField === null || optionField === void 0 ? void 0 : optionField.value, schema: schema, formatted: formatted })
1772
+ : hidden || empty ?
1773
+ formattedDefault || '—'
1774
+ : renderReadFirstValue(optionField, schema, formatted, readOnly) }), readOnlyChoiceDesc ?
1775
+ /* What the chosen option means, on its own line: the server writes it in markdown ("Each
1776
+ `POST /conversations` ..."), so the host's renderer draws it, as it draws the schema messages
1777
+ below; without one, it reads as the plain text it renders to, its paragraphs kept. A block, as
1778
+ what is drawn is. */
1779
+ (0, jsx_runtime_1.jsx)("div", { className: 'options-readfirst-choice-desc', children: markdownRenderer ?
1780
+ markdownRenderer({ value: readOnlyChoiceDesc, compact: true })
1781
+ : (0, markdownText_1.plainTextNode)(readOnlyChoiceDesc) })
1583
1782
  : null, valueReasons.map(function (m, i) { return ((0, jsx_runtime_1.jsx)("span", { className: 'options-readfirst-reason', style: { color: reasonColor(m.intent) }, children: m.content }, "".concat(m.content, "-").concat(i))); }), panelMessages.length ?
1584
1783
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreControlGroup, { className: 'options-readfirst-info-panel', vertical: true, fluid: true, gapSize: 'normal', children: panelMessages.map(renderInfoStrip) })
1585
1784
  : null, showStructuredPreview ?
@@ -1622,7 +1821,7 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1622
1821
  // lives (qorus-ide registers its brand purple there).
1623
1822
  // Falling back to `info` keeps this working for a
1624
1823
  // consumer that registers nothing — the heading is
1625
- // accented either way, just in the theme's own colour
1824
+ // accented either way, just in the theme's own color
1626
1825
  // rather than one this library picked.
1627
1826
  accent: ((_q = theme === null || theme === void 0 ? void 0 : theme.intents) === null || _q === void 0 ? void 0 : _q.custom1) || cInfo,
1628
1827
  }, onItemClick: function () { return activate(); } })
@@ -1636,7 +1835,12 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1636
1835
  options: options,
1637
1836
  values: availableOptions,
1638
1837
  })
1639
- : (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledCodePreview, { className: 'options-readfirst-code', "$bg": cHover, "$border": "".concat(cDivider, "88"), "$fg": cKey, children: optionField.value }) }) })
1838
+ : CodeEditor ?
1839
+ /* Code is shown as the host shows code: its own editor, read-only, given what it inherits (its
1840
+ language) - highlighted, with its language server - and as a plain block only where there is
1841
+ none (qorus#646, David's decision). */
1842
+ (0, jsx_runtime_1.jsx)("div", { className: 'options-readfirst-code options-readfirst-code-editor', children: (0, jsx_runtime_1.jsx)(CodeEditor, __assign({}, schema, (0, inheritProps_1.resolveInheritProps)(schema === null || schema === void 0 ? void 0 : schema.inherit_props, availableOptions), { name: optionName, value: optionField.value, readOnly: true, onChange: ignoreReadOnlyChange })) })
1843
+ : (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledCodePreview, { className: 'options-readfirst-code', "$bg": cHover, "$border": "".concat(cDivider, "88"), "$fg": cKey, children: optionField.value }) }) })
1640
1844
  : null, showMarkdownPreview ?
1641
1845
  (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledRowInset, { className: 'options-readfirst-inset options-readfirst-markdown-inset', onClick: function (e) { return e.stopPropagation(); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreCollapsibleContent, { maxCollapsedHeight: 96, buttonProps: { className: 'options-readfirst-viewmore' }, children: (0, jsx_runtime_1.jsx)("div", { className: 'options-readfirst-markdown', children: markdownRenderer({ value: optionField.value, compact: true }) }) }) })
1642
1846
  : null, showLongTextInset ?
@@ -1656,9 +1860,9 @@ exports.CompactRow = (0, react_1.memo)(function (_a) {
1656
1860
  onClick: function (event) { return event.stopPropagation(); }, children: (0, jsx_runtime_1.jsx)(reqore_1.ReqoreDropdown, { className: 'options-injected-actions-menu', icon: 'MoreFill', flat: true, minimal: true, fixed: true, size: 'tiny', tooltip: 'Field actions', items: injectedOptionActionMenuItems }) })
1657
1861
  : null, (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledActionSlot, { className: 'options-readfirst-statusdot-slot', "$width": 12, children: changed && !readOnly && !hidden ?
1658
1862
  (0, jsx_runtime_1.jsx)(reqore_1.ReqoreButton, { className: 'options-readfirst-revert', size: 'tiny', flat: true, minimal: true, compact: true, icon: 'HistoryLine', tooltip: 'Revert changes', onClick: function (e) {
1659
- var _a, _b, _c, _d;
1863
+ var _a;
1660
1864
  e.stopPropagation();
1661
- handleValueChange(optionName, (_b = (_a = originalValue.current) === null || _a === void 0 ? void 0 : _a[optionName]) === null || _b === void 0 ? void 0 : _b.value, (_d = (_c = originalValue.current) === null || _c === void 0 ? void 0 : _c[optionName]) === null || _d === void 0 ? void 0 : _d.type);
1865
+ handleValueChange.apply(void 0, __spreadArray([optionName], (0, argumentPresence_1.restoredFieldChange)((_a = originalValue.current) === null || _a === void 0 ? void 0 : _a[optionName]), false));
1662
1866
  } })
1663
1867
  : dotColor ?
1664
1868
  (0, jsx_runtime_1.jsx)(compactRowStyles_1.StyledStatusDot, { "$color": dotColor, "$ring": dotStatus !== 'set', "aria-hidden": true })