@gxp-dev/mod-ui 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (811) hide show
  1. package/.storybook/preview.ts +7 -0
  2. package/README.md +6 -6
  3. package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
  4. package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
  5. package/dist/action.d.ts +4 -0
  6. package/dist/action.d.ts.map +1 -0
  7. package/dist/action.js +9 -0
  8. package/dist/action.js.map +1 -0
  9. package/dist/adapters/fieldTypeMap.d.ts.map +1 -1
  10. package/dist/adapters/fieldTypeMap.js +4 -8
  11. package/dist/adapters/fieldTypeMap.js.map +1 -1
  12. package/dist/adapters/index.d.ts +1 -1
  13. package/dist/boolean.d.ts +5 -0
  14. package/dist/boolean.d.ts.map +1 -0
  15. package/dist/boolean.js +11 -0
  16. package/dist/boolean.js.map +1 -0
  17. package/dist/builder.d.ts +9 -0
  18. package/dist/builder.d.ts.map +1 -0
  19. package/dist/builder.js +19 -0
  20. package/dist/builder.js.map +1 -0
  21. package/dist/cards.d.ts +8 -0
  22. package/dist/cards.d.ts.map +1 -0
  23. package/dist/cards.js +17 -0
  24. package/dist/cards.js.map +1 -0
  25. package/dist/code.d.ts +6 -0
  26. package/dist/code.d.ts.map +1 -0
  27. package/dist/code.js +13 -0
  28. package/dist/code.js.map +1 -0
  29. package/dist/components/compositions/cards/CardListCard.vue.d.ts +30 -0
  30. package/dist/components/compositions/cards/CardListCard.vue.d.ts.map +1 -0
  31. package/dist/components/compositions/cards/CardListCard.vue.js +122 -2
  32. package/dist/components/compositions/cards/CardListCard.vue.js.map +1 -1
  33. package/dist/components/compositions/cards/CardListCard.vue2.js +2 -122
  34. package/dist/components/compositions/cards/CardListCard.vue2.js.map +1 -1
  35. package/dist/components/compositions/cards/DataTableCard.vue.d.ts +58 -0
  36. package/dist/components/compositions/cards/DataTableCard.vue.d.ts.map +1 -0
  37. package/dist/components/compositions/cards/DataTableCard.vue.js +387 -2
  38. package/dist/components/compositions/cards/DataTableCard.vue.js.map +1 -1
  39. package/dist/components/compositions/cards/DataTableCard.vue2.js +2 -387
  40. package/dist/components/compositions/cards/DataTableCard.vue2.js.map +1 -1
  41. package/dist/components/compositions/cards/ElementDisplayCard.vue.d.ts +16 -0
  42. package/dist/components/compositions/cards/ElementDisplayCard.vue.d.ts.map +1 -0
  43. package/dist/components/compositions/cards/ElementDisplayCard.vue.js +64 -2
  44. package/dist/components/compositions/cards/ElementDisplayCard.vue.js.map +1 -1
  45. package/dist/components/compositions/cards/ElementDisplayCard.vue2.js +2 -64
  46. package/dist/components/compositions/cards/ElementDisplayCard.vue2.js.map +1 -1
  47. package/dist/components/compositions/cards/ElementListCard.vue.d.ts +22 -0
  48. package/dist/components/compositions/cards/ElementListCard.vue.d.ts.map +1 -0
  49. package/dist/components/compositions/cards/ElementListCard.vue.js +92 -2
  50. package/dist/components/compositions/cards/ElementListCard.vue.js.map +1 -1
  51. package/dist/components/compositions/cards/ElementListCard.vue2.js +2 -92
  52. package/dist/components/compositions/cards/ElementListCard.vue2.js.map +1 -1
  53. package/dist/components/compositions/cards/GridViewCard.vue.d.ts +35 -0
  54. package/dist/components/compositions/cards/GridViewCard.vue.d.ts.map +1 -0
  55. package/dist/components/compositions/cards/GridViewCard.vue.js +128 -2
  56. package/dist/components/compositions/cards/GridViewCard.vue.js.map +1 -1
  57. package/dist/components/compositions/cards/GridViewCard.vue2.js +2 -128
  58. package/dist/components/compositions/cards/GridViewCard.vue2.js.map +1 -1
  59. package/dist/components/compositions/cards/InfoCard.vue.d.ts +24 -0
  60. package/dist/components/compositions/cards/InfoCard.vue.d.ts.map +1 -0
  61. package/dist/components/compositions/cards/InfoCard.vue.js +183 -2
  62. package/dist/components/compositions/cards/InfoCard.vue.js.map +1 -1
  63. package/dist/components/compositions/cards/InfoCard.vue2.js +2 -183
  64. package/dist/components/compositions/cards/InfoCard.vue2.js.map +1 -1
  65. package/dist/components/compositions/cards/TabListCard.vue.d.ts +36 -0
  66. package/dist/components/compositions/cards/TabListCard.vue.d.ts.map +1 -0
  67. package/dist/components/compositions/cards/TabListCard.vue.js +124 -2
  68. package/dist/components/compositions/cards/TabListCard.vue.js.map +1 -1
  69. package/dist/components/compositions/cards/TabListCard.vue2.js +2 -124
  70. package/dist/components/compositions/cards/TabListCard.vue2.js.map +1 -1
  71. package/dist/components/compositions/elements/action/ButtonAction.vue.d.ts +42 -0
  72. package/dist/components/compositions/elements/action/ButtonAction.vue.d.ts.map +1 -0
  73. package/dist/components/compositions/elements/action/ButtonAction.vue.js +157 -2
  74. package/dist/components/compositions/elements/action/ButtonAction.vue.js.map +1 -1
  75. package/dist/components/compositions/elements/action/ButtonAction.vue2.js +2 -157
  76. package/dist/components/compositions/elements/action/ButtonAction.vue2.js.map +1 -1
  77. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.d.ts +46 -0
  78. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.d.ts.map +1 -0
  79. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.js +66 -2
  80. package/dist/components/compositions/elements/action/ButtonGroupAction.vue.js.map +1 -1
  81. package/dist/components/compositions/elements/action/ButtonGroupAction.vue2.js +2 -66
  82. package/dist/components/compositions/elements/action/ButtonGroupAction.vue2.js.map +1 -1
  83. package/dist/components/compositions/elements/action/LinkAction.vue.d.ts +30 -0
  84. package/dist/components/compositions/elements/action/LinkAction.vue.d.ts.map +1 -0
  85. package/dist/components/compositions/elements/action/LinkAction.vue.js +55 -2
  86. package/dist/components/compositions/elements/action/LinkAction.vue.js.map +1 -1
  87. package/dist/components/compositions/elements/action/LinkAction.vue2.js +2 -55
  88. package/dist/components/compositions/elements/action/LinkAction.vue2.js.map +1 -1
  89. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.d.ts +25 -0
  90. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.d.ts.map +1 -0
  91. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.js +68 -2
  92. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue.js.map +1 -1
  93. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue2.js +2 -68
  94. package/dist/components/compositions/elements/boolean/CheckboxBoolean.vue2.js.map +1 -1
  95. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.d.ts +29 -0
  96. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.d.ts.map +1 -0
  97. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.js +75 -2
  98. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue.js.map +1 -1
  99. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue2.js +2 -75
  100. package/dist/components/compositions/elements/boolean/IconToggleBoolean.vue2.js.map +1 -1
  101. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.d.ts +33 -0
  102. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.d.ts.map +1 -0
  103. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.js +91 -2
  104. package/dist/components/compositions/elements/boolean/RadioBoolean.vue.js.map +1 -1
  105. package/dist/components/compositions/elements/boolean/RadioBoolean.vue2.js +2 -91
  106. package/dist/components/compositions/elements/boolean/RadioBoolean.vue2.js.map +1 -1
  107. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.d.ts +29 -0
  108. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.d.ts.map +1 -0
  109. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.js +77 -2
  110. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue.js.map +1 -1
  111. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue2.js +2 -77
  112. package/dist/components/compositions/elements/boolean/SwitchBoolean.vue2.js.map +1 -1
  113. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.d.ts +29 -0
  114. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.d.ts.map +1 -0
  115. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.js +666 -2
  116. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue.js.map +1 -1
  117. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue2.js +2 -666
  118. package/dist/components/compositions/elements/builder/DependencyListBuilder.vue2.js.map +1 -1
  119. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.d.ts +29 -0
  120. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.d.ts.map +1 -0
  121. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.js +421 -2
  122. package/dist/components/compositions/elements/builder/ElementListBuilder.vue.js.map +1 -1
  123. package/dist/components/compositions/elements/builder/ElementListBuilder.vue2.js +2 -421
  124. package/dist/components/compositions/elements/builder/ElementListBuilder.vue2.js.map +1 -1
  125. package/dist/components/compositions/elements/builder/FormBuilder.vue.d.ts +30 -0
  126. package/dist/components/compositions/elements/builder/FormBuilder.vue.d.ts.map +1 -0
  127. package/dist/components/compositions/elements/builder/FormBuilder.vue.js +857 -2
  128. package/dist/components/compositions/elements/builder/FormBuilder.vue.js.map +1 -1
  129. package/dist/components/compositions/elements/builder/FormBuilder.vue2.js +2 -857
  130. package/dist/components/compositions/elements/builder/FormBuilder.vue2.js.map +1 -1
  131. package/dist/components/compositions/elements/builder/GridBuilder.vue.d.ts +37 -0
  132. package/dist/components/compositions/elements/builder/GridBuilder.vue.d.ts.map +1 -0
  133. package/dist/components/compositions/elements/builder/GridBuilder.vue.js +452 -2
  134. package/dist/components/compositions/elements/builder/GridBuilder.vue.js.map +1 -1
  135. package/dist/components/compositions/elements/builder/GridBuilder.vue2.js +2 -452
  136. package/dist/components/compositions/elements/builder/GridBuilder.vue2.js.map +1 -1
  137. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.d.ts +33 -0
  138. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.d.ts.map +1 -0
  139. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.js +511 -2
  140. package/dist/components/compositions/elements/builder/ObjectBuilder.vue.js.map +1 -1
  141. package/dist/components/compositions/elements/builder/ObjectBuilder.vue2.js +2 -511
  142. package/dist/components/compositions/elements/builder/ObjectBuilder.vue2.js.map +1 -1
  143. package/dist/components/compositions/elements/builder/PresetBuilder.vue.d.ts +29 -0
  144. package/dist/components/compositions/elements/builder/PresetBuilder.vue.d.ts.map +1 -0
  145. package/dist/components/compositions/elements/builder/PresetBuilder.vue.js +163 -2
  146. package/dist/components/compositions/elements/builder/PresetBuilder.vue.js.map +1 -1
  147. package/dist/components/compositions/elements/builder/PresetBuilder.vue2.js +2 -163
  148. package/dist/components/compositions/elements/builder/PresetBuilder.vue2.js.map +1 -1
  149. package/dist/components/compositions/elements/builder/QuizBuilder.vue.d.ts +34 -0
  150. package/dist/components/compositions/elements/builder/QuizBuilder.vue.d.ts.map +1 -0
  151. package/dist/components/compositions/elements/builder/QuizBuilder.vue.js +591 -2
  152. package/dist/components/compositions/elements/builder/QuizBuilder.vue.js.map +1 -1
  153. package/dist/components/compositions/elements/builder/QuizBuilder.vue2.js +2 -591
  154. package/dist/components/compositions/elements/builder/QuizBuilder.vue2.js.map +1 -1
  155. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.d.ts +29 -0
  156. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.d.ts.map +1 -0
  157. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.js +580 -2
  158. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue.js.map +1 -1
  159. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue2.js +2 -580
  160. package/dist/components/compositions/elements/builder/ReactiveCanvasBuilder.vue2.js.map +1 -1
  161. package/dist/components/compositions/elements/card/ListCard.vue.d.ts +21 -0
  162. package/dist/components/compositions/elements/card/ListCard.vue.d.ts.map +1 -0
  163. package/dist/components/compositions/elements/code/BuildStatus.vue.d.ts +43 -0
  164. package/dist/components/compositions/elements/code/BuildStatus.vue.d.ts.map +1 -0
  165. package/dist/components/compositions/elements/code/BuildStatus.vue.js +246 -2
  166. package/dist/components/compositions/elements/code/BuildStatus.vue.js.map +1 -1
  167. package/dist/components/compositions/elements/code/BuildStatus.vue2.js +2 -246
  168. package/dist/components/compositions/elements/code/BuildStatus.vue2.js.map +1 -1
  169. package/dist/components/compositions/elements/code/ChatMessage.vue.d.ts +39 -0
  170. package/dist/components/compositions/elements/code/ChatMessage.vue.d.ts.map +1 -0
  171. package/dist/components/compositions/elements/code/ChatMessage.vue.js +267 -2
  172. package/dist/components/compositions/elements/code/ChatMessage.vue.js.map +1 -1
  173. package/dist/components/compositions/elements/code/ChatMessage.vue2.js +2 -267
  174. package/dist/components/compositions/elements/code/ChatMessage.vue2.js.map +1 -1
  175. package/dist/components/compositions/elements/code/FileTree.vue.d.ts +42 -0
  176. package/dist/components/compositions/elements/code/FileTree.vue.d.ts.map +1 -0
  177. package/dist/components/compositions/elements/code/FileTree.vue.js +251 -2
  178. package/dist/components/compositions/elements/code/FileTree.vue.js.map +1 -1
  179. package/dist/components/compositions/elements/code/FileTree.vue2.js +2 -251
  180. package/dist/components/compositions/elements/code/FileTree.vue2.js.map +1 -1
  181. package/dist/components/compositions/elements/code/GitCodeEditor.vue.d.ts +54 -0
  182. package/dist/components/compositions/elements/code/GitCodeEditor.vue.d.ts.map +1 -0
  183. package/dist/components/compositions/elements/code/GitCodeEditor.vue.js +273 -2
  184. package/dist/components/compositions/elements/code/GitCodeEditor.vue.js.map +1 -1
  185. package/dist/components/compositions/elements/code/GitCodeEditor.vue2.js +2 -273
  186. package/dist/components/compositions/elements/code/GitCodeEditor.vue2.js.map +1 -1
  187. package/dist/components/compositions/elements/code/PullRequestsList.vue.d.ts +46 -0
  188. package/dist/components/compositions/elements/code/PullRequestsList.vue.d.ts.map +1 -0
  189. package/dist/components/compositions/elements/code/PullRequestsList.vue.js +303 -2
  190. package/dist/components/compositions/elements/code/PullRequestsList.vue.js.map +1 -1
  191. package/dist/components/compositions/elements/code/PullRequestsList.vue2.js +2 -303
  192. package/dist/components/compositions/elements/code/PullRequestsList.vue2.js.map +1 -1
  193. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.d.ts +17 -0
  194. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.d.ts.map +1 -0
  195. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.js +101 -2
  196. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue.js.map +1 -1
  197. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue2.js +2 -101
  198. package/dist/components/compositions/elements/configuration-block/DialogBlock.vue2.js.map +1 -1
  199. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.d.ts +20 -0
  200. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.d.ts.map +1 -0
  201. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.js +33 -2
  202. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue.js.map +1 -1
  203. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue2.js +2 -33
  204. package/dist/components/compositions/elements/configuration-block/ElementsBlock.vue2.js.map +1 -1
  205. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.d.ts +17 -0
  206. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.d.ts.map +1 -0
  207. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.js +103 -2
  208. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue.js.map +1 -1
  209. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue2.js +2 -103
  210. package/dist/components/compositions/elements/configuration-block/ModalBlock.vue2.js.map +1 -1
  211. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.d.ts +29 -0
  212. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.d.ts.map +1 -0
  213. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.js +172 -2
  214. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue.js.map +1 -1
  215. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue2.js +2 -140
  216. package/dist/components/compositions/elements/configuration-block/RepeatableBlock.vue2.js.map +1 -1
  217. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.d.ts +12 -0
  218. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.d.ts.map +1 -0
  219. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.js +5 -0
  220. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue.js.map +1 -0
  221. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue2.js +25 -0
  222. package/dist/components/compositions/elements/configuration-block/RepeatableRow.vue2.js.map +1 -0
  223. package/dist/components/compositions/elements/display/BannerDisplay.vue.d.ts +13 -0
  224. package/dist/components/compositions/elements/display/BannerDisplay.vue.d.ts.map +1 -0
  225. package/dist/components/compositions/elements/display/BannerDisplay.vue.js +63 -2
  226. package/dist/components/compositions/elements/display/BannerDisplay.vue.js.map +1 -1
  227. package/dist/components/compositions/elements/display/BannerDisplay.vue2.js +2 -63
  228. package/dist/components/compositions/elements/display/BannerDisplay.vue2.js.map +1 -1
  229. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.d.ts +12 -0
  230. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.d.ts.map +1 -0
  231. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.js +52 -2
  232. package/dist/components/compositions/elements/display/BarcodeDisplay.vue.js.map +1 -1
  233. package/dist/components/compositions/elements/display/BarcodeDisplay.vue2.js +2 -52
  234. package/dist/components/compositions/elements/display/BarcodeDisplay.vue2.js.map +1 -1
  235. package/dist/components/compositions/elements/display/CarouselDisplay.vue.d.ts +27 -0
  236. package/dist/components/compositions/elements/display/CarouselDisplay.vue.d.ts.map +1 -0
  237. package/dist/components/compositions/elements/display/CarouselDisplay.vue.js +144 -2
  238. package/dist/components/compositions/elements/display/CarouselDisplay.vue.js.map +1 -1
  239. package/dist/components/compositions/elements/display/CarouselDisplay.vue2.js +2 -144
  240. package/dist/components/compositions/elements/display/CarouselDisplay.vue2.js.map +1 -1
  241. package/dist/components/compositions/elements/display/ChartDisplay.vue.d.ts +17 -0
  242. package/dist/components/compositions/elements/display/ChartDisplay.vue.d.ts.map +1 -0
  243. package/dist/components/compositions/elements/display/ChartDisplay.vue.js +78 -2
  244. package/dist/components/compositions/elements/display/ChartDisplay.vue.js.map +1 -1
  245. package/dist/components/compositions/elements/display/ChartDisplay.vue2.js +2 -78
  246. package/dist/components/compositions/elements/display/ChartDisplay.vue2.js.map +1 -1
  247. package/dist/components/compositions/elements/display/HtmlDisplay.vue.d.ts +7 -0
  248. package/dist/components/compositions/elements/display/HtmlDisplay.vue.d.ts.map +1 -0
  249. package/dist/components/compositions/elements/display/HtmlDisplay.vue.js +20 -2
  250. package/dist/components/compositions/elements/display/HtmlDisplay.vue.js.map +1 -1
  251. package/dist/components/compositions/elements/display/HtmlDisplay.vue2.js +2 -20
  252. package/dist/components/compositions/elements/display/HtmlDisplay.vue2.js.map +1 -1
  253. package/dist/components/compositions/elements/display/IconDisplay.vue.d.ts +10 -0
  254. package/dist/components/compositions/elements/display/IconDisplay.vue.d.ts.map +1 -0
  255. package/dist/components/compositions/elements/display/IconDisplay.vue.js +55 -2
  256. package/dist/components/compositions/elements/display/IconDisplay.vue.js.map +1 -1
  257. package/dist/components/compositions/elements/display/IconDisplay.vue2.js +2 -55
  258. package/dist/components/compositions/elements/display/IconDisplay.vue2.js.map +1 -1
  259. package/dist/components/compositions/elements/display/IframeDisplay.vue.d.ts +11 -0
  260. package/dist/components/compositions/elements/display/IframeDisplay.vue.d.ts.map +1 -0
  261. package/dist/components/compositions/elements/display/IframeDisplay.vue.js +32 -2
  262. package/dist/components/compositions/elements/display/IframeDisplay.vue.js.map +1 -1
  263. package/dist/components/compositions/elements/display/IframeDisplay.vue2.js +2 -32
  264. package/dist/components/compositions/elements/display/IframeDisplay.vue2.js.map +1 -1
  265. package/dist/components/compositions/elements/display/ImageDisplay.vue.d.ts +8 -0
  266. package/dist/components/compositions/elements/display/ImageDisplay.vue.d.ts.map +1 -0
  267. package/dist/components/compositions/elements/display/ImageDisplay.vue.js +35 -2
  268. package/dist/components/compositions/elements/display/ImageDisplay.vue.js.map +1 -1
  269. package/dist/components/compositions/elements/display/ImageDisplay.vue2.js +2 -35
  270. package/dist/components/compositions/elements/display/ImageDisplay.vue2.js.map +1 -1
  271. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.d.ts +7 -0
  272. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.d.ts.map +1 -0
  273. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.js +39 -2
  274. package/dist/components/compositions/elements/display/MarkdownDisplay.vue.js.map +1 -1
  275. package/dist/components/compositions/elements/display/MarkdownDisplay.vue2.js +2 -39
  276. package/dist/components/compositions/elements/display/MarkdownDisplay.vue2.js.map +1 -1
  277. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.d.ts +11 -0
  278. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.d.ts.map +1 -0
  279. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.js +42 -2
  280. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue.js.map +1 -1
  281. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue2.js +2 -42
  282. package/dist/components/compositions/elements/display/ProgressBarDisplay.vue2.js.map +1 -1
  283. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.d.ts +9 -0
  284. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.d.ts.map +1 -0
  285. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.js +46 -2
  286. package/dist/components/compositions/elements/display/QrCodeDisplay.vue.js.map +1 -1
  287. package/dist/components/compositions/elements/display/QrCodeDisplay.vue2.js +2 -46
  288. package/dist/components/compositions/elements/display/QrCodeDisplay.vue2.js.map +1 -1
  289. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.d.ts +7 -0
  290. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.d.ts.map +1 -0
  291. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.js +64 -2
  292. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue.js.map +1 -1
  293. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue2.js +2 -64
  294. package/dist/components/compositions/elements/display/ReactiveCanvasDisplay.vue2.js.map +1 -1
  295. package/dist/components/compositions/elements/display/SpriteDisplay.vue.d.ts +7 -0
  296. package/dist/components/compositions/elements/display/SpriteDisplay.vue.d.ts.map +1 -0
  297. package/dist/components/compositions/elements/display/SpriteDisplay.vue.js +64 -2
  298. package/dist/components/compositions/elements/display/SpriteDisplay.vue.js.map +1 -1
  299. package/dist/components/compositions/elements/display/SpriteDisplay.vue2.js +2 -64
  300. package/dist/components/compositions/elements/display/SpriteDisplay.vue2.js.map +1 -1
  301. package/dist/components/compositions/elements/display/TypeDisplay.vue.d.ts +11 -0
  302. package/dist/components/compositions/elements/display/TypeDisplay.vue.d.ts.map +1 -0
  303. package/dist/components/compositions/elements/display/TypeDisplay.vue.js +42 -2
  304. package/dist/components/compositions/elements/display/TypeDisplay.vue.js.map +1 -1
  305. package/dist/components/compositions/elements/display/TypeDisplay.vue2.js +2 -42
  306. package/dist/components/compositions/elements/display/TypeDisplay.vue2.js.map +1 -1
  307. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.d.ts +10 -0
  308. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.d.ts.map +1 -0
  309. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.js +33 -2
  310. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue.js.map +1 -1
  311. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue2.js +2 -33
  312. package/dist/components/compositions/elements/display/VideoPlayerDisplay.vue2.js.map +1 -1
  313. package/dist/components/compositions/elements/editor/CodeEditor.vue.d.ts +33 -0
  314. package/dist/components/compositions/elements/editor/CodeEditor.vue.d.ts.map +1 -0
  315. package/dist/components/compositions/elements/editor/CodeEditor.vue.js +5 -2
  316. package/dist/components/compositions/elements/editor/CodeEditor.vue.js.map +1 -1
  317. package/dist/components/compositions/elements/editor/CodeEditor.vue2.js +211 -53
  318. package/dist/components/compositions/elements/editor/CodeEditor.vue2.js.map +1 -1
  319. package/dist/components/compositions/elements/editor/HtmlEditor.vue.d.ts +24 -0
  320. package/dist/components/compositions/elements/editor/HtmlEditor.vue.d.ts.map +1 -0
  321. package/dist/components/compositions/elements/editor/HtmlEditor.vue.js +5 -2
  322. package/dist/components/compositions/elements/editor/HtmlEditor.vue.js.map +1 -1
  323. package/dist/components/compositions/elements/editor/HtmlEditor.vue2.js +1333 -50
  324. package/dist/components/compositions/elements/editor/HtmlEditor.vue2.js.map +1 -1
  325. package/dist/components/compositions/elements/editor/ImageEditor.vue.d.ts +24 -0
  326. package/dist/components/compositions/elements/editor/ImageEditor.vue.d.ts.map +1 -0
  327. package/dist/components/compositions/elements/editor/ImageEditor.vue.js +67 -2
  328. package/dist/components/compositions/elements/editor/ImageEditor.vue.js.map +1 -1
  329. package/dist/components/compositions/elements/editor/ImageEditor.vue2.js +2 -67
  330. package/dist/components/compositions/elements/editor/ImageEditor.vue2.js.map +1 -1
  331. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.d.ts +28 -0
  332. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.d.ts.map +1 -0
  333. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.js +82 -2
  334. package/dist/components/compositions/elements/editor/MarkdownEditor.vue.js.map +1 -1
  335. package/dist/components/compositions/elements/editor/MarkdownEditor.vue2.js +2 -82
  336. package/dist/components/compositions/elements/editor/MarkdownEditor.vue2.js.map +1 -1
  337. package/dist/components/compositions/elements/editor/RichTextEditor.vue.d.ts +26 -0
  338. package/dist/components/compositions/elements/editor/RichTextEditor.vue.d.ts.map +1 -0
  339. package/dist/components/compositions/elements/editor/RichTextEditor.vue.js +262 -2
  340. package/dist/components/compositions/elements/editor/RichTextEditor.vue.js.map +1 -1
  341. package/dist/components/compositions/elements/editor/RichTextEditor.vue2.js +2 -262
  342. package/dist/components/compositions/elements/editor/RichTextEditor.vue2.js.map +1 -1
  343. package/dist/components/compositions/elements/file/AssetPickerFile.vue.d.ts +47 -0
  344. package/dist/components/compositions/elements/file/AssetPickerFile.vue.d.ts.map +1 -0
  345. package/dist/components/compositions/elements/file/AssetPickerFile.vue.js +293 -2
  346. package/dist/components/compositions/elements/file/AssetPickerFile.vue.js.map +1 -1
  347. package/dist/components/compositions/elements/file/AssetPickerFile.vue2.js +2 -293
  348. package/dist/components/compositions/elements/file/AssetPickerFile.vue2.js.map +1 -1
  349. package/dist/components/compositions/elements/file/DropzoneFile.vue.d.ts +33 -0
  350. package/dist/components/compositions/elements/file/DropzoneFile.vue.d.ts.map +1 -0
  351. package/dist/components/compositions/elements/file/DropzoneFile.vue.js +171 -2
  352. package/dist/components/compositions/elements/file/DropzoneFile.vue.js.map +1 -1
  353. package/dist/components/compositions/elements/file/DropzoneFile.vue2.js +2 -171
  354. package/dist/components/compositions/elements/file/DropzoneFile.vue2.js.map +1 -1
  355. package/dist/components/compositions/elements/file/UploadFile.vue.d.ts +33 -0
  356. package/dist/components/compositions/elements/file/UploadFile.vue.d.ts.map +1 -0
  357. package/dist/components/compositions/elements/file/UploadFile.vue.js +149 -2
  358. package/dist/components/compositions/elements/file/UploadFile.vue.js.map +1 -1
  359. package/dist/components/compositions/elements/file/UploadFile.vue2.js +2 -149
  360. package/dist/components/compositions/elements/file/UploadFile.vue2.js.map +1 -1
  361. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.d.ts +48 -0
  362. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.d.ts.map +1 -0
  363. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.js +166 -2
  364. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue.js.map +1 -1
  365. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue2.js +2 -166
  366. package/dist/components/compositions/elements/input/BarcodeScannerInput.vue2.js.map +1 -1
  367. package/dist/components/compositions/elements/input/EmailInput.vue.d.ts +48 -0
  368. package/dist/components/compositions/elements/input/EmailInput.vue.d.ts.map +1 -0
  369. package/dist/components/compositions/elements/input/EmailInput.vue.js +62 -2
  370. package/dist/components/compositions/elements/input/EmailInput.vue.js.map +1 -1
  371. package/dist/components/compositions/elements/input/EmailInput.vue2.js +2 -62
  372. package/dist/components/compositions/elements/input/EmailInput.vue2.js.map +1 -1
  373. package/dist/components/compositions/elements/input/NumberInput.vue.d.ts +49 -0
  374. package/dist/components/compositions/elements/input/NumberInput.vue.d.ts.map +1 -0
  375. package/dist/components/compositions/elements/input/NumberInput.vue.js +73 -2
  376. package/dist/components/compositions/elements/input/NumberInput.vue.js.map +1 -1
  377. package/dist/components/compositions/elements/input/NumberInput.vue2.js +2 -73
  378. package/dist/components/compositions/elements/input/NumberInput.vue2.js.map +1 -1
  379. package/dist/components/compositions/elements/input/PasswordInput.vue.d.ts +49 -0
  380. package/dist/components/compositions/elements/input/PasswordInput.vue.d.ts.map +1 -0
  381. package/dist/components/compositions/elements/input/PasswordInput.vue.js +98 -2
  382. package/dist/components/compositions/elements/input/PasswordInput.vue.js.map +1 -1
  383. package/dist/components/compositions/elements/input/PasswordInput.vue2.js +2 -98
  384. package/dist/components/compositions/elements/input/PasswordInput.vue2.js.map +1 -1
  385. package/dist/components/compositions/elements/input/RangeSliderInput.vue.d.ts +31 -0
  386. package/dist/components/compositions/elements/input/RangeSliderInput.vue.d.ts.map +1 -0
  387. package/dist/components/compositions/elements/input/RangeSliderInput.vue.js +69 -2
  388. package/dist/components/compositions/elements/input/RangeSliderInput.vue.js.map +1 -1
  389. package/dist/components/compositions/elements/input/RangeSliderInput.vue2.js +2 -69
  390. package/dist/components/compositions/elements/input/RangeSliderInput.vue2.js.map +1 -1
  391. package/dist/components/compositions/elements/input/SearchInput.vue.d.ts +48 -0
  392. package/dist/components/compositions/elements/input/SearchInput.vue.d.ts.map +1 -0
  393. package/dist/components/compositions/elements/input/SearchInput.vue.js +69 -2
  394. package/dist/components/compositions/elements/input/SearchInput.vue.js.map +1 -1
  395. package/dist/components/compositions/elements/input/SearchInput.vue2.js +2 -69
  396. package/dist/components/compositions/elements/input/SearchInput.vue2.js.map +1 -1
  397. package/dist/components/compositions/elements/input/TelInput.vue.d.ts +48 -0
  398. package/dist/components/compositions/elements/input/TelInput.vue.d.ts.map +1 -0
  399. package/dist/components/compositions/elements/input/TelInput.vue.js +62 -2
  400. package/dist/components/compositions/elements/input/TelInput.vue.js.map +1 -1
  401. package/dist/components/compositions/elements/input/TelInput.vue2.js +2 -62
  402. package/dist/components/compositions/elements/input/TelInput.vue2.js.map +1 -1
  403. package/dist/components/compositions/elements/input/TextInput.vue.d.ts +48 -0
  404. package/dist/components/compositions/elements/input/TextInput.vue.d.ts.map +1 -0
  405. package/dist/components/compositions/elements/input/TextInput.vue.js +62 -2
  406. package/dist/components/compositions/elements/input/TextInput.vue.js.map +1 -1
  407. package/dist/components/compositions/elements/input/TextInput.vue2.js +2 -62
  408. package/dist/components/compositions/elements/input/TextInput.vue2.js.map +1 -1
  409. package/dist/components/compositions/elements/input/TextareaInput.vue.d.ts +54 -0
  410. package/dist/components/compositions/elements/input/TextareaInput.vue.d.ts.map +1 -0
  411. package/dist/components/compositions/elements/input/TextareaInput.vue.js +63 -2
  412. package/dist/components/compositions/elements/input/TextareaInput.vue.js.map +1 -1
  413. package/dist/components/compositions/elements/input/TextareaInput.vue2.js +2 -63
  414. package/dist/components/compositions/elements/input/TextareaInput.vue2.js.map +1 -1
  415. package/dist/components/compositions/elements/input/UrlInput.vue.d.ts +48 -0
  416. package/dist/components/compositions/elements/input/UrlInput.vue.d.ts.map +1 -0
  417. package/dist/components/compositions/elements/input/UrlInput.vue.js +62 -2
  418. package/dist/components/compositions/elements/input/UrlInput.vue.js.map +1 -1
  419. package/dist/components/compositions/elements/input/UrlInput.vue2.js +2 -62
  420. package/dist/components/compositions/elements/input/UrlInput.vue2.js.map +1 -1
  421. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.d.ts +44 -0
  422. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.d.ts.map +1 -0
  423. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.js +167 -2
  424. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue.js.map +1 -1
  425. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue2.js +2 -167
  426. package/dist/components/compositions/elements/option-select/AsyncSelectOption.vue2.js.map +1 -1
  427. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.d.ts +31 -0
  428. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.d.ts.map +1 -0
  429. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.js +121 -2
  430. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue.js.map +1 -1
  431. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue2.js +2 -121
  432. package/dist/components/compositions/elements/option-select/AutoCompleteOption.vue2.js.map +1 -1
  433. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.d.ts +29 -0
  434. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.d.ts.map +1 -0
  435. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.js +87 -2
  436. package/dist/components/compositions/elements/option-select/CheckboxOption.vue.js.map +1 -1
  437. package/dist/components/compositions/elements/option-select/CheckboxOption.vue2.js +2 -87
  438. package/dist/components/compositions/elements/option-select/CheckboxOption.vue2.js.map +1 -1
  439. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.d.ts +41 -0
  440. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.d.ts.map +1 -0
  441. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.js +237 -2
  442. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue.js.map +1 -1
  443. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue2.js +2 -237
  444. package/dist/components/compositions/elements/option-select/IntegrationConnectorOption.vue2.js.map +1 -1
  445. package/dist/components/compositions/elements/option-select/ListOption.vue.d.ts +29 -0
  446. package/dist/components/compositions/elements/option-select/ListOption.vue.d.ts.map +1 -0
  447. package/dist/components/compositions/elements/option-select/ListOption.vue.js +89 -2
  448. package/dist/components/compositions/elements/option-select/ListOption.vue.js.map +1 -1
  449. package/dist/components/compositions/elements/option-select/ListOption.vue2.js +2 -89
  450. package/dist/components/compositions/elements/option-select/ListOption.vue2.js.map +1 -1
  451. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.d.ts +28 -0
  452. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.d.ts.map +1 -0
  453. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.js +85 -2
  454. package/dist/components/compositions/elements/option-select/PillSelectOption.vue.js.map +1 -1
  455. package/dist/components/compositions/elements/option-select/PillSelectOption.vue2.js +2 -85
  456. package/dist/components/compositions/elements/option-select/PillSelectOption.vue2.js.map +1 -1
  457. package/dist/components/compositions/elements/option-select/RadioOption.vue.d.ts +29 -0
  458. package/dist/components/compositions/elements/option-select/RadioOption.vue.d.ts.map +1 -0
  459. package/dist/components/compositions/elements/option-select/RadioOption.vue.js +98 -2
  460. package/dist/components/compositions/elements/option-select/RadioOption.vue.js.map +1 -1
  461. package/dist/components/compositions/elements/option-select/RadioOption.vue2.js +2 -98
  462. package/dist/components/compositions/elements/option-select/RadioOption.vue2.js.map +1 -1
  463. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.d.ts +29 -0
  464. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.d.ts.map +1 -0
  465. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.js +151 -2
  466. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue.js.map +1 -1
  467. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue2.js +2 -151
  468. package/dist/components/compositions/elements/option-select/SelectMultipleOption.vue2.js.map +1 -1
  469. package/dist/components/compositions/elements/option-select/SelectOption.vue.d.ts +29 -0
  470. package/dist/components/compositions/elements/option-select/SelectOption.vue.d.ts.map +1 -0
  471. package/dist/components/compositions/elements/option-select/SelectOption.vue.js +116 -2
  472. package/dist/components/compositions/elements/option-select/SelectOption.vue.js.map +1 -1
  473. package/dist/components/compositions/elements/option-select/SelectOption.vue2.js +2 -116
  474. package/dist/components/compositions/elements/option-select/SelectOption.vue2.js.map +1 -1
  475. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.d.ts +40 -0
  476. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.d.ts.map +1 -0
  477. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.js +182 -2
  478. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue.js.map +1 -1
  479. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue2.js +2 -182
  480. package/dist/components/compositions/elements/picker/AsyncSelectPicker.vue2.js.map +1 -1
  481. package/dist/components/compositions/elements/picker/ColorPicker.vue.d.ts +29 -0
  482. package/dist/components/compositions/elements/picker/ColorPicker.vue.d.ts.map +1 -0
  483. package/dist/components/compositions/elements/picker/ColorPicker.vue.js +155 -2
  484. package/dist/components/compositions/elements/picker/ColorPicker.vue.js.map +1 -1
  485. package/dist/components/compositions/elements/picker/ColorPicker.vue2.js +2 -155
  486. package/dist/components/compositions/elements/picker/ColorPicker.vue2.js.map +1 -1
  487. package/dist/components/compositions/elements/picker/DataModelPicker.vue.d.ts +29 -0
  488. package/dist/components/compositions/elements/picker/DataModelPicker.vue.d.ts.map +1 -0
  489. package/dist/components/compositions/elements/picker/DataModelPicker.vue.js +104 -2
  490. package/dist/components/compositions/elements/picker/DataModelPicker.vue.js.map +1 -1
  491. package/dist/components/compositions/elements/picker/DataModelPicker.vue2.js +2 -104
  492. package/dist/components/compositions/elements/picker/DataModelPicker.vue2.js.map +1 -1
  493. package/dist/components/compositions/elements/picker/DatePicker.vue.d.ts +32 -0
  494. package/dist/components/compositions/elements/picker/DatePicker.vue.d.ts.map +1 -0
  495. package/dist/components/compositions/elements/picker/DatePicker.vue.js +140 -2
  496. package/dist/components/compositions/elements/picker/DatePicker.vue.js.map +1 -1
  497. package/dist/components/compositions/elements/picker/DatePicker.vue2.js +2 -140
  498. package/dist/components/compositions/elements/picker/DatePicker.vue2.js.map +1 -1
  499. package/dist/components/compositions/elements/picker/DateTimePicker.vue.d.ts +26 -0
  500. package/dist/components/compositions/elements/picker/DateTimePicker.vue.d.ts.map +1 -0
  501. package/dist/components/compositions/elements/picker/DateTimePicker.vue.js +171 -2
  502. package/dist/components/compositions/elements/picker/DateTimePicker.vue.js.map +1 -1
  503. package/dist/components/compositions/elements/picker/DateTimePicker.vue2.js +2 -171
  504. package/dist/components/compositions/elements/picker/DateTimePicker.vue2.js.map +1 -1
  505. package/dist/components/compositions/elements/picker/IconPicker.vue.d.ts +26 -0
  506. package/dist/components/compositions/elements/picker/IconPicker.vue.d.ts.map +1 -0
  507. package/dist/components/compositions/elements/picker/IconPicker.vue.js +190 -2
  508. package/dist/components/compositions/elements/picker/IconPicker.vue.js.map +1 -1
  509. package/dist/components/compositions/elements/picker/IconPicker.vue2.js +2 -190
  510. package/dist/components/compositions/elements/picker/IconPicker.vue2.js.map +1 -1
  511. package/dist/components/compositions/elements/picker/IconPickerInline.vue.d.ts +24 -0
  512. package/dist/components/compositions/elements/picker/IconPickerInline.vue.d.ts.map +1 -0
  513. package/dist/components/compositions/elements/{components/IconPickerInline.vue2.js → picker/IconPickerInline.vue.js} +23 -23
  514. package/dist/components/compositions/elements/picker/IconPickerInline.vue.js.map +1 -0
  515. package/dist/components/compositions/elements/picker/IconPickerInline.vue2.js +5 -0
  516. package/dist/components/compositions/elements/picker/IconPickerInline.vue2.js.map +1 -0
  517. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.d.ts +41 -0
  518. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.d.ts.map +1 -0
  519. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.js +271 -2
  520. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue.js.map +1 -1
  521. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue2.js +2 -271
  522. package/dist/components/compositions/elements/picker/IntegrationConnectorPicker.vue2.js.map +1 -1
  523. package/dist/components/compositions/elements/picker/MapPicker.vue.d.ts +55 -0
  524. package/dist/components/compositions/elements/picker/MapPicker.vue.d.ts.map +1 -0
  525. package/dist/components/compositions/elements/picker/MapPicker.vue.js +118 -2
  526. package/dist/components/compositions/elements/picker/MapPicker.vue.js.map +1 -1
  527. package/dist/components/compositions/elements/picker/MapPicker.vue2.js +2 -118
  528. package/dist/components/compositions/elements/picker/MapPicker.vue2.js.map +1 -1
  529. package/dist/components/compositions/elements/picker/TimePicker.vue.d.ts +26 -0
  530. package/dist/components/compositions/elements/picker/TimePicker.vue.d.ts.map +1 -0
  531. package/dist/components/compositions/elements/picker/TimePicker.vue.js +106 -2
  532. package/dist/components/compositions/elements/picker/TimePicker.vue.js.map +1 -1
  533. package/dist/components/compositions/elements/picker/TimePicker.vue2.js +2 -106
  534. package/dist/components/compositions/elements/picker/TimePicker.vue2.js.map +1 -1
  535. package/dist/components/compositions/elements/picker/TimezonePicker.vue.d.ts +26 -0
  536. package/dist/components/compositions/elements/picker/TimezonePicker.vue.d.ts.map +1 -0
  537. package/dist/components/compositions/elements/picker/TimezonePicker.vue.js +124 -2
  538. package/dist/components/compositions/elements/picker/TimezonePicker.vue.js.map +1 -1
  539. package/dist/components/compositions/elements/picker/TimezonePicker.vue2.js +2 -124
  540. package/dist/components/compositions/elements/picker/TimezonePicker.vue2.js.map +1 -1
  541. package/dist/components/ui/index.d.ts +3 -3
  542. package/dist/components/ui/toast/index.d.ts +1 -1
  543. package/dist/components/ui/toast/index.js.map +1 -1
  544. package/dist/configuration-block.d.ts +5 -0
  545. package/dist/configuration-block.d.ts.map +1 -0
  546. package/dist/configuration-block.js +11 -0
  547. package/dist/configuration-block.js.map +1 -0
  548. package/dist/definitions/elements/PickerElement.d.ts +1 -1
  549. package/dist/definitions/elements/PickerElement.d.ts.map +1 -1
  550. package/dist/definitions/elements/PickerElement.js +3 -2
  551. package/dist/definitions/elements/PickerElement.js.map +1 -1
  552. package/dist/definitions/elements/index.d.ts +1 -155
  553. package/dist/definitions/elements/index.d.ts.map +1 -1
  554. package/dist/definitions/elements/index.js +112 -121
  555. package/dist/definitions/elements/index.js.map +1 -1
  556. package/dist/definitions/index.d.ts +1 -1
  557. package/dist/definitions/shared/base.d.ts +1 -1
  558. package/dist/definitions/shared/base.d.ts.map +1 -1
  559. package/dist/definitions/shared/base.js.map +1 -1
  560. package/dist/display.d.ts +16 -0
  561. package/dist/display.d.ts.map +1 -0
  562. package/dist/display.js +33 -0
  563. package/dist/display.js.map +1 -0
  564. package/dist/editor.d.ts +6 -0
  565. package/dist/editor.d.ts.map +1 -0
  566. package/dist/editor.js +13 -0
  567. package/dist/editor.js.map +1 -0
  568. package/dist/engine/registry.d.ts +0 -2
  569. package/dist/engine/registry.d.ts.map +1 -1
  570. package/dist/engine/registry.js +1 -5
  571. package/dist/engine/registry.js.map +1 -1
  572. package/dist/engine/useCardLoader.js +1 -1
  573. package/dist/engine/useCardLoader.js.map +1 -1
  574. package/dist/engine/useElementLoader.js +1 -1
  575. package/dist/engine/useElementLoader.js.map +1 -1
  576. package/dist/engine/useFormData.d.ts.map +1 -1
  577. package/dist/engine/useFormData.js +13 -13
  578. package/dist/engine/useFormData.js.map +1 -1
  579. package/dist/file.d.ts +4 -0
  580. package/dist/file.d.ts.map +1 -0
  581. package/dist/file.js +9 -0
  582. package/dist/file.js.map +1 -0
  583. package/dist/index.d.ts +3 -3
  584. package/dist/index.js +71 -75
  585. package/dist/index.js.map +1 -1
  586. package/dist/input.d.ts +11 -0
  587. package/dist/input.d.ts.map +1 -0
  588. package/dist/input.js +23 -0
  589. package/dist/input.js.map +1 -0
  590. package/dist/lib/storybook.d.ts +45 -0
  591. package/dist/lib/storybook.d.ts.map +1 -0
  592. package/dist/option-select.d.ts +10 -0
  593. package/dist/option-select.d.ts.map +1 -0
  594. package/dist/option-select.js +21 -0
  595. package/dist/option-select.js.map +1 -0
  596. package/dist/pages/ShowPage.vue.js +1 -1
  597. package/dist/pages/ShowPage.vue.js.map +1 -1
  598. package/dist/picker.d.ts +12 -0
  599. package/dist/picker.d.ts.map +1 -0
  600. package/dist/picker.js +25 -0
  601. package/dist/picker.js.map +1 -0
  602. package/dist/stores/dependencyListBuilderStore.d.ts +1 -1
  603. package/dist/stores/dependencyListBuilderStore.js +5 -5
  604. package/dist/stores/dependencyListBuilderStore.js.map +1 -1
  605. package/dist/stores/elementListBuilderStore.d.ts +1 -1
  606. package/dist/stores/elementListBuilderStore.js +14 -14
  607. package/dist/stores/elementListBuilderStore.js.map +1 -1
  608. package/dist/stores/formBuilderStore.d.ts +1 -1
  609. package/dist/stores/formBuilderStore.js +5 -5
  610. package/dist/stores/formBuilderStore.js.map +1 -1
  611. package/dist/stores/formDataStore.d.ts +1 -1
  612. package/dist/stores/formDataStore.js +2 -2
  613. package/dist/stores/formDataStore.js.map +1 -1
  614. package/dist/stores/gridBuilderStore.d.ts +1 -1
  615. package/dist/stores/gridBuilderStore.js +11 -11
  616. package/dist/stores/gridBuilderStore.js.map +1 -1
  617. package/dist/stores/objectBuilderStore.d.ts +1 -1
  618. package/dist/stores/objectBuilderStore.js +1 -1
  619. package/dist/stores/objectBuilderStore.js.map +1 -1
  620. package/dist/stores/presetBuilderStore.d.ts +1 -1
  621. package/dist/stores/presetBuilderStore.js +12 -12
  622. package/dist/stores/presetBuilderStore.js.map +1 -1
  623. package/dist/stores/quizBuilderStore.d.ts +1 -1
  624. package/dist/stores/quizBuilderStore.js +1 -1
  625. package/dist/stores/quizBuilderStore.js.map +1 -1
  626. package/dist/stores/reactiveCanvasBuilderStore.d.ts +1 -1
  627. package/dist/stores/reactiveCanvasBuilderStore.js +40 -40
  628. package/dist/stores/reactiveCanvasBuilderStore.js.map +1 -1
  629. package/dist/styles/mod-ui.css +1 -0
  630. package/package.json +85 -20
  631. package/src/action.ts +3 -0
  632. package/src/adapters/fieldTypeMap.ts +3 -8
  633. package/src/adapters/index.ts +1 -1
  634. package/src/boolean.ts +4 -0
  635. package/src/builder.ts +8 -0
  636. package/src/cards.ts +7 -0
  637. package/src/code.ts +5 -0
  638. package/src/components/compositions/cards/CardListCard.stories.ts +2 -0
  639. package/src/components/compositions/cards/DataTableCard.stories.ts +2 -0
  640. package/src/components/compositions/cards/ElementDisplayCard.stories.ts +2 -0
  641. package/src/components/compositions/cards/ElementListCard.stories.ts +2 -0
  642. package/src/components/compositions/cards/GridViewCard.stories.ts +2 -0
  643. package/src/components/compositions/cards/InfoCard.stories.ts +2 -0
  644. package/src/components/compositions/cards/TabListCard.stories.ts +2 -0
  645. package/src/components/compositions/elements/action/ButtonAction.stories.ts +3 -1
  646. package/src/components/compositions/elements/action/ButtonGroupAction.stories.ts +3 -1
  647. package/src/components/compositions/elements/action/LinkAction.stories.ts +3 -1
  648. package/src/components/compositions/elements/boolean/CheckboxBoolean.stories.ts +3 -1
  649. package/src/components/compositions/elements/boolean/IconToggleBoolean.stories.ts +3 -1
  650. package/src/components/compositions/elements/boolean/RadioBoolean.stories.ts +3 -1
  651. package/src/components/compositions/elements/boolean/SwitchBoolean.stories.ts +3 -1
  652. package/src/components/compositions/elements/builder/DependencyListBuilder.stories.ts +1 -1
  653. package/src/components/compositions/elements/builder/ElementListBuilder.stories.ts +1 -1
  654. package/src/components/compositions/elements/builder/ElementListBuilder.test.ts +0 -1
  655. package/src/components/compositions/elements/builder/FormBuilder.stories.ts +2 -0
  656. package/src/components/compositions/elements/builder/FormBuilder.test.ts +0 -1
  657. package/src/components/compositions/elements/builder/GridBuilder.stories.ts +2 -0
  658. package/src/components/compositions/elements/builder/ObjectBuilder.stories.ts +1 -1
  659. package/src/components/compositions/elements/builder/PresetBuilder.stories.ts +1 -1
  660. package/src/components/compositions/elements/builder/QuizBuilder.stories.ts +2 -0
  661. package/src/components/compositions/elements/builder/ReactiveCanvasBuilder.stories.ts +1 -1
  662. package/src/components/compositions/elements/code/BuildStatus.stories.ts +3 -1
  663. package/src/components/compositions/elements/code/ChatMessage.stories.ts +1 -1
  664. package/src/components/compositions/elements/code/FileTree.stories.ts +3 -1
  665. package/src/components/compositions/elements/code/GitCodeEditor.stories.ts +3 -1
  666. package/src/components/compositions/elements/code/PullRequestsList.stories.ts +3 -1
  667. package/src/components/compositions/elements/configuration-block/DialogBlock.stories.ts +1 -1
  668. package/src/components/compositions/elements/configuration-block/ElementsBlock.stories.ts +1 -1
  669. package/src/components/compositions/elements/configuration-block/ModalBlock.stories.ts +2 -0
  670. package/src/components/compositions/elements/configuration-block/RepeatableBlock.stories.ts +45 -2
  671. package/src/components/compositions/elements/configuration-block/RepeatableBlock.test.ts +47 -16
  672. package/src/components/compositions/elements/configuration-block/RepeatableBlock.vue +161 -92
  673. package/src/components/compositions/elements/configuration-block/RepeatableRow.vue +36 -0
  674. package/src/components/compositions/elements/display/BannerDisplay.stories.ts +3 -1
  675. package/src/components/compositions/elements/display/BarcodeDisplay.stories.ts +3 -1
  676. package/src/components/compositions/elements/display/CarouselDisplay.stories.ts +3 -1
  677. package/src/components/compositions/elements/display/ChartDisplay.stories.ts +3 -1
  678. package/src/components/compositions/elements/display/HtmlDisplay.stories.ts +3 -1
  679. package/src/components/compositions/elements/display/IconDisplay.stories.ts +3 -1
  680. package/src/components/compositions/elements/display/IframeDisplay.stories.ts +3 -1
  681. package/src/components/compositions/elements/display/ImageDisplay.stories.ts +3 -1
  682. package/src/components/compositions/elements/display/MarkdownDisplay.stories.ts +3 -1
  683. package/src/components/compositions/elements/display/ProgressBarDisplay.stories.ts +3 -1
  684. package/src/components/compositions/elements/display/QrCodeDisplay.stories.ts +3 -1
  685. package/src/components/compositions/elements/display/ReactiveCanvasDisplay.stories.ts +3 -1
  686. package/src/components/compositions/elements/display/SpriteDisplay.stories.ts +3 -1
  687. package/src/components/compositions/elements/display/TypeDisplay.stories.ts +3 -1
  688. package/src/components/compositions/elements/display/VideoPlayerDisplay.stories.ts +3 -1
  689. package/src/components/compositions/elements/editor/CodeEditor.stories.ts +88 -12
  690. package/src/components/compositions/elements/editor/CodeEditor.test.ts +72 -41
  691. package/src/components/compositions/elements/editor/CodeEditor.vue +306 -38
  692. package/src/components/compositions/elements/editor/HtmlEditor.stories.ts +73 -6
  693. package/src/components/compositions/elements/editor/HtmlEditor.test.ts +59 -50
  694. package/src/components/compositions/elements/editor/HtmlEditor.vue +942 -41
  695. package/src/components/compositions/elements/editor/ImageEditor.stories.ts +3 -1
  696. package/src/components/compositions/elements/editor/MarkdownEditor.stories.ts +3 -1
  697. package/src/components/compositions/elements/editor/RichTextEditor.stories.ts +3 -1
  698. package/src/components/compositions/elements/file/AssetPickerFile.stories.ts +3 -1
  699. package/src/components/compositions/elements/file/DropzoneFile.stories.ts +3 -1
  700. package/src/components/compositions/elements/file/UploadFile.stories.ts +3 -1
  701. package/src/components/compositions/elements/input/BarcodeScannerInput.stories.ts +3 -1
  702. package/src/components/compositions/elements/input/EmailInput.stories.ts +3 -1
  703. package/src/components/compositions/elements/input/NumberInput.stories.ts +3 -1
  704. package/src/components/compositions/elements/input/PasswordInput.stories.ts +3 -1
  705. package/src/components/compositions/elements/input/RangeSliderInput.stories.ts +3 -1
  706. package/src/components/compositions/elements/input/SearchInput.stories.ts +3 -1
  707. package/src/components/compositions/elements/input/TelInput.stories.ts +3 -1
  708. package/src/components/compositions/elements/input/TextInput.stories.ts +3 -1
  709. package/src/components/compositions/elements/input/TextareaInput.stories.ts +3 -1
  710. package/src/components/compositions/elements/input/UrlInput.stories.ts +3 -1
  711. package/src/components/compositions/elements/option-select/AsyncSelectOption.stories.ts +3 -1
  712. package/src/components/compositions/elements/option-select/AutoCompleteOption.stories.ts +3 -1
  713. package/src/components/compositions/elements/option-select/CheckboxOption.stories.ts +3 -1
  714. package/src/components/compositions/elements/option-select/IntegrationConnectorOption.stories.ts +3 -1
  715. package/src/components/compositions/elements/option-select/ListOption.stories.ts +3 -1
  716. package/src/components/compositions/elements/option-select/PillSelectOption.stories.ts +3 -1
  717. package/src/components/compositions/elements/option-select/RadioOption.stories.ts +3 -1
  718. package/src/components/compositions/elements/option-select/SelectMultipleOption.stories.ts +3 -1
  719. package/src/components/compositions/elements/option-select/SelectOption.stories.ts +3 -1
  720. package/src/components/compositions/elements/picker/AsyncSelectPicker.stories.ts +3 -1
  721. package/src/components/compositions/elements/picker/ColorPicker.stories.ts +3 -1
  722. package/src/components/compositions/elements/picker/DataModelPicker.stories.ts +3 -1
  723. package/src/components/compositions/elements/picker/DatePicker.stories.ts +3 -1
  724. package/src/components/compositions/elements/picker/DateTimePicker.stories.ts +3 -1
  725. package/src/components/compositions/elements/picker/IconPicker.stories.ts +3 -1
  726. package/src/components/compositions/elements/{components → picker}/IconPickerInline.stories.ts +3 -1
  727. package/src/components/compositions/elements/{components → picker}/IconPickerInline.test.ts +8 -8
  728. package/src/components/compositions/elements/{components → picker}/IconPickerInline.vue +4 -4
  729. package/src/components/compositions/elements/picker/IntegrationConnectorPicker.stories.ts +3 -1
  730. package/src/components/compositions/elements/picker/MapPicker.stories.ts +3 -1
  731. package/src/components/compositions/elements/picker/TimePicker.stories.ts +3 -1
  732. package/src/components/compositions/elements/picker/TimezonePicker.stories.ts +3 -1
  733. package/src/components/ui/accordion/Accordion.stories.ts +2 -0
  734. package/src/components/ui/alert/Alert.stories.ts +2 -0
  735. package/src/components/ui/avatar/Avatar.stories.ts +2 -0
  736. package/src/components/ui/badge/Badge.stories.ts +2 -0
  737. package/src/components/ui/button/Button.stories.ts +5 -0
  738. package/src/components/ui/calendar/Calendar.stories.ts +2 -0
  739. package/src/components/ui/card/Card.stories.ts +2 -0
  740. package/src/components/ui/checkbox/Checkbox.stories.ts +2 -0
  741. package/src/components/ui/combobox/Combobox.stories.ts +2 -0
  742. package/src/components/ui/command/Command.stories.ts +2 -0
  743. package/src/components/ui/dialog/Dialog.stories.ts +2 -0
  744. package/src/components/ui/dropdown-menu/DropdownMenu.stories.ts +2 -0
  745. package/src/components/ui/field-frame/FieldFrame.stories.ts +1 -1
  746. package/src/components/ui/index.ts +3 -3
  747. package/src/components/ui/input/Input.stories.ts +2 -0
  748. package/src/components/ui/label/Label.stories.ts +2 -0
  749. package/src/components/ui/popover/Popover.stories.ts +2 -0
  750. package/src/components/ui/progress/Progress.stories.ts +2 -0
  751. package/src/components/ui/radio-group/RadioGroup.stories.ts +2 -0
  752. package/src/components/ui/select/Select.stories.ts +2 -0
  753. package/src/components/ui/separator/Separator.stories.ts +2 -0
  754. package/src/components/ui/sheet/Sheet.stories.ts +2 -0
  755. package/src/components/ui/skeleton/Skeleton.stories.ts +2 -0
  756. package/src/components/ui/slider/Slider.stories.ts +2 -0
  757. package/src/components/ui/switch/Switch.stories.ts +2 -0
  758. package/src/components/ui/table/Table.stories.ts +2 -0
  759. package/src/components/ui/tabs/Tabs.stories.ts +2 -0
  760. package/src/components/ui/textarea/Textarea.stories.ts +2 -0
  761. package/src/components/ui/toast/Toaster.stories.ts +2 -0
  762. package/src/components/ui/toast/index.ts +1 -1
  763. package/src/components/ui/toggle/Toggle.stories.ts +2 -0
  764. package/src/components/ui/tooltip/Tooltip.stories.ts +2 -0
  765. package/src/configuration-block.ts +4 -0
  766. package/src/definitions/__tests__/schema.test.ts +0 -1
  767. package/src/definitions/elements/PickerElement.ts +2 -0
  768. package/src/definitions/elements/index.ts +0 -18
  769. package/src/definitions/index.ts +1 -1
  770. package/src/definitions/shared/base.ts +0 -1
  771. package/src/display.ts +15 -0
  772. package/src/editor.ts +5 -0
  773. package/src/engine/registry.ts +1 -7
  774. package/src/engine/useFormData.ts +1 -1
  775. package/src/file.ts +3 -0
  776. package/src/index.ts +3 -3
  777. package/src/input.ts +10 -0
  778. package/src/lib/storybook.ts +67 -0
  779. package/src/option-select.ts +9 -0
  780. package/src/pages/IndexPage.stories.ts +2 -1
  781. package/src/pages/ShowPage.stories.ts +2 -1
  782. package/src/pages/ShowPage.vue +1 -1
  783. package/src/picker.ts +11 -0
  784. package/src/stores/dependencyListBuilderStore.ts +1 -1
  785. package/src/stores/elementListBuilderStore.ts +1 -1
  786. package/src/stores/formBuilderStore.ts +1 -1
  787. package/src/stores/formDataStore.ts +1 -1
  788. package/src/stores/gridBuilderStore.ts +1 -1
  789. package/src/stores/objectBuilderStore.ts +1 -1
  790. package/src/stores/presetBuilderStore.ts +1 -1
  791. package/src/stores/quizBuilderStore.ts +1 -1
  792. package/src/stores/reactiveCanvasBuilderStore.ts +1 -1
  793. package/src/styles/themes/dark.css +1 -1
  794. package/src/styles/themes/default.css +1 -1
  795. package/src/styles/themes/kiosk.css +1 -1
  796. package/dist/components/compositions/elements/components/IconBadge.vue.js +0 -5
  797. package/dist/components/compositions/elements/components/IconBadge.vue.js.map +0 -1
  798. package/dist/components/compositions/elements/components/IconBadge.vue2.js +0 -77
  799. package/dist/components/compositions/elements/components/IconBadge.vue2.js.map +0 -1
  800. package/dist/components/compositions/elements/components/IconPickerInline.vue.js +0 -5
  801. package/dist/components/compositions/elements/components/IconPickerInline.vue.js.map +0 -1
  802. package/dist/components/compositions/elements/components/IconPickerInline.vue2.js.map +0 -1
  803. package/dist/definitions/elements/ComponentsElement.d.ts +0 -187
  804. package/dist/definitions/elements/ComponentsElement.d.ts.map +0 -1
  805. package/dist/definitions/elements/ComponentsElement.js +0 -111
  806. package/dist/definitions/elements/ComponentsElement.js.map +0 -1
  807. package/dist/styles/index.css +0 -1
  808. package/src/components/compositions/elements/components/IconBadge.stories.ts +0 -96
  809. package/src/components/compositions/elements/components/IconBadge.test.ts +0 -70
  810. package/src/components/compositions/elements/components/IconBadge.vue +0 -121
  811. package/src/definitions/elements/ComponentsElement.ts +0 -149
