@qoretechnologies/reqraft 0.10.25 → 0.10.26

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 (310) hide show
  1. package/.claude/CLAUDE.md +52 -23
  2. package/design/COMPACT_ENGINE_REDESIGN.md +156 -0
  3. package/design/FORM_ENGINE_COMPACT_UX_PLAN.md +353 -0
  4. package/dist/components/FocusedEditing/index.d.ts +9 -1
  5. package/dist/components/FocusedEditing/index.d.ts.map +1 -1
  6. package/dist/components/FocusedEditing/index.js +2 -2
  7. package/dist/components/FocusedEditing/index.js.map +1 -1
  8. package/dist/components/composer/Composer.d.ts +108 -0
  9. package/dist/components/composer/Composer.d.ts.map +1 -0
  10. package/dist/components/composer/Composer.js +238 -0
  11. package/dist/components/composer/Composer.js.map +1 -0
  12. package/dist/components/composer/helpers.d.ts +21 -0
  13. package/dist/components/composer/helpers.d.ts.map +1 -0
  14. package/dist/components/composer/helpers.js +75 -0
  15. package/dist/components/composer/helpers.js.map +1 -0
  16. package/dist/components/composer/index.d.ts +3 -0
  17. package/dist/components/composer/index.d.ts.map +1 -0
  18. package/dist/components/composer/index.js +19 -0
  19. package/dist/components/composer/index.js.map +1 -0
  20. package/dist/components/form/engine/CompactRow.d.ts.map +1 -1
  21. package/dist/components/form/engine/CompactRow.js +307 -110
  22. package/dist/components/form/engine/CompactRow.js.map +1 -1
  23. package/dist/components/form/engine/CompactToolbar.d.ts.map +1 -1
  24. package/dist/components/form/engine/CompactToolbar.js +123 -106
  25. package/dist/components/form/engine/CompactToolbar.js.map +1 -1
  26. package/dist/components/form/engine/FormEngine.d.ts +107 -11
  27. package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
  28. package/dist/components/form/engine/FormEngine.js +618 -179
  29. package/dist/components/form/engine/FormEngine.js.map +1 -1
  30. package/dist/components/form/engine/compactRowContext.d.ts +9 -0
  31. package/dist/components/form/engine/compactRowContext.d.ts.map +1 -1
  32. package/dist/components/form/engine/compactRowContext.js.map +1 -1
  33. package/dist/components/form/engine/compactRowStyles.d.ts +7 -3
  34. package/dist/components/form/engine/compactRowStyles.d.ts.map +1 -1
  35. package/dist/components/form/engine/compactRowStyles.js +88 -51
  36. package/dist/components/form/engine/compactRowStyles.js.map +1 -1
  37. package/dist/components/form/engine/compactToolbarContext.d.ts +1 -0
  38. package/dist/components/form/engine/compactToolbarContext.d.ts.map +1 -1
  39. package/dist/components/form/engine/compactToolbarContext.js.map +1 -1
  40. package/dist/components/form/engine/optionActions.d.ts +28 -0
  41. package/dist/components/form/engine/optionActions.d.ts.map +1 -0
  42. package/dist/components/form/engine/optionActions.js +18 -0
  43. package/dist/components/form/engine/optionActions.js.map +1 -0
  44. package/dist/components/form/engine/readFirst.d.ts +63 -2
  45. package/dist/components/form/engine/readFirst.d.ts.map +1 -1
  46. package/dist/components/form/engine/readFirst.js +121 -6
  47. package/dist/components/form/engine/readFirst.js.map +1 -1
  48. package/dist/components/form/engine/rendererTypes.d.ts +35 -0
  49. package/dist/components/form/engine/rendererTypes.d.ts.map +1 -0
  50. package/dist/components/form/engine/rendererTypes.js +63 -0
  51. package/dist/components/form/engine/rendererTypes.js.map +1 -0
  52. package/dist/components/form/engine/variants/VariantCalmTable.d.ts +6 -0
  53. package/dist/components/form/engine/variants/VariantCalmTable.d.ts.map +1 -0
  54. package/dist/components/form/engine/variants/VariantCalmTable.js +94 -0
  55. package/dist/components/form/engine/variants/VariantCalmTable.js.map +1 -0
  56. package/dist/components/form/engine/variants/VariantCards.d.ts +6 -0
  57. package/dist/components/form/engine/variants/VariantCards.d.ts.map +1 -0
  58. package/dist/components/form/engine/variants/VariantCards.js +80 -0
  59. package/dist/components/form/engine/variants/VariantCards.js.map +1 -0
  60. package/dist/components/form/engine/variants/VariantFocus.d.ts +7 -0
  61. package/dist/components/form/engine/variants/VariantFocus.d.ts.map +1 -0
  62. package/dist/components/form/engine/variants/VariantFocus.js +138 -0
  63. package/dist/components/form/engine/variants/VariantFocus.js.map +1 -0
  64. package/dist/components/form/engine/variants/VariantMinimal.d.ts +6 -0
  65. package/dist/components/form/engine/variants/VariantMinimal.d.ts.map +1 -0
  66. package/dist/components/form/engine/variants/VariantMinimal.js +73 -0
  67. package/dist/components/form/engine/variants/VariantMinimal.js.map +1 -0
  68. package/dist/components/form/engine/variants/focusDemo.d.ts +13 -0
  69. package/dist/components/form/engine/variants/focusDemo.d.ts.map +1 -0
  70. package/dist/components/form/engine/variants/focusDemo.js +139 -0
  71. package/dist/components/form/engine/variants/focusDemo.js.map +1 -0
  72. package/dist/components/form/engine/variants/variantModel.d.ts +70 -0
  73. package/dist/components/form/engine/variants/variantModel.d.ts.map +1 -0
  74. package/dist/components/form/engine/variants/variantModel.js +133 -0
  75. package/dist/components/form/engine/variants/variantModel.js.map +1 -0
  76. package/dist/components/form/engine/variants/variantParts.d.ts +79 -0
  77. package/dist/components/form/engine/variants/variantParts.d.ts.map +1 -0
  78. package/dist/components/form/engine/variants/variantParts.js +191 -0
  79. package/dist/components/form/engine/variants/variantParts.js.map +1 -0
  80. package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
  81. package/dist/components/form/expressions/builder/index.js +13 -2
  82. package/dist/components/form/expressions/builder/index.js.map +1 -1
  83. package/dist/components/form/expressions/useExpressions.d.ts.map +1 -1
  84. package/dist/components/form/expressions/useExpressions.js +4 -1
  85. package/dist/components/form/expressions/useExpressions.js.map +1 -1
  86. package/dist/components/form/fields/Field.d.ts.map +1 -1
  87. package/dist/components/form/fields/Field.js +5 -3
  88. package/dist/components/form/fields/Field.js.map +1 -1
  89. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts +2 -1
  90. package/dist/components/form/fields/allowed-values/AllowedValues.d.ts.map +1 -1
  91. package/dist/components/form/fields/allowed-values/AllowedValues.js +8 -26
  92. package/dist/components/form/fields/allowed-values/AllowedValues.js.map +1 -1
  93. package/dist/components/form/fields/auto/AutoFormField.d.ts +3 -0
  94. package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
  95. package/dist/components/form/fields/auto/AutoFormField.js +42 -8
  96. package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
  97. package/dist/components/form/fields/binary/Binary.d.ts +15 -0
  98. package/dist/components/form/fields/binary/Binary.d.ts.map +1 -0
  99. package/dist/components/form/fields/binary/Binary.js +74 -0
  100. package/dist/components/form/fields/binary/Binary.js.map +1 -0
  101. package/dist/components/form/fields/boolean/Boolean.js +1 -1
  102. package/dist/components/form/fields/boolean/Boolean.js.map +1 -1
  103. package/dist/components/form/fields/multi-select/MultiSelectFormField.d.ts.map +1 -1
  104. package/dist/components/form/fields/multi-select/MultiSelectFormField.js +5 -4
  105. package/dist/components/form/fields/multi-select/MultiSelectFormField.js.map +1 -1
  106. package/dist/components/form/fields/select/Select.d.ts.map +1 -1
  107. package/dist/components/form/fields/select/Select.js +29 -12
  108. package/dist/components/form/fields/select/Select.js.map +1 -1
  109. package/dist/components/form/fields/select/SelectCollection.d.ts +8 -2
  110. package/dist/components/form/fields/select/SelectCollection.d.ts.map +1 -1
  111. package/dist/components/form/fields/select/SelectCollection.js +52 -16
  112. package/dist/components/form/fields/select/SelectCollection.js.map +1 -1
  113. package/dist/components/form/index.d.ts +2 -0
  114. package/dist/components/form/index.d.ts.map +1 -1
  115. package/dist/components/form/index.js +2 -0
  116. package/dist/components/form/index.js.map +1 -1
  117. package/dist/components/imageLightbox/ImageLightbox.d.ts +21 -0
  118. package/dist/components/imageLightbox/ImageLightbox.d.ts.map +1 -0
  119. package/dist/components/imageLightbox/ImageLightbox.js +169 -0
  120. package/dist/components/imageLightbox/ImageLightbox.js.map +1 -0
  121. package/dist/components/imageLightbox/index.d.ts +2 -0
  122. package/dist/components/imageLightbox/index.d.ts.map +1 -0
  123. package/dist/components/imageLightbox/index.js +18 -0
  124. package/dist/components/imageLightbox/index.js.map +1 -0
  125. package/dist/components/searchFilterBar/SearchFilterBar.d.ts +33 -0
  126. package/dist/components/searchFilterBar/SearchFilterBar.d.ts.map +1 -0
  127. package/dist/components/searchFilterBar/SearchFilterBar.js +76 -0
  128. package/dist/components/searchFilterBar/SearchFilterBar.js.map +1 -0
  129. package/dist/components/searchFilterBar/index.d.ts +2 -0
  130. package/dist/components/searchFilterBar/index.d.ts.map +1 -0
  131. package/dist/components/searchFilterBar/index.js +18 -0
  132. package/dist/components/searchFilterBar/index.js.map +1 -0
  133. package/dist/components/supportTicket/AttachmentChips.d.ts +10 -0
  134. package/dist/components/supportTicket/AttachmentChips.d.ts.map +1 -0
  135. package/dist/components/supportTicket/AttachmentChips.js +122 -0
  136. package/dist/components/supportTicket/AttachmentChips.js.map +1 -0
  137. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts +43 -0
  138. package/dist/components/supportTicket/InterfaceReferenceTags.d.ts.map +1 -0
  139. package/dist/components/supportTicket/InterfaceReferenceTags.js +31 -0
  140. package/dist/components/supportTicket/InterfaceReferenceTags.js.map +1 -0
  141. package/dist/components/supportTicket/ReferencePicker.d.ts +87 -0
  142. package/dist/components/supportTicket/ReferencePicker.d.ts.map +1 -0
  143. package/dist/components/supportTicket/ReferencePicker.js +295 -0
  144. package/dist/components/supportTicket/ReferencePicker.js.map +1 -0
  145. package/dist/components/supportTicket/TicketHeader.d.ts +86 -0
  146. package/dist/components/supportTicket/TicketHeader.d.ts.map +1 -0
  147. package/dist/components/supportTicket/TicketHeader.js +149 -0
  148. package/dist/components/supportTicket/TicketHeader.js.map +1 -0
  149. package/dist/components/supportTicket/TicketMetaTags.d.ts +32 -0
  150. package/dist/components/supportTicket/TicketMetaTags.d.ts.map +1 -0
  151. package/dist/components/supportTicket/TicketMetaTags.js +21 -0
  152. package/dist/components/supportTicket/TicketMetaTags.js.map +1 -0
  153. package/dist/components/supportTicket/TicketReplyBox.d.ts +63 -0
  154. package/dist/components/supportTicket/TicketReplyBox.d.ts.map +1 -0
  155. package/dist/components/supportTicket/TicketReplyBox.js +115 -0
  156. package/dist/components/supportTicket/TicketReplyBox.js.map +1 -0
  157. package/dist/components/supportTicket/attachmentAccess.d.ts +37 -0
  158. package/dist/components/supportTicket/attachmentAccess.d.ts.map +1 -0
  159. package/dist/components/supportTicket/attachmentAccess.js +132 -0
  160. package/dist/components/supportTicket/attachmentAccess.js.map +1 -0
  161. package/dist/components/supportTicket/fileToAttachment.d.ts +9 -0
  162. package/dist/components/supportTicket/fileToAttachment.d.ts.map +1 -0
  163. package/dist/components/supportTicket/fileToAttachment.js +28 -0
  164. package/dist/components/supportTicket/fileToAttachment.js.map +1 -0
  165. package/dist/components/supportTicket/index.d.ts +11 -0
  166. package/dist/components/supportTicket/index.d.ts.map +1 -0
  167. package/dist/components/supportTicket/index.js +27 -0
  168. package/dist/components/supportTicket/index.js.map +1 -0
  169. package/dist/components/supportTicket/meta.d.ts +71 -0
  170. package/dist/components/supportTicket/meta.d.ts.map +1 -0
  171. package/dist/components/supportTicket/meta.js +115 -0
  172. package/dist/components/supportTicket/meta.js.map +1 -0
  173. package/dist/components/supportTicket/ticketModel.d.ts +102 -0
  174. package/dist/components/supportTicket/ticketModel.d.ts.map +1 -0
  175. package/dist/components/supportTicket/ticketModel.js +3 -0
  176. package/dist/components/supportTicket/ticketModel.js.map +1 -0
  177. package/dist/components/ticketReferences/TicketReferences.d.ts +52 -0
  178. package/dist/components/ticketReferences/TicketReferences.d.ts.map +1 -0
  179. package/dist/components/ticketReferences/TicketReferences.js +492 -0
  180. package/dist/components/ticketReferences/TicketReferences.js.map +1 -0
  181. package/dist/components/ticketReferences/index.d.ts +3 -0
  182. package/dist/components/ticketReferences/index.d.ts.map +1 -0
  183. package/dist/components/ticketReferences/index.js +6 -0
  184. package/dist/components/ticketReferences/index.js.map +1 -0
  185. package/dist/components/ticketThread/TicketThread.d.ts +57 -0
  186. package/dist/components/ticketThread/TicketThread.d.ts.map +1 -0
  187. package/dist/components/ticketThread/TicketThread.js +299 -0
  188. package/dist/components/ticketThread/TicketThread.js.map +1 -0
  189. package/dist/components/ticketThread/index.d.ts +3 -0
  190. package/dist/components/ticketThread/index.d.ts.map +1 -0
  191. package/dist/components/ticketThread/index.js +7 -0
  192. package/dist/components/ticketThread/index.js.map +1 -0
  193. package/dist/helpers/common.d.ts +5 -0
  194. package/dist/helpers/common.d.ts.map +1 -1
  195. package/dist/helpers/common.js +20 -1
  196. package/dist/helpers/common.js.map +1 -1
  197. package/dist/helpers/scrollbar.d.ts +2 -0
  198. package/dist/helpers/scrollbar.d.ts.map +1 -0
  199. package/dist/helpers/scrollbar.js +25 -0
  200. package/dist/helpers/scrollbar.js.map +1 -0
  201. package/dist/index.d.ts +8 -1
  202. package/dist/index.d.ts.map +1 -1
  203. package/dist/index.js +10 -1
  204. package/dist/index.js.map +1 -1
  205. package/dist/providers/StorageProvider.d.ts +13 -0
  206. package/dist/providers/StorageProvider.d.ts.map +1 -1
  207. package/dist/providers/StorageProvider.js +29 -5
  208. package/dist/providers/StorageProvider.js.map +1 -1
  209. package/package.json +6 -5
  210. package/src/components/FocusedEditing/index.tsx +17 -2
  211. package/src/components/composer/Composer.stories.tsx +238 -0
  212. package/src/components/composer/Composer.tsx +545 -0
  213. package/src/components/composer/helpers.ts +74 -0
  214. package/src/components/composer/index.ts +2 -0
  215. package/src/components/dpqlEditor/DpqlEditor.stories.tsx +74 -2
  216. package/src/components/form/engine/CompactRow.tsx +561 -283
  217. package/src/components/form/engine/CompactToolbar.tsx +216 -182
  218. package/src/components/form/engine/FormEngine.stories.tsx +1736 -162
  219. package/src/components/form/engine/FormEngine.tsx +886 -170
  220. package/src/components/form/engine/FormEngineRemote.stories.tsx +377 -0
  221. package/src/components/form/engine/_structuredData/StructuredDataView.stories.tsx +8 -0
  222. package/src/components/form/engine/compactRowContext.ts +14 -0
  223. package/src/components/form/engine/compactRowStyles.ts +273 -146
  224. package/src/components/form/engine/compactToolbarContext.ts +1 -0
  225. package/src/components/form/engine/optionActions.ts +40 -0
  226. package/src/components/form/engine/readFirst.ts +169 -10
  227. package/src/components/form/engine/rendererTypes.ts +55 -0
  228. package/src/components/form/engine/variants/FormEngineVariants.stories.tsx +159 -0
  229. package/src/components/form/engine/variants/VariantCalmTable.tsx +242 -0
  230. package/src/components/form/engine/variants/VariantCards.tsx +212 -0
  231. package/src/components/form/engine/variants/VariantFocus.tsx +382 -0
  232. package/src/components/form/engine/variants/VariantMinimal.tsx +170 -0
  233. package/src/components/form/engine/variants/focusDemo.ts +145 -0
  234. package/src/components/form/engine/variants/variantModel.ts +216 -0
  235. package/src/components/form/engine/variants/variantParts.tsx +313 -0
  236. package/src/components/form/expressions/ExpressionField.stories.tsx +84 -2
  237. package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +213 -19
  238. package/src/components/form/expressions/builder/index.tsx +12 -1
  239. package/src/components/form/expressions/useExpressions.ts +4 -1
  240. package/src/components/form/fields/Field.stories.tsx +40 -0
  241. package/src/components/form/fields/Field.tsx +10 -1
  242. package/src/components/form/fields/allowed-values/AllowedValues.tsx +13 -36
  243. package/src/components/form/fields/array/ArrayAutoField.stories.tsx +64 -0
  244. package/src/components/form/fields/auto/AutoFormField.stories.tsx +146 -2
  245. package/src/components/form/fields/auto/AutoFormField.tsx +42 -1
  246. package/src/components/form/fields/binary/Binary.stories.tsx +122 -0
  247. package/src/components/form/fields/binary/Binary.tsx +81 -0
  248. package/src/components/form/fields/boolean/Boolean.stories.tsx +58 -0
  249. package/src/components/form/fields/boolean/Boolean.tsx +1 -1
  250. package/src/components/form/fields/byte-size/ByteSize.stories.tsx +24 -0
  251. package/src/components/form/fields/color/Color.stories.tsx +30 -0
  252. package/src/components/form/fields/cron/Cron.stories.tsx +8 -0
  253. package/src/components/form/fields/date/Date.stories.tsx +22 -0
  254. package/src/components/form/fields/file/File.stories.tsx +48 -0
  255. package/src/components/form/fields/long-string/LongString.stories.tsx +24 -0
  256. package/src/components/form/fields/markdown/Markdown.stories.tsx +8 -0
  257. package/src/components/form/fields/multi-select/MultiSelectFormField.tsx +14 -10
  258. package/src/components/form/fields/number/Number.stories.tsx +31 -0
  259. package/src/components/form/fields/object/Object.stories.tsx +88 -0
  260. package/src/components/form/fields/radio-group/RadioGroup.stories.tsx +24 -0
  261. package/src/components/form/fields/rich-text/RichText.stories.tsx +23 -0
  262. package/src/components/form/fields/schema-definition/SchemaDefinitionField.stories.tsx +72 -0
  263. package/src/components/form/fields/select/Select.stories.tsx +108 -0
  264. package/src/components/form/fields/select/Select.tsx +38 -12
  265. package/src/components/form/fields/select/SelectCollection.tsx +78 -17
  266. package/src/components/form/fields/string/String.stories.tsx +16 -0
  267. package/src/components/form/fields/template/TemplateField.stories.tsx +160 -0
  268. package/src/components/form/fields/url/Url.stories.tsx +24 -0
  269. package/src/components/form/index.tsx +2 -0
  270. package/src/components/imageLightbox/ImageLightbox.stories.tsx +238 -0
  271. package/src/components/imageLightbox/ImageLightbox.tsx +236 -0
  272. package/src/components/imageLightbox/index.ts +1 -0
  273. package/src/components/log/Log.stories.tsx +96 -0
  274. package/src/components/menu/Menu.stories.tsx +54 -0
  275. package/src/components/qonsoleSmartInput/QonsoleSmartInput.stories.tsx +83 -37
  276. package/src/components/searchFilterBar/SearchFilterBar.tsx +131 -0
  277. package/src/components/searchFilterBar/index.ts +1 -0
  278. package/src/components/smartEditor/SmartEditor.stories.tsx +32 -0
  279. package/src/components/supportTicket/AttachmentChips.stories.tsx +171 -0
  280. package/src/components/supportTicket/AttachmentChips.tsx +147 -0
  281. package/src/components/supportTicket/InterfaceReferenceTags.stories.tsx +171 -0
  282. package/src/components/supportTicket/InterfaceReferenceTags.tsx +96 -0
  283. package/src/components/supportTicket/ReferencePicker.stories.tsx +519 -0
  284. package/src/components/supportTicket/ReferencePicker.tsx +563 -0
  285. package/src/components/supportTicket/TicketConversation.stories.tsx +121 -0
  286. package/src/components/supportTicket/TicketHeader.stories.tsx +183 -0
  287. package/src/components/supportTicket/TicketHeader.tsx +247 -0
  288. package/src/components/supportTicket/TicketMetaTags.stories.tsx +103 -0
  289. package/src/components/supportTicket/TicketMetaTags.tsx +85 -0
  290. package/src/components/supportTicket/TicketReplyBox.stories.tsx +351 -0
  291. package/src/components/supportTicket/TicketReplyBox.tsx +146 -0
  292. package/src/components/supportTicket/attachmentAccess.ts +97 -0
  293. package/src/components/supportTicket/fileToAttachment.ts +24 -0
  294. package/src/components/supportTicket/index.ts +10 -0
  295. package/src/components/supportTicket/meta.ts +185 -0
  296. package/src/components/supportTicket/ticketModel.ts +131 -0
  297. package/src/components/ticketReferences/TicketReferences.stories.tsx +315 -0
  298. package/src/components/ticketReferences/TicketReferences.tsx +886 -0
  299. package/src/components/ticketReferences/index.ts +2 -0
  300. package/src/components/ticketThread/TicketThread.stories.tsx +828 -0
  301. package/src/components/ticketThread/TicketThread.tsx +704 -0
  302. package/src/components/ticketThread/index.ts +6 -0
  303. package/src/helpers/common.ts +19 -0
  304. package/src/helpers/scrollbar.ts +32 -0
  305. package/src/hooks/useFetch/useFetch.stories.tsx +30 -0
  306. package/src/hooks/useStorage/useStorage.stories.tsx +82 -0
  307. package/src/hooks/useWebSocket/useWebsocket.stories.tsx +127 -1
  308. package/src/index.tsx +8 -1
  309. package/src/providers/StorageProvider.tsx +30 -4
  310. package/src/stores/currentUser/currentUser.stories.tsx +49 -0
