@gxp-dev/mod-ui 2.0.0 → 2.0.3

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 +198 -37
  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":"DataTableCard.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"DataTableCard.vue.js","sources":["../../../../src/components/compositions/cards/DataTableCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven `datatable` composition.\n *\n * Renders a paginated, searchable, sortable table from `headers` + a\n * row source determined in priority order:\n *\n * 1. `options.searchRoute` — remote fetch (stubbed; future HTTP).\n * 2. `listKey` — read sub-array from `item[listKey]` (nested).\n * 3. `listData` — inline static rows.\n * 4. Otherwise: empty.\n *\n * Sorting, search, and pagination all run client-side over the\n * resolved rows. Column rendering branches on `header.type`.\n *\n * Self-contained — directly mountable in any Vue app:\n *\n * <DataTableCard\n * :headers=\"[{ key: 'name', sortable: true }]\"\n * :list-data=\"rows\"\n * @action=\"onRowAction\"\n * />\n */\nimport { computed, ref, watch, toRef } from \"vue\"\nimport type {\n CreateConfig,\n DeleteConfig,\n UpdateConfig,\n} from \"@/definitions/shared/crud\"\nimport type {\n DataTableColumn,\n DataTableOptions,\n ExportConfig,\n TableAction,\n} from \"@/definitions/cards/DataTableCard\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useDataTableData } from \"./useDataTableData\"\n\nexport interface DataTableCardProps {\n /** Title rendered above the table. Falls back to the more generic `title`. */\n tableTitle?: string\n title?: string\n subtitle?: string\n showCard?: boolean\n classList?: string[] | string\n /** Column definitions. */\n headers?: DataTableColumn[]\n /** Behaviour and toolbar configuration. */\n options?: DataTableOptions\n /** Sub-array path on `item` when rendering nested tables. */\n listKey?: string\n /** Static (non-paginated) row source. */\n listData?: unknown[]\n /** Per-row action buttons (also merged with `options.additionalActions`). */\n actions?: TableAction[]\n /** Enable row selection. */\n selectable?: boolean\n /** Bulk action buttons. */\n bulkActions?: TableAction[]\n /** Empty-state message. */\n emptyMessage?: string\n /** Page-level data model. Used as the row source when `listKey` is set. */\n item?: Record<string, unknown>\n /** Create-modal configuration. */\n createConfig?: CreateConfig\n /** Inline update configuration. */\n updateConfig?: UpdateConfig\n /** Delete configuration. */\n deleteConfig?: DeleteConfig\n}\n\nconst props = withDefaults(defineProps<DataTableCardProps>(), {\n headers: () => [],\n selectable: false,\n showCard: true,\n item: () => ({}),\n})\n\nconst emit = defineEmits<{\n (e: \"action\", payload: { action: TableAction; row: Record<string, unknown> }): void\n (e: \"export\", payload: { export: ExportConfig }): void\n}>()\n\nconst sortState = ref<{ key: string; direction: \"asc\" | \"desc\" } | null>(\n props.options?.defaultSortBy\n ? {\n key: props.options.defaultSortBy,\n direction: props.options.defaultSortDirection ?? \"asc\",\n }\n : null,\n)\n\nconst searchQuery = ref(\"\")\nconst currentPage = ref(1)\n\nconst perPage = computed<number>(() => {\n const opts = props.options\n return (\n opts?.perPage ??\n opts?.defaultItemsPerPage ??\n 25\n )\n})\n\nconst paginated = computed<boolean>(() => props.options?.paginated === true)\n\nconst visibleHeaders = computed<DataTableColumn[]>(() =>\n (props.headers ?? []).filter((h) => h.visible !== false),\n)\n\nconst emptyMessageText = computed<string>(() => {\n return (\n props.emptyMessage ??\n props.options?.emptyText ??\n \"No results\"\n )\n})\n\nconst exports = computed<ExportConfig[]>(\n () => props.options?.exports ?? [],\n)\n\nconst tableActions = computed<TableAction[]>(() => {\n const base = props.actions ?? []\n const additional = props.options?.additionalActions ?? []\n return [...base, ...additional]\n})\n\nconst showSearch = computed<boolean>(() => {\n const sr = props.options?.searchRoute\n if (sr && sr.hide) {\n return false\n }\n // Always show search when there is any data source (client-side filter).\n return true\n})\n\n/** Underlying row source — composable that can be mocked in tests. */\nconst { rows: sourceRows } = useDataTableData({\n listKey: toRef(props, \"listKey\"),\n listData: toRef(props, \"listData\"),\n options: toRef(props, \"options\"),\n item: toRef(props, \"item\"),\n})\n\n/** Read a dot-notation path on a row, returning unknown. */\nfunction readPath(row: Record<string, unknown>, path: string): unknown {\n if (!path) {\n return undefined\n }\n const segments = path.split(\".\")\n let value: unknown = row\n for (const seg of segments) {\n if (value == null || typeof value !== \"object\") {\n return undefined\n }\n value = (value as Record<string, unknown>)[seg]\n }\n return value\n}\n\nfunction toComparable(value: unknown): number | string {\n if (value == null) {\n return \"\"\n }\n if (typeof value === \"number\") {\n return value\n }\n if (typeof value === \"boolean\") {\n return value ? 1 : 0\n }\n if (value instanceof Date) {\n return value.getTime()\n }\n return String(value).toLowerCase()\n}\n\nconst filteredRows = computed<Record<string, unknown>[]>(() => {\n const query = searchQuery.value.trim().toLowerCase()\n if (!query) {\n return sourceRows.value\n }\n return sourceRows.value.filter((row) => {\n return visibleHeaders.value.some((h) => {\n const v = readPath(row, h.key)\n if (v == null) {\n return false\n }\n return String(v).toLowerCase().includes(query)\n })\n })\n})\n\nconst sortedRows = computed<Record<string, unknown>[]>(() => {\n const state = sortState.value\n if (!state) {\n return filteredRows.value\n }\n const dir = state.direction === \"asc\" ? 1 : -1\n return [...filteredRows.value].sort((a, b) => {\n const av = toComparable(readPath(a, state.key))\n const bv = toComparable(readPath(b, state.key))\n if (av < bv) {\n return -1 * dir\n }\n if (av > bv) {\n return 1 * dir\n }\n return 0\n })\n})\n\nconst pageCount = computed<number>(() => {\n if (!paginated.value) {\n return 1\n }\n return Math.max(1, Math.ceil(sortedRows.value.length / perPage.value))\n})\n\nconst pagedRows = computed<Record<string, unknown>[]>(() => {\n if (!paginated.value) {\n return sortedRows.value\n }\n const start = (currentPage.value - 1) * perPage.value\n return sortedRows.value.slice(start, start + perPage.value)\n})\n\n// Reset pagination if filtering shrinks the result below the current page.\nwatch([filteredRows, perPage], () => {\n if (currentPage.value > pageCount.value) {\n currentPage.value = 1\n }\n})\n\nfunction toggleSort(header: DataTableColumn): void {\n if (!header.sortable) {\n return\n }\n const state = sortState.value\n if (!state || state.key !== header.key) {\n sortState.value = { key: header.key, direction: \"asc\" }\n return\n }\n if (state.direction === \"asc\") {\n sortState.value = { key: header.key, direction: \"desc\" }\n return\n }\n sortState.value = null\n}\n\nfunction sortIndicator(header: DataTableColumn): string {\n const state = sortState.value\n if (!state || state.key !== header.key) {\n return \"\"\n }\n return state.direction === \"asc\" ? \"↑\" : \"↓\"\n}\n\nfunction alignClass(header: DataTableColumn): string {\n const a = header.align\n if (a === \"center\") {\n return \"text-center\"\n }\n if (a === \"end\" || a === \"right\") {\n return \"text-right\"\n }\n return \"text-left\"\n}\n\nfunction previousPage(): void {\n if (currentPage.value > 1) {\n currentPage.value -= 1\n }\n}\n\nfunction nextPage(): void {\n if (currentPage.value < pageCount.value) {\n currentPage.value += 1\n }\n}\n\nfunction formatTimestamp(value: unknown): string {\n if (value == null) {\n return \"\"\n }\n const date =\n value instanceof Date\n ? value\n : new Date(typeof value === \"number\" ? value : String(value))\n if (Number.isNaN(date.getTime())) {\n return String(value)\n }\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n }).format(date)\n}\n\nfunction statusColor(value: unknown): string {\n const s = String(value ?? \"\").toLowerCase()\n if (s === \"success\" || s === \"active\" || s === \"ok\" || s === \"paid\") {\n return \"bg-green-500\"\n }\n if (s === \"warning\" || s === \"pending\") {\n return \"bg-yellow-500\"\n }\n if (s === \"danger\" || s === \"error\" || s === \"failed\" || s === \"unpaid\") {\n return \"bg-red-500\"\n }\n if (s === \"info\") {\n return \"bg-blue-500\"\n }\n return \"bg-gray-400\"\n}\n\nfunction onAction(action: TableAction, row: Record<string, unknown>): void {\n emit(\"action\", { action, row })\n}\n\nfunction onExport(config: ExportConfig): void {\n emit(\"export\", { export: config })\n}\n</script>\n\n<template>\n <section\n :class=\"[\n 'gxp-datatable-card flex flex-col gap-3',\n showCard !== false\n ? 'rounded-lg border bg-card text-card-foreground shadow-sm p-4'\n : '',\n ]\"\n data-testid=\"datatable-card\"\n >\n <header\n v-if=\"tableTitle || title || subtitle\"\n class=\"flex flex-col gap-0.5\"\n >\n <h3\n v-if=\"tableTitle || title\"\n class=\"text-base font-semibold\"\n >\n {{ tableTitle ?? title }}\n </h3>\n <p\n v-if=\"subtitle\"\n class=\"text-sm text-muted-foreground\"\n >\n {{ subtitle }}\n </p>\n </header>\n\n <div\n v-if=\"exports.length > 0 || showSearch\"\n class=\"flex flex-wrap items-center justify-between gap-2\"\n >\n <div\n v-if=\"exports.length > 0\"\n class=\"flex items-center gap-2\"\n data-testid=\"datatable-exports\"\n >\n <Button\n v-for=\"(ex, i) in exports\"\n :key=\"i\"\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n @click=\"onExport(ex)\"\n >\n {{ ex.label ?? \"Export\" }}\n </Button>\n </div>\n\n <div v-if=\"showSearch\" class=\"ml-auto w-full max-w-xs\">\n <Input\n v-model=\"searchQuery\"\n type=\"search\"\n placeholder=\"Search...\"\n data-testid=\"datatable-search\"\n />\n </div>\n </div>\n\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead\n v-for=\"h in visibleHeaders\"\n :key=\"h.key\"\n :class=\"alignClass(h)\"\n :style=\"h.width ? { width: h.width } : undefined\"\n >\n <button\n v-if=\"h.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1 hover:text-foreground\"\n :data-testid=\"`sort-${h.key}`\"\n @click=\"toggleSort(h)\"\n >\n <span>{{ h.title ?? h.key }}</span>\n <span class=\"text-xs\">{{ sortIndicator(h) }}</span>\n </button>\n <span v-else>{{ h.title ?? h.key }}</span>\n </TableHead>\n <TableHead\n v-if=\"tableActions.length > 0\"\n class=\"text-right\"\n >\n Actions\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <template v-if=\"pagedRows.length > 0\">\n <TableRow\n v-for=\"(row, ri) in pagedRows\"\n :key=\"ri\"\n :data-testid=\"`datatable-row-${ri}`\"\n >\n <TableCell\n v-for=\"h in visibleHeaders\"\n :key=\"h.key\"\n :class=\"alignClass(h)\"\n >\n <template v-if=\"h.type === 'timestamp' || h.type === 'laravel-timestamp'\">\n <span data-testid=\"cell-timestamp\">{{ formatTimestamp(readPath(row, h.key)) }}</span>\n </template>\n <template v-else-if=\"h.type === 'boolean'\">\n <span\n data-testid=\"cell-boolean\"\n :class=\"readPath(row, h.key) ? 'text-green-600' : 'text-red-600'\"\n :aria-label=\"readPath(row, h.key) ? 'true' : 'false'\"\n >\n {{ readPath(row, h.key) ? \"✓\" : \"✗\" }}\n </span>\n </template>\n <template v-else-if=\"h.type === 'image'\">\n <img\n data-testid=\"cell-image\"\n :src=\"String(readPath(row, h.key) ?? '')\"\n :alt=\"h.title ?? h.key\"\n class=\"h-8 w-8 rounded object-cover\"\n >\n </template>\n <template v-else-if=\"h.type === 'status_circle'\">\n <span class=\"inline-flex items-center gap-2\">\n <span\n data-testid=\"cell-status-circle\"\n :class=\"['inline-block h-2.5 w-2.5 rounded-full', statusColor(readPath(row, h.key))]\"\n />\n <span>{{ readPath(row, h.key) }}</span>\n </span>\n </template>\n <template v-else>\n <span>\n <template v-if=\"h.prepend\">{{ h.prepend }}</template>\n {{ readPath(row, h.key) ?? \"\" }}\n <template v-if=\"h.append\">{{ h.append }}</template>\n </span>\n </template>\n </TableCell>\n <TableCell\n v-if=\"tableActions.length > 0\"\n class=\"text-right\"\n >\n <div class=\"inline-flex items-center justify-end gap-1\">\n <Button\n v-for=\"(action, ai) in tableActions\"\n :key=\"ai\"\n variant=\"ghost\"\n size=\"sm\"\n type=\"button\"\n :data-testid=\"`datatable-action-${action.slug ?? ai}`\"\n @click=\"onAction(action, row)\"\n >\n {{ action.label ?? action.tooltip ?? action.slug ?? \"Action\" }}\n </Button>\n </div>\n </TableCell>\n </TableRow>\n </template>\n <template v-else>\n <TableRow>\n <TableCell\n :colspan=\"visibleHeaders.length + (tableActions.length > 0 ? 1 : 0)\"\n class=\"text-center text-muted-foreground\"\n >\n <span data-testid=\"datatable-empty\">{{ emptyMessageText }}</span>\n </TableCell>\n </TableRow>\n </template>\n </TableBody>\n </Table>\n\n <footer\n v-if=\"paginated && sortedRows.length > 0\"\n class=\"flex items-center justify-between gap-2\"\n data-testid=\"datatable-pagination\"\n >\n <span class=\"text-sm text-muted-foreground\">\n Page {{ currentPage }} of {{ pageCount }}\n </span>\n <div class=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n :disabled=\"currentPage <= 1\"\n data-testid=\"datatable-prev\"\n @click=\"previousPage\"\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n :disabled=\"currentPage >= pageCount\"\n data-testid=\"datatable-next\"\n @click=\"nextPage\"\n >\n Next\n </Button>\n </div>\n </footer>\n </section>\n</template>\n"],"names":["props","__props","emit","__emit","sortState","ref","_a","searchQuery","currentPage","perPage","computed","opts","paginated","visibleHeaders","h","emptyMessageText","exports","tableActions","base","additional","showSearch","sr","sourceRows","useDataTableData","toRef","readPath","row","path","segments","value","seg","toComparable","filteredRows","query","v","sortedRows","state","dir","b","av","bv","pageCount","pagedRows","start","watch","toggleSort","header","sortIndicator","alignClass","a","previousPage","nextPage","formatTimestamp","date","statusColor","s","onAction","action","onExport","config","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_hoisted_5","_Fragment","_renderList","ex","i","_createBlock","_unref","Button","$event","_createTextVNode","_hoisted_6","_createVNode","Input","Table","TableHeader","TableRow","TableHead","_normalizeStyle","_createElementVNode","_hoisted_8","_cache","TableBody","ri","TableCell","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","ai","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19"],"mappings":"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"}
