vueless 0.0.4 → 0.0.6

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 (321) hide show
  1. package/.eslintrc.js +7 -0
  2. package/package.json +3 -2
  3. package/postcss.config.js +1 -1
  4. package/src/service.storybook/index.js +91 -0
  5. package/src/service.tailwind/index.js +1 -1
  6. package/src/service.ui/index.js +1 -1
  7. package/src/ui.button/Docs.mdx +16 -0
  8. package/src/ui.button/composables/attrs.composable.js +41 -0
  9. package/src/ui.button/configs/default.config.js +165 -0
  10. package/src/ui.button/constants/index.js +5 -0
  11. package/src/ui.button/index.stories.js +166 -0
  12. package/src/ui.button/index.vue +151 -0
  13. package/src/ui.button-link/Docs.mdx +16 -0
  14. package/src/ui.button-link/composables/attrs.composable.js +99 -0
  15. package/src/ui.button-link/configs/default.config.js +80 -0
  16. package/src/ui.button-link/constants/index.js +5 -0
  17. package/src/ui.button-link/index.stories.js +158 -0
  18. package/src/ui.button-link/index.vue +226 -0
  19. package/src/ui.button-toggle/Docs.mdx +16 -0
  20. package/src/ui.button-toggle/composables/attrs.composable.js +16 -0
  21. package/src/ui.button-toggle/configs/default.config.js +12 -0
  22. package/src/ui.button-toggle/constants/index.js +7 -0
  23. package/src/ui.button-toggle/index.stories.js +155 -0
  24. package/src/ui.button-toggle/index.vue +128 -0
  25. package/src/ui.button-toggle-item/Docs.mdx +16 -0
  26. package/src/ui.button-toggle-item/composables/attrs.composable.js +53 -0
  27. package/src/ui.button-toggle-item/configs/default.config.js +58 -0
  28. package/src/ui.button-toggle-item/constants/index.js +5 -0
  29. package/src/ui.button-toggle-item/index.stories.js +77 -0
  30. package/src/ui.button-toggle-item/index.vue +147 -0
  31. package/src/ui.container-accordion/composables/attrs.composable.js +45 -0
  32. package/src/ui.container-accordion/configs/default.config.js +32 -0
  33. package/src/ui.container-accordion/constants/index.js +5 -0
  34. package/src/ui.container-accordion/index.stories.js +89 -0
  35. package/src/ui.container-accordion/index.vue +95 -0
  36. package/src/ui.container-card/Docs.mdx +16 -0
  37. package/src/ui.container-card/composable/attrs.composable.js +56 -0
  38. package/src/ui.container-card/configs/default.config.js +31 -0
  39. package/src/ui.container-card/constants/index.js +5 -0
  40. package/src/ui.container-card/index.stories.js +170 -0
  41. package/src/ui.container-card/index.vue +146 -0
  42. package/src/ui.container-divider/Docs.mdx +16 -0
  43. package/src/ui.container-divider/configs/default.config.js +79 -0
  44. package/src/ui.container-divider/index.stories.js +124 -0
  45. package/src/ui.container-group/Docs.mdx +16 -0
  46. package/src/ui.container-group/composables/attrs.composable.js +44 -0
  47. package/src/ui.container-group/configs/default.config.js +29 -0
  48. package/src/ui.container-group/constants/index.js +5 -0
  49. package/src/ui.container-group/index.stories.js +88 -0
  50. package/src/ui.container-group/index.vue +106 -0
  51. package/src/ui.container-groups/Docs.mdx +16 -0
  52. package/src/ui.container-groups/composables/attrs.composable.js +12 -0
  53. package/src/ui.container-groups/configs/default.config.js +3 -0
  54. package/src/ui.container-groups/index.stories.js +45 -0
  55. package/src/ui.container-groups/index.vue +33 -0
  56. package/src/ui.container-modal/Docs.mdx +16 -0
  57. package/src/ui.container-modal/composables/attrs.composable.js +90 -0
  58. package/src/ui.container-modal/configs/default.config.js +69 -0
  59. package/src/ui.container-modal/constants/index.js +5 -0
  60. package/src/ui.container-modal/index.stories.js +170 -0
  61. package/src/ui.container-modal/index.vue +336 -0
  62. package/src/ui.container-modal-confirm/Docs.mdx +16 -0
  63. package/src/ui.container-modal-confirm/composable/attrs.composable.js +20 -0
  64. package/src/ui.container-modal-confirm/configs/default.config.js +15 -0
  65. package/src/ui.container-modal-confirm/constants/index.js +5 -0
  66. package/src/ui.container-modal-confirm/index.stories.js +209 -0
  67. package/src/ui.container-modal-confirm/index.vue +182 -0
  68. package/src/ui.container-page/Docs.mdx +16 -0
  69. package/src/ui.container-page/composables/attrs.composable.js +96 -0
  70. package/src/ui.container-page/configs/default.config.js +71 -0
  71. package/src/ui.container-page/constants/index.js +5 -0
  72. package/src/ui.container-page/index.stories.js +147 -0
  73. package/src/ui.container-page/index.vue +275 -0
  74. package/src/ui.container-row/Docs.mdx +16 -0
  75. package/src/ui.container-row/composables/attrs.composable.js +23 -0
  76. package/src/ui.container-row/configs/default.config.js +14 -0
  77. package/src/ui.container-row/constants/index.js +5 -0
  78. package/src/ui.container-row/index.stories.js +81 -0
  79. package/src/ui.container-row/index.vue +45 -0
  80. package/src/ui.data-list/composables/attrs.composable.js +45 -0
  81. package/src/ui.data-list/configs/default.config.js +32 -0
  82. package/src/ui.data-list/constants/index.js +5 -0
  83. package/src/ui.data-list/index.stories.js +91 -0
  84. package/src/ui.data-list/index.vue +259 -0
  85. package/src/ui.data-table/Docs.mdx +16 -0
  86. package/src/ui.data-table/index.vue +5 -0
  87. package/src/ui.data-table-cell/configs/default.config.js +19 -0
  88. package/src/ui.dropdown-badge/Docs.mdx +16 -0
  89. package/src/ui.dropdown-badge/composables/attrs.composable.js +63 -0
  90. package/src/ui.dropdown-badge/configs/default.config.js +34 -0
  91. package/src/ui.dropdown-badge/constants/index.js +5 -0
  92. package/src/ui.dropdown-badge/index.stories.js +126 -0
  93. package/src/ui.dropdown-badge/index.vue +234 -0
  94. package/src/ui.dropdown-button/Docs.mdx +16 -0
  95. package/src/ui.dropdown-button/composables/attrs.composable.js +63 -0
  96. package/src/ui.dropdown-button/configs/default.config.js +37 -0
  97. package/src/ui.dropdown-button/constants/index.js +14 -0
  98. package/src/ui.dropdown-button/index.stories.js +158 -0
  99. package/src/ui.dropdown-button/index.vue +271 -0
  100. package/src/ui.dropdown-item/Docs.mdx +16 -0
  101. package/src/ui.dropdown-item/composables/attrs.composable.js +13 -0
  102. package/src/ui.dropdown-item/configs/default.config.js +16 -0
  103. package/src/ui.dropdown-item/index.stories.js +30 -0
  104. package/src/ui.dropdown-item/index.vue +53 -0
  105. package/src/ui.dropdown-link/Docs.mdx +16 -0
  106. package/src/ui.dropdown-link/composables/attrs.composable.js +65 -0
  107. package/src/ui.dropdown-link/configs/default.config.js +37 -0
  108. package/src/ui.dropdown-link/constants/index.js +5 -0
  109. package/src/ui.dropdown-link/index.stories.js +127 -0
  110. package/src/ui.dropdown-link/index.vue +261 -0
  111. package/src/ui.dropdown-list/Docs.mdx +16 -0
  112. package/src/ui.dropdown-list/composables/attrs.composable.js +93 -0
  113. package/src/ui.dropdown-list/composables/usePointer.js +77 -0
  114. package/src/ui.dropdown-list/configs/default.config.js +74 -0
  115. package/src/ui.dropdown-list/constants/index.js +5 -0
  116. package/src/ui.dropdown-list/index.stories.js +76 -0
  117. package/src/ui.dropdown-list/index.vue +284 -0
  118. package/src/ui.form-calendar/Docs.mdx +52 -0
  119. package/src/ui.form-calendar/components/DayView.vue +268 -0
  120. package/src/ui.form-calendar/components/MonthView.vue +114 -0
  121. package/src/ui.form-calendar/components/YearView.vue +118 -0
  122. package/src/ui.form-calendar/constants/index.js +71 -0
  123. package/src/ui.form-calendar/index.stories.js +59 -0
  124. package/src/ui.form-calendar/index.vue +743 -0
  125. package/src/ui.form-calendar/services/calendar.service.js +189 -0
  126. package/src/ui.form-calendar/services/formatting.service.js +180 -0
  127. package/src/ui.form-checkbox/Docs.mdx +16 -0
  128. package/src/ui.form-checkbox/configs/default.config.js +69 -0
  129. package/src/ui.form-checkbox/index.stories.js +147 -0
  130. package/src/ui.form-checkbox/index.vue +3 -2
  131. package/src/ui.form-checkbox-group/Docs.mdx +16 -0
  132. package/src/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
  133. package/src/ui.form-checkbox-group/configs/default.config.js +5 -0
  134. package/src/ui.form-checkbox-group/constants/index.js +5 -0
  135. package/src/ui.form-checkbox-group/index.stories.js +45 -0
  136. package/src/ui.form-checkbox-group/index.vue +145 -0
  137. package/src/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  138. package/src/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
  139. package/src/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
  140. package/src/ui.form-checkbox-multi-state/constants/index.js +5 -0
  141. package/src/ui.form-checkbox-multi-state/index.stories.js +59 -0
  142. package/src/ui.form-checkbox-multi-state/index.vue +134 -0
  143. package/src/ui.form-color-picker/composables/attrs.composable.js +44 -0
  144. package/src/ui.form-color-picker/configs/default.config.js +52 -0
  145. package/src/ui.form-color-picker/constants/index.js +5 -0
  146. package/src/ui.form-color-picker/index.stories.js +63 -0
  147. package/src/ui.form-color-picker/index.vue +171 -0
  148. package/src/ui.form-date-picker/Docs.mdx +52 -0
  149. package/src/ui.form-date-picker/composables/attrs.composable.js +22 -0
  150. package/src/ui.form-date-picker/configs/default.config.js +26 -0
  151. package/src/ui.form-date-picker/constants/index.js +5 -0
  152. package/src/ui.form-date-picker/index.stories.js +132 -0
  153. package/src/ui.form-date-picker/index.vue +256 -0
  154. package/src/ui.form-date-picker-range/constants/index.js +23 -0
  155. package/src/ui.form-date-picker-range/index.stories.js +135 -0
  156. package/src/ui.form-date-picker-range/index.vue +937 -0
  157. package/src/ui.form-date-picker-range/services/dateRange.service.js +116 -0
  158. package/src/ui.form-input/Docs.mdx +16 -0
  159. package/src/ui.form-input/assets/fonts/text-security-disc.woff +0 -0
  160. package/src/ui.form-input/composables/attrs.composable.js +66 -0
  161. package/src/ui.form-input/configs/default.config.js +72 -0
  162. package/src/ui.form-input/constants/index.js +5 -0
  163. package/src/ui.form-input/index.stories.js +166 -0
  164. package/src/ui.form-input/index.vue +388 -0
  165. package/src/ui.form-input-file/composables/attrs.composable.js +82 -0
  166. package/src/ui.form-input-file/configs/default.config.js +59 -0
  167. package/src/ui.form-input-file/constants/index.js +5 -0
  168. package/src/ui.form-input-file/index.stories.js +86 -0
  169. package/src/ui.form-input-file/index.vue +387 -0
  170. package/src/ui.form-input-money/Docs.mdx +16 -0
  171. package/src/ui.form-input-money/composables/attrs.composable.js +13 -0
  172. package/src/ui.form-input-money/composables/useFormatCurrency.js +82 -0
  173. package/src/ui.form-input-money/configs/default.config.js +16 -0
  174. package/src/ui.form-input-money/constants/index.js +5 -0
  175. package/src/ui.form-input-money/index.stories.js +126 -0
  176. package/src/ui.form-input-money/index.vue +263 -0
  177. package/src/ui.form-input-money/services/format.service.js +72 -0
  178. package/src/ui.form-input-number/Docs.mdx +16 -0
  179. package/src/ui.form-input-number/composables/attrs.composable.js +47 -0
  180. package/src/ui.form-input-number/configs/default.config.js +33 -0
  181. package/src/ui.form-input-number/constants/index.js +5 -0
  182. package/src/ui.form-input-number/index.stories.js +103 -0
  183. package/src/ui.form-input-number/index.vue +162 -0
  184. package/src/ui.form-input-rating/composables/attrs.composable.js +34 -0
  185. package/src/ui.form-input-rating/constants/index.js +5 -0
  186. package/src/ui.form-input-rating/index.vue +1 -0
  187. package/src/ui.form-input-search/composables/attrs.composable.js +21 -0
  188. package/src/ui.form-input-search/configs/default.config.js +20 -0
  189. package/src/ui.form-input-search/constants/index.js +5 -0
  190. package/src/ui.form-input-search/index.stories.js +90 -0
  191. package/src/ui.form-input-search/index.vue +215 -0
  192. package/src/ui.form-label/Docs.mdx +16 -0
  193. package/src/ui.form-label/composables/attrs.composable.js +65 -0
  194. package/src/ui.form-label/configs/default.config.js +95 -0
  195. package/src/ui.form-label/constants/index.js +13 -0
  196. package/src/ui.form-label/index.stories.js +107 -0
  197. package/src/ui.form-label/index.vue +170 -0
  198. package/src/ui.form-radio/Docs.mdx +16 -0
  199. package/src/ui.form-radio/composables/attrs.composable.js +34 -0
  200. package/src/ui.form-radio/configs/default.config.js +47 -0
  201. package/src/ui.form-radio/constants/index.js +5 -0
  202. package/src/ui.form-radio/index.stories.js +71 -0
  203. package/src/ui.form-radio/index.vue +170 -0
  204. package/src/ui.form-radio-card/Docs.mdx +16 -0
  205. package/src/ui.form-radio-card/constants/index.js +5 -0
  206. package/src/ui.form-radio-card/index.stories.js +149 -0
  207. package/src/ui.form-radio-card/index.vue +1 -0
  208. package/src/ui.form-radio-card/services/variant.service.js +15 -0
  209. package/src/ui.form-radio-group/Docs.mdx +16 -0
  210. package/src/ui.form-radio-group/composables/attrs.composable.js +27 -0
  211. package/src/ui.form-radio-group/configs/default.config.js +18 -0
  212. package/src/ui.form-radio-group/constants/index.js +5 -0
  213. package/src/ui.form-radio-group/index.stories.js +42 -0
  214. package/src/ui.form-radio-group/index.vue +127 -0
  215. package/src/ui.form-select/Docs.mdx +16 -0
  216. package/src/ui.form-select/composables/attrs.composable.js +172 -0
  217. package/src/ui.form-select/configs/default.config.js +138 -0
  218. package/src/ui.form-select/constants/index.js +19 -0
  219. package/src/ui.form-select/index.stories.js +339 -0
  220. package/src/ui.form-select/index.vue +722 -0
  221. package/src/ui.form-select/services/select.service.js +98 -0
  222. package/src/ui.form-switch/composables/attrs.composable.js +77 -0
  223. package/src/ui.form-switch/configs/default.config.js +76 -0
  224. package/src/ui.form-switch/constants/index.js +5 -0
  225. package/src/ui.form-switch/index.stories.js +93 -0
  226. package/src/ui.form-switch/index.vue +199 -0
  227. package/src/ui.form-switch/services/variant.service.js +31 -0
  228. package/src/ui.form-textarea/Docs.mdx +16 -0
  229. package/src/ui.form-textarea/composables/attrs.composable.js +52 -0
  230. package/src/ui.form-textarea/configs/default.config.js +68 -0
  231. package/src/ui.form-textarea/constants/index.js +5 -0
  232. package/src/ui.form-textarea/index.stories.js +151 -0
  233. package/src/ui.form-textarea/index.vue +284 -0
  234. package/src/ui.image-avatar/composables/attrs.composable.js +34 -0
  235. package/src/ui.image-avatar/configs/default.config.js +42 -0
  236. package/src/ui.image-avatar/constants/index.js +5 -0
  237. package/src/ui.image-avatar/default-avatar.png +0 -0
  238. package/src/ui.image-avatar/index.stories.js +107 -0
  239. package/src/ui.image-avatar/index.vue +121 -0
  240. package/src/ui.image-icon/Docs.mdx +16 -0
  241. package/src/ui.image-icon/index.stories.js +110 -0
  242. package/src/ui.image-logo/configs/default.config.js +38 -0
  243. package/src/ui.image-logo/index.stories.js +84 -0
  244. package/src/ui.loader-top/components/TopProgress.vue +277 -0
  245. package/src/ui.navigation-pagination/composables/attrs.composable.js +41 -0
  246. package/src/ui.navigation-pagination/configs/default.config.js +24 -0
  247. package/src/ui.navigation-pagination/constants/index.js +8 -0
  248. package/src/ui.navigation-pagination/index.stories.js +52 -0
  249. package/src/ui.navigation-pagination/index.vue +276 -0
  250. package/src/ui.navigation-stepper/composables/attrs.composable.js +25 -0
  251. package/src/ui.navigation-stepper/configs/default.config.js +13 -0
  252. package/src/ui.navigation-stepper/constants/index.js +5 -0
  253. package/src/ui.navigation-stepper/index.stories.js +30 -0
  254. package/src/ui.navigation-stepper/index.vue +126 -0
  255. package/src/ui.navigation-tab/composables/attrs.composable.js +30 -0
  256. package/src/ui.navigation-tab/configs/default.config.js +22 -0
  257. package/src/ui.navigation-tab/constants/index.js +5 -0
  258. package/src/ui.navigation-tab/index.stories.js +57 -0
  259. package/src/ui.navigation-tab/index.vue +85 -0
  260. package/src/ui.navigation-tabs/composables/attrs.composable.js +24 -0
  261. package/src/ui.navigation-tabs/configs/default.config.js +14 -0
  262. package/src/ui.navigation-tabs/constants/index.js +5 -0
  263. package/src/ui.navigation-tabs/index.stories.js +69 -0
  264. package/src/ui.navigation-tabs/index.vue +99 -0
  265. package/src/ui.notify/index.stories.js +102 -0
  266. package/src/ui.other-dot/composables/attrs.composable.js +32 -0
  267. package/src/ui.other-dot/configs/default.config.js +21 -0
  268. package/src/ui.other-dot/constants/index.js +5 -0
  269. package/src/ui.other-dot/index.stories.js +77 -0
  270. package/src/ui.other-dot/index.vue +52 -0
  271. package/src/ui.other-loader/composables/attrs.composable.js +51 -0
  272. package/src/ui.other-loader/configs/default.config.js +47 -0
  273. package/src/ui.other-loader/constants/index.js +5 -0
  274. package/src/ui.other-loader/index.stories.js +78 -0
  275. package/src/ui.other-loader/index.vue +136 -0
  276. package/src/ui.text-alert/composables/attrs.composable.js +48 -0
  277. package/src/ui.text-alert/configs/default.config.js +51 -0
  278. package/src/ui.text-alert/constatns/index.js +5 -0
  279. package/src/ui.text-alert/index.stories.js +157 -0
  280. package/src/ui.text-alert/index.vue +122 -0
  281. package/src/ui.text-badge/Docs.mdx +16 -0
  282. package/src/ui.text-badge/composables/attrs.composable.js +49 -0
  283. package/src/ui.text-badge/configs/default.config.js +51 -0
  284. package/src/ui.text-badge/constants/index.js +5 -0
  285. package/src/ui.text-badge/index.stories.js +190 -0
  286. package/src/ui.text-badge/index.vue +120 -0
  287. package/src/ui.text-block/composables/attrs.composable.js +31 -0
  288. package/src/ui.text-block/configs/default.config.js +35 -0
  289. package/src/ui.text-block/constatns/index.js +5 -0
  290. package/src/ui.text-block/index.stories.js +112 -0
  291. package/src/ui.text-block/index.vue +76 -0
  292. package/src/ui.text-empty/Docs.mdx +16 -0
  293. package/src/ui.text-empty/configs/default.config.js +30 -0
  294. package/src/ui.text-empty/index.stories.js +106 -0
  295. package/src/ui.text-empty/index.vue +1 -0
  296. package/src/ui.text-file/composables/attrs.composable.js +37 -0
  297. package/src/ui.text-file/configs/default.config.js +15 -0
  298. package/src/ui.text-file/index.stories.js +29 -0
  299. package/src/ui.text-file/index.vue +93 -0
  300. package/src/ui.text-files/composables/attrs.composable.js +19 -0
  301. package/src/ui.text-files/configs/default.config.js +9 -0
  302. package/src/ui.text-files/constants/index.js +5 -0
  303. package/src/ui.text-files/index.stories.js +32 -0
  304. package/src/ui.text-files/index.vue +87 -0
  305. package/src/ui.text-header/Docs.mdx +16 -0
  306. package/src/ui.text-header/composables/attrs.composable.js +34 -0
  307. package/src/ui.text-header/constants/index.js +5 -0
  308. package/src/ui.text-header/index.stories.js +106 -0
  309. package/src/ui.text-header/index.vue +83 -0
  310. package/src/ui.text-money/Docs.mdx +16 -0
  311. package/src/ui.text-money/assets/credit.svg +7 -0
  312. package/src/ui.text-money/assets/debit.svg +12 -0
  313. package/src/ui.text-money/composables/attrs.composable.js +65 -0
  314. package/src/ui.text-money/constants/index.js +7 -0
  315. package/src/ui.text-money/index.stories.js +265 -0
  316. package/src/ui.text-money/index.vue +204 -0
  317. package/src/ui.text-money/services/money.services.js +24 -0
  318. package/src/ui.viewport/index.vue +78 -0
  319. package/vite.config.mjs +5 -4
  320. package/web-types.json +1 -1
  321. package/.web-types-gen/package.json +0 -3