@@ -1,5 +1,170 @@
1
- import f from "./AsyncSelectOption.vue2.js";
1
+ import { defineComponent as A, useModel as q, watch as w, computed as c, openBlock as r, createBlock as f, unref as l, withCtx as o, createVNode as d, normalizeClass as C, createCommentVNode as S, createElementBlock as L, toDisplayString as g, createTextVNode as O, Fragment as N, renderList as U, mergeModels as R } from "vue";
2
+ import { Search as z, Loader2 as D } from "lucide-vue-next";
3
+ import E from "../../../ui/combobox/Combobox.vue.js";
4
+ import F from "../../../ui/combobox/ComboboxAnchor.vue.js";
5
+ import I from "../../../ui/combobox/ComboboxContent.vue.js";
6
+ import j from "../../../ui/combobox/ComboboxEmpty.vue.js";
7
+ import "@vueuse/core";
8
+ import "reka-ui";
9
+ import "clsx";
10
+ import "tailwind-merge";
11
+ import G from "../../../ui/combobox/ComboboxInput.vue.js";
12
+ import H from "../../../ui/combobox/ComboboxItem.vue.js";
13
+ import J from "../../../ui/combobox/ComboboxItemIndicator.vue.js";
14
+ import K from "../../../ui/field-frame/FieldFrame.vue.js";
15
+ import { useAsyncSearch as P } from "../../../../composables/useAsyncSearch.js";
16
+ const Q = {
17
+ key: 0,
18
+ class: "px-2 py-2 text-sm text-muted-foreground",
19
+ "data-testid": "async-select-loading-text"
20
+ }, se = /* @__PURE__ */ A({
21
+ __name: "AsyncSelectOption",
22
+ props: /* @__PURE__ */ R({
23
+ modelValue: {},
24
+ id: {},
25
+ name: {},
26
+ label: {},
27
+ hideLabel: { type: Boolean },
28
+ placeholder: {},
29
+ required: { type: Boolean },
30
+ readonly: { type: Boolean },
31
+ disabled: { type: Boolean },
32
+ helpText: {},
33
+ errors: { default: () => [] },
34
+ onSearch: {},
35
+ initialOptions: { default: () => [] },
36
+ minSearchLength: { default: 1 },
37
+ debounceMs: { default: 250 },
38
+ loadingText: { default: "Loading..." },
39
+ emptyText: { default: "No results" }
40
+ }, {
41
+ modelValue: {},
42
+ modelModifiers: {}
43
+ }),
44
+ emits: ["update:modelValue"],
45
+ setup(a, { expose: k }) {
46
+ const t = a, u = q(a, "modelValue");
47
+ function p(e) {
48
+ return typeof e == "string" ? { label: e, value: e, disabled: !1 } : {
49
+ label: e.label,
50
+ value: String(e.value),
51
+ disabled: !!e.disabled
52
+ };
53
+ }
54
+ const { query: v, results: h, isLoading: y, trigger: x } = P({
55
+ onSearch: t.onSearch,
56
+ initialOptions: t.initialOptions,
57
+ minSearchLength: t.minSearchLength,
58
+ debounceMs: t.debounceMs
59
+ });
60
+ w(
61
+ () => t.initialOptions,
62
+ (e) => {
63
+ v.value.length < t.minSearchLength && (h.value = e ? [...e] : []);
64
+ }
65
+ );
66
+ const b = c(
67
+ () => (h.value ?? []).map(p)
68
+ ), V = c(() => {
69
+ const e = (t.initialOptions ?? []).map(p), i = b.value, n = /* @__PURE__ */ new Map();
70
+ for (const s of e)
71
+ n.set(s.value, s);
72
+ for (const s of i)
73
+ n.set(s.value, s);
74
+ return Array.from(n.values());
75
+ }), m = c(() => {
76
+ if (!(u.value === void 0 || u.value === null))
77
+ return String(u.value);
78
+ }), B = c(() => {
79
+ if (m.value === void 0)
80
+ return "";
81
+ const e = V.value.find((i) => i.value === m.value);
82
+ return e ? e.label : m.value;
83
+ });
84
+ function $(e) {
85
+ const i = e.target.value;
86
+ x(i);
87
+ }
88
+ function M(e) {
89
+ if (Array.isArray(e)) {
90
+ u.value = e[0] === void 0 ? null : e[0];
91
+ return;
92
+ }
93
+ u.value = e === void 0 ? null : e;
94
+ }
95
+ function T(e) {
96
+ e && v.value === "" && (h.value = t.initialOptions ? [...t.initialOptions] : []);
97
+ }
98
+ return k({ trigger: x }), (e, i) => (r(), f(l(K), {
99
+ label: a.label,
100
+ required: a.required,
101
+ "hide-label": a.hideLabel,
102
+ for: a.id,
103
+ "help-text": a.helpText,
104
+ errors: a.errors
105
+ }, {
106
+ default: o(() => [
107
+ d(l(E), {
108
+ "model-value": m.value,
109
+ disabled: a.disabled || a.readonly,
110
+ "ignore-filter": "",
111
+ "onUpdate:modelValue": M,
112
+ "onUpdate:open": T
113
+ }, {
114
+ default: o(() => [
115
+ d(l(F), {
116
+ "data-element-name": a.name ?? void 0,
117
+ "data-testid": "async-select-anchor",
118
+ class: C(a.errors.length ? "border-destructive ring-destructive" : "")
119
+ }, {
120
+ default: o(() => [
121
+ d(l(z), { class: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
122
+ d(l(G), {
123
+ id: a.id,
124
+ "model-value": l(v),
125
+ placeholder: B.value || (a.placeholder ?? "Search…"),
126
+ "data-testid": "async-select-input",
127
+ onInput: $
128
+ }, null, 8, ["id", "model-value", "placeholder"]),
129
+ l(y) ? (r(), f(l(D), {
130
+ key: 0,
131
+ "data-testid": "async-select-loader",
132
+ class: "ml-2 h-4 w-4 shrink-0 animate-spin text-muted-foreground"
133
+ })) : S("", !0)
134
+ ]),
135
+ _: 1
136
+ }, 8, ["data-element-name", "class"]),
137
+ d(l(I), null, {
138
+ default: o(() => [
139
+ l(y) ? (r(), L("div", Q, g(a.loadingText), 1)) : b.value.length === 0 ? (r(), f(l(j), { key: 1 }, {
140
+ default: o(() => [
141
+ O(g(a.emptyText), 1)
142
+ ]),
143
+ _: 1
144
+ })) : S("", !0),
145
+ (r(!0), L(N, null, U(b.value, (n) => (r(), f(l(H), {
146
+ key: n.value,
147
+ value: n.value,
148
+ disabled: n.disabled
149
+ }, {
150
+ default: o(() => [
151
+ d(l(J)),
152
+ O(" " + g(n.label), 1)
153
+ ]),
154
+ _: 2
155
+ }, 1032, ["value", "disabled"]))), 128))
156
+ ]),
157
+ _: 1
158
+ })
159
+ ]),
160
+ _: 1
161
+ }, 8, ["model-value", "disabled"])
162
+ ]),
163
+ _: 1
164
+ }, 8, ["label", "required", "hide-label", "for", "help-text", "errors"]));
165
+ }
166
+ });
2
167
  export {
3
- f as default
168
+ se as default
4
169
  };
5
170
  //# sourceMappingURL=AsyncSelectOption.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSelectOption.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"AsyncSelectOption.vue.js","sources":["../../../../../src/components/compositions/elements/option-select/AsyncSelectOption.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven async select composition. Combines the shadcn Combobox\n * primitive with a Promise-returning `onSearch` callback the consumer\n * supplies — the composition itself makes no HTTP calls.\n *\n * <AsyncSelectOption\n * v-model=\"userId\"\n * label=\"User\"\n * :on-search=\"(q) => fetch(`/users?q=${q}`).then(r => r.json())\"\n * :initial-options=\"[]\"\n * :min-search-length=\"1\"\n * />\n */\nimport { computed, watch } from \"vue\"\nimport { Loader2, Search } from \"lucide-vue-next\"\nimport type { SelectOptionLike } from \"@/definitions/shared/select-options\"\nimport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemIndicator,\n} from \"@/components/ui/combobox\"\nimport { FieldFrame } from \"@/components/ui/field-frame\"\nimport { useAsyncSearch } from \"@/composables/useAsyncSearch\"\n\nexport interface AsyncSelectOptionProps {\n modelValue?: string | number | null\n id?: string\n name?: string\n label?: string\n hideLabel?: boolean\n placeholder?: string\n required?: boolean\n readonly?: boolean\n disabled?: boolean\n helpText?: string\n errors?: string[]\n /** Called when the user types — must return a Promise of options. */\n onSearch?: (query: string) => Promise<SelectOptionLike[]>\n /** Options shown before any search runs. */\n initialOptions?: SelectOptionLike[]\n /** Minimum length before `onSearch` is invoked. Default 1. */\n minSearchLength?: number\n /** Debounce delay before `onSearch` fires. Default 250. */\n debounceMs?: number\n loadingText?: string\n emptyText?: string\n}\n\nconst props = withDefaults(defineProps<AsyncSelectOptionProps>(), {\n errors: () => [],\n initialOptions: () => [],\n minSearchLength: 1,\n debounceMs: 250,\n loadingText: \"Loading...\",\n emptyText: \"No results\",\n})\n\nconst model = defineModel<string | number | null>(\"modelValue\")\n\ninterface NormalisedOption {\n label: string\n value: string\n disabled: boolean\n}\n\nfunction normaliseOption(opt: SelectOptionLike): NormalisedOption {\n if (typeof opt === \"string\") {\n return { label: opt, value: opt, disabled: false }\n }\n return {\n label: opt.label,\n value: String(opt.value),\n disabled: Boolean(opt.disabled),\n }\n}\n\nconst { query, results, isLoading, trigger } = useAsyncSearch({\n onSearch: props.onSearch,\n initialOptions: props.initialOptions,\n minSearchLength: props.minSearchLength,\n debounceMs: props.debounceMs,\n})\n\n// Keep results in sync when initialOptions change and there's no query.\nwatch(\n () => props.initialOptions,\n (next) => {\n if (query.value.length < props.minSearchLength) {\n results.value = next ? [...next] : []\n }\n },\n)\n\nconst normalisedResults = computed<NormalisedOption[]>(() =>\n (results.value ?? []).map(normaliseOption),\n)\n\nconst normalisedAll = computed<NormalisedOption[]>(() => {\n const initial = (props.initialOptions ?? []).map(normaliseOption)\n const fromResults = normalisedResults.value\n const merged = new Map<string, NormalisedOption>()\n for (const o of initial) {\n merged.set(o.value, o)\n }\n for (const o of fromResults) {\n merged.set(o.value, o)\n }\n return Array.from(merged.values())\n})\n\nconst currentValue = computed<string | undefined>(() => {\n if (model.value === undefined || model.value === null) {\n return undefined\n }\n return String(model.value)\n})\n\nconst selectedLabel = computed<string>(() => {\n if (currentValue.value === undefined) {\n return \"\"\n }\n const match = normalisedAll.value.find((o) => o.value === currentValue.value)\n return match ? match.label : currentValue.value\n})\n\nfunction onInput(event: Event): void {\n const next = (event.target as HTMLInputElement).value\n trigger(next)\n}\n\nfunction onUpdate(next: unknown): void {\n if (Array.isArray(next)) {\n model.value = next[0] === undefined ? null : (next[0] as string | number)\n return\n }\n model.value = next === undefined ? null : (next as string | number)\n}\n\nfunction onOpenChange(open: boolean): void {\n if (open && query.value === \"\") {\n // Surface initial options on first open.\n results.value = props.initialOptions ? [...props.initialOptions] : []\n }\n}\n\ndefineExpose({ trigger })\n</script>\n\n<template>\n <FieldFrame\n :label=\"label\"\n :required=\"required\"\n :hide-label=\"hideLabel\"\n :for=\"id\"\n :help-text=\"helpText\"\n :errors=\"errors\"\n >\n <Combobox\n :model-value=\"currentValue\"\n :disabled=\"disabled || readonly\"\n ignore-filter\n @update:model-value=\"onUpdate\"\n @update:open=\"onOpenChange\"\n >\n <ComboboxAnchor\n :data-element-name=\"name ?? undefined\"\n data-testid=\"async-select-anchor\"\n :class=\"errors.length ? 'border-destructive ring-destructive' : ''\"\n >\n <Search class=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <ComboboxInput\n :id=\"id\"\n :model-value=\"query\"\n :placeholder=\"selectedLabel || (placeholder ?? 'Search…')\"\n data-testid=\"async-select-input\"\n @input=\"onInput\"\n />\n <Loader2\n v-if=\"isLoading\"\n data-testid=\"async-select-loader\"\n class=\"ml-2 h-4 w-4 shrink-0 animate-spin text-muted-foreground\"\n />\n </ComboboxAnchor>\n <ComboboxContent>\n <div\n v-if=\"isLoading\"\n class=\"px-2 py-2 text-sm text-muted-foreground\"\n data-testid=\"async-select-loading-text\"\n >\n {{ loadingText }}\n </div>\n <ComboboxEmpty v-else-if=\"normalisedResults.length === 0\">\n {{ emptyText }}\n </ComboboxEmpty>\n <ComboboxItem\n v-for=\"opt in normalisedResults\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n :disabled=\"opt.disabled\"\n >\n <ComboboxItemIndicator />\n {{ opt.label }}\n </ComboboxItem>\n </ComboboxContent>\n </Combobox>\n </FieldFrame>\n</template>\n"],"names":["props","__props","model","_useModel","normaliseOption","opt","query","results","isLoading","trigger","useAsyncSearch","watch","next","normalisedResults","computed","normalisedAll","initial","fromResults","merged","o","currentValue","selectedLabel","match","onInput","event","onUpdate","onOpenChange","open","__expose","_createBlock","_unref","FieldFrame","_createVNode","Combobox","ComboboxAnchor","_normalizeClass","Search","ComboboxInput","Loader2","ComboboxContent","_createElementBlock","_hoisted_1","_toDisplayString","ComboboxEmpty","_Fragment","_renderList","ComboboxItem","ComboboxItemIndicator"],"mappings":"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"}
@@ -1,170 +1,5 @@
1
- import { defineComponent as A, useModel as q, watch as w, computed as c, openBlock as r, createBlock as f, unref as l, withCtx as o, createVNode as d, normalizeClass as C, createCommentVNode as S, createElementBlock as L, toDisplayString as g, createTextVNode as O, Fragment as N, renderList as U, mergeModels as R } from "vue";
2
- import { Search as z, Loader2 as D } from "lucide-vue-next";
3
- import E from "../../../ui/combobox/Combobox.vue.js";
4
- import F from "../../../ui/combobox/ComboboxAnchor.vue.js";
5
- import I from "../../../ui/combobox/ComboboxContent.vue.js";
6
- import j from "../../../ui/combobox/ComboboxEmpty.vue.js";
7
- import "@vueuse/core";
8
- import "reka-ui";
9
- import "clsx";
10
- import "tailwind-merge";
11
- import G from "../../../ui/combobox/ComboboxInput.vue.js";
12
- import H from "../../../ui/combobox/ComboboxItem.vue.js";
13
- import J from "../../../ui/combobox/ComboboxItemIndicator.vue.js";
14
- import K from "../../../ui/field-frame/FieldFrame.vue.js";
15
- import { useAsyncSearch as P } from "../../../../composables/useAsyncSearch.js";
16
- const Q = {
17
- key: 0,
18
- class: "px-2 py-2 text-sm text-muted-foreground",
19
- "data-testid": "async-select-loading-text"
20
- }, se = /* @__PURE__ */ A({
21
- __name: "AsyncSelectOption",
22
- props: /* @__PURE__ */ R({
23
- modelValue: {},
24
- id: {},
25
- name: {},
26
- label: {},
27
- hideLabel: { type: Boolean },
28
- placeholder: {},
29
- required: { type: Boolean },
30
- readonly: { type: Boolean },
31
- disabled: { type: Boolean },
32
- helpText: {},
33
- errors: { default: () => [] },
34
- onSearch: {},
35
- initialOptions: { default: () => [] },
36
- minSearchLength: { default: 1 },
37
- debounceMs: { default: 250 },
38
- loadingText: { default: "Loading..." },
39
- emptyText: { default: "No results" }
40
- }, {
41
- modelValue: {},
42
- modelModifiers: {}
43
- }),
44
- emits: ["update:modelValue"],
45
- setup(a, { expose: k }) {
46
- const t = a, u = q(a, "modelValue");
47
- function p(e) {
48
- return typeof e == "string" ? { label: e, value: e, disabled: !1 } : {
49
- label: e.label,
50
- value: String(e.value),
51
- disabled: !!e.disabled
52
- };
53
- }
54
- const { query: v, results: h, isLoading: y, trigger: x } = P({
55
- onSearch: t.onSearch,
56
- initialOptions: t.initialOptions,
57
- minSearchLength: t.minSearchLength,
58
- debounceMs: t.debounceMs
59
- });
60
- w(
61
- () => t.initialOptions,
62
- (e) => {
63
- v.value.length < t.minSearchLength && (h.value = e ? [...e] : []);
64
- }
65
- );
66
- const b = c(
67
- () => (h.value ?? []).map(p)
68
- ), V = c(() => {
69
- const e = (t.initialOptions ?? []).map(p), i = b.value, n = /* @__PURE__ */ new Map();
70
- for (const s of e)
71
- n.set(s.value, s);
72
- for (const s of i)
73
- n.set(s.value, s);
74
- return Array.from(n.values());
75
- }), m = c(() => {
76
- if (!(u.value === void 0 || u.value === null))
77
- return String(u.value);
78
- }), B = c(() => {
79
- if (m.value === void 0)
80
- return "";
81
- const e = V.value.find((i) => i.value === m.value);
82
- return e ? e.label : m.value;
83
- });
84
- function $(e) {
85
- const i = e.target.value;
86
- x(i);
87
- }
88
- function M(e) {
89
- if (Array.isArray(e)) {
90
- u.value = e[0] === void 0 ? null : e[0];
91
- return;
92
- }
93
- u.value = e === void 0 ? null : e;
94
- }
95
- function T(e) {
96
- e && v.value === "" && (h.value = t.initialOptions ? [...t.initialOptions] : []);
97
- }
98
- return k({ trigger: x }), (e, i) => (r(), f(l(K), {
99
- label: a.label,
100
- required: a.required,
101
- "hide-label": a.hideLabel,
102
- for: a.id,
103
- "help-text": a.helpText,
104
- errors: a.errors
105
- }, {
106
- default: o(() => [
107
- d(l(E), {
108
- "model-value": m.value,
109
- disabled: a.disabled || a.readonly,
110
- "ignore-filter": "",
111
- "onUpdate:modelValue": M,
112
- "onUpdate:open": T
113
- }, {
114
- default: o(() => [
115
- d(l(F), {
116
- "data-element-name": a.name ?? void 0,
117
- "data-testid": "async-select-anchor",
118
- class: C(a.errors.length ? "border-destructive ring-destructive" : "")
119
- }, {
120
- default: o(() => [
121
- d(l(z), { class: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
122
- d(l(G), {
123
- id: a.id,
124
- "model-value": l(v),
125
- placeholder: B.value || (a.placeholder ?? "Search…"),
126
- "data-testid": "async-select-input",
127
- onInput: $
128
- }, null, 8, ["id", "model-value", "placeholder"]),
129
- l(y) ? (r(), f(l(D), {
130
- key: 0,
131
- "data-testid": "async-select-loader",
132
- class: "ml-2 h-4 w-4 shrink-0 animate-spin text-muted-foreground"
133
- })) : S("", !0)
134
- ]),
135
- _: 1
136
- }, 8, ["data-element-name", "class"]),
137
- d(l(I), null, {
138
- default: o(() => [
139
- l(y) ? (r(), L("div", Q, g(a.loadingText), 1)) : b.value.length === 0 ? (r(), f(l(j), { key: 1 }, {
140
- default: o(() => [
141
- O(g(a.emptyText), 1)
142
- ]),
143
- _: 1
144
- })) : S("", !0),
145
- (r(!0), L(N, null, U(b.value, (n) => (r(), f(l(H), {
146
- key: n.value,
147
- value: n.value,
148
- disabled: n.disabled
149
- }, {
150
- default: o(() => [
151
- d(l(J)),
152
- O(" " + g(n.label), 1)
153
- ]),
154
- _: 2
155
- }, 1032, ["value", "disabled"]))), 128))
156
- ]),
157
- _: 1
158
- })
159
- ]),
160
- _: 1
161
- }, 8, ["model-value", "disabled"])
162
- ]),
163
- _: 1
164
- }, 8, ["label", "required", "hide-label", "for", "help-text", "errors"]));
165
- }
166
- });
1
+ import f from "./AsyncSelectOption.vue.js";
167
2
  export {
168
- se as default
3
+ f as default
169
4
  };
170
5
  //# sourceMappingURL=AsyncSelectOption.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncSelectOption.vue2.js","sources":["../../../../../src/components/compositions/elements/option-select/AsyncSelectOption.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven async select composition. Combines the shadcn Combobox\n * primitive with a Promise-returning `onSearch` callback the consumer\n * supplies — the composition itself makes no HTTP calls.\n *\n * <AsyncSelectOption\n * v-model=\"userId\"\n * label=\"User\"\n * :on-search=\"(q) => fetch(`/users?q=${q}`).then(r => r.json())\"\n * :initial-options=\"[]\"\n * :min-search-length=\"1\"\n * />\n */\nimport { computed, watch } from \"vue\"\nimport { Loader2, Search } from \"lucide-vue-next\"\nimport type { SelectOptionLike } from \"@/definitions/shared/select-options\"\nimport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemIndicator,\n} from \"@/components/ui/combobox\"\nimport { FieldFrame } from \"@/components/ui/field-frame\"\nimport { useAsyncSearch } from \"@/composables/useAsyncSearch\"\n\nexport interface AsyncSelectOptionProps {\n modelValue?: string | number | null\n id?: string\n name?: string\n label?: string\n hideLabel?: boolean\n placeholder?: string\n required?: boolean\n readonly?: boolean\n disabled?: boolean\n helpText?: string\n errors?: string[]\n /** Called when the user types — must return a Promise of options. */\n onSearch?: (query: string) => Promise<SelectOptionLike[]>\n /** Options shown before any search runs. */\n initialOptions?: SelectOptionLike[]\n /** Minimum length before `onSearch` is invoked. Default 1. */\n minSearchLength?: number\n /** Debounce delay before `onSearch` fires. Default 250. */\n debounceMs?: number\n loadingText?: string\n emptyText?: string\n}\n\nconst props = withDefaults(defineProps<AsyncSelectOptionProps>(), {\n errors: () => [],\n initialOptions: () => [],\n minSearchLength: 1,\n debounceMs: 250,\n loadingText: \"Loading...\",\n emptyText: \"No results\",\n})\n\nconst model = defineModel<string | number | null>(\"modelValue\")\n\ninterface NormalisedOption {\n label: string\n value: string\n disabled: boolean\n}\n\nfunction normaliseOption(opt: SelectOptionLike): NormalisedOption {\n if (typeof opt === \"string\") {\n return { label: opt, value: opt, disabled: false }\n }\n return {\n label: opt.label,\n value: String(opt.value),\n disabled: Boolean(opt.disabled),\n }\n}\n\nconst { query, results, isLoading, trigger } = useAsyncSearch({\n onSearch: props.onSearch,\n initialOptions: props.initialOptions,\n minSearchLength: props.minSearchLength,\n debounceMs: props.debounceMs,\n})\n\n// Keep results in sync when initialOptions change and there's no query.\nwatch(\n () => props.initialOptions,\n (next) => {\n if (query.value.length < props.minSearchLength) {\n results.value = next ? [...next] : []\n }\n },\n)\n\nconst normalisedResults = computed<NormalisedOption[]>(() =>\n (results.value ?? []).map(normaliseOption),\n)\n\nconst normalisedAll = computed<NormalisedOption[]>(() => {\n const initial = (props.initialOptions ?? []).map(normaliseOption)\n const fromResults = normalisedResults.value\n const merged = new Map<string, NormalisedOption>()\n for (const o of initial) {\n merged.set(o.value, o)\n }\n for (const o of fromResults) {\n merged.set(o.value, o)\n }\n return Array.from(merged.values())\n})\n\nconst currentValue = computed<string | undefined>(() => {\n if (model.value === undefined || model.value === null) {\n return undefined\n }\n return String(model.value)\n})\n\nconst selectedLabel = computed<string>(() => {\n if (currentValue.value === undefined) {\n return \"\"\n }\n const match = normalisedAll.value.find((o) => o.value === currentValue.value)\n return match ? match.label : currentValue.value\n})\n\nfunction onInput(event: Event): void {\n const next = (event.target as HTMLInputElement).value\n trigger(next)\n}\n\nfunction onUpdate(next: unknown): void {\n if (Array.isArray(next)) {\n model.value = next[0] === undefined ? null : (next[0] as string | number)\n return\n }\n model.value = next === undefined ? null : (next as string | number)\n}\n\nfunction onOpenChange(open: boolean): void {\n if (open && query.value === \"\") {\n // Surface initial options on first open.\n results.value = props.initialOptions ? [...props.initialOptions] : []\n }\n}\n\ndefineExpose({ trigger })\n</script>\n\n<template>\n <FieldFrame\n :label=\"label\"\n :required=\"required\"\n :hide-label=\"hideLabel\"\n :for=\"id\"\n :help-text=\"helpText\"\n :errors=\"errors\"\n >\n <Combobox\n :model-value=\"currentValue\"\n :disabled=\"disabled || readonly\"\n ignore-filter\n @update:model-value=\"onUpdate\"\n @update:open=\"onOpenChange\"\n >\n <ComboboxAnchor\n :data-element-name=\"name ?? undefined\"\n data-testid=\"async-select-anchor\"\n :class=\"errors.length ? 'border-destructive ring-destructive' : ''\"\n >\n <Search class=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <ComboboxInput\n :id=\"id\"\n :model-value=\"query\"\n :placeholder=\"selectedLabel || (placeholder ?? 'Search…')\"\n data-testid=\"async-select-input\"\n @input=\"onInput\"\n />\n <Loader2\n v-if=\"isLoading\"\n data-testid=\"async-select-loader\"\n class=\"ml-2 h-4 w-4 shrink-0 animate-spin text-muted-foreground\"\n />\n </ComboboxAnchor>\n <ComboboxContent>\n <div\n v-if=\"isLoading\"\n class=\"px-2 py-2 text-sm text-muted-foreground\"\n data-testid=\"async-select-loading-text\"\n >\n {{ loadingText }}\n </div>\n <ComboboxEmpty v-else-if=\"normalisedResults.length === 0\">\n {{ emptyText }}\n </ComboboxEmpty>\n <ComboboxItem\n v-for=\"opt in normalisedResults\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n :disabled=\"opt.disabled\"\n >\n <ComboboxItemIndicator />\n {{ opt.label }}\n </ComboboxItem>\n </ComboboxContent>\n </Combobox>\n </FieldFrame>\n</template>\n"],"names":["props","__props","model","_useModel","normaliseOption","opt","query","results","isLoading","trigger","useAsyncSearch","watch","next","normalisedResults","computed","normalisedAll","initial","fromResults","merged","o","currentValue","selectedLabel","match","onInput","event","onUpdate","onOpenChange","open","__expose","_createBlock","_unref","FieldFrame","_createVNode","Combobox","ComboboxAnchor","_normalizeClass","Search","ComboboxInput","Loader2","ComboboxContent","_createElementBlock","_hoisted_1","_toDisplayString","ComboboxEmpty","_Fragment","_renderList","ComboboxItem","ComboboxItemIndicator"],"mappings":"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"}
1
+ {"version":3,"file":"AsyncSelectOption.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,31 @@
1
+ import { SelectOptionLike } from '../../../../definitions/shared/select-options';
2
+ export interface AutoCompleteOptionProps {
3
+ modelValue?: string | number | null;
4
+ options?: SelectOptionLike[];
5
+ id?: string;
6
+ name?: string;
7
+ label?: string;
8
+ hideLabel?: boolean;
9
+ placeholder?: string;
10
+ required?: boolean;
11
+ readonly?: boolean;
12
+ disabled?: boolean;
13
+ helpText?: string;
14
+ errors?: string[];
15
+ minSearchLength?: number;
16
+ }
17
+ type __VLS_Props = AutoCompleteOptionProps;
18
+ type __VLS_PublicProps = {
19
+ "modelValue"?: string | number | null;
20
+ } & __VLS_Props;
21
+ declare const _default: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
22
+ "update:modelValue": (value: string | number | null) => any;
23
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
24
+ "onUpdate:modelValue"?: ((value: string | number | null) => any) | undefined;
25
+ }>, {
26
+ minSearchLength: number;
27
+ options: SelectOptionLike[];
28
+ errors: string[];
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ export default _default;
31
+ //# sourceMappingURL=AutoCompleteOption.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AutoCompleteOption.vue.d.ts","sourceRoot":"","sources":["../../../../../src/components/compositions/elements/option-select/AutoCompleteOption.vue"],"names":[],"mappings":"AAiJA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAA;AAY3E,MAAM,WAAW,uBAAuB;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACnC,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,KAAK,WAAW,GAAG,uBAAuB,CAAC;AAkE3C,KAAK,iBAAiB,GAAG;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CACrC,GAAG,WAAW,CAAC;;;;;;qBAvEI,MAAM;aAXd,gBAAgB,EAAE;YAUnB,MAAM,EAAE;;AAoPnB,wBASG"}
@@ -1,5 +1,124 @@
1
- import f from "./AutoCompleteOption.vue2.js";
1
+ import { defineComponent as g, useModel as V, computed as m, ref as B, openBlock as s, createBlock as c, unref as a, withCtx as i, createVNode as r, normalizeClass as $, createTextVNode as v, createElementBlock as L, Fragment as S, renderList as q, toDisplayString as C, mergeModels as k } from "vue";
2
+ import { Search as w } from "lucide-vue-next";
3
+ import x from "../../../ui/combobox/Combobox.vue.js";
4
+ import A from "../../../ui/combobox/ComboboxAnchor.vue.js";
5
+ import M from "../../../ui/combobox/ComboboxContent.vue.js";
6
+ import N from "../../../ui/combobox/ComboboxEmpty.vue.js";
7
+ import "@vueuse/core";
8
+ import "reka-ui";
9
+ import "clsx";
10
+ import "tailwind-merge";
11
+ import T from "../../../ui/combobox/ComboboxInput.vue.js";
12
+ import U from "../../../ui/combobox/ComboboxItem.vue.js";
13
+ import O from "../../../ui/combobox/ComboboxItemIndicator.vue.js";
14
+ import z from "../../../ui/field-frame/FieldFrame.vue.js";
15
+ const Y = /* @__PURE__ */ g({
16
+ __name: "AutoCompleteOption",
17
+ props: /* @__PURE__ */ k({
18
+ modelValue: {},
19
+ options: { default: () => [] },
20
+ id: {},
21
+ name: {},
22
+ label: {},
23
+ hideLabel: { type: Boolean },
24
+ placeholder: {},
25
+ required: { type: Boolean },
26
+ readonly: { type: Boolean },
27
+ disabled: { type: Boolean },
28
+ helpText: {},
29
+ errors: { default: () => [] },
30
+ minSearchLength: { default: 0 }
31
+ }, {
32
+ modelValue: {},
33
+ modelModifiers: {}
34
+ }),
35
+ emits: ["update:modelValue"],
36
+ setup(l) {
37
+ const f = l, d = V(l, "modelValue");
38
+ function b(e) {
39
+ return typeof e == "string" ? { label: e, value: e, disabled: !1 } : {
40
+ label: e.label,
41
+ value: String(e.value),
42
+ disabled: !!e.disabled
43
+ };
44
+ }
45
+ const n = m(
46
+ () => (f.options ?? []).map(b)
47
+ ), u = B(""), h = m(() => {
48
+ const e = u.value.trim().toLowerCase();
49
+ return e.length < f.minSearchLength || e === "" ? n.value : n.value.filter((t) => t.label.toLowerCase().includes(e));
50
+ }), p = m(() => {
51
+ if (!(d.value === void 0 || d.value === null))
52
+ return String(d.value);
53
+ });
54
+ function y(e) {
55
+ if (Array.isArray(e)) {
56
+ d.value = e[0] === void 0 ? null : e[0];
57
+ return;
58
+ }
59
+ d.value = e === void 0 ? null : e;
60
+ }
61
+ return (e, t) => (s(), c(a(z), {
62
+ label: l.label,
63
+ required: l.required,
64
+ "hide-label": l.hideLabel,
65
+ for: l.id,
66
+ "help-text": l.helpText,
67
+ errors: l.errors
68
+ }, {
69
+ default: i(() => [
70
+ r(a(x), {
71
+ "model-value": p.value,
72
+ disabled: l.disabled || l.readonly,
73
+ "onUpdate:modelValue": y
74
+ }, {
75
+ default: i(() => [
76
+ r(a(A), {
77
+ "data-element-name": l.name ?? void 0,
78
+ class: $(l.errors.length ? "border-destructive ring-destructive" : "")
79
+ }, {
80
+ default: i(() => [
81
+ r(a(w), { class: "mr-2 h-4 w-4 shrink-0 opacity-50" }),
82
+ r(a(T), {
83
+ id: l.id,
84
+ modelValue: u.value,
85
+ "onUpdate:modelValue": t[0] || (t[0] = (o) => u.value = o),
86
+ placeholder: l.placeholder ?? "Search…"
87
+ }, null, 8, ["id", "modelValue", "placeholder"])
88
+ ]),
89
+ _: 1
90
+ }, 8, ["data-element-name", "class"]),
91
+ r(a(M), null, {
92
+ default: i(() => [
93
+ r(a(N), null, {
94
+ default: i(() => [...t[1] || (t[1] = [
95
+ v("No matches.", -1)
96
+ ])]),
97
+ _: 1
98
+ }),
99
+ (s(!0), L(S, null, q(h.value, (o) => (s(), c(a(U), {
100
+ key: o.value,
101
+ value: o.value,
102
+ disabled: o.disabled
103
+ }, {
104
+ default: i(() => [
105
+ r(a(O)),
106
+ v(" " + C(o.label), 1)
107
+ ]),
108
+ _: 2
109
+ }, 1032, ["value", "disabled"]))), 128))
110
+ ]),
111
+ _: 1
112
+ })
113
+ ]),
114
+ _: 1
115
+ }, 8, ["model-value", "disabled"])
116
+ ]),
117
+ _: 1
118
+ }, 8, ["label", "required", "hide-label", "for", "help-text", "errors"]));
119
+ }
120
+ });
2
121
  export {
3
- f as default
122
+ Y as default
4
123
  };
5
124
  //# sourceMappingURL=AutoCompleteOption.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AutoCompleteOption.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"AutoCompleteOption.vue.js","sources":["../../../../../src/components/compositions/elements/option-select/AutoCompleteOption.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * Props-driven autocomplete composition. Wraps the shadcn Combobox\n * primitive with client-side search filtering.\n *\n * <AutoCompleteOption v-model=\"city\" :options=\"[...]\" label=\"City\" />\n */\nimport { computed, ref } from \"vue\"\nimport { Search } from \"lucide-vue-next\"\nimport type { SelectOptionLike } from \"@/definitions/shared/select-options\"\nimport {\n Combobox,\n ComboboxAnchor,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxInput,\n ComboboxItem,\n ComboboxItemIndicator,\n} from \"@/components/ui/combobox\"\nimport { FieldFrame } from \"@/components/ui/field-frame\"\n\nexport interface AutoCompleteOptionProps {\n modelValue?: string | number | null\n options?: SelectOptionLike[]\n id?: string\n name?: string\n label?: string\n hideLabel?: boolean\n placeholder?: string\n required?: boolean\n readonly?: boolean\n disabled?: boolean\n helpText?: string\n errors?: string[]\n minSearchLength?: number\n}\n\nconst props = withDefaults(defineProps<AutoCompleteOptionProps>(), {\n errors: () => [],\n options: () => [],\n minSearchLength: 0,\n})\n\nconst model = defineModel<string | number | null>(\"modelValue\")\n\ninterface NormalisedOption {\n label: string\n value: string\n disabled: boolean\n}\n\nfunction normaliseOption(opt: SelectOptionLike): NormalisedOption {\n if (typeof opt === \"string\") {\n return { label: opt, value: opt, disabled: false }\n }\n return {\n label: opt.label,\n value: String(opt.value),\n disabled: Boolean(opt.disabled),\n }\n}\n\nconst normalised = computed<NormalisedOption[]>(() =>\n (props.options ?? []).map(normaliseOption),\n)\n\nconst query = ref(\"\")\n\nconst filtered = computed<NormalisedOption[]>(() => {\n const q = query.value.trim().toLowerCase()\n if (q.length < props.minSearchLength) {\n return normalised.value\n }\n if (q === \"\") {\n return normalised.value\n }\n return normalised.value.filter((o) => o.label.toLowerCase().includes(q))\n})\n\nconst currentValue = computed<string | undefined>(() => {\n if (model.value === undefined || model.value === null) {\n return undefined\n }\n return String(model.value)\n})\n\nfunction onUpdate(next: unknown): void {\n if (Array.isArray(next)) {\n model.value = next[0] === undefined ? null : (next[0] as string | number)\n return\n }\n model.value = next === undefined ? null : (next as string | number)\n}\n</script>\n\n<template>\n <FieldFrame\n :label=\"label\"\n :required=\"required\"\n :hide-label=\"hideLabel\"\n :for=\"id\"\n :help-text=\"helpText\"\n :errors=\"errors\"\n >\n <Combobox\n :model-value=\"currentValue\"\n :disabled=\"disabled || readonly\"\n @update:model-value=\"onUpdate\"\n >\n <ComboboxAnchor\n :data-element-name=\"name ?? undefined\"\n :class=\"errors.length ? 'border-destructive ring-destructive' : ''\"\n >\n <Search class=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <ComboboxInput\n :id=\"id\"\n v-model=\"query\"\n :placeholder=\"placeholder ?? 'Search…'\"\n />\n </ComboboxAnchor>\n <ComboboxContent>\n <ComboboxEmpty>No matches.</ComboboxEmpty>\n <ComboboxItem\n v-for=\"opt in filtered\"\n :key=\"opt.value\"\n :value=\"opt.value\"\n :disabled=\"opt.disabled\"\n >\n <ComboboxItemIndicator />\n {{ opt.label }}\n </ComboboxItem>\n </ComboboxContent>\n </Combobox>\n </FieldFrame>\n</template>\n"],"names":["props","__props","model","_useModel","normaliseOption","opt","normalised","computed","query","ref","filtered","q","o","currentValue","onUpdate","next","_createBlock","_unref","FieldFrame","_createVNode","Combobox","ComboboxAnchor","_normalizeClass","Search","ComboboxInput","$event","ComboboxContent","ComboboxEmpty","_cache","_createElementBlock","_Fragment","_renderList","ComboboxItem","ComboboxItemIndicator","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,UAAMA,IAAQC,GAMRC,IAAQC,KAAoC,YAAY;AAQ9D,aAASC,EAAgBC,GAAyC;AAChE,aAAI,OAAOA,KAAQ,WACV,EAAE,OAAOA,GAAK,OAAOA,GAAK,UAAU,GAAA,IAEtC;AAAA,QACL,OAAOA,EAAI;AAAA,QACX,OAAO,OAAOA,EAAI,KAAK;AAAA,QACvB,UAAU,EAAQA,EAAI;AAAA,MAAQ;AAAA,IAElC;AAEA,UAAMC,IAAaC;AAAA,MAA6B,OAC7CP,EAAM,WAAW,CAAA,GAAI,IAAII,CAAe;AAAA,IAAA,GAGrCI,IAAQC,EAAI,EAAE,GAEdC,IAAWH,EAA6B,MAAM;AAClD,YAAMI,IAAIH,EAAM,MAAM,KAAA,EAAO,YAAA;AAI7B,aAHIG,EAAE,SAASX,EAAM,mBAGjBW,MAAM,KACDL,EAAW,QAEbA,EAAW,MAAM,OAAO,CAACM,MAAMA,EAAE,MAAM,YAAA,EAAc,SAASD,CAAC,CAAC;AAAA,IACzE,CAAC,GAEKE,IAAeN,EAA6B,MAAM;AACtD,UAAI,EAAAL,EAAM,UAAU,UAAaA,EAAM,UAAU;AAGjD,eAAO,OAAOA,EAAM,KAAK;AAAA,IAC3B,CAAC;AAED,aAASY,EAASC,GAAqB;AACrC,UAAI,MAAM,QAAQA,CAAI,GAAG;AACvB,QAAAb,EAAM,QAAQa,EAAK,CAAC,MAAM,SAAY,OAAQA,EAAK,CAAC;AACpD;AAAA,MACF;AACA,MAAAb,EAAM,QAAQa,MAAS,SAAY,OAAQA;AAAA,IAC7C;2BAIEC,EAqCaC,EAAAC,CAAA,GAAA;AAAA,MApCV,OAAOjB,EAAA;AAAA,MACP,UAAUA,EAAA;AAAA,MACV,cAAYA,EAAA;AAAA,MACZ,KAAKA,EAAA;AAAA,MACL,aAAWA,EAAA;AAAA,MACX,QAAQA,EAAA;AAAA,IAAA;iBAET,MA4BW;AAAA,QA5BXkB,EA4BWF,EAAAG,CAAA,GAAA;AAAA,UA3BR,eAAaP,EAAA;AAAA,UACb,UAAUZ,EAAA,YAAYA,EAAA;AAAA,UACtB,uBAAoBa;AAAA,QAAA;qBAErB,MAUiB;AAAA,YAVjBK,EAUiBF,EAAAI,CAAA,GAAA;AAAA,cATd,qBAAmBpB,EAAA,QAAQ;AAAA,cAC3B,OAAKqB,EAAErB,EAAA,OAAO,SAAM,wCAAA,EAAA;AAAA,YAAA;yBAErB,MAAmD;AAAA,gBAAnDkB,EAAmDF,EAAAM,CAAA,GAAA,EAA3C,OAAM,oCAAkC;AAAA,gBAChDJ,EAIEF,EAAAO,CAAA,GAAA;AAAA,kBAHC,IAAIvB,EAAA;AAAA,8BACIO,EAAA;AAAA,gEAAAA,EAAK,QAAAiB;AAAA,kBACb,aAAaxB,EAAA,eAAW;AAAA,gBAAA;;;;YAG7BkB,EAWkBF,EAAAS,CAAA,GAAA,MAAA;AAAA,yBAVhB,MAA0C;AAAA,gBAA1CP,EAA0CF,EAAAU,CAAA,GAAA,MAAA;AAAA,6BAA3B,MAAW,CAAA,GAAAC,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,sBAAX,eAAW,EAAA;AAAA,kBAAA;;;wBAC1BC,EAQeC,GAAA,MAAAC,EAPCrB,EAAA,OAAQ,CAAfL,YADTW,EAQeC,EAAAe,CAAA,GAAA;AAAA,kBANZ,KAAK3B,EAAI;AAAA,kBACT,OAAOA,EAAI;AAAA,kBACX,UAAUA,EAAI;AAAA,gBAAA;6BAEf,MAAyB;AAAA,oBAAzBc,EAAyBF,EAAAgB,CAAA,CAAA;AAAA,sBAAA,MACzBC,EAAG7B,EAAI,KAAK,GAAA,CAAA;AAAA,kBAAA;;;;;;;;;;;;;;"}