@@ -1,390 +1,5 @@
1
- import { defineComponent as ne, ref as R, computed as m, toRef as N, watch as se, openBlock as s, createElementBlock as l, normalizeClass as w, toDisplayString as r, createCommentVNode as p, Fragment as x, renderList as h, createBlock as g, unref as u, withCtx as c, createTextVNode as v, createVNode as b, normalizeStyle as le, createElementVNode as k } from "vue";
2
- import ie from "../../ui/table/Table.vue.js";
3
- import oe from "../../ui/table/TableBody.vue.js";
4
- import "clsx";
5
- import "tailwind-merge";
6
- import j from "../../ui/table/TableCell.vue.js";
7
- import U from "../../ui/table/TableHead.vue.js";
8
- import re from "../../ui/table/TableHeader.vue.js";
9
- import M from "../../ui/table/TableRow.vue.js";
10
- import "../../ui/button/index.js";
11
- import ue from "../../ui/input/Input.vue.js";
12
- import { useDataTableData as ce } from "./useDataTableData.js";
13
- import B from "../../ui/button/Button.vue.js";
14
- const de = {
15
- key: 0,
16
- class: "flex flex-col gap-0.5"
17
- }, fe = {
18
- key: 0,
19
- class: "text-base font-semibold"
20
- }, me = {
21
- key: 1,
22
- class: "text-sm text-muted-foreground"
23
- }, pe = {
24
- key: 1,
25
- class: "flex flex-wrap items-center justify-between gap-2"
26
- }, ye = {
27
- key: 0,
28
- class: "flex items-center gap-2",
29
- "data-testid": "datatable-exports"
30
- }, ge = {
31
- key: 1,
32
- class: "ml-auto w-full max-w-xs"
33
- }, ve = ["data-testid", "onClick"], be = { class: "text-xs" }, ke = { key: 1 }, xe = {
34
- key: 0,
35
- "data-testid": "cell-timestamp"
36
- }, _e = ["aria-label"], Ce = ["src", "alt"], we = {
37
- key: 3,
38
- class: "inline-flex items-center gap-2"
39
- }, he = { key: 4 }, Se = { class: "inline-flex items-center justify-end gap-1" }, $e = { "data-testid": "datatable-empty" }, Te = {
40
- key: 2,
41
- class: "flex items-center justify-between gap-2",
42
- "data-testid": "datatable-pagination"
43
- }, De = { class: "text-sm text-muted-foreground" }, Pe = { class: "flex items-center gap-2" }, He = /* @__PURE__ */ ne({
44
- __name: "DataTableCard",
45
- props: {
46
- tableTitle: {},
47
- title: {},
48
- subtitle: {},
49
- showCard: { type: Boolean, default: !0 },
50
- classList: {},
51
- headers: { default: () => [] },
52
- options: {},
53
- listKey: {},
54
- listData: {},
55
- actions: {},
56
- selectable: { type: Boolean, default: !1 },
57
- bulkActions: {},
58
- emptyMessage: {},
59
- item: { default: () => ({}) },
60
- createConfig: {},
61
- updateConfig: {},
62
- deleteConfig: {}
63
- },
64
- emits: ["action", "export"],
65
- setup(d, { emit: G }) {
66
- var Q;
67
- const i = d, E = G, _ = R(
68
- (Q = i.options) != null && Q.defaultSortBy ? {
69
- key: i.options.defaultSortBy,
70
- direction: i.options.defaultSortDirection ?? "asc"
71
- } : null
72
- ), V = R(""), y = R(1), S = m(() => {
73
- const e = i.options;
74
- return (e == null ? void 0 : e.perPage) ?? (e == null ? void 0 : e.defaultItemsPerPage) ?? 25;
75
- }), z = m(() => {
76
- var e;
77
- return ((e = i.options) == null ? void 0 : e.paginated) === !0;
78
- }), $ = m(
79
- () => (i.headers ?? []).filter((e) => e.visible !== !1)
80
- ), J = m(() => {
81
- var e;
82
- return i.emptyMessage ?? ((e = i.options) == null ? void 0 : e.emptyText) ?? "No results";
83
- }), A = m(
84
- () => {
85
- var e;
86
- return ((e = i.options) == null ? void 0 : e.exports) ?? [];
87
- }
88
- ), T = m(() => {
89
- var a;
90
- const e = i.actions ?? [], t = ((a = i.options) == null ? void 0 : a.additionalActions) ?? [];
91
- return [...e, ...t];
92
- }), I = m(() => {
93
- var t;
94
- const e = (t = i.options) == null ? void 0 : t.searchRoute;
95
- return !(e && e.hide);
96
- }), { rows: K } = ce({
97
- listKey: N(i, "listKey"),
98
- listData: N(i, "listData"),
99
- options: N(i, "options"),
100
- item: N(i, "item")
101
- });
102
- function f(e, t) {
103
- if (!t)
104
- return;
105
- const a = t.split(".");
106
- let o = e;
107
- for (const n of a) {
108
- if (o == null || typeof o != "object")
109
- return;
110
- o = o[n];
111
- }
112
- return o;
113
- }
114
- function F(e) {
115
- return e == null ? "" : typeof e == "number" ? e : typeof e == "boolean" ? e ? 1 : 0 : e instanceof Date ? e.getTime() : String(e).toLowerCase();
116
- }
117
- const L = m(() => {
118
- const e = V.value.trim().toLowerCase();
119
- return e ? K.value.filter((t) => $.value.some((a) => {
120
- const o = f(t, a.key);
121
- return o == null ? !1 : String(o).toLowerCase().includes(e);
122
- })) : K.value;
123
- }), D = m(() => {
124
- const e = _.value;
125
- if (!e)
126
- return L.value;
127
- const t = e.direction === "asc" ? 1 : -1;
128
- return [...L.value].sort((a, o) => {
129
- const n = F(f(a, e.key)), C = F(f(o, e.key));
130
- return n < C ? -1 * t : n > C ? 1 * t : 0;
131
- });
132
- }), P = m(() => z.value ? Math.max(1, Math.ceil(D.value.length / S.value)) : 1), q = m(() => {
133
- if (!z.value)
134
- return D.value;
135
- const e = (y.value - 1) * S.value;
136
- return D.value.slice(e, e + S.value);
137
- });
138
- se([L, S], () => {
139
- y.value > P.value && (y.value = 1);
140
- });
141
- function O(e) {
142
- if (!e.sortable)
143
- return;
144
- const t = _.value;
145
- if (!t || t.key !== e.key) {
146
- _.value = { key: e.key, direction: "asc" };
147
- return;
148
- }
149
- if (t.direction === "asc") {
150
- _.value = { key: e.key, direction: "desc" };
151
- return;
152
- }
153
- _.value = null;
154
- }
155
- function W(e) {
156
- const t = _.value;
157
- return !t || t.key !== e.key ? "" : t.direction === "asc" ? "↑" : "↓";
158
- }
159
- function H(e) {
160
- const t = e.align;
161
- return t === "center" ? "text-center" : t === "end" || t === "right" ? "text-right" : "text-left";
162
- }
163
- function X() {
164
- y.value > 1 && (y.value -= 1);
165
- }
166
- function Y() {
167
- y.value < P.value && (y.value += 1);
168
- }
169
- function Z(e) {
170
- if (e == null)
171
- return "";
172
- const t = e instanceof Date ? e : new Date(typeof e == "number" ? e : String(e));
173
- return Number.isNaN(t.getTime()) ? String(e) : new Intl.DateTimeFormat(void 0, {
174
- year: "numeric",
175
- month: "short",
176
- day: "numeric",
177
- hour: "numeric",
178
- minute: "numeric"
179
- }).format(t);
180
- }
181
- function ee(e) {
182
- const t = String(e ?? "").toLowerCase();
183
- return t === "success" || t === "active" || t === "ok" || t === "paid" ? "bg-green-500" : t === "warning" || t === "pending" ? "bg-yellow-500" : t === "danger" || t === "error" || t === "failed" || t === "unpaid" ? "bg-red-500" : t === "info" ? "bg-blue-500" : "bg-gray-400";
184
- }
185
- function te(e, t) {
186
- E("action", { action: e, row: t });
187
- }
188
- function ae(e) {
189
- E("export", { export: e });
190
- }
191
- return (e, t) => (s(), l("section", {
192
- class: w([
193
- "gxp-datatable-card flex flex-col gap-3",
194
- d.showCard !== !1 ? "rounded-lg border bg-card text-card-foreground shadow-sm p-4" : ""
195
- ]),
196
- "data-testid": "datatable-card"
197
- }, [
198
- d.tableTitle || d.title || d.subtitle ? (s(), l("header", de, [
199
- d.tableTitle || d.title ? (s(), l("h3", fe, r(d.tableTitle ?? d.title), 1)) : p("", !0),
200
- d.subtitle ? (s(), l("p", me, r(d.subtitle), 1)) : p("", !0)
201
- ])) : p("", !0),
202
- A.value.length > 0 || I.value ? (s(), l("div", pe, [
203
- A.value.length > 0 ? (s(), l("div", ye, [
204
- (s(!0), l(x, null, h(A.value, (a, o) => (s(), g(u(B), {
205
- key: o,
206
- variant: "outline",
207
- size: "sm",
208
- type: "button",
209
- onClick: (n) => ae(a)
210
- }, {
211
- default: c(() => [
212
- v(r(a.label ?? "Export"), 1)
213
- ]),
214
- _: 2
215
- }, 1032, ["onClick"]))), 128))
216
- ])) : p("", !0),
217
- I.value ? (s(), l("div", ge, [
218
- b(u(ue), {
219
- modelValue: V.value,
220
- "onUpdate:modelValue": t[0] || (t[0] = (a) => V.value = a),
221
- type: "search",
222
- placeholder: "Search...",
223
- "data-testid": "datatable-search"
224
- }, null, 8, ["modelValue"])
225
- ])) : p("", !0)
226
- ])) : p("", !0),
227
- b(u(ie), null, {
228
- default: c(() => [
229
- b(u(re), null, {
230
- default: c(() => [
231
- b(u(M), null, {
232
- default: c(() => [
233
- (s(!0), l(x, null, h($.value, (a) => (s(), g(u(U), {
234
- key: a.key,
235
- class: w(H(a)),
236
- style: le(a.width ? { width: a.width } : void 0)
237
- }, {
238
- default: c(() => [
239
- a.sortable ? (s(), l("button", {
240
- key: 0,
241
- type: "button",
242
- class: "inline-flex items-center gap-1 hover:text-foreground",
243
- "data-testid": `sort-${a.key}`,
244
- onClick: (o) => O(a)
245
- }, [
246
- k("span", null, r(a.title ?? a.key), 1),
247
- k("span", be, r(W(a)), 1)
248
- ], 8, ve)) : (s(), l("span", ke, r(a.title ?? a.key), 1))
249
- ]),
250
- _: 2
251
- }, 1032, ["class", "style"]))), 128)),
252
- T.value.length > 0 ? (s(), g(u(U), {
253
- key: 0,
254
- class: "text-right"
255
- }, {
256
- default: c(() => [...t[1] || (t[1] = [
257
- v(" Actions ", -1)
258
- ])]),
259
- _: 1
260
- })) : p("", !0)
261
- ]),
262
- _: 1
263
- })
264
- ]),
265
- _: 1
266
- }),
267
- b(u(oe), null, {
268
- default: c(() => [
269
- q.value.length > 0 ? (s(!0), l(x, { key: 0 }, h(q.value, (a, o) => (s(), g(u(M), {
270
- key: o,
271
- "data-testid": `datatable-row-${o}`
272
- }, {
273
- default: c(() => [
274
- (s(!0), l(x, null, h($.value, (n) => (s(), g(u(j), {
275
- key: n.key,
276
- class: w(H(n))
277
- }, {
278
- default: c(() => [
279
- n.type === "timestamp" || n.type === "laravel-timestamp" ? (s(), l("span", xe, r(Z(f(a, n.key))), 1)) : n.type === "boolean" ? (s(), l("span", {
280
- key: 1,
281
- "data-testid": "cell-boolean",
282
- class: w(f(a, n.key) ? "text-green-600" : "text-red-600"),
283
- "aria-label": f(a, n.key) ? "true" : "false"
284
- }, r(f(a, n.key) ? "✓" : "✗"), 11, _e)) : n.type === "image" ? (s(), l("img", {
285
- key: 2,
286
- "data-testid": "cell-image",
287
- src: String(f(a, n.key) ?? ""),
288
- alt: n.title ?? n.key,
289
- class: "h-8 w-8 rounded object-cover"
290
- }, null, 8, Ce)) : n.type === "status_circle" ? (s(), l("span", we, [
291
- k("span", {
292
- "data-testid": "cell-status-circle",
293
- class: w(["inline-block h-2.5 w-2.5 rounded-full", ee(f(a, n.key))])
294
- }, null, 2),
295
- k("span", null, r(f(a, n.key)), 1)
296
- ])) : (s(), l("span", he, [
297
- n.prepend ? (s(), l(x, { key: 0 }, [
298
- v(r(n.prepend), 1)
299
- ], 64)) : p("", !0),
300
- v(" " + r(f(a, n.key) ?? "") + " ", 1),
301
- n.append ? (s(), l(x, { key: 1 }, [
302
- v(r(n.append), 1)
303
- ], 64)) : p("", !0)
304
- ]))
305
- ]),
306
- _: 2
307
- }, 1032, ["class"]))), 128)),
308
- T.value.length > 0 ? (s(), g(u(j), {
309
- key: 0,
310
- class: "text-right"
311
- }, {
312
- default: c(() => [
313
- k("div", Se, [
314
- (s(!0), l(x, null, h(T.value, (n, C) => (s(), g(u(B), {
315
- key: C,
316
- variant: "ghost",
317
- size: "sm",
318
- type: "button",
319
- "data-testid": `datatable-action-${n.slug ?? C}`,
320
- onClick: (Ne) => te(n, a)
321
- }, {
322
- default: c(() => [
323
- v(r(n.label ?? n.tooltip ?? n.slug ?? "Action"), 1)
324
- ]),
325
- _: 2
326
- }, 1032, ["data-testid", "onClick"]))), 128))
327
- ])
328
- ]),
329
- _: 2
330
- }, 1024)) : p("", !0)
331
- ]),
332
- _: 2
333
- }, 1032, ["data-testid"]))), 128)) : (s(), g(u(M), { key: 1 }, {
334
- default: c(() => [
335
- b(u(j), {
336
- colspan: $.value.length + (T.value.length > 0 ? 1 : 0),
337
- class: "text-center text-muted-foreground"
338
- }, {
339
- default: c(() => [
340
- k("span", $e, r(J.value), 1)
341
- ]),
342
- _: 1
343
- }, 8, ["colspan"])
344
- ]),
345
- _: 1
346
- }))
347
- ]),
348
- _: 1
349
- })
350
- ]),
351
- _: 1
352
- }),
353
- z.value && D.value.length > 0 ? (s(), l("footer", Te, [
354
- k("span", De, " Page " + r(y.value) + " of " + r(P.value), 1),
355
- k("div", Pe, [
356
- b(u(B), {
357
- variant: "outline",
358
- size: "sm",
359
- type: "button",
360
- disabled: y.value <= 1,
361
- "data-testid": "datatable-prev",
362
- onClick: X
363
- }, {
364
- default: c(() => [...t[2] || (t[2] = [
365
- v(" Previous ", -1)
366
- ])]),
367
- _: 1
368
- }, 8, ["disabled"]),
369
- b(u(B), {
370
- variant: "outline",
371
- size: "sm",
372
- type: "button",
373
- disabled: y.value >= P.value,
374
- "data-testid": "datatable-next",
375
- onClick: Y
376
- }, {
377
- default: c(() => [...t[3] || (t[3] = [
378
- v(" Next ", -1)
379
- ])]),
380
- _: 1
381
- }, 8, ["disabled"])
382
- ])
383
- ])) : p("", !0)
384
- ], 2));
385
- }
386
- });
1
+ import f from "./DataTableCard.vue.js";
387
2
  export {
388
- He as default
3
+ f as default
389
4
  };