@@ -0,0 +1,170 @@
1
+ import { getArgTypes } from "../service.storybook";
2
+
3
+ import UCard from "../ui.container-card";
4
+ import URow from "../ui.container-row";
5
+ import UInput from "../ui.form-input";
6
+ import UButton from "../ui.button";
7
+ import UIcon from "../ui.image-icon";
8
+ import UHeader from "../ui.text-header";
9
+
10
+ export default {
11
+ id: "5060",
12
+ title: "Containers / Card",
13
+ component: UCard,
14
+ args: {
15
+ title: "Title",
16
+ slotDefaultTemplate: `
17
+ <template #default>
18
+ <p>
19
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit,
20
+ sed do eiusmod tempor incididunt ut labore et dolore magna
21
+ aliqua. Ut enim ad minim veniam, quis nostrud exercitation
22
+ ullamco laboris nisi ut aliquip ex ea commodo consequat.
23
+ Duis aute irure dolor in reprehenderit in voluptate velit
24
+ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
25
+ occaecat cupidatat non proident, sunt in culpa qui officia
26
+ deserunt mollit anim id est laborum.
27
+ </p>
28
+ </template>
29
+ `,
30
+ },
31
+ argTypes: {
32
+ ...getArgTypes(UCard.name),
33
+ },
34
+ };
35
+
36
+ const DefaultTemplate = (args) => ({
37
+ components: { UCard, UButton, UInput, UIcon, UHeader },
38
+ setup() {
39
+ return { args };
40
+ },
41
+ template: `
42
+ <UCard v-bind="args">
43
+ ${args.slotDefaultTemplate}
44
+ ${args.slotTemplate || ""}
45
+ </UCard>
46
+ `,
47
+ });
48
+
49
+ const PaddingTemplate = (args, { argTypes } = {}) => ({
50
+ components: { UCard, URow },
51
+ setup() {
52
+ return {
53
+ args,
54
+ paddings: argTypes.padding.options,
55
+ };
56
+ },
57
+ template: `
58
+ <URow>
59
+ <UCard v-for="(padding, index) in paddings" v-bind="args" :padding="padding" :key="index">
60
+ ${args.slotDefaultTemplate}
61
+ </UCard>
62
+ </URow>
63
+ `,
64
+ });
65
+
66
+ const RoundedTemplate = (args, { argTypes } = {}) => ({
67
+ components: { UCard, URow },
68
+ setup() {
69
+ return {
70
+ args,
71
+ roundeds: argTypes.rounded.options,
72
+ };
73
+ },
74
+ template: `
75
+ <URow>
76
+ <UCard v-for="(rounded, index) in roundeds" v-bind="args" :rounded="rounded" :key="index">
77
+ ${args.slotDefaultTemplate}
78
+ </UCard>
79
+ </URow>
80
+ `,
81
+ });
82
+
83
+ export const Default = DefaultTemplate.bind({});
84
+ Default.args = {
85
+ slotTemplate: `
86
+ <template #default>
87
+ <p>
88
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit,
89
+ sed do eiusmod tempor incididunt ut labore et dolore magna
90
+ aliqua. Ut enim ad minim veniam, quis nostrud exercitation
91
+ ullamco laboris nisi ut aliquip ex ea commodo consequat.
92
+ Duis aute irure dolor in reprehenderit in voluptate velit
93
+ esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
94
+ occaecat cupidatat non proident, sunt in culpa qui officia
95
+ deserunt mollit anim id est laborum.
96
+ </p>
97
+ </template>
98
+ `,
99
+ };
100
+
101
+ export const description = DefaultTemplate.bind({});
102
+ description.args = { description: "Card description" };
103
+
104
+ export const padding = PaddingTemplate.bind({});
105
+ padding.args = {};
106
+
107
+ export const rounded = RoundedTemplate.bind({});
108
+ rounded.args = {};
109
+
110
+ export const slotHeaderLeftBefore = DefaultTemplate.bind({});
111
+ slotHeaderLeftBefore.args = {
112
+ slotTemplate: `
113
+ <template #header-left-before>
114
+ <UIcon
115
+ name="star"
116
+ size="sm"
117
+ pill
118
+ />
119
+ </template>
120
+ `,
121
+ };
122
+
123
+ export const slotHeaderLeft = DefaultTemplate.bind({});
124
+ slotHeaderLeft.args = {
125
+ slotTemplate: `
126
+ <template #header-left>
127
+ <UHeader size="lg" label="Large title" />
128
+ </template>
129
+ `,
130
+ };
131
+
132
+ export const slotHeaderLeftAfter = DefaultTemplate.bind({});
133
+ slotHeaderLeftAfter.args = {
134
+ slotTemplate: `
135
+ <template #header-left-after>
136
+ <UIcon
137
+ name="star"
138
+ size="sm"
139
+ pill
140
+ />
141
+ </template>
142
+ `,
143
+ };
144
+
145
+ export const slotHeaderRight = DefaultTemplate.bind({});
146
+ slotHeaderRight.args = {
147
+ slotTemplate: `
148
+ <template #header-right>
149
+ <UButton size="sm" color="gray" label="Read more" />
150
+ </template>
151
+ `,
152
+ };
153
+
154
+ export const slotFooterLeft = DefaultTemplate.bind({});
155
+ slotFooterLeft.args = {
156
+ slotTemplate: `
157
+ <template #footer-left>
158
+ <UButton label="Read more" />
159
+ </template>
160
+ `,
161
+ };
162
+
163
+ export const slotFooterRight = DefaultTemplate.bind({});
164
+ slotFooterRight.args = {
165
+ slotTemplate: `
166
+ <template #footer-right>
167
+ <UButton label="Read more" />
168
+ </template>
169
+ `,
170
+ };
@@ -0,0 +1,146 @@
1
+ <template>
2
+ <div :data-cy="dataCy" v-bind="wrapperAttrs">
3
+ <div v-if="isShownHeader" v-bind="headerAttrs">
4
+ <div v-bind="headerLeftAttrs">
5
+ <!-- @slot Use it to add something before left side of the header. -->
6
+ <slot name="header-left-before" />
7
+
8
+ <!-- @slot Use it to customise left side of the header. -->
9
+ <slot name="header-left">
10
+ <div v-bind="headerLeftFallbackAttrs">
11
+ <UHeader :label="title" size="md" color="brand" v-bind="titleAttrs" />
12
+ <div v-if="description" v-bind="descriptionAttrs" v-text="description" />
13
+ </div>
14
+ </slot>
15
+
16
+ <!-- @slot Use it to add something after left side of the header. -->
17
+ <slot name="header-left-after" />
18
+ </div>
19
+
20
+ <!-- @slot Use it to customise right side of the header. -->
21
+ <slot name="header-right" />
22
+ </div>
23
+
24
+ <!-- @slot Use it to add something inside. -->
25
+ <div v-bind="contentAttrs">
26
+ <slot />
27
+ </div>
28
+
29
+ <UDivider v-if="isShownFooter" no-top-padding no-bottom-padding v-bind="dividerAttrs" />
30
+
31
+ <div v-if="isShownFooter" v-bind="footerAttrs">
32
+ <!-- @slot Use it to add something to the left side of the footer. -->
33
+ <slot name="footer-left" />
34
+
35
+ <!-- @slot Use it to add something to the right side of the footer. -->
36
+ <slot name="footer-right" />
37
+ </div>
38
+ </div>
39
+ </template>
40
+
41
+ <script setup>
42
+ import { computed, useSlots } from "vue";
43
+ import { useStore } from "vuex";
44
+
45
+ import UIService from "../service.ui";
46
+ import UHeader from "../ui.text-header";
47
+ import UDivider from "../ui.container-divider";
48
+
49
+ import { UCard } from "./constants";
50
+ import defaultConfig from "./configs/default.config";
51
+ import { useAttrs } from "./composable/attrs.composable";
52
+
53
+ /* Should be a string for correct web-types gen */
54
+ defineOptions({ name: "UCard", inheritAttrs: false });
55
+
56
+ const store = useStore();
57
+ const slots = useSlots();
58
+
59
+ const props = defineProps({
60
+ /**
61
+ * Card title.
62
+ */
63
+ title: {
64
+ type: String,
65
+ default: "",
66
+ },
67
+
68
+ /**
69
+ * Card description.
70
+ */
71
+ description: {
72
+ type: String,
73
+ default: "",
74
+ },
75
+
76
+ /**
77
+ * Card border radius.
78
+ * @values sm, md, lg
79
+ */
80
+ rounded: {
81
+ type: String,
82
+ default: UIService.get(defaultConfig, UCard).default.rounded,
83
+ },
84
+
85
+ /**
86
+ * Card padding.
87
+ * @values sm, md, lg
88
+ */
89
+ padding: {
90
+ type: String,
91
+ default: UIService.get(defaultConfig, UCard).default.padding,
92
+ },
93
+
94
+ /**
95
+ * Reverse left and right footer blocks (in a mobile version only).
96
+ */
97
+ mobileFooterReverse: {
98
+ type: Boolean,
99
+ default: UIService.get(defaultConfig, UCard).default.mobileFooterReverse,
100
+ },
101
+
102
+ /**
103
+ * Component ui config object.
104
+ */
105
+ config: {
106
+ type: Object,
107
+ default: () => ({}),
108
+ },
109
+
110
+ /**
111
+ * Data-cy attribute for automated testing.
112
+ */
113
+ dataCy: {
114
+ type: String,
115
+ default: "",
116
+ },
117
+ });
118
+
119
+ const isShownHeader = computed(() => {
120
+ const isHeaderLeftSlot = hasSlotContent(slots["header-left"]);
121
+ const isHeaderRightSlot = hasSlotContent(slots["header-left"]);
122
+
123
+ return props.title || isHeaderLeftSlot || isHeaderRightSlot;
124
+ });
125
+
126
+ const isShownFooter = computed(() => {
127
+ return hasSlotContent(slots["footer-left"]) || hasSlotContent(slots["footer-right"]);
128
+ });
129
+
130
+ const isMobileDevice = computed(() => {
131
+ return store.getters["breakpoint/isMobileDevice"];
132
+ });
133
+
134
+ const {
135
+ hasSlotContent,
136
+ wrapperAttrs,
137
+ titleAttrs,
138
+ dividerAttrs,
139
+ headerAttrs,
140
+ headerLeftAttrs,
141
+ headerLeftFallbackAttrs,
142
+ descriptionAttrs,
143
+ contentAttrs,
144
+ footerAttrs,
145
+ } = useAttrs(props, { isMobileDevice });
146
+ </script>
@@ -0,0 +1,16 @@
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
2
+ import { getSource } from "../service.storybook";
3
+
4
+ import * as stories from "./index.stories";
5
+ import defaultConfig from "./configs/default.config?raw"
6
+
7
+ <Meta of={stories} />
8
+ <Title of={stories} />
9
+ <Subtitle of={stories} />
10
+ <Description of={stories} />
11
+ <Primary of={stories} />
12
+ <Controls of={stories.Default} />
13
+ <Stories of={stories} />
14
+
15
+ ## **Default config**
16
+ <Source code={getSource(defaultConfig)} language="jsx" dark />
@@ -0,0 +1,79 @@
1
+ export default /*tw*/ {
2
+ wrapper: {
3
+ variants: {
4
+ vertical: {
5
+ true: "h-full flex",
6
+ false: "w-full",
7
+ },
8
+ label: {
9
+ true: "flex items-center",
10
+ },
11
+ },
12
+ compoundVariants: [
13
+ { vertical: false, size: "xs", class: "py-2" },
14
+ { vertical: false, size: "sm", class: "py-3" },
15
+ { vertical: false, size: "md", class: "py-4" },
16
+ { vertical: false, size: "lg", class: "py-5" },
17
+ { vertical: false, size: "xl", class: "py-6" },
18
+ { vertical: true, size: "xs", class: "px-2" },
19
+ { vertical: true, size: "sm", class: "px-3" },
20
+ { vertical: true, size: "md", class: "px-4" },
21
+ { vertical: true, size: "lg", class: "px-5" },
22
+ { vertical: true, size: "xl", class: "px-6" },
23
+ { noPadding: true, class: "p-0" },
24
+ { noTopPadding: true, class: "pt-0" },
25
+ { noLeftPadding: true, class: "pl-0" },
26
+ { noRightPadding: true, class: "pr-0" },
27
+ { noBottomPadding: true, class: "pb-0" },
28
+ ],
29
+ },
30
+ divider: {
31
+ base: "border-transparent",
32
+ variants: {
33
+ variant: {
34
+ light: "border-gray-100",
35
+ default: "border-gray-200",
36
+ dark: "border-gray-300",
37
+ },
38
+ label: {
39
+ true: "w-full",
40
+ },
41
+ vertical: {
42
+ true: "border-l",
43
+ false: "border-t",
44
+ },
45
+ dashed: {
46
+ true: "border-dashed",
47
+ },
48
+ dotted: {
49
+ true: "border-dotted",
50
+ },
51
+ noBorder: {
52
+ true: "border-0",
53
+ },
54
+ },
55
+ },
56
+ label: {
57
+ base: "px-2 shrink-0",
58
+ variants: {
59
+ variant: {
60
+ light: "text-gray-400",
61
+ default: "text-gray-500",
62
+ dark: "text-gray-600",
63
+ },
64
+ },
65
+ },
66
+ defaultVariants: {
67
+ variant: "default",
68
+ size: "md",
69
+ dashed: false,
70
+ dotted: false,
71
+ vertical: false,
72
+ noBorder: false,
73
+ noPadding: false,
74
+ noTopPadding: false,
75
+ noBottomPadding: false,
76
+ noLeftPadding: false,
77
+ noRightPadding: false,
78
+ },
79
+ };
@@ -0,0 +1,124 @@
1
+ import { getArgTypes } from "../service.storybook";
2
+ import URow from "../ui.container-row";
3
+
4
+ import UDivider from "../ui.container-divider";
5
+
6
+ export default {
7
+ id: "5010",
8
+ title: "Containers / Divider",
9
+ component: UDivider,
10
+ argTypes: {
11
+ ...getArgTypes(UDivider.name),
12
+ },
13
+ };
14
+
15
+ const DefaultTemplate = (args) => ({
16
+ components: { UDivider },
17
+ setup() {
18
+ return { args };
19
+ },
20
+ template: `
21
+ <UDivider v-bind="args" />
22
+ `,
23
+ });
24
+
25
+ const SizesTemplate = (args, { argTypes } = {}) => ({
26
+ components: { UDivider, URow },
27
+ setup() {
28
+ return {
29
+ args,
30
+ sizes: argTypes.size.options,
31
+ };
32
+ },
33
+ template: `
34
+ <URow>
35
+ <UDivider
36
+ class="w-1/4"
37
+ v-for="(size, index) in sizes"
38
+ v-bind="args"
39
+ :size="size"
40
+ :key="index"
41
+ />
42
+ </URow>
43
+ `,
44
+ created() {
45
+ this.mxArgTypes = argTypes;
46
+ },
47
+ });
48
+
49
+ const VariantTemplate = (args, { argTypes } = {}) => ({
50
+ components: { UDivider, URow },
51
+ setup() {
52
+ return {
53
+ args,
54
+ variants: argTypes.variant.options,
55
+ };
56
+ },
57
+ template: `
58
+ <URow>
59
+ <UDivider
60
+ class="w-1/3"
61
+ v-for="(variant, index) in variants"
62
+ v-bind="args"
63
+ :variant="variant"
64
+ :key="index"
65
+ />
66
+ </URow>
67
+ `,
68
+ });
69
+
70
+ export const Default = DefaultTemplate.bind({});
71
+ Default.args = {};
72
+
73
+ export const sizes = SizesTemplate.bind({});
74
+ sizes.args = {};
75
+
76
+ export const variants = VariantTemplate.bind({});
77
+ variants.args = {};
78
+
79
+ export const dashed = DefaultTemplate.bind({});
80
+ dashed.args = { dashed: true };
81
+
82
+ export const dotted = DefaultTemplate.bind({});
83
+ dotted.args = { dotted: true };
84
+
85
+ export const vertical = DefaultTemplate.bind({});
86
+ vertical.args = {
87
+ vertical: true,
88
+ config: {
89
+ wrapper: {
90
+ base: "min-h-8",
91
+ },
92
+ },
93
+ };
94
+
95
+ export const noBorder = DefaultTemplate.bind({});
96
+ noBorder.args = { noBorder: true };
97
+
98
+ export const noTopPadding = DefaultTemplate.bind({});
99
+ noTopPadding.args = { noTopPadding: true };
100
+
101
+ export const noBottomPadding = DefaultTemplate.bind({});
102
+ noBottomPadding.args = { noBottomPadding: true };
103
+
104
+ export const noRightPadding = DefaultTemplate.bind({});
105
+ noRightPadding.args = {
106
+ noRightPadding: true,
107
+ vertical: true,
108
+ config: {
109
+ wrapper: {
110
+ base: "min-h-8",
111
+ },
112
+ },
113
+ };
114
+
115
+ export const noLeftPadding = DefaultTemplate.bind({});
116
+ noLeftPadding.args = {
117
+ noLeftPadding: true,
118
+ vertical: true,
119
+ config: {
120
+ wrapper: {
121
+ base: "min-h-8",
122
+ },
123
+ },
124
+ };
@@ -0,0 +1,16 @@
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
2
+ import { getSource } from "../service.storybook";
3
+
4
+ import * as stories from "./index.stories";
5
+ import defaultConfig from "./configs/default.config?raw"
6
+
7
+ <Meta of={stories} />
8
+ <Title of={stories} />
9
+ <Subtitle of={stories} />
10
+ <Description of={stories} />
11
+ <Primary of={stories} />
12
+ <Controls of={stories.Default} />
13
+ <Stories of={stories} />
14
+
15
+ ## **Default config**
16
+ <Source code={getSource(defaultConfig)} language="jsx" dark />
@@ -0,0 +1,44 @@
1
+ import useUI from "../../composable.ui";
2
+ import { cva } from "../../service.ui";
3
+
4
+ import defaultConfig from "../configs/default.config";
5
+ import { computed } from "vue";
6
+
7
+ export function useAttrs(props) {
8
+ const { config, getAttrs } = useUI(defaultConfig, () => props.config);
9
+ const { content, header } = config.value;
10
+
11
+ const cvaContent = cva({
12
+ base: content.base,
13
+ variants: content.variants,
14
+ compoundVariants: content.compoundVariants,
15
+ });
16
+
17
+ const cvaHeader = cva({
18
+ base: header.base,
19
+ variants: header.variants,
20
+ compoundVariants: header.compoundVariants,
21
+ });
22
+
23
+ const contentClasses = computed(() => cvaContent({ size: props.size }));
24
+
25
+ const headerClasses = computed(() => cvaHeader({ underlined: props.underlined }));
26
+
27
+ const wrapperAttrs = getAttrs("wrapper");
28
+ const upperlineAttrs = getAttrs("upperline", { isComponent: true });
29
+ const headerAttrs = getAttrs("header", { classes: headerClasses });
30
+ const headerFallbackAttrs = getAttrs("headerFallback");
31
+ const titleAttrs = getAttrs("title", { isComponent: true });
32
+ const underlineAttrs = getAttrs("underline", { isComponent: true });
33
+ const contentAttrs = getAttrs("content", { classes: contentClasses });
34
+
35
+ return {
36
+ contentAttrs,
37
+ headerAttrs,
38
+ wrapperAttrs,
39
+ headerFallbackAttrs,
40
+ titleAttrs,
41
+ upperlineAttrs,
42
+ underlineAttrs,
43
+ };
44
+ }
@@ -0,0 +1,29 @@
1
+ export default /*tw*/ {
2
+ wrapper: "",
3
+ upperline: "",
4
+ header: {
5
+ base: "flex items-center justify-between",
6
+ variants: {
7
+ underlined: {
8
+ false: "pb-6",
9
+ },
10
+ },
11
+ },
12
+ headerFallback: "flex items-center",
13
+ title: "pr-2",
14
+ underline: "pt-1.5",
15
+ content: {
16
+ variants: {
17
+ size: {
18
+ sm: "space-y-2",
19
+ md: "space-y-4",
20
+ lg: "space-y-6",
21
+ },
22
+ },
23
+ },
24
+ defaultVariants: {
25
+ size: "md",
26
+ upperlined: true,
27
+ underlined: false,
28
+ },
29
+ };
@@ -0,0 +1,5 @@
1
+ /*
2
+ This const is needed to prevent the issue in script setup:
3
+ `defineProps` is referencing locally declared variables. (vue/valid-define-props)
4
+ */
5
+ export const UGroup = "UGroup";