vueless 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/_readme/README.md +5 -75
  2. package/_readme/UNotify.md +1 -1
  3. package/_readme/UTopLoader.md +2 -2
  4. package/_readme/customization.md +347 -0
  5. package/_readme/installation.md +139 -0
  6. package/_readme/storybook-pages/Customisation.mdx +6 -0
  7. package/_readme/storybook-pages/Installation.mdx +7 -0
  8. package/composable.ui/index.js +341 -30
  9. package/library.vue-tailwind-3/index.js +0 -5
  10. package/library.web-types-gen/lib/build.js +35 -9
  11. package/library.web-types-gen/lib/config.js +10 -4
  12. package/package.json +37 -4
  13. package/plugin.vite/index.js +59 -0
  14. package/plugin.vite/services/iconResolver.service.js +291 -0
  15. package/plugin.vite/services/svgLoader.service.js +76 -0
  16. package/plugin.vite/services/tailwindSafelist.service.js +197 -0
  17. package/plugin.vite/services/unpluginComponentsResolver.js +172 -0
  18. package/service.storybook/index.js +53 -80
  19. package/service.tailwind/index.js +112 -0
  20. package/service.ui/index.js +69 -50
  21. package/ui.button/Docs.mdx +16 -0
  22. package/ui.button/composables/attrs.composable.js +41 -0
  23. package/ui.button/configs/default.config.js +164 -0
  24. package/ui.button/constants/index.js +5 -0
  25. package/ui.button/index.stories.js +8 -7
  26. package/ui.button/index.vue +116 -981
  27. package/ui.button-link/Docs.mdx +16 -0
  28. package/ui.button-link/composables/attrs.composable.js +99 -0
  29. package/ui.button-link/configs/default.config.js +80 -0
  30. package/ui.button-link/constants/index.js +5 -0
  31. package/ui.button-link/index.stories.js +56 -19
  32. package/ui.button-link/index.vue +178 -493
  33. package/ui.button-toggle/Docs.mdx +16 -0
  34. package/ui.button-toggle/composables/attrs.composable.js +16 -0
  35. package/ui.button-toggle/configs/default.config.js +12 -0
  36. package/ui.button-toggle/constants/index.js +7 -0
  37. package/{ui.button-group → ui.button-toggle}/index.stories.js +79 -28
  38. package/ui.button-toggle/index.vue +128 -0
  39. package/ui.button-toggle-item/Docs.mdx +16 -0
  40. package/ui.button-toggle-item/composables/attrs.composable.js +53 -0
  41. package/ui.button-toggle-item/configs/default.config.js +58 -0
  42. package/ui.button-toggle-item/constants/index.js +5 -0
  43. package/{ui.button-group-item → ui.button-toggle-item}/index.stories.js +16 -13
  44. package/ui.button-toggle-item/index.vue +147 -0
  45. package/ui.container-accordion/composables/attrs.composable.js +45 -0
  46. package/ui.container-accordion/configs/default.config.js +32 -0
  47. package/ui.container-accordion/constants/index.js +5 -0
  48. package/ui.container-accordion/index.stories.js +3 -2
  49. package/ui.container-accordion/index.vue +71 -143
  50. package/ui.container-card/Docs.mdx +16 -0
  51. package/ui.container-card/composable/attrs.composable.js +56 -0
  52. package/ui.container-card/configs/default.config.js +31 -0
  53. package/ui.container-card/constants/index.js +5 -0
  54. package/ui.container-card/index.stories.js +51 -9
  55. package/ui.container-card/index.vue +108 -169
  56. package/ui.container-divider/Docs.mdx +16 -0
  57. package/ui.container-divider/composables/attrs.composable.js +65 -0
  58. package/ui.container-divider/configs/default.config.js +79 -0
  59. package/ui.container-divider/constants/index.js +5 -0
  60. package/ui.container-divider/index.stories.js +41 -8
  61. package/ui.container-divider/index.vue +126 -189
  62. package/ui.container-group/Docs.mdx +16 -0
  63. package/ui.container-group/composables/attrs.composable.js +44 -0
  64. package/ui.container-group/configs/default.config.js +29 -0
  65. package/ui.container-group/constants/index.js +5 -0
  66. package/ui.container-group/index.stories.js +7 -6
  67. package/ui.container-group/index.vue +76 -142
  68. package/ui.container-groups/Docs.mdx +16 -0
  69. package/ui.container-groups/composables/attrs.composable.js +12 -0
  70. package/ui.container-groups/configs/default.config.js +3 -0
  71. package/ui.container-groups/index.stories.js +4 -3
  72. package/ui.container-groups/index.vue +26 -11
  73. package/ui.container-modal/Docs.mdx +16 -0
  74. package/ui.container-modal/composables/attrs.composable.js +90 -0
  75. package/ui.container-modal/configs/default.config.js +69 -0
  76. package/ui.container-modal/constants/index.js +5 -0
  77. package/ui.container-modal/index.stories.js +8 -7
  78. package/ui.container-modal/index.vue +289 -370
  79. package/ui.container-modal-confirm/Docs.mdx +16 -0
  80. package/ui.container-modal-confirm/composable/attrs.composable.js +19 -0
  81. package/ui.container-modal-confirm/configs/default.config.js +12 -0
  82. package/ui.container-modal-confirm/constants/index.js +5 -0
  83. package/ui.container-modal-confirm/index.stories.js +66 -7
  84. package/ui.container-modal-confirm/index.vue +126 -116
  85. package/ui.container-page/Docs.mdx +16 -0
  86. package/ui.container-page/composables/attrs.composable.js +96 -0
  87. package/ui.container-page/configs/default.config.js +71 -0
  88. package/ui.container-page/constants/index.js +5 -0
  89. package/ui.container-page/index.stories.js +7 -34
  90. package/ui.container-page/index.vue +193 -408
  91. package/ui.container-row/Docs.mdx +16 -0
  92. package/ui.container-row/composables/attrs.composable.js +23 -0
  93. package/ui.container-row/configs/default.config.js +14 -0
  94. package/ui.container-row/constants/index.js +5 -0
  95. package/ui.container-row/index.stories.js +10 -0
  96. package/ui.container-row/index.vue +32 -39
  97. package/ui.data-list/composables/attrs.composable.js +45 -0
  98. package/ui.data-list/configs/default.config.js +32 -0
  99. package/ui.data-list/constants/index.js +5 -0
  100. package/ui.data-list/index.stories.js +1 -0
  101. package/ui.data-list/index.vue +156 -265
  102. package/ui.data-table/Docs.mdx +16 -0
  103. package/ui.data-table/composables/attrs.composable.js +188 -0
  104. package/ui.data-table/configs/default.config.js +82 -0
  105. package/ui.data-table/constants/index.js +5 -0
  106. package/ui.data-table/index.stories.js +73 -43
  107. package/ui.data-table/index.vue +600 -961
  108. package/ui.data-table/services/table.service.js +15 -0
  109. package/ui.data-table-cell/composables/attrs.composable.js +24 -0
  110. package/ui.data-table-cell/configs/default.config.js +19 -0
  111. package/ui.data-table-cell/constants/index.js +5 -0
  112. package/ui.data-table-cell/index.vue +44 -0
  113. package/ui.dropdown-badge/Docs.mdx +16 -0
  114. package/ui.dropdown-badge/composables/attrs.composable.js +63 -0
  115. package/ui.dropdown-badge/configs/default.config.js +34 -0
  116. package/ui.dropdown-badge/constants/index.js +5 -0
  117. package/{ui.dropdown-tag → ui.dropdown-badge}/index.stories.js +26 -25
  118. package/ui.dropdown-badge/index.vue +233 -0
  119. package/ui.dropdown-button/Docs.mdx +16 -0
  120. package/ui.dropdown-button/composables/attrs.composable.js +63 -0
  121. package/ui.dropdown-button/configs/default.config.js +37 -0
  122. package/ui.dropdown-button/constants/index.js +14 -0
  123. package/ui.dropdown-button/index.stories.js +12 -11
  124. package/ui.dropdown-button/index.vue +231 -291
  125. package/ui.dropdown-item/Docs.mdx +16 -0
  126. package/ui.dropdown-item/composables/attrs.composable.js +13 -0
  127. package/ui.dropdown-item/configs/default.config.js +16 -0
  128. package/ui.dropdown-item/index.stories.js +2 -1
  129. package/ui.dropdown-item/index.vue +38 -55
  130. package/ui.dropdown-link/Docs.mdx +16 -0
  131. package/ui.dropdown-link/composables/attrs.composable.js +65 -0
  132. package/ui.dropdown-link/configs/default.config.js +37 -0
  133. package/ui.dropdown-link/constants/index.js +5 -0
  134. package/ui.dropdown-link/index.stories.js +11 -11
  135. package/ui.dropdown-link/index.vue +217 -287
  136. package/ui.dropdown-list/Docs.mdx +16 -0
  137. package/ui.dropdown-list/composables/attrs.composable.js +91 -0
  138. package/ui.dropdown-list/composables/usePointer.js +77 -0
  139. package/ui.dropdown-list/configs/default.config.js +68 -0
  140. package/ui.dropdown-list/constants/index.js +5 -0
  141. package/ui.dropdown-list/index.stories.js +33 -3
  142. package/ui.dropdown-list/index.vue +271 -112
  143. package/ui.form-calendar/Docs.mdx +52 -0
  144. package/ui.form-calendar/components/DayView.vue +230 -0
  145. package/ui.form-calendar/components/MonthView.vue +114 -0
  146. package/ui.form-calendar/components/YearView.vue +118 -0
  147. package/ui.form-calendar/composables/attrs.composable.js +87 -0
  148. package/ui.form-calendar/configs/default.config.js +115 -0
  149. package/ui.form-calendar/constants/index.js +69 -0
  150. package/ui.form-calendar/index.stories.js +50 -0
  151. package/ui.form-calendar/index.vue +628 -0
  152. package/ui.form-calendar/services/calendar.service.js +201 -0
  153. package/ui.form-calendar/services/date.service.js +121 -0
  154. package/ui.form-calendar/services/formatting.service.js +180 -0
  155. package/ui.form-checkbox/Docs.mdx +16 -0
  156. package/ui.form-checkbox/composables/attrs.composable.js +57 -0
  157. package/ui.form-checkbox/configs/default.config.js +69 -0
  158. package/ui.form-checkbox/constants/index.js +5 -0
  159. package/ui.form-checkbox/index.stories.js +75 -26
  160. package/ui.form-checkbox/index.vue +201 -261
  161. package/ui.form-checkbox-group/Docs.mdx +16 -0
  162. package/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
  163. package/ui.form-checkbox-group/configs/default.config.js +5 -0
  164. package/ui.form-checkbox-group/constants/index.js +5 -0
  165. package/ui.form-checkbox-group/index.stories.js +7 -1
  166. package/ui.form-checkbox-group/index.vue +104 -177
  167. package/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  168. package/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
  169. package/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
  170. package/ui.form-checkbox-multi-state/constants/index.js +5 -0
  171. package/ui.form-checkbox-multi-state/index.stories.js +8 -11
  172. package/ui.form-checkbox-multi-state/index.vue +109 -220
  173. package/ui.form-color-picker/composables/attrs.composable.js +44 -0
  174. package/ui.form-color-picker/configs/default.config.js +52 -0
  175. package/ui.form-color-picker/constants/index.js +5 -0
  176. package/ui.form-color-picker/index.stories.js +63 -0
  177. package/ui.form-color-picker/index.vue +147 -329
  178. package/ui.form-date-picker/Docs.mdx +52 -0
  179. package/ui.form-date-picker/composables/attrs.composable.js +22 -0
  180. package/ui.form-date-picker/configs/default.config.js +27 -0
  181. package/ui.form-date-picker/constants/index.js +5 -0
  182. package/ui.form-date-picker/index.stories.js +21 -8
  183. package/ui.form-date-picker/index.vue +205 -802
  184. package/ui.form-input/Docs.mdx +16 -0
  185. package/ui.form-input/composables/attrs.composable.js +66 -0
  186. package/ui.form-input/configs/default.config.js +72 -0
  187. package/{constant.component-names → ui.form-input/constants}/index.js +1 -2
  188. package/ui.form-input/index.stories.js +46 -12
  189. package/ui.form-input/index.vue +320 -459
  190. package/ui.form-input-file/composables/attrs.composable.js +82 -0
  191. package/ui.form-input-file/configs/default.config.js +51 -0
  192. package/ui.form-input-file/constants/index.js +5 -0
  193. package/ui.form-input-file/index.stories.js +3 -2
  194. package/ui.form-input-file/index.vue +332 -498
  195. package/ui.form-input-money/Docs.mdx +16 -0
  196. package/ui.form-input-money/composables/attrs.composable.js +13 -0
  197. package/ui.form-input-money/composables/useFormatCurrency.js +82 -0
  198. package/ui.form-input-money/configs/default.config.js +16 -0
  199. package/ui.form-input-money/constants/index.js +5 -0
  200. package/ui.form-input-money/index.stories.js +71 -43
  201. package/ui.form-input-money/index.vue +241 -237
  202. package/ui.form-input-money/services/format.service.js +72 -0
  203. package/ui.form-input-number/Docs.mdx +16 -0
  204. package/ui.form-input-number/composables/attrs.composable.js +47 -0
  205. package/ui.form-input-number/configs/default.config.js +33 -0
  206. package/ui.form-input-number/constants/index.js +5 -0
  207. package/ui.form-input-number/index.stories.js +73 -3
  208. package/ui.form-input-number/index.vue +138 -106
  209. package/ui.form-input-rating/composables/attrs.composable.js +34 -0
  210. package/ui.form-input-rating/configs/default.config.js +25 -0
  211. package/ui.form-input-rating/constants/index.js +5 -0
  212. package/ui.form-input-rating/index.stories.js +3 -2
  213. package/ui.form-input-rating/index.vue +152 -209
  214. package/ui.form-input-search/composables/attrs.composable.js +21 -0
  215. package/ui.form-input-search/configs/default.config.js +20 -0
  216. package/ui.form-input-search/constants/index.js +5 -0
  217. package/ui.form-input-search/index.stories.js +8 -4
  218. package/ui.form-input-search/index.vue +192 -189
  219. package/ui.form-label/Docs.mdx +16 -0
  220. package/ui.form-label/composables/attrs.composable.js +65 -0
  221. package/ui.form-label/configs/default.config.js +95 -0
  222. package/ui.form-label/constants/index.js +13 -0
  223. package/ui.form-label/index.stories.js +107 -0
  224. package/ui.form-label/index.vue +170 -0
  225. package/ui.form-radio/Docs.mdx +16 -0
  226. package/ui.form-radio/composables/attrs.composable.js +34 -0
  227. package/ui.form-radio/configs/default.config.js +47 -0
  228. package/ui.form-radio/constants/index.js +5 -0
  229. package/ui.form-radio/index.stories.js +12 -10
  230. package/ui.form-radio/index.vue +141 -148
  231. package/ui.form-radio-card/Docs.mdx +16 -0
  232. package/ui.form-radio-card/composables/attrs.composable.js +30 -0
  233. package/ui.form-radio-card/configs/default.config.js +25 -0
  234. package/ui.form-radio-card/constants/index.js +5 -0
  235. package/ui.form-radio-card/index.stories.js +19 -10
  236. package/ui.form-radio-card/index.vue +132 -146
  237. package/ui.form-radio-card/services/variant.service.js +15 -0
  238. package/ui.form-radio-group/Docs.mdx +16 -0
  239. package/ui.form-radio-group/composables/attrs.composable.js +27 -0
  240. package/ui.form-radio-group/configs/default.config.js +18 -0
  241. package/ui.form-radio-group/constants/index.js +5 -0
  242. package/ui.form-radio-group/index.stories.js +1 -0
  243. package/ui.form-radio-group/index.vue +114 -85
  244. package/ui.form-select/Docs.mdx +16 -0
  245. package/ui.form-select/composables/attrs.composable.js +172 -0
  246. package/ui.form-select/configs/default.config.js +131 -0
  247. package/ui.form-select/constants/index.js +19 -0
  248. package/ui.form-select/index.stories.js +194 -38
  249. package/ui.form-select/index.vue +638 -910
  250. package/ui.form-select/services/select.service.js +98 -0
  251. package/ui.form-switch/composables/attrs.composable.js +77 -0
  252. package/ui.form-switch/configs/default.config.js +72 -0
  253. package/ui.form-switch/constants/index.js +5 -0
  254. package/ui.form-switch/index.stories.js +9 -42
  255. package/ui.form-switch/index.vue +177 -632
  256. package/ui.form-switch/services/variant.service.js +31 -0
  257. package/ui.form-textarea/Docs.mdx +16 -0
  258. package/ui.form-textarea/composables/attrs.composable.js +52 -0
  259. package/ui.form-textarea/configs/default.config.js +68 -0
  260. package/ui.form-textarea/constants/index.js +5 -0
  261. package/ui.form-textarea/index.stories.js +47 -5
  262. package/ui.form-textarea/index.vue +238 -353
  263. package/ui.image-avatar/composables/attrs.composable.js +34 -0
  264. package/ui.image-avatar/configs/default.config.js +42 -0
  265. package/ui.image-avatar/constants/index.js +5 -0
  266. package/ui.image-avatar/index.stories.js +7 -6
  267. package/ui.image-avatar/index.vue +94 -226
  268. package/ui.image-icon/Docs.mdx +16 -0
  269. package/ui.image-icon/composables/attrs.composable.js +65 -0
  270. package/ui.image-icon/configs/default.config.js +90 -0
  271. package/ui.image-icon/constants/index.js +5 -0
  272. package/ui.image-icon/index.stories.js +16 -35
  273. package/ui.image-icon/index.vue +165 -453
  274. package/ui.image-logo/composables/attrs.composable.js +41 -0
  275. package/ui.image-logo/configs/default.config.js +38 -0
  276. package/ui.image-logo/constants/index.js +5 -0
  277. package/ui.image-logo/index.stories.js +8 -8
  278. package/ui.image-logo/index.vue +80 -166
  279. package/ui.navigation-pagination/composables/attrs.composable.js +41 -0
  280. package/ui.navigation-pagination/configs/default.config.js +24 -0
  281. package/ui.navigation-pagination/constants/index.js +8 -0
  282. package/ui.navigation-pagination/index.stories.js +23 -6
  283. package/ui.navigation-pagination/index.vue +262 -102
  284. package/ui.navigation-stepper/composables/attrs.composable.js +25 -0
  285. package/ui.navigation-stepper/configs/default.config.js +13 -0
  286. package/ui.navigation-stepper/constants/index.js +5 -0
  287. package/ui.navigation-stepper/index.stories.js +1 -0
  288. package/ui.navigation-stepper/index.vue +87 -88
  289. package/ui.navigation-tab/composables/attrs.composable.js +30 -0
  290. package/ui.navigation-tab/configs/default.config.js +22 -0
  291. package/ui.navigation-tab/constants/index.js +5 -0
  292. package/ui.navigation-tab/index.stories.js +7 -11
  293. package/ui.navigation-tab/index.vue +58 -85
  294. package/ui.navigation-tabs/composables/attrs.composable.js +24 -0
  295. package/ui.navigation-tabs/configs/default.config.js +14 -0
  296. package/ui.navigation-tabs/constants/index.js +5 -0
  297. package/ui.navigation-tabs/index.stories.js +7 -11
  298. package/ui.navigation-tabs/index.vue +68 -88
  299. package/ui.other-dot/composables/attrs.composable.js +32 -0
  300. package/ui.other-dot/configs/default.config.js +21 -0
  301. package/ui.other-dot/constants/index.js +5 -0
  302. package/ui.other-dot/index.stories.js +5 -5
  303. package/ui.other-dot/index.vue +41 -89
  304. package/ui.other-loader/composables/attrs.composable.js +51 -0
  305. package/ui.other-loader/configs/default.config.js +47 -0
  306. package/ui.other-loader/constants/index.js +5 -0
  307. package/ui.other-loader/index.stories.js +14 -13
  308. package/ui.other-loader/index.vue +58 -107
  309. package/ui.text-alert/composables/attrs.composable.js +48 -0
  310. package/ui.text-alert/configs/default.config.js +51 -0
  311. package/ui.text-alert/constatns/index.js +5 -0
  312. package/ui.text-alert/index.stories.js +39 -6
  313. package/ui.text-alert/index.vue +95 -210
  314. package/ui.text-badge/Docs.mdx +16 -0
  315. package/ui.text-badge/composables/attrs.composable.js +49 -0
  316. package/ui.text-badge/configs/default.config.js +51 -0
  317. package/ui.text-badge/constants/index.js +5 -0
  318. package/ui.text-badge/index.stories.js +190 -0
  319. package/ui.text-badge/index.vue +120 -0
  320. package/ui.text-block/composables/attrs.composable.js +31 -0
  321. package/ui.text-block/configs/default.config.js +35 -0
  322. package/ui.text-block/constatns/index.js +5 -0
  323. package/ui.text-block/index.stories.js +2 -1
  324. package/ui.text-block/index.vue +55 -116
  325. package/ui.text-empty/Docs.mdx +16 -0
  326. package/ui.text-empty/composables/attrs.composable.js +43 -0
  327. package/ui.text-empty/configs/default.config.js +4 -2
  328. package/ui.text-empty/constants/index.js +5 -0
  329. package/ui.text-empty/index.stories.js +3 -3
  330. package/ui.text-empty/index.vue +13 -14
  331. package/ui.text-file/composables/attrs.composable.js +37 -0
  332. package/ui.text-file/configs/default.config.js +15 -0
  333. package/ui.text-file/index.stories.js +2 -1
  334. package/ui.text-file/index.vue +63 -72
  335. package/ui.text-files/composables/attrs.composable.js +19 -0
  336. package/ui.text-files/configs/default.config.js +9 -0
  337. package/ui.text-files/constants/index.js +5 -0
  338. package/ui.text-files/index.stories.js +1 -0
  339. package/ui.text-files/index.vue +73 -50
  340. package/ui.text-header/Docs.mdx +16 -0
  341. package/ui.text-header/composables/attrs.composable.js +34 -0
  342. package/ui.text-header/configs/default.config.js +45 -0
  343. package/ui.text-header/constants/index.js +5 -0
  344. package/ui.text-header/index.stories.js +34 -38
  345. package/ui.text-header/index.vue +67 -221
  346. package/ui.text-money/Docs.mdx +16 -0
  347. package/ui.text-money/composables/attrs.composable.js +65 -0
  348. package/ui.text-money/configs/default.config.js +69 -0
  349. package/ui.text-money/constants/index.js +7 -0
  350. package/ui.text-money/index.stories.js +24 -22
  351. package/ui.text-money/index.vue +187 -506
  352. package/ui.text-money/services/money.services.js +24 -0
  353. package/_readme/layoutAdmin.md +0 -703
  354. package/_readme/layoutApp.md +0 -153
  355. package/_readme/layoutAuth.md +0 -190
  356. package/config.rollup-plugin-visualizer/index.js +0 -11
  357. package/config.unplugin-vue-i18n/index.js +0 -9
  358. package/config.vite-plugin-pwa/index.js +0 -132
  359. package/config.vite-svg-loader/index.js +0 -22
  360. package/index.js +0 -151
  361. package/layout-ui.loader/index.vue +0 -61
  362. package/layout-ui.loader/store/index.js +0 -17
  363. package/layout-ui.loader-top/components/TopProgress.vue +0 -277
  364. package/layout-ui.loader-top/index.vue +0 -218
  365. package/layout-ui.loader-top/store/index.js +0 -55
  366. package/layout-ui.notify/index.stories.js +0 -102
  367. package/layout-ui.notify/index.vue +0 -254
  368. package/layout-ui.viewport/index.vue +0 -78
  369. package/layout-ui.viewport/store/index.js +0 -47
  370. package/layout.admin/AsideBlock.vue +0 -534
  371. package/layout.admin/AsideInfoBlock.vue +0 -85
  372. package/layout.admin/BrandBlock.vue +0 -380
  373. package/layout.admin/ChangeThemeModal.vue +0 -179
  374. package/layout.admin/HelperBlock.vue +0 -132
  375. package/layout.admin/MainMenu.vue +0 -234
  376. package/layout.admin/MainSubMenu.vue +0 -196
  377. package/layout.admin/MobileMainMenu.vue +0 -197
  378. package/layout.admin/MobileSubBlock.vue +0 -171
  379. package/layout.admin/RightInfoBlock.vue +0 -166
  380. package/layout.admin/UserBlock.vue +0 -290
  381. package/layout.admin/images/abstract-01.jpg +0 -0
  382. package/layout.admin/images/abstract-01_preview.jpg +0 -0
  383. package/layout.admin/index.vue +0 -544
  384. package/layout.admin/mixins/index.js +0 -54
  385. package/layout.admin/store/index.js +0 -167
  386. package/layout.auth/FeaturesBlock.vue +0 -57
  387. package/layout.auth/FooterMenu.vue +0 -90
  388. package/layout.auth/LanguageSwitcher.vue +0 -90
  389. package/layout.auth/index.vue +0 -237
  390. package/library.vue-tailwind-3/t-input.js +0 -68
  391. package/library.vue-tailwind-3/t-modal.js +0 -409
  392. package/library.vue-tailwind-3/t-pagination.js +0 -309
  393. package/library.vue-tailwind-3/t-table.js +0 -362
  394. package/library.vue-tailwind-3/t-textarea.js +0 -84
  395. package/resolver.unplugin-vue-components/index.js +0 -94
  396. package/service.api/index.js +0 -275
  397. package/service.data/index.js +0 -75
  398. package/service.date/index.js +0 -222
  399. package/service.i18n/index.js +0 -145
  400. package/service.idb-keyval/index.js +0 -37
  401. package/service.jwt/index.js +0 -27
  402. package/service.money/index.js +0 -86
  403. package/service.notify/index.js +0 -87
  404. package/service.redirect/index.js +0 -20
  405. package/service.validation/index.js +0 -55
  406. package/service.worker/index.js +0 -26
  407. package/ui.button-expand/index.stories.js +0 -44
  408. package/ui.button-expand/index.vue +0 -22
  409. package/ui.button-expand-item/index.stories.js +0 -69
  410. package/ui.button-expand-item/index.vue +0 -154
  411. package/ui.button-group/index.vue +0 -165
  412. package/ui.button-group-item/index.vue +0 -283
  413. package/ui.container-modal/components/ArrowLink.vue +0 -87
  414. package/ui.container-page/components/ArrowLink.vue +0 -87
  415. package/ui.data-table/components/DateSeparator.vue +0 -99
  416. package/ui.data-table/components/EmptyTableMsg.vue +0 -46
  417. package/ui.data-table/components/TableCheckbox.vue +0 -109
  418. package/ui.dropdown-tag/index.vue +0 -285
  419. package/ui.form-date-picker-range/components/VariantButton.vue +0 -136
  420. package/ui.form-date-picker-range/components/VariantInput.vue +0 -101
  421. package/ui.form-date-picker-range/index.stories.js +0 -93
  422. package/ui.form-date-picker-range/index.vue +0 -1537
  423. package/ui.form-date-picker-range/services/dateRange.service.js +0 -178
  424. package/ui.form-input-money/_components/ConvertibleInput.vue +0 -773
  425. package/ui.form-input-money/_components/RangeInput.vue +0 -356
  426. package/ui.form-input-money/_components/SingleInput.vue +0 -378
  427. package/ui.form-select-multi/index.stories.js +0 -131
  428. package/ui.form-select-multi/index.vue +0 -882
  429. package/ui.image-icon/cli.mjs +0 -159
  430. package/ui.text-empty/services/variant.service.js +0 -22
  431. package/ui.text-field/index.stories.js +0 -60
  432. package/ui.text-field/index.vue +0 -109
  433. package/ui.text-tag/index.stories.js +0 -90
  434. package/ui.text-tag/index.vue +0 -178
  435. package/web-types.json +0 -6320
  436. /package/ui.form-input/{text-security-disc.woff → assets/fonts/text-security-disc.woff} +0 -0