390
5
  //# sourceMappingURL=DataTableCard.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableCard.vue2.js","sources":["../../../../src/components/compositions/cards/DataTableCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven `datatable` composition.\n *\n * Renders a paginated, searchable, sortable table from `headers` + a\n * row source determined in priority order:\n *\n * 1. `options.searchRoute` — remote fetch (stubbed; future HTTP).\n * 2. `listKey` — read sub-array from `item[listKey]` (nested).\n * 3. `listData` — inline static rows.\n * 4. Otherwise: empty.\n *\n * Sorting, search, and pagination all run client-side over the\n * resolved rows. Column rendering branches on `header.type`.\n *\n * Self-contained — directly mountable in any Vue app:\n *\n * <DataTableCard\n * :headers=\"[{ key: 'name', sortable: true }]\"\n * :list-data=\"rows\"\n * @action=\"onRowAction\"\n * />\n */\nimport { computed, ref, watch, toRef } from \"vue\"\nimport type {\n CreateConfig,\n DeleteConfig,\n UpdateConfig,\n} from \"@/definitions/shared/crud\"\nimport type {\n DataTableColumn,\n DataTableOptions,\n ExportConfig,\n TableAction,\n} from \"@/definitions/cards/DataTableCard\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { useDataTableData } from \"./useDataTableData\"\n\nexport interface DataTableCardProps {\n /** Title rendered above the table. Falls back to the more generic `title`. */\n tableTitle?: string\n title?: string\n subtitle?: string\n showCard?: boolean\n classList?: string[] | string\n /** Column definitions. */\n headers?: DataTableColumn[]\n /** Behaviour and toolbar configuration. */\n options?: DataTableOptions\n /** Sub-array path on `item` when rendering nested tables. */\n listKey?: string\n /** Static (non-paginated) row source. */\n listData?: unknown[]\n /** Per-row action buttons (also merged with `options.additionalActions`). */\n actions?: TableAction[]\n /** Enable row selection. */\n selectable?: boolean\n /** Bulk action buttons. */\n bulkActions?: TableAction[]\n /** Empty-state message. */\n emptyMessage?: string\n /** Page-level data model. Used as the row source when `listKey` is set. */\n item?: Record<string, unknown>\n /** Create-modal configuration. */\n createConfig?: CreateConfig\n /** Inline update configuration. */\n updateConfig?: UpdateConfig\n /** Delete configuration. */\n deleteConfig?: DeleteConfig\n}\n\nconst props = withDefaults(defineProps<DataTableCardProps>(), {\n headers: () => [],\n selectable: false,\n showCard: true,\n item: () => ({}),\n})\n\nconst emit = defineEmits<{\n (e: \"action\", payload: { action: TableAction; row: Record<string, unknown> }): void\n (e: \"export\", payload: { export: ExportConfig }): void\n}>()\n\nconst sortState = ref<{ key: string; direction: \"asc\" | \"desc\" } | null>(\n props.options?.defaultSortBy\n ? {\n key: props.options.defaultSortBy,\n direction: props.options.defaultSortDirection ?? \"asc\",\n }\n : null,\n)\n\nconst searchQuery = ref(\"\")\nconst currentPage = ref(1)\n\nconst perPage = computed<number>(() => {\n const opts = props.options\n return (\n opts?.perPage ??\n opts?.defaultItemsPerPage ??\n 25\n )\n})\n\nconst paginated = computed<boolean>(() => props.options?.paginated === true)\n\nconst visibleHeaders = computed<DataTableColumn[]>(() =>\n (props.headers ?? []).filter((h) => h.visible !== false),\n)\n\nconst emptyMessageText = computed<string>(() => {\n return (\n props.emptyMessage ??\n props.options?.emptyText ??\n \"No results\"\n )\n})\n\nconst exports = computed<ExportConfig[]>(\n () => props.options?.exports ?? [],\n)\n\nconst tableActions = computed<TableAction[]>(() => {\n const base = props.actions ?? []\n const additional = props.options?.additionalActions ?? []\n return [...base, ...additional]\n})\n\nconst showSearch = computed<boolean>(() => {\n const sr = props.options?.searchRoute\n if (sr && sr.hide) {\n return false\n }\n // Always show search when there is any data source (client-side filter).\n return true\n})\n\n/** Underlying row source — composable that can be mocked in tests. */\nconst { rows: sourceRows } = useDataTableData({\n listKey: toRef(props, \"listKey\"),\n listData: toRef(props, \"listData\"),\n options: toRef(props, \"options\"),\n item: toRef(props, \"item\"),\n})\n\n/** Read a dot-notation path on a row, returning unknown. */\nfunction readPath(row: Record<string, unknown>, path: string): unknown {\n if (!path) {\n return undefined\n }\n const segments = path.split(\".\")\n let value: unknown = row\n for (const seg of segments) {\n if (value == null || typeof value !== \"object\") {\n return undefined\n }\n value = (value as Record<string, unknown>)[seg]\n }\n return value\n}\n\nfunction toComparable(value: unknown): number | string {\n if (value == null) {\n return \"\"\n }\n if (typeof value === \"number\") {\n return value\n }\n if (typeof value === \"boolean\") {\n return value ? 1 : 0\n }\n if (value instanceof Date) {\n return value.getTime()\n }\n return String(value).toLowerCase()\n}\n\nconst filteredRows = computed<Record<string, unknown>[]>(() => {\n const query = searchQuery.value.trim().toLowerCase()\n if (!query) {\n return sourceRows.value\n }\n return sourceRows.value.filter((row) => {\n return visibleHeaders.value.some((h) => {\n const v = readPath(row, h.key)\n if (v == null) {\n return false\n }\n return String(v).toLowerCase().includes(query)\n })\n })\n})\n\nconst sortedRows = computed<Record<string, unknown>[]>(() => {\n const state = sortState.value\n if (!state) {\n return filteredRows.value\n }\n const dir = state.direction === \"asc\" ? 1 : -1\n return [...filteredRows.value].sort((a, b) => {\n const av = toComparable(readPath(a, state.key))\n const bv = toComparable(readPath(b, state.key))\n if (av < bv) {\n return -1 * dir\n }\n if (av > bv) {\n return 1 * dir\n }\n return 0\n })\n})\n\nconst pageCount = computed<number>(() => {\n if (!paginated.value) {\n return 1\n }\n return Math.max(1, Math.ceil(sortedRows.value.length / perPage.value))\n})\n\nconst pagedRows = computed<Record<string, unknown>[]>(() => {\n if (!paginated.value) {\n return sortedRows.value\n }\n const start = (currentPage.value - 1) * perPage.value\n return sortedRows.value.slice(start, start + perPage.value)\n})\n\n// Reset pagination if filtering shrinks the result below the current page.\nwatch([filteredRows, perPage], () => {\n if (currentPage.value > pageCount.value) {\n currentPage.value = 1\n }\n})\n\nfunction toggleSort(header: DataTableColumn): void {\n if (!header.sortable) {\n return\n }\n const state = sortState.value\n if (!state || state.key !== header.key) {\n sortState.value = { key: header.key, direction: \"asc\" }\n return\n }\n if (state.direction === \"asc\") {\n sortState.value = { key: header.key, direction: \"desc\" }\n return\n }\n sortState.value = null\n}\n\nfunction sortIndicator(header: DataTableColumn): string {\n const state = sortState.value\n if (!state || state.key !== header.key) {\n return \"\"\n }\n return state.direction === \"asc\" ? \"↑\" : \"↓\"\n}\n\nfunction alignClass(header: DataTableColumn): string {\n const a = header.align\n if (a === \"center\") {\n return \"text-center\"\n }\n if (a === \"end\" || a === \"right\") {\n return \"text-right\"\n }\n return \"text-left\"\n}\n\nfunction previousPage(): void {\n if (currentPage.value > 1) {\n currentPage.value -= 1\n }\n}\n\nfunction nextPage(): void {\n if (currentPage.value < pageCount.value) {\n currentPage.value += 1\n }\n}\n\nfunction formatTimestamp(value: unknown): string {\n if (value == null) {\n return \"\"\n }\n const date =\n value instanceof Date\n ? value\n : new Date(typeof value === \"number\" ? value : String(value))\n if (Number.isNaN(date.getTime())) {\n return String(value)\n }\n return new Intl.DateTimeFormat(undefined, {\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n }).format(date)\n}\n\nfunction statusColor(value: unknown): string {\n const s = String(value ?? \"\").toLowerCase()\n if (s === \"success\" || s === \"active\" || s === \"ok\" || s === \"paid\") {\n return \"bg-green-500\"\n }\n if (s === \"warning\" || s === \"pending\") {\n return \"bg-yellow-500\"\n }\n if (s === \"danger\" || s === \"error\" || s === \"failed\" || s === \"unpaid\") {\n return \"bg-red-500\"\n }\n if (s === \"info\") {\n return \"bg-blue-500\"\n }\n return \"bg-gray-400\"\n}\n\nfunction onAction(action: TableAction, row: Record<string, unknown>): void {\n emit(\"action\", { action, row })\n}\n\nfunction onExport(config: ExportConfig): void {\n emit(\"export\", { export: config })\n}\n</script>\n\n<template>\n <section\n :class=\"[\n 'gxp-datatable-card flex flex-col gap-3',\n showCard !== false\n ? 'rounded-lg border bg-card text-card-foreground shadow-sm p-4'\n : '',\n ]\"\n data-testid=\"datatable-card\"\n >\n <header\n v-if=\"tableTitle || title || subtitle\"\n class=\"flex flex-col gap-0.5\"\n >\n <h3\n v-if=\"tableTitle || title\"\n class=\"text-base font-semibold\"\n >\n {{ tableTitle ?? title }}\n </h3>\n <p\n v-if=\"subtitle\"\n class=\"text-sm text-muted-foreground\"\n >\n {{ subtitle }}\n </p>\n </header>\n\n <div\n v-if=\"exports.length > 0 || showSearch\"\n class=\"flex flex-wrap items-center justify-between gap-2\"\n >\n <div\n v-if=\"exports.length > 0\"\n class=\"flex items-center gap-2\"\n data-testid=\"datatable-exports\"\n >\n <Button\n v-for=\"(ex, i) in exports\"\n :key=\"i\"\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n @click=\"onExport(ex)\"\n >\n {{ ex.label ?? \"Export\" }}\n </Button>\n </div>\n\n <div v-if=\"showSearch\" class=\"ml-auto w-full max-w-xs\">\n <Input\n v-model=\"searchQuery\"\n type=\"search\"\n placeholder=\"Search...\"\n data-testid=\"datatable-search\"\n />\n </div>\n </div>\n\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead\n v-for=\"h in visibleHeaders\"\n :key=\"h.key\"\n :class=\"alignClass(h)\"\n :style=\"h.width ? { width: h.width } : undefined\"\n >\n <button\n v-if=\"h.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1 hover:text-foreground\"\n :data-testid=\"`sort-${h.key}`\"\n @click=\"toggleSort(h)\"\n >\n <span>{{ h.title ?? h.key }}</span>\n <span class=\"text-xs\">{{ sortIndicator(h) }}</span>\n </button>\n <span v-else>{{ h.title ?? h.key }}</span>\n </TableHead>\n <TableHead\n v-if=\"tableActions.length > 0\"\n class=\"text-right\"\n >\n Actions\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <template v-if=\"pagedRows.length > 0\">\n <TableRow\n v-for=\"(row, ri) in pagedRows\"\n :key=\"ri\"\n :data-testid=\"`datatable-row-${ri}`\"\n >\n <TableCell\n v-for=\"h in visibleHeaders\"\n :key=\"h.key\"\n :class=\"alignClass(h)\"\n >\n <template v-if=\"h.type === 'timestamp' || h.type === 'laravel-timestamp'\">\n <span data-testid=\"cell-timestamp\">{{ formatTimestamp(readPath(row, h.key)) }}</span>\n </template>\n <template v-else-if=\"h.type === 'boolean'\">\n <span\n data-testid=\"cell-boolean\"\n :class=\"readPath(row, h.key) ? 'text-green-600' : 'text-red-600'\"\n :aria-label=\"readPath(row, h.key) ? 'true' : 'false'\"\n >\n {{ readPath(row, h.key) ? \"✓\" : \"✗\" }}\n </span>\n </template>\n <template v-else-if=\"h.type === 'image'\">\n <img\n data-testid=\"cell-image\"\n :src=\"String(readPath(row, h.key) ?? '')\"\n :alt=\"h.title ?? h.key\"\n class=\"h-8 w-8 rounded object-cover\"\n >\n </template>\n <template v-else-if=\"h.type === 'status_circle'\">\n <span class=\"inline-flex items-center gap-2\">\n <span\n data-testid=\"cell-status-circle\"\n :class=\"['inline-block h-2.5 w-2.5 rounded-full', statusColor(readPath(row, h.key))]\"\n />\n <span>{{ readPath(row, h.key) }}</span>\n </span>\n </template>\n <template v-else>\n <span>\n <template v-if=\"h.prepend\">{{ h.prepend }}</template>\n {{ readPath(row, h.key) ?? \"\" }}\n <template v-if=\"h.append\">{{ h.append }}</template>\n </span>\n </template>\n </TableCell>\n <TableCell\n v-if=\"tableActions.length > 0\"\n class=\"text-right\"\n >\n <div class=\"inline-flex items-center justify-end gap-1\">\n <Button\n v-for=\"(action, ai) in tableActions\"\n :key=\"ai\"\n variant=\"ghost\"\n size=\"sm\"\n type=\"button\"\n :data-testid=\"`datatable-action-${action.slug ?? ai}`\"\n @click=\"onAction(action, row)\"\n >\n {{ action.label ?? action.tooltip ?? action.slug ?? \"Action\" }}\n </Button>\n </div>\n </TableCell>\n </TableRow>\n </template>\n <template v-else>\n <TableRow>\n <TableCell\n :colspan=\"visibleHeaders.length + (tableActions.length > 0 ? 1 : 0)\"\n class=\"text-center text-muted-foreground\"\n >\n <span data-testid=\"datatable-empty\">{{ emptyMessageText }}</span>\n </TableCell>\n </TableRow>\n </template>\n </TableBody>\n </Table>\n\n <footer\n v-if=\"paginated && sortedRows.length > 0\"\n class=\"flex items-center justify-between gap-2\"\n data-testid=\"datatable-pagination\"\n >\n <span class=\"text-sm text-muted-foreground\">\n Page {{ currentPage }} of {{ pageCount }}\n </span>\n <div class=\"flex items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n :disabled=\"currentPage <= 1\"\n data-testid=\"datatable-prev\"\n @click=\"previousPage\"\n >\n Previous\n </Button>\n <Button\n variant=\"outline\"\n size=\"sm\"\n type=\"button\"\n :disabled=\"currentPage >= pageCount\"\n data-testid=\"datatable-next\"\n @click=\"nextPage\"\n >\n Next\n </Button>\n </div>\n </footer>\n </section>\n</template>\n"],"names":["props","__props","emit","__emit","sortState","ref","_a","searchQuery","currentPage","perPage","computed","opts","paginated","visibleHeaders","h","emptyMessageText","exports","tableActions","base","additional","showSearch","sr","sourceRows","useDataTableData","toRef","readPath","row","path","segments","value","seg","toComparable","filteredRows","query","v","sortedRows","state","dir","b","av","bv","pageCount","pagedRows","start","watch","toggleSort","header","sortIndicator","alignClass","a","previousPage","nextPage","formatTimestamp","date","statusColor","s","onAction","action","onExport","config","_createElementBlock","_normalizeClass","_openBlock","_hoisted_1","_hoisted_2","_toDisplayString","_hoisted_3","_hoisted_4","_hoisted_5","_Fragment","_renderList","ex","i","_createBlock","_unref","Button","$event","_createTextVNode","_hoisted_6","_createVNode","Input","Table","TableHeader","TableRow","TableHead","_normalizeStyle","_createElementVNode","_hoisted_8","_cache","TableBody","ri","TableCell","_hoisted_10","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","ai","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgFA,UAAMA,IAAQC,GAORC,IAAOC,GAKPC,IAAYC;AAAA,OAChBC,IAAAN,EAAM,YAAN,QAAAM,EAAe,gBACX;AAAA,QACE,KAAKN,EAAM,QAAQ;AAAA,QACnB,WAAWA,EAAM,QAAQ,wBAAwB;AAAA,MAAA,IAEnD;AAAA,IAAA,GAGAO,IAAcF,EAAI,EAAE,GACpBG,IAAcH,EAAI,CAAC,GAEnBI,IAAUC,EAAiB,MAAM;AACrC,YAAMC,IAAOX,EAAM;AACnB,cACEW,KAAA,gBAAAA,EAAM,aACNA,KAAA,gBAAAA,EAAM,wBACN;AAAA,IAEJ,CAAC,GAEKC,IAAYF,EAAkB,MAAA;;AAAM,eAAAJ,IAAAN,EAAM,YAAN,gBAAAM,EAAe,eAAc;AAAA,KAAI,GAErEO,IAAiBH;AAAA,MAA4B,OAChDV,EAAM,WAAW,CAAA,GAAI,OAAO,CAACc,MAAMA,EAAE,YAAY,EAAK;AAAA,IAAA,GAGnDC,IAAmBL,EAAiB,MAAM;;AAC9C,aACEV,EAAM,kBACNM,IAAAN,EAAM,YAAN,gBAAAM,EAAe,cACf;AAAA,IAEJ,CAAC,GAEKU,IAAUN;AAAA,MACd;;AAAM,iBAAAJ,IAAAN,EAAM,YAAN,gBAAAM,EAAe,YAAW,CAAA;AAAA;AAAA,IAAC,GAG7BW,IAAeP,EAAwB,MAAM;;AACjD,YAAMQ,IAAOlB,EAAM,WAAW,CAAA,GACxBmB,MAAab,IAAAN,EAAM,YAAN,gBAAAM,EAAe,sBAAqB,CAAA;AACvD,aAAO,CAAC,GAAGY,GAAM,GAAGC,CAAU;AAAA,IAChC,CAAC,GAEKC,IAAaV,EAAkB,MAAM;;AACzC,YAAMW,KAAKf,IAAAN,EAAM,YAAN,gBAAAM,EAAe;AAC1B,aAAI,EAAAe,KAAMA,EAAG;AAAA,IAKf,CAAC,GAGK,EAAE,MAAMC,EAAA,IAAeC,GAAiB;AAAA,MAC5C,SAASC,EAAMxB,GAAO,SAAS;AAAA,MAC/B,UAAUwB,EAAMxB,GAAO,UAAU;AAAA,MACjC,SAASwB,EAAMxB,GAAO,SAAS;AAAA,MAC/B,MAAMwB,EAAMxB,GAAO,MAAM;AAAA,IAAA,CAC1B;AAGD,aAASyB,EAASC,GAA8BC,GAAuB;AACrE,UAAI,CAACA;AACH;AAEF,YAAMC,IAAWD,EAAK,MAAM,GAAG;AAC/B,UAAIE,IAAiBH;AACrB,iBAAWI,KAAOF,GAAU;AAC1B,YAAIC,KAAS,QAAQ,OAAOA,KAAU;AACpC;AAEF,QAAAA,IAASA,EAAkCC,CAAG;AAAA,MAChD;AACA,aAAOD;AAAA,IACT;AAEA,aAASE,EAAaF,GAAiC;AACrD,aAAIA,KAAS,OACJ,KAEL,OAAOA,KAAU,WACZA,IAEL,OAAOA,KAAU,YACZA,IAAQ,IAAI,IAEjBA,aAAiB,OACZA,EAAM,QAAA,IAER,OAAOA,CAAK,EAAE,YAAA;AAAA,IACvB;AAEA,UAAMG,IAAetB,EAAoC,MAAM;AAC7D,YAAMuB,IAAQ1B,EAAY,MAAM,KAAA,EAAO,YAAA;AACvC,aAAK0B,IAGEX,EAAW,MAAM,OAAO,CAACI,MACvBb,EAAe,MAAM,KAAK,CAACC,MAAM;AACtC,cAAMoB,IAAIT,EAASC,GAAKZ,EAAE,GAAG;AAC7B,eAAIoB,KAAK,OACA,KAEF,OAAOA,CAAC,EAAE,YAAA,EAAc,SAASD,CAAK;AAAA,MAC/C,CAAC,CACF,IAVQX,EAAW;AAAA,IAWtB,CAAC,GAEKa,IAAazB,EAAoC,MAAM;AAC3D,YAAM0B,IAAQhC,EAAU;AACxB,UAAI,CAACgC;AACH,eAAOJ,EAAa;AAEtB,YAAMK,IAAMD,EAAM,cAAc,QAAQ,IAAI;AAC5C,aAAO,CAAC,GAAGJ,EAAa,KAAK,EAAE,KAAK,CAAC,GAAGM,MAAM;AAC5C,cAAMC,IAAKR,EAAaN,EAAS,GAAGW,EAAM,GAAG,CAAC,GACxCI,IAAKT,EAAaN,EAASa,GAAGF,EAAM,GAAG,CAAC;AAC9C,eAAIG,IAAKC,IACA,KAAKH,IAEVE,IAAKC,IACA,IAAIH,IAEN;AAAA,MACT,CAAC;AAAA,IACH,CAAC,GAEKI,IAAY/B,EAAiB,MAC5BE,EAAU,QAGR,KAAK,IAAI,GAAG,KAAK,KAAKuB,EAAW,MAAM,SAAS1B,EAAQ,KAAK,CAAC,IAF5D,CAGV,GAEKiC,IAAYhC,EAAoC,MAAM;AAC1D,UAAI,CAACE,EAAU;AACb,eAAOuB,EAAW;AAEpB,YAAMQ,KAASnC,EAAY,QAAQ,KAAKC,EAAQ;AAChD,aAAO0B,EAAW,MAAM,MAAMQ,GAAOA,IAAQlC,EAAQ,KAAK;AAAA,IAC5D,CAAC;AAGD,IAAAmC,GAAM,CAACZ,GAAcvB,CAAO,GAAG,MAAM;AACnC,MAAID,EAAY,QAAQiC,EAAU,UAChCjC,EAAY,QAAQ;AAAA,IAExB,CAAC;AAED,aAASqC,EAAWC,GAA+B;AACjD,UAAI,CAACA,EAAO;AACV;AAEF,YAAMV,IAAQhC,EAAU;AACxB,UAAI,CAACgC,KAASA,EAAM,QAAQU,EAAO,KAAK;AACtC,QAAA1C,EAAU,QAAQ,EAAE,KAAK0C,EAAO,KAAK,WAAW,MAAA;AAChD;AAAA,MACF;AACA,UAAIV,EAAM,cAAc,OAAO;AAC7B,QAAAhC,EAAU,QAAQ,EAAE,KAAK0C,EAAO,KAAK,WAAW,OAAA;AAChD;AAAA,MACF;AACA,MAAA1C,EAAU,QAAQ;AAAA,IACpB;AAEA,aAAS2C,EAAcD,GAAiC;AACtD,YAAMV,IAAQhC,EAAU;AACxB,aAAI,CAACgC,KAASA,EAAM,QAAQU,EAAO,MAC1B,KAEFV,EAAM,cAAc,QAAQ,MAAM;AAAA,IAC3C;AAEA,aAASY,EAAWF,GAAiC;AACnD,YAAMG,IAAIH,EAAO;AACjB,aAAIG,MAAM,WACD,gBAELA,MAAM,SAASA,MAAM,UAChB,eAEF;AAAA,IACT;AAEA,aAASC,IAAqB;AAC5B,MAAI1C,EAAY,QAAQ,MACtBA,EAAY,SAAS;AAAA,IAEzB;AAEA,aAAS2C,IAAiB;AACxB,MAAI3C,EAAY,QAAQiC,EAAU,UAChCjC,EAAY,SAAS;AAAA,IAEzB;AAEA,aAAS4C,EAAgBvB,GAAwB;AAC/C,UAAIA,KAAS;AACX,eAAO;AAET,YAAMwB,IACJxB,aAAiB,OACbA,IACA,IAAI,KAAK,OAAOA,KAAU,WAAWA,IAAQ,OAAOA,CAAK,CAAC;AAChE,aAAI,OAAO,MAAMwB,EAAK,QAAA,CAAS,IACtB,OAAOxB,CAAK,IAEd,IAAI,KAAK,eAAe,QAAW;AAAA,QACxC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,KAAK;AAAA,QACL,MAAM;AAAA,QACN,QAAQ;AAAA,MAAA,CACT,EAAE,OAAOwB,CAAI;AAAA,IAChB;AAEA,aAASC,GAAYzB,GAAwB;AAC3C,YAAM0B,IAAI,OAAO1B,KAAS,EAAE,EAAE,YAAA;AAC9B,aAAI0B,MAAM,aAAaA,MAAM,YAAYA,MAAM,QAAQA,MAAM,SACpD,iBAELA,MAAM,aAAaA,MAAM,YACpB,kBAELA,MAAM,YAAYA,MAAM,WAAWA,MAAM,YAAYA,MAAM,WACtD,eAELA,MAAM,SACD,gBAEF;AAAA,IACT;AAEA,aAASC,GAASC,GAAqB/B,GAAoC;AACzE,MAAAxB,EAAK,UAAU,EAAE,QAAAuD,GAAQ,KAAA/B,EAAA,CAAK;AAAA,IAChC;AAEA,aAASgC,GAASC,GAA4B;AAC5C,MAAAzD,EAAK,UAAU,EAAE,QAAQyD,EAAA,CAAQ;AAAA,IACnC;2BAIEC,EAwMU,WAAA;AAAA,MAvMP,OAAKC,EAAA;AAAA;QAA0D5D,EAAA,aAAQ;;MAMxE,eAAY;AAAA,IAAA;MAGJA,EAAA,cAAcA,EAAA,SAASA,EAAA,YAD/B6D,KAAAF,EAgBS,UAhBTG,IAgBS;AAAA,QAXC9D,EAAA,cAAcA,EAAA,SADtB6D,EAAA,GAAAF,EAKK,MALLI,IAKKC,EADAhE,EAAA,cAAcA,EAAA,KAAK,GAAA,CAAA;QAGhBA,EAAA,iBADR2D,EAKI,KALJM,IAKID,EADChE,EAAA,QAAQ,GAAA,CAAA;;MAKPe,EAAA,MAAQ,SAAM,KAAQI,EAAA,SAD9B0C,KAAAF,EA6BM,OA7BNO,IA6BM;AAAA,QAxBInD,EAAA,MAAQ,SAAM,KADtB8C,KAAAF,EAeM,OAfNQ,IAeM;AAAA,WAVJN,EAAA,EAAA,GAAAF,EASSS,GAAA,MAAAC,EARWtD,EAAA,OAAO,CAAjBuD,GAAIC,YADdC,EASSC,EAAAC,CAAA,GAAA;AAAA,YAPN,KAAKH;AAAA,YACN,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,YACJ,SAAK,CAAAI,MAAElB,GAASa,CAAE;AAAA,UAAA;uBAEnB,MAA0B;AAAA,cAAvBM,EAAAZ,EAAAM,EAAG,SAAK,QAAA,GAAA,CAAA;AAAA,YAAA;;;;QAIJnD,EAAA,SAAX0C,EAAA,GAAAF,EAOM,OAPNkB,IAOM;AAAA,UANJC,EAKEL,EAAAM,EAAA,GAAA;AAAA,wBAJSzE,EAAA;AAAA,0DAAAA,EAAW,QAAAqE;AAAA,YACpB,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,eAAY;AAAA,UAAA;;;MAKlBG,EA6GQL,EAAAO,EAAA,GAAA,MAAA;AAAA,mBA5GN,MA2Bc;AAAA,UA3BdF,EA2BcL,EAAAQ,EAAA,GAAA,MAAA;AAAA,uBA1BZ,MAyBW;AAAA,cAzBXH,EAyBWL,EAAAS,CAAA,GAAA,MAAA;AAAA,2BAvBP,MAA2B;AAAA,0BAD7BvB,EAiBYS,GAAA,MAAAC,EAhBEzD,EAAA,OAAc,CAAnBC,YADT2D,EAiBYC,EAAAU,CAAA,GAAA;AAAA,oBAfT,KAAKtE,EAAE;AAAA,oBACP,OAAK+C,EAAEb,EAAWlC,CAAC,CAAA;AAAA,oBACnB,OAAKuE,GAAEvE,EAAE,iBAAiBA,EAAE,MAAA,IAAU,MAAS;AAAA,kBAAA;+BAEhD,MASS;AAAA,sBARDA,EAAE,iBADV8C,EASS,UAAA;AAAA;wBAPP,MAAK;AAAA,wBACL,OAAM;AAAA,wBACL,eAAW,QAAU9C,EAAE,GAAG;AAAA,wBAC1B,SAAK,CAAA8D,MAAE/B,EAAW/B,CAAC;AAAA,sBAAA;wBAEpBwE,EAAmC,gBAA1BxE,EAAE,SAASA,EAAE,GAAG,GAAA,CAAA;AAAA,wBACzBwE,EAAmD,QAAnDC,IAAmDtB,EAA1BlB,EAAcjC,CAAC,CAAA,GAAA,CAAA;AAAA,sBAAA,cAE1CgD,KAAAF,EAA0C,cAA1B9C,EAAE,SAASA,EAAE,GAAG,GAAA,CAAA;AAAA,oBAAA;;;kBAG1BG,EAAA,MAAa,SAAM,UAD3BwD,EAKYC,EAAAU,CAAA,GAAA;AAAA;oBAHV,OAAM;AAAA,kBAAA;+BACP,MAED,CAAA,GAAAI,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,wBAFC,aAED,EAAA;AAAA,oBAAA;;;;;;;;;UAGJT,EA+EYL,EAAAe,EAAA,GAAA,MAAA;AAAA,uBA9EV,MAmEW;AAAA,cAnEK/C,EAAA,MAAU,SAAM,KAC9BoB,EAAA,EAAA,GAAAF,EAiEWS,GAAA,EAAA,KAAA,KAAAC,EAhEW5B,EAAA,OAAS,CAArBhB,GAAKgE,YADfjB,EAiEWC,EAAAS,CAAA,GAAA;AAAA,gBA/DR,KAAKO;AAAA,gBACL,gCAA8BA,CAAE;AAAA,cAAA;2BAG/B,MAA2B;AAAA,0BAD7B9B,EAyCYS,GAAA,MAAAC,EAxCEzD,EAAA,OAAc,CAAnBC,YADT2D,EAyCYC,EAAAiB,CAAA,GAAA;AAAA,oBAvCT,KAAK7E,EAAE;AAAA,oBACP,OAAK+C,EAAEb,EAAWlC,CAAC,CAAA;AAAA,kBAAA;+BAEpB,MAEW;AAAA,sBAFKA,EAAE,SAAI,eAAoBA,EAAE,SAAI,4BAC9C8C,EAAqF,QAArFgC,IAAqF3B,EAA/Cb,EAAgB3B,EAASC,GAAKZ,EAAE,GAAG,CAAA,CAAA,GAAA,CAAA,KAEtDA,EAAE,SAAI,kBACzB8C,EAMO,QAAA;AAAA;wBALL,eAAY;AAAA,wBACX,SAAOnC,EAASC,GAAKZ,EAAE,GAAG,IAAA,mBAAA,cAAA;AAAA,wBAC1B,cAAYW,EAASC,GAAKZ,EAAE,GAAG,IAAA,SAAA;AAAA,sBAAA,GAE7BmD,EAAAxC,EAASC,GAAKZ,EAAE,GAAG,IAAA,MAAA,GAAA,GAAA,IAAA+E,EAAA,KAGL/E,EAAE,SAAI,gBACzB8C,EAKC,OAAA;AAAA;wBAJC,eAAY;AAAA,wBACX,KAAK,OAAOnC,EAASC,GAAKZ,EAAE,GAAG,KAAA,EAAA;AAAA,wBAC/B,KAAKA,EAAE,SAASA,EAAE;AAAA,wBACnB,OAAM;AAAA,sBAAA,mBAGWA,EAAE,SAAI,mBACzBgD,EAAA,GAAAF,EAMO,QANPkC,IAMO;AAAA,wBALLR,EAGE,QAAA;AAAA,0BAFA,eAAY;AAAA,0BACX,OAAKzB,EAAA,CAAA,yCAA4CP,GAAY7B,EAASC,GAAKZ,EAAE,GAAG,CAAA,CAAA,CAAA;AAAA,wBAAA;wBAEnFwE,EAAuC,gBAA9B7D,EAASC,GAAKZ,EAAE,GAAG,CAAA,GAAA,CAAA;AAAA,sBAAA,YAI9B8C,EAIO,QAAAmC,IAAA;AAAA,wBAHWjF,EAAE,gBAAlB8C,EAAqDS,GAAA,EAAA,KAAA,KAAA;AAAA,0BAAvBQ,EAAAZ,EAAAnD,EAAE,OAAO,GAAA,CAAA;AAAA,wBAAA;0BAAc,MACrDmD,EAAGxC,EAASC,GAAKZ,EAAE,GAAG,KAAA,EAAA,IAAU,KAChC,CAAA;AAAA,wBAAgBA,EAAE,eAAlB8C,EAAmDS,GAAA,EAAA,KAAA,KAAA;AAAA,0BAAtBQ,EAAAZ,EAAAnD,EAAE,MAAM,GAAA,CAAA;AAAA,wBAAA;;;;;kBAKnCG,EAAA,MAAa,SAAM,UAD3BwD,EAiBYC,EAAAiB,CAAA,GAAA;AAAA;oBAfV,OAAM;AAAA,kBAAA;+BAEN,MAYM;AAAA,sBAZNL,EAYM,OAZNU,IAYM;AAAA,yBAXJlC,EAAA,EAAA,GAAAF,EAUSS,GAAA,MAAAC,EATgBrD,EAAA,OAAY,CAA3BwC,GAAQwC,YADlBxB,EAUSC,EAAAC,CAAA,GAAA;AAAA,0BARN,KAAKsB;AAAA,0BACN,SAAQ;AAAA,0BACR,MAAK;AAAA,0BACL,MAAK;AAAA,0BACJ,eAAW,oBAAsBxC,EAAO,QAAQwC,CAAE;AAAA,0BAClD,SAAK,CAAArB,OAAEpB,GAASC,GAAQ/B,CAAG;AAAA,wBAAA;qCAE5B,MAA+D;AAAA,gCAA5D+B,EAAO,SAASA,EAAO,WAAWA,EAAO,QAAI,QAAA,GAAA,CAAA;AAAA,0BAAA;;;;;;;;;yDAOxDgB,EAOWC,EAAAS,CAAA,GAAA,EAAA,KAAA,KAAA;AAAA,2BANT,MAKY;AAAA,kBALZJ,EAKYL,EAAAiB,CAAA,GAAA;AAAA,oBAJT,SAAS9E,EAAA,MAAe,UAAUI,EAAA,MAAa,SAAM,IAAA,IAAA;AAAA,oBACtD,OAAM;AAAA,kBAAA;+BAEN,MAAiE;AAAA,sBAAjEqE,EAAiE,QAAjEY,IAAiEjC,EAA1BlD,EAAA,KAAgB,GAAA,CAAA;AAAA,oBAAA;;;;;;;;;;;;MAQzDH,EAAA,SAAauB,EAAA,MAAW,SAAM,KADtC2B,KAAAF,EA8BS,UA9BTuC,IA8BS;AAAA,QAzBPb,EAEO,QAFPc,IAA4C,aAClC5F,EAAA,KAAW,IAAG,SAAIyD,EAAGxB,EAAA,KAAS,GAAA,CAAA;AAAA,QAExC6C,EAqBM,OArBNe,IAqBM;AAAA,UApBJtB,EASSL,EAAAC,CAAA,GAAA;AAAA,YARP,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,YACJ,UAAUnE,EAAA,SAAW;AAAA,YACtB,eAAY;AAAA,YACX,SAAO0C;AAAA,UAAA;uBACT,MAED,CAAA,GAAAsC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAFC,cAED,EAAA;AAAA,YAAA;;;UACAT,EASSL,EAAAC,CAAA,GAAA;AAAA,YARP,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,MAAK;AAAA,YACJ,UAAUnE,EAAA,SAAeiC,EAAA;AAAA,YAC1B,eAAY;AAAA,YACX,SAAOU;AAAA,UAAA;uBACT,MAED,CAAA,GAAAqC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAFC,UAED,EAAA;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"DataTableCard.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,16 @@
