@gxp-dev/mod-ui 2.0.0 → 2.0.1

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 (811) hide show
  1. package/.storybook/preview.ts +7 -0
  2. package/README.md +6 -6
  3. package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
  4. package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
  5. package/dist/action.d.ts +4 -0
  6. package/dist/action.d.ts.map +1 -0
  7. package/dist/action.js +9 -0
  8. package/dist/action.js.map +1 -0
  9. package/dist/adapters/fieldTypeMap.d.ts.map +1 -1
  10. package/dist/adapters/fieldTypeMap.js +4 -8
  11. package/dist/adapters/fieldTypeMap.js.map +1 -1
  12. package/dist/adapters/index.d.ts +1 -1
  13. package/dist/boolean.d.ts +5 -0
  14. package/dist/boolean.d.ts.map +1 -0
  15. package/dist/boolean.js +11 -0
  16. package/dist/boolean.js.map +1 -0
  17. package/dist/builder.d.ts +9 -0
  18. package/dist/builder.d.ts.map +1 -0
  19. package/dist/builder.js +19 -0
  20. package/dist/builder.js.map +1 -0
  21. package/dist/cards.d.ts +8 -0
  22. package/dist/cards.d.ts.map +1 -0
  23. package/dist/cards.js +17 -0
  24. package/dist/cards.js.map +1 -0
  25. package/dist/code.d.ts +6 -0
  26. package/dist/code.d.ts.map +1 -0
  27. package/dist/code.js +13 -0
  28. package/dist/code.js.map +1 -0
  29. package/dist/components/compositions/cards/CardListCard.vue.d.ts +30 -0
  30. package/dist/components/compositions/cards/CardListCard.vue.d.ts.map +1 -0
  31. package/dist/components/compositions/cards/CardListCard.vue.js +122 -2
  32. package/dist/components/compositions/cards/CardListCard.vue.js.map +1 -1
  33. package/dist/components/compositions/cards/CardListCard.vue2.js +2 -122
  34. package/dist/components/compositions/cards/CardListCard.vue2.js.map +1 -1
  35. package/dist/components/compositions/cards/DataTableCard.vue.d.ts +58 -0
  36. package/dist/components/compositions/cards/DataTableCard.vue.d.ts.map +1 -0
  37. package/dist/components/compositions/cards/DataTableCard.vue.js +387 -2
  38. package/dist/components/compositions/cards/DataTableCard.vue.js.map +1 -1
  39. package/dist/components/compositions/cards/DataTableCard.vue2.js +2 -387
  40. package/dist/components/compositions/cards/DataTableCard.vue2.js.map +1 -1
  41. package/dist/components/compositions/cards/ElementDisplayCard.vue.d.ts +16 -0
  42. package/dist/components/compositions/cards/ElementDisplayCard.vue.d.ts.map +1 -0
  43. package/dist/components/compositions/cards/ElementDisplayCard.vue.js +64 -2
  44. package/dist/components/compositions/cards/ElementDisplayCard.vue.js.map +1 -1
  45. package/dist/components/compositions/cards/ElementDisplayCard.vue2.js +2 -64
  46. package/dist/components/compositions/cards/ElementDisplayCard.vue2.js.map +1 -1
  47. package/dist/components/compositions/cards/ElementListCard.vue.d.ts +22 -0
  48. package/dist/components/compositions/cards/ElementListCard.vue.d.ts.map +1 -0
  49. package/dist/components/compositions/cards/ElementListCard.vue.js +92 -2
  50. package/dist/components/compositions/cards/ElementListCard.vue.js.map +1 -1
  51. package/dist/components/compositions/cards/ElementListCard.vue2.js +2 -92
  52. package/dist/components/compositions/cards/ElementListCard.vue2.js.map +1 -1
  53. package/dist/components/compositions/cards/GridViewCard.vue.d.ts +35 -0
  54. package/dist/components/compositions/cards/GridViewCard.vue.d.ts.map +1 -0
  55. package/dist/components/compositions/cards/GridViewCard.vue.js +128 -2
  56. package/dist/components/compositions/cards/GridViewCard.vue.js.map +1 -1
  57. package/dist/components/compositions/cards/GridViewCard.vue2.js +2 -128
  58. package/dist/components/compositions/cards/GridViewCard.vue2.js.map +1 -1
  59. package/dist/components/compositions/cards/InfoCard.vue.d.ts +24 -0
  60. package/dist/components/compositions/cards/InfoCard.vue.d.ts.map +1 -0
  61. package/dist/components/compositions/cards/InfoCard.vue.js +183 -2
  62. package/dist/components/compositions/cards/InfoCard.vue.js.map +1 -1
  63. package/dist/components/compositions/cards/InfoCard.vue2.js +2 -183
  64. package/dist/components/compositions/cards/InfoCard.vue2.js.map +1 -1
  65. package/dist/components/compositions/cards/TabListCard.vue.d.ts +36 -0
  66. package/dist/components/compositions/cards/TabListCard.vue.d.ts.map +1 -0
  67. package/dist/components/compositions/cards/TabListCard.vue.js +124 -2
  68. package/dist/components/compositions/cards/TabListCard.vue.js.map +1 -1
  69. package/dist/components/compositions/cards/TabListCard.vue2.js +2 -124
  70. package/dist/components/compositions/cards/TabListCard.vue2.js.map +1 -1
  71. package/dist/components/compositions/elements/action/ButtonAction.vue.d.ts +42 -0
  72. package/dist/components/compositions/elements/action/ButtonAction.vue.d.ts.map +1 -0
  73. package/dist/components/compositions/elements/action/ButtonAction.vue.js +157 -2
  74. package/dist/components/compositions/elements/action/ButtonAction.vue.js.map +1 -1
  75. package/dist/components/compositions/elements/action/ButtonAction.vue2.js +2 -157
  76. package/dist/components/compositions/elements/action/ButtonAction.vue2.js.map +1 -1
  77. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.d.ts +46 -0
  78. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.d.ts.map +1 -0
  79. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.js +66 -2
  80. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.js.map +1 -1
  81. package/dist/components/compositions/elements/action/ButtonGroupAction.vue2.js +2 -66
  82. package/dist/components/compositions/elements/action/ButtonGroupAction.vue2.js.map +1 -1
  83. package/dist/components/compositions/elements/action/LinkAction.vue.d.ts +30 -0
  84. package/dist/components/compositions/elements/action/LinkAction.vue.d.ts.map +1 -0
  85. package/dist/components/compositions/elements/action/LinkAction.vue.js +55 -2
  86. package/dist/components/compositions/elements/action/LinkAction.vue.js.map +1 -1
  87. package/dist/components/compositions/elements/action/LinkAction.vue2.js +2 -55
  88. package/dist/components/compositions/elements/action/LinkAction.vue2.js.map +1 -1
  89. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.d.ts +25 -0
  90. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.d.ts.map +1 -0
  91. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.js +68 -2
  92. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.js.map +1 -1
  93. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue2.js +2 -68
  94. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue2.js.map +1 -1
  95. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.d.ts +29 -0
  96. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.d.ts.map +1 -0
  97. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.js +75 -2
  98. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.js.map +1 -1
  99. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue2.js +2 -75
  100. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue2.js.map +1 -1
  101. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.d.ts +33 -0
  102. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.d.ts.map +1 -0
  103. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.js +91 -2
  104. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.js.map +1 -1
  105. package/dist/components/compositions/elements/boolean/RadioBoolean.vue2.js +2 -91
  106. package/dist/components/compositions/elements/boolean/RadioBoolean.vue2.js.map +1 -1
  107. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.d.ts +29 -0
  108. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.d.ts.map +1 -0
  109. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.js +77 -2
  110. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.js.map +1 -1
  111. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue2.js +2 -77
  112. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue2.js.map +1 -1
  113. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.d.ts +29 -0
  114. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.d.ts.map +1 -0
  115. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.js +666 -2
  116. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.js.map +1 -1
  117. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue2.js +2 -666
  118. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue2.js.map +1 -1
  119. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.d.ts +29 -0
  120. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.d.ts.map +1 -0
  121. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.js +421 -2
  122. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.js.map +1 -1
  123. package/dist/components/compositions/elements/builder/ElementListBuilder.vue2.js +2 -421
  124. package/dist/components/compositions/elements/builder/ElementListBuilder.vue2.js.map +1 -1
  125. package/dist/components/compositions/elements/builder/FormBuilder.vue.d.ts +30 -0
  126. package/dist/components/compositions/elements/builder/FormBuilder.vue.d.ts.map +1 -0
  127. package/dist/components/compositions/elements/builder/FormBuilder.vue.js +857 -2
  128. package/dist/components/compositions/elements/builder/FormBuilder.vue.js.map +1 -1
  129. package/dist/components/compositions/elements/builder/FormBuilder.vue2.js +2 -857
  130. package/dist/components/compositions/elements/builder/FormBuilder.vue2.js.map +1 -1
  131. package/dist/components/compositions/elements/builder/GridBuilder.vue.d.ts +37 -0
  132. package/dist/components/compositions/elements/builder/GridBuilder.vue.d.ts.map +1 -0
  133. package/dist/components/compositions/elements/builder/GridBuilder.vue.js +452 -2
  134. package/dist/components/compositions/elements/builder/GridBuilder.vue.js.map +1 -1
  135. package/dist/components/compositions/elements/builder/GridBuilder.vue2.js +2 -452
  136. package/dist/components/compositions/elements/builder/GridBuilder.vue2.js.map +1 -1
  137. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.d.ts +33 -0
  138. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.d.ts.map +1 -0
  139. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.js +511 -2
  140. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.js.map +1 -1
  141. package/dist/components/compositions/elements/builder/ObjectBuilder.vue2.js +2 -511
  142. package/dist/components/compositions/elements/builder/ObjectBuilder.vue2.js.map +1 -1
  143. package/dist/components/compositions/elements/builder/PresetBuilder.vue.d.ts +29 -0
  144. package/dist/components/compositions/elements/builder/PresetBuilder.vue.d.ts.map +1 -0
  145. package/dist/components/compositions/elements/builder/PresetBuilder.vue.js +163 -2
  146. package/dist/components/compositions/elements/builder/PresetBuilder.vue.js.map +1 -1
  147. package/dist/components/compositions/elements/builder/PresetBuilder.vue2.js +2 -163
  148. package/dist/components/compositions/elements/builder/PresetBuilder.vue2.js.map +1 -1
  149. package/dist/components/compositions/elements/builder/QuizBuilder.vue.d.ts +34 -0
  150. package/dist/components/compositions/elements/builder/QuizBuilder.vue.d.ts.map +1 -0
  151. package/dist/components/compositions/elements/builder/QuizBuilder.vue.js +591 -2
  152. package/dist/components/compositions/elements/builder/QuizBuilder.vue.js.map +1 -1
  153. package/dist/components/compositions/elements/builder/QuizBuilder.vue2.js +2 -591
  154. package/dist/components/compositions/elements/builder/QuizBuilder.vue2.js.map +1 -1
  155. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.d.ts +29 -0
  156. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.d.ts.map +1 -0
  157. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.js +580 -2
  158. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.js.map +1 -1
  159. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue2.js +2 -580
  160. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue2.js.map +1 -1
  161. package/dist/components/compositions/elements/card/ListCard.vue.d.ts +21 -0
  162. package/dist/components/compositions/elements/card/ListCard.vue.d.ts.map +1 -0
  163. package/dist/components/compositions/elements/code/BuildStatus.vue.d.ts +43 -0
  164. package/dist/components/compositions/elements/code/BuildStatus.vue.d.ts.map +1 -0
  165. package/dist/components/compositions/elements/code/BuildStatus.vue.js +246 -2
  166. package/dist/components/compositions/elements/code/BuildStatus.vue.js.map +1 -1
  167. package/dist/components/compositions/elements/code/BuildStatus.vue2.js +2 -246
  168. package/dist/components/compositions/elements/code/BuildStatus.vue2.js.map +1 -1
  169. package/dist/components/compositions/elements/code/ChatMessage.vue.d.ts +39 -0
  170. package/dist/components/compositions/elements/code/ChatMessage.vue.d.ts.map +1 -0
  171. package/dist/components/compositions/elements/code/ChatMessage.vue.js +267 -2
  172. package/dist/components/compositions/elements/code/ChatMessage.vue.js.map +1 -1
  173. package/dist/components/compositions/elements/code/ChatMessage.vue2.js +2 -267
  174. package/dist/components/compositions/elements/code/ChatMessage.vue2.js.map +1 -1
  175. package/dist/components/compositions/elements/code/FileTree.vue.d.ts +42 -0
  176. package/dist/components/compositions/elements/code/FileTree.vue.d.ts.map +1 -0
  177. package/dist/components/compositions/elements/code/FileTree.vue.js +251 -2
  178. package/dist/components/compositions/elements/code/FileTree.vue.js.map +1 -1
  179. package/dist/components/compositions/elements/code/FileTree.vue2.js +2 -251
  180. package/dist/components/compositions/elements/code/FileTree.vue2.js.map +1 -1
  181. package/dist/components/compositions/elements/code/GitCodeEditor.vue.d.ts +54 -0
  182. package/dist/components/compositions/elements/code/GitCodeEditor.vue.d.ts.map +1 -0
  183. package/dist/components/compositions/elements/code/GitCodeEditor.vue.js +273 -2
  184. package/dist/components/compositions/elements/code/GitCodeEditor.vue.js.map +1 -1
  185. package/dist/components/compositions/elements/code/GitCodeEditor.vue2.js +2 -273
  186. package/dist/components/compositions/elements/code/GitCodeEditor.vue2.js.map +1 -1
  187. package/dist/components/compositions/elements/code/PullRequestsList.vue.d.ts +46 -0
  188. package/dist/components/compositions/elements/code/PullRequestsList.vue.d.ts.map +1 -0
  189. package/dist/components/compositions/elements/code/PullRequestsList.vue.js +303 -2
  190. package/dist/components/compositions/elements/code/PullRequestsList.vue.js.map +1 -1
  191. package/dist/components/compositions/elements/code/PullRequestsList.vue2.js +2 -303
  192. package/dist/components/compositions/elements/code/PullRequestsList.vue2.js.map +1 -1
  193. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.d.ts +17 -0
  194. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.d.ts.map +1 -0
  195. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.js +101 -2
  196. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.js.map +1 -1
  197. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue2.js +2 -101
  198. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue2.js.map +1 -1
  199. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.d.ts +20 -0
  200. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.d.ts.map +1 -0
  201. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.js +33 -2
  202. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.js.map +1 -1
  203. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue2.js +2 -33
  204. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue2.js.map +1 -1
  205. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.d.ts +17 -0
  206. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.d.ts.map +1 -0
  207. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.js +103 -2
  208. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.js.map +1 -1
  209. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue2.js +2 -103
  210. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue2.js.map +1 -1
  211. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.d.ts +29 -0
  212. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.d.ts.map +1 -0
  213. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.js +172 -2
  214. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.js.map +1 -1
  215. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue2.js +2 -140
  216. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue2.js.map +1 -1
  217. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.d.ts +12 -0
  218. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.d.ts.map +1 -0
  219. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.js +5 -0
  220. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.js.map +1 -0
  221. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue2.js +25 -0
  222. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue2.js.map +1 -0
  223. package/dist/components/compositions/elements/display/BannerDisplay.vue.d.ts +13 -0
  224. package/dist/components/compositions/elements/display/BannerDisplay.vue.d.ts.map +1 -0
  225. package/dist/components/compositions/elements/display/BannerDisplay.vue.js +63 -2
  226. package/dist/components/compositions/elements/display/BannerDisplay.vue.js.map +1 -1
  227. package/dist/components/compositions/elements/display/BannerDisplay.vue2.js +2 -63
  228. package/dist/components/compositions/elements/display/BannerDisplay.vue2.js.map +1 -1
  229. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.d.ts +12 -0
  230. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.d.ts.map +1 -0
  231. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.js +52 -2
  232. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.js.map +1 -1
  233. package/dist/components/compositions/elements/display/BarcodeDisplay.vue2.js +2 -52
  234. package/dist/components/compositions/elements/display/BarcodeDisplay.vue2.js.map +1 -1
  235. package/dist/components/compositions/elements/display/CarouselDisplay.vue.d.ts +27 -0
  236. package/dist/components/compositions/elements/display/CarouselDisplay.vue.d.ts.map +1 -0
  237. package/dist/components/compositions/elements/display/CarouselDisplay.vue.js +144 -2
  238. package/dist/components/compositions/elements/display/CarouselDisplay.vue.js.map +1 -1
  239. package/dist/components/compositions/elements/display/CarouselDisplay.vue2.js +2 -144
  240. package/dist/components/compositions/elements/display/CarouselDisplay.vue2.js.map +1 -1
  241. package/dist/components/compositions/elements/display/ChartDisplay.vue.d.ts +17 -0
  242. package/dist/components/compositions/elements/display/ChartDisplay.vue.d.ts.map +1 -0
  243. package/dist/components/compositions/elements/display/ChartDisplay.vue.js +78 -2
  244. package/dist/components/compositions/elements/display/ChartDisplay.vue.js.map +1 -1
  245. package/dist/components/compositions/elements/display/ChartDisplay.vue2.js +2 -78
  246. package/dist/components/compositions/elements/display/ChartDisplay.vue2.js.map +1 -1
  247. package/dist/components/compositions/elements/display/HtmlDisplay.vue.d.ts +7 -0
  248. package/dist/components/compositions/elements/display/HtmlDisplay.vue.d.ts.map +1 -0
  249. package/dist/components/compositions/elements/display/HtmlDisplay.vue.js +20 -2
  250. package/dist/components/compositions/elements/display/HtmlDisplay.vue.js.map +1 -1
  251. package/dist/components/compositions/elements/display/HtmlDisplay.vue2.js +2 -20
  252. package/dist/components/compositions/elements/display/HtmlDisplay.vue2.js.map +1 -1
  253. package/dist/components/compositions/elements/display/IconDisplay.vue.d.ts +10 -0
  254. package/dist/components/compositions/elements/display/IconDisplay.vue.d.ts.map +1 -0
  255. package/dist/components/compositions/elements/display/IconDisplay.vue.js +55 -2
  256. package/dist/components/compositions/elements/display/IconDisplay.vue.js.map +1 -1
  257. package/dist/components/compositions/elements/display/IconDisplay.vue2.js +2 -55
  258. package/dist/components/compositions/elements/display/IconDisplay.vue2.js.map +1 -1
  259. package/dist/components/compositions/elements/display/IframeDisplay.vue.d.ts +11 -0
  260. package/dist/components/compositions/elements/display/IframeDisplay.vue.d.ts.map +1 -0
  261. package/dist/components/compositions/elements/display/IframeDisplay.vue.js +32 -2
  262. package/dist/components/compositions/elements/display/IframeDisplay.vue.js.map +1 -1
  263. package/dist/components/compositions/elements/display/IframeDisplay.vue2.js +2 -32
  264. package/dist/components/compositions/elements/display/IframeDisplay.vue2.js.map +1 -1
  265. package/dist/components/compositions/elements/display/ImageDisplay.vue.d.ts +8 -0
  266. package/dist/components/compositions/elements/display/ImageDisplay.vue.d.ts.map +1 -0
  267. package/dist/components/compositions/elements/display/ImageDisplay.vue.js +35 -2
  268. package/dist/components/compositions/elements/display/ImageDisplay.vue.js.map +1 -1
  269. package/dist/components/compositions/elements/display/ImageDisplay.vue2.js +2 -35
  270. package/dist/components/compositions/elements/display/ImageDisplay.vue2.js.map +1 -1
  271. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.d.ts +7 -0
  272. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.d.ts.map +1 -0
  273. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.js +39 -2
  274. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.js.map +1 -1
  275. package/dist/components/compositions/elements/display/MarkdownDisplay.vue2.js +2 -39
  276. package/dist/components/compositions/elements/display/MarkdownDisplay.vue2.js.map +1 -1
  277. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.d.ts +11 -0
  278. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.d.ts.map +1 -0
  279. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.js +42 -2
  280. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.js.map +1 -1
  281. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue2.js +2 -42
  282. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue2.js.map +1 -1
  283. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.d.ts +9 -0
  284. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.d.ts.map +1 -0
  285. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.js +46 -2
  286. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.js.map +1 -1
  287. package/dist/components/compositions/elements/display/QrCodeDisplay.vue2.js +2 -46
  288. package/dist/components/compositions/elements/display/QrCodeDisplay.vue2.js.map +1 -1
  289. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.d.ts +7 -0
  290. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.d.ts.map +1 -0
  291. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.js +64 -2
  292. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.js.map +1 -1
  293. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue2.js +2 -64
  294. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue2.js.map +1 -1
  295. package/dist/components/compositions/elements/display/SpriteDisplay.vue.d.ts +7 -0
  296. package/dist/components/compositions/elements/display/SpriteDisplay.vue.d.ts.map +1 -0
  297. package/dist/components/compositions/elements/display/SpriteDisplay.vue.js +64 -2
  298. package/dist/components/compositions/elements/display/SpriteDisplay.vue.js.map +1 -1
  299. package/dist/components/compositions/elements/display/SpriteDisplay.vue2.js +2 -64
  300. package/dist/components/compositions/elements/display/SpriteDisplay.vue2.js.map +1 -1
  301. package/dist/components/compositions/elements/display/TypeDisplay.vue.d.ts +11 -0
  302. package/dist/components/compositions/elements/display/TypeDisplay.vue.d.ts.map +1 -0
  303. package/dist/components/compositions/elements/display/TypeDisplay.vue.js +42 -2
  304. package/dist/components/compositions/elements/display/TypeDisplay.vue.js.map +1 -1
  305. package/dist/components/compositions/elements/display/TypeDisplay.vue2.js +2 -42
  306. package/dist/components/compositions/elements/display/TypeDisplay.vue2.js.map +1 -1
  307. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.d.ts +10 -0
  308. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.d.ts.map +1 -0
  309. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.js +33 -2
  310. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.js.map +1 -1
  311. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue2.js +2 -33
  312. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue2.js.map +1 -1
  313. package/dist/components/compositions/elements/editor/CodeEditor.vue.d.ts +33 -0
  314. package/dist/components/compositions/elements/editor/CodeEditor.vue.d.ts.map +1 -0
  315. package/dist/components/compositions/elements/editor/CodeEditor.vue.js +5 -2
  316. package/dist/components/compositions/elements/editor/CodeEditor.vue.js.map +1 -1
  317. package/dist/components/compositions/elements/editor/CodeEditor.vue2.js +211 -53
  318. package/dist/components/compositions/elements/editor/CodeEditor.vue2.js.map +1 -1
  319. package/dist/components/compositions/elements/editor/HtmlEditor.vue.d.ts +24 -0
  320. package/dist/components/compositions/elements/editor/HtmlEditor.vue.d.ts.map +1 -0
  321. package/dist/components/compositions/elements/editor/HtmlEditor.vue.js +5 -2
  322. package/dist/components/compositions/elements/editor/HtmlEditor.vue.js.map +1 -1
  323. package/dist/components/compositions/elements/editor/HtmlEditor.vue2.js +1333 -50
  324. package/dist/components/compositions/elements/editor/HtmlEditor.vue2.js.map +1 -1
  325. package/dist/components/compositions/elements/editor/ImageEditor.vue.d.ts +24 -0
  326. package/dist/components/compositions/elements/editor/ImageEditor.vue.d.ts.map +1 -0
  327. package/dist/components/compositions/elements/editor/ImageEditor.vue.js +67 -2
  328. package/dist/components/compositions/elements/editor/ImageEditor.vue.js.map +1 -1
  329. package/dist/components/compositions/elements/editor/ImageEditor.vue2.js +2 -67
  330. package/dist/components/compositions/elements/editor/ImageEditor.vue2.js.map +1 -1
  331. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.d.ts +28 -0
  332. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.d.ts.map +1 -0
  333. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.js +82 -2
  334. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.js.map +1 -1
  335. package/dist/components/compositions/elements/editor/MarkdownEditor.vue2.js +2 -82
  336. package/dist/components/compositions/elements/editor/MarkdownEditor.vue2.js.map +1 -1
  337. package/dist/components/compositions/elements/editor/RichTextEditor.vue.d.ts +26 -0
  338. package/dist/components/compositions/elements/editor/RichTextEditor.vue.d.ts.map +1 -0
  339. package/dist/components/compositions/elements/editor/RichTextEditor.vue.js +262 -2
  340. package/dist/components/compositions/elements/editor/RichTextEditor.vue.js.map +1 -1
  341. package/dist/components/compositions/elements/editor/RichTextEditor.vue2.js +2 -262
  342. package/dist/components/compositions/elements/editor/RichTextEditor.vue2.js.map +1 -1
  343. package/dist/components/compositions/elements/file/AssetPickerFile.vue.d.ts +47 -0
  344. package/dist/components/compositions/elements/file/AssetPickerFile.vue.d.ts.map +1 -0
  345. package/dist/components/compositions/elements/file/AssetPickerFile.vue.js +293 -2
  346. package/dist/components/compositions/elements/file/AssetPickerFile.vue.js.map +1 -1
  347. package/dist/components/compositions/elements/file/AssetPickerFile.vue2.js +2 -293
  348. package/dist/components/compositions/elements/file/AssetPickerFile.vue2.js.map +1 -1
  349. package/dist/components/compositions/elements/file/DropzoneFile.vue.d.ts +33 -0
  350. package/dist/components/compositions/elements/file/DropzoneFile.vue.d.ts.map +1 -0
  351. package/dist/components/compositions/elements/file/DropzoneFile.vue.js +171 -2
  352. package/dist/components/compositions/elements/file/DropzoneFile.vue.js.map +1 -1
  353. package/dist/components/compositions/elements/file/DropzoneFile.vue2.js +2 -171
  354. package/dist/components/compositions/elements/file/DropzoneFile.vue2.js.map +1 -1
  355. package/dist/components/compositions/elements/file/UploadFile.vue.d.ts +33 -0
  356. package/dist/components/compositions/elements/file/UploadFile.vue.d.ts.map +1 -0
  357. package/dist/components/compositions/elements/file/UploadFile.vue.js +149 -2
  358. package/dist/components/compositions/elements/file/UploadFile.vue.js.map +1 -1
  359. package/dist/components/compositions/elements/file/UploadFile.vue2.js +2 -149
  360. package/dist/components/compositions/elements/file/UploadFile.vue2.js.map +1 -1
  361. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.d.ts +48 -0
  362. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.d.ts.map +1 -0
  363. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.js +166 -2
  364. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.js.map +1 -1
  365. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue2.js +2 -166
  366. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue2.js.map +1 -1
  367. package/dist/components/compositions/elements/input/EmailInput.vue.d.ts +48 -0
  368. package/dist/components/compositions/elements/input/EmailInput.vue.d.ts.map +1 -0
  369. package/dist/components/compositions/elements/input/EmailInput.vue.js +62 -2
  370. package/dist/components/compositions/elements/input/EmailInput.vue.js.map +1 -1
  371. package/dist/components/compositions/elements/input/EmailInput.vue2.js +2 -62
  372. package/dist/components/compositions/elements/input/EmailInput.vue2.js.map +1 -1
  373. package/dist/components/compositions/elements/input/NumberInput.vue.d.ts +49 -0
  374. package/dist/components/compositions/elements/input/NumberInput.vue.d.ts.map +1 -0
  375. package/dist/components/compositions/elements/input/NumberInput.vue.js +73 -2
  376. package/dist/components/compositions/elements/input/NumberInput.vue.js.map +1 -1
  377. package/dist/components/compositions/elements/input/NumberInput.vue2.js +2 -73
  378. package/dist/components/compositions/elements/input/NumberInput.vue2.js.map +1 -1
  379. package/dist/components/compositions/elements/input/PasswordInput.vue.d.ts +49 -0
  380. package/dist/components/compositions/elements/input/PasswordInput.vue.d.ts.map +1 -0
  381. package/dist/components/compositions/elements/input/PasswordInput.vue.js +98 -2
  382. package/dist/components/compositions/elements/input/PasswordInput.vue.js.map +1 -1
  383. package/dist/components/compositions/elements/input/PasswordInput.vue2.js +2 -98
  384. package/dist/components/compositions/elements/input/PasswordInput.vue2.js.map +1 -1
  385. package/dist/components/compositions/elements/input/RangeSliderInput.vue.d.ts +31 -0
  386. package/dist/components/compositions/elements/input/RangeSliderInput.vue.d.ts.map +1 -0
  387. package/dist/components/compositions/elements/input/RangeSliderInput.vue.js +69 -2
  388. package/dist/components/compositions/elements/input/RangeSliderInput.vue.js.map +1 -1
  389. package/dist/components/compositions/elements/input/RangeSliderInput.vue2.js +2 -69
  390. package/dist/components/compositions/elements/input/RangeSliderInput.vue2.js.map +1 -1
  391. package/dist/components/compositions/elements/input/SearchInput.vue.d.ts +48 -0
  392. package/dist/components/compositions/elements/input/SearchInput.vue.d.ts.map +1 -0
  393. package/dist/components/compositions/elements/input/SearchInput.vue.js +69 -2
  394. package/dist/components/compositions/elements/input/SearchInput.vue.js.map +1 -1
  395. package/dist/components/compositions/elements/input/SearchInput.vue2.js +2 -69
  396. package/dist/components/compositions/elements/input/SearchInput.vue2.js.map +1 -1
  397. package/dist/components/compositions/elements/input/TelInput.vue.d.ts +48 -0
  398. package/dist/components/compositions/elements/input/TelInput.vue.d.ts.map +1 -0
  399. package/dist/components/compositions/elements/input/TelInput.vue.js +62 -2
  400. package/dist/components/compositions/elements/input/TelInput.vue.js.map +1 -1
  401. package/dist/components/compositions/elements/input/TelInput.vue2.js +2 -62
  402. package/dist/components/compositions/elements/input/TelInput.vue2.js.map +1 -1
  403. package/dist/components/compositions/elements/input/TextInput.vue.d.ts +48 -0
  404. package/dist/components/compositions/elements/input/TextInput.vue.d.ts.map +1 -0
  405. package/dist/components/compositions/elements/input/TextInput.vue.js +62 -2
  406. package/dist/components/compositions/elements/input/TextInput.vue.js.map +1 -1
  407. package/dist/components/compositions/elements/input/TextInput.vue2.js +2 -62
  408. package/dist/components/compositions/elements/input/TextInput.vue2.js.map +1 -1
  409. package/dist/components/compositions/elements/input/TextareaInput.vue.d.ts +54 -0
  410. package/dist/components/compositions/elements/input/TextareaInput.vue.d.ts.map +1 -0
  411. package/dist/components/compositions/elements/input/TextareaInput.vue.js +63 -2
  412. package/dist/components/compositions/elements/input/TextareaInput.vue.js.map +1 -1
  413. package/dist/components/compositions/elements/input/TextareaInput.vue2.js +2 -63
  414. package/dist/components/compositions/elements/input/TextareaInput.vue2.js.map +1 -1
  415. package/dist/components/compositions/elements/input/UrlInput.vue.d.ts +48 -0
  416. package/dist/components/compositions/elements/input/UrlInput.vue.d.ts.map +1 -0
  417. package/dist/components/compositions/elements/input/UrlInput.vue.js +62 -2
  418. package/dist/components/compositions/elements/input/UrlInput.vue.js.map +1 -1
  419. package/dist/components/compositions/elements/input/UrlInput.vue2.js +2 -62
  420. package/dist/components/compositions/elements/input/UrlInput.vue2.js.map +1 -1
  421. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.d.ts +44 -0
  422. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.d.ts.map +1 -0
  423. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.js +167 -2
  424. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.js.map +1 -1
  425. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue2.js +2 -167
  426. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue2.js.map +1 -1
  427. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.d.ts +31 -0
  428. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.d.ts.map +1 -0
  429. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.js +121 -2
  430. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.js.map +1 -1
  431. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue2.js +2 -121
  432. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue2.js.map +1 -1
  433. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.d.ts +29 -0
  434. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.d.ts.map +1 -0
  435. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.js +87 -2
  436. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.js.map +1 -1
  437. package/dist/components/compositions/elements/option-select/CheckboxOption.vue2.js +2 -87
  438. package/dist/components/compositions/elements/option-select/CheckboxOption.vue2.js.map +1 -1
  439. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.d.ts +41 -0
  440. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.d.ts.map +1 -0
  441. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.js +237 -2
  442. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.js.map +1 -1
  443. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue2.js +2 -237
  444. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue2.js.map +1 -1
  445. package/dist/components/compositions/elements/option-select/ListOption.vue.d.ts +29 -0
  446. package/dist/components/compositions/elements/option-select/ListOption.vue.d.ts.map +1 -0
  447. package/dist/components/compositions/elements/option-select/ListOption.vue.js +89 -2
  448. package/dist/components/compositions/elements/option-select/ListOption.vue.js.map +1 -1
  449. package/dist/components/compositions/elements/option-select/ListOption.vue2.js +2 -89
  450. package/dist/components/compositions/elements/option-select/ListOption.vue2.js.map +1 -1
  451. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.d.ts +28 -0
  452. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.d.ts.map +1 -0
  453. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.js +85 -2
  454. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.js.map +1 -1
  455. package/dist/components/compositions/elements/option-select/PillSelectOption.vue2.js +2 -85
  456. package/dist/components/compositions/elements/option-select/PillSelectOption.vue2.js.map +1 -1
  457. package/dist/components/compositions/elements/option-select/RadioOption.vue.d.ts +29 -0
  458. package/dist/components/compositions/elements/option-select/RadioOption.vue.d.ts.map +1 -0
  459. package/dist/components/compositions/elements/option-select/RadioOption.vue.js +98 -2
  460. package/dist/components/compositions/elements/option-select/RadioOption.vue.js.map +1 -1
  461. package/dist/components/compositions/elements/option-select/RadioOption.vue2.js +2 -98
  462. package/dist/components/compositions/elements/option-select/RadioOption.vue2.js.map +1 -1
  463. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.d.ts +29 -0
  464. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.d.ts.map +1 -0
  465. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.js +151 -2
  466. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.js.map +1 -1
  467. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue2.js +2 -151
  468. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue2.js.map +1 -1
  469. package/dist/components/compositions/elements/option-select/SelectOption.vue.d.ts +29 -0
  470. package/dist/components/compositions/elements/option-select/SelectOption.vue.d.ts.map +1 -0
  471. package/dist/components/compositions/elements/option-select/SelectOption.vue.js +116 -2
  472. package/dist/components/compositions/elements/option-select/SelectOption.vue.js.map +1 -1
  473. package/dist/components/compositions/elements/option-select/SelectOption.vue2.js +2 -116
  474. package/dist/components/compositions/elements/option-select/SelectOption.vue2.js.map +1 -1
  475. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.d.ts +40 -0
  476. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.d.ts.map +1 -0
  477. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.js +182 -2
  478. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.js.map +1 -1
  479. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue2.js +2 -182
  480. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue2.js.map +1 -1
  481. package/dist/components/compositions/elements/picker/ColorPicker.vue.d.ts +29 -0
  482. package/dist/components/compositions/elements/picker/ColorPicker.vue.d.ts.map +1 -0
  483. package/dist/components/compositions/elements/picker/ColorPicker.vue.js +155 -2
  484. package/dist/components/compositions/elements/picker/ColorPicker.vue.js.map +1 -1
  485. package/dist/components/compositions/elements/picker/ColorPicker.vue2.js +2 -155
  486. package/dist/components/compositions/elements/picker/ColorPicker.vue2.js.map +1 -1
  487. package/dist/components/compositions/elements/picker/DataModelPicker.vue.d.ts +29 -0
  488. package/dist/components/compositions/elements/picker/DataModelPicker.vue.d.ts.map +1 -0
  489. package/dist/components/compositions/elements/picker/DataModelPicker.vue.js +104 -2
  490. package/dist/components/compositions/elements/picker/DataModelPicker.vue.js.map +1 -1
  491. package/dist/components/compositions/elements/picker/DataModelPicker.vue2.js +2 -104
  492. package/dist/components/compositions/elements/picker/DataModelPicker.vue2.js.map +1 -1
  493. package/dist/components/compositions/elements/picker/DatePicker.vue.d.ts +32 -0
  494. package/dist/components/compositions/elements/picker/DatePicker.vue.d.ts.map +1 -0
  495. package/dist/components/compositions/elements/picker/DatePicker.vue.js +140 -2
  496. package/dist/components/compositions/elements/picker/DatePicker.vue.js.map +1 -1
  497. package/dist/components/compositions/elements/picker/DatePicker.vue2.js +2 -140
  498. package/dist/components/compositions/elements/picker/DatePicker.vue2.js.map +1 -1
  499. package/dist/components/compositions/elements/picker/DateTimePicker.vue.d.ts +26 -0
  500. package/dist/components/compositions/elements/picker/DateTimePicker.vue.d.ts.map +1 -0
  501. package/dist/components/compositions/elements/picker/DateTimePicker.vue.js +171 -2
  502. package/dist/components/compositions/elements/picker/DateTimePicker.vue.js.map +1 -1
  503. package/dist/components/compositions/elements/picker/DateTimePicker.vue2.js +2 -171
  504. package/dist/components/compositions/elements/picker/DateTimePicker.vue2.js.map +1 -1
  505. package/dist/components/compositions/elements/picker/IconPicker.vue.d.ts +26 -0
  506. package/dist/components/compositions/elements/picker/IconPicker.vue.d.ts.map +1 -0
  507. package/dist/components/compositions/elements/picker/IconPicker.vue.js +190 -2
  508. package/dist/components/compositions/elements/picker/IconPicker.vue.js.map +1 -1
  509. package/dist/components/compositions/elements/picker/IconPicker.vue2.js +2 -190
  510. package/dist/components/compositions/elements/picker/IconPicker.vue2.js.map +1 -1
  511. package/dist/components/compositions/elements/picker/IconPickerInline.vue.d.ts +24 -0
  512. package/dist/components/compositions/elements/picker/IconPickerInline.vue.d.ts.map +1 -0
  513. package/dist/components/compositions/elements/{components/IconPickerInline.vue2.js → picker/IconPickerInline.vue.js} +23 -23
  514. package/dist/components/compositions/elements/picker/IconPickerInline.vue.js.map +1 -0
  515. package/dist/components/compositions/elements/picker/IconPickerInline.vue2.js +5 -0
  516. package/dist/components/compositions/elements/picker/IconPickerInline.vue2.js.map +1 -0
  517. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.d.ts +41 -0
  518. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.d.ts.map +1 -0
  519. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.js +271 -2
  520. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.js.map +1 -1
  521. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue2.js +2 -271
  522. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue2.js.map +1 -1
  523. package/dist/components/compositions/elements/picker/MapPicker.vue.d.ts +55 -0
  524. package/dist/components/compositions/elements/picker/MapPicker.vue.d.ts.map +1 -0
  525. package/dist/components/compositions/elements/picker/MapPicker.vue.js +118 -2
  526. package/dist/components/compositions/elements/picker/MapPicker.vue.js.map +1 -1
  527. package/dist/components/compositions/elements/picker/MapPicker.vue2.js +2 -118
  528. package/dist/components/compositions/elements/picker/MapPicker.vue2.js.map +1 -1
  529. package/dist/components/compositions/elements/picker/TimePicker.vue.d.ts +26 -0
  530. package/dist/components/compositions/elements/picker/TimePicker.vue.d.ts.map +1 -0
  531. package/dist/components/compositions/elements/picker/TimePicker.vue.js +106 -2
  532. package/dist/components/compositions/elements/picker/TimePicker.vue.js.map +1 -1
  533. package/dist/components/compositions/elements/picker/TimePicker.vue2.js +2 -106
  534. package/dist/components/compositions/elements/picker/TimePicker.vue2.js.map +1 -1
  535. package/dist/components/compositions/elements/picker/TimezonePicker.vue.d.ts +26 -0
  536. package/dist/components/compositions/elements/picker/TimezonePicker.vue.d.ts.map +1 -0
  537. package/dist/components/compositions/elements/picker/TimezonePicker.vue.js +124 -2
  538. package/dist/components/compositions/elements/picker/TimezonePicker.vue.js.map +1 -1
  539. package/dist/components/compositions/elements/picker/TimezonePicker.vue2.js +2 -124
  540. package/dist/components/compositions/elements/picker/TimezonePicker.vue2.js.map +1 -1
  541. package/dist/components/ui/index.d.ts +3 -3
  542. package/dist/components/ui/toast/index.d.ts +1 -1
  543. package/dist/components/ui/toast/index.js.map +1 -1
  544. package/dist/configuration-block.d.ts +5 -0
  545. package/dist/configuration-block.d.ts.map +1 -0
  546. package/dist/configuration-block.js +11 -0
  547. package/dist/configuration-block.js.map +1 -0
  548. package/dist/definitions/elements/PickerElement.d.ts +1 -1
  549. package/dist/definitions/elements/PickerElement.d.ts.map +1 -1
  550. package/dist/definitions/elements/PickerElement.js +3 -2
  551. package/dist/definitions/elements/PickerElement.js.map +1 -1
  552. package/dist/definitions/elements/index.d.ts +1 -155
  553. package/dist/definitions/elements/index.d.ts.map +1 -1
  554. package/dist/definitions/elements/index.js +112 -121
  555. package/dist/definitions/elements/index.js.map +1 -1
  556. package/dist/definitions/index.d.ts +1 -1
  557. package/dist/definitions/shared/base.d.ts +1 -1
  558. package/dist/definitions/shared/base.d.ts.map +1 -1
  559. package/dist/definitions/shared/base.js.map +1 -1
  560. package/dist/display.d.ts +16 -0
  561. package/dist/display.d.ts.map +1 -0
  562. package/dist/display.js +33 -0
  563. package/dist/display.js.map +1 -0
  564. package/dist/editor.d.ts +6 -0
  565. package/dist/editor.d.ts.map +1 -0
  566. package/dist/editor.js +13 -0
  567. package/dist/editor.js.map +1 -0
  568. package/dist/engine/registry.d.ts +0 -2
  569. package/dist/engine/registry.d.ts.map +1 -1
  570. package/dist/engine/registry.js +1 -5
  571. package/dist/engine/registry.js.map +1 -1
  572. package/dist/engine/useCardLoader.js +1 -1
  573. package/dist/engine/useCardLoader.js.map +1 -1
  574. package/dist/engine/useElementLoader.js +1 -1
  575. package/dist/engine/useElementLoader.js.map +1 -1
  576. package/dist/engine/useFormData.d.ts.map +1 -1
  577. package/dist/engine/useFormData.js +13 -13
  578. package/dist/engine/useFormData.js.map +1 -1
  579. package/dist/file.d.ts +4 -0
  580. package/dist/file.d.ts.map +1 -0
  581. package/dist/file.js +9 -0
  582. package/dist/file.js.map +1 -0
  583. package/dist/index.d.ts +3 -3
  584. package/dist/index.js +71 -75
  585. package/dist/index.js.map +1 -1
  586. package/dist/input.d.ts +11 -0
  587. package/dist/input.d.ts.map +1 -0
  588. package/dist/input.js +23 -0
  589. package/dist/input.js.map +1 -0
  590. package/dist/lib/storybook.d.ts +45 -0
  591. package/dist/lib/storybook.d.ts.map +1 -0
  592. package/dist/option-select.d.ts +10 -0
  593. package/dist/option-select.d.ts.map +1 -0
  594. package/dist/option-select.js +21 -0
  595. package/dist/option-select.js.map +1 -0
  596. package/dist/pages/ShowPage.vue.js +1 -1
  597. package/dist/pages/ShowPage.vue.js.map +1 -1
  598. package/dist/picker.d.ts +12 -0
  599. package/dist/picker.d.ts.map +1 -0
  600. package/dist/picker.js +25 -0
  601. package/dist/picker.js.map +1 -0
  602. package/dist/stores/dependencyListBuilderStore.d.ts +1 -1
  603. package/dist/stores/dependencyListBuilderStore.js +5 -5
  604. package/dist/stores/dependencyListBuilderStore.js.map +1 -1
  605. package/dist/stores/elementListBuilderStore.d.ts +1 -1
  606. package/dist/stores/elementListBuilderStore.js +14 -14
  607. package/dist/stores/elementListBuilderStore.js.map +1 -1
  608. package/dist/stores/formBuilderStore.d.ts +1 -1
  609. package/dist/stores/formBuilderStore.js +5 -5
  610. package/dist/stores/formBuilderStore.js.map +1 -1
  611. package/dist/stores/formDataStore.d.ts +1 -1
  612. package/dist/stores/formDataStore.js +2 -2
  613. package/dist/stores/formDataStore.js.map +1 -1
  614. package/dist/stores/gridBuilderStore.d.ts +1 -1
  615. package/dist/stores/gridBuilderStore.js +11 -11
  616. package/dist/stores/gridBuilderStore.js.map +1 -1
  617. package/dist/stores/objectBuilderStore.d.ts +1 -1
  618. package/dist/stores/objectBuilderStore.js +1 -1
  619. package/dist/stores/objectBuilderStore.js.map +1 -1
  620. package/dist/stores/presetBuilderStore.d.ts +1 -1
  621. package/dist/stores/presetBuilderStore.js +12 -12
  622. package/dist/stores/presetBuilderStore.js.map +1 -1
  623. package/dist/stores/quizBuilderStore.d.ts +1 -1
  624. package/dist/stores/quizBuilderStore.js +1 -1
  625. package/dist/stores/quizBuilderStore.js.map +1 -1
  626. package/dist/stores/reactiveCanvasBuilderStore.d.ts +1 -1
  627. package/dist/stores/reactiveCanvasBuilderStore.js +40 -40
  628. package/dist/stores/reactiveCanvasBuilderStore.js.map +1 -1
  629. package/dist/styles/mod-ui.css +1 -0
  630. package/package.json +85 -20
  631. package/src/action.ts +3 -0
  632. package/src/adapters/fieldTypeMap.ts +3 -8
  633. package/src/adapters/index.ts +1 -1
  634. package/src/boolean.ts +4 -0
  635. package/src/builder.ts +8 -0
  636. package/src/cards.ts +7 -0
  637. package/src/code.ts +5 -0
  638. package/src/components/compositions/cards/CardListCard.stories.ts +2 -0
  639. package/src/components/compositions/cards/DataTableCard.stories.ts +2 -0
  640. package/src/components/compositions/cards/ElementDisplayCard.stories.ts +2 -0
  641. package/src/components/compositions/cards/ElementListCard.stories.ts +2 -0
  642. package/src/components/compositions/cards/GridViewCard.stories.ts +2 -0
  643. package/src/components/compositions/cards/InfoCard.stories.ts +2 -0
  644. package/src/components/compositions/cards/TabListCard.stories.ts +2 -0
  645. package/src/components/compositions/elements/action/ButtonAction.stories.ts +3 -1
  646. package/src/components/compositions/elements/action/ButtonGroupAction.stories.ts +3 -1
  647. package/src/components/compositions/elements/action/LinkAction.stories.ts +3 -1
  648. package/src/components/compositions/elements/boolean/CheckboxBoolean.stories.ts +3 -1
  649. package/src/components/compositions/elements/boolean/IconToggleBoolean.stories.ts +3 -1
  650. package/src/components/compositions/elements/boolean/RadioBoolean.stories.ts +3 -1
  651. package/src/components/compositions/elements/boolean/SwitchBoolean.stories.ts +3 -1
  652. package/src/components/compositions/elements/builder/DependencyListBuilder.stories.ts +1 -1
  653. package/src/components/compositions/elements/builder/ElementListBuilder.stories.ts +1 -1
  654. package/src/components/compositions/elements/builder/ElementListBuilder.test.ts +0 -1
  655. package/src/components/compositions/elements/builder/FormBuilder.stories.ts +2 -0
  656. package/src/components/compositions/elements/builder/FormBuilder.test.ts +0 -1
  657. package/src/components/compositions/elements/builder/GridBuilder.stories.ts +2 -0
  658. package/src/components/compositions/elements/builder/ObjectBuilder.stories.ts +1 -1
  659. package/src/components/compositions/elements/builder/PresetBuilder.stories.ts +1 -1
  660. package/src/components/compositions/elements/builder/QuizBuilder.stories.ts +2 -0
  661. package/src/components/compositions/elements/builder/ReactiveCanvasBuilder.stories.ts +1 -1
  662. package/src/components/compositions/elements/code/BuildStatus.stories.ts +3 -1
  663. package/src/components/compositions/elements/code/ChatMessage.stories.ts +1 -1
  664. package/src/components/compositions/elements/code/FileTree.stories.ts +3 -1
  665. package/src/components/compositions/elements/code/GitCodeEditor.stories.ts +3 -1
  666. package/src/components/compositions/elements/code/PullRequestsList.stories.ts +3 -1
  667. package/src/components/compositions/elements/configuration-block/DialogBlock.stories.ts +1 -1
  668. package/src/components/compositions/elements/configuration-block/ElementsBlock.stories.ts +1 -1
  669. package/src/components/compositions/elements/configuration-block/ModalBlock.stories.ts +2 -0
  670. package/src/components/compositions/elements/configuration-block/RepeatableBlock.stories.ts +45 -2
  671. package/src/components/compositions/elements/configuration-block/RepeatableBlock.test.ts +47 -16
  672. package/src/components/compositions/elements/configuration-block/RepeatableBlock.vue +161 -92
  673. package/src/components/compositions/elements/configuration-block/RepeatableRow.vue +36 -0
  674. package/src/components/compositions/elements/display/BannerDisplay.stories.ts +3 -1
  675. package/src/components/compositions/elements/display/BarcodeDisplay.stories.ts +3 -1
  676. package/src/components/compositions/elements/display/CarouselDisplay.stories.ts +3 -1
  677. package/src/components/compositions/elements/display/ChartDisplay.stories.ts +3 -1
  678. package/src/components/compositions/elements/display/HtmlDisplay.stories.ts +3 -1
  679. package/src/components/compositions/elements/display/IconDisplay.stories.ts +3 -1
  680. package/src/components/compositions/elements/display/IframeDisplay.stories.ts +3 -1
  681. package/src/components/compositions/elements/display/ImageDisplay.stories.ts +3 -1
  682. package/src/components/compositions/elements/display/MarkdownDisplay.stories.ts +3 -1
  683. package/src/components/compositions/elements/display/ProgressBarDisplay.stories.ts +3 -1
  684. package/src/components/compositions/elements/display/QrCodeDisplay.stories.ts +3 -1
  685. package/src/components/compositions/elements/display/ReactiveCanvasDisplay.stories.ts +3 -1
  686. package/src/components/compositions/elements/display/SpriteDisplay.stories.ts +3 -1
  687. package/src/components/compositions/elements/display/TypeDisplay.stories.ts +3 -1
  688. package/src/components/compositions/elements/display/VideoPlayerDisplay.stories.ts +3 -1
  689. package/src/components/compositions/elements/editor/CodeEditor.stories.ts +88 -12
  690. package/src/components/compositions/elements/editor/CodeEditor.test.ts +72 -41
  691. package/src/components/compositions/elements/editor/CodeEditor.vue +306 -38
  692. package/src/components/compositions/elements/editor/HtmlEditor.stories.ts +73 -6
  693. package/src/components/compositions/elements/editor/HtmlEditor.test.ts +59 -50
  694. package/src/components/compositions/elements/editor/HtmlEditor.vue +942 -41
  695. package/src/components/compositions/elements/editor/ImageEditor.stories.ts +3 -1
  696. package/src/components/compositions/elements/editor/MarkdownEditor.stories.ts +3 -1
  697. package/src/components/compositions/elements/editor/RichTextEditor.stories.ts +3 -1
  698. package/src/components/compositions/elements/file/AssetPickerFile.stories.ts +3 -1
  699. package/src/components/compositions/elements/file/DropzoneFile.stories.ts +3 -1
  700. package/src/components/compositions/elements/file/UploadFile.stories.ts +3 -1
  701. package/src/components/compositions/elements/input/BarcodeScannerInput.stories.ts +3 -1
  702. package/src/components/compositions/elements/input/EmailInput.stories.ts +3 -1
  703. package/src/components/compositions/elements/input/NumberInput.stories.ts +3 -1
  704. package/src/components/compositions/elements/input/PasswordInput.stories.ts +3 -1
  705. package/src/components/compositions/elements/input/RangeSliderInput.stories.ts +3 -1
  706. package/src/components/compositions/elements/input/SearchInput.stories.ts +3 -1
  707. package/src/components/compositions/elements/input/TelInput.stories.ts +3 -1
  708. package/src/components/compositions/elements/input/TextInput.stories.ts +3 -1
  709. package/src/components/compositions/elements/input/TextareaInput.stories.ts +3 -1
  710. package/src/components/compositions/elements/input/UrlInput.stories.ts +3 -1
  711. package/src/components/compositions/elements/option-select/AsyncSelectOption.stories.ts +3 -1
  712. package/src/components/compositions/elements/option-select/AutoCompleteOption.stories.ts +3 -1
  713. package/src/components/compositions/elements/option-select/CheckboxOption.stories.ts +3 -1
  714. package/src/components/compositions/elements/option-select/IntegrationConnectorOption.stories.ts +3 -1
  715. package/src/components/compositions/elements/option-select/ListOption.stories.ts +3 -1
  716. package/src/components/compositions/elements/option-select/PillSelectOption.stories.ts +3 -1
  717. package/src/components/compositions/elements/option-select/RadioOption.stories.ts +3 -1
  718. package/src/components/compositions/elements/option-select/SelectMultipleOption.stories.ts +3 -1
  719. package/src/components/compositions/elements/option-select/SelectOption.stories.ts +3 -1
  720. package/src/components/compositions/elements/picker/AsyncSelectPicker.stories.ts +3 -1
  721. package/src/components/compositions/elements/picker/ColorPicker.stories.ts +3 -1
  722. package/src/components/compositions/elements/picker/DataModelPicker.stories.ts +3 -1
  723. package/src/components/compositions/elements/picker/DatePicker.stories.ts +3 -1
  724. package/src/components/compositions/elements/picker/DateTimePicker.stories.ts +3 -1
  725. package/src/components/compositions/elements/picker/IconPicker.stories.ts +3 -1
  726. package/src/components/compositions/elements/{components → picker}/IconPickerInline.stories.ts +3 -1
  727. package/src/components/compositions/elements/{components → picker}/IconPickerInline.test.ts +8 -8
  728. package/src/components/compositions/elements/{components → picker}/IconPickerInline.vue +4 -4
  729. package/src/components/compositions/elements/picker/IntegrationConnectorPicker.stories.ts +3 -1
  730. package/src/components/compositions/elements/picker/MapPicker.stories.ts +3 -1
  731. package/src/components/compositions/elements/picker/TimePicker.stories.ts +3 -1
  732. package/src/components/compositions/elements/picker/TimezonePicker.stories.ts +3 -1
  733. package/src/components/ui/accordion/Accordion.stories.ts +2 -0
  734. package/src/components/ui/alert/Alert.stories.ts +2 -0
  735. package/src/components/ui/avatar/Avatar.stories.ts +2 -0
  736. package/src/components/ui/badge/Badge.stories.ts +2 -0
  737. package/src/components/ui/button/Button.stories.ts +5 -0
  738. package/src/components/ui/calendar/Calendar.stories.ts +2 -0
  739. package/src/components/ui/card/Card.stories.ts +2 -0
  740. package/src/components/ui/checkbox/Checkbox.stories.ts +2 -0
  741. package/src/components/ui/combobox/Combobox.stories.ts +2 -0
  742. package/src/components/ui/command/Command.stories.ts +2 -0
  743. package/src/components/ui/dialog/Dialog.stories.ts +2 -0
  744. package/src/components/ui/dropdown-menu/DropdownMenu.stories.ts +2 -0
  745. package/src/components/ui/field-frame/FieldFrame.stories.ts +1 -1
  746. package/src/components/ui/index.ts +3 -3
  747. package/src/components/ui/input/Input.stories.ts +2 -0
  748. package/src/components/ui/label/Label.stories.ts +2 -0
  749. package/src/components/ui/popover/Popover.stories.ts +2 -0
  750. package/src/components/ui/progress/Progress.stories.ts +2 -0
  751. package/src/components/ui/radio-group/RadioGroup.stories.ts +2 -0
  752. package/src/components/ui/select/Select.stories.ts +2 -0
  753. package/src/components/ui/separator/Separator.stories.ts +2 -0
  754. package/src/components/ui/sheet/Sheet.stories.ts +2 -0
  755. package/src/components/ui/skeleton/Skeleton.stories.ts +2 -0
  756. package/src/components/ui/slider/Slider.stories.ts +2 -0
  757. package/src/components/ui/switch/Switch.stories.ts +2 -0
  758. package/src/components/ui/table/Table.stories.ts +2 -0
  759. package/src/components/ui/tabs/Tabs.stories.ts +2 -0
  760. package/src/components/ui/textarea/Textarea.stories.ts +2 -0
  761. package/src/components/ui/toast/Toaster.stories.ts +2 -0
  762. package/src/components/ui/toast/index.ts +1 -1
  763. package/src/components/ui/toggle/Toggle.stories.ts +2 -0
  764. package/src/components/ui/tooltip/Tooltip.stories.ts +2 -0
  765. package/src/configuration-block.ts +4 -0
  766. package/src/definitions/__tests__/schema.test.ts +0 -1
  767. package/src/definitions/elements/PickerElement.ts +2 -0
  768. package/src/definitions/elements/index.ts +0 -18
  769. package/src/definitions/index.ts +1 -1
  770. package/src/definitions/shared/base.ts +0 -1
  771. package/src/display.ts +15 -0
  772. package/src/editor.ts +5 -0
  773. package/src/engine/registry.ts +1 -7
  774. package/src/engine/useFormData.ts +1 -1
  775. package/src/file.ts +3 -0
  776. package/src/index.ts +3 -3
  777. package/src/input.ts +10 -0
  778. package/src/lib/storybook.ts +67 -0
  779. package/src/option-select.ts +9 -0
  780. package/src/pages/IndexPage.stories.ts +2 -1
  781. package/src/pages/ShowPage.stories.ts +2 -1
  782. package/src/pages/ShowPage.vue +1 -1
  783. package/src/picker.ts +11 -0
  784. package/src/stores/dependencyListBuilderStore.ts +1 -1
  785. package/src/stores/elementListBuilderStore.ts +1 -1
  786. package/src/stores/formBuilderStore.ts +1 -1
  787. package/src/stores/formDataStore.ts +1 -1
  788. package/src/stores/gridBuilderStore.ts +1 -1
  789. package/src/stores/objectBuilderStore.ts +1 -1
  790. package/src/stores/presetBuilderStore.ts +1 -1
  791. package/src/stores/quizBuilderStore.ts +1 -1
  792. package/src/stores/reactiveCanvasBuilderStore.ts +1 -1
  793. package/src/styles/themes/dark.css +1 -1
  794. package/src/styles/themes/default.css +1 -1
  795. package/src/styles/themes/kiosk.css +1 -1
  796. package/dist/components/compositions/elements/components/IconBadge.vue.js +0 -5
  797. package/dist/components/compositions/elements/components/IconBadge.vue.js.map +0 -1
  798. package/dist/components/compositions/elements/components/IconBadge.vue2.js +0 -77
  799. package/dist/components/compositions/elements/components/IconBadge.vue2.js.map +0 -1
  800. package/dist/components/compositions/elements/components/IconPickerInline.vue.js +0 -5
  801. package/dist/components/compositions/elements/components/IconPickerInline.vue.js.map +0 -1
  802. package/dist/components/compositions/elements/components/IconPickerInline.vue2.js.map +0 -1
  803. package/dist/definitions/elements/ComponentsElement.d.ts +0 -187
  804. package/dist/definitions/elements/ComponentsElement.d.ts.map +0 -1
  805. package/dist/definitions/elements/ComponentsElement.js +0 -111
  806. package/dist/definitions/elements/ComponentsElement.js.map +0 -1
  807. package/dist/styles/index.css +0 -1
  808. package/src/components/compositions/elements/components/IconBadge.stories.ts +0 -96
  809. package/src/components/compositions/elements/components/IconBadge.test.ts +0 -70
  810. package/src/components/compositions/elements/components/IconBadge.vue +0 -121
  811. package/src/definitions/elements/ComponentsElement.ts +0 -149
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveCanvasBuilder.vue2.js","sources":["../../../../../src/components/compositions/elements/builder/ReactiveCanvasBuilder.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * ReactiveCanvasBuilder — visual canvas where component-like blocks can\n * be placed and configured.\n *\n * Three-pane layout (matches FormBuilder):\n * - LEFT (Palette): a list of built-in block types. Click to add.\n * - MIDDLE (Canvas): a fixed-size relative-positioned surface. Each\n * block renders as an absolutely-positioned\n * placeholder card showing type + size + position.\n * Click to select.\n * - RIGHT (Inspector): edits the selected block's x / y / width /\n * height (number inputs), type (Select), and\n * props (JSON textarea for now).\n *\n * Blocks may be repositioned by pointer-drag (no snapping, raw pixel\n * delta) and resized via four corner handles. Drag clamps to the\n * canvas bounds; resize clamps each block to a 20x20 minimum.\n *\n * State is owned by `reactiveCanvasBuilderStore`. Two-way binds the\n * full `ReactiveCanvasBuilderSchema` via `defineModel`.\n */\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from \"vue\"\nimport { Plus, Trash2, X } from \"lucide-vue-next\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport {\n FieldFrame,\n type FieldFrameProps,\n} from \"@/components/ui/field-frame\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { Textarea } from \"@/components/ui/textarea\"\nimport {\n REACTIVE_CANVAS_BLOCK_TYPES,\n useReactiveCanvasBuilder,\n type ReactiveCanvasBlock,\n type ReactiveCanvasBuilderSchema,\n} from \"@/stores/reactiveCanvasBuilderStore\"\nimport { cn } from \"@/lib/utils\"\n\nexport interface ReactiveCanvasBuilderProps\n extends Pick<FieldFrameProps, \"label\" | \"hideLabel\" | \"helpText\" | \"errors\"> {\n /** Initial / current schema. Two-way bindable via v-model. */\n modelValue?: ReactiveCanvasBuilderSchema\n /**\n * Identifier used to key the reactiveCanvasBuilderStore. Defaults to\n * a stable auto-generated id so multiple builders on the same page\n * don't collide.\n */\n builderId?: string\n name?: string | null\n item?: Record<string, unknown>\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<ReactiveCanvasBuilderProps>(), {\n errors: () => [],\n item: () => ({}),\n})\n\nconst model = defineModel<ReactiveCanvasBuilderSchema | undefined>(\n \"modelValue\",\n)\n\nlet nextAutoId = 0\nfunction makeAutoId(): string {\n nextAutoId += 1\n return `reactive-canvas-${Date.now()}-${nextAutoId}`\n}\nconst fallbackId = ref<string>(makeAutoId())\nconst builderId = computed<string>(() => props.builderId ?? fallbackId.value)\n\nconst builder = useReactiveCanvasBuilder(builderId.value)\n\nfunction isSchema(value: unknown): value is ReactiveCanvasBuilderSchema {\n if (typeof value !== \"object\" || value === null) {\n return false\n }\n const v = value as Record<string, unknown>\n return (\n typeof v.width === \"number\" &&\n typeof v.height === \"number\" &&\n Array.isArray(v.blocks)\n )\n}\n\nonMounted(() => {\n const seed = model.value\n if (isSchema(seed)) {\n builder.loadSchema(seed)\n }\n})\n\nwatch(\n () => builder.schema.value,\n (next) => {\n model.value = next\n },\n { deep: true },\n)\n\nconst schema = computed<ReactiveCanvasBuilderSchema>(\n () => builder.schema.value,\n)\nconst blocks = computed<ReactiveCanvasBlock[]>(() => schema.value.blocks)\nconst selectedId = computed<string | null>(() => builder.selection.value.id)\nconst selectedBlock = computed<ReactiveCanvasBlock | null>(() => {\n const id = selectedId.value\n if (!id) {\n return null\n }\n return blocks.value.find((b) => b.id === id) ?? null\n})\n\n/** Local string buffer for the props JSON textarea so users can type\n * freely without us re-parsing on every keystroke. */\nconst propsJsonDraft = ref<string>(\"\")\nconst propsJsonError = ref<string | null>(null)\n\nwatch(\n () => selectedBlock.value?.id,\n () => {\n const block = selectedBlock.value\n if (!block) {\n propsJsonDraft.value = \"\"\n propsJsonError.value = null\n return\n }\n propsJsonDraft.value = JSON.stringify(block.props ?? {}, null, 2)\n propsJsonError.value = null\n },\n { immediate: true },\n)\n\nfunction onPaletteAdd(type: string): void {\n const id = builder.addBlock(type)\n builder.select(id)\n}\n\nfunction onBlockClick(blockId: string): void {\n builder.select(blockId)\n}\n\nfunction onClearSelection(): void {\n builder.select(null)\n}\n\nfunction onRemoveSelected(): void {\n const id = selectedId.value\n if (id) {\n builder.removeBlock(id)\n }\n}\n\nfunction patchSelected(\n patch: Partial<Omit<ReactiveCanvasBlock, \"id\">>,\n): void {\n const id = selectedId.value\n if (id) {\n builder.updateBlock(id, patch)\n }\n}\n\nfunction onNumberInput(\n key: \"x\" | \"y\" | \"width\" | \"height\",\n e: Event,\n): void {\n const raw = (e.target as HTMLInputElement).value\n const parsed = Number(raw)\n if (Number.isFinite(parsed)) {\n patchSelected({ [key]: parsed } as Partial<ReactiveCanvasBlock>)\n }\n}\n\nfunction onCanvasSizeInput(key: \"width\" | \"height\", e: Event): void {\n const raw = (e.target as HTMLInputElement).value\n const parsed = Number(raw)\n if (Number.isFinite(parsed) && parsed > 0) {\n builder.setCanvasSize({ [key]: parsed })\n }\n}\n\nfunction onTypeChange(v: unknown): void {\n if (typeof v === \"string\") {\n patchSelected({ type: v })\n }\n}\n\nfunction onPropsJsonInput(e: Event): void {\n const next = (e.target as HTMLTextAreaElement).value\n propsJsonDraft.value = next\n try {\n const parsed = next.trim() === \"\" ? {} : JSON.parse(next)\n if (\n typeof parsed !== \"object\" ||\n parsed === null ||\n Array.isArray(parsed)\n ) {\n throw new Error(\"Props must be a JSON object\")\n }\n propsJsonError.value = null\n patchSelected({ props: parsed as Record<string, unknown> })\n } catch (err) {\n propsJsonError.value =\n err instanceof Error ? err.message : \"Invalid JSON\"\n }\n}\n\nconst canvasStyle = computed(() => ({\n width: `${schema.value.width}px`,\n height: `${schema.value.height}px`,\n maxWidth: \"100%\",\n}))\n\nfunction blockStyle(block: ReactiveCanvasBlock): Record<string, string> {\n return {\n left: `${block.x}px`,\n top: `${block.y}px`,\n width: `${block.width}px`,\n height: `${block.height}px`,\n }\n}\n\n/* ------------------------------------------------------------------ */\n/* Pointer-driven drag + resize */\n/* ------------------------------------------------------------------ */\n\nconst MIN_BLOCK_SIZE = 20\n\ntype ResizeCorner = \"tl\" | \"tr\" | \"bl\" | \"br\"\n\ninterface DragState {\n mode: \"drag\" | \"resize\"\n corner: ResizeCorner | null\n blockId: string\n pointerId: number\n target: HTMLElement\n startClientX: number\n startClientY: number\n startX: number\n startY: number\n startWidth: number\n startHeight: number\n}\n\nconst activeDrag = ref<DragState | null>(null)\nconst activeInteractionId = computed<string | null>(\n () => activeDrag.value?.blockId ?? null,\n)\n\nfunction clampToCanvas(\n x: number,\n y: number,\n width: number,\n height: number,\n): { x: number; y: number } {\n const maxX = Math.max(0, schema.value.width - width)\n const maxY = Math.max(0, schema.value.height - height)\n return {\n x: Math.min(Math.max(0, x), maxX),\n y: Math.min(Math.max(0, y), maxY),\n }\n}\n\nfunction beginInteraction(\n block: ReactiveCanvasBlock,\n event: PointerEvent,\n mode: \"drag\" | \"resize\",\n corner: ResizeCorner | null = null,\n): void {\n event.preventDefault()\n event.stopPropagation()\n builder.select(block.id)\n const target = event.target as HTMLElement | null\n if (target && typeof target.setPointerCapture === \"function\") {\n try {\n target.setPointerCapture(event.pointerId)\n } catch {\n // ignore (jsdom or detached node)\n }\n }\n activeDrag.value = {\n mode,\n corner,\n blockId: block.id,\n pointerId: event.pointerId,\n target: target ?? (event.currentTarget as HTMLElement),\n startClientX: event.clientX,\n startClientY: event.clientY,\n startX: block.x,\n startY: block.y,\n startWidth: block.width,\n startHeight: block.height,\n }\n window.addEventListener(\"pointermove\", onPointerMove)\n window.addEventListener(\"pointerup\", onPointerUp)\n window.addEventListener(\"pointercancel\", onPointerUp)\n}\n\nfunction onBlockPointerDown(\n block: ReactiveCanvasBlock,\n event: PointerEvent,\n): void {\n if (event.button !== undefined && event.button !== 0) {\n return\n }\n beginInteraction(block, event, \"drag\")\n}\n\nfunction onResizePointerDown(\n block: ReactiveCanvasBlock,\n corner: ResizeCorner,\n event: PointerEvent,\n): void {\n if (event.button !== undefined && event.button !== 0) {\n return\n }\n beginInteraction(block, event, \"resize\", corner)\n}\n\nfunction applyDrag(state: DragState, dx: number, dy: number): void {\n const nextX = state.startX + dx\n const nextY = state.startY + dy\n const clamped = clampToCanvas(\n nextX,\n nextY,\n state.startWidth,\n state.startHeight,\n )\n builder.updateBlock(state.blockId, { x: clamped.x, y: clamped.y })\n}\n\nfunction applyResize(state: DragState, dx: number, dy: number): void {\n let x = state.startX\n let y = state.startY\n let width = state.startWidth\n let height = state.startHeight\n switch (state.corner) {\n case \"br\":\n width = state.startWidth + dx\n height = state.startHeight + dy\n break\n case \"tr\":\n width = state.startWidth + dx\n height = state.startHeight - dy\n y = state.startY + dy\n break\n case \"bl\":\n width = state.startWidth - dx\n height = state.startHeight + dy\n x = state.startX + dx\n break\n case \"tl\":\n width = state.startWidth - dx\n height = state.startHeight - dy\n x = state.startX + dx\n y = state.startY + dy\n break\n default:\n return\n }\n // Enforce minimum size: if the user drags past the min on a \"leading\n // edge\" corner (tl/tr/bl), we need to clamp position too so the\n // block doesn't grow in the wrong direction.\n if (width < MIN_BLOCK_SIZE) {\n if (state.corner === \"tl\" || state.corner === \"bl\") {\n x = state.startX + (state.startWidth - MIN_BLOCK_SIZE)\n }\n width = MIN_BLOCK_SIZE\n }\n if (height < MIN_BLOCK_SIZE) {\n if (state.corner === \"tl\" || state.corner === \"tr\") {\n y = state.startY + (state.startHeight - MIN_BLOCK_SIZE)\n }\n height = MIN_BLOCK_SIZE\n }\n builder.updateBlock(state.blockId, { x, y, width, height })\n}\n\nfunction onPointerMove(event: PointerEvent): void {\n const state = activeDrag.value\n if (!state) {\n return\n }\n const dx = event.clientX - state.startClientX\n const dy = event.clientY - state.startClientY\n if (state.mode === \"drag\") {\n applyDrag(state, dx, dy)\n } else {\n applyResize(state, dx, dy)\n }\n}\n\nfunction onPointerUp(event: PointerEvent): void {\n const state = activeDrag.value\n if (state) {\n const target = state.target\n if (target && typeof target.releasePointerCapture === \"function\") {\n try {\n target.releasePointerCapture(state.pointerId)\n } catch {\n // ignore\n }\n }\n }\n activeDrag.value = null\n window.removeEventListener(\"pointermove\", onPointerMove)\n window.removeEventListener(\"pointerup\", onPointerUp)\n window.removeEventListener(\"pointercancel\", onPointerUp)\n void event\n}\n\nonBeforeUnmount(() => {\n window.removeEventListener(\"pointermove\", onPointerMove)\n window.removeEventListener(\"pointerup\", onPointerUp)\n window.removeEventListener(\"pointercancel\", onPointerUp)\n})\n\ninterface ResizeHandleSpec {\n corner: ResizeCorner\n position: string\n cursor: string\n}\n\nconst RESIZE_HANDLES: ResizeHandleSpec[] = [\n { corner: \"tl\", position: \"-top-1 -left-1\", cursor: \"cursor-nwse-resize\" },\n { corner: \"tr\", position: \"-top-1 -right-1\", cursor: \"cursor-nesw-resize\" },\n { corner: \"bl\", position: \"-bottom-1 -left-1\", cursor: \"cursor-nesw-resize\" },\n { corner: \"br\", position: \"-bottom-1 -right-1\", cursor: \"cursor-nwse-resize\" },\n]\n</script>\n\n<template>\n <FieldFrame\n :label=\"props.label\"\n :hide-label=\"props.hideLabel\"\n :help-text=\"props.helpText\"\n :errors=\"props.errors\"\n :class=\"props.classList\"\n >\n <div\n :class=\"cn('gxp-reactive-canvas-builder grid gap-3 rounded-lg border bg-card')\"\n style=\"grid-template-columns: 220px 1fr 320px; min-height: 24rem\"\n data-testid=\"reactive-canvas-builder\"\n :data-element-name=\"props.name ?? undefined\"\n >\n <aside\n class=\"flex flex-col gap-2 border-r p-3 overflow-y-auto\"\n data-testid=\"reactive-canvas-builder-palette\"\n >\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Block palette\n </h4>\n <div class=\"flex flex-col gap-1\">\n <button\n v-for=\"type in REACTIVE_CANVAS_BLOCK_TYPES\"\n :key=\"type\"\n type=\"button\"\n class=\"flex items-start gap-2 rounded-md border bg-background px-2 py-1.5 text-left text-xs transition-colors hover:border-primary hover:bg-accent/40\"\n :data-testid=\"`reactive-canvas-builder-palette-${type}`\"\n @click=\"onPaletteAdd(type)\"\n >\n <Plus class=\"mt-0.5 h-3.5 w-3.5 shrink-0\" />\n <span class=\"font-medium\">{{ type }}</span>\n </button>\n </div>\n </aside>\n\n <section\n class=\"flex flex-col gap-3 overflow-auto p-3\"\n data-testid=\"reactive-canvas-builder-canvas\"\n >\n <header class=\"flex items-center justify-between gap-2\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Canvas ({{ schema.width }} x {{ schema.height }})\n </h4>\n <Badge variant=\"outline\" class=\"font-mono text-[10px]\">\n builder/reactive-canvas-builder\n </Badge>\n </header>\n\n <div\n class=\"relative overflow-auto rounded-md border border-dashed bg-background\"\n :style=\"canvasStyle\"\n data-testid=\"reactive-canvas-builder-surface\"\n >\n <p\n v-if=\"blocks.length === 0\"\n class=\"absolute inset-0 flex items-center justify-center text-center text-xs text-muted-foreground\"\n data-testid=\"reactive-canvas-builder-canvas-empty\"\n >\n Click a block type in the palette to add it.\n </p>\n <div\n v-for=\"block in blocks\"\n :key=\"block.id\"\n class=\"absolute cursor-move touch-none select-none rounded border bg-card p-2 text-xs shadow-sm transition-colors hover:border-primary\"\n :class=\"[\n selectedId === block.id\n ? 'border-primary ring-2 ring-primary/30'\n : '',\n activeInteractionId === block.id ? 'ring-2 ring-primary' : '',\n ]\"\n :style=\"blockStyle(block)\"\n :data-testid=\"`reactive-canvas-builder-block-${block.id}`\"\n @click.stop=\"onBlockClick(block.id)\"\n @pointerdown=\"(e: PointerEvent) => onBlockPointerDown(block, e)\"\n >\n <div class=\"flex items-center justify-between\">\n <span class=\"font-mono text-[10px] text-muted-foreground\">\n {{ block.type }}\n </span>\n <span class=\"font-mono text-[10px] text-muted-foreground\">\n {{ block.width }}x{{ block.height }}\n </span>\n </div>\n <div class=\"mt-1 font-mono text-[10px] text-muted-foreground\">\n ({{ block.x }}, {{ block.y }})\n </div>\n <span\n v-for=\"handle in RESIZE_HANDLES\"\n :key=\"handle.corner\"\n :class=\"\n cn(\n 'absolute h-2 w-2 rounded-sm border border-primary/70 bg-primary/30 hover:bg-primary',\n handle.position,\n handle.cursor,\n )\n \"\n :data-testid=\"`reactive-canvas-builder-block-${block.id}-resize-${handle.corner}`\"\n @click.stop\n @pointerdown.stop=\"\n (e: PointerEvent) => onResizePointerDown(block, handle.corner, e)\n \"\n />\n </div>\n </div>\n </section>\n\n <aside\n class=\"flex flex-col gap-2 overflow-y-auto border-l p-3\"\n data-testid=\"reactive-canvas-builder-inspector\"\n >\n <header class=\"flex items-center justify-between\">\n <h4 class=\"text-xs font-semibold uppercase tracking-wide text-muted-foreground\">\n Inspector\n </h4>\n <Button\n v-if=\"selectedId\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label=\"Clear selection\"\n @click=\"onClearSelection\"\n >\n <X class=\"h-3.5 w-3.5\" />\n </Button>\n </header>\n\n <Card class=\"border-dashed\">\n <CardHeader class=\"py-2\">\n <CardTitle class=\"font-mono text-xs uppercase tracking-wide\">\n Canvas\n </CardTitle>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-2 pb-3\">\n <div class=\"grid grid-cols-2 gap-2\">\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-canvas-width\">Width</Label>\n <Input\n id=\"rcb-canvas-width\"\n type=\"number\"\n :model-value=\"schema.width\"\n data-testid=\"reactive-canvas-builder-canvas-width\"\n @input=\"(e: Event) => onCanvasSizeInput('width', e)\"\n />\n </div>\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-canvas-height\">Height</Label>\n <Input\n id=\"rcb-canvas-height\"\n type=\"number\"\n :model-value=\"schema.height\"\n data-testid=\"reactive-canvas-builder-canvas-height\"\n @input=\"(e: Event) => onCanvasSizeInput('height', e)\"\n />\n </div>\n </div>\n </CardContent>\n </Card>\n\n <p\n v-if=\"!selectedBlock\"\n class=\"py-3 text-xs text-muted-foreground\"\n data-testid=\"reactive-canvas-builder-inspector-empty\"\n >\n Select a block on the canvas to edit it.\n </p>\n\n <div\n v-else\n class=\"flex flex-col gap-3\"\n data-testid=\"reactive-canvas-builder-inspector-fields\"\n >\n <Card class=\"border-dashed\">\n <CardHeader class=\"py-2\">\n <CardTitle class=\"font-mono text-xs uppercase tracking-wide\">\n {{ selectedBlock.type }}\n </CardTitle>\n </CardHeader>\n <CardContent class=\"flex flex-col gap-2 pb-3\">\n <div class=\"flex flex-col gap-1\">\n <Label>Block type</Label>\n <Select\n :model-value=\"selectedBlock.type\"\n @update:model-value=\"onTypeChange\"\n >\n <SelectTrigger\n data-testid=\"reactive-canvas-builder-inspector-type\"\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n <SelectItem\n v-for=\"t in REACTIVE_CANVAS_BLOCK_TYPES\"\n :key=\"t\"\n :value=\"t\"\n >\n {{ t }}\n </SelectItem>\n </SelectContent>\n </Select>\n </div>\n\n <div class=\"grid grid-cols-2 gap-2\">\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-block-x\">X</Label>\n <Input\n id=\"rcb-block-x\"\n type=\"number\"\n :model-value=\"selectedBlock.x\"\n data-testid=\"reactive-canvas-builder-inspector-x\"\n @input=\"(e: Event) => onNumberInput('x', e)\"\n />\n </div>\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-block-y\">Y</Label>\n <Input\n id=\"rcb-block-y\"\n type=\"number\"\n :model-value=\"selectedBlock.y\"\n data-testid=\"reactive-canvas-builder-inspector-y\"\n @input=\"(e: Event) => onNumberInput('y', e)\"\n />\n </div>\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-block-width\">Width</Label>\n <Input\n id=\"rcb-block-width\"\n type=\"number\"\n :model-value=\"selectedBlock.width\"\n data-testid=\"reactive-canvas-builder-inspector-width\"\n @input=\"(e: Event) => onNumberInput('width', e)\"\n />\n </div>\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-block-height\">Height</Label>\n <Input\n id=\"rcb-block-height\"\n type=\"number\"\n :model-value=\"selectedBlock.height\"\n data-testid=\"reactive-canvas-builder-inspector-height\"\n @input=\"(e: Event) => onNumberInput('height', e)\"\n />\n </div>\n </div>\n\n <div class=\"flex flex-col gap-1\">\n <Label for=\"rcb-block-props\">Props (JSON)</Label>\n <Textarea\n id=\"rcb-block-props\"\n :model-value=\"propsJsonDraft\"\n rows=\"6\"\n class=\"font-mono text-xs\"\n data-testid=\"reactive-canvas-builder-inspector-props\"\n @input=\"onPropsJsonInput\"\n />\n <p\n v-if=\"propsJsonError\"\n class=\"text-xs text-destructive\"\n data-testid=\"reactive-canvas-builder-inspector-props-error\"\n >\n {{ propsJsonError }}\n </p>\n </div>\n </CardContent>\n </Card>\n\n <div class=\"flex items-center gap-1\">\n <Button\n variant=\"destructive\"\n size=\"sm\"\n class=\"ml-auto\"\n data-testid=\"reactive-canvas-builder-remove\"\n @click=\"onRemoveSelected\"\n >\n <Trash2 class=\"h-3.5 w-3.5\" />\n Remove block\n </Button>\n </div>\n </div>\n </aside>\n </div>\n </FieldFrame>\n</template>\n"],"names":["MIN_BLOCK_SIZE","props","__props","model","_useModel","nextAutoId","makeAutoId","fallbackId","ref","builderId","computed","builder","useReactiveCanvasBuilder","isSchema","value","v","onMounted","seed","watch","next","schema","blocks","selectedId","selectedBlock","id","b","propsJsonDraft","propsJsonError","_a","block","onPaletteAdd","type","onBlockClick","blockId","onClearSelection","onRemoveSelected","patchSelected","patch","onNumberInput","key","raw","parsed","onCanvasSizeInput","onTypeChange","onPropsJsonInput","e","err","canvasStyle","blockStyle","activeDrag","activeInteractionId","clampToCanvas","x","y","width","height","maxX","maxY","beginInteraction","event","mode","corner","target","onPointerMove","onPointerUp","onBlockPointerDown","onResizePointerDown","applyDrag","state","dx","dy","nextX","nextY","clamped","applyResize","onBeforeUnmount","RESIZE_HANDLES","_createBlock","_unref","FieldFrame","_normalizeClass","_createElementVNode","cn","_hoisted_2","_cache","_hoisted_3","_createElementBlock","_Fragment","_renderList","REACTIVE_CANVAS_BLOCK_TYPES","$event","_createVNode","Plus","_hoisted_5","_toDisplayString","_hoisted_6","_hoisted_7","_hoisted_8","Badge","_hoisted_9","_normalizeStyle","_withModifiers","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","handle","_hoisted_16","_hoisted_17","Button","X","Card","CardHeader","CardTitle","CardContent","_hoisted_18","_hoisted_19","Label","Input","_hoisted_20","_openBlock","_hoisted_22","_createTextVNode","_hoisted_23","Select","SelectTrigger","SelectValue","SelectContent","t","SelectItem","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","Textarea","_hoisted_30","_hoisted_31","Trash2","_hoisted_21"],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveCanvasBuilder.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,21 @@
1
+ export interface ListCardProps {
2
+ label?: string;
3
+ title?: string;
4
+ subtitle?: string;
5
+ showCard?: boolean;
6
+ gutterY?: string;
7
+ gutterX?: string;
8
+ /** Resolved child elements passed by the engine / FormBuilder canvas. */
9
+ nestedElements?: Array<Record<string, unknown>>;
10
+ item?: Record<string, unknown>;
11
+ classList?: string[] | string;
12
+ }
13
+ declare const _default: import('vue').DefineComponent<ListCardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ListCardProps> & Readonly<{}>, {
14
+ showCard: boolean;
15
+ nestedElements: Array<Record<string, unknown>>;
16
+ gutterY: string;
17
+ gutterX: string;
18
+ item: Record<string, unknown>;
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
20
+ export default _default;
21
+ //# sourceMappingURL=ListCard.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCard.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/compositions/elements/card/ListCard.vue"],"names":[],"mappings":"AA+HA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,yEAAyE;IACzE,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;CAC9B;;cAPY,OAAO;oBAID,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAHrC,MAAM;aACN,MAAM;UAGT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;AA2LhC,wBAOG"}
@@ -0,0 +1,43 @@
1
+ export type BuildStatusValue = "pending" | "running" | "success" | "failed" | "cancelled";
2
+ export interface BuildStatusEvent {
3
+ status: BuildStatusValue;
4
+ startedAt?: string | Date;
5
+ finishedAt?: string | Date;
6
+ durationMs?: number;
7
+ commitSha?: string;
8
+ commitMessage?: string;
9
+ triggeredBy?: string;
10
+ logs?: string[];
11
+ }
12
+ interface MessageEventLike {
13
+ data?: unknown;
14
+ }
15
+ interface EventListenerTarget {
16
+ addEventListener: (type: string, listener: (e: MessageEventLike) => void) => void;
17
+ removeEventListener: (type: string, listener: (e: MessageEventLike) => void) => void;
18
+ }
19
+ export interface BuildStatusProps {
20
+ /** Initial status to show before the stream emits. */
21
+ initial?: BuildStatusEvent;
22
+ /** Optional EventSource to subscribe to (`message` events). */
23
+ eventStream?: EventListenerTarget;
24
+ /** Optional WebSocket to subscribe to (`message` events). */
25
+ socket?: EventListenerTarget;
26
+ /** Cleanup callback fired on unmount. The composition does NOT close
27
+ * the underlying stream itself — caller owns the lifecycle. */
28
+ onUnsubscribe?: () => void;
29
+ /** When true, render `logs[]` as a collapsible monospace block. */
30
+ showLogs?: boolean;
31
+ label?: string;
32
+ name?: string | null;
33
+ classList?: string[] | string;
34
+ }
35
+ declare function applyEvent(payload: unknown): void;
36
+ declare const _default: import('vue').DefineComponent<BuildStatusProps, {
37
+ applyEvent: typeof applyEvent;
38
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<BuildStatusProps> & Readonly<{}>, {
39
+ label: string;
40
+ showLogs: boolean;
41
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
42
+ export default _default;
43
+ //# sourceMappingURL=BuildStatus.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuildStatus.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/compositions/elements/code/BuildStatus.vue"],"names":[],"mappings":"AAoYA,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,SAAS,GACT,SAAS,GACT,QAAQ,GACR,WAAW,CAAA;AAEf,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,gBAAgB,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AACD,UAAU,mBAAmB;IAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,KAAK,IAAI,CAAA;IACjF,mBAAmB,EAAE,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,KACpC,IAAI,CAAA;CACV;AAED,MAAM,WAAW,gBAAgB;IAC/B,sDAAsD;IACtD,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,+DAA+D;IAC/D,WAAW,CAAC,EAAE,mBAAmB,CAAA;IACjC,6DAA6D;IAC7D,MAAM,CAAC,EAAE,mBAAmB,CAAA;IAC5B;oEACgE;IAChE,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAA;CAC9B;AA0CD,iBAAS,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgB1C;;;;WA7DS,MAAM;cADH,OAAO;;AAocpB,wBASG"}
@@ -1,5 +1,249 @@
1
- import f from "./BuildStatus.vue2.js";
1
+ import { defineComponent as O, ref as y, watch as X, onMounted as q, onBeforeUnmount as G, computed as v, openBlock as n, createBlock as h, unref as i, normalizeClass as N, withCtx as m, createVNode as u, createElementVNode as c, toDisplayString as l, resolveDynamicComponent as V, createElementBlock as o, createCommentVNode as d, createTextVNode as M, Fragment as D, renderList as K } from "vue";
2
+ import { Clock as U, Ban as P, XCircle as Q, CheckCircle2 as W, Loader2 as Y, Activity as Z, AlertTriangle as tt, ChevronDown as et, ChevronRight as st } from "lucide-vue-next";
3
+ import "../../../ui/badge/index.js";
4
+ import "../../../ui/button/index.js";
5
+ import "../../../ui/card/index.js";
6
+ import { cn as j } from "../../../../lib/utils.js";
7
+ import at from "../../../ui/card/Card.vue.js";
8
+ import it from "../../../ui/card/CardHeader.vue.js";
9
+ import nt from "../../../ui/card/CardTitle.vue.js";
10
+ import rt from "../../../ui/badge/Badge.vue.js";
11
+ import lt from "../../../ui/card/CardContent.vue.js";
12
+ import ot from "../../../ui/button/Button.vue.js";
13
+ const ut = { class: "flex items-center justify-between gap-2" }, ct = { class: "flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground" }, dt = {
14
+ key: 0,
15
+ class: "font-mono",
16
+ "data-testid": "build-status-sha"
17
+ }, mt = {
18
+ key: 1,
19
+ class: "truncate",
20
+ "data-testid": "build-status-commit-message"
21
+ }, gt = {
22
+ key: 2,
23
+ "data-testid": "build-status-triggered-by"
24
+ }, ft = {
25
+ key: 3,
26
+ class: "flex items-center gap-1",
27
+ "data-testid": "build-status-duration"
28
+ }, vt = {
29
+ key: 0,
30
+ class: "text-xs text-destructive",
31
+ role: "alert",
32
+ "data-testid": "build-status-parse-error"
33
+ }, pt = {
34
+ key: 0,
35
+ class: "max-h-80 overflow-auto rounded-md bg-muted p-3 font-mono text-xs leading-snug",
36
+ "data-testid": "build-status-logs"
37
+ }, $t = /* @__PURE__ */ O({
38
+ __name: "BuildStatus",
39
+ props: {
40
+ initial: {},
41
+ eventStream: {},
42
+ socket: {},
43
+ onUnsubscribe: {},
44
+ showLogs: { type: Boolean, default: !0 },
45
+ label: { default: "Build Status" },
46
+ name: {},
47
+ classList: {}
48
+ },
49
+ setup(R, { expose: T }) {
50
+ var S, k, w, C, $, z, L, E;
51
+ const a = R, s = y({
52
+ status: ((S = a.initial) == null ? void 0 : S.status) ?? "pending",
53
+ startedAt: (k = a.initial) == null ? void 0 : k.startedAt,
54
+ finishedAt: (w = a.initial) == null ? void 0 : w.finishedAt,
55
+ durationMs: (C = a.initial) == null ? void 0 : C.durationMs,
56
+ commitSha: ($ = a.initial) == null ? void 0 : $.commitSha,
57
+ commitMessage: (z = a.initial) == null ? void 0 : z.commitMessage,
58
+ triggeredBy: (L = a.initial) == null ? void 0 : L.triggeredBy,
59
+ logs: (E = a.initial) != null && E.logs ? [...a.initial.logs] : []
60
+ }), g = y(!0), p = y(null);
61
+ X(
62
+ () => a.initial,
63
+ (t) => {
64
+ t && (s.value = {
65
+ status: t.status,
66
+ startedAt: t.startedAt,
67
+ finishedAt: t.finishedAt,
68
+ durationMs: t.durationMs,
69
+ commitSha: t.commitSha,
70
+ commitMessage: t.commitMessage,
71
+ triggeredBy: t.triggeredBy,
72
+ logs: t.logs ? [...t.logs] : []
73
+ });
74
+ },
75
+ { deep: !0 }
76
+ );
77
+ function _(t) {
78
+ if (!t || typeof t != "object")
79
+ return;
80
+ const e = t;
81
+ s.value = {
82
+ status: e.status ?? s.value.status,
83
+ startedAt: e.startedAt ?? s.value.startedAt,
84
+ finishedAt: e.finishedAt ?? s.value.finishedAt,
85
+ durationMs: e.durationMs !== void 0 ? e.durationMs : s.value.durationMs,
86
+ commitSha: e.commitSha ?? s.value.commitSha,
87
+ commitMessage: e.commitMessage ?? s.value.commitMessage,
88
+ triggeredBy: e.triggeredBy ?? s.value.triggeredBy,
89
+ logs: Array.isArray(e.logs) ? e.logs : s.value.logs
90
+ };
91
+ }
92
+ function F(t) {
93
+ const e = t.data;
94
+ if (typeof e == "string")
95
+ try {
96
+ _(JSON.parse(e)), p.value = null;
97
+ } catch (r) {
98
+ p.value = r instanceof Error ? r.message : String(r);
99
+ }
100
+ else e && typeof e == "object" && _(e);
101
+ }
102
+ let f = null;
103
+ q(() => {
104
+ const t = a.eventStream ?? a.socket;
105
+ if (!t)
106
+ return;
107
+ const e = (r) => {
108
+ F(r);
109
+ };
110
+ t.addEventListener("message", e), f = { target: t, handler: e };
111
+ }), G(() => {
112
+ f && (f.target.removeEventListener("message", f.handler), f = null), a.onUnsubscribe && a.onUnsubscribe();
113
+ });
114
+ const H = v(() => {
115
+ switch (s.value.status) {
116
+ case "running":
117
+ return "info";
118
+ case "success":
119
+ return "success";
120
+ case "failed":
121
+ return "destructive";
122
+ case "cancelled":
123
+ return "warning";
124
+ case "pending":
125
+ default:
126
+ return "secondary";
127
+ }
128
+ }), I = v(() => {
129
+ switch (s.value.status) {
130
+ case "running":
131
+ return Y;
132
+ case "success":
133
+ return W;
134
+ case "failed":
135
+ return Q;
136
+ case "cancelled":
137
+ return P;
138
+ case "pending":
139
+ default:
140
+ return U;
141
+ }
142
+ });
143
+ function J(t) {
144
+ if (t === void 0 || Number.isNaN(t))
145
+ return "";
146
+ const e = Math.round(t / 1e3);
147
+ if (e < 60)
148
+ return `${e}s`;
149
+ const r = Math.floor(e / 60), b = e % 60;
150
+ return `${r}m ${b}s`;
151
+ }
152
+ const x = v(() => {
153
+ const t = s.value.commitSha;
154
+ return t ? t.length > 7 ? t.slice(0, 7) : t : "";
155
+ }), A = v(
156
+ () => J(s.value.durationMs)
157
+ ), B = v(() => s.value.status === "running");
158
+ return T({ applyEvent: _ }), (t, e) => (n(), h(i(at), {
159
+ class: N(i(j)(a.classList)),
160
+ "data-element-name": a.name ?? void 0,
161
+ "data-testid": "build-status"
162
+ }, {
163
+ default: m(() => [
164
+ u(i(it), { class: "flex flex-col gap-2 pb-3" }, {
165
+ default: m(() => [
166
+ c("div", ut, [
167
+ u(i(nt), { class: "flex items-center gap-2 text-base" }, {
168
+ default: m(() => [
169
+ u(i(Z), { class: "size-5 text-muted-foreground" }),
170
+ c("span", null, l(a.label), 1)
171
+ ]),
172
+ _: 1
173
+ }),
174
+ u(i(rt), {
175
+ variant: H.value,
176
+ size: "default",
177
+ class: "capitalize",
178
+ "data-testid": "build-status-badge"
179
+ }, {
180
+ default: m(() => [
181
+ (n(), h(V(I.value), {
182
+ class: N(
183
+ i(j)(
184
+ "size-3.5",
185
+ B.value ? "animate-spin" : ""
186
+ )
187
+ ),
188
+ "data-testid": B.value ? "build-status-spinner" : "build-status-icon"
189
+ }, null, 8, ["class", "data-testid"])),
190
+ c("span", null, l(s.value.status), 1)
191
+ ]),
192
+ _: 1
193
+ }, 8, ["variant"])
194
+ ]),
195
+ c("div", ct, [
196
+ x.value ? (n(), o("span", dt, l(x.value), 1)) : d("", !0),
197
+ s.value.commitMessage ? (n(), o("span", mt, l(s.value.commitMessage), 1)) : d("", !0),
198
+ s.value.triggeredBy ? (n(), o("span", gt, " by " + l(s.value.triggeredBy), 1)) : d("", !0),
199
+ A.value ? (n(), o("span", ft, [
200
+ u(i(U), { class: "size-3" }),
201
+ M(" " + l(A.value), 1)
202
+ ])) : d("", !0)
203
+ ]),
204
+ p.value ? (n(), o("p", vt, [
205
+ u(i(tt), { class: "inline size-3" }),
206
+ M(" " + l(p.value), 1)
207
+ ])) : d("", !0)
208
+ ]),
209
+ _: 1
210
+ }),
211
+ a.showLogs && s.value.logs && s.value.logs.length > 0 ? (n(), h(i(lt), {
212
+ key: 0,
213
+ class: "flex flex-col gap-2 pt-0"
214
+ }, {
215
+ default: m(() => [
216
+ u(i(ot), {
217
+ type: "button",
218
+ variant: "ghost",
219
+ size: "sm",
220
+ class: "w-fit -ml-2 text-xs",
221
+ "data-testid": "build-status-logs-toggle",
222
+ onClick: e[0] || (e[0] = (r) => g.value = !g.value)
223
+ }, {
224
+ default: m(() => [
225
+ (n(), h(V(g.value ? i(et) : i(st)), { class: "size-4" })),
226
+ c("span", null, l(g.value ? "Hide logs" : "Show logs") + " (" + l(s.value.logs.length) + ")", 1)
227
+ ]),
228
+ _: 1
229
+ }),
230
+ g.value ? (n(), o("pre", pt, [
231
+ c("code", null, [
232
+ (n(!0), o(D, null, K(s.value.logs, (r, b) => (n(), o(D, { key: b }, [
233
+ M(l(r), 1),
234
+ e[1] || (e[1] = c("br", null, null, -1))
235
+ ], 64))), 128))
236
+ ])
237
+ ])) : d("", !0)
238
+ ]),
239
+ _: 1
240
+ })) : d("", !0)
241
+ ]),
242
+ _: 1
243
+ }, 8, ["class", "data-element-name"]));
244
+ }
245
+ });
2
246
  export {
3
- f as default
247
+ $t as default
4
248
  };
5
249
  //# sourceMappingURL=BuildStatus.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BuildStatus.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"BuildStatus.vue.js","sources":["../../../../../src/components/compositions/elements/code/BuildStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven real-time build status composition. Subscribes to an\n * `EventSource` OR `WebSocket` (whichever is provided) and renders the\n * latest decoded `BuildStatusEvent`. The composition does NOT open or\n * close the underlying stream — the caller owns its lifecycle. The\n * optional `onUnsubscribe` callback fires on unmount for any extra\n * cleanup the caller wants.\n *\n * <BuildStatus\n * :initial=\"{ status: 'pending' }\"\n * :event-stream=\"es\"\n * :on-unsubscribe=\"() => es.close()\"\n * />\n */\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from \"vue\"\nimport {\n Activity,\n AlertTriangle,\n Ban,\n CheckCircle2,\n ChevronDown,\n ChevronRight,\n Clock,\n Loader2,\n XCircle,\n} from \"lucide-vue-next\"\nimport { Badge } from \"@/components/ui/badge\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { cn } from \"@/lib/utils\"\n\nexport type BuildStatusValue =\n | \"pending\"\n | \"running\"\n | \"success\"\n | \"failed\"\n | \"cancelled\"\n\nexport interface BuildStatusEvent {\n status: BuildStatusValue\n startedAt?: string | Date\n finishedAt?: string | Date\n durationMs?: number\n commitSha?: string\n commitMessage?: string\n triggeredBy?: string\n logs?: string[]\n}\n\ninterface MessageEventLike {\n data?: unknown\n}\ninterface EventListenerTarget {\n addEventListener: (type: string, listener: (e: MessageEventLike) => void) => void\n removeEventListener: (\n type: string,\n listener: (e: MessageEventLike) => void,\n ) => void\n}\n\nexport interface BuildStatusProps {\n /** Initial status to show before the stream emits. */\n initial?: BuildStatusEvent\n /** Optional EventSource to subscribe to (`message` events). */\n eventStream?: EventListenerTarget\n /** Optional WebSocket to subscribe to (`message` events). */\n socket?: EventListenerTarget\n /** Cleanup callback fired on unmount. The composition does NOT close\n * the underlying stream itself — caller owns the lifecycle. */\n onUnsubscribe?: () => void\n /** When true, render `logs[]` as a collapsible monospace block. */\n showLogs?: boolean\n label?: string\n name?: string | null\n classList?: string[] | string\n}\n\nconst props = withDefaults(defineProps<BuildStatusProps>(), {\n showLogs: true,\n label: \"Build Status\",\n})\n\nconst current = ref<BuildStatusEvent>({\n status: props.initial?.status ?? \"pending\",\n startedAt: props.initial?.startedAt,\n finishedAt: props.initial?.finishedAt,\n durationMs: props.initial?.durationMs,\n commitSha: props.initial?.commitSha,\n commitMessage: props.initial?.commitMessage,\n triggeredBy: props.initial?.triggeredBy,\n logs: props.initial?.logs ? [...props.initial.logs] : [],\n})\n\nconst logsExpanded = ref<boolean>(true)\nconst parseError = ref<string | null>(null)\n\nwatch(\n () => props.initial,\n (next) => {\n if (!next) {\n return\n }\n current.value = {\n status: next.status,\n startedAt: next.startedAt,\n finishedAt: next.finishedAt,\n durationMs: next.durationMs,\n commitSha: next.commitSha,\n commitMessage: next.commitMessage,\n triggeredBy: next.triggeredBy,\n logs: next.logs ? [...next.logs] : [],\n }\n },\n { deep: true },\n)\n\nfunction applyEvent(payload: unknown): void {\n if (!payload || typeof payload !== \"object\") {\n return\n }\n const next = payload as Partial<BuildStatusEvent>\n current.value = {\n status: (next.status as BuildStatusValue) ?? current.value.status,\n startedAt: next.startedAt ?? current.value.startedAt,\n finishedAt: next.finishedAt ?? current.value.finishedAt,\n durationMs:\n next.durationMs !== undefined ? next.durationMs : current.value.durationMs,\n commitSha: next.commitSha ?? current.value.commitSha,\n commitMessage: next.commitMessage ?? current.value.commitMessage,\n triggeredBy: next.triggeredBy ?? current.value.triggeredBy,\n logs: Array.isArray(next.logs) ? next.logs : current.value.logs,\n }\n}\n\nfunction handleMessage(e: MessageEventLike): void {\n const raw = e.data\n if (typeof raw === \"string\") {\n try {\n applyEvent(JSON.parse(raw))\n parseError.value = null\n } catch (err) {\n parseError.value = err instanceof Error ? err.message : String(err)\n }\n } else if (raw && typeof raw === \"object\") {\n applyEvent(raw)\n }\n}\n\nlet attached: { target: EventListenerTarget; handler: (e: MessageEventLike) => void } | null = null\n\nonMounted(() => {\n const target = props.eventStream ?? props.socket\n if (!target) {\n return\n }\n const handler = (e: MessageEventLike): void => {\n handleMessage(e)\n }\n target.addEventListener(\"message\", handler)\n attached = { target, handler }\n})\n\nonBeforeUnmount(() => {\n if (attached) {\n attached.target.removeEventListener(\"message\", attached.handler)\n attached = null\n }\n if (props.onUnsubscribe) {\n props.onUnsubscribe()\n }\n})\n\n// -------- visual helpers ------------------------------------------------\n\nconst statusBadgeVariant = computed<\n \"secondary\" | \"info\" | \"success\" | \"destructive\" | \"warning\"\n>(() => {\n switch (current.value.status) {\n case \"running\":\n return \"info\"\n case \"success\":\n return \"success\"\n case \"failed\":\n return \"destructive\"\n case \"cancelled\":\n return \"warning\"\n case \"pending\":\n default:\n return \"secondary\"\n }\n})\n\nconst statusIcon = computed(() => {\n switch (current.value.status) {\n case \"running\":\n return Loader2\n case \"success\":\n return CheckCircle2\n case \"failed\":\n return XCircle\n case \"cancelled\":\n return Ban\n case \"pending\":\n default:\n return Clock\n }\n})\n\nfunction formatDuration(value: number | undefined): string {\n if (value === undefined || Number.isNaN(value)) {\n return \"\"\n }\n const sec = Math.round(value / 1000)\n if (sec < 60) {\n return `${sec}s`\n }\n const m = Math.floor(sec / 60)\n const s = sec % 60\n return `${m}m ${s}s`\n}\n\nconst shortSha = computed<string>(() => {\n const sha = current.value.commitSha\n if (!sha) {\n return \"\"\n }\n return sha.length > 7 ? sha.slice(0, 7) : sha\n})\n\nconst durationLabel = computed<string>(() =>\n formatDuration(current.value.durationMs),\n)\n\nconst isRunning = computed<boolean>(() => current.value.status === \"running\")\n\ndefineExpose({ applyEvent })\n</script>\n\n<template>\n <Card\n :class=\"cn(props.classList)\"\n :data-element-name=\"props.name ?? undefined\"\n data-testid=\"build-status\"\n >\n <CardHeader class=\"flex flex-col gap-2 pb-3\">\n <div class=\"flex items-center justify-between gap-2\">\n <CardTitle class=\"flex items-center gap-2 text-base\">\n <Activity class=\"size-5 text-muted-foreground\" />\n <span>{{ props.label }}</span>\n </CardTitle>\n <Badge\n :variant=\"statusBadgeVariant\"\n size=\"default\"\n class=\"capitalize\"\n data-testid=\"build-status-badge\"\n >\n <component\n :is=\"statusIcon\"\n :class=\"\n cn(\n 'size-3.5',\n isRunning ? 'animate-spin' : '',\n )\n \"\n :data-testid=\"\n isRunning\n ? 'build-status-spinner'\n : 'build-status-icon'\n \"\n />\n <span>{{ current.status }}</span>\n </Badge>\n </div>\n <div\n class=\"flex flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted-foreground\"\n >\n <span\n v-if=\"shortSha\"\n class=\"font-mono\"\n data-testid=\"build-status-sha\"\n >\n {{ shortSha }}\n </span>\n <span\n v-if=\"current.commitMessage\"\n class=\"truncate\"\n data-testid=\"build-status-commit-message\"\n >\n {{ current.commitMessage }}\n </span>\n <span\n v-if=\"current.triggeredBy\"\n data-testid=\"build-status-triggered-by\"\n >\n by {{ current.triggeredBy }}\n </span>\n <span\n v-if=\"durationLabel\"\n class=\"flex items-center gap-1\"\n data-testid=\"build-status-duration\"\n >\n <Clock class=\"size-3\" />\n {{ durationLabel }}\n </span>\n </div>\n <p\n v-if=\"parseError\"\n class=\"text-xs text-destructive\"\n role=\"alert\"\n data-testid=\"build-status-parse-error\"\n >\n <AlertTriangle class=\"inline size-3\" />\n {{ parseError }}\n </p>\n </CardHeader>\n <CardContent\n v-if=\"props.showLogs && current.logs && current.logs.length > 0\"\n class=\"flex flex-col gap-2 pt-0\"\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n class=\"w-fit -ml-2 text-xs\"\n data-testid=\"build-status-logs-toggle\"\n @click=\"logsExpanded = !logsExpanded\"\n >\n <component\n :is=\"logsExpanded ? ChevronDown : ChevronRight\"\n class=\"size-4\"\n />\n <span>{{ logsExpanded ? \"Hide logs\" : \"Show logs\" }} ({{ current.logs.length }})</span>\n </Button>\n <pre\n v-if=\"logsExpanded\"\n class=\"max-h-80 overflow-auto rounded-md bg-muted p-3 font-mono text-xs leading-snug\"\n data-testid=\"build-status-logs\"\n ><code><template\n v-for=\"(line, i) in current.logs\"\n :key=\"i\"\n >{{ line }}<br></template></code></pre>\n </CardContent>\n </Card>\n</template>\n"],"names":["props","__props","current","ref","_a","_b","_c","_d","_e","_f","_g","_h","logsExpanded","parseError","watch","next","applyEvent","payload","handleMessage","e","raw","err","attached","onMounted","target","handler","onBeforeUnmount","statusBadgeVariant","computed","statusIcon","Loader2","CheckCircle2","XCircle","Ban","Clock","formatDuration","value","sec","m","s","shortSha","sha","durationLabel","isRunning","__expose","_createBlock","_unref","Card","_normalizeClass","cn","_createVNode","CardHeader","_createElementVNode","_hoisted_1","CardTitle","Activity","_toDisplayString","Badge","_openBlock","_resolveDynamicComponent","_hoisted_2","_createElementBlock","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createTextVNode","_hoisted_7","AlertTriangle","CardContent","Button","_cache","$event","ChevronDown","ChevronRight","_hoisted_8","_Fragment","line","i"],"mappings":"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"}