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
@@ -0,0 +1,172 @@
1
+ /**
2
+ Custom vueless UI library resolver for "unplugin-vue-components" plugin.
3
+
4
+ When new components are added, please add related to them data into an object below with a format:
5
+ - key = component name;
6
+ - value = component folder;
7
+
8
+ Docs:
9
+ https://github.com/unplugin/unplugin-vue-components?tab=readme-ov-file#importing-from-ui-libraries
10
+ */
11
+
12
+ export const components = {
13
+ /* Buttons & Links */
14
+ UButton: "ui.button",
15
+ ULink: "ui.button-link",
16
+ UToggle: "ui.button-toggle",
17
+ UToggleItem: "ui.button-toggle-item",
18
+
19
+ /* Dropdowns */
20
+ UDropdownButton: "ui.dropdown-button",
21
+ UDropdownBadge: "ui.dropdown-badge",
22
+ UDropdownLink: "ui.dropdown-link",
23
+ UDropdownItem: "ui.dropdown-item",
24
+
25
+ /* Form Inputs & Controls */
26
+ UInput: "ui.form-input",
27
+ UInputFile: "ui.form-input-file",
28
+ UInputMoney: "ui.form-input-money",
29
+ UInputSearch: "ui.form-input-search",
30
+ UInputNumber: "ui.form-input-number",
31
+ UInputRating: "ui.form-input-rating",
32
+ UTextarea: "ui.form-textarea",
33
+ USelect: "ui.form-select",
34
+ UMultiselect: "ui.form-select-multi",
35
+ UCheckbox: "ui.form-checkbox",
36
+ UCheckboxGroup: "ui.form-checkbox-group",
37
+ UCheckboxMultiState: "ui.form-checkbox-multi-state",
38
+ USwitch: "ui.form-switch",
39
+ URadio: "ui.form-radio",
40
+ URadioCard: "ui.form-radio-card",
41
+ URadioGroup: "ui.form-radio-group",
42
+ UCalendar: "ui.form-calendar",
43
+ UDatePicker: "ui.form-date-picker",
44
+ UDatePickerRange: "ui.form-date-picker-range",
45
+ ULabel: "ui.form-label",
46
+
47
+ /* Text & Content */
48
+ UHeader: "ui.text-header",
49
+ UText: "ui.text-block",
50
+ UAlert: "ui.text-alert",
51
+ UMoney: "ui.text-money",
52
+ UFile: "ui.text-file",
53
+ UFiles: "ui.text-files",
54
+ UEmpty: "ui.text-empty",
55
+ UBadge: "ui.text-badge",
56
+
57
+ /* Containers */
58
+ UDivider: "ui.container-divider",
59
+ URow: "ui.container-row",
60
+ UGroup: "ui.container-group",
61
+ UGroups: "ui.container-groups",
62
+ UAccordion: "ui.container-accordion",
63
+ UCard: "ui.container-card",
64
+ UModal: "ui.container-modal",
65
+ UModalConfirm: "ui.container-modal-confirm",
66
+ UPage: "ui.container-page",
67
+
68
+ /* Images and Icons */
69
+ UIcon: "ui.image-icon",
70
+ ULogo: "ui.image-logo",
71
+ UAvatar: "ui.image-avatar",
72
+
73
+ /* Data */
74
+ UTable: "ui.data-table",
75
+ UTableCell: "ui.data-table-cell",
76
+ UDataList: "ui.data-list",
77
+
78
+ /* Navigation */
79
+ UTab: "ui.navigation-tab",
80
+ UTabs: "ui.navigation-tabs",
81
+ UStepper: "ui.navigation-stepper",
82
+ UPagination: "ui.navigation-pagination",
83
+
84
+ /* Other */
85
+ UDot: "ui.other-dot",
86
+ ULoader: "ui.other-loader",
87
+ };
88
+
89
+ export default function (componentName) {
90
+ const components = {
91
+ /* Buttons & Links */
92
+ UButton: "ui.button",
93
+ ULink: "ui.button-link",
94
+ UToggle: "ui.button-toggle",
95
+ UToggleItem: "ui.button-toggle-item",
96
+
97
+ /* Dropdowns */
98
+ UDropdownButton: "ui.dropdown-button",
99
+ UDropdownBadge: "ui.dropdown-badge",
100
+ UDropdownLink: "ui.dropdown-link",
101
+ UDropdownItem: "ui.dropdown-item",
102
+ UDropdownList: "ui.dropdown-list",
103
+
104
+ /* Form Inputs & Controls */
105
+ UInput: "ui.form-input",
106
+ UInputFile: "ui.form-input-file",
107
+ UInputMoney: "ui.form-input-money",
108
+ UInputSearch: "ui.form-input-search",
109
+ UInputNumber: "ui.form-input-number",
110
+ UInputRating: "ui.form-input-rating",
111
+ UTextarea: "ui.form-textarea",
112
+ USelect: "ui.form-select",
113
+ UCheckbox: "ui.form-checkbox",
114
+ UCheckboxGroup: "ui.form-checkbox-group",
115
+ UCheckboxMultiState: "ui.form-checkbox-multi-state",
116
+ USwitch: "ui.form-switch",
117
+ URadio: "ui.form-radio",
118
+ URadioCard: "ui.form-radio-card",
119
+ URadioGroup: "ui.form-radio-group",
120
+ UCalendar: "ui.form-calendar",
121
+ UDatePicker: "ui.form-date-picker",
122
+ UDatePickerRange: "ui.form-date-picker-range",
123
+ ULabel: "ui.form-label",
124
+
125
+ /* Text & Content */
126
+ UHeader: "ui.text-header",
127
+ UText: "ui.text-block",
128
+ UAlert: "ui.text-alert",
129
+ UMoney: "ui.text-money",
130
+ UFile: "ui.text-file",
131
+ UFiles: "ui.text-files",
132
+ UEmpty: "ui.text-empty",
133
+ UBadge: "ui.text-badge",
134
+
135
+ /* Containers */
136
+ UDivider: "ui.container-divider",
137
+ URow: "ui.container-row",
138
+ UGroup: "ui.container-group",
139
+ UGroups: "ui.container-groups",
140
+ UAccordion: "ui.container-accordion",
141
+ UCard: "ui.container-card",
142
+ UModal: "ui.container-modal",
143
+ UModalConfirm: "ui.container-modal-confirm",
144
+ UPage: "ui.container-page",
145
+
146
+ /* Images and Icons */
147
+ UIcon: "ui.image-icon",
148
+ ULogo: "ui.image-logo",
149
+ UAvatar: "ui.image-avatar",
150
+
151
+ /* Data */
152
+ UTable: "ui.data-table",
153
+ UTableCell: "ui.data-table-cell",
154
+ UDataList: "ui.data-list",
155
+
156
+ /* Navigation */
157
+ UTab: "ui.navigation-tab",
158
+ UTabs: "ui.navigation-tabs",
159
+ UStepper: "ui.navigation-stepper",
160
+ UPagination: "ui.navigation-pagination",
161
+
162
+ /* Other */
163
+ UDot: "ui.other-dot",
164
+ ULoader: "ui.other-loader",
165
+ };
166
+
167
+ const componentFolder = components[componentName];
168
+
169
+ if (componentFolder) {
170
+ return { from: `/.vueless/${componentFolder}` };
171
+ }
172
+ }
@@ -1,19 +1,14 @@
1
- import { renderToStaticMarkup } from "react-dom/server";
2
- import { decode } from "html-entities";
3
- import prettier2 from "prettier2";
4
- import HTMLParser from "prettier2/parser-html";
1
+ import { contributions } from "/web-types.json";
5
2
 