1
+ import { CardElement } from '../../../definitions/elements';
2
+ export interface ElementDisplayCardProps {
3
+ title?: string;
4
+ subtitle?: string;
5
+ showCard?: boolean;
6
+ /** Resolved element to render. */
7
+ element?: CardElement;
8
+ /** Page-level data model passed through to the element renderer. */
9
+ item?: Record<string, unknown>;
10
+ }
11
+ declare const _default: import('vue').DefineComponent<ElementDisplayCardProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ElementDisplayCardProps> & Readonly<{}>, {
12
+ showCard: boolean;
13
+ item: Record<string, unknown>;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
15
+ export default _default;
16
+ //# sourceMappingURL=ElementDisplayCard.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementDisplayCard.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/compositions/cards/ElementDisplayCard.vue"],"names":[],"mappings":"AA2FA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAUzD,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,kCAAkC;IAClC,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;;cALY,OAAO;UAIX,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;AAiJhC,wBAOG"}
@@ -1,5 +1,67 @@
1
- import f from "./ElementDisplayCard.vue2.js";
1
+ import { defineComponent as y, computed as r, openBlock as t, createBlock as l, unref as m, withCtx as a, createTextVNode as f, toDisplayString as u, createCommentVNode as n, createVNode as c, normalizeClass as C } from "vue";
2
+ import s from "../../../engine/ElementRenderer.vue.js";
3
+ import "../../ui/card/index.js";
4
+ import h from "../../ui/card/Card.vue.js";
5
+ import k from "../../ui/card/CardHeader.vue.js";
6
+ import x from "../../ui/card/CardTitle.vue.js";
7
+ import $ from "../../ui/card/CardDescription.vue.js";
8
+ import B from "../../ui/card/CardContent.vue.js";
9
+ const E = /* @__PURE__ */ y({
10
+ __name: "ElementDisplayCard",
11
+ props: {
12
+ title: {},
13
+ subtitle: {},
14
+ showCard: { type: Boolean, default: !1 },
15
+ element: {},
16
+ item: { default: () => ({}) }
17
+ },
18
+ setup(e) {
19
+ const i = e, d = r(() => i.showCard === !0), o = r(
20
+ () => !!i.title || !!i.subtitle
21
+ );
22
+ return (b, w) => d.value && e.element ? (t(), l(m(h), {
23
+ key: 0,
24
+ class: "flex flex-col"
25
+ }, {
26
+ default: a(() => [
27
+ o.value ? (t(), l(m(k), { key: 0 }, {
28
+ default: a(() => [
29
+ e.title ? (t(), l(m(x), { key: 0 }, {
30
+ default: a(() => [
31
+ f(u(e.title), 1)
32
+ ]),
33
+ _: 1
34
+ })) : n("", !0),
35
+ e.subtitle ? (t(), l(m($), { key: 1 }, {
36
+ default: a(() => [
37
+ f(u(e.subtitle), 1)
38
+ ]),
39
+ _: 1
40
+ })) : n("", !0)
41
+ ]),
42
+ _: 1
43
+ })) : n("", !0),
44
+ c(m(B), {
45
+ class: C([o.value ? "" : "pt-6"])
46
+ }, {
47
+ default: a(() => [
48
+ c(s, {
49
+ element: e.element,
50
+ item: e.item
51
+ }, null, 8, ["element", "item"])
52
+ ]),
53
+ _: 1
54
+ }, 8, ["class"])
55
+ ]),
56
+ _: 1
57
+ })) : e.element ? (t(), l(s, {
58
+ key: 1,
59
+ element: e.element,
60
+ item: e.item
61
+ }, null, 8, ["element", "item"])) : n("", !0);
62
+ }
63
+ });
2
64
  export {
3
- f as default
65
+ E as default
4
66
  };
5
67
  //# sourceMappingURL=ElementDisplayCard.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ElementDisplayCard.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"ElementDisplayCard.vue.js","sources":["../../../../src/components/compositions/cards/ElementDisplayCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven `element-display` composition. Renders a single\n * CardElement standalone (no label, no column wrapping, no card chrome\n * by default).\n *\n * Self-contained — directly mountable in any Vue app:\n *\n * <ElementDisplayCard\n * :element=\"myChartElement\"\n * :item=\"dataModel\"\n * title=\"Featured widget\"\n * show-card\n * />\n *\n * Renders nothing when `element` is not provided — keeps a missing\n * reference from breaking the page. ID resolution happens upstream in\n * `CardRenderer`.\n */\nimport { computed } from \"vue\"\nimport type { CardElement } from \"@/definitions/elements\"\nimport ElementRenderer from \"@/engine/ElementRenderer.vue\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\n\nexport interface ElementDisplayCardProps {\n title?: string\n subtitle?: string\n showCard?: boolean\n /** Resolved element to render. */\n element?: CardElement\n /** Page-level data model passed through to the element renderer. */\n item?: Record<string, unknown>\n}\n\nconst props = withDefaults(defineProps<ElementDisplayCardProps>(), {\n showCard: false,\n item: () => ({}),\n})\n\nconst showChrome = computed<boolean>(() => props.showCard === true)\n\nconst hasHeader = computed<boolean>(\n () => Boolean(props.title) || Boolean(props.subtitle),\n)\n</script>\n\n<template>\n <Card v-if=\"showChrome && element\" class=\"flex flex-col\">\n <CardHeader v-if=\"hasHeader\">\n <CardTitle v-if=\"title\">{{ title }}</CardTitle>\n <CardDescription v-if=\"subtitle\">\n {{ subtitle }}\n </CardDescription>\n </CardHeader>\n <CardContent :class=\"[hasHeader ? '' : 'pt-6']\">\n <ElementRenderer :element=\"element\" :item=\"item\" />\n </CardContent>\n </Card>\n <ElementRenderer\n v-else-if=\"element\"\n :element=\"element\"\n :item=\"item\"\n />\n</template>\n"],"names":["props","__props","showChrome","computed","hasHeader","_createBlock","_unref","Card","CardHeader","CardTitle","CardDescription","_createVNode","CardContent","ElementRenderer"],"mappings":";;;;;;;;;;;;;;;;;;AAwCA,UAAMA,IAAQC,GAKRC,IAAaC,EAAkB,MAAMH,EAAM,aAAa,EAAI,GAE5DI,IAAYD;AAAA,MAChB,MAAM,EAAQH,EAAM,SAAU,EAAQA,EAAM;AAAA,IAAQ;qBAKxCE,EAAA,SAAcD,EAAA,gBAA1BI,EAUOC,EAAAC,CAAA,GAAA;AAAA;MAV4B,OAAM;AAAA,IAAA;iBACvC,MAKa;AAAA,QALKH,EAAA,cAAlBC,EAKaC,EAAAE,CAAA,GAAA,EAAA,KAAA,KAAA;AAAA,qBAJX,MAA+C;AAAA,YAA9BP,EAAA,cAAjBI,EAA+CC,EAAAG,CAAA,GAAA,EAAA,KAAA,KAAA;AAAA,yBAAvB,MAAW;AAAA,oBAARR,EAAA,KAAK,GAAA,CAAA;AAAA,cAAA;;;YACTA,EAAA,iBAAvBI,EAEkBC,EAAAI,CAAA,GAAA,EAAA,KAAA,KAAA;AAAA,yBADhB,MAAc;AAAA,oBAAXT,EAAA,QAAQ,GAAA,CAAA;AAAA,cAAA;;;;;;QAGfU,EAEcL,EAAAM,CAAA,GAAA;AAAA,UAFA,UAAQR,EAAA,QAAS,KAAA,MAAA,CAAA;AAAA,QAAA;qBAC7B,MAAmD;AAAA,YAAnDO,EAAmDE,GAAA;AAAA,cAAjC,SAASZ,EAAA;AAAA,cAAU,MAAMA,EAAA;AAAA,YAAA;;;;;;UAIlCA,EAAA,gBADbI,EAIEQ,GAAA;AAAA;MAFC,SAASZ,EAAA;AAAA,MACT,MAAMA,EAAA;AAAA,IAAA;;;"}