vueless 0.0.825-beta.99 → 1.0.0

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 (371) hide show
  1. package/README.md +62 -8
  2. package/{adatper.locale → adapter.locale}/locales/en.ts +10 -10
  3. package/{adatper.locale → adapter.locale}/vueless.ts +32 -3
  4. package/bin/commands/copy.js +11 -5
  5. package/bin/commands/create.js +35 -15
  6. package/bin/commands/init.js +14 -12
  7. package/bin/constants.js +2 -1
  8. package/bin/utils/dataUtils.js +2 -2
  9. package/composables/useComponentLocaleMassages.ts +29 -0
  10. package/composables/useDarkMode.ts +2 -2
  11. package/composables/useLocale.ts +2 -2
  12. package/composables/useUI.ts +3 -3
  13. package/constants.js +38 -26
  14. package/directives/clickOutside/storybook/docs.mdx +1 -1
  15. package/directives/tooltip/storybook/docs.mdx +1 -1
  16. package/icons/storybook/add_circle.svg +1 -0
  17. package/icons/storybook/arrow_outward.svg +1 -0
  18. package/icons/storybook/delivery_truck_speed.svg +1 -0
  19. package/index.d.ts +2 -2
  20. package/index.ts +3 -6
  21. package/locales/en.json +1 -0
  22. package/package.json +37 -37
  23. package/plugin-vite.d.ts +5 -1
  24. package/plugin-vite.js +94 -38
  25. package/tailwind.css +5 -0
  26. package/types.ts +58 -41
  27. package/ui.boilerplate/storybook/docs.hidden.mdx +16 -0
  28. package/ui.button/UButton.vue +13 -12
  29. package/ui.button/config.ts +7 -6
  30. package/ui.button/storybook/docs.mdx +1 -1
  31. package/ui.button/storybook/stories.ts +3 -3
  32. package/ui.button/tests/UButton.test.ts +366 -16
  33. package/ui.button-link/config.ts +1 -1
  34. package/ui.button-link/storybook/docs.mdx +1 -1
  35. package/ui.button-link/storybook/stories.ts +45 -110
  36. package/ui.button-link/types.ts +2 -1
  37. package/ui.button-toggle/storybook/docs.mdx +1 -1
  38. package/ui.button-toggle/storybook/stories.ts +48 -44
  39. package/ui.container-accordion/UAccordion.vue +11 -3
  40. package/ui.container-accordion/storybook/docs.mdx +1 -1
  41. package/ui.container-accordion/storybook/stories.ts +11 -18
  42. package/ui.container-accordion/types.ts +5 -0
  43. package/ui.container-card/storybook/docs.mdx +1 -1
  44. package/ui.container-card/storybook/stories.ts +22 -5
  45. package/ui.container-col/storybook/docs.mdx +1 -1
  46. package/ui.container-col/storybook/stories.ts +37 -28
  47. package/ui.container-divider/storybook/docs.mdx +1 -1
  48. package/ui.container-divider/storybook/stories.ts +11 -23
  49. package/ui.container-group/storybook/docs.mdx +1 -1
  50. package/ui.container-group/storybook/stories.ts +1 -5
  51. package/ui.container-groups/storybook/docs.mdx +1 -1
  52. package/ui.container-groups/storybook/stories.ts +17 -21
  53. package/ui.container-modal/UModal.vue +83 -20
  54. package/ui.container-modal/config.ts +1 -0
  55. package/ui.container-modal/storybook/docs.mdx +1 -1
  56. package/ui.container-modal/storybook/stories.ts +91 -101
  57. package/ui.container-modal-confirm/UModalConfirm.vue +7 -9
  58. package/ui.container-modal-confirm/storybook/docs.mdx +1 -1
  59. package/ui.container-modal-confirm/storybook/stories.ts +120 -117
  60. package/ui.container-page/UPage.vue +0 -1
  61. package/ui.container-page/storybook/docs.mdx +1 -1
  62. package/ui.container-page/storybook/stories.ts +19 -29
  63. package/ui.container-row/storybook/docs.mdx +1 -1
  64. package/ui.container-row/storybook/stories.ts +46 -33
  65. package/ui.data-list/UDataList.vue +15 -13
  66. package/ui.data-list/storybook/docs.mdx +1 -1
  67. package/ui.data-list/storybook/stories.ts +20 -22
  68. package/ui.data-table/UTable.vue +40 -19
  69. package/ui.data-table/UTableRow.vue +5 -3
  70. package/ui.data-table/config.ts +8 -7
  71. package/ui.data-table/storybook/docs.mdx +1 -1
  72. package/ui.data-table/storybook/stories.ts +24 -24
  73. package/ui.dropdown-badge/UDropdownBadge.vue +28 -8
  74. package/ui.dropdown-badge/config.ts +16 -6
  75. package/ui.dropdown-badge/storybook/docs.mdx +1 -1
  76. package/ui.dropdown-badge/storybook/stories.ts +102 -104
  77. package/ui.dropdown-badge/types.ts +21 -11
  78. package/ui.dropdown-button/UDropdownButton.vue +28 -8
  79. package/ui.dropdown-button/config.ts +4 -4
  80. package/ui.dropdown-button/storybook/docs.mdx +1 -1
  81. package/ui.dropdown-button/storybook/stories.ts +99 -79
  82. package/ui.dropdown-button/types.ts +19 -14
  83. package/ui.dropdown-link/UDropdownLink.vue +24 -5
  84. package/ui.dropdown-link/config.ts +4 -4
  85. package/ui.dropdown-link/storybook/docs.mdx +1 -1
  86. package/ui.dropdown-link/storybook/stories.ts +94 -121
  87. package/ui.dropdown-link/types.ts +19 -14
  88. package/ui.form-calendar/UCalendar.vue +72 -38
  89. package/ui.form-calendar/UCalendarDayView.vue +74 -10
  90. package/ui.form-calendar/UCalendarMonthView.vue +4 -4
  91. package/ui.form-calendar/UCalendarYearView.vue +77 -7
  92. package/ui.form-calendar/config.ts +2 -2
  93. package/ui.form-calendar/storybook/dateTokensTable.mdx +1 -1
  94. package/ui.form-calendar/storybook/docs.mdx +1 -1
  95. package/ui.form-calendar/storybook/stories.ts +14 -27
  96. package/ui.form-calendar/utilDate.ts +1 -1
  97. package/ui.form-checkbox/UCheckbox.vue +0 -1
  98. package/ui.form-checkbox/config.ts +2 -2
  99. package/ui.form-checkbox/storybook/docs.mdx +1 -1
  100. package/ui.form-checkbox/storybook/stories.ts +18 -32
  101. package/ui.form-checkbox-group/storybook/docs.mdx +1 -1
  102. package/ui.form-checkbox-group/storybook/stories.ts +16 -39
  103. package/ui.form-checkbox-multi-state/storybook/docs.mdx +1 -1
  104. package/ui.form-checkbox-multi-state/storybook/stories.ts +12 -22
  105. package/ui.form-color-picker/UColorPicker.vue +3 -3
  106. package/ui.form-color-picker/config.ts +3 -2
  107. package/ui.form-color-picker/storybook/docs.mdx +1 -1
  108. package/ui.form-color-picker/storybook/stories.ts +9 -18
  109. package/ui.form-date-picker/UDatePicker.vue +7 -10
  110. package/ui.form-date-picker/storybook/docs.mdx +1 -1
  111. package/ui.form-date-picker/storybook/stories.ts +28 -30
  112. package/ui.form-date-picker-range/UDatePickerRange.vue +57 -49
  113. package/ui.form-date-picker-range/UDatePickerRangeInputs.vue +30 -7
  114. package/ui.form-date-picker-range/UDatePickerRangePeriodMenu.vue +21 -6
  115. package/ui.form-date-picker-range/config.ts +2 -2
  116. package/ui.form-date-picker-range/storybook/docs.mdx +1 -1
  117. package/ui.form-date-picker-range/storybook/stories.ts +26 -29
  118. package/ui.form-date-picker-range/useLocale.ts +15 -20
  119. package/ui.form-date-picker-range/useUserFormat.ts +3 -2
  120. package/ui.form-date-picker-range/utilDateRange.ts +3 -1
  121. package/ui.form-input/UInput.vue +7 -10
  122. package/ui.form-input/storybook/docs.mdx +1 -1
  123. package/ui.form-input/storybook/stories.ts +16 -26
  124. package/ui.form-input-counter/UInputCounter.vue +47 -18
  125. package/ui.form-input-counter/config.ts +23 -14
  126. package/ui.form-input-counter/storybook/docs.mdx +1 -1
  127. package/ui.form-input-counter/storybook/stories.ts +11 -26
  128. package/ui.form-input-counter/types.ts +3 -3
  129. package/ui.form-input-file/UInputFile.vue +10 -11
  130. package/ui.form-input-file/config.ts +1 -1
  131. package/ui.form-input-file/storybook/docs.mdx +1 -1
  132. package/ui.form-input-file/storybook/stories.ts +15 -25
  133. package/ui.form-input-number/UInputNumber.vue +4 -4
  134. package/ui.form-input-number/storybook/docs.mdx +1 -1
  135. package/ui.form-input-number/storybook/stories.ts +12 -29
  136. package/ui.form-input-number/useFormatNumber.ts +3 -4
  137. package/ui.form-input-password/UInputPassword.vue +0 -1
  138. package/ui.form-input-password/storybook/docs.mdx +1 -1
  139. package/ui.form-input-password/storybook/stories.ts +12 -38
  140. package/ui.form-input-rating/UInputRating.vue +63 -25
  141. package/ui.form-input-rating/config.ts +7 -4
  142. package/ui.form-input-rating/storybook/docs.mdx +1 -1
  143. package/ui.form-input-rating/storybook/stories.ts +27 -34
  144. package/ui.form-input-rating/types.ts +18 -3
  145. package/ui.form-input-search/UInputSearch.vue +2 -2
  146. package/ui.form-input-search/config.ts +1 -6
  147. package/ui.form-input-search/storybook/docs.mdx +1 -1
  148. package/ui.form-input-search/storybook/stories.ts +12 -35
  149. package/ui.form-label/ULabel.vue +4 -3
  150. package/ui.form-label/storybook/docs.mdx +1 -1
  151. package/ui.form-label/storybook/stories.ts +15 -41
  152. package/ui.form-listbox/UListbox.vue +108 -20
  153. package/ui.form-listbox/config.ts +35 -5
  154. package/ui.form-listbox/storybook/docs.mdx +2 -1
  155. package/ui.form-listbox/storybook/stories.ts +26 -24
  156. package/ui.form-listbox/types.ts +25 -0
  157. package/ui.form-listbox/utilListbox.ts +55 -0
  158. package/ui.form-radio/config.ts +1 -1
  159. package/ui.form-radio/storybook/docs.mdx +1 -1
  160. package/ui.form-radio/storybook/stories.ts +18 -29
  161. package/ui.form-radio-group/storybook/docs.mdx +1 -1
  162. package/ui.form-radio-group/storybook/stories.ts +17 -38
  163. package/ui.form-select/USelect.vue +345 -243
  164. package/ui.form-select/config.ts +53 -65
  165. package/ui.form-select/constants.ts +6 -0
  166. package/ui.form-select/storybook/docs.mdx +1 -1
  167. package/ui.form-select/storybook/stories.ts +31 -35
  168. package/ui.form-select/types.ts +20 -0
  169. package/ui.form-select/utilSelect.ts +0 -87
  170. package/ui.form-switch/USwitch.vue +8 -9
  171. package/ui.form-switch/config.ts +8 -8
  172. package/ui.form-switch/storybook/docs.mdx +1 -1
  173. package/ui.form-switch/storybook/stories.ts +15 -25
  174. package/ui.form-textarea/storybook/docs.mdx +1 -1
  175. package/ui.form-textarea/storybook/stories.ts +22 -35
  176. package/ui.image-avatar/UAvatar.vue +19 -11
  177. package/ui.image-avatar/config.ts +10 -4
  178. package/ui.image-avatar/storybook/assets/john-doe.png +0 -0
  179. package/ui.image-avatar/storybook/docs.mdx +1 -1
  180. package/ui.image-avatar/storybook/stories.ts +60 -47
  181. package/ui.image-avatar/types.ts +9 -9
  182. package/ui.image-icon/UIcon.vue +23 -82
  183. package/ui.image-icon/config.ts +1 -1
  184. package/ui.image-icon/storybook/docs.mdx +1 -1
  185. package/ui.image-icon/storybook/stories.ts +39 -24
  186. package/ui.image-icon/types.ts +1 -11
  187. package/ui.loader/storybook/docs.mdx +1 -1
  188. package/ui.loader/storybook/stories.ts +14 -20
  189. package/ui.loader-overlay/storybook/docs.mdx +1 -1
  190. package/ui.loader-overlay/storybook/stories.ts +7 -17
  191. package/ui.loader-progress/ULoaderProgress.vue +2 -2
  192. package/ui.loader-progress/storybook/docs.mdx +1 -1
  193. package/ui.loader-progress/storybook/stories.ts +16 -29
  194. package/ui.navigation-breadcrumbs/storybook/docs.mdx +1 -1
  195. package/ui.navigation-breadcrumbs/storybook/stories.ts +39 -46
  196. package/ui.navigation-pagination/UPagination.vue +0 -4
  197. package/ui.navigation-pagination/storybook/docs.mdx +1 -1
  198. package/ui.navigation-pagination/storybook/stories.ts +20 -33
  199. package/ui.navigation-progress/storybook/docs.mdx +1 -1
  200. package/ui.navigation-progress/storybook/stories.ts +25 -25
  201. package/ui.navigation-tab/storybook/docs.mdx +1 -1
  202. package/ui.navigation-tab/storybook/stories.ts +3 -11
  203. package/ui.navigation-tabs/config.ts +2 -12
  204. package/ui.navigation-tabs/storybook/docs.mdx +1 -1
  205. package/ui.navigation-tabs/storybook/stories.ts +20 -28
  206. package/ui.other-chip/UChip.vue +57 -0
  207. package/ui.other-chip/config.ts +31 -0
  208. package/{ui.text-money → ui.other-chip}/constants.ts +1 -1
  209. package/{ui.boilerplate → ui.other-chip}/storybook/docs.mdx +1 -1
  210. package/ui.other-chip/storybook/stories.ts +112 -0
  211. package/ui.other-chip/types.ts +55 -0
  212. package/ui.other-dot/config.ts +7 -5
  213. package/ui.other-dot/storybook/docs.mdx +1 -1
  214. package/ui.other-dot/storybook/stories.ts +21 -26
  215. package/ui.other-dot/types.ts +1 -1
  216. package/ui.other-theme-color-toggle/UThemeColorToggle.vue +3 -3
  217. package/ui.other-theme-color-toggle/storybook/docs.mdx +1 -1
  218. package/ui.other-theme-color-toggle/storybook/stories.ts +15 -20
  219. package/ui.skeleton/USkeleton.vue +27 -0
  220. package/ui.skeleton/config.ts +15 -0
  221. package/ui.skeleton/constants.ts +5 -0
  222. package/ui.skeleton/storybook/docs.mdx +16 -0
  223. package/ui.skeleton/storybook/stories.ts +65 -0
  224. package/ui.skeleton/types.ts +22 -0
  225. package/ui.skeleton-choice/USkeletonChoice.vue +32 -0
  226. package/ui.skeleton-choice/config.ts +51 -0
  227. package/ui.skeleton-choice/constants.ts +5 -0
  228. package/{ui.text-money → ui.skeleton-choice}/storybook/docs.mdx +1 -1
  229. package/ui.skeleton-choice/storybook/stories.ts +92 -0
  230. package/ui.skeleton-choice/types.ts +42 -0
  231. package/ui.skeleton-input/USkeletonInput.vue +34 -0
  232. package/ui.skeleton-input/config.ts +69 -0
  233. package/ui.skeleton-input/constants.ts +12 -0
  234. package/ui.skeleton-input/storybook/docs.mdx +16 -0
  235. package/ui.skeleton-input/storybook/stories.ts +111 -0
  236. package/ui.skeleton-input/types.ts +42 -0
  237. package/ui.skeleton-text/USkeletonText.vue +35 -0
  238. package/ui.skeleton-text/config.ts +38 -0
  239. package/ui.skeleton-text/constants.ts +5 -0
  240. package/ui.skeleton-text/storybook/docs.mdx +16 -0
  241. package/ui.skeleton-text/storybook/stories.ts +67 -0
  242. package/ui.skeleton-text/types.ts +37 -0
  243. package/ui.text-alert/UAlert.vue +4 -5
  244. package/ui.text-alert/storybook/docs.mdx +1 -1
  245. package/ui.text-alert/storybook/stories.ts +15 -32
  246. package/ui.text-badge/UBadge.vue +31 -37
  247. package/ui.text-badge/config.ts +7 -14
  248. package/ui.text-badge/storybook/docs.mdx +1 -1
  249. package/ui.text-badge/storybook/stories.ts +37 -56
  250. package/ui.text-block/config.ts +1 -0
  251. package/ui.text-block/storybook/docs.mdx +1 -1
  252. package/ui.text-block/storybook/stories.ts +16 -25
  253. package/ui.text-block/types.ts +1 -1
  254. package/ui.text-empty/UEmpty.vue +1 -6
  255. package/ui.text-empty/config.ts +1 -1
  256. package/ui.text-empty/storybook/docs.mdx +1 -1
  257. package/ui.text-empty/storybook/stories.ts +15 -25
  258. package/ui.text-file/UFile.vue +0 -2
  259. package/ui.text-file/storybook/docs.mdx +1 -1
  260. package/ui.text-file/storybook/stories.ts +9 -11
  261. package/ui.text-files/storybook/docs.mdx +1 -1
  262. package/ui.text-files/storybook/stories.ts +10 -17
  263. package/ui.text-header/config.ts +0 -10
  264. package/ui.text-header/storybook/docs.mdx +1 -1
  265. package/ui.text-header/storybook/stories.ts +16 -43
  266. package/ui.text-header/types.ts +0 -5
  267. package/ui.text-notify/UNotify.vue +8 -12
  268. package/ui.text-notify/config.ts +1 -1
  269. package/ui.text-notify/storybook/docs.mdx +1 -1
  270. package/ui.text-number/UNumber.vue +14 -2
  271. package/ui.text-number/config.ts +8 -0
  272. package/ui.text-number/storybook/docs.mdx +1 -1
  273. package/ui.text-number/storybook/stories.ts +21 -26
  274. package/ui.text-number/types.ts +16 -1
  275. package/utils/helper.ts +13 -8
  276. package/utils/node/dynamicProps.js +3 -14
  277. package/utils/node/dynamicStories.js +4 -7
  278. package/utils/node/helper.js +25 -11
  279. package/utils/node/loaderIcon.js +199 -192
  280. package/utils/node/loaderSvg.js +0 -3
  281. package/utils/node/tailwindSafelist.js +205 -82
  282. package/utils/node/webTypes.js +2 -2
  283. package/utils/storybook.ts +21 -3
  284. package/utils/theme.ts +272 -181
  285. package/utils/ui.ts +2 -1
  286. package/icons/storybook/@material-symbols/confirmation_number.svg +0 -1
  287. package/icons/storybook/@material-symbols/subscriptions.svg +0 -1
  288. package/icons/storybook/@material-symbols/unfold_more.svg +0 -1
  289. package/ui.text-money/UMoney.vue +0 -77
  290. package/ui.text-money/assets/credit.svg +0 -7
  291. package/ui.text-money/assets/debit.svg +0 -12
  292. package/ui.text-money/config.ts +0 -32
  293. package/ui.text-money/storybook/stories.ts +0 -194
  294. package/ui.text-money/types.ts +0 -90
  295. /package/{adatper.locale → adapter.locale}/vue-i18n.ts +0 -0
  296. /package/icons/{app → internal}/add.svg +0 -0
  297. /package/icons/{app → internal}/apps.svg +0 -0
  298. /package/icons/{app → internal}/arrow_back.svg +0 -0
  299. /package/icons/{app → internal}/arrow_right.svg +0 -0
  300. /package/icons/{app → internal}/attach_file.svg +0 -0
  301. /package/icons/{app → internal}/calendar_month-fill.svg +0 -0
  302. /package/icons/{app → internal}/check.svg +0 -0
  303. /package/icons/{app → internal}/check_circle.svg +0 -0
  304. /package/icons/{app → internal}/chevron_left.svg +0 -0
  305. /package/icons/{app → internal}/chevron_right.svg +0 -0
  306. /package/icons/{app → internal}/close.svg +0 -0
  307. /package/icons/{app → internal}/close_small.svg +0 -0
  308. /package/icons/{app → internal}/description.svg +0 -0
  309. /package/icons/{app → internal}/drag_indicator.svg +0 -0
  310. /package/icons/{app → internal}/emoji_food_beverage.svg +0 -0
  311. /package/icons/{app → internal}/error.svg +0 -0
  312. /package/icons/{app → internal}/first_page.svg +0 -0
  313. /package/icons/{app → internal}/image.svg +0 -0
  314. /package/icons/{app → internal}/keyboard_arrow_down.svg +0 -0
  315. /package/icons/{app → internal}/keyboard_arrow_left.svg +0 -0
  316. /package/icons/{app → internal}/keyboard_arrow_right.svg +0 -0
  317. /package/icons/{app → internal}/keyboard_double_arrow_left.svg +0 -0
  318. /package/icons/{app → internal}/keyboard_double_arrow_right.svg +0 -0
  319. /package/icons/{app → internal}/last_page.svg +0 -0
  320. /package/icons/{app → internal}/remove.svg +0 -0
  321. /package/icons/{app → internal}/search.svg +0 -0
  322. /package/icons/{app → internal}/star-fill.svg +0 -0
  323. /package/icons/{app → internal}/star.svg +0 -0
  324. /package/icons/{app → internal}/visibility-fill.svg +0 -0
  325. /package/icons/{app → internal}/visibility_off-fill.svg +0 -0
  326. /package/icons/{app → internal}/warning.svg +0 -0
  327. /package/icons/storybook/{@material-symbols/account_circle.svg → account_circle.svg} +0 -0
  328. /package/icons/storybook/{@material-symbols/chat.svg → chat.svg} +0 -0
  329. /package/icons/storybook/{@material-symbols/check.svg → check.svg} +0 -0
  330. /package/icons/storybook/{@material-symbols/check_circle.svg → check_circle.svg} +0 -0
  331. /package/icons/storybook/{@material-symbols/currency_exchange.svg → currency_exchange.svg} +0 -0
  332. /package/icons/storybook/{@material-symbols/delete.svg → delete.svg} +0 -0
  333. /package/icons/storybook/{@material-symbols/double_arrow.svg → double_arrow.svg} +0 -0
  334. /package/icons/storybook/{@material-symbols/download.svg → download.svg} +0 -0
  335. /package/icons/storybook/{@material-symbols/edit_calendar.svg → edit_calendar.svg} +0 -0
  336. /package/icons/storybook/{@material-symbols/edit_note.svg → edit_note.svg} +0 -0
  337. /package/icons/storybook/{@material-symbols/error.svg → error.svg} +0 -0
  338. /package/icons/storybook/{@material-symbols/expand_circle_down.svg → expand_circle_down.svg} +0 -0
  339. /package/icons/storybook/{@material-symbols/favorite.svg → favorite.svg} +0 -0
  340. /package/icons/storybook/{@material-symbols/feedback.svg → feedback.svg} +0 -0
  341. /package/icons/storybook/{@material-symbols/filter_list.svg → filter_list.svg} +0 -0
  342. /package/icons/storybook/{@material-symbols/flight.svg → flight.svg} +0 -0
  343. /package/icons/storybook/{@material-symbols/heart_plus.svg → heart_plus.svg} +0 -0
  344. /package/icons/storybook/{@material-symbols/inbox.svg → inbox.svg} +0 -0
  345. /package/icons/storybook/{@material-symbols/inbox_customize.svg → inbox_customize.svg} +0 -0
  346. /package/icons/storybook/{@material-symbols/info.svg → info.svg} +0 -0
  347. /package/icons/storybook/{@material-symbols/key.svg → key.svg} +0 -0
  348. /package/icons/storybook/{@material-symbols/label.svg → label.svg} +0 -0
  349. /package/icons/storybook/{@material-symbols/lock.svg → lock.svg} +0 -0
  350. /package/icons/storybook/{@material-symbols/lock_open.svg → lock_open.svg} +0 -0
  351. /package/icons/storybook/{@material-symbols/mail.svg → mail.svg} +0 -0
  352. /package/icons/storybook/{@material-symbols/menu.svg → menu.svg} +0 -0
  353. /package/icons/storybook/{@material-symbols/monitoring.svg → monitoring.svg} +0 -0
  354. /package/icons/storybook/{@material-symbols/more_horiz.svg → more_horiz.svg} +0 -0
  355. /package/icons/storybook/{@material-symbols/palette.svg → palette.svg} +0 -0
  356. /package/icons/storybook/{@material-symbols/payments.svg → payments.svg} +0 -0
  357. /package/icons/storybook/{@material-symbols/person.svg → person.svg} +0 -0
  358. /package/icons/storybook/{@material-symbols/person_search.svg → person_search.svg} +0 -0
  359. /package/icons/storybook/{@material-symbols/play_arrow.svg → play_arrow.svg} +0 -0
  360. /package/icons/storybook/{@material-symbols/progress_activity.svg → progress_activity.svg} +0 -0
  361. /package/icons/storybook/{@material-symbols/remove.svg → remove.svg} +0 -0
  362. /package/icons/storybook/{@material-symbols/sailing.svg → sailing.svg} +0 -0
  363. /package/icons/storybook/{@material-symbols/send.svg → send.svg} +0 -0
  364. /package/icons/storybook/{@material-symbols/sentiment_satisfied.svg → sentiment_satisfied.svg} +0 -0
  365. /package/icons/storybook/{@material-symbols/settings.svg → settings.svg} +0 -0
  366. /package/icons/storybook/{@material-symbols/stop_circle.svg → stop_circle.svg} +0 -0
  367. /package/icons/storybook/{@material-symbols/travel_explore.svg → travel_explore.svg} +0 -0
  368. /package/icons/storybook/{@material-symbols/update.svg → update.svg} +0 -0
  369. /package/icons/storybook/{@material-symbols/verified.svg → verified.svg} +0 -0
  370. /package/icons/storybook/{@material-symbols/warning.svg → warning.svg} +0 -0
  371. /package/ui.boilerplate/storybook/{stories.ts → stories.hidden.ts} +0 -0