@@ -0,0 +1,138 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.VariantFocus = void 0;
11
+ var jsx_runtime_1 = require("react/jsx-runtime");
12
+ /**
13
+ * VARIANT 3 — "Focus" (production-leaning)
14
+ *
15
+ * The original Focus structure — three expandable boxes (Needs attention / Set /
16
+ * Optional) — with the engine's real functionality layered in:
17
+ * • REQUIRED (one-of) GROUPS highlighted as a "pick one" cluster in the box,
18
+ * • schema GROUPS as thin Minimal-style labels INSIDE the Set / Optional boxes,
19
+ * • a "Descriptions" toggle (short_desc under every field),
20
+ * • COMPLEX fields showing their nested value inline with Show-more,
21
+ * • real inline editing (AutoFormField) on click.
22
+ *
23
+ * Attention box and the rest are EXCLUSIVE: a field needing attention sits in the
24
+ * box until resolved, then drops into Set (or Optional) below.
25
+ */
26
+ var reqore_1 = require("@qoretechnologies/reqore");
27
+ var react_1 = __importDefault(require("react"));
28
+ var styled_components_1 = __importDefault(require("styled-components"));
29
+ var variantParts_1 = require("./variantParts");
30
+ var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 18px;\n font-size: 13px;\n\n .vf-row {\n display: grid;\n grid-template-columns: minmax(190px, 320px) minmax(0, 1fr) auto;\n column-gap: 16px;\n row-gap: 2px;\n align-items: center;\n /* Single-line rows: centre the content within the min-height. */\n align-content: center;\n min-height: 38px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n }\n /* Rows with a description / preview / editor below: pin the name+value to the\n top instead of centring the whole block. */\n .vf-row.vf-tall {\n align-content: start;\n }\n .vf-row:hover,\n .vf-row[aria-expanded='true'] {\n background: ", ";\n }\n .vf-section {\n border-radius: 12px;\n padding: 6px;\n }\n .vf-sechead {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n user-select: none;\n }\n .vf-grouplabel {\n font-size: 10px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 10px 0 2px 12px;\n }\n .vf-cluster {\n border-radius: 10px;\n padding: 4px 4px 6px;\n margin: 2px 0;\n }\n .vf-desc {\n grid-column: 1 / -1;\n padding: 0 0 2px;\n font-size: 12px;\n line-height: 1.45;\n }\n .vf-preview {\n grid-column: 2 / -1;\n padding: 2px 0 4px;\n }\n @media (max-width: 640px) {\n .vf-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label dot' 'value value';\n row-gap: 2px;\n }\n .vf-label {\n grid-area: label;\n }\n .vf-value {\n grid-area: value;\n }\n .vf-dot {\n grid-area: dot;\n }\n .vf-preview {\n grid-column: 1 / -1;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 18px;\n font-size: 13px;\n\n .vf-row {\n display: grid;\n grid-template-columns: minmax(190px, 320px) minmax(0, 1fr) auto;\n column-gap: 16px;\n row-gap: 2px;\n align-items: center;\n /* Single-line rows: centre the content within the min-height. */\n align-content: center;\n min-height: 38px;\n padding: 6px 12px;\n border-radius: 8px;\n cursor: pointer;\n }\n /* Rows with a description / preview / editor below: pin the name+value to the\n top instead of centring the whole block. */\n .vf-row.vf-tall {\n align-content: start;\n }\n .vf-row:hover,\n .vf-row[aria-expanded='true'] {\n background: ", ";\n }\n .vf-section {\n border-radius: 12px;\n padding: 6px;\n }\n .vf-sechead {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n cursor: pointer;\n user-select: none;\n }\n .vf-grouplabel {\n font-size: 10px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 10px 0 2px 12px;\n }\n .vf-cluster {\n border-radius: 10px;\n padding: 4px 4px 6px;\n margin: 2px 0;\n }\n .vf-desc {\n grid-column: 1 / -1;\n padding: 0 0 2px;\n font-size: 12px;\n line-height: 1.45;\n }\n .vf-preview {\n grid-column: 2 / -1;\n padding: 2px 0 4px;\n }\n @media (max-width: 640px) {\n .vf-row {\n grid-template-columns: 1fr auto;\n grid-template-areas: 'label dot' 'value value';\n row-gap: 2px;\n }\n .vf-label {\n grid-area: label;\n }\n .vf-value {\n grid-area: value;\n }\n .vf-dot {\n grid-area: dot;\n }\n .vf-preview {\n grid-column: 1 / -1;\n }\n }\n"])), function (_a) {
31
+ var $hover = _a.$hover;
32
+ return $hover;
33
+ });
34
+ var Row = function (_a) {
35
+ var _b;
36
+ var r = _a.r, form = _a.form, showDesc = _a.showDesc;
37
+ var c = (0, variantParts_1.useVariantColors)();
38
+ var editing = form.editing === r.name;
39
+ var isHash = r.value.kind === 'hash';
40
+ // A row is "tall" (has something below the name/value line) when editing, when
41
+ // it's a complex preview, or when descriptions are shown for it.
42
+ var tall = editing || isHash || (showDesc && !!r.shortDesc);
43
+ return ((0, jsx_runtime_1.jsxs)("div", { className: tall ? 'vf-row vf-tall' : 'vf-row', role: 'button', tabIndex: 0, "aria-expanded": editing, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vf-label', style: { fontWeight: 600, color: c.text, display: 'flex', alignItems: 'center', gap: 6, minWidth: 0 }, children: [r.label, r.required ?
44
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '9px', style: { color: c.danger } })
45
+ : null] }), (0, jsx_runtime_1.jsxs)("span", { className: 'vf-value', style: { color: c.muted, minWidth: 0 }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.reason && r.status !== 'set' ?
46
+ (0, jsx_runtime_1.jsx)("span", { style: { color: (0, variantParts_1.STATUS_COLOR)(r.status, c), fontSize: 12, marginLeft: 8 }, children: r.reason })
47
+ : null] }), (0, jsx_runtime_1.jsx)("span", { className: 'vf-dot', style: { display: 'inline-flex', justifyContent: 'flex-end' }, children: (0, jsx_runtime_1.jsx)(variantParts_1.StatusDot, { status: r.status }) }), showDesc && r.shortDesc && !editing ?
48
+ (0, jsx_runtime_1.jsx)("div", { className: 'vf-desc', style: { color: c.faint }, children: r.shortDesc })
49
+ : null, isHash && !editing ?
50
+ (0, jsx_runtime_1.jsx)("div", { className: 'vf-preview', children: (0, jsx_runtime_1.jsx)(variantParts_1.ComplexPreview, { value: (_b = r.field) === null || _b === void 0 ? void 0 : _b.value, onOpen: function () { return !r.readOnly && form.startEdit(r.name); } }) })
51
+ : null, editing ?
52
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { className: 'vf-desc', style: { color: c.faint }, children: r.shortDesc }) : null, (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit })] })
53
+ : null] }));
54
+ };
55
+ /** A one-of required group, highlighted: "pick one of these". */
56
+ var RequiredCluster = function (_a) {
57
+ var rows = _a.rows, form = _a.form, showDesc = _a.showDesc;
58
+ var c = (0, variantParts_1.useVariantColors)();
59
+ var tint = c.warning;
60
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'vf-cluster', style: { background: "".concat(tint, "10"), border: "1px solid ".concat(tint, "33") }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: 6, padding: '8px 0 2px 12px' }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'LinkM', size: '11px', style: { color: tint } }), (0, jsx_runtime_1.jsx)("span", { style: { fontSize: 10, letterSpacing: 1, textTransform: 'uppercase', color: tint }, children: "One of the below is required" })] }), rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }));
61
+ };
62
+ var Section = function (_a) {
63
+ var title = _a.title, intent = _a.intent, count = _a.count, children = _a.children, _b = _a.defaultOpen, defaultOpen = _b === void 0 ? true : _b;
64
+ var _c = react_1.default.useState(defaultOpen), open = _c[0], setOpen = _c[1];
65
+ if (!count)
66
+ return null;
67
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'vf-section', style: { background: "".concat(intent, "0e"), border: "1px solid ".concat(intent, "22") }, children: [(0, jsx_runtime_1.jsxs)("div", { className: 'vf-sechead', onClick: function () { return setOpen(function (o) { return !o; }); }, children: [(0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: open ? 'ArrowDownSLine' : 'ArrowRightSLine', size: '15px' }), (0, jsx_runtime_1.jsx)(reqore_1.ReqoreP, { effect: { weight: 'bold' }, children: title }), (0, jsx_runtime_1.jsx)("span", { style: {
68
+ background: "".concat(intent, "22"),
69
+ color: intent,
70
+ borderRadius: 20,
71
+ padding: '1px 9px',
72
+ fontSize: 12,
73
+ fontWeight: 700,
74
+ }, children: count })] }), open ? (0, jsx_runtime_1.jsx)("div", { children: children }) : null] }));
75
+ };
76
+ /** Rows of a given status, grouped by schema group with thin Minimal-style
77
+ * labels. Used inside the Set and Optional boxes. */
78
+ var GroupedRows = function (_a) {
79
+ var groups = _a.groups, status = _a.status, skip = _a.skip, form = _a.form, showDesc = _a.showDesc;
80
+ var c = (0, variantParts_1.useVariantColors)();
81
+ var sections = groups
82
+ .map(function (g) { return ({ g: g, rows: g.rows.filter(function (r) { return r.status === status && !skip.has(r.name); }) }); })
83
+ .filter(function (s) { return s.rows.length; });
84
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: sections.map(function (_a) {
85
+ var g = _a.g, rows = _a.rows;
86
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [sections.length > 1 ?
87
+ (0, jsx_runtime_1.jsx)("div", { className: 'vf-grouplabel', style: { color: c.faint }, children: g.label })
88
+ : null, rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }, g.name));
89
+ }) }));
90
+ };
91
+ var VariantFocus = function (_a) {
92
+ var options = _a.options, values = _a.values, config = _a.config;
93
+ var c = (0, variantParts_1.useVariantColors)();
94
+ var form = (0, variantParts_1.useVariantForm)(options, values, config);
95
+ var s = form.summary;
96
+ var showDesc = form.showDescriptions;
97
+ var allRows = form.visibleGroups.flatMap(function (g) { return g.rows; });
98
+ var unmetGroups = Object.values(form.requiredGroups).filter(function (g) { return !g.satisfied; });
99
+ var unmetMembers = new Set();
100
+ unmetGroups.forEach(function (g) { return g.members.forEach(function (m) { return unmetMembers.add(m); }); });
101
+ // Attention = invalid + individually-required-todo (NOT one-of members, which
102
+ // show as their cluster) + the unmet one-of clusters.
103
+ var attentionRows = allRows.filter(function (r) { return (r.status === 'invalid' || r.status === 'todo') && !unmetMembers.has(r.name); });
104
+ var attentionCount = attentionRows.length + unmetGroups.length;
105
+ var skip = new Set(attentionRows.map(function (r) { return r.name; }));
106
+ unmetMembers.forEach(function (n) { return skip.add(n); });
107
+ var setCount = allRows.filter(function (r) { return r.status === 'set' && !skip.has(r.name); }).length;
108
+ var optionalCount = allRows.filter(function (r) { return r.status === 'unset' && !skip.has(r.name); }).length;
109
+ // Group the attention items by schema group (placing each one-of cluster under
110
+ // its members' group) so the attention box reads like the Set / Optional boxes.
111
+ var clusterGroupName = function (members) { var _a; return (_a = form.visibleGroups.find(function (g) { return g.rows.some(function (r) { return r.name === members[0]; }); })) === null || _a === void 0 ? void 0 : _a.name; };
112
+ var attnGroups = form.visibleGroups
113
+ .map(function (g) { return ({
114
+ g: g,
115
+ rows: g.rows.filter(function (r) { return (r.status === 'invalid' || r.status === 'todo') && !unmetMembers.has(r.name); }),
116
+ clusters: unmetGroups.filter(function (rg) { return clusterGroupName(rg.members) === g.name; }),
117
+ }); })
118
+ .filter(function (x) { return x.rows.length || x.clusters.length; });
119
+ return ((0, jsx_runtime_1.jsxs)(Wrap, { "$hover": c.hover, "$faint": c.faint, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexFlow: 'column', gap: 10 }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'baseline', gap: 12, flexWrap: 'wrap' }, children: [(0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { size: 'big', effect: { weight: 'bold' }, children: [s.pct, "% complete"] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, fontSize: 12 }, children: [s.set, "/", s.total, " set"] }), s.attention ?
120
+ (0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
121
+ background: 'none',
122
+ border: 'none',
123
+ cursor: 'pointer',
124
+ color: c.warning,
125
+ fontSize: 12,
126
+ textDecoration: 'underline',
127
+ textUnderlineOffset: 3,
128
+ }, children: form.filter === 'attention' ? '← show all' : "".concat(s.attention, " need attention \u2192") })
129
+ : null] }), (0, jsx_runtime_1.jsxs)("div", { style: { height: 4, borderRadius: 2, background: c.line, overflow: 'hidden', display: 'flex' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.set / s.total) * 100, "%"), background: c.success } }), (0, jsx_runtime_1.jsx)("div", { style: { width: "".concat((s.attention / s.total) * 100, "%"), background: c.warning } })] })] }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), (0, jsx_runtime_1.jsx)(Section, { title: 'Needs attention', intent: c.warning, count: attentionCount, children: attnGroups.map(function (_a) {
130
+ var g = _a.g, rows = _a.rows, clusters = _a.clusters;
131
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [attnGroups.length > 1 ?
132
+ (0, jsx_runtime_1.jsx)("div", { className: 'vf-grouplabel', style: { color: c.faint }, children: g.label })
133
+ : null, clusters.map(function (cl) { return ((0, jsx_runtime_1.jsx)(RequiredCluster, { rows: allRows.filter(function (r) { return cl.members.includes(r.name); }), form: form, showDesc: showDesc }, cl.key)); }), rows.map(function (r) { return (0, jsx_runtime_1.jsx)(Row, { r: r, form: form, showDesc: showDesc }, r.name); })] }, g.name));
134
+ }) }), (0, jsx_runtime_1.jsx)(Section, { title: 'Set', intent: c.success, count: setCount, children: (0, jsx_runtime_1.jsx)(GroupedRows, { groups: form.visibleGroups, status: 'set', skip: skip, form: form, showDesc: showDesc }) }), (0, jsx_runtime_1.jsx)(Section, { title: 'Optional \u2014 not set', intent: c.muted, count: optionalCount, defaultOpen: false, children: (0, jsx_runtime_1.jsx)(GroupedRows, { groups: form.visibleGroups, status: 'unset', skip: skip, form: form, showDesc: showDesc }) })] }));
135
+ };
136
+ exports.VariantFocus = VariantFocus;
137
+ var templateObject_1;
138
+ //# sourceMappingURL=VariantFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariantFocus.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantFocus.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
2
+ export declare const VariantMinimal: ({ options, values, }: {
3
+ options: IQorusFormSchema;
4
+ values: Record<string, IQorusFormField>;
5
+ }) => import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=VariantMinimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariantMinimal.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantMinimal.tsx"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AA+DjF,eAAO,MAAM,cAAc,yBAGxB;IACD,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,OAAO,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC,4CA2FA,CAAC"}
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.VariantMinimal = void 0;
11
+ var jsx_runtime_1 = require("react/jsx-runtime");
12
+ /**
13
+ * VARIANT 4 — "Minimal" (Notion / Linear inspired)
14
+ *
15
+ * Direction: the lightest possible treatment. No surfaces, no boxes, no group
16
+ * panels — just a quiet `label · value` list with a hairline status tick on the
17
+ * left edge. TAP a row to reveal its description and edit it inline — NO hover
18
+ * dependency, so it behaves identically on phone. Densest of the four.
19
+ */
20
+ var reqore_1 = require("@qoretechnologies/reqore");
21
+ var react_1 = __importDefault(require("react"));
22
+ var styled_components_1 = __importDefault(require("styled-components"));
23
+ var variantParts_1 = require("./variantParts");
24
+ var Wrap = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-flow: column;\n gap: 4px;\n font-size: 13px;\n\n .vm-group {\n font-size: 11px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 16px 0 6px 14px;\n }\n .vm-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr);\n gap: 14px;\n align-items: baseline;\n padding: 7px 12px 7px 14px;\n border-left: 2px solid transparent;\n cursor: pointer;\n border-radius: 0 6px 6px 0;\n }\n .vm-row[aria-expanded='true'] {\n background: ", ";\n }\n @media (hover: hover) {\n .vm-row:hover {\n background: ", ";\n }\n }\n .vm-label {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vm-detail {\n grid-column: 1 / -1;\n color: ", ";\n padding: 4px 0 2px;\n font-size: 12px;\n line-height: 1.5;\n }\n @media (max-width: 620px) {\n .vm-row {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n }\n"], ["\n display: flex;\n flex-flow: column;\n gap: 4px;\n font-size: 13px;\n\n .vm-group {\n font-size: 11px;\n letter-spacing: 1px;\n text-transform: uppercase;\n padding: 16px 0 6px 14px;\n }\n .vm-row {\n display: grid;\n grid-template-columns: minmax(180px, 320px) minmax(0, 1fr);\n gap: 14px;\n align-items: baseline;\n padding: 7px 12px 7px 14px;\n border-left: 2px solid transparent;\n cursor: pointer;\n border-radius: 0 6px 6px 0;\n }\n .vm-row[aria-expanded='true'] {\n background: ", ";\n }\n @media (hover: hover) {\n .vm-row:hover {\n background: ", ";\n }\n }\n .vm-label {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n .vm-detail {\n grid-column: 1 / -1;\n color: ", ";\n padding: 4px 0 2px;\n font-size: 12px;\n line-height: 1.5;\n }\n @media (max-width: 620px) {\n .vm-row {\n grid-template-columns: 1fr;\n gap: 2px;\n }\n }\n"])), function (_a) {
25
+ var $hover = _a.$hover;
26
+ return $hover;
27
+ }, function (_a) {
28
+ var $hover = _a.$hover;
29
+ return $hover;
30
+ }, function (_a) {
31
+ var $faint = _a.$faint;
32
+ return $faint;
33
+ });
34
+ var VariantMinimal = function (_a) {
35
+ var options = _a.options, values = _a.values;
36
+ var c = (0, variantParts_1.useVariantColors)();
37
+ var form = (0, variantParts_1.useVariantForm)(options, values);
38
+ var s = form.summary;
39
+ return ((0, jsx_runtime_1.jsxs)(Wrap, { "$hover": c.hover, "$line": c.line, "$faint": c.faint, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
40
+ display: 'flex',
41
+ alignItems: 'center',
42
+ gap: 10,
43
+ padding: '0 12px 10px',
44
+ borderBottom: "1px solid ".concat(c.line),
45
+ }, children: [(0, jsx_runtime_1.jsx)("span", { style: { width: 8, height: 8, borderRadius: '50%', background: s.attention ? c.warning : c.success } }), (0, jsx_runtime_1.jsxs)(reqore_1.ReqoreP, { effect: { weight: 'bold' }, children: [s.pct, "%"] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, fontSize: 12 }, children: [s.set, "/", s.total, " set"] }), s.attention ?
46
+ (0, jsx_runtime_1.jsx)("button", { type: 'button', onClick: form.toggleAttention, style: {
47
+ background: 'none',
48
+ border: 'none',
49
+ cursor: 'pointer',
50
+ color: c.warning,
51
+ fontSize: 12,
52
+ textDecoration: 'underline',
53
+ textUnderlineOffset: 3,
54
+ }, children: form.filter === 'attention' ? '← all' : "".concat(s.attention, " to resolve \u2192") })
55
+ : null] }), (0, jsx_runtime_1.jsx)(variantParts_1.VariantToolbar, { form: form }), form.visibleGroups.map(function (g) { return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: 'vm-group', style: { color: c.faint }, children: g.label }), g.rows.map(function (r) {
56
+ var editing = form.editing === r.name;
57
+ var hasDetail = !!(r.shortDesc || r.longDesc);
58
+ return ((0, jsx_runtime_1.jsxs)("div", { className: 'vm-row', role: 'button', tabIndex: 0, "aria-expanded": editing, style: { borderLeftColor: r.status === 'set' || r.status === 'unset' ? 'transparent' : (0, variantParts_1.STATUS_COLOR)(r.status, c) }, onClick: function () { return !r.readOnly && form.startEdit(r.name); }, children: [(0, jsx_runtime_1.jsxs)("span", { className: 'vm-label', style: { color: c.text, fontWeight: 500 }, children: [r.label, r.required ?
59
+ (0, jsx_runtime_1.jsx)(reqore_1.ReqoreIcon, { icon: 'Asterisk', size: '8px', style: { color: c.danger } })
60
+ : null] }), (0, jsx_runtime_1.jsxs)("span", { style: { color: c.muted, minWidth: 0, display: 'inline-flex', alignItems: 'baseline', gap: 8 }, children: [(0, jsx_runtime_1.jsx)(variantParts_1.ValueView, { value: r.value }), r.status === 'invalid' || r.status === 'todo' ?
61
+ (0, jsx_runtime_1.jsxs)("span", { style: { color: (0, variantParts_1.STATUS_COLOR)(r.status, c), fontSize: 12 }, children: ["\u00B7 ", r.reason] })
62
+ : null] }), editing ?
63
+ (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [hasDetail ?
64
+ (0, jsx_runtime_1.jsxs)("div", { className: 'vm-detail', children: [r.shortDesc ? (0, jsx_runtime_1.jsx)("div", { children: r.shortDesc }) : null, r.longDesc ?
65
+ (0, jsx_runtime_1.jsx)("div", { style: { marginTop: r.shortDesc ? 4 : 0 }, children: r.longDesc.replace(/[#`*]/g, '') })
66
+ : null] })
67
+ : null, (0, jsx_runtime_1.jsx)(variantParts_1.InlineEdit, { row: r, onDone: form.stopEdit })] })
68
+ : null] }, r.name));
69
+ })] }, g.name)); })] }));
70
+ };
71
+ exports.VariantMinimal = VariantMinimal;
72
+ var templateObject_1;
73
+ //# sourceMappingURL=VariantMinimal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VariantMinimal.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/VariantMinimal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A richer, realistic demo schema for the Focus-Pro variant — exercises the
3
+ * features the basic fixture lacks: NAMED groups, a one-of REQUIRED GROUP,
4
+ * a complex nested hash (Show-more preview), allowed-values, files/lists, plus
5
+ * a mix of set / invalid / required-unset / optional states. Modelled loosely
6
+ * on a Qorus datasource connection config.
7
+ */
8
+ import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
9
+ export declare const getFocusDemoOptions: () => IQorusFormSchema;
10
+ export declare const focusDemoValue: Record<string, IQorusFormField>;
11
+ export declare const focusDemoInvalid: Record<string, string>;
12
+ export declare const focusDemoGroupLabels: Record<string, string>;
13
+ //# sourceMappingURL=focusDemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusDemo.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/focusDemo.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEjF,eAAO,MAAM,mBAAmB,QAAO,gBAwGJ,CAAC;AAEpC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAe1D,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAEnD,CAAC;AAGF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMvD,CAAC"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.focusDemoGroupLabels = exports.focusDemoInvalid = exports.focusDemoValue = exports.getFocusDemoOptions = void 0;
4
+ var getFocusDemoOptions = function () {
5
+ return ({
6
+ // --- Connection -------------------------------------------------------
7
+ url: {
8
+ type: 'string',
9
+ ui_type: 'string',
10
+ display_name: 'Connection URL',
11
+ short_desc: 'The full datasource URL (driver://user@host:port/db).',
12
+ desc: 'Accepts any Qore datasource URL. Templates like `$config:db-url` are supported.',
13
+ group: 'connection',
14
+ required: true,
15
+ supports_templates: true,
16
+ },
17
+ port: {
18
+ type: 'int',
19
+ ui_type: 'number',
20
+ display_name: 'Port',
21
+ short_desc: 'TCP port of the database server.',
22
+ group: 'connection',
23
+ default_value: { type: 'int', value: 5432 },
24
+ },
25
+ database: {
26
+ type: 'string',
27
+ ui_type: 'string',
28
+ display_name: 'Database name',
29
+ short_desc: 'Name of the schema/database to connect to.',
30
+ group: 'connection',
31
+ required: true,
32
+ },
33
+ // --- Authentication (one-of required group) ---------------------------
34
+ token: {
35
+ type: 'string',
36
+ ui_type: 'string',
37
+ display_name: 'API token',
38
+ short_desc: 'Bearer token — use this OR a username/password.',
39
+ group: 'authentication',
40
+ required_groups: ['auth'],
41
+ supports_templates: true,
42
+ },
43
+ username: {
44
+ type: 'string',
45
+ ui_type: 'string',
46
+ display_name: 'Username',
47
+ short_desc: 'Database user — paired with a password.',
48
+ group: 'authentication',
49
+ required_groups: ['auth'],
50
+ },
51
+ password: {
52
+ type: 'string',
53
+ ui_type: 'string',
54
+ display_name: 'Password',
55
+ short_desc: 'Database password.',
56
+ group: 'authentication',
57
+ required_groups: ['auth'],
58
+ supports_templates: true,
59
+ },
60
+ // --- Advanced ---------------------------------------------------------
61
+ options: {
62
+ type: 'hash',
63
+ ui_type: 'hash',
64
+ display_name: 'Driver options',
65
+ short_desc: 'Extra key/value options passed to the driver.',
66
+ group: 'advanced',
67
+ },
68
+ poolSize: {
69
+ type: 'int',
70
+ ui_type: 'number',
71
+ display_name: 'Pool size',
72
+ short_desc: 'Max simultaneous connections.',
73
+ group: 'advanced',
74
+ default_value: { type: 'int', value: 10 },
75
+ },
76
+ timeout: {
77
+ type: 'int',
78
+ ui_type: 'number',
79
+ display_name: 'Timeout (s)',
80
+ short_desc: 'Connection timeout in seconds.',
81
+ group: 'advanced',
82
+ },
83
+ logLevel: {
84
+ type: 'string',
85
+ ui_type: 'string',
86
+ display_name: 'Log level',
87
+ short_desc: 'Verbosity of the connection log.',
88
+ group: 'advanced',
89
+ allowed_values: [
90
+ { value: 'error', display_name: 'Error' },
91
+ { value: 'info', display_name: 'Info' },
92
+ { value: 'debug', display_name: 'Debug' },
93
+ ],
94
+ },
95
+ // --- Optional (non-preselected — render in the Optional group) ---------
96
+ sslCert: {
97
+ type: 'file',
98
+ ui_type: 'file',
99
+ display_name: 'SSL certificate',
100
+ short_desc: 'Client certificate for mutual TLS.',
101
+ },
102
+ tags: {
103
+ type: 'list',
104
+ ui_type: 'list',
105
+ display_name: 'Tags',
106
+ short_desc: 'Free-form labels for this connection.',
107
+ },
108
+ });
109
+ };
110
+ exports.getFocusDemoOptions = getFocusDemoOptions;
111
+ exports.focusDemoValue = {
112
+ url: { type: 'string', value: 'pgsql://hq.qoretechnologies.com:5432/omq' },
113
+ // database: intentionally unset → required to-do
114
+ // auth group: intentionally none set → one-of unsatisfied → attention
115
+ options: {
116
+ type: 'hash',
117
+ value: {
118
+ sslmode: { type: 'string', value: 'require' },
119
+ application_name: { type: 'string', value: 'qorus-ide' },
120
+ connect_timeout: { type: 'int', value: 8 },
121
+ },
122
+ },
123
+ logLevel: { type: 'string', value: 'info' },
124
+ // timeout: invalid (entered 0)
125
+ timeout: { type: 'int', value: 0 },
126
+ };
127
+ // Demo-only invalid reasons (in the engine these come from the validity pass).
128
+ exports.focusDemoInvalid = {
129
+ timeout: 'Must be greater than 0',
130
+ };
131
+ // Display labels for the named groups.
132
+ exports.focusDemoGroupLabels = {
133
+ connection: 'Connection',
134
+ authentication: 'Authentication',
135
+ advanced: 'Advanced',
136
+ optional: 'Optional',
137
+ general: 'General',
138
+ };
139
+ //# sourceMappingURL=focusDemo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusDemo.js","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/focusDemo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Shared row model for the FormEngine compact VARIANTS playground.
3
+ *
4
+ * This is a prototyping harness: every variant renders the SAME normalized rows
5
+ * (derived from a real options schema + values via the real `readFirst`
6
+ * formatters) and differs only in layout / chrome / UX. That keeps the
7
+ * comparison about presentation, not data. Editing is intentionally stubbed
8
+ * (expand shows a placeholder) — the point is to compare the read-first view
9
+ * that currently feels crowded, then graft the winner onto the real engine.
10
+ */
11
+ import { IQorusFormField, IQorusFormSchema } from '@qoretechnologies/ts-toolkit';
12
+ export type TVariantStatus = 'set' | 'unset' | 'todo' | 'invalid';
13
+ export type TVariantValueKind = 'text' | 'number' | 'bool' | 'color' | 'file' | 'template' | 'richtext' | 'hash' | 'empty';
14
+ export interface IVariantValue {
15
+ kind: TVariantValueKind;
16
+ /** Human-readable summary (already formatted by readFirst). */
17
+ display: string;
18
+ /** color: css color; file: size label; hash: field count; template: label */
19
+ extra?: string;
20
+ }
21
+ export interface IVariantRow {
22
+ name: string;
23
+ label: string;
24
+ shortDesc?: string;
25
+ longDesc?: string;
26
+ required: boolean;
27
+ readOnly: boolean;
28
+ status: TVariantStatus;
29
+ /** Short reason for todo/invalid, e.g. "Text value is empty". */
30
+ reason?: string;
31
+ value: IVariantValue;
32
+ typeLabel: string;
33
+ /** required_groups this field belongs to (one-of constraints). */
34
+ requiredGroups: string[];
35
+ /** True when this field is a member of an unsatisfied one-of group. */
36
+ inUnmetGroup: boolean;
37
+ /** Raw schema + value object — passed to AutoFormField for REAL editing. */
38
+ schema: any;
39
+ field: any;
40
+ }
41
+ export interface IVariantGroup {
42
+ name: string;
43
+ label: string;
44
+ rows: IVariantRow[];
45
+ }
46
+ /** One-of required group: members + whether any is filled. */
47
+ export interface IRequiredGroupInfo {
48
+ key: string;
49
+ members: string[];
50
+ memberLabels: string[];
51
+ satisfied: boolean;
52
+ }
53
+ export interface IVariantConfig {
54
+ groupLabels?: Record<string, string>;
55
+ /** name → reason; in the engine this comes from the validity pass. */
56
+ invalidReasons?: Record<string, string>;
57
+ }
58
+ export declare function buildVariantGroups(options: IQorusFormSchema, values: Record<string, IQorusFormField>, config?: IVariantConfig): {
59
+ groups: IVariantGroup[];
60
+ requiredGroups: Record<string, IRequiredGroupInfo>;
61
+ };
62
+ export declare function summarize(groups: IVariantGroup[]): {
63
+ total: number;
64
+ set: number;
65
+ todo: number;
66
+ invalid: number;
67
+ attention: number;
68
+ pct: number;
69
+ };
70
+ //# sourceMappingURL=variantModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variantModel.d.ts","sourceRoot":"","sources":["../../../../../src/components/form/engine/variants/variantModel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAajF,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,OAAO,GACP,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,OAAO,GACP,MAAM,GACN,UAAU,GACV,UAAU,GACV,MAAM,GACN,OAAO,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;IACvB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,aAAa,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,MAAM,EAAE,GAAG,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,EAAE,CAAC;CACrB;AAED,8DAA8D;AAC9D,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AA4CD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,EACvC,MAAM,GAAE,cAAmB,GAC1B;IAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CAAE,CAqEjF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE;;;;;;;EAShD"}