vueless 1.1.1-beta.9 → 1.2.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 (421) hide show
  1. package/LICENSE +1 -1
  2. package/adapter.locale/locales/en.ts +11 -11
  3. package/adapter.locale/vue-i18n.ts +2 -3
  4. package/adapter.locale/vueless.ts +3 -3
  5. package/bin/commands/init.js +90 -59
  6. package/bin/constants.d.ts +3 -0
  7. package/bin/constants.js +0 -14
  8. package/composables/tests/useUI.test.ts +3 -3
  9. package/composables/useAutoPosition.ts +1 -1
  10. package/composables/useBreakpoint.ts +1 -1
  11. package/composables/useComponentLocaleMassages.ts +3 -3
  12. package/composables/useDarkMode.ts +2 -2
  13. package/composables/useLocale.ts +2 -2
  14. package/composables/useMutationObserver.ts +1 -1
  15. package/composables/useUI.ts +5 -5
  16. package/constants.d.ts +334 -0
  17. package/constants.js +23 -1
  18. package/icons/storybook/contact_mail.svg +1 -0
  19. package/icons/storybook/vpn_key.svg +1 -0
  20. package/icons/storybook/web_traffic.svg +1 -0
  21. package/index.d.ts +153 -18
  22. package/index.ts +158 -20
  23. package/modules.d.ts +33 -0
  24. package/package.json +33 -10
  25. package/plugin-vite.d.ts +1 -28
  26. package/plugin-vite.js +33 -28
  27. package/tailwind.css +30 -0
  28. package/types.ts +66 -74
  29. package/ui.boilerplate/UBoilerplate.vue +5 -5
  30. package/ui.boilerplate/storybook/{docs.hidden.mdx → docs.mdx} +3 -3
  31. package/ui.boilerplate/storybook/{stories.hidden.ts → stories.ts} +2 -2
  32. package/ui.boilerplate/tests/UBoilerplate.test.ts +1 -1
  33. package/ui.boilerplate/types.ts +2 -2
  34. package/ui.button/UButton.vue +6 -6
  35. package/ui.button/storybook/docs.mdx +3 -3
  36. package/ui.button/storybook/stories.ts +2 -2
  37. package/ui.button/tests/UButton.test.ts +1 -1
  38. package/ui.button/types.ts +2 -2
  39. package/ui.button-link/ULink.vue +6 -6
  40. package/ui.button-link/storybook/docs.mdx +3 -3
  41. package/ui.button-link/storybook/stories.ts +3 -3
  42. package/ui.button-link/tests/ULink.test.ts +1 -1
  43. package/ui.button-link/types.ts +2 -2
  44. package/ui.button-toggle/UToggle.vue +5 -5
  45. package/ui.button-toggle/storybook/docs.mdx +3 -3
  46. package/ui.button-toggle/storybook/stories.ts +4 -3
  47. package/ui.button-toggle/tests/UToggle.test.ts +1 -1
  48. package/ui.button-toggle/types.ts +2 -2
  49. package/ui.container-accordion/UAccordion.vue +21 -9
  50. package/ui.container-accordion/config.ts +1 -1
  51. package/ui.container-accordion/storybook/docs.mdx +3 -3
  52. package/ui.container-accordion/storybook/stories.ts +19 -7
  53. package/ui.container-accordion/tests/UAccordion.test.ts +47 -1
  54. package/ui.container-accordion/types.ts +2 -2
  55. package/ui.container-card/UCard.vue +6 -6
  56. package/ui.container-card/storybook/docs.mdx +3 -3
  57. package/ui.container-card/storybook/stories.ts +2 -2
  58. package/ui.container-card/tests/UCard.test.ts +1 -1
  59. package/ui.container-card/types.ts +2 -2
  60. package/ui.container-col/UCol.vue +5 -5
  61. package/ui.container-col/storybook/docs.mdx +3 -3
  62. package/ui.container-col/storybook/stories.ts +2 -2
  63. package/ui.container-col/tests/UCol.test.ts +1 -1
  64. package/ui.container-col/types.ts +2 -2
  65. package/ui.container-divider/UDivider.vue +6 -6
  66. package/ui.container-divider/storybook/docs.mdx +3 -3
  67. package/ui.container-divider/storybook/stories.ts +2 -2
  68. package/ui.container-divider/tests/UDivider.test.ts +1 -1
  69. package/ui.container-divider/types.ts +2 -2
  70. package/ui.container-group/UGroup.vue +5 -5
  71. package/ui.container-group/storybook/docs.mdx +3 -3
  72. package/ui.container-group/storybook/stories.ts +2 -2
  73. package/ui.container-group/types.ts +2 -2
  74. package/ui.container-groups/UGroups.vue +5 -5
  75. package/ui.container-groups/storybook/docs.mdx +3 -3
  76. package/ui.container-groups/storybook/stories.ts +2 -2
  77. package/ui.container-groups/tests/UGroups.test.ts +1 -1
  78. package/ui.container-groups/types.ts +2 -2
  79. package/ui.container-modal/UModal.vue +6 -6
  80. package/ui.container-modal/storybook/docs.mdx +3 -3
  81. package/ui.container-modal/storybook/stories.ts +3 -3
  82. package/ui.container-modal/tests/UModal.test.ts +2 -2
  83. package/ui.container-modal/types.ts +2 -2
  84. package/ui.container-modal-confirm/UModalConfirm.vue +7 -7
  85. package/ui.container-modal-confirm/storybook/docs.mdx +3 -3
  86. package/ui.container-modal-confirm/storybook/stories.ts +3 -3
  87. package/ui.container-modal-confirm/tests/UModalConfirm.test.ts +1 -1
  88. package/ui.container-modal-confirm/types.ts +2 -2
  89. package/ui.container-page/UPage.vue +6 -6
  90. package/ui.container-page/storybook/docs.mdx +3 -3
  91. package/ui.container-page/storybook/stories.ts +2 -2
  92. package/ui.container-page/tests/UPage.test.ts +2 -2
  93. package/ui.container-page/types.ts +2 -2
  94. package/ui.container-row/URow.vue +5 -5
  95. package/ui.container-row/storybook/docs.mdx +3 -3
  96. package/ui.container-row/storybook/stories.ts +2 -2
  97. package/ui.container-row/tests/URow.test.ts +1 -1
  98. package/ui.container-row/types.ts +2 -2
  99. package/ui.data-list/UDataList.vue +8 -8
  100. package/ui.data-list/storybook/docs.mdx +3 -3
  101. package/ui.data-list/storybook/stories.ts +3 -3
  102. package/ui.data-list/tests/UDataList.test.ts +1 -1
  103. package/ui.data-list/types.ts +2 -2
  104. package/ui.data-table/UTable.vue +28 -20
  105. package/ui.data-table/UTableRow.vue +8 -8
  106. package/ui.data-table/config.ts +1 -1
  107. package/ui.data-table/storybook/docs.mdx +3 -3
  108. package/ui.data-table/storybook/stories.ts +14 -3
  109. package/ui.data-table/tests/UTable.test.ts +20 -2
  110. package/ui.data-table/tests/UTableRow.test.ts +1 -1
  111. package/ui.data-table/types.ts +3 -3
  112. package/ui.data-table/utilTable.ts +1 -1
  113. package/ui.dropdown-badge/UDropdownBadge.vue +7 -7
  114. package/ui.dropdown-badge/storybook/docs.mdx +3 -3
  115. package/ui.dropdown-badge/storybook/stories.ts +2 -2
  116. package/ui.dropdown-badge/tests/UDropdownBadge.test.ts +1 -1
  117. package/ui.dropdown-badge/types.ts +3 -3
  118. package/ui.dropdown-button/UDropdownButton.vue +8 -7
  119. package/ui.dropdown-button/config.ts +9 -1
  120. package/ui.dropdown-button/storybook/docs.mdx +3 -3
  121. package/ui.dropdown-button/storybook/stories.ts +3 -3
  122. package/ui.dropdown-button/tests/UDropdownButton.test.ts +17 -1
  123. package/ui.dropdown-button/types.ts +8 -3
  124. package/ui.dropdown-link/UDropdownLink.vue +7 -7
  125. package/ui.dropdown-link/config.ts +1 -1
  126. package/ui.dropdown-link/storybook/docs.mdx +3 -3
  127. package/ui.dropdown-link/storybook/stories.ts +2 -2
  128. package/ui.dropdown-link/tests/UDropdownLink.test.ts +1 -1
  129. package/ui.dropdown-link/types.ts +3 -3
  130. package/ui.form-calendar/UCalendar.vue +11 -11
  131. package/ui.form-calendar/UCalendarDayView.vue +6 -6
  132. package/ui.form-calendar/UCalendarMonthView.vue +6 -6
  133. package/ui.form-calendar/UCalendarYearView.vue +6 -6
  134. package/ui.form-calendar/storybook/docs.mdx +3 -3
  135. package/ui.form-calendar/storybook/stories.ts +3 -3
  136. package/ui.form-calendar/tests/UCalendar.test.ts +2 -2
  137. package/ui.form-calendar/tests/UCalendarDayView.test.ts +2 -2
  138. package/ui.form-calendar/tests/UCalendarMonthView.test.ts +2 -2
  139. package/ui.form-calendar/tests/UCalendarYearView.test.ts +2 -2
  140. package/ui.form-calendar/types.ts +3 -3
  141. package/ui.form-calendar/utilCalendar.ts +4 -4
  142. package/ui.form-calendar/utilDate.ts +1 -1
  143. package/ui.form-calendar/utilFormatting.ts +1 -1
  144. package/ui.form-checkbox/UCheckbox.vue +6 -6
  145. package/ui.form-checkbox/storybook/docs.mdx +3 -3
  146. package/ui.form-checkbox/storybook/stories.ts +2 -2
  147. package/ui.form-checkbox/tests/UCheckbox.test.ts +1 -1
  148. package/ui.form-checkbox/types.ts +2 -2
  149. package/ui.form-checkbox-group/UCheckboxGroup.vue +6 -6
  150. package/ui.form-checkbox-group/storybook/docs.mdx +3 -3
  151. package/ui.form-checkbox-group/storybook/stories.ts +2 -2
  152. package/ui.form-checkbox-group/tests/UCheckboxGroup.test.ts +1 -1
  153. package/ui.form-checkbox-group/types.ts +3 -3
  154. package/ui.form-checkbox-multi-state/UCheckboxMultiState.vue +8 -8
  155. package/ui.form-checkbox-multi-state/storybook/docs.mdx +3 -3
  156. package/ui.form-checkbox-multi-state/storybook/stories.ts +2 -2
  157. package/ui.form-checkbox-multi-state/tests/UCheckboxMultiState.test.ts +1 -1
  158. package/ui.form-checkbox-multi-state/types.ts +3 -3
  159. package/ui.form-color-picker/UColorPicker.vue +6 -6
  160. package/ui.form-color-picker/storybook/docs.mdx +3 -3
  161. package/ui.form-color-picker/storybook/stories.ts +2 -2
  162. package/ui.form-color-picker/tests/UColorPicker.test.ts +1 -1
  163. package/ui.form-color-picker/types.ts +2 -2
  164. package/ui.form-date-picker/UDatePicker.vue +14 -14
  165. package/ui.form-date-picker/storybook/docs.mdx +3 -3
  166. package/ui.form-date-picker/storybook/stories.ts +3 -3
  167. package/ui.form-date-picker/tests/UDatePicker.test.ts +1 -1
  168. package/ui.form-date-picker/types.ts +2 -2
  169. package/ui.form-date-picker-range/UDatePickerRange.vue +14 -14
  170. package/ui.form-date-picker-range/UDatePickerRangeInputs.vue +6 -6
  171. package/ui.form-date-picker-range/UDatePickerRangePeriodMenu.vue +5 -5
  172. package/ui.form-date-picker-range/storybook/docs.mdx +3 -3
  173. package/ui.form-date-picker-range/storybook/stories.ts +4 -4
  174. package/ui.form-date-picker-range/tests/UDatePickerRange.test.ts +1 -1
  175. package/ui.form-date-picker-range/types.ts +4 -4
  176. package/ui.form-date-picker-range/useLocale.ts +6 -6
  177. package/ui.form-date-picker-range/useUserFormat.ts +5 -5
  178. package/ui.form-date-picker-range/utilDateRange.ts +2 -2
  179. package/ui.form-date-picker-range/utilValidation.ts +1 -1
  180. package/ui.form-input/UInput.vue +7 -7
  181. package/ui.form-input/config.ts +1 -1
  182. package/ui.form-input/storybook/docs.mdx +3 -3
  183. package/ui.form-input/storybook/stories.ts +2 -2
  184. package/ui.form-input/tests/UInput.test.ts +1 -1
  185. package/ui.form-input/types.ts +2 -2
  186. package/ui.form-input-counter/UInputCounter.vue +5 -5
  187. package/ui.form-input-counter/storybook/docs.mdx +3 -3
  188. package/ui.form-input-counter/storybook/stories.ts +2 -2
  189. package/ui.form-input-counter/tests/UInputCounter.test.ts +1 -1
  190. package/ui.form-input-counter/types.ts +2 -2
  191. package/ui.form-input-file/UInputFile.vue +8 -8
  192. package/ui.form-input-file/storybook/docs.mdx +3 -3
  193. package/ui.form-input-file/storybook/stories.ts +2 -2
  194. package/ui.form-input-file/tests/UInputFile.test.ts +1 -1
  195. package/ui.form-input-file/types.ts +2 -2
  196. package/ui.form-input-number/UInputNumber.vue +7 -7
  197. package/ui.form-input-number/storybook/docs.mdx +3 -3
  198. package/ui.form-input-number/storybook/stories.ts +2 -2
  199. package/ui.form-input-number/tests/UInputNumber.test.ts +1 -1
  200. package/ui.form-input-number/types.ts +2 -2
  201. package/ui.form-input-number/useFormatNumber.ts +3 -3
  202. package/ui.form-input-number/utilFormat.ts +2 -2
  203. package/ui.form-input-password/UInputPassword.vue +6 -6
  204. package/ui.form-input-password/storybook/docs.mdx +3 -3
  205. package/ui.form-input-password/storybook/stories.ts +2 -2
  206. package/ui.form-input-password/tests/UInputPassword.test.ts +1 -1
  207. package/ui.form-input-password/types.ts +2 -2
  208. package/ui.form-input-rating/UInputRating.vue +6 -6
  209. package/ui.form-input-rating/storybook/docs.mdx +3 -3
  210. package/ui.form-input-rating/storybook/stories.ts +2 -2
  211. package/ui.form-input-rating/tests/UInputRating.test.ts +1 -1
  212. package/ui.form-input-rating/types.ts +2 -2
  213. package/ui.form-input-search/UInputSearch.vue +6 -6
  214. package/ui.form-input-search/storybook/docs.mdx +3 -3
  215. package/ui.form-input-search/storybook/stories.ts +2 -2
  216. package/ui.form-input-search/tests/UInputSearch.test.ts +1 -1
  217. package/ui.form-input-search/types.ts +2 -2
  218. package/ui.form-label/ULabel.vue +6 -6
  219. package/ui.form-label/storybook/docs.mdx +3 -3
  220. package/ui.form-label/storybook/stories.ts +2 -2
  221. package/ui.form-label/tests/ULabel.test.ts +1 -1
  222. package/ui.form-label/types.ts +2 -2
  223. package/ui.form-listbox/UListbox.vue +9 -9
  224. package/ui.form-listbox/storybook/docs.mdx +3 -3
  225. package/ui.form-listbox/storybook/stories.ts +2 -2
  226. package/ui.form-listbox/tests/UListbox.test.ts +1 -1
  227. package/ui.form-listbox/types.ts +2 -2
  228. package/ui.form-listbox/usePointer.ts +1 -1
  229. package/ui.form-listbox/utilListbox.ts +1 -1
  230. package/ui.form-radio/URadio.vue +6 -6
  231. package/ui.form-radio/storybook/docs.mdx +3 -3
  232. package/ui.form-radio/storybook/stories.ts +2 -2
  233. package/ui.form-radio/tests/URadio.test.ts +1 -1
  234. package/ui.form-radio/types.ts +2 -2
  235. package/ui.form-radio-group/URadioGroup.vue +5 -5
  236. package/ui.form-radio-group/storybook/docs.mdx +3 -3
  237. package/ui.form-radio-group/storybook/stories.ts +2 -2
  238. package/ui.form-radio-group/tests/URadioGroup.test.ts +6 -2
  239. package/ui.form-radio-group/types.ts +2 -2
  240. package/ui.form-select/USelect.vue +13 -12
  241. package/ui.form-select/storybook/docs.mdx +3 -3
  242. package/ui.form-select/storybook/stories.ts +2 -2
  243. package/ui.form-select/tests/USelect.test.ts +1 -1
  244. package/ui.form-select/types.ts +3 -3
  245. package/ui.form-select/utilSelect.ts +1 -1
  246. package/ui.form-switch/USwitch.vue +6 -6
  247. package/ui.form-switch/storybook/docs.mdx +3 -3
  248. package/ui.form-switch/storybook/stories.ts +2 -2
  249. package/ui.form-switch/tests/USwitch.test.ts +1 -1
  250. package/ui.form-switch/types.ts +2 -2
  251. package/ui.form-textarea/UTextarea.vue +7 -7
  252. package/ui.form-textarea/storybook/docs.mdx +3 -3
  253. package/ui.form-textarea/storybook/stories.ts +3 -3
  254. package/ui.form-textarea/tests/UTextarea.test.ts +1 -1
  255. package/ui.form-textarea/types.ts +2 -2
  256. package/ui.image-avatar/UAvatar.vue +5 -5
  257. package/ui.image-avatar/storybook/docs.mdx +3 -3
  258. package/ui.image-avatar/storybook/stories.ts +3 -3
  259. package/ui.image-avatar/tests/UAvatar.test.ts +1 -1
  260. package/ui.image-avatar/types.ts +2 -2
  261. package/ui.image-icon/UIcon.vue +6 -6
  262. package/ui.image-icon/storybook/docs.mdx +3 -3
  263. package/ui.image-icon/storybook/stories.ts +2 -2
  264. package/ui.image-icon/tests/UIcon.test.ts +0 -1
  265. package/ui.image-icon/types.ts +2 -2
  266. package/ui.loader/ULoader.vue +5 -5
  267. package/ui.loader/storybook/docs.mdx +3 -3
  268. package/ui.loader/storybook/stories.ts +2 -2
  269. package/ui.loader/tests/ULoader.test.ts +1 -1
  270. package/ui.loader/types.ts +2 -2
  271. package/ui.loader-overlay/ULoaderOverlay.vue +6 -6
  272. package/ui.loader-overlay/storybook/docs.mdx +3 -3
  273. package/ui.loader-overlay/storybook/stories.ts +2 -2
  274. package/ui.loader-overlay/tests/ULoaderOverlay.test.ts +2 -2
  275. package/ui.loader-overlay/types.ts +2 -2
  276. package/ui.loader-progress/ULoaderProgress.vue +7 -7
  277. package/ui.loader-progress/storybook/docs.mdx +3 -3
  278. package/ui.loader-progress/storybook/stories.ts +4 -4
  279. package/ui.loader-progress/tests/ULoaderProgress.test.ts +2 -2
  280. package/ui.loader-progress/types.ts +2 -2
  281. package/ui.loader-progress/useLoaderProgress.ts +1 -1
  282. package/ui.navigation-breadcrumbs/UBreadcrumbs.vue +6 -6
  283. package/ui.navigation-breadcrumbs/storybook/docs.mdx +3 -3
  284. package/ui.navigation-breadcrumbs/storybook/stories.ts +13 -2
  285. package/ui.navigation-breadcrumbs/tests/UBreadcrumbs.test.ts +2 -2
  286. package/ui.navigation-breadcrumbs/types.ts +3 -3
  287. package/ui.navigation-pagination/UPagination.vue +5 -5
  288. package/ui.navigation-pagination/storybook/docs.mdx +3 -3
  289. package/ui.navigation-pagination/storybook/stories.ts +5 -3
  290. package/ui.navigation-pagination/tests/UPagination.test.ts +1 -1
  291. package/ui.navigation-pagination/types.ts +2 -2
  292. package/ui.navigation-progress/UProgress.vue +5 -5
  293. package/ui.navigation-progress/UStepperProgress.vue +3 -3
  294. package/ui.navigation-progress/storybook/docs.mdx +3 -3
  295. package/ui.navigation-progress/storybook/stories.ts +2 -2
  296. package/ui.navigation-progress/tests/UProgress.test.ts +1 -1
  297. package/ui.navigation-progress/types.ts +2 -2
  298. package/ui.navigation-tab/UTab.vue +6 -6
  299. package/ui.navigation-tab/storybook/docs.mdx +3 -3
  300. package/ui.navigation-tab/storybook/stories.ts +2 -2
  301. package/ui.navigation-tab/types.ts +2 -2
  302. package/ui.navigation-tabs/UTabs.vue +5 -5
  303. package/ui.navigation-tabs/storybook/docs.mdx +3 -3
  304. package/ui.navigation-tabs/storybook/stories.ts +2 -2
  305. package/ui.navigation-tabs/tests/UTabs.test.ts +1 -1
  306. package/ui.navigation-tabs/types.ts +2 -2
  307. package/ui.other-chip/UChip.vue +5 -5
  308. package/ui.other-chip/storybook/docs.mdx +3 -3
  309. package/ui.other-chip/storybook/stories.ts +13 -2
  310. package/ui.other-chip/tests/UChip.test.ts +1 -1
  311. package/ui.other-chip/types.ts +2 -2
  312. package/ui.other-dot/UDot.vue +5 -5
  313. package/ui.other-dot/storybook/docs.mdx +3 -3
  314. package/ui.other-dot/storybook/stories.ts +2 -2
  315. package/ui.other-dot/tests/UDot.test.ts +1 -1
  316. package/ui.other-dot/types.ts +2 -2
  317. package/ui.other-theme-color-toggle/UThemeColorToggle.vue +6 -6
  318. package/ui.other-theme-color-toggle/storybook/docs.mdx +3 -3
  319. package/ui.other-theme-color-toggle/storybook/stories.ts +2 -2
  320. package/ui.other-theme-color-toggle/tests/UThemeColorToggle.test.ts +1 -1
  321. package/ui.other-theme-color-toggle/types.ts +2 -2
  322. package/ui.skeleton/USkeleton.vue +5 -5
  323. package/ui.skeleton/storybook/docs.mdx +3 -3
  324. package/ui.skeleton/storybook/stories.ts +7 -2
  325. package/ui.skeleton/tests/USkeleton.test.ts +1 -1
  326. package/ui.skeleton/types.ts +2 -2
  327. package/ui.skeleton-choice/USkeletonChoice.vue +5 -5
  328. package/ui.skeleton-choice/storybook/docs.mdx +3 -3
  329. package/ui.skeleton-choice/storybook/stories.ts +7 -2
  330. package/ui.skeleton-choice/tests/USkeletonChoice.test.ts +1 -1
  331. package/ui.skeleton-choice/types.ts +2 -2
  332. package/ui.skeleton-input/USkeletonInput.vue +5 -5
  333. package/ui.skeleton-input/storybook/docs.mdx +3 -3
  334. package/ui.skeleton-input/storybook/stories.ts +13 -2
  335. package/ui.skeleton-input/tests/USkeletonInput.test.ts +1 -1
  336. package/ui.skeleton-input/types.ts +2 -2
  337. package/ui.skeleton-text/USkeletonText.vue +5 -5
  338. package/ui.skeleton-text/storybook/docs.mdx +3 -3
  339. package/ui.skeleton-text/storybook/stories.ts +7 -2
  340. package/ui.skeleton-text/tests/USkeletonText.test.ts +1 -1
  341. package/ui.skeleton-text/types.ts +2 -2
  342. package/ui.text-alert/UAlert.vue +6 -6
  343. package/ui.text-alert/storybook/docs.mdx +3 -3
  344. package/ui.text-alert/storybook/stories.ts +2 -2
  345. package/ui.text-alert/tests/UAlert.test.ts +1 -1
  346. package/ui.text-alert/types.ts +2 -2
  347. package/ui.text-badge/UBadge.vue +6 -6
  348. package/ui.text-badge/storybook/docs.mdx +3 -3
  349. package/ui.text-badge/storybook/stories.ts +2 -2
  350. package/ui.text-badge/tests/UBadge.test.ts +1 -1
  351. package/ui.text-badge/types.ts +2 -2
  352. package/ui.text-block/UText.vue +5 -5
  353. package/ui.text-block/storybook/docs.mdx +3 -3
  354. package/ui.text-block/storybook/stories.ts +2 -2
  355. package/ui.text-block/tests/UText.test.ts +1 -1
  356. package/ui.text-block/types.ts +2 -2
  357. package/ui.text-empty/UEmpty.vue +5 -5
  358. package/ui.text-empty/storybook/docs.mdx +3 -3
  359. package/ui.text-empty/storybook/stories.ts +2 -2
  360. package/ui.text-empty/tests/UEmpty.test.ts +1 -1
  361. package/ui.text-empty/types.ts +2 -2
  362. package/ui.text-file/UFile.vue +5 -5
  363. package/ui.text-file/storybook/docs.mdx +3 -3
  364. package/ui.text-file/storybook/stories.ts +2 -2
  365. package/ui.text-file/tests/UFile.test.ts +1 -1
  366. package/ui.text-file/types.ts +2 -2
  367. package/ui.text-files/UFiles.vue +6 -6
  368. package/ui.text-files/storybook/docs.mdx +3 -3
  369. package/ui.text-files/storybook/stories.ts +2 -2
  370. package/ui.text-files/tests/UFiles.test.ts +1 -1
  371. package/ui.text-files/types.ts +2 -2
  372. package/ui.text-header/UHeader.vue +5 -5
  373. package/ui.text-header/storybook/docs.mdx +3 -3
  374. package/ui.text-header/storybook/stories.ts +2 -2
  375. package/ui.text-header/tests/UHeader.test.ts +1 -1
  376. package/ui.text-header/types.ts +2 -2
  377. package/ui.text-notify/UNotify.vue +6 -6
  378. package/ui.text-notify/storybook/docs.mdx +3 -3
  379. package/ui.text-notify/storybook/stories.ts +3 -3
  380. package/ui.text-notify/tests/UNotify.test.ts +4 -4
  381. package/ui.text-notify/types.ts +3 -3
  382. package/ui.text-notify/utilNotify.ts +3 -3
  383. package/ui.text-number/UNumber.vue +6 -6
  384. package/ui.text-number/storybook/docs.mdx +3 -3
  385. package/ui.text-number/storybook/stories.ts +13 -2
  386. package/ui.text-number/tests/UNumber.test.ts +2 -2
  387. package/ui.text-number/types.ts +2 -2
  388. package/utils/helper.ts +1 -1
  389. package/utils/node/dynamicProps.d.ts +2 -0
  390. package/utils/node/dynamicProps.js +17 -8
  391. package/utils/node/helper.d.ts +15 -0
  392. package/utils/node/helper.js +73 -27
  393. package/utils/node/loaderIcon.d.ts +7 -0
  394. package/utils/node/loaderIcon.js +12 -8
  395. package/utils/node/loaderSvg.d.ts +1 -0
  396. package/utils/node/mergeConfigs.d.ts +13 -0
  397. package/utils/node/storybook.d.ts +2 -0
  398. package/utils/node/storybook.js +93 -0
  399. package/utils/node/tailwindSafelist.d.ts +6 -0
  400. package/utils/node/vuelessConfig.d.ts +9 -0
  401. package/utils/node/vuelessConfig.js +30 -11
  402. package/utils/node/vuelessResolver.d.ts +13 -0
  403. package/utils/node/vuelessResolver.js +30 -14
  404. package/utils/node/webTypes.d.ts +1 -0
  405. package/utils/node/webTypes.js +4 -2
  406. package/utils/platform.ts +1 -1
  407. package/utils/storybook.ts +2 -2
  408. package/utils/theme.ts +20 -18
  409. package/utils/ui.ts +33 -8
  410. package/{directives/clickOutside → v.click-outside}/storybook/docs.mdx +2 -2
  411. package/{directives/clickOutside → v.click-outside}/storybook/stories.ts +5 -5
  412. package/{directives/clickOutside → v.click-outside}/vClickOutside.ts +1 -1
  413. package/v.tooltip/storybook/docs.mdx +47 -0
  414. package/{directives/tooltip → v.tooltip}/storybook/stories.ts +14 -11
  415. package/{directives/tooltip → v.tooltip}/vTooltip.ts +4 -9
  416. package/directives/index.js +0 -7
  417. package/directives/tooltip/storybook/docs.mdx +0 -10
  418. package/utils/node/dynamicStories.js +0 -62
  419. package/utils/tailwindConfig.ts +0 -36
  420. /package/{directives/clickOutside → v.click-outside}/types.ts +0 -0
  421. /package/{directives/tooltip → v.tooltip}/types.ts +0 -0