@@ -1,400 +1,399 @@
1
1
  <template>
2
- <div class="mono-file-upload-wrapper">
3
- <div v-if="!isExistSlot('default')">
4
- <div :id="fileId" class="mono-file-upload" :class="[fileUploadClasses]" :data-cy="dataCy">
5
- <div class="mono-file-upload-label">
6
- {{ label }}
7
- </div>
8
-
9
- <div v-if="!filesData.length" class="mono-file-upload-block">
10
- <UIcon name="upload_file" color="gray" :size="descriptionIconSize" />
11
-
12
- <div class="mono-file-upload-description">
13
- {{ i18n.selectOrDragImage }} {{ allowedFilesForUpload }}
14
- </div>
15
- </div>
16
-
17
- <div class="mono-file-upload-list">
18
- <div v-for="(file, index) in filesData" :key="file.id" class="mono-file-upload-item">
19
- <div class="mono-file-upload-item-block">
20
- <img v-if="file.imageUrl" class="mono-file-upload-item-image" :src="file.imageUrl" />
21
-
22
- <UIcon v-else name="description" color="gray" size="lg" />
23
-
24
- <div class="mono-file-upload-item-title">
25
- {{ file.name }}
26
- </div>
27
- </div>
28
-
2
+ <div v-bind="wrapperAttrs">
3
+ <div v-if="!hasSlotContent(slots['default'])">
4
+ <ULabel
5
+ :label="props.label"
6
+ :description="props.description"
7
+ :align="labelAlign"
8
+ :error="errorMessage"
9
+ v-bind="labelAttrs"
10
+ >
11
+ <div :id="fileId" :data-cy="dataCy" v-bind="uploadAttrs">
12
+ <div v-if="!filesData.length" v-bind="blockAttrs">
29
13
  <UIcon