package/README.md CHANGED
@@ -1,12 +1,42 @@
1
- ![logo.png](public/images/vueless-logo-git.png)
1
+ ![vueless-examples.png](public/images/vueless-examples.png)
2
2
 
3
- ## Vueless UI
3
+ # Vueless UI
4
4
 
5
- * [Documentation](https://docs.vueless.com/)
6
- * [UI Components](https://ui.vueless.com/)
7
- * [Website](http://vueless.com/)
5
+ Vueless is an open-source UI library and design system framework for Vue.js 3 and Nuxt.js 3, built on top of Tailwind CSS v4.
8
6
 
9
- ## Quick Start
7
+ It’s completely styleless, allowing you to extend or override default styles without modifying the components themselves — only your custom styles are included in the final build.
8
+
9
+ Vueless is simple enough for everyday use and powerful enough for advanced scenarios, making it ideal for quickly building beautiful UIs in minutes or developing a fully customized corporate UI library that strictly follows your design guidelines.
10
+
11
+ [Documentation](https://docs.vueless.com/) | [UI Components](https://ui.vueless.com/) | [Website](http://vueless.com/)
12
+
13
+ ### Key features
14
+
15
+ - 🧩 65+ UI components (including range date picker, multi-selects, and nested table)
16
+ - 📘 Built-in Storybook support
17
+ - 🌈 Beautiful, modern default UI theme
18
+ - 🌗 Light and dark mode support
19
+ - 🌀 Unstyled mode
20
+ - 🎨️ Flexible color palettes
21
+ - 🎛️ Runtime theme and color switching
22
+ - 🧬 Design tokens powered by CSS variables
23
+ - ✨ Powerful yet simple styling customization system
24
+ - 🌍 Internationalization (i18n)
25
+ - ♿️ Accessibility (a11y)
26
+ - ⚙️ Server-side rendering (SSR) friendly
27
+ - 🖼️ 1000+ built-in SVG icons
28
+ - 🛡️ Full TypeScript support with type safety
29
+
30
+ ### Advanced Features
31
+
32
+ - 🧰 Copy and extend existing components
33
+ - 🧱 Create your own components
34
+ - 🔧️ Define default values for props
35
+ - 🔩️ Add or hide props to components
36
+ - 🧿 `npm` package ships full source without TypeScript transpilation for better DX.
37
+
38
+
39
+ ## Quick Start (Vue)
10
40
 
11
41
  1. Install `vueless` UI library packages.
12
42
 
@@ -15,7 +45,6 @@ npm install vueless
15
45
  npx vueless init
16
46
  ```
17
47
 
18
-
19
48
  2. In the file where you create the Vue application, add the following code:
20
49
  ```javascript
21
50
  import { createApp } from 'vue';
@@ -49,7 +78,32 @@ export default defineConfig({
49
78
  })
50
79
  ```
51
80
 
52
- That's it! You can use components in your app now ✨
81
+ ## Quick Start (Nuxt)
82
+
83
+ 1. Install Vueless Nuxt module.
84
+
85
+ ```bash
86
+ npm install @vueless/nuxt
87
+ npx vueless init
88
+ ```
89
+
90
+
91
+ 2. Register `@vueless/nuxt` into the Nuxt config modules section.
92
+ ```javascript
93
+ export default defineNuxtConfig({
94
+ modules: [
95
+ '@vueless/nuxt'
96
+ ],
97
+ ...
98
+ })
99
+ ```
100
+
101
+ 3. Import Tailwind CSS and Vueless at the top of the main CSS file.
102
+
103
+ ```scss
104
+ @import "tailwindcss";
105
+ @import "vueless";
106
+ ```
53
107
 
54
108
  ## Contributing
55
109
 
@@ -1,14 +1,14 @@
1
- import selectConfig from "../../ui.form-select/config.js";
2
- import switchConfig from "../../ui.form-switch/config.js";
3
- import inputFileConfig from "../../ui.form-input-file/config.js";
4
- import listboxConfig from "../../ui.form-listbox/config.js";
5
- import modalConfirmConfig from "../../ui.container-modal-confirm/config.js";
6
- import tableConfig from "../../ui.data-table/config.js";
1
+ import selectConfig from "../../ui.form-select/config.ts";
2
+ import switchConfig from "../../ui.form-switch/config.ts";
3
+ import inputFileConfig from "../../ui.form-input-file/config.ts";
4
+ import listboxConfig from "../../ui.form-listbox/config.ts";
5
+ import modalConfirmConfig from "../../ui.container-modal-confirm/config.ts";
6
+ import tableConfig from "../../ui.data-table/config.ts";
7
7
  import calendarConfig from "../../ui.form-calendar/config.ts";
8
- import datepickerConfig from "../../ui.form-date-picker/config.js";
9
- import datepickerRangeConfig from "../../ui.form-date-picker-range/config.js";
10
- import dataListConfig from "../../ui.data-list/config.js";
11
- import notifyDefaultConfig from "../../ui.text-notify/config.js";
8
+ import datepickerConfig from "../../ui.form-date-picker/config.ts";
9
+ import datepickerRangeConfig from "../../ui.form-date-picker-range/config.ts";
10
+ import dataListConfig from "../../ui.data-list/config.ts";
11
+ import notifyDefaultConfig from "../../ui.text-notify/config.ts";
12
12
 
13
13
  export default {
14
14
  USelect: selectConfig.i18n,
@@ -5,6 +5,7 @@ import en from "./locales/en.ts";
5
5
 
6
6
  import type { Ref } from "vue";
7
7
  import type { UnknownObject } from "../types.ts";
8
+ import type { VueMessageType } from "vue-i18n";
8
9
 
9
10
  export interface LocaleMessages {
10
11
  [key: string]: LocaleMessages | string;
@@ -148,19 +149,47 @@ export function getNestedValue<T, K = unknown>(
148
149
  return obj === undefined ? fallback : (obj as unknown as K);
149
150
  }
150
151
 
151
- const unknownObject = obj as Record<string | number, unknown>;
152
-
153
152
  for (let i = 0; i < last; i++) {
154
153
  if (obj == null) {
155
154
  return fallback;
156
155
  }
157
156
 
158
- obj = unknownObject[path[i]] as T;
157
+ obj = (obj as Record<string | number, unknown>)[path[i]] as T;
159
158
  }
160
159
 
161
160
  if (obj == null) {
162
161
  return fallback;
163
162
  }
164
163
 
164
+ const unknownObject = obj as Record<string | number, unknown>;
165
+
165
166
  return (unknownObject[path[last]] === undefined ? fallback : unknownObject[path[last]]) as K;
166
167
  }
168
+
169
+ export function recursiveRt(obj: VueMessageType): unknown {
170
+ if (typeof obj !== "object" || obj === null) {
171
+ return obj;
172
+ }
173
+
174
+ if ("loc" in obj) {
175
+ return obj.loc!.source;
176
+ }
177
+
178
+ const messages: Record<string, unknown> = {};
179
+
180
+ for (const key in obj) {
181
+ const val = obj[key as keyof typeof obj];
182
+
183
+ if (val && typeof val === "object") {
184
+ if ("loc" in val) {
185
+ messages[key] = val.loc.source;
186
+ } else {
187
+ messages[key] = recursiveRt(val as VueMessageType);
188
+ }
189
+ } else {
190
+ messages[key] = val;
191
+ }
192
+ }
193
+
194
+ return messages;
195
+ }
@@ -11,21 +11,25 @@ import { replaceRelativeImports } from "../utils/formatUtil.js";
11
11
  import { getStorybookId, getStoryMetaKeyIndex } from "../utils/dataUtils.js";
12
12
 
13
13
  import { SRC_COMPONENTS_PATH, COMPONENTS_PATH } from "../constants.js";
14
- import { COMPONENTS, VUELESS_DIR, VUELESS_LOCAL_DIR } from "../../constants.js";
14
+ import { COMPONENTS, VUELESS_PACKAGE_DIR, VUELESS_LOCAL_DIR } from "../../constants.js";
15
15
 
16
16
  function getSourcePath(componentName) {
17
- return path.join(cwd(), VUELESS_DIR, COMPONENTS[componentName]);
17
+ return path.join(cwd(), VUELESS_PACKAGE_DIR, COMPONENTS[componentName]);
18
18
  }
19
19
 
20
20
  export async function copyVuelessComponent(options) {
21
21
  const [componentName, newComponentName] = options;
22
22
 
23
23
  if (!componentName) {
24
- throw new Error("Component name is required.");
24
+ console.log(styleText("red", "Component name is required."));
25
+
26
+ return;
25
27
  }
26
28
 
27
29
  if (!(componentName in COMPONENTS)) {
28
- throw new Error("There is no such component.");
30
+ console.log(styleText("red", "There is no such component."));
31
+
32
+ return;
29
33
  }
30
34
 
31
35
  const sourceComponentPath = getSourcePath(componentName);
@@ -39,7 +43,9 @@ export async function copyVuelessComponent(options) {
39
43
  const isComponentExists = newComponentName in COMPONENTS || existsSync(absoluteDestPath);
40
44
 
41
45
  if (isComponentExists) {
42
- throw new Error(`Component with name ${newComponentName} already exists.`);
46
+ console.log(styleText("red", `Component with name ${newComponentName} already exists.`));
47
+
48
+ return;
43
49
  }
44
50
 
45
51
  await cp(sourceComponentPath, absoluteDestPath, { recursive: true });
@@ -3,7 +3,7 @@
3
3
  import { existsSync } from "node:fs";
4
4
  import path from "node:path";
5
5
  import { cwd } from "node:process";
6
- import { cp, readFile, writeFile, rename } from "node:fs/promises";
6
+ import { readFile, writeFile, rename, mkdir, readdir, copyFile } from "node:fs/promises";
7
7
  import { styleText } from "node:util";
8
8
 
9
9
  import { getDirFiles } from "../../utils/node/helper.js";
@@ -12,16 +12,18 @@ import { getStorybookId } from "../utils/dataUtils.js";
12
12
 
13
13
  import { SRC_COMPONENTS_PATH, COMPONENTS_PATH } from "../constants.js";
14
14
 
15
- import { COMPONENTS, VUELESS_DIR, VUELESS_LOCAL_DIR } from "../../constants.js";
15
+ import { COMPONENTS, VUELESS_PACKAGE_DIR, VUELESS_LOCAL_DIR } from "../../constants.js";
16
16
 
17
- const boilerplateName = "UBoilerplate";
18
- const boilerplatePath = path.join(cwd(), VUELESS_DIR, "ui.boilerplate");
17
+ const BOILERPLATE_NAME = "UBoilerplate";
18
+ const BOILERPLATE_PATH = path.join(cwd(), VUELESS_PACKAGE_DIR, "ui.boilerplate");
19
19
 
20
20
  export async function createVuelessComponent(options) {
21
21
  const [componentName] = options;
22
22
 
23
23
  if (!componentName) {
24
- throw new Error("Component name is required.");
24
+ console.log(styleText("red", "Component name is required."));
25
+
26
+ return;
25
27
  }
26
28
 
27
29
  const isSrcDir = existsSync(path.join(cwd(), VUELESS_LOCAL_DIR));
@@ -33,18 +35,36 @@ export async function createVuelessComponent(options) {
33
35
  const isComponentExists = componentName in COMPONENTS || existsSync(absoluteDestPath);
34
36
 
35
37
  if (isComponentExists) {
36
- throw new Error(`Component with name ${componentName} already exists.`);
38
+ console.log(styleText("red", `Component with name ${componentName} already exists.`));
39
+
40
+ return;
37
41
  }
38
42
 
39
- await cp(boilerplatePath, absoluteDestPath, { recursive: true });
43
+ await copyAndRenameFiles(BOILERPLATE_PATH, absoluteDestPath);
40
44
  await modifyCreatedComponent(absoluteDestPath, componentName);
41
45
 
42
- const successMessage = styleText(
43
- "green",
44
- `The '${componentName}' was successfully created in the '${destPath}' directory.`,
46
+ console.log(
47
+ // eslint-disable-next-line prettier/prettier
48
+ styleText("green", `The '${componentName}' was successfully created in the '${destPath}' directory.`,),
45
49
  );
50
+ }
51
+
52
+ async function copyAndRenameFiles(srcDir, destDir) {
53
+ await mkdir(destDir, { recursive: true });
54
+ const entries = await readdir(srcDir, { withFileTypes: true });
46
55
 
47
- console.log(successMessage);
56
+ for (const entry of entries) {
57
+ const srcPath = path.join(srcDir, entry.name);
58
+
59
+ const renamed = entry.name.replace(".hidden", "");
60
+ const destPath = path.join(destDir, renamed);
61
+
62
+ console.log(entry.name, renamed);
63
+
64
+ entry.isDirectory()
65
+ ? await copyAndRenameFiles(srcPath, destPath)
66
+ : await copyFile(srcPath, destPath);
67
+ }
48
68
  }
49
69
 
50
70
  async function modifyCreatedComponent(destPath, componentName) {
@@ -58,17 +78,17 @@ async function modifyCreatedComponent(destPath, componentName) {
58
78
  let targetPath = filePath;
59
79
 
60
80
  if (filePath.endsWith("constants.ts")) {
61
- updatedContent = updatedContent.replace(boilerplateName, componentName);
81
+ updatedContent = updatedContent.replace(BOILERPLATE_NAME, componentName);
62
82
  }
63
83
 
64
84
  if (filePath.endsWith("stories.ts")) {
65
85
  updatedContent = updatedContent
66
- .replaceAll(boilerplateName, componentName)
86
+ .replaceAll(BOILERPLATE_NAME, componentName)
67
87
  .replace("{{component_id}}", String(storybookId));
68
88
  }
69
89
 
70
- if (targetPath.endsWith(`${boilerplateName}.vue`)) {
71
- targetPath = targetPath.replace(boilerplateName, componentName);
90
+ if (targetPath.endsWith(`${BOILERPLATE_NAME}.vue`)) {
91
+ targetPath = targetPath.replace(BOILERPLATE_NAME, componentName);
72
92
 
73
93
  await rename(filePath, targetPath);
74
94
  }
@@ -15,7 +15,9 @@ export async function vuelessInit(options) {
15
15
  const isValidOptions = options.every((option) => vuelessInitOptions.includes(option));
16
16
 
17
17
  if (options.length && !isValidOptions) {
18
- throw new Error("Invalid options were provided.");
18
+ console.log(styleText("red", "Invalid options were provided."));
19
+
20
+ return;
19
21
  }
20
22
 
21
23
  const fileExt = options.includes("--ts") ? TYPESCRIPT_EXT : JAVASCRIPT_EXT;
@@ -31,21 +33,21 @@ export async function vuelessInit(options) {
31
33
 
32
34
  await rename(formattedDestPath, renamedTarget);
33
35
 
34
- const warnMessage = styleText(
35
- "yellow",
36
- // eslint-disable-next-line vue/max-len
37
- `Current Vueless config backed into: '${path.basename(renamedTarget)}' folder. Don't forget to remove it before commit.`,
36
+ console.warn(
37
+ styleText(
38
+ "yellow",
39
+ // eslint-disable-next-line vue/max-len
40
+ `Current Vueless config backed into: '${path.basename(renamedTarget)}' folder. Don't forget to remove it before commit.`,
41
+ ),
38
42
  );
39
-
40
- console.warn(warnMessage);
41
43
  }
42
44
 
43
45
  await writeFile(formattedDestPath, DEFAULT_VUELESS_CONFIG_CONTENT, "utf-8");
44
46
 
45
- const successMessage = styleText(
46
- "green",
47
- `The '${formattedDestPath.split(path.sep).at(-1)}' was created in the project root directory.`,
47
+ console.log(
48
+ styleText(
49
+ "green",
50
+ `The '${formattedDestPath.split(path.sep).at(-1)}' was created in the project root directory.`,
51
+ ),
48
52
  );
49
-
50
- console.log(successMessage);
51
53
  }
package/bin/constants.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export const SRC_COMPONENTS_PATH = "/src/components";
2
2
  export const COMPONENTS_PATH = "/components";
3
+
3
4
  export const DEFAULT_VUELESS_CONFIG_CONTENT = `
4
5
  export default {
5
6
  /**
@@ -10,7 +11,7 @@ export default {
10
11
  text: 14,
11
12
  outline: 2,
12
13
  rounding: 8,
13
- unstyled: false,
14
+ disabledOpacity: 50,
14
15
  colorMode: "auto",
15
16
 
16
17
  /**
@@ -6,14 +6,14 @@ import { readFile } from "node:fs/promises";
6
6
  import { getDirFiles } from "../../utils/node/helper.js";
7
7
 
8
8
  import { SRC_COMPONENTS_PATH, COMPONENTS_PATH } from "../constants.js";
9
- import { VUELESS_DIR } from "../../constants.js";
9
+ import { VUELESS_PACKAGE_DIR } from "../../constants.js";
10
10
 
11
11
  const storiesName = "stories.ts";
12
12
 
13
13
  export async function getStorybookId() {
14
14
  const srcComponentsDir = path.join(cwd(), SRC_COMPONENTS_PATH);
15
15
  const componentsDir = path.join(cwd(), COMPONENTS_PATH);
16
- const vuelessPackagePath = path.join(cwd(), VUELESS_DIR);
16
+ const vuelessPackagePath = path.join(cwd(), VUELESS_PACKAGE_DIR);
17
17
  const isSrcComponentsDir = existsSync(srcComponentsDir);
18
18
  const isComponentsDir = existsSync(componentsDir);
19
19
 
@@ -0,0 +1,29 @@
1
+ import { computed, ref, watch } from "vue";
2
+ import { merge } from "lodash-es";
3
+ import { recursiveRt } from "../adapter.locale/vueless.ts";
4
+
5
+ import { useLocale } from "./useLocale.ts";
6
+
7
+ import { COMPONENTS } from "../constants";
8
+
9
+ import type { VueMessageType } from "vue-i18n";
10
+
11
+ export function useComponentLocaleMessages<TLocale>(
12
+ componentName: keyof typeof COMPONENTS,
13
+ defaultLocale: Record<string, unknown>,
14
+ propsLocale: Record<string, unknown> = {},
15
+ ) {
16
+ const { tm, locale } = useLocale();
17
+
18
+ const globalComponentMassages = ref(recursiveRt(tm(componentName) as VueMessageType));
19
+
20
+ watch(locale, () => {
21
+ globalComponentMassages.value = recursiveRt(tm(componentName) as VueMessageType);
22
+ });
23
+
24
+ const localeMessages = computed(
25
+ () => merge({}, defaultLocale, globalComponentMassages.value, propsLocale) as TLocale,
26
+ );
27
+
28
+ return { localeMessages };
29
+ }
@@ -1,5 +1,5 @@
1
1
  import { onMounted, ref, nextTick } from "vue";
2
- import { COLOR_MODE_KEY, DARK_MODE_SELECTOR } from "../constants.js";
2
+ import { COLOR_MODE_KEY, DARK_MODE_CLASS } from "../constants.js";
3
3
  import { ColorMode } from "../types.js";
4
4
 
5
5
  export function useDarkMode() {
@@ -7,7 +7,7 @@ export function useDarkMode() {
7
7
 
8
8
  onMounted(async () => {
9
9
  await nextTick(() => {
10
- const isDarkModeClass = document.documentElement.classList.contains(DARK_MODE_SELECTOR);
10
+ const isDarkModeClass = document.documentElement.classList.contains(DARK_MODE_CLASS);
11
11
  const cashedDarkMode = localStorage.getItem(COLOR_MODE_KEY) as ColorMode | null;
12
12
  const isDarkModeCashed = cashedDarkMode !== null && cashedDarkMode === ColorMode.Dark;
13
13
 
@@ -1,7 +1,7 @@
1
1
  import { inject } from "vue";
2
- import createVuelessAdapter from "../adatper.locale/vueless.ts";
2
+ import createVuelessAdapter from "../adapter.locale/vueless.ts";
3
3
 
4
- import type { LocaleInstance, LocaleOptions } from "../adatper.locale/vueless.ts";
4
+ import type { LocaleInstance, LocaleOptions } from "../adapter.locale/vueless.ts";
5
5
  import type { InjectionKey } from "vue";
6
6
 
7
7
  export const LocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for("vueless:locale");
@@ -67,7 +67,7 @@ export default function useUI<T>(
67
67
  );
68
68
 
69
69
  /**
70
- * Get classes by given key (including CVA if config set).
70
+ * Get classes by a given key (including CVA if config set).
71
71
  */
72
72
  function getClasses(key: string, mutatedProps?: MutatedProps) {
73
73
  return computed(() => {
@@ -117,7 +117,7 @@ export default function useUI<T>(
117
117
  }
118
118
 
119
119
  /**
120
- * Get an element attributes for a given key.
120
+ * Get element attributes for a given key.
121
121
  */
122
122
  function getAttrs(configKey: string, classes: ComputedRef<string>) {
123
123
  const vuelessAttrs = ref({} as KeyAttrs);
@@ -215,7 +215,7 @@ export default function useUI<T>(
215
215
 
216
216
  if (config.value[firstKey] === undefined) {
217
217
  // eslint-disable-next-line no-console
218
- console.warn(`[Vueless] Missing ${firstKey} extend key.`);
218
+ console.warn(`[vueless] Missing ${firstKey} extend key.`);
219
219
  }
220
220
 
221
221
  extendsKeyConfig = getMergedConfig({
package/constants.js CHANGED
@@ -10,16 +10,17 @@ export const SECONDARY_COLOR = "secondary";
10
10
  export const GRAYSCALE_COLOR = "grayscale";
11
11
  export const INHERIT_COLOR = "inherit";
12
12
 
13
- /* Vueless cookies keys */
14
- export const PRIMARY_COLOR_KEY = "vl-primary";
15
- export const NEUTRAL_COLOR_KEY = "vl-neutral";
16
- export const ROUNDING_KEY = "vl-rounding";
13
+ /* Vueless keys */
14
+ export const TEXT = "text";
15
+ export const OUTLINE = "outline";
16
+ export const ROUNDING = "rounding";
17
+ export const DISABLED_OPACITY = "disabled-opacity";
18
+
19
+ /* Vueless color mode keys */
17
20
  export const COLOR_MODE_KEY = "vl-color-mode";
18
21
  export const AUTO_MODE_KEY = "vl-auto-mode";
19
-
20
- /* Vueless dark mode */
21
- export const DARK_MODE_SELECTOR = "vl-dark";
22
- export const LIGHT_MODE_SELECTOR = "vl-light";
22
+ export const DARK_MODE_CLASS = "vl-dark";
23
+ export const LIGHT_MODE_CLASS = "vl-light";
23
24
 
24
25
  /* Vueless defaults */
25
26
  export const DEFAULT_PRIMARY_COLOR = GRAYSCALE_COLOR;
@@ -33,6 +34,7 @@ export const OUTLINE_INCREMENT = 1; /* pixels */
33
34
  export const DEFAULT_ROUNDING = 8; /* pixels */
34
35
  export const ROUNDING_DECREMENT = 4; /* pixels */
35
36
  export const ROUNDING_INCREMENT = 6; /* pixels */
37
+ export const DEFAULT_DISABLED_OPACITY = 50; /* presents */
36
38
 
37
39
  /* Vueless supported color shades */
38
40
  export const PRIMARY_COLORS = [
@@ -239,10 +241,10 @@ export const COMPONENTS = {
239
241
  UInput: "ui.form-input",
240
242
  UInputFile: "ui.form-input-file",
241
243
  UInputNumber: "ui.form-input-number",
242
- UInputSearch: "ui.form-input-search",
243
244
  UInputCounter: "ui.form-input-counter",
244
245
  UInputPassword: "ui.form-input-password",
245
246
  UInputRating: "ui.form-input-rating",
247
+ UInputSearch: "ui.form-input-search",
246
248
  UTextarea: "ui.form-textarea",
247
249
  USelect: "ui.form-select",
248
250
  UListbox: "ui.form-listbox",
@@ -263,12 +265,11 @@ export const COMPONENTS = {
263
265
  UText: "ui.text-block",
264
266
  UAlert: "ui.text-alert",
265
267
  UNotify: "ui.text-notify",
266
- UMoney: "ui.text-money",
268
+ UNumber: "ui.text-number",
267
269
  UFile: "ui.text-file",
268
270
  UFiles: "ui.text-files",
269
271
  UEmpty: "ui.text-empty",
270
272
  UBadge: "ui.text-badge",
271
- UNumber: "ui.text-number",
272
273
 
273
274
  /* Containers */
274
275
  UDivider: "ui.container-divider",
@@ -301,9 +302,14 @@ export const COMPONENTS = {
301
302
  ULoader: "ui.loader",
302
303
  ULoaderProgress: "ui.loader-progress",
303
304
  ULoaderOverlay: "ui.loader-overlay",
305
+ USkeleton: "ui.skeleton",
306
+ USkeletonText: "ui.skeleton-text",
307
+ USkeletonInput: "ui.skeleton-input",
308
+ USkeletonChoice: "ui.skeleton-choice",
304
309
 
305
310
  /* Other */
306
311
  UDot: "ui.other-dot",
312
+ UChip: "ui.other-chip",
307
313
  UThemeColorToggle: "ui.other-theme-color-toggle",
308
314
  };
309
315
 
@@ -315,7 +321,6 @@ export const COMPONENTS = {
315
321
  export const TAILWIND_MERGE_EXTENSION = {
316
322
  extend: {
317
323
  theme: {
318
- colors: ["brand", "brand-"],
319
324
  spacing: ["safe-top", "safe-bottom", "safe-left", "safe-right"],
320
325
  },
321
326
  classGroups: {
@@ -367,23 +372,29 @@ export const DEFAULT_SVGO_CONFIG = {
367
372
  };
368
373
 
369
374
  /* Vueless general */
375
+ export const INTERNAL_ENV = "internal";
376
+ export const STORYBOOK_ENV = "storybook";
377
+ export const NUXT_MODULE_ENV = "nuxt-module";
378
+
379
+ export const VUELESS_LIBRARY = "vueless";
380
+ export const INTERNAL_ICONS_LIBRARY = "internal";
381
+ export const STORYBOOK_ICONS_LIBRARY = "storybook";
382
+
383
+ export const NODE_MODULES_DIR = "node_modules";
384
+ export const VUELESS_PACKAGE_DIR = `${NODE_MODULES_DIR}/vueless`;
385
+ export const VUELESS_CACHE_DIR = `${NODE_MODULES_DIR}/.cache/vueless`;
386
+ export const VUELESS_LOCAL_DIR = "src";
370
387
  export const ICONS_DIR = "icons";
371
- export const VUELESS = "vueless";
372
- export const VUELESS_LIBRARY = VUELESS;
373
- export const STORYBOOK_DIR = "storybook";
374
- export const STORYBOOK_ICONS = `${ICONS_DIR}/${STORYBOOK_DIR}`;
375
- export const VUELESS_CONFIG_FILE_NAME = "vueless.config";
376
- export const VUELESS_CACHE_DIR = "node_modules/.cache/vueless";
377
- export const VUELESS_DIR = `node_modules/${VUELESS_LIBRARY}`;
378
- export const VUELESS_LOCAL_DIR = `src`;
379
- export const VUELESS_ICONS_DIR = `${VUELESS_DIR}/${ICONS_DIR}/app`;
380
- export const APP_ICONS_LOCAL_DIR = `src/${ICONS_DIR}/app`;
381
- export const APP_ICONS_CACHED_DIR = `${VUELESS_CACHE_DIR}/${ICONS_DIR}/app`;
388
+ export const ICONS_VUELESS_DIR = `${VUELESS_PACKAGE_DIR}/${ICONS_DIR}`;
389
+ export const ICONS_CACHED_DIR = `${VUELESS_CACHE_DIR}/${ICONS_DIR}`;
390
+
391
+ export const ICONS_VIRTUAL_MODULE_ID = "virtual:vueless/icons";
392
+ export const RESOLVED_ICONS_VIRTUAL_MODULE_ID = `\0${ICONS_VIRTUAL_MODULE_ID}`;
393
+
394
+ export const VUELESS_TAILWIND_SAFELIST = `${VUELESS_CACHE_DIR}/safelist.txt`;
382
395
  export const VUELESS_CONFIGS_CACHED_DIR = `${VUELESS_CACHE_DIR}/configs`;
383
396
  export const VUELESS_MERGED_CONFIGS_CACHED_DIR = `${VUELESS_CACHE_DIR}/mergedConfigs`;
384
- export const VUELESS_TAILWIND_SAFELIST = `${VUELESS_CACHE_DIR}/safelist.txt`;
385
- export const STORYBOOK_ICONS_LOCAL_DIR = `${VUELESS_LOCAL_DIR}/${STORYBOOK_ICONS}`;
386
- export const STORYBOOK_ICONS_CACHED_DIR = `${VUELESS_CACHE_DIR}/${STORYBOOK_ICONS}`;
397
+ export const VUELESS_CONFIG_FILE_NAME = "vueless.config";
387
398
 
388
399
  /* System error codes */
389
400
  export const DEFAULT_EXIT_CODE = 0;
@@ -396,3 +407,4 @@ export const EXTENDS_PATTERN_REG_EXP = /\{>[^}]*}/g;
396
407
  export const DYNAMIC_COLOR_PATTERN = "{color}";
397
408
  export const JAVASCRIPT_EXT = ".js";
398
409
  export const TYPESCRIPT_EXT = ".ts";
410
+ export const VUE_EXT = ".vue";
@@ -1,4 +1,4 @@
1
- import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  import * as stories from "./stories.ts";
4
4
 
@@ -1,4 +1,4 @@
1
- import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
2
 
3
3
  import * as stories from "./stories.ts";
4
4
 
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M451.57-278.57h62.86v-166h167v-62.86h-167v-174h-62.86v174h-173v62.86h173v166ZM480.3-74.02q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M243.91-240.02 195.93-288l407.94-407.93H231.61v-68.14h488.37v488.14h-68.37v-372.03l-407.7 407.94Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M268.09-146.85q-51.7 0-84.88-37.18-33.19-37.19-28.19-87.88H53.35l14.91-68.13h119.65q14.52-16.09 35.04-25.51 20.52-9.43 45.11-9.43t45.01 9.44q20.41 9.45 35.19 25.5h199.2l93.19-404.98h-458l3.37-14.8q5.55-23.95 23.85-38.76 18.29-14.81 42.15-14.81h473.91l-40.91 179.32h124.76L926.17-479.2l-41.39 207.29H802.1q5 50.69-28.67 87.88-33.67 37.18-85.34 37.18-51.7 0-84.88-37.18-33.19-37.19-28.19-87.88H382.15q5 50.91-28.68 87.99-33.69 37.07-85.38 37.07Zm369.74-282.19h208.06l6.48-34.44-76.65-102.45h-106.6l-31.29 136.89Zm-5.94-279.47 8.76-36.51-93.19 404.98 8-36 35.19-151.26 41.24-181.21ZM17.46-432.46l16.91-68.13h228.37l-16.91 68.13H17.46Zm80-151.26 16.91-68.37h268.37l-16.91 68.37H97.46Zm170.59 368.74q19.26 0 32.61-13.82 13.36-13.82 13.36-32.08 0-19.25-13.32-32.61t-32.58-13.36q-18.25 0-32.11 13.32t-13.86 32.58q0 18.26 13.82 32.11 13.82 13.86 32.08 13.86Zm420 0q19.26 0 32.61-13.82 13.36-13.82 13.36-32.08 0-19.25-13.32-32.61t-32.58-13.36q-18.25 0-32.11 13.32t-13.86 32.58q0 18.26 13.82 32.11 13.82 13.86 32.08 13.86Z"/></svg>
package/index.d.ts CHANGED
@@ -12,8 +12,8 @@ export {
12
12
  } from "./utils/helper.ts";
13
13
  export { getArgTypes, getSlotNames, getSlotsFragment, getSource } from "./utils/storybook.ts";
14
14
  export { isMac, isPWA, isIOS, isAndroid, isMobileApp, isWindows } from "./utils/platform.ts";
15
- export { default as createVueI18nAdapter } from "./adatper.locale/vue-i18n.ts";
16
- export { default as defaultEnLocale } from "./adatper.locale/locales/en.ts";
15
+ export { default as createVueI18nAdapter } from "./adapter.locale/vue-i18n.ts";
16
+ export { default as defaultEnLocale } from "./adapter.locale/locales/en.ts";
17
17
  export { default as useUI } from "./composables/useUI.ts";
18
18
  export { useLocale } from "./composables/useLocale.ts";
19
19
  export { useLoaderProgress } from "./ui.loader-progress/useLoaderProgress.ts";