6
3
  const getComponentData = (componentName) => {
7
- return require("/web-types.json").default.contributions.html.tags.find(
8
- (item) => item.name === componentName,
9
- );
4
+ return contributions.html.tags.find((item) => item.name === componentName);
10
5
  };
11
6
 
12
- export const getSlotNames = (componentName) => {
7
+ export function getSlotNames(componentName) {
13
8
  return getComponentData(componentName)?.slots?.map((item) => item.name);
14
- };
9
+ }
15
10
 
16
- export const getArgTypes = (componentName) => {
11
+ export function getArgTypes(componentName) {
17
12
  const component = getComponentData(componentName);
18
13
 
19
14
  if (!component) return;
@@ -25,20 +20,59 @@ export const getArgTypes = (componentName) => {
25
20
  });
26
21
 
27
22
  component.attributes?.forEach((attribute) => {
28
- const options = attribute.value.type.replace(/['|]/g, "").split(/\s+/);
23
+ const type = attribute.value.type;
29
24
 
30
- if (options.length > 1) {
25
+ if (type === "string") {
31
26
  types[attribute.name] = {
32
- options,
33
- control: "select",
27
+ control: "text",
34
28
  table: {
35
29
  defaultValue: { summary: attribute.default || "" },
36
30
  },
37
31
  };
38
32
  }
33
+
34
+ if (type === "number") {
35
+ types[attribute.name] = {
36
+ control: "number",
37
+ table: {
38
+ defaultValue: { summary: attribute.default || "" },
39
+ },
40
+ };
41
+ }
42
+
43
+ if (type === "boolean") {
44
+ types[attribute.name] = {
45
+ control: "boolean",
46
+ table: {
47
+ defaultValue: { summary: attribute.default || "" },
48
+ },
49
+ };
50
+ }
51
+
52
+ if (type.includes("|")) {
53
+ const options = attribute.value.type.replace(/['|]/g, "").split(/\s+/);
54
+
55
+ if (options.length > 1) {
56
+ types[attribute.name] = {
57
+ options,
58
+ control: "select",
59
+ table: {
60
+ defaultValue: { summary: attribute.default || "" },
61
+ },
62
+ };
63
+ }
64
+ }
65
+
66
+ if (attribute.description?.includes("@ignore")) {
67
+ types[attribute.name] = {
68
+ table: {
69
+ disable: true,
70
+ },
71
+ };
72
+ }
39
73
  });
40
74
 
41
- if (import.meta.env.VITE_STORYBOOK_FULL) {
75
+ if (import.meta.env.STORYBOOK_FULL) {
42
76
  component.events?.forEach((event) => {
43
77
  const eventName = "on" + event.name.charAt(0).toUpperCase() + event.name.slice(1);
44
78
 
@@ -50,69 +84,8 @@ export const getArgTypes = (componentName) => {
50
84
  }
51
85
 
52
86
  return types;
53
- };
54
-
55
- export const renderToHTML = (templateSource, { args, argTypes }) => {
56
- const componentArgs = {};
57
-
58
- for (const [key, val] of Object.entries(argTypes)) {
59
- const value = args[key];
60
-
61
- if (
62
- typeof val !== "undefined" &&
63
- val.table &&
64
- val.table.category === "props" &&
65
- value !== val.defaultValue
66
- ) {
67
- componentArgs[key] = val;
68
- }
69
- }
70
-
71
- const slotTemplateCode =
72
- // eslint-disable-next-line vue/max-len
73
- '<template v-for="(slot, index) of slots" :key="index" v-slot:[slot]><template v-if="args[slot]">{{args[slot]}}</template></template>';
74
- const templateWrapperRegEx = /<template>([\s\S]*)<\/template>/i;
75
- const vBindRegEx = /v-bind="\{([\s\S]*?)}"/g;
76
-
77
- const propsString = Object.keys(componentArgs)
78
- .map((key) => " " + propToSource(kebabCase(key), args[key]))
79
- .join("");
87
+ }
80
88
 
81
- const source = templateSource
82
- .replace(slotTemplateCode, "")
83
- .replace(templateWrapperRegEx, "$1")
84
- .replace(vBindRegEx, propsString);
85
-
86
- const markup = renderToStaticMarkup(source);
87
-
88
- return prettier2.format(decode(markup), {
89
- parser: "html",
90
- plugins: [HTMLParser],
91
- htmlWhitespaceSensitivity: "ignore",
92
- tabWidth: 2,
93
- });
94
-
95
- function propToSource(key, val) {
96
- const type = typeof val;
97
-
98
- switch (type) {
99
- case "boolean":
100
- return val ? key : "";
101
- case "string":
102
- return `${key}="${val}"`;
103
- default:
104
- return `:${key}="${val}"`;
105
- }
106
- }
107
-
108
- function kebabCase(str) {
109
- return str
110
- .split("")
111
- .map((letter, idx) => {
112
- return letter.toUpperCase() === letter
113
- ? `${idx !== 0 ? "-" : ""}${letter.toLowerCase()}`
114
- : letter;
115
- })
116
- .join("");
117
- }
118
- };
89
+ export function getSource(defaultCnfig) {
90
+ return defaultCnfig.replace("export default /*tw*/ ", "").replace(";", "");
91
+ }
@@ -0,0 +1,112 @@
1
+ import colors from "tailwindcss/colors";
2
+ import forms from "@tailwindcss/forms";
3
+ import vuelessConfig from "../../vueless.config";
4
+
5
+ export const grayColors = ["slate", "gray", "zinc", "neutral", "stone"];
6
+ export const brandColors = [
7
+ "brand",
8
+ "red",
9
+ "orange",
10
+ "amber",
11
+ "yellow",
12
+ "lime",
13
+ "green",
14
+ "emerald",
15
+ "teal",
16
+ "cyan",
17
+ "sky",
18
+ "blue",
19
+ "indigo",
20
+ "violet",
21
+ "purple",
22
+ "fuchsia",
23
+ "pink",
24
+ "rose",
25
+ ];
26
+
27
+ export default class TailwindServiceDefault {
28
+ constructor() {
29
+ this.vuelessPreset = this.get();
30
+ }
31
+
32
+ /**
33
+ * Transform CSS variable with RGB numbers into CSS color.
34
+ * @returns {Function}
35
+ */
36
+ static twColorWithOpacity(variableName) {
37
+ return ({ opacityValue }) => {
38
+ return opacityValue !== undefined
39
+ ? `rgba(var(${variableName}), ${opacityValue})`
40
+ : `rgb(var(${variableName}))`;
41
+ };
42
+ }
43
+
44
+ /**
45
+ * Convert sting patterns to RegExp.
46
+ * @returns {Array} - TailwindCSS safelist.
47
+ */
48
+ static getSafelist() {
49
+ return JSON.parse(process.env.SAFELIST_JSON || "[]").map((rule) => ({
50
+ ...rule,
51
+ pattern: new RegExp(rule.pattern),
52
+ }));
53
+ }
54
+
55
+ /**
56
+ * Generates preset for TailwindCSS base on Vueless config.
57
+ * @returns {Object}
58
+ */
59
+ get() {
60
+ const isProd = process.env.NODE_ENV === "production";
61
+ const brandColor = TailwindServiceDefault.twColorWithOpacity("--color-brand");
62
+ const { brand, gray } = vuelessConfig;
63
+
64
+ let brandPalette = brandColors.includes(brand) ? colors[brand] : colors.green;
65
+ let grayPalette = grayColors.includes(gray) ? colors[gray] : colors.zinc;
66
+
67
+ if (brand === "grayscale") {
68
+ brandPalette = grayPalette;
69
+ }
70
+
71
+ const prodSafelist = TailwindServiceDefault.getSafelist();
72
+ const devSafelist = [
73
+ {
74
+ pattern: /(border|bg|text|ring)-(.*)-((50|[1-9]00|950)?)$/,
75
+ variants: ["hover", "focus", "focus-within", "active"],
76
+ },
77
+ ];
78
+
79
+ return {
80
+ content: [
81
+ "./index.html",
82
+ "./src/**/*.{js,ts,jsx,tsx,vue}",
83
+ "./vueless.config.{js,ts}",
84
+ "./.vueless/**/*.{js,ts,vue}",
85
+ "./.vueless-layouts/**/*.{js,ts,vue}",
86
+ "./.vueless-services/**/*.{js,ts,vue}",
87
+ ],
88
+ safelist: isProd ? prodSafelist : devSafelist,
89
+ theme: {
90
+ extend: {
91
+ colors: {
92
+ brand: { ...brandPalette, DEFAULT: brandColor },
93
+ gray: grayPalette,
94
+ },
95
+ spacing: {
96
+ "safe-top": "env(safe-area-inset-top)",
97
+ "safe-bottom": "env(safe-area-inset-bottom)",
98
+ "safe-left": "env(safe-area-inset-left)",
99
+ "safe-right": "env(safe-area-inset-right)",
100
+ "mobile-menu-height": "3.5rem",
101
+ },
102
+ fontSize: {
103
+ "2xs": ["0.625rem", "0.875rem"], // 10px
104
+ },
105
+ },
106
+ },
107
+ plugins: [forms],
108
+ };
109
+ }
110
+ }
111
+
112
+ export const { vuelessPreset } = new TailwindServiceDefault();
@@ -1,35 +1,36 @@
1
1
  import merge from "lodash.merge";
2
2
  import { defineConfig } from "cva";
3
3
  import { twMerge } from "tailwind-merge";
4
+ import colors from "tailwindcss/colors";
5
+ import { brandColors, grayColors } from "../service.tailwind";
6
+ import vuelessConfig from "/vueless.config";
4
7
 
5
8
  /*
6
9
  Export cva (class variance authority) methods extended with tailwind-merge.
7
10
  It helps to make class variation switchers and removes class duplications.
8
11
  https://beta.cva.style
9
12
  */
10
- export const { cva, cx, compose } = defineConfig({
13
+ export const {
14
+ cva: classVarianceAuthority,
15
+ cx,
16
+ compose,
17
+ } = defineConfig({
11
18
  hooks: { onComplete: (className) => twMerge(className) },
12
19
  });
13
20
 
14
- /*
15
- Export TailwindCSS config.
16
- https://tailwindcss.com
17
- */
18
- export const { default: tailwindConfig } = require("/tailwind.config");
21
+ export const cva = ({ base = "", variants = {}, compoundVariants = [], defaultVariants = {} }) =>
22
+ classVarianceAuthority({
23
+ base,
24
+ variants,
25
+ compoundVariants,
26
+ defaultVariants,
27
+ });
19
28
 
20
29
  /*
21
30
  Export global config settings for the current library.
22
31
  Did as a separate variables for more comfortable usage.
23
32
  */
24
- export const {
25
- default: {
26
- fallbackLocale,
27
- backgroundsPath,
28
- layout,
29
- strategyOverwrite,
30
- component: globalComponentConfig,
31
- },
32
- } = require("/Users/ivan.hridniev/PhpstormProjects/vuelessjs/vueless/vueless.config");
33
+ export const { layout, strategy, gray, brand, component: globalComponentConfig } = vuelessConfig;
33
34
 
34
35
  export default class UIServiceDefault {
35
36
  isMac = false;
@@ -38,6 +39,7 @@ export default class UIServiceDefault {
38
39
  isAndroid = false;
39
40
  isMobileApp = false;
40
41
  PX_IN_REM = 16;
42
+ HYPHEN_SYMBOL = "-";
41
43
 
42
44
  constructor() {
43
45
  this.isMac = this.checkIsMac();
@@ -80,20 +82,53 @@ export default class UIServiceDefault {
80
82
  return navigator.userAgentData?.platform || navigator.platform || "unknown";
81
83
  }
82
84
 
83
- getBasePath() {
84
- const basePath = import.meta.env.VITE_BASE_PATH;
85
+ static convertHexInRgb(hex) {
86
+ const color = hex.replace(/#/g, "");
87
+
88
+ let r, g, b;
85
89
 
86
- return !basePath || basePath === "/" ? "/" : `/${basePath}`;
90
+ if (color.length === 6) {
91
+ r = parseInt(color.substring(0, 2), 16);
92
+ g = parseInt(color.substring(2, 4), 16);
93
+ b = parseInt(color.substring(4, 6), 16);
94
+ }
95
+
96
+ if (color.length === 3) {
97
+ r = parseInt(color.substring(0, 1).repeat(2), 16);
98
+ g = parseInt(color.substring(1, 2).repeat(2), 16);
99
+ b = parseInt(color.substring(2, 3).repeat(2), 16);
100
+ }
101
+
102
+ return color.length === 6 || color.length === 3 ? `${r}, ${g}, ${b}` : "";
87
103
  }
88
104
 
89
- convertHexInRgb(hex) {
90
- const color = hex.replace(/#/g, "");
105
+ setBrandColor(brandColor) {
106
+ function getBrandColor(color, grayColor, brandColors) {
107
+ if (color === "grayscale") {
108
+ return grayColor;
109
+ }
91
110
 
92
- const r = parseInt(color.substring(0, 2), 16);
93
- const g = parseInt(color.substring(2, 4), 16);
94
- const b = parseInt(color.substring(4, 6), 16);
111
+ return brandColors.includes(color) ? colors[color][500] : color;
112
+ }
95
113
 
96
- return `${r}, ${g}, ${b}`;
114
+ function getGrayColor(color, grayColors) {
115
+ return grayColors.includes(color) ? colors[color][900] : colors.zinc[900];
116
+ }
117
+
118
+ const grayColor = getGrayColor(gray, grayColors);
119
+ const localBrandColor = getBrandColor(brandColor, grayColor, brandColors);
120
+ const globalBrandColor = getBrandColor(brand, grayColor, brandColors);
121
+
122
+ const style = document.createElement("style");
123
+ const rgb = UIServiceDefault.convertHexInRgb(localBrandColor || globalBrandColor || grayColor);
124
+
125
+ style.innerHTML = `
126
+ :root {
127
+ --color-brand: ${rgb};
128
+ }
129
+ `;
130
+
131
+ document.head.appendChild(style);
97
132
  }
98
133
 
99
134
  getRandomId(idLength = 15) {
@@ -108,28 +143,6 @@ export default class UIServiceDefault {
108
143
  return id;
109
144
  }
110
145
 
111
- removeOutlineFocus() {
112
- const styleTag = document.createElement("style");
113
- let focusRing = true;
114
-
115
- document.head.appendChild(styleTag).innerHTML = `
116
- "body.hide-focus-ring *:focus {
117
- outline: none !important;
118
- }`;
119
-
120
- document.addEventListener("mousedown", () => {
121
- if (focusRing) document.body.classList.add("hide-focus-ring");
122
-
123
- focusRing = false;
124
- });
125
-
126
- document.addEventListener("keydown", () => {
127
- if (!focusRing) document.body.classList.remove("hide-focus-ring");
128
-
129
- focusRing = true;
130
- });
131
- }
132
-
133
146
  static setTitle({ title, separator = " / ", suffix = "" }) {
134
147
  document.title = title ? title + separator + suffix : suffix;
135
148
  }
@@ -149,19 +162,24 @@ export default class UIServiceDefault {
149
162
  Get default component props value related on default and global config.
150
163
  @param { Object } defaultConfig
151
164
  @param { String } name
152
- @returns string
165
+ @returns { Object }
153
166
  */
154
167
  static get(defaultConfig, name) {
168
+ const globalVuelessColor = brand ? { color: brand } : {};
169
+
155
170
  return {
156
- default: merge(defaultConfig.defaultVariants, globalComponentConfig[name]?.defaultVariants),
171
+ default: merge(
172
+ defaultConfig.defaultVariants,
173
+ globalVuelessColor,
174
+ globalComponentConfig[name]?.defaultVariants,
175
+ ),
157
176
  };
158
177
  }
159
178
  }
160
179
 
161
180
  export const {
162
- getBasePath,
163
181
  getRandomId,
164
- removeOutlineFocus,
182
+ setBrandColor,
165
183
  convertHexInRgb,
166
184
  setTitle,
167
185
  setFavicon,
@@ -171,4 +189,5 @@ export const {
171
189
  isAndroid,
172
190
  isMobileApp,
173
191
  PX_IN_REM,
192
+ HYPHEN_SYMBOL,
174
193
  } = new UIServiceDefault();
@@ -0,0 +1,16 @@
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
2
+ import { getSource } from "vueless/service.storybook";
3
+
4
+ import * as stories from "./index.stories";
5
+ import defaultConfig from "./configs/default.config?raw"
6
+
7
+ <Meta of={stories} />
8
+ <Title of={stories} />
9
+ <Subtitle of={stories} />
10
+ <Description of={stories} />
11
+ <Primary of={stories} />
12
+ <Controls of={stories.Default} />
13
+ <Stories of={stories} />
14
+
15
+ ## **Default config**
16
+ <Source code={getSource(defaultConfig)} language="jsx" dark />
@@ -0,0 +1,41 @@
1
+ import { computed } from "vue";
2
+ import useUI from "vueless/composable.ui";
3
+ import { cva } from "vueless/service.ui";
4
+
5
+ import defaultConfig from "../configs/default.config";
6
+
7
+ export function useAttrs(props) {
8
+ const { config, getAttrs, setColor } = useUI(defaultConfig, () => props.config);
9
+ const { button } = config.value;
10
+
11
+ const cvaButton = cva({
12
+ base: button.base,
13
+ variants: button.variants,
14
+ compoundVariants: button.compoundVariants,
15
+ });
16
+
17
+ const buttonClasses = computed(() =>
18
+ setColor(
19
+ cvaButton({
20
+ size: props.size,
21
+ color: props.color,
22
+ variant: props.variant,
23
+ pill: props.pill,
24
+ block: props.block,
25
+ square: props.square,
26
+ filled: props.filled,
27
+ loading: props.loading,
28
+ disabled: props.disabled,
29
+ }),
30
+ props.color,
31
+ ),
32
+ );
33
+
34
+ const buttonAttrs = getAttrs("button", { classes: buttonClasses });
35
+ const textAttrs = getAttrs("text");
36
+
37
+ return {
38
+ textAttrs,
39
+ buttonAttrs,
40
+ };
41
+ }