30
- class="mono-file-upload-item-close"
31
- name="close"
32
- interactive
33
- :size="size"
14
+ :name="config.iconUploadFileName"
34
15
  color="gray"
35
- :data-cy="`${dataCy}-${index}-delete`"
36
- @click="onClickDeleteFile(file.id)"
16
+ :size="descriptionIconSize"
17
+ v-bind="iconUploadFileAttrs"
18
+ />
19
+
20
+ <div
21
+ v-bind="descriptionAttrs"
22
+ v-text="`${i18n.selectOrDragImage} ${allowedFilesForUpload}`"
37
23
  />
38
24
  </div>
39
- </div>
40
25
 
41
- <UButton
42
- class="mono-file-upload-button"
43
- :text="i18n.selectFile"
44
- :size="buttonSize"
45
- variant="thirdary"
46
- filled
47
- :data-cy="`${dataCy}-upload`"
48
- @click="onClickUploadFile"
49
- />
50
-
51
- <DragDrop :id="uppyId" class="uppy-upload" :uppy="uppy" :class="uppyUploadClass" />
52
- </div>
26
+ <div v-bind="listAttrs">
27
+ <UFiles :options="filesList" v-bind="filesAttrs">
28
+ <template #right="file">
29
+ <UIcon
30
+ :name="config.iconCloseName"
31
+ interactive
32
+ :size="size"
33
+ color="gray"
34
+ v-bind="iconCloseAttrs"
35
+ @click="onClickDeleteFile(file)"
36
+ />
37
+ </template>
38
+ </UFiles>
39
+ </div>
40
+
41
+ <UButton
42
+ :label="i18n.selectFile"
43
+ :size="size"
44
+ variant="thirdary"
45
+ filled
46
+ :data-cy="`${dataCy}-upload`"
47
+ v-bind="buttonAttrs"
48
+ @click="onClickUploadFile"
49
+ />
50
+
51
+ <DragDrop :id="uppyId" :uppy="uppy" v-bind="uppyUploadAttrs" />
52
+ </div>
53
+ </ULabel>
53
54
  </div>
54
55
 
55
- <div
56
- v-else
57
- :id="fileId"
58
- class="mono-file-upload-slot"
59
- :data-cy="dataCy"
60
- @click="onClickUploadFile"
61
- >
56
+ <div v-else :id="fileId" :data-cy="dataCy" v-bind="uploadSlotAttrs" @click="onClickUploadFile">
62
57
  <slot />
63
58
 
64
- <DragDrop :id="uppyId" class="uppy-upload" :uppy="uppy" :class="uppyUploadClass" />
59
+ <DragDrop :id="uppyId" :uppy="uppy" v-bind="uppyUploadAttrs" />
65
60
  </div>
66
-
67
- <p v-if="errorMessage" class="error-message" :data-cy="`${dataCy}-error-message`">
68
- {{ errorMessage }}
69
- </p>
70
61
  </div>
71
62
  </template>
72
63
 
73
- <script>
64
+ <script setup>
74
65
  import Uppy from "@uppy/core";
75
66
  import DragDrop from "@uppy/vue/src/drag-drop";
76
- import { getRandomId } from "vueless/service.ui";
77
- import UIcon from "vueless/ui.image-icon";
78
- import UButton from "vueless/ui.button";
79
- import I18nServiceDefault from "vueless/service.i18n";
80
-
81
- export default {
82
- name: "UInputFile",
83
67
 
84
- components: {
85
- UButton,
86
- DragDrop,
87
- UIcon,
88
- },
89
-
90
- props: {
91
- /**
92
- * Set label.
93
- */
94
- label: {
95
- type: String,
96
- default: "",
97
- },
98
-
99
- /**
100
- * Set files data.
101
- */
102
- files: {
103
- type: Array,
104
- default: () => [],
105
- },
68
+ import { computed, onBeforeUnmount, onMounted, ref, useSlots, watch } from "vue";
106
69
 
107
- /**
108
- * Selected files will be imported when a form will be submitted
109
- */
110
- local: {
111
- type: Boolean,
112
- default: false,
113
- },
114
-
115
- /**
116
- * Set max file size in megabytes.
117
- */
118
- maxFileSizeInMegabytes: {
119
- type: Number,
120
- default: 1,
121
- },
122
-
123
- /**
124
- * Allow to select multiple files.
125
- */
126
- multiple: {
127
- type: Boolean,
128
- default: false,
129
- },
130
-
131
- /**
132
- * Set max number files for upload
133
- */
134
- maxFiles: {
135
- type: Number,
136
- default: 3,
137
- },
138
-
139
- /**
140
- * Set allowed file types.
141
- */
142
- allowedFileTypes: {
143
- type: Array,
144
- default: () => [".png", ".jpg", ".jpeg", ".pdf", ".txt", ".doc", ".docx", "xls", ".xlsx"],
145
- },
70
+ import UIcon from "vueless/ui.image-icon";
71
+ import UButton from "vueless/ui.button";
146
72
 
147
- /**
148
- * Set error text for component.
149
- */
150
- error: {
151
- type: String,
152
- default: "",
153
- },
73
+ import UIService, { getRandomId } from "vueless/service.ui";
74
+ import I18nServiceDefault from "@vueless/services/i18n";
154
75
 
155
- /**
156
- * Set size.
157
- * @values sm, md, lg
158
- */
159
- size: {
160
- type: String,
161
- default: "md",
162
- },
76
+ import { UInputFile } from "./constants";
77
+ import defaultConfig from "./configs/default.config";
78
+ import { useAttrs } from "./composables/attrs.composable";
163
79
 
164
- /**
165
- * Generates unique element id.
166
- * @ignore
167
- */
168
- id: {
169
- type: String,
170
- default: () => getRandomId(),
171
- },
80
+ /* Should be a string for correct web-types gen */
81
+ defineOptions({ name: "UInputFile" });
172
82
 
173
- /**
174
- * Sets data-cy attribute for automated testing.
175
- */
176
- dataCy: {
177
- type: String,
178
- default: "",
179
- },
83
+ const props = defineProps({
84
+ /**
85
+ * Set label.
86
+ */
87
+ label: {
88
+ type: String,
89
+ default: "",
180
90
  },
181
91
 
182
- emits: ["changeFiles", "deleteFile"],
183
-
184
- setup() {
185
- const { getTranslation } = new I18nServiceDefault();
186
-
187
- return { getTranslation };
92
+ /**
93
+ * Set description.
94
+ */
95
+ description: {
96
+ type: String,
97
+ default: "",
188
98
  },
189
99
 
190
- data: () => ({
191
- filesData: [],
192
- selectedFiles: [],
193
- errorMessage: "",
194
- dragOver: false,
195
- errorFilesTypes: [],
196
- }),
197
-
198
- computed: {
199
- i18n() {
200
- return {
201
- selectOrDragImage: this.getTranslation("selectOrDragImage"),
202
- selectFile: this.getTranslation("selectFile"),
203
- canAttachFilesFormat: this.getTranslation("canAttachFilesFormat"),
204
- cannotAttachFilesStart: this.getTranslation("cannotAttachFilesStart"),
205
- cannotAttachFilesEnd: this.getTranslation("cannotAttachFilesEnd"),
206
- };
207
- },
208
-
209
- fileId() {
210
- return `file-${this.id}`;
211
- },
212
-
213
- uppyId() {
214
- return `uppy-${this.id}`;
215
- },
216
-
217
- fileUpload() {
218
- return document.getElementById(this.fileId);
219
- },
220
-
221
- uppyUpload() {
222
- return document.getElementById(this.uppyId);
223
- },
100
+ /**
101
+ * Set label placement related from the default slot.
102
+ * @values topInside, top, left, right
103
+ */
104
+ labelOutside: {
105
+ type: Boolean,
106
+ default: UIService.get(defaultConfig, UInputFile).default.labelOutside,
107
+ },
224
108
 
225
- allowedFilesForUpload() {
226
- const allowedFormat = this.allowedFileTypes.join(", ");
109
+ /**
110
+ * Set files data.
111
+ */
112
+ files: {
113
+ type: Array,
114
+ default: () => [],
115
+ },
227
116
 
228
- return `${this.i18n.canAttachFilesFormat} ${allowedFormat}`;
229
- },
117
+ /**
118
+ * Selected files will be imported when a form will be submitted
119
+ */
120
+ local: {
121
+ type: Boolean,
122
+ default: UIService.get(defaultConfig, UInputFile).default.local,
123
+ },
230
124
 
231
- descriptionIconSize() {
232
- const size = {
233
- sm: "md",
234
- md: "lg",
235
- lg: "xl",
236
- };
125
+ /**
126
+ * Set max file size in megabytes.
127
+ */
128
+ maxFileSize: {
129
+ type: Number,
130
+ default: UIService.get(defaultConfig, UInputFile).default.maxFileSize,
131
+ },
237
132
 
238
- return size[this.size];
239
- },
133
+ /**
134
+ * Allow to select multiple files.
135
+ */
136
+ multiple: {
137
+ type: Boolean,
138
+ default: UIService.get(defaultConfig, UInputFile).default.multiple,
139
+ },
240
140
 
241
- fileUploadClasses() {
242
- return {
243
- "error-file-upload": this.errorMessage,
244
- "size-sm": this.size === "sm",
245
- "size-md": this.size === "md",
246
- "size-lg": this.size === "lg",
247
- };
248
- },
141
+ /**
142
+ * Set max number files for upload
143
+ */
144
+ maxFiles: {
145
+ type: Number,
146
+ default: UIService.get(defaultConfig, UInputFile).default.maxFiles,
147
+ },
249
148
 
250
- uppyUploadClass() {
251
- return this.dragOver ? "uppy-upload-drag-over" : "";
252
- },
149
+ /**
150
+ * Set allowed file types.
151
+ */
152
+ allowedFileTypes: {
153
+ type: Array,
154
+ default: () => UIService.get(defaultConfig, UInputFile).default.allowedFileTypes,
155
+ },
253
156
 
254
- buttonSize() {
255
- return this.size === "lg" ? "md" : "sm";
256
- },
157
+ /**
158
+ * Set error text for component.
159
+ */
160
+ error: {
161
+ type: String,
162
+ default: "",
163
+ },
257
164
 
258
- maxFileSizeInBytes() {
259
- return this.maxFileSizeInMegabytes * Math.pow(2, 20);
260
- },
165
+ /**
166
+ * Set size.
167
+ * @values sm, md, lg
168
+ */
169
+ size: {
170
+ type: String,
171
+ default: UIService.get(defaultConfig, UInputFile).default.size,
172
+ },
261
173
 
262
- uppy() {
263
- return new Uppy({
264
- id: this.uppyId,
265
- restrictions: {
266
- maxFileSize: this.maxFileSizeInBytes,
267
- maxNumberOfFiles: this.maxFilesNumber,
268
- allowedFileTypes: this.allowedFileTypes,
269
- },
270
- }).on("restriction-failed", (file, error) => {
271
- const isFile = this.errorFilesTypes.find((item) => item === file.extension);
272
-
273
- if (error && !isFile) this.errorFilesTypes.push(`.${file.extension}`);
274
- });
275
- },
174
+ /**
175
+ * Generates unique element id.
176
+ * @ignore
177
+ */
178
+ id: {
179
+ type: String,
180
+ default: () => getRandomId(),
181
+ },
276
182
 
277
- maxFilesNumber() {
278
- return this.multiple ? this.maxFiles : 1;
279
- },
183
+ /**
184
+ * Sets data-cy attribute for automated testing.
185
+ */
186
+ dataCy: {
187
+ type: String,
188
+ default: "",
280
189
  },
190
+ });
191
+
192
+ const slots = useSlots();
193
+
194
+ const emit = defineEmits(["changeFiles", "deleteFile"]);
195
+
196
+ const { getTranslation } = new I18nServiceDefault();
197
+
198
+ const filesData = ref([]);
199
+ const selectedFiles = ref([]);
200
+ const errorMessage = ref("");
201
+ const dragOver = ref(false);
202
+ const errorFilesTypes = ref([]);
203
+
204
+ const {
205
+ config,
206
+ uploadAttrs,
207
+ buttonAttrs,
208
+ iconUploadFileAttrs,
209
+ iconCloseAttrs,
210
+ wrapperAttrs,
211
+ labelAttrs,
212
+ blockAttrs,
213
+ descriptionAttrs,
214
+ listAttrs,
215
+ uppyUploadAttrs,
216
+ uploadSlotAttrs,
217
+ filesAttrs,
218
+ hasSlotContent,
219
+ } = useAttrs(props, { errorMessage, dragOver });
220
+
221
+ const i18n = computed(() => {
222
+ return {
223
+ selectOrDragImage: getTranslation("selectOrDragImage"),
224
+ selectFile: getTranslation("selectFile"),
225
+ canAttachFilesFormat: getTranslation("canAttachFilesFormat"),
226
+ cannotAttachFilesStart: getTranslation("cannotAttachFilesStart"),
227
+ cannotAttachFilesEnd: getTranslation("cannotAttachFilesEnd"),
228
+ };
229
+ });
230
+
231
+ const filesList = computed(() => {
232
+ return filesData.value.map((file) => {
233
+ return {
234
+ text: file.name,
235
+ id: file.id,
236
+ };
237
+ });
238
+ });
239
+
240
+ const labelAlign = computed(() => {
241
+ return props.labelOutside ? "top" : "topInside";
242
+ });
243
+
244
+ const fileId = computed(() => {
245
+ return `file-${props.id}`;
246
+ });
247
+
248
+ const uppyId = computed(() => {
249
+ return `uppy-${props.id}`;
250
+ });
251
+
252
+ const fileUpload = computed(() => {
253
+ return document.getElementById(fileId.value);
254
+ });
255
+
256
+ const uppyUpload = computed(() => {
257
+ return document.getElementById(uppyId.value);
258
+ });
259
+
260
+ const allowedFilesForUpload = computed(() => {
261
+ const allowedFormat = props.allowedFileTypes.join(", ");
262
+
263
+ return `${i18n.value.canAttachFilesFormat} ${allowedFormat}`;
264
+ });
265
+
266
+ const descriptionIconSize = computed(() => {
267
+ const size = {
268
+ sm: "md",
269
+ md: "lg",
270
+ lg: "xl",
271
+ };
272
+
273
+ return size[props.size];
274
+ });
275
+
276
+ const maxFileSizeInBytes = computed(() => {
277
+ return props.maxFileSize * Math.pow(2, 20);
278
+ });
279
+
280
+ const maxFilesNumber = computed(() => {
281
+ return props.multiple ? props.maxFiles : 1;
282
+ });
283
+
284
+ const uppy = computed(() =>
285
+ new Uppy({
286
+ id: uppyId.value,
287
+ restrictions: {
288
+ maxFileSize: maxFileSizeInBytes,
289
+ maxNumberOfFiles: maxFilesNumber,
290
+ allowedFileTypes: props.allowedFileTypes,
291
+ },
292
+ }).on("restriction-failed", (file, error) => {
293
+ const isFile = errorFilesTypes.value.find((item) => item === file.extension);
294
+
295
+ if (error && !isFile) errorFilesTypes.value.push(`.${file.extension}`);
296
+ }),
297
+ );
281
298
 
282
- watch: {
283
- selectedFiles: {
284
- handler: "onChangeSelectedFiles",
285
- deep: true,
286
- },
299
+ watch(selectedFiles, onChangeSelectedFiles, { deep: true });
300
+ watch(() => props.files, onChangeFiles, { deep: true });
301
+ watch(errorFilesTypes, onChangeErrorFilesTypes, { deep: true });
302
+ watch(() => props.error, onChangeError, { deep: true, immediate: true });
287
303
 
288
- files: {
289
- handler: "onChangeFiles",
290
- deep: true,
291
- },
304
+ onMounted(() => {
305
+ uppy.value.on("file-added", () => {
306
+ uploadFiles();
307
+ });
292
308
 
293
- errorFilesTypes: {
294
- handler: "onChangeErrorFilesTypes",
295
- deep: true,
296
- },
309
+ addEventListener("dragover", () => (dragOver.value = true));
297
310
 
298
- error: {
299
- handler: "onChangeError",
300
- deep: true,
301
- immediate: true,
302
- },
303
- },
304
-
305
- mounted() {
306
- addEventListener("dragover", () => (this.dragOver = true));
307
-
308
- if (this.uppyUpload) {
309
- this.uppyUpload.addEventListener("dragover", this.onDragOver, true);
310
- this.uppyUpload.addEventListener("dragleave", this.onDragLeave, true);
311
- }
312
- },
311
+ if (uppyUpload.value) {
312
+ uppyUpload.value.addEventListener("dragover", onDragOver, true);
313
+ uppyUpload.value.addEventListener("dragleave", onDragLeave, true);
314
+ }
315
+ });
313
316
 
314
- beforeUnmount() {
315
- removeEventListener("dragover", () => (this.dragOver = true));
316
- this.uppyUpload.removeEventListener("dragover", this.onDragOver, true);
317
- this.uppyUpload.removeEventListener("dragleave", this.onDragLeave, true);
318
- },
317
+ onBeforeUnmount(() => {
318
+ removeEventListener("dragover", () => (dragOver.value = true));
319
+ uppyUpload.value.removeEventListener("dragover", onDragOver, true);
320
+ uppyUpload.value.removeEventListener("dragleave", onDragLeave, true);
321
+ });
319
322
 
320
- created() {
321
- this.uppy.on("file-added", () => {
322
- this.uploadFiles();
323
- });
324
- },
323
+ function onClickUploadFile() {
324
+ document.querySelector(`#${fileId.value} .uppy-Root button`).click();
325
+ }
325
326
 
326
- methods: {
327
- isExistSlot(slotName) {
328
- return !!this.$slots[slotName];
329
- },
327
+ function uploadFiles() {
328
+ const { files } = uppy.value.getState();
330
329
 
331
- onClickUploadFile() {
332
- document.querySelector(`#${this.fileId} .uppy-Root button`).click();
333
- },
330
+ selectedFiles.value = Object.values(files);
331
+ }
334
332
 
335
- uploadFiles() {
336
- const { files } = this.uppy.getState();
333
+ function onDragOver() {
334
+ fileUpload.value.classList.add(config.fileUploadHover);
335
+ }
337
336
 
338
- this.selectedFiles = Object.values(files);
339
- },
337
+ function onDragLeave() {
338
+ fileUpload.value.classList.remove(config.fileUploadHover);
339
+ dragOver.value = false;
340
+ }
340
341
 
341
- onDragOver() {
342
- this.fileUpload.classList.add("hover-file-upload");
343
- },
342
+ function onChangeSelectedFiles() {
343
+ uppy.value.cancelAll();
344
344
 
345
- onDragLeave() {
346
- this.fileUpload.classList.remove("hover-file-upload");
347
- this.dragOver = false;
348
- },
345
+ const selectedFilesData = selectedFiles.value.map((file) => {
346
+ file.data.id = getRandomId();
349
347
 
350
- onChangeSelectedFiles() {
351
- this.uppy.cancelAll();
348
+ return file.data;
349
+ });
352
350
 
353
- const selectedFilesData = this.selectedFiles.map((file) => file.data);
351
+ if (!props.error && errorMessage.value) {
352
+ errorMessage.value = "";
353
+ errorFilesTypes.value = [];
354
+ }
354
355
 
355
- if (this.local) this.filesData = selectedFilesData;
356
+ if (props.local) filesData.value = selectedFilesData;
356
357
 
357
- this.$emit("changeFiles", selectedFilesData);
358
- },
358
+ emit("changeFiles", selectedFilesData);
359
+ }
359
360
 
360
- onChangeFiles() {
361
- this.filesData = this.files;
361
+ function onChangeFiles() {
362
+ filesData.value = props.files;
362
363
 
363
- if (!this.error && this.errorMessage) {
364
- this.errorMessage = "";
365
- this.errorFilesTypes = [];
366
- }
364
+ if (!props.error && errorMessage.value) {
365
+ errorMessage.value = "";
366
+ errorFilesTypes.value = [];
367
+ }
367
368
 
368
- this.onDragLeave();
369
- },
369
+ onDragLeave();
370
+ }
370
371
 
371
- onChangeError() {
372
- this.errorMessage = this.error;
373
- },
372
+ function onChangeError() {
373
+ errorMessage.value = props.error;
374
+ }
374
375
 
375
- onChangeErrorFilesTypes() {
376
- if (this.errorFilesTypes.length) {
377
- let error = this.errorFilesTypes.join(", ");
376
+ function onChangeErrorFilesTypes() {
377
+ if (errorFilesTypes.value.length) {
378
+ let error = errorFilesTypes.value.join(", ");
378
379
 
379
- this.errorMessage = `${this.i18n.cannotAttachFilesStart} ${error} ${this.i18n.cannotAttachFilesEnd}`;
380
- }
381
- },
380
+ errorMessage.value = `${i18n.value.cannotAttachFilesStart} ${error} ${i18n.value.cannotAttachFilesEnd}`;
381
+ }
382
+ }
382
383
 
383
- onClickDeleteFile(id) {
384
- const index = this.filesData.findIndex((file) => file.id === id);
384
+ function onClickDeleteFile(data) {
385
+ const index = filesData.value.findIndex((file) => file.id === data.file.id);
385
386
 
386
- if (~index) {
387
- this.filesData.splice(index, 1);
387
+ if (~index) {
388
+ filesData.value.splice(index, 1);
388
389
 
389
- this.uppy.removeFile(id);
390
+ uppy.value.removeFile(data.file.id);
390
391
 
391
- this.$emit("deleteFile", id);
392
+ emit("deleteFile", data.file.id);
392
393
 
393
- if (this.local) this.$emit("changeFiles", this.filesData);
394
- }
395
- },
396
- },
397
- };
394
+ if (props.local) emit("changeFiles", filesData.value);
395
+ }
396
+ }
398
397
  </script>
399
398
 
400
399
  <i18n>
@@ -417,168 +416,3 @@ ua:
417
416
  cannotAttachFilesEnd: "не підтримується."
418
417
  selectFile: Оберіть файл
419
418
  </i18n>
420
-
421
- <style lang="postcss" scoped>
422
- .size {
423
- &-sm {
424
- .mono-file-upload {
425
- &-label {
426
- @apply text-xs;
427
- }
428
-
429
- &-description {
430
- @apply text-xs;
431
- }
432
-
433
- &-item {
434
- &-image {
435
- @apply h-8 w-8;
436
- }
437
-
438
- &-title {
439
- @apply text-sm;
440
- }
441
- }
442
- }
443
- }
444
-
445
- &-md {
446
- .mono-file-upload {
447
- &-label {
448
- @apply text-sm;
449
- }
450
-
451
- &-description {
452
- @apply text-sm;
453
- }
454
-
455
- &-item {
456
- &-image {
457
- @apply h-10 w-10;
458
- }
459
-
460
- &-title {
461
- @apply text-base;
462
- }
463
- }
464
- }
465
- }
466
-
467
- &-lg {
468
- .mono-file-upload {
469
- &-label {
470
- @apply text-base;
471
- }
472
-
473
- &-description {
474
- @apply text-base;
475
- }
476
-
477
- &-item {
478
- &-image {
479
- @apply h-12 w-12;
480
- }
481
-
482
- &-title {
483
- @apply text-lg;
484
- }
485
- }
486
- }
487
- }
488
- }
489
-
490
- .mono-file-upload {
491
- @apply relative;
492
- @apply rounded-lg border border-dashed border-gray-300 bg-white;
493
- @apply h-auto w-auto p-4;
494
-
495
- &:hover {
496
- @apply border-gray-400 bg-gray-50;
497
- }
498
-
499
- &-wrapper {
500
- @apply w-full;
501
- }
502
-
503
- &-label {
504
- @apply mb-2 font-normal text-gray-500;
505
- }
506
-
507
- &-block {
508
- @apply flex;
509
- @apply mb-4 space-x-2;
510
- }
511
-
512
- &-description {
513
- @apply font-normal text-gray-700;
514
- }
515
-
516
- &-button {
517
- @apply w-full;
518
- }
519
-
520
- &-list {
521
- @apply mb-4 space-y-4;
522
- }
523
-
524
- &-item {
525
- @apply flex items-center justify-between;
526
- @apply border-b border-gray-200;
527
- @apply pb-2;
528
-
529
- &-block {
530
- @apply flex items-center;
531
- }
532
-
533
- &-image {
534
- @apply rounded-sm;
535
- }
536
-
537
- &-title {
538
- @apply font-normal text-gray-900;
539
- @apply ml-2 break-all;
540
- }
541
-
542
- &-close {
543
- @apply z-20;
544
- }
545
- }
546
-
547
- &-slot {
548
- @apply w-fit;
549
- }
550
- }
551
-
552
- .mono-file-upload.hover-file-upload {
553
- @apply border-gray-400 bg-gray-50;
554
- }
555
-
556
- .uppy-upload {
557
- @apply absolute left-0 top-0;
558
- @apply opacity-0;
559
- @apply h-0 w-0;
560
-
561
- &:deep(.uppy-Root) {
562
- @apply h-full w-full;
563
- }
564
- }
565
-
566
- .uppy-upload-drag-over {
567
- @apply h-full w-full;
568
- }
569
-
570
- .error {
571
- &-message {
572
- @apply text-xs font-normal text-red-500;
573
- @apply mt-2 pl-4;
574
- }
575
-
576
- &-file-upload {
577
- @apply border-red-300;
578
-
579
- &:hover {
580
- @apply border-red-400;
581
- }
582
- }
583
- }
584
- </style>