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,66 +1,328 @@
1
- import { getCurrentInstance, useAttrs, Comment, Text, Fragment } from "vue";
2
- import { cx, globalComponentConfig, strategyOverwrite } from "vueless/service.ui";
1
+ import {
2
+ ref,
3
+ watchEffect,
4
+ getCurrentInstance,
5
+ toValue,
6
+ useAttrs,
7
+ Comment,
8
+ Text,
9
+ Fragment,
10
+ } from "vue";
11
+ import { cx, globalComponentConfig, strategy } from "vueless/service.ui";
3
12
 
4
- /*
13
+ const strategyType = {
14
+ merge: "merge",
15
+ replace: "replace",
16
+ overwrite: "overwrite",
17
+ };
18
+
19
+ /**
5
20
  Merging component configs in a given sequence (bigger number = bigger priority):
6
21
  1. Default component config
7
22
  2. Custom global component config (/vueless.config.js)
8
- 3. Component config (:ui="{...}" props)
23
+ 3. Component config (:config="{...}" props)
9
24
  4. Component classes (class="...")
10
- */
11
- export function useUI(defaultConfig = {}, propsConfig = {}, topLevelClassKey = "wrapper") {
25
+ */
26
+ export default function useUI(defaultConfig = {}, propsConfigGetter = null, topLevelClassKey) {
12
27
  const { name: componentName } = getCurrentInstance().type;
13
28
  const globalConfig = globalComponentConfig[componentName];
14
29
 
30
+ const isStrategyValid = strategy && Object.values(strategyType).includes(strategy);
31
+ const vuelessStrategy = isStrategyValid ? strategy : strategyType.merge;
32
+
33
+ const [firstClassKey] = Object.keys(defaultConfig);
34
+ const config = ref({});
15
35
  const attrs = useAttrs();
16
36
 
17
- const ui = strategyOverwrite
18
- ? { ...defaultConfig, ...globalConfig, ...propsConfig }
19
- : mergeConfigs({ defaultConfig, globalConfig, propsConfig });
37
+ watchEffect(() => {
38
+ const propsConfig = propsConfigGetter && propsConfigGetter();
39
+
40
+ const mergedConfig = getMergedConfig({
41
+ defaultConfig,
42
+ globalConfig,
43
+ propsConfig,
44
+ vuelessStrategy,
45
+ });
46
+
47
+ config.value = mergeClassesIntoConfig(mergedConfig, topLevelClassKey || firstClassKey, attrs);
48
+ });
49
+
50
+ function getAttrs(configKey, options) {
51
+ const cvaClasses = options?.classes || "";
52
+ const isComponent = options?.isComponent;
53
+
54
+ const attrs = useAttrs();
55
+ const isDev = import.meta.env.DEV;
56
+ const vuelessAttrs = ref({});
57
+
58
+ const commonAttrs = {
59
+ ...attrs,
60
+ component: isDev && (attrs.component || componentName || null),
61
+ "config-key": isDev && (attrs["config-key"] || configKey || null),
62
+ "child-component": isDev && attrs.component ? componentName : null,
63
+ "child-config-key": isDev && attrs.component ? configKey : null,
64
+ };
65
+
66
+ watchEffect(() => {
67
+ const configKeyValue = config.value[configKey];
68
+ const isObject = typeof configKeyValue === "object";
69
+
70
+ const configAttrs = {
71
+ config: configKeyValue,
72
+ ...configKeyValue?.defaultVariants,
73
+ };
74
+
75
+ const isTopLevelClassKey = configKey === (topLevelClassKey || firstClassKey);
20
76
 
21
- ui[topLevelClassKey] = cx([ui[topLevelClassKey], attrs.class]);
77
+ const attrClass = isTopLevelClassKey && !isComponent ? attrs.class : "";
78
+ const configKeyClass = isObject ? configKeyValue.base : configKeyValue;
79
+
80
+ vuelessAttrs.value = {
81
+ ...commonAttrs,
82
+ class: cx([configKeyClass, toValue(cvaClasses), attrClass]),
83
+ ...((isObject && configAttrs) || {}),
84
+ };
85
+ });
86
+
87
+ return vuelessAttrs;
88
+ }
22
89
 
23
90
  return {
24
- ui,
91
+ config,
92
+ getAttrs,
93
+ setColor,
25
94
  hasSlotContent,
26
95
  };
27
96
  }
28
97
 
29
- /*
30
- Recursively merge config objects with tailwind classes duplicates removing.
98
+ /**
99
+ Get merged config based on config merging strategy.
100
+ @param {Object} defaultConfig
101
+ @param {Object} globalConfig
102
+ @param {Object} propsConfig
103
+ @param {string} vuelessStrategy - vueless top level merge strategy.
104
+
105
+ @returns {Object}
31
106
  */
32
- function mergeConfigs({ defaultConfig, globalConfig, propsConfig, ui = {} }) {
107
+ function getMergedConfig({ defaultConfig, globalConfig, propsConfig, vuelessStrategy }) {
108
+ defaultConfig = cloneDeep(defaultConfig);
109
+
110
+ const strategy =
111
+ !globalConfig && !propsConfig
112
+ ? strategyType.merge
113
+ : propsConfig?.strategy || globalConfig?.strategy || vuelessStrategy;
114
+
115
+ if (strategy === strategyType.merge) {
116
+ return mergeConfigs({ defaultConfig, globalConfig, propsConfig });
117
+ }
118
+
119
+ if (strategy === strategyType.replace) {
120
+ return mergeConfigs({ defaultConfig, globalConfig, propsConfig, isReplace: true });
121
+ }
122
+
123
+ if (strategy === strategyType.overwrite) {
124
+ const isGlobalConfig = globalConfig && Object.keys(globalConfig).length;
125
+ const isPropsConfig = propsConfig && Object.keys(propsConfig).length;
126
+
127
+ return isPropsConfig ? propsConfig : isGlobalConfig ? globalConfig : defaultConfig;
128
+ }
129
+ }
130
+
131
+ /**
132
+ Recursively merge config objects with removing tailwind classes duplicates.
133
+ @param {Object} defaultConfig
134
+ @param {Object} globalConfig
135
+ @param {Object} propsConfig
136
+ @param {Object} config - final merged config.
137
+ @param {boolean} isReplace - enables class replacement instead of merge.
138
+
139
+ @returns {Object}
140
+ */
141
+ function mergeConfigs({
142
+ defaultConfig,
143
+ globalConfig,
144
+ propsConfig,
145
+ config = {},
146
+ isReplace = false,
147
+ }) {
33
148
  globalConfig = globalConfig || {};
34
149
  propsConfig = propsConfig || {};
35
150
 
36
151
  const isGlobalConfig = Object.keys(globalConfig).length;
37
152
  const isPropsConfig = Object.keys(propsConfig).length;
38
153
 
39
- for (let key in defaultConfig) {
154
+ // Add unique keys from defaultConfig to composedConfig
155
+ let composedConfig = cloneDeep(defaultConfig);
156
+
157
+ // Add unique keys from globalConfig to composedConfig
158
+ for (let key in globalConfig) {
159
+ if (!Object.keys(composedConfig).includes(key)) {
160
+ composedConfig[key] = globalConfig[key];
161
+ }
162
+ }
163
+
164
+ // Add unique keys from propsConfig to composedConfig
165
+ for (let key in propsConfig) {
166
+ if (!Object.keys(composedConfig).includes(key)) {
167
+ composedConfig[key] = propsConfig[key];
168
+ }
169
+ }
170
+
171
+ for (let key in composedConfig) {
40
172
  if (isGlobalConfig || isPropsConfig) {
41
- const isObject = typeof defaultConfig[key] === "object";
42
- const isEmpty = defaultConfig[key] === null;
43
-
44
- ui[key] =
45
- isObject && !isEmpty
46
- ? mergeConfigs({
47
- defaultConfig: defaultConfig[key],
48
- globalConfig: globalConfig[key],
49
- propsConfig: propsConfig[key],
50
- ui: defaultConfig[key],
51
- })
52
- : cx([defaultConfig[key], globalConfig[key], propsConfig[key]]);
173
+ if (key === "strategy") {
174
+ config[key] = propsConfig[key] || globalConfig[key] || defaultConfig[key];
175
+ } else if (key === "defaultVariants") {
176
+ config[key] = { ...defaultConfig[key], ...globalConfig[key], ...propsConfig[key] };
177
+ } else if (key === "compoundVariants") {
178
+ config[key] = mergeCompoundVariants({
179
+ defaultConfig: composedConfig,
180
+ globalConfig,
181
+ propsConfig,
182
+ isReplace,
183
+ key,
184
+ });
185
+ } else {
186
+ const isObjectComposedConfig = typeof composedConfig[key] === "object";
187
+ const isObjectGlobalConfig = typeof globalConfig[key] === "object";
188
+ const isObjectPropsConfig = typeof propsConfig[key] === "object";
189
+
190
+ const isObject = isObjectComposedConfig || isObjectGlobalConfig || isObjectPropsConfig;
191
+ const isEmpty = composedConfig[key] === null;
192
+ const isIconName = /^.*(iconName|IconName)$/.test(key);
193
+ const isI18n = key === "i18n";
194
+
195
+ config[key] =
196
+ isObject && !isEmpty && !isI18n
197
+ ? mergeConfigs({
198
+ defaultConfig: stringToObject(composedConfig[key]),
199
+ globalConfig: stringToObject(globalConfig[key]),
200
+ propsConfig: stringToObject(propsConfig[key]),
201
+ config: stringToObject(composedConfig[key]),
202
+ isReplace,
203
+ })
204
+ : isReplace || isIconName || isI18n
205
+ ? propsConfig[key] || globalConfig[key] || defaultConfig[key]
206
+ : cx([defaultConfig[key], globalConfig[key], propsConfig[key]]);
207
+ }
53
208
  } else {
54
- ui[key] = defaultConfig[key];
209
+ config[key] = composedConfig[key];
210
+ }
211
+ }
212
+
213
+ return config;
214
+ }
215
+
216
+ /**
217
+ Turn simplified nested component config to regular config.
218
+ @param {Object | String} value
219
+ @returns {Object}
220
+ */
221
+ function stringToObject(value) {
222
+ return typeof value === "object" ? value : { base: value };
223
+ }
224
+
225
+ /**
226
+ Merge CVA compound variants arrays.
227
+ @param {Object} defaultConfig
228
+ @param {Object} globalConfig
229
+ @param {Object} propsConfig
230
+ @param {string} key
231
+ @param {boolean} isReplace - enables class replacement instead of merge.
232
+
233
+ @returns {Array}
234
+ */
235
+ function mergeCompoundVariants({ defaultConfig, globalConfig, propsConfig, key, isReplace }) {
236
+ if (
237
+ (globalConfig[key] && !Array.isArray(globalConfig[key])) ||
238
+ (propsConfig[key] && !Array.isArray(propsConfig[key])) ||
239
+ (defaultConfig[key] && !Array.isArray(defaultConfig[key]))
240
+ ) {
241
+ // eslint-disable-next-line no-console
242
+ console.error("CompoundVariants should be an array.");
243
+ }
244
+
245
+ let globalConfigUniqueItems = cloneDeep(globalConfig[key] || []);
246
+ let propsConfigUniqueItems = cloneDeep(propsConfig[key] || []);
247
+
248
+ const config = defaultConfig[key].map((defaultConfigItem) => {
249
+ /**
250
+ Compare two objects by keys for match.
251
+ @param {Object} configItem
252
+ @returns {Boolean}
253
+ */
254
+ function isSameItem(configItem) {
255
+ const hasConfigItemKeys = Object.keys(defaultConfigItem)
256
+ .map((key) => defaultConfigItem[key] === configItem[key] || key === "class")
257
+ .every((item) => !!item);
258
+
259
+ const hasDefaultConfigItemKeys = Object.keys(configItem)
260
+ .map((key) => defaultConfigItem[key] === configItem[key] || key === "class")
261
+ .every((item) => !!item);
262
+
263
+ return hasConfigItemKeys && hasDefaultConfigItemKeys;
55
264
  }
265
+
266
+ /**
267
+ Find the same compound variant item in custom config if exist.
268
+ @param {Object} config
269
+ @returns {Object|undefined}
270
+ */
271
+ function findItem(config = []) {
272
+ const globalConfigUniqueItemIndex = globalConfigUniqueItems.findIndex(isSameItem);
273
+ const propsConfigUniqueItemIndex = propsConfigUniqueItems.findIndex(isSameItem);
274
+
275
+ if (~globalConfigUniqueItemIndex) {
276
+ globalConfigUniqueItems.splice(globalConfigUniqueItemIndex, 1);
277
+ }
278
+
279
+ if (~propsConfigUniqueItemIndex) {
280
+ propsConfigUniqueItems.splice(propsConfigUniqueItemIndex, 1);
281
+ }
282
+
283
+ return config.find(isSameItem);
284
+ }
285
+
286
+ const globalConfigItem = findItem(globalConfig[key]);
287
+ const propsConfigItem = findItem(propsConfig[key]);
288
+
289
+ return globalConfigItem || propsConfigItem
290
+ ? {
291
+ ...defaultConfigItem,
292
+ class: isReplace
293
+ ? propsConfigItem?.class || globalConfigItem?.class || defaultConfigItem.class
294
+ : cx([defaultConfigItem.class, globalConfigItem?.class, propsConfigItem?.class]),
295
+ }
296
+ : defaultConfigItem;
297
+ });
298
+
299
+ return [...config, ...globalConfigUniqueItems, ...propsConfigUniqueItems];
300
+ }
301
+
302
+ /**
303
+ Merge component classes from "class" attribute into final config.
304
+ @param {Object} config
305
+ @param {Object} attrs
306
+ @param {string} topLevelClassKey
307
+
308
+ @returns {Object}
309
+ */
310
+ function mergeClassesIntoConfig(config, topLevelClassKey, attrs) {
311
+ if (typeof config[topLevelClassKey] === "object") {
312
+ config[topLevelClassKey].base = cx([config[topLevelClassKey]?.base, attrs.class]);
313
+ } else {
314
+ config[topLevelClassKey] = cx([config[topLevelClassKey], attrs.class]);
56
315
  }
57
316
 
58
- return ui;
317
+ return config;
59
318
  }
60
319
 
61
320
  /**
62
321
  Check if slot defined, and have a content.
63
- @returns boolean
322
+ @param slot
323
+ @param props
324
+
325
+ @returns {boolean}
64
326
  */
65
327
  function hasSlotContent(slot, props = {}) {
66
328
  const asArray = (arg) => (Array.isArray(arg) ? arg : arg != null ? [arg] : []);
@@ -79,3 +341,52 @@ function hasSlotContent(slot, props = {}) {
79
341
 
80
342
  return !isVNodeEmpty(slot?.(props));
81
343
  }
344
+
345
+ /**
346
+ Deeply clone given object (same as lodash.cloneDeep).
347
+ @param {Object} entity
348
+ @param cache
349
+
350
+ @returns {Object}
351
+ */
352
+ function cloneDeep(entity, cache = new WeakMap()) {
353
+ const referenceTypes = ["Array", "Object", "Map", "Set", "Date"];
354
+ const entityType = Object.prototype.toString.call(entity);
355
+
356
+ if (
357
+ !new RegExp(referenceTypes.join("|")).test(entityType) ||
358
+ entity instanceof WeakMap ||
359
+ entity instanceof WeakSet
360
+ ) {
361
+ return entity;
362
+ }
363
+
364
+ if (cache.has(entity)) {
365
+ return cache.get(entity);
366
+ }
367
+
368
+ const c = new entity.constructor();
369
+
370
+ if (entity instanceof Map) {
371
+ entity.forEach((value, key) => c.set(cloneDeep(key), cloneDeep(value)));
372
+ }
373
+
374
+ if (entity instanceof Set) {
375
+ entity.forEach((value) => c.add(cloneDeep(value)));
376
+ }
377
+
378
+ if (entity instanceof Date) {
379
+ return new Date(entity);
380
+ }
381
+
382
+ cache.set(entity, c);
383
+
384
+ return Object.assign(
385
+ c,
386
+ ...Object.keys(entity).map((prop) => ({ [prop]: cloneDeep(entity[prop], cache) })),
387
+ );
388
+ }
389
+
390
+ function setColor(classes, color) {
391
+ return classes?.replaceAll("{color}", color);
392
+ }
@@ -4,9 +4,4 @@ export { default as TCard } from "./t-card";
4
4
  export { default as TCheckbox } from "./t-checkbox";
5
5
  export { default as TDatepicker } from "./TDatepicker/index";
6
6
  export { default as TDropdown } from "./t-dropdown";
7
- export { default as TInput } from "./t-input";
8
- export { default as TModal } from "./t-modal";
9
- export { default as TPagination } from "./t-pagination";
10
7
  export { default as TRadio } from "./t-radio";
11
- export { default as TTable } from "./t-table";
12
- export { default as TTextarea } from "./t-textarea";
@@ -157,25 +157,48 @@ async function extractInformation(absolutePath, config) {
157
157
 
158
158
  function getDefaultConfigJson(fileContents) {
159
159
  const objectStartIndex = fileContents.indexOf("{");
160
- const objectString = fileContents.substring(objectStartIndex).replace("};", "}");
160
+ const variablePattern = /([^:]+):\s*(?!true|false|undefined)([a-zA-Z_]\w*)/g;
161
+ let objectString = fileContents
162
+ .substring(objectStartIndex)
163
+ .replace("};", "}")
164
+ .replace(/undefined/g, '"undefined"')
165
+ .replace(variablePattern, (match, key) => key + ": {}");
161
166
 
162
167
  return eval("(" + objectString + ")"); // Converting into JS object
163
168
  }
164
169
 
165
170
  function getGlobalConfigJson(fileContents, componentName) {
166
171
  const startIndex = fileContents.indexOf(`${componentName}:`);
167
- const endIndex = fileContents.indexOf("}", startIndex) + 1;
172
+
173
+ // find index of the last closing bracket
174
+ let endIndex = -1;
175
+ let braceCount = 0;
176
+
177
+ for (let i = startIndex; i < fileContents.length; i++) {
178
+ if (fileContents[i] === "{") {
179
+ braceCount++;
180
+ } else if (fileContents[i] === "}") {
181
+ braceCount--;
182
+
183
+ if (braceCount === 0) {
184
+ endIndex = i;
185
+ break;
186
+ }
187
+ }
188
+ }
189
+
190
+ // Get component config raw string
168
191
  const rawString = fileContents.slice(startIndex, endIndex);
169
192
 
170
193
  // If the stings are present in config but commented - remove them
171
- const cleanContents = rawString.replace(/\/\/.*\n?/g, "");
194
+ const stringWithoutComments = rawString.replace(/\/\/.*$/gm, "");
172
195
 
173
196
  // Check if final JSON string is valid: TODO: find better solution
174
- if (!cleanContents.includes("}")) return {};
197
+ if (!stringWithoutComments.includes("}")) return {};
175
198
 
176
- const jsonString = `{${rawString}\n}}`
177
- .replace(/'/g, '"')
178
- .replace(/(\w+)\s*:/g, '"$1":')
199
+ const jsonString = `{${stringWithoutComments}\n}}`
200
+ .replace(/[`']/g, '"')
201
+ .replace(/(\w+)\s*: /g, '"$1":')
179
202
  .replace(/,\s*}/g, "}");
180
203
 
181
204
  return JSON.parse(jsonString);
@@ -201,12 +224,15 @@ async function extractInformation(absolutePath, config) {
201
224
  attributes: doc.props?.map((prop) => ({
202
225
  name: prop.name,
203
226
  required: prop.required,
204
- description: prop.description,
227
+ description: prop.tags?.ignore ? "@ignore: " + prop.description : prop.description,
205
228
  value: {
206
229
  kind: "expression",
207
230
  type: prop.values ? `'${prop.values.join("' | '")}'` : prop.type?.name ?? "any",
208
231
  },
209
- default: (defaultValues && defaultValues[prop.name]) || prop.defaultValue?.value,
232
+ default:
233
+ defaultValues && prop.name in defaultValues
234
+ ? defaultValues[prop.name].toString()
235
+ : prop.defaultValue?.value.toString(),
210
236
  })),
211
237
  events: doc.events?.map((event) => ({
212
238
  name: event.name,
@@ -1,5 +1,5 @@
1
- import * as path from "path";
2
- import * as fs from "fs";
1
+ import path from "path";
2
+ import fs from "fs";
3
3
  import { readFile } from "fs/promises";
4
4
 
5
5
  export async function extractConfig(cwd, watch = false, configFileFromCmd, pathArray = []) {
@@ -11,16 +11,22 @@ export async function extractConfig(cwd, watch = false, configFileFromCmd, pathA
11
11
  const fileContent = await readFile(path.join(cwd, "package.json"), "utf-8");
12
12
  const packageJson = JSON.parse(fileContent);
13
13
 
14
+ let additionalConfig = {};
15
+
16
+ if (fs.existsSync(configFilePath)) {
17
+ additionalConfig = await import(configFilePath);
18
+ }
19
+
14
20
  return {
15
21
  cwd,
16
22
  watch,
17
23
  componentsRoot: configFilePath ? path.dirname(configFilePath) : cwd,
18
- components: componentsFromCmd || "src/**/*.vue",
24
+ components: componentsFromCmd || "(.vueless/**/*.vue|src/components/**/*.vue)",
19
25
  outFile: outFileFromCmd || packageJson["web-types"] || "./web-types.json",
20
26
  packageName: packageJson["name"],
21
27
  packageVersion: packageJson["version"],
22
28
  typesSyntax: "typescript",
23
29
  descriptionMarkup: "markdown",
24
- ...(fs.existsSync(configFilePath) ? require(configFilePath) : undefined),
30
+ ...additionalConfig,
25
31
  };
26
32
  }
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "vueless",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Vue Styleless Component Framework",
5
+ "homepage": "https://github.com/vuelessjs/vueless#readme",
6
+ "author": "Johnny Grid",
7
+ "license": "MIT",
5
8
  "main": "index.js",
6
9
  "scripts": {
7
10
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -10,11 +13,41 @@
10
13
  "type": "git",
11
14
  "url": "git+https://github.com/vuelessjs/vueless.git"
12
15
  },
13
- "author": "Johnny Grid",
14
- "license": "MIT",
15
16
  "bugs": {
16
17
  "url": "https://github.com/vuelessjs/vueless/issues"
17
18
  },
18
- "homepage": "https://github.com/vuelessjs/vueless#readme",
19
+ "dependencies": {
20
+ "@uppy/core": "^3.3.1",
21
+ "@uppy/drag-drop": "^3.0.2",
22
+ "@uppy/vue": "^1.0.2",
23
+ "cva": "^1.0.0-beta.1",
24
+ "lodash.clonedeep": "^4.5.0",
25
+ "lodash.debounce": "^4.0.8",
26
+ "lodash.get": "^4.4.2",
27
+ "lodash.isequal": "^4.5.0",
28
+ "lodash.merge": "^4.6.2",
29
+ "lodash.pick": "^4.4.0",
30
+ "lodash.range": "^3.2.0",
31
+ "tailwind-merge": "^2.1.0",
32
+ "vue-tippy": "^6.0.0-beta.0"
33
+ },
34
+ "devDependencies": {
35
+ "@material-symbols/svg-500": "^0.14.3",
36
+ "@storybook/addon-essentials": "^8.0.0",
37
+ "@storybook/addon-interactions": "^8.0.0",
38
+ "@storybook/addon-links": "^8.0.0",
39
+ "@storybook/blocks": "^8.0.0",
40
+ "@storybook/manager-api": "^8.0.0",
41
+ "@storybook/test": "^8.0.0",
42
+ "@storybook/theming": "^8.0.0",
43
+ "@storybook/vue3": "^8.0.0",
44
+ "@storybook/vue3-vite": "^8.0.0",
45
+ "@tailwindcss/forms": "^0.5.4",
46
+ "autoprefixer": "^10.4.5",
47
+ "prettier2": "npm:prettier@2.8.8",
48
+ "storybook": "^8.0.0",
49
+ "svgo": "^3.2.0",
50
+ "tailwindcss": "^3.3.3"
51
+ },
19
52
  "web-types": "./web-types.json"
20
53
  }
@@ -0,0 +1,59 @@
1
+ /* eslint-disable no-console */
2
+
3
+ import UnpluginVueComponents from "unplugin-vue-components/vite";
4
+ import unpluginComponentsResolver from "./services/unpluginComponentsResolver";
5
+ import { copyIcons, removeIcons } from "./services/iconResolver.service";
6
+ import { loadSvg } from "./services/svgLoader.service";
7
+ import { createTailwindSafelist } from "./services/tailwindSafelist.service";
8
+
9
+ /* Automatically importing Vueless components on demand */
10
+ export const VuelessUnpluginComponents = (options) =>
11
+ UnpluginVueComponents({
12
+ resolvers: [unpluginComponentsResolver],
13
+ dts: false,
14
+ ...options,
15
+ });
16
+
17
+ /*
18
+ – Creates tailwind colors safelist (collect only used on the project colors).
19
+ – Collects SVG icons for build (UIcon bundle size optimization).
20
+ – Loads SVG images as a Vue components.
21
+ */
22
+ export const Vueless = function (options = {}) {
23
+ /* remove icons if server stopped */
24
+ process.on("SIGINT", () => {
25
+ removeIcons(options.debug);
26
+ process.exit(0);
27
+ });
28
+
29
+ return {
30
+ name: "vite-plugin-vue-vueless",
31
+ enforce: "pre",
32
+
33
+ config: () => ({
34
+ define: {
35
+ "process.env": {},
36
+ },
37
+ }),
38
+
39
+ configResolved: (config) => {
40
+ if (config.command === "build") {
41
+ /* collect used in project colors for tailwind safelist */
42
+ createTailwindSafelist();
43
+ /* dynamically copy icons before build */
44
+ copyIcons(options.mode, options.debug);
45
+ }
46
+
47
+ if (config.command === "dev" || config.command === "serve") {
48
+ /* remove dynamically copied icons after build */
49
+ removeIcons(options.debug);
50
+ }
51
+ },
52
+
53
+ /* remove dynamically copied icons after build */
54
+ buildEnd: () => removeIcons(options.debug),
55
+
56
+ /* load SVG images as a Vue components */
57
+ load: async (id) => await loadSvg(id, options),
58
+ };
59
+ };