package/types.ts CHANGED
@@ -1,66 +1,66 @@
1
- import UTextDefaultConfig from "./ui.text-block/config.ts";
2
- import UAlertDefaultConfig from "./ui.text-alert/config.ts";
3
- import UEmptyDefaultConfig from "./ui.text-empty/config.ts";
4
- import UFileDefaultConfig from "./ui.text-file/config.ts";
5
- import UFilesDefaultConfig from "./ui.text-files/config.ts";
6
- import UHeaderDefaultConfig from "./ui.text-header/config.ts";
7
- import UNotifyDefaultConfig from "./ui.text-notify/config.ts";
8
- import UNumberDefaultConfig from "./ui.text-number/config.ts";
9
- import UDotDefaultConfig from "./ui.other-dot/config.ts";
10
- import UChipDefaultConfig from "./ui.other-chip/config.ts";
11
- import UButtonDefaultConfig from "./ui.button/config.ts";
12
- import ULinkDefaultConfig from "./ui.button-link/config.ts";
13
- import UToggleDefaultConfig from "./ui.button-toggle/config.ts";
14
- import UBadgeDefaultConfig from "./ui.text-badge/config.ts";
15
- import UCalendarDefaultConfig from "./ui.form-calendar/config.ts";
16
- import UDatePickerConfig from "./ui.form-date-picker/config.ts";
17
- import UDatePickerRangeConfig from "./ui.form-date-picker-range/config.ts";
18
- import UDataTableConfig from "./ui.data-table/config.ts";
19
- import UDropdownBadgeConfig from "./ui.dropdown-badge/config.ts";
20
- import UDropdownButtonConfig from "./ui.dropdown-button/config.ts";
21
- import UDropdownLinkConfig from "./ui.dropdown-link/config.ts";
22
- import UAccordionConfig from "./ui.container-accordion/config.ts";
23
- import UCardConfig from "./ui.container-card/config.ts";
24
- import UColConfig from "./ui.container-col/config.ts";
25
- import UDividerConfig from "./ui.container-divider/config.ts";
26
- import UGroupConfig from "./ui.container-group/config.ts";
27
- import UModalConfig from "./ui.container-modal/config.ts";
28
- import UModalConfirmConfig from "./ui.container-modal-confirm/config.ts";
29
- import UPageConfig from "./ui.container-page/config.ts";
30
- import URowConfig from "./ui.container-row/config.ts";
31
- import ULoaderConfig from "./ui.loader/config.ts";
32
- import ULoaderOverlayConfig from "./ui.loader-overlay/config.ts";
33
- import ULoaderProgressConfig from "./ui.loader-progress/config.ts";
34
- import UPaginationConfig from "./ui.navigation-pagination/config.ts";
35
- import UProgressConfig from "./ui.navigation-progress/config.ts";
36
- import UTabConfig from "./ui.navigation-tab/config.ts";
37
- import UTabsConfig from "./ui.navigation-tabs/config.ts";
38
- import UBreadcrumbsConfig from "./ui.navigation-breadcrumbs/config.ts";
39
- import UAvatarConfig from "./ui.image-avatar/config.ts";
40
- import UIconConfig from "./ui.image-icon/config.ts";
41
- import UCheckboxConfig from "./ui.form-checkbox/config.ts";
42
- import UCheckboxGroupConfig from "./ui.form-checkbox-group/config.ts";
43
- import UCheckboxMultiStateConfig from "./ui.form-checkbox-multi-state/config.ts";
44
- import URadioConfig from "./ui.form-radio/config.ts";
45
- import URadioGroupConfig from "./ui.form-radio-group/config.ts";
46
- import USwitchConfig from "./ui.form-switch/config.ts";
47
- import UTextareaConfig from "./ui.form-textarea/config.ts";
48
- import ULabelConfig from "./ui.form-label/config.ts";
49
- import UColorPickerConfig from "./ui.other-theme-color-toggle/config.ts";
50
- import UInputConfig from "./ui.form-input/config.ts";
51
- import UInputCounterConfig from "./ui.form-input-counter/config.ts";
52
- import UInputPasswordConfig from "./ui.form-input-password/config.ts";
53
- import UInputRatingConfig from "./ui.form-input-rating/config.ts";
54
- import UInputSearchConfig from "./ui.form-input-search/config.ts";
55
- import UInputFileConfig from "./ui.form-input-file/config.ts";
56
- import UInputNumberConfig from "./ui.form-input-number/config.ts";
57
- import UDataListConfig from "./ui.data-list/config.ts";
58
- import USelectConfig from "./ui.form-select/config.ts";
59
- import UListboxConfig from "./ui.form-listbox/config.ts";
1
+ import UTextDefaultConfig from "./ui.text-block/config";
2
+ import UAlertDefaultConfig from "./ui.text-alert/config";
3
+ import UEmptyDefaultConfig from "./ui.text-empty/config";
4
+ import UFileDefaultConfig from "./ui.text-file/config";
5
+ import UFilesDefaultConfig from "./ui.text-files/config";
6
+ import UHeaderDefaultConfig from "./ui.text-header/config";
7
+ import UNotifyDefaultConfig from "./ui.text-notify/config";
8
+ import UNumberDefaultConfig from "./ui.text-number/config";
9
+ import UDotDefaultConfig from "./ui.other-dot/config";
10
+ import UChipDefaultConfig from "./ui.other-chip/config";
11
+ import UButtonDefaultConfig from "./ui.button/config";
12
+ import ULinkDefaultConfig from "./ui.button-link/config";
13
+ import UToggleDefaultConfig from "./ui.button-toggle/config";
14
+ import UBadgeDefaultConfig from "./ui.text-badge/config";
15
+ import UCalendarDefaultConfig from "./ui.form-calendar/config";
16
+ import UDatePickerConfig from "./ui.form-date-picker/config";
17
+ import UDatePickerRangeConfig from "./ui.form-date-picker-range/config";
18
+ import UDataTableConfig from "./ui.data-table/config";
19
+ import UDropdownBadgeConfig from "./ui.dropdown-badge/config";
20
+ import UDropdownButtonConfig from "./ui.dropdown-button/config";
21
+ import UDropdownLinkConfig from "./ui.dropdown-link/config";
22
+ import UAccordionConfig from "./ui.container-accordion/config";
23
+ import UCardConfig from "./ui.container-card/config";
24
+ import UColConfig from "./ui.container-col/config";
25
+ import UDividerConfig from "./ui.container-divider/config";
26
+ import UGroupConfig from "./ui.container-group/config";
27
+ import UModalConfig from "./ui.container-modal/config";
28
+ import UModalConfirmConfig from "./ui.container-modal-confirm/config";
29
+ import UPageConfig from "./ui.container-page/config";
30
+ import URowConfig from "./ui.container-row/config";
31
+ import ULoaderConfig from "./ui.loader/config";
32
+ import ULoaderOverlayConfig from "./ui.loader-overlay/config";
33
+ import ULoaderProgressConfig from "./ui.loader-progress/config";
34
+ import UPaginationConfig from "./ui.navigation-pagination/config";
35
+ import UProgressConfig from "./ui.navigation-progress/config";
36
+ import UTabConfig from "./ui.navigation-tab/config";
37
+ import UTabsConfig from "./ui.navigation-tabs/config";
38
+ import UBreadcrumbsConfig from "./ui.navigation-breadcrumbs/config";
39
+ import UAvatarConfig from "./ui.image-avatar/config";
40
+ import UIconConfig from "./ui.image-icon/config";
41
+ import UCheckboxConfig from "./ui.form-checkbox/config";
42
+ import UCheckboxGroupConfig from "./ui.form-checkbox-group/config";
43
+ import UCheckboxMultiStateConfig from "./ui.form-checkbox-multi-state/config";
44
+ import URadioConfig from "./ui.form-radio/config";
45
+ import URadioGroupConfig from "./ui.form-radio-group/config";
46
+ import USwitchConfig from "./ui.form-switch/config";
47
+ import UTextareaConfig from "./ui.form-textarea/config";
48
+ import ULabelConfig from "./ui.form-label/config";
49
+ import UColorPickerConfig from "./ui.other-theme-color-toggle/config";
50
+ import UInputConfig from "./ui.form-input/config";
51
+ import UInputCounterConfig from "./ui.form-input-counter/config";
52
+ import UInputPasswordConfig from "./ui.form-input-password/config";
53
+ import UInputRatingConfig from "./ui.form-input-rating/config";
54
+ import UInputSearchConfig from "./ui.form-input-search/config";
55
+ import UInputFileConfig from "./ui.form-input-file/config";
56
+ import UInputNumberConfig from "./ui.form-input-number/config";
57
+ import UDataListConfig from "./ui.data-list/config";
58
+ import USelectConfig from "./ui.form-select/config";
59
+ import UListboxConfig from "./ui.form-listbox/config";
60
60
 
61
61
  import type { Props } from "tippy.js";
62
62
  import type { Config as TailwindConfig } from "tailwindcss";
63
- import type { ComputedRef, Ref, ComponentInternalInstance } from "vue";
63
+ import type { ComputedRef, Ref, ComponentInternalInstance, TransitionProps } from "vue";
64
64
 
65
65
  export enum ColorMode {
66
66
  Dark = "dark",
@@ -101,17 +101,17 @@ export interface ThemeConfig {
101
101
  /**
102
102
  * Default components font size.
103
103
  */
104
- text?: number | ThemeConfigText;
104
+ text?: number | Partial<ThemeConfigText>;
105
105
 
106
106
  /**
107
107
  * Default components rounding (border-radius).
108
108
  */
109
- rounding?: number | ThemeConfigRounding;
109
+ rounding?: number | Partial<ThemeConfigRounding>;
110
110
 
111
111
  /**
112
112
  * Default components outline width.
113
113
  */
114
- outline?: number | ThemeConfigOutline;
114
+ outline?: number | Partial<ThemeConfigOutline>;
115
115
 
116
116
  /**
117
117
  * Default components opacity for disabled state (in percents).
@@ -220,6 +220,7 @@ export type PrimaryColors =
220
220
 
221
221
  export interface Directives {
222
222
  tooltip?: Partial<Props>;
223
+ clickOutside?: Partial<Props>;
223
224
  }
224
225
 
225
226
  export interface Components {
@@ -289,7 +290,7 @@ export interface Components {
289
290
  export type ComponentConfig<T> = Partial<{
290
291
  [K in keyof T]: K extends string
291
292
  ? K extends `${string}transition${string}` | `${string}Transition${string}`
292
- ? Transition
293
+ ? TransitionProps
293
294
  : K extends "i18n"
294
295
  ? T[K]
295
296
  : T[K] | string | UnknownObject
@@ -304,20 +305,11 @@ export interface NestedComponent {
304
305
  [key: string]: Record<string, string | UnknownObject> | string | undefined;
305
306
  }
306
307
 
307
- export type Defaults = {
308
+ export type ComponentDefaults = {
308
309
  color?: string;
309
310
  [key: string]: unknown | UnknownObject;
310
311
  };
311
312
 
312
- export interface Transition {
313
- enterFromClass?: string;
314
- enterActiveClass?: string;
315
- enterToClass?: string;
316
- leaveFromClass?: string;
317
- leaveActiveClass?: string;
318
- leaveToClass?: string;
319
- }
320
-
321
313
  export interface CVA {
322
314
  base?: string;
323
315
  variants?: UnknownObject;
@@ -1,13 +1,13 @@
1
1
  <script setup lang="ts">
2
2
  import { computed } from "vue";
3
3
 
4
- import useUI from "../composables/useUI.ts";
5
- import { getDefaults } from "../utils/ui.ts";
4
+ import useUI from "../composables/useUI";
5
+ import { getDefaults } from "../utils/ui";
6
6
 
7
- import defaultConfig from "./config.ts";
8
- import { COMPONENT_NAME } from "./constants.ts";
7
+ import defaultConfig from "./config";
8
+ import { COMPONENT_NAME } from "./constants";
9
9
 
10
- import type { Props, Config } from "./types.ts";
10
+ import type { Props, Config } from "./types";
11
11
 
12
12
  defineOptions({ inheritAttrs: false });
13
13
 
@@ -1,8 +1,8 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
- import { getSource } from "../../utils/storybook.ts";
2
+ import { getSource } from "../../utils/storybook";
3
3
 
4
- import * as stories from "./stories.hidden.ts";
5
- import defaultConfig from "../config.ts?raw"
4
+ import * as stories from "./stories.js";
5
+ import defaultConfig from "../config?raw"
6
6
 
7
7
  <Meta of={stories} />
8
8
  <Title of={stories} />
@@ -1,9 +1,9 @@
1
- import { getArgTypes, getSlotNames, getSlotsFragment } from "../../utils/storybook.ts";
1
+ import { getArgTypes, getSlotNames, getSlotsFragment } from "../../utils/storybook";
2
2
 
3
3
  import UBoilerplate from "../UBoilerplate.vue";
4
4
 
5
5
  import type { Meta, StoryFn } from "@storybook/vue3-vite";
6
- import type { Props } from "../types.ts";
6
+ import type { Props } from "../types";
7
7
 
8
8
  interface UBoilerplateArgs extends Props {
9
9
  slotTemplate?: string;
@@ -2,7 +2,7 @@ import { mount } from "@vue/test-utils";
2
2
  import { describe, it, expect } from "vitest";
3
3
 
4
4
  import UBoilerplate from "../UBoilerplate.vue";
5
- import defaultConfig from "../config.ts";
5
+ import defaultConfig from "../config";
6
6
 
7
7
  describe("UBoilerplate.vue", () => {
8
8
  describe("Props", () => {
@@ -1,5 +1,5 @@
1
- import defaultConfig from "./config.ts";
2
- import type { ComponentConfig } from "../types.ts";
1
+ import defaultConfig from "./config";
2
+ import type { ComponentConfig } from "../types";
3
3
 
4
4
  export type Config = typeof defaultConfig;
5
5
 
@@ -1,17 +1,17 @@
1
1
  <script setup lang="ts">
2
2
  import { computed, ref, watchEffect, useId, watch, useSlots, useTemplateRef } from "vue";
3
3
 
4
- import useUI from "../composables/useUI.ts";
5
- import { hasSlotContent } from "../utils/helper.ts";
6
- import { getDefaults } from "../utils/ui.ts";
4
+ import useUI from "../composables/useUI";
5
+ import { hasSlotContent } from "../utils/helper";
6
+ import { getDefaults } from "../utils/ui";
7
7
 
8
8
  import ULoader from "../ui.loader/ULoader.vue";
9
9
  import UIcon from "../ui.image-icon/UIcon.vue";
10
10
 
11
- import defaultConfig from "./config.ts";
12
- import { COMPONENT_NAME } from "./constants.ts";
11
+ import defaultConfig from "./config";
12
+ import { COMPONENT_NAME } from "./constants";
13
13
 
14
- import type { Props, Config } from "./types.ts";
14
+ import type { Props, Config } from "./types";
15
15
 
16
16
  defineOptions({ inheritAttrs: false });
17
17
 
@@ -1,8 +1,8 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
- import { getSource } from "../../utils/storybook.ts";
2
+ import { getSource } from "../../utils/storybook";
3
3
 
4
- import * as stories from "./stories.ts";
5
- import defaultConfig from "../config.ts?raw"
4
+ import * as stories from "./stories";
5
+ import defaultConfig from "../config?raw"
6
6
 
7
7
  <Meta of={stories} />
8
8
  <Title of={stories} />
@@ -4,7 +4,7 @@ import {
4
4
  getSlotNames,
5
5
  getSlotsFragment,
6
6
  getDocsDescription,
7
- } from "../../utils/storybook.ts";
7
+ } from "../../utils/storybook";
8
8
 
9
9
  import { ref } from "vue";
10
10
 
@@ -16,7 +16,7 @@ import UAvatar from "../../ui.image-avatar/UAvatar.vue";
16
16
  import UBadge from "../../ui.text-badge/UBadge.vue";
17
17
 
18
18
  import type { Meta, StoryFn } from "@storybook/vue3-vite";
19
- import type { Props } from "../types.ts";
19
+ import type { Props } from "../types";
20
20
 
21
21
  interface UButtonArgs extends Props {
22
22
  slotTemplate?: string;
@@ -5,7 +5,7 @@ import UButton from "../UButton.vue";
5
5
  import ULoader from "../../ui.loader/ULoader.vue";
6
6
  import UIcon from "../../ui.image-icon/UIcon.vue";
7
7
 
8
- import type { Props } from "../types.ts";
8
+ import type { Props } from "../types";
9
9
 
10
10
  describe("UButton.vue", () => {
11
11
  describe("Props", () => {
@@ -1,5 +1,5 @@
1
- import defaultConfig from "./config.ts";
2
- import type { ComponentConfig } from "../types.ts";
1
+ import defaultConfig from "./config";
2
+ import type { ComponentConfig } from "../types";
3
3
 
4
4
  export type Config = typeof defaultConfig;
5
5
 
@@ -2,14 +2,14 @@
2
2
  import { computed, useSlots, useTemplateRef } from "vue";
3
3
  import { RouterLink } from "vue-router";
4
4
 
5
- import useUI from "../composables/useUI.ts";
6
- import { hasSlotContent } from "../utils/helper.ts";
7
- import { getDefaults } from "../utils/ui.ts";
5
+ import useUI from "../composables/useUI";
6
+ import { hasSlotContent } from "../utils/helper";
7
+ import { getDefaults } from "../utils/ui";
8
8
 
9
- import defaultConfig from "./config.ts";
10
- import { COMPONENT_NAME } from "./constants.ts";
9
+ import defaultConfig from "./config";
10
+ import { COMPONENT_NAME } from "./constants";
11
11
 
12
- import type { Props, Config, ULinkSlotProps } from "./types.ts";
12
+ import type { Props, Config, ULinkSlotProps } from "./types";
13
13
 
14
14
  defineOptions({ inheritAttrs: false });
15
15
 
@@ -1,8 +1,8 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
- import { getSource } from "../../utils/storybook.ts";
2
+ import { getSource } from "../../utils/storybook";
3
3
 
4
- import * as stories from "./stories.ts";
5
- import defaultConfig from "../config.ts?raw"
4
+ import * as stories from "./stories";
5
+ import defaultConfig from "../config?raw"
6
6
 
7
7
  <Meta of={stories} />
8
8
  <Title of={stories} />
@@ -4,7 +4,7 @@ import {
4
4
  getSlotNames,
5
5
  getSlotsFragment,
6
6
  getDocsDescription,
7
- } from "../../utils/storybook.ts";
7
+ } from "../../utils/storybook";
8
8
 
9
9
  import ULink from "../../ui.button-link/ULink.vue";
10
10
  import UIcon from "../../ui.image-icon/UIcon.vue";
@@ -12,7 +12,7 @@ import UButton from "../../ui.button/UButton.vue";
12
12
  import URow from "../../ui.container-row/URow.vue";
13
13
 
14
14
  import type { Meta, StoryFn } from "@storybook/vue3-vite";
15
- import type { Props } from "../types.ts";
15
+ import type { Props } from "../types";
16
16
 
17
17
  interface ULinkArgs extends Props {
18
18
  slotTemplate?: string;
@@ -20,7 +20,7 @@ interface ULinkArgs extends Props {
20
20
  }
21
21
 
22
22
  export default {
23
- id: "1060",
23
+ id: "1020",
24
24
  title: "Buttons & Links / Link",
25
25
  component: ULink,
26
26
  args: {
@@ -4,7 +4,7 @@ import { createRouter, createWebHistory } from "vue-router";
4
4
 
5
5
  import ULink from "../ULink.vue";
6
6
 
7
- import type { Props } from "../types.ts";
7
+ import type { Props } from "../types";
8
8
 
9
9
  const router = createRouter({
10
10
  history: createWebHistory(),
@@ -1,5 +1,5 @@
1
- import defaultConfig from "./config.ts";
2
- import type { ComponentConfig } from "../types.ts";
1
+ import defaultConfig from "./config";
2
+ import type { ComponentConfig } from "../types";
3
3
 
4
4
  import type { RouteLocationRaw } from "vue-router";
5
5
 
@@ -3,13 +3,13 @@ import { computed, ref, useId, useTemplateRef } from "vue";
3
3
 
4
4
  import UButton from "../ui.button/UButton.vue";
5
5
 
6
- import useUI from "../composables/useUI.ts";
7
- import { getDefaults } from "../utils/ui.ts";
6
+ import useUI from "../composables/useUI";
7
+ import { getDefaults } from "../utils/ui";
8
8
 
9
- import defaultConfig from "./config.ts";
10
- import { COMPONENT_NAME } from "./constants.ts";
9
+ import defaultConfig from "./config";
10
+ import { COMPONENT_NAME } from "./constants";
11
11
 
12
- import type { Props, Config, UToggleOption } from "./types.ts";
12
+ import type { Props, Config, UToggleOption } from "./types";
13
13
 
14
14
  defineOptions({ inheritAttrs: false });
15
15
 
@@ -1,8 +1,8 @@
1
1
  import { Markdown, Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
- import { getSource } from "../../utils/storybook.ts";
2
+ import { getSource } from "../../utils/storybook";
3
3
 
4
- import * as stories from "./stories.ts";
5
- import defaultConfig from "../config.ts?raw"
4
+ import * as stories from "./stories";
5
+ import defaultConfig from "../config?raw"
6
6
 
7
7
  <Meta of={stories} />
8
8
  <Title of={stories} />
@@ -5,7 +5,7 @@ import {
5
5
  getSlotNames,
6
6
  getSlotsFragment,
7
7
  getDocsDescription,
8
- } from "../../utils/storybook.ts";
8
+ } from "../../utils/storybook";
9
9
 
10
10
  import UToggle from "../../ui.button-toggle/UToggle.vue";
11
11
  import UIcon from "../../ui.image-icon/UIcon.vue";
@@ -15,7 +15,7 @@ import UDot from "../../ui.other-dot/UDot.vue";
15
15
  import ULabel from "../../ui.form-label/ULabel.vue";
16
16
 
17
17
  import type { Meta, StoryFn } from "@storybook/vue3-vite";
18
- import type { Props } from "../types.ts";
18
+ import type { Props } from "../types";
19
19
 
20
20
  interface UToggleArgs extends Props {
21
21
  slotTemplate?: string;
@@ -23,9 +23,10 @@ interface UToggleArgs extends Props {
23
23
  }
24
24
 
25
25
  export default {
26
- components: { UIcon },
26
+ id: "1030",
27
27
  title: "Buttons & Links / Toggle",
28
28
  component: UToggle,
29
+ components: { UIcon },
29
30
  args: {
30
31
  modelValue: "11",
31
32
  options: [
@@ -4,7 +4,7 @@ import { describe, it, expect, vi, beforeAll } from "vitest";
4
4
  import UToggle from "../UToggle.vue";
5
5
  import UButton from "../../ui.button/UButton.vue";
6
6
 
7
- import type { Props, UToggleOption } from "../types.ts";
7
+ import type { Props, UToggleOption } from "../types";
8
8
 
9
9
  describe("UToggle.vue", () => {
10
10
  let name: string;
@@ -1,6 +1,6 @@
1
- import defaultConfig from "./config.ts";
1
+ import defaultConfig from "./config";
2
2
 
3
- import type { ComponentConfig } from "../types.ts";
3
+ import type { ComponentConfig } from "../types";
4
4
 
5
5
  export type Config = typeof defaultConfig;
6
6
 
@@ -1,16 +1,17 @@
1
1
  <script setup lang="ts">
2
- import { computed, ref, useId, useTemplateRef } from "vue";
2
+ import { computed, ref, useId, useSlots, useTemplateRef } from "vue";
3
3
 
4
- import useUI from "../composables/useUI.ts";
5
- import { getDefaults } from "../utils/ui.ts";
4
+ import useUI from "../composables/useUI";
5
+ import { getDefaults } from "../utils/ui";
6
+ import { hasSlotContent } from "../utils/helper";
6
7
 
7
8
  import UIcon from "../ui.image-icon/UIcon.vue";
8
9
  import UDivider from "../ui.container-divider/UDivider.vue";
9
10
 
10
- import { COMPONENT_NAME } from "./constants.ts";
11
- import defaultConfig from "./config.ts";
11
+ import { COMPONENT_NAME } from "./constants";
12
+ import defaultConfig from "./config";
12
13
 
13
- import type { Props, Config } from "./types.ts";
14
+ import type { Props, Config } from "./types";
14
15
 
15
16
  defineOptions({ inheritAttrs: false });
16
17
 
@@ -28,9 +29,11 @@ const emit = defineEmits([
28
29
  ]);
29
30
 
30
31
  const wrapperRef = useTemplateRef<HTMLDivElement>("wrapper");
32
+ const contentRef = useTemplateRef<HTMLDivElement>("content");
31
33
 
32
34
  const isOpened = ref(false);
33
35
 
36
+ const slots = useSlots();
34
37
  const elementId = props.id || useId();
35
38
 
36
39
  const toggleIconName = computed(() => {
@@ -41,7 +44,11 @@ const toggleIconName = computed(() => {
41
44
  return props.toggleIcon ? config.value.defaults.toggleIcon : "";
42
45
  });
43
46
 
44
- function onClickItem() {
47
+ function onClickItem(event: MouseEvent) {
48
+ if (contentRef.value && contentRef.value.contains(event.target as Node)) {
49
+ return;
50
+ }
51
+
45
52
  isOpened.value = !isOpened.value;
46
53
 
47
54
  emit("click", elementId, isOpened.value);
@@ -94,9 +101,14 @@ const {
94
101
  </slot>
95
102
  </div>
96
103
 
97
- <div :id="`description-${elementId}`" v-bind="descriptionAttrs" v-text="description" />
104
+ <div
105
+ v-if="description"
106
+ :id="`description-${elementId}`"
107
+ v-bind="descriptionAttrs"
108
+ v-text="description"
109
+ />
98
110
 
99
- <div v-if="isOpened" v-bind="contentAttrs">
111
+ <div v-if="isOpened && hasSlotContent(slots['default'])" ref="content" v-bind="contentAttrs">
100
112
  <!-- @slot Use it to add accordion content. -->
101
113
  <slot />
102
114
  </div>
@@ -24,7 +24,7 @@ export default /*tw*/ {
24
24
  },
25
25
  },
26
26
  },
27
- content: "",
27
+ content: "pt-3 cursor-default",
28
28
  toggleIcon: {
29
29
  base: "{UIcon} transition duration-300",
30
30
  variants: {
@@ -1,8 +1,8 @@
1
1
  import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/addon-docs/blocks";
2
- import { getSource } from "../../utils/storybook.ts";
2
+ import { getSource } from "../../utils/storybook";
3
3
 
4
- import * as stories from "./stories.ts";
5
- import defaultConfig from "../config.ts?raw"
4
+ import * as stories from "./stories";
5
+ import defaultConfig from "../config?raw"
6
6
 
7
7
  <Meta of={stories} />
8
8
  <Title of={stories} />
@@ -5,15 +5,17 @@ import {
5
5
  getSlotsFragment,
6
6
  getDocsDescription,
7
7
  trimText,
8
- } from "../../utils/storybook.ts";
8
+ } from "../../utils/storybook";
9
9
 
10
10
  import UAccordion from "../../ui.container-accordion/UAccordion.vue";
11
11
  import UButton from "../../ui.button/UButton.vue";
12
12
  import ULink from "../../ui.button-link/ULink.vue";
13
13
  import UCol from "../../ui.container-col/UCol.vue";
14
+ import URow from "../../ui.container-row/URow.vue";
15
+ import UIcon from "../../ui.image-icon/UIcon.vue";
14
16
 
15
17
  import type { Meta, StoryFn } from "@storybook/vue3-vite";
16
- import type { Props } from "../types.ts";
18
+ import type { Props } from "../types";
17
19
 
18
20
  interface UAccordionArgs extends Props {
19
21
  slotTemplate?: string;
@@ -42,7 +44,7 @@ export default {
42
44
  } as Meta;
43
45
 
44
46
  const DefaultTemplate: StoryFn<UAccordionArgs> = (args: UAccordionArgs) => ({
45
- components: { UAccordion, ULink, UButton, UCol },
47
+ components: { UAccordion, ULink, UButton, UCol, URow, UIcon },
46
48
  setup: () => ({ args, slots: getSlotNames(UAccordion.__name) }),
47
49
  template: `
48
50
  <UAccordion v-bind="args">
@@ -116,13 +118,23 @@ Sizes.args = { enum: "size", description: "{enumValue}" };
116
118
 
117
119
  export const DefaultSlot = DefaultTemplate.bind({});
118
120
  DefaultSlot.args = {
119
- description: "",
120
121
  slotTemplate: `
121
122
  <template #default>
122
123
  <UCol gap="sm">
123
- <ULink label="Email services" />
124
- <ULink label="VPN" />
125
- <ULink label="SEO Tools" />
124
+ <URow gap="xs" align="end">
125
+ <UIcon name="contact_mail" size="xs" color="primary" />
126
+ <ULink label="Email services" />
127
+ </URow>
128
+
129
+ <URow gap="xs" align="end">
130
+ <UIcon name="vpn_key" size="xs" color="primary" />
131
+ <ULink label="VPN" />
132
+ </URow>
133
+
134
+ <URow gap="xs" align="end">
135
+ <UIcon name="web_traffic" size="xs" color="primary" />
136
+ <ULink label="SEO Tools" />
137
+ </URow>
126
138
  </UCol>
127
139
  </template>
128
140
  `,