vueless 0.0.10 → 0.0.12

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 (359) hide show
  1. package/composable.ui/index.js +395 -0
  2. package/package.json +2 -2
  3. package/service.storybook/index.js +91 -0
  4. package/service.tailwind/index.js +103 -0
  5. package/service.ui/index.js +193 -0
  6. package/ui.button/Docs.mdx +16 -0
  7. package/ui.button/composables/attrs.composable.js +41 -0
  8. package/ui.button/configs/default.config.js +165 -0
  9. package/ui.button/constants/index.js +5 -0
  10. package/ui.button/index.stories.js +166 -0
  11. package/ui.button/index.vue +151 -0
  12. package/ui.button-link/Docs.mdx +16 -0
  13. package/ui.button-link/composables/attrs.composable.js +99 -0
  14. package/ui.button-link/configs/default.config.js +80 -0
  15. package/ui.button-link/constants/index.js +5 -0
  16. package/ui.button-link/index.stories.js +158 -0
  17. package/ui.button-link/index.vue +226 -0
  18. package/ui.button-toggle/Docs.mdx +16 -0
  19. package/ui.button-toggle/composables/attrs.composable.js +16 -0
  20. package/ui.button-toggle/configs/default.config.js +12 -0
  21. package/ui.button-toggle/constants/index.js +7 -0
  22. package/ui.button-toggle/index.stories.js +155 -0
  23. package/ui.button-toggle/index.vue +128 -0
  24. package/ui.button-toggle-item/Docs.mdx +16 -0
  25. package/ui.button-toggle-item/composables/attrs.composable.js +53 -0
  26. package/ui.button-toggle-item/configs/default.config.js +58 -0
  27. package/ui.button-toggle-item/constants/index.js +5 -0
  28. package/ui.button-toggle-item/index.stories.js +77 -0
  29. package/ui.button-toggle-item/index.vue +147 -0
  30. package/ui.container-accordion/composables/attrs.composable.js +45 -0
  31. package/ui.container-accordion/configs/default.config.js +32 -0
  32. package/ui.container-accordion/constants/index.js +5 -0
  33. package/ui.container-accordion/index.stories.js +89 -0
  34. package/ui.container-accordion/index.vue +95 -0
  35. package/ui.container-card/Docs.mdx +16 -0
  36. package/ui.container-card/composable/attrs.composable.js +56 -0
  37. package/ui.container-card/configs/default.config.js +31 -0
  38. package/ui.container-card/constants/index.js +5 -0
  39. package/ui.container-card/index.stories.js +170 -0
  40. package/ui.container-card/index.vue +146 -0
  41. package/ui.container-divider/Docs.mdx +16 -0
  42. package/ui.container-divider/composables/attrs.composable.js +65 -0
  43. package/ui.container-divider/configs/default.config.js +79 -0
  44. package/ui.container-divider/constants/index.js +5 -0
  45. package/ui.container-divider/index.stories.js +124 -0
  46. package/ui.container-divider/index.vue +138 -0
  47. package/ui.container-group/Docs.mdx +16 -0
  48. package/ui.container-group/composables/attrs.composable.js +44 -0
  49. package/ui.container-group/configs/default.config.js +29 -0
  50. package/ui.container-group/constants/index.js +5 -0
  51. package/ui.container-group/index.stories.js +88 -0
  52. package/ui.container-group/index.vue +106 -0
  53. package/ui.container-groups/Docs.mdx +16 -0
  54. package/ui.container-groups/composables/attrs.composable.js +12 -0
  55. package/ui.container-groups/configs/default.config.js +3 -0
  56. package/ui.container-groups/index.stories.js +45 -0
  57. package/ui.container-groups/index.vue +33 -0
  58. package/ui.container-modal/Docs.mdx +16 -0
  59. package/ui.container-modal/composables/attrs.composable.js +90 -0
  60. package/ui.container-modal/configs/default.config.js +69 -0
  61. package/ui.container-modal/constants/index.js +5 -0
  62. package/ui.container-modal/index.stories.js +170 -0
  63. package/ui.container-modal/index.vue +336 -0
  64. package/ui.container-modal-confirm/Docs.mdx +16 -0
  65. package/ui.container-modal-confirm/composable/attrs.composable.js +20 -0
  66. package/ui.container-modal-confirm/configs/default.config.js +15 -0
  67. package/ui.container-modal-confirm/constants/index.js +5 -0
  68. package/ui.container-modal-confirm/index.stories.js +209 -0
  69. package/ui.container-modal-confirm/index.vue +182 -0
  70. package/ui.container-page/Docs.mdx +16 -0
  71. package/ui.container-page/composables/attrs.composable.js +96 -0
  72. package/ui.container-page/configs/default.config.js +71 -0
  73. package/ui.container-page/constants/index.js +5 -0
  74. package/ui.container-page/index.stories.js +147 -0
  75. package/ui.container-page/index.vue +275 -0
  76. package/ui.container-row/Docs.mdx +16 -0
  77. package/ui.container-row/composables/attrs.composable.js +23 -0
  78. package/ui.container-row/configs/default.config.js +14 -0
  79. package/ui.container-row/constants/index.js +5 -0
  80. package/ui.container-row/index.stories.js +81 -0
  81. package/ui.container-row/index.vue +45 -0
  82. package/ui.data-list/composables/attrs.composable.js +45 -0
  83. package/ui.data-list/configs/default.config.js +32 -0
  84. package/ui.data-list/constants/index.js +5 -0
  85. package/ui.data-list/index.stories.js +91 -0
  86. package/ui.data-list/index.vue +259 -0
  87. package/ui.data-table/Docs.mdx +16 -0
  88. package/ui.data-table/composables/attrs.composable.js +188 -0
  89. package/ui.data-table/configs/default.config.js +88 -0
  90. package/ui.data-table/constants/index.js +5 -0
  91. package/ui.data-table/index.stories.js +261 -0
  92. package/ui.data-table/index.vue +730 -0
  93. package/ui.data-table/services/table.service.js +15 -0
  94. package/ui.data-table-cell/composables/attrs.composable.js +24 -0
  95. package/ui.data-table-cell/configs/default.config.js +19 -0
  96. package/ui.data-table-cell/constants/index.js +5 -0
  97. package/ui.data-table-cell/index.vue +44 -0
  98. package/ui.dropdown-badge/Docs.mdx +16 -0
  99. package/ui.dropdown-badge/composables/attrs.composable.js +63 -0
  100. package/ui.dropdown-badge/configs/default.config.js +34 -0
  101. package/ui.dropdown-badge/constants/index.js +5 -0
  102. package/ui.dropdown-badge/index.stories.js +126 -0
  103. package/ui.dropdown-badge/index.vue +234 -0
  104. package/ui.dropdown-button/Docs.mdx +16 -0
  105. package/ui.dropdown-button/composables/attrs.composable.js +63 -0
  106. package/ui.dropdown-button/configs/default.config.js +37 -0
  107. package/ui.dropdown-button/constants/index.js +14 -0
  108. package/ui.dropdown-button/index.stories.js +158 -0
  109. package/ui.dropdown-button/index.vue +271 -0
  110. package/ui.dropdown-item/Docs.mdx +16 -0
  111. package/ui.dropdown-item/composables/attrs.composable.js +13 -0
  112. package/ui.dropdown-item/configs/default.config.js +16 -0
  113. package/ui.dropdown-item/index.stories.js +30 -0
  114. package/ui.dropdown-item/index.vue +53 -0
  115. package/ui.dropdown-link/Docs.mdx +16 -0
  116. package/ui.dropdown-link/composables/attrs.composable.js +65 -0
  117. package/ui.dropdown-link/configs/default.config.js +37 -0
  118. package/ui.dropdown-link/constants/index.js +5 -0
  119. package/ui.dropdown-link/index.stories.js +127 -0
  120. package/ui.dropdown-link/index.vue +261 -0
  121. package/ui.dropdown-list/Docs.mdx +16 -0
  122. package/ui.dropdown-list/composables/attrs.composable.js +93 -0
  123. package/ui.dropdown-list/composables/usePointer.js +77 -0
  124. package/ui.dropdown-list/configs/default.config.js +74 -0
  125. package/ui.dropdown-list/constants/index.js +5 -0
  126. package/ui.dropdown-list/index.stories.js +76 -0
  127. package/ui.dropdown-list/index.vue +284 -0
  128. package/ui.form-calendar/Docs.mdx +52 -0
  129. package/ui.form-calendar/components/DayView.vue +268 -0
  130. package/ui.form-calendar/components/MonthView.vue +114 -0
  131. package/ui.form-calendar/components/YearView.vue +118 -0
  132. package/ui.form-calendar/composables/attrs.composable.js +106 -0
  133. package/ui.form-calendar/configs/default.config.js +125 -0
  134. package/ui.form-calendar/constants/index.js +71 -0
  135. package/ui.form-calendar/index.stories.js +59 -0
  136. package/ui.form-calendar/index.vue +743 -0
  137. package/ui.form-calendar/services/calendar.service.js +189 -0
  138. package/ui.form-calendar/services/date.service.js +282 -0
  139. package/ui.form-calendar/services/formatting.service.js +180 -0
  140. package/ui.form-checkbox/Docs.mdx +16 -0
  141. package/ui.form-checkbox/composables/attrs.composable.js +57 -0
  142. package/ui.form-checkbox/configs/default.config.js +69 -0
  143. package/ui.form-checkbox/constants/index.js +5 -0
  144. package/ui.form-checkbox/index.stories.js +147 -0
  145. package/ui.form-checkbox/index.vue +242 -0
  146. package/ui.form-checkbox-group/Docs.mdx +16 -0
  147. package/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
  148. package/ui.form-checkbox-group/configs/default.config.js +5 -0
  149. package/ui.form-checkbox-group/constants/index.js +5 -0
  150. package/ui.form-checkbox-group/index.stories.js +45 -0
  151. package/ui.form-checkbox-group/index.vue +145 -0
  152. package/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  153. package/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
  154. package/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
  155. package/ui.form-checkbox-multi-state/constants/index.js +5 -0
  156. package/ui.form-checkbox-multi-state/index.stories.js +59 -0
  157. package/ui.form-checkbox-multi-state/index.vue +134 -0
  158. package/ui.form-color-picker/composables/attrs.composable.js +44 -0
  159. package/ui.form-color-picker/configs/default.config.js +52 -0
  160. package/ui.form-color-picker/constants/index.js +5 -0
  161. package/ui.form-color-picker/index.stories.js +63 -0
  162. package/ui.form-color-picker/index.vue +171 -0
  163. package/ui.form-date-picker/Docs.mdx +52 -0
  164. package/ui.form-date-picker/composables/attrs.composable.js +22 -0
  165. package/ui.form-date-picker/configs/default.config.js +26 -0
  166. package/ui.form-date-picker/constants/index.js +5 -0
  167. package/ui.form-date-picker/index.stories.js +132 -0
  168. package/ui.form-date-picker/index.vue +256 -0
  169. package/ui.form-date-picker-range/composables/attrs.composable.js +100 -0
  170. package/ui.form-date-picker-range/configs/default.config.js +172 -0
  171. package/ui.form-date-picker-range/constants/index.js +23 -0
  172. package/ui.form-date-picker-range/index.stories.js +135 -0
  173. package/ui.form-date-picker-range/index.vue +937 -0
  174. package/ui.form-date-picker-range/services/dateRange.service.js +116 -0
  175. package/ui.form-date-picker-range/services/validation.service.js +22 -0
  176. package/ui.form-input/Docs.mdx +16 -0
  177. package/ui.form-input/assets/fonts/text-security-disc.woff +0 -0
  178. package/ui.form-input/composables/attrs.composable.js +66 -0
  179. package/ui.form-input/configs/default.config.js +72 -0
  180. package/ui.form-input/constants/index.js +5 -0
  181. package/ui.form-input/index.stories.js +166 -0
  182. package/ui.form-input/index.vue +388 -0
  183. package/ui.form-input-file/composables/attrs.composable.js +82 -0
  184. package/ui.form-input-file/configs/default.config.js +59 -0
  185. package/ui.form-input-file/constants/index.js +5 -0
  186. package/ui.form-input-file/index.stories.js +86 -0
  187. package/ui.form-input-file/index.vue +387 -0
  188. package/ui.form-input-money/Docs.mdx +16 -0
  189. package/ui.form-input-money/composables/attrs.composable.js +13 -0
  190. package/ui.form-input-money/composables/useFormatCurrency.js +82 -0
  191. package/ui.form-input-money/configs/default.config.js +16 -0
  192. package/ui.form-input-money/constants/index.js +5 -0
  193. package/ui.form-input-money/index.stories.js +126 -0
  194. package/ui.form-input-money/index.vue +263 -0
  195. package/ui.form-input-money/services/format.service.js +72 -0
  196. package/ui.form-input-number/Docs.mdx +16 -0
  197. package/ui.form-input-number/composables/attrs.composable.js +47 -0
  198. package/ui.form-input-number/configs/default.config.js +33 -0
  199. package/ui.form-input-number/constants/index.js +5 -0
  200. package/ui.form-input-number/index.stories.js +103 -0
  201. package/ui.form-input-number/index.vue +162 -0
  202. package/ui.form-input-rating/composables/attrs.composable.js +34 -0
  203. package/ui.form-input-rating/configs/default.config.js +25 -0
  204. package/ui.form-input-rating/constants/index.js +5 -0
  205. package/ui.form-input-rating/index.stories.js +108 -0
  206. package/ui.form-input-rating/index.vue +186 -0
  207. package/ui.form-input-search/composables/attrs.composable.js +21 -0
  208. package/ui.form-input-search/configs/default.config.js +20 -0
  209. package/ui.form-input-search/constants/index.js +5 -0
  210. package/ui.form-input-search/index.stories.js +90 -0
  211. package/ui.form-input-search/index.vue +215 -0
  212. package/ui.form-label/Docs.mdx +16 -0
  213. package/ui.form-label/composables/attrs.composable.js +65 -0
  214. package/ui.form-label/configs/default.config.js +95 -0
  215. package/ui.form-label/constants/index.js +13 -0
  216. package/ui.form-label/index.stories.js +107 -0
  217. package/ui.form-label/index.vue +170 -0
  218. package/ui.form-radio/Docs.mdx +16 -0
  219. package/ui.form-radio/composables/attrs.composable.js +34 -0
  220. package/ui.form-radio/configs/default.config.js +47 -0
  221. package/ui.form-radio/constants/index.js +5 -0
  222. package/ui.form-radio/index.stories.js +71 -0
  223. package/ui.form-radio/index.vue +170 -0
  224. package/ui.form-radio-card/Docs.mdx +16 -0
  225. package/ui.form-radio-card/composables/attrs.composable.js +35 -0
  226. package/ui.form-radio-card/configs/default.config.js +25 -0
  227. package/ui.form-radio-card/constants/index.js +5 -0
  228. package/ui.form-radio-card/index.stories.js +149 -0
  229. package/ui.form-radio-card/index.vue +160 -0
  230. package/ui.form-radio-card/services/variant.service.js +15 -0
  231. package/ui.form-radio-group/Docs.mdx +16 -0
  232. package/ui.form-radio-group/composables/attrs.composable.js +27 -0
  233. package/ui.form-radio-group/configs/default.config.js +18 -0
  234. package/ui.form-radio-group/constants/index.js +5 -0
  235. package/ui.form-radio-group/index.stories.js +42 -0
  236. package/ui.form-radio-group/index.vue +128 -0
  237. package/ui.form-select/Docs.mdx +16 -0
  238. package/ui.form-select/composables/attrs.composable.js +172 -0
  239. package/ui.form-select/configs/default.config.js +138 -0
  240. package/ui.form-select/constants/index.js +19 -0
  241. package/ui.form-select/index.stories.js +339 -0
  242. package/ui.form-select/index.vue +722 -0
  243. package/ui.form-select/services/select.service.js +98 -0
  244. package/ui.form-switch/composables/attrs.composable.js +77 -0
  245. package/ui.form-switch/configs/default.config.js +76 -0
  246. package/ui.form-switch/constants/index.js +5 -0
  247. package/ui.form-switch/index.stories.js +93 -0
  248. package/ui.form-switch/index.vue +199 -0
  249. package/ui.form-switch/services/variant.service.js +31 -0
  250. package/ui.form-textarea/Docs.mdx +16 -0
  251. package/ui.form-textarea/composables/attrs.composable.js +52 -0
  252. package/ui.form-textarea/configs/default.config.js +68 -0
  253. package/ui.form-textarea/constants/index.js +5 -0
  254. package/ui.form-textarea/index.stories.js +151 -0
  255. package/ui.form-textarea/index.vue +284 -0
  256. package/ui.image-avatar/composables/attrs.composable.js +34 -0
  257. package/ui.image-avatar/configs/default.config.js +42 -0
  258. package/ui.image-avatar/constants/index.js +5 -0
  259. package/ui.image-avatar/default-avatar.png +0 -0
  260. package/ui.image-avatar/index.stories.js +107 -0
  261. package/ui.image-avatar/index.vue +121 -0
  262. package/ui.image-icon/Docs.mdx +16 -0
  263. package/ui.image-icon/composables/attrs.composable.js +65 -0
  264. package/ui.image-icon/configs/default.config.js +90 -0
  265. package/ui.image-icon/constants/index.js +5 -0
  266. package/ui.image-icon/index.stories.js +110 -0
  267. package/ui.image-icon/index.vue +233 -0
  268. package/ui.image-logo/composables/attrs.composable.js +41 -0
  269. package/ui.image-logo/configs/default.config.js +38 -0
  270. package/ui.image-logo/constants/index.js +5 -0
  271. package/ui.image-logo/index.stories.js +84 -0
  272. package/ui.image-logo/index.vue +98 -0
  273. package/ui.loader-rendering/index.vue +72 -0
  274. package/ui.loader-rendering/store/index.js +17 -0
  275. package/ui.loader-top/components/TopProgress.vue +277 -0
  276. package/ui.loader-top/index.vue +221 -0
  277. package/ui.loader-top/store/index.js +59 -0
  278. package/ui.navigation-pagination/composables/attrs.composable.js +41 -0
  279. package/ui.navigation-pagination/configs/default.config.js +24 -0
  280. package/ui.navigation-pagination/constants/index.js +8 -0
  281. package/ui.navigation-pagination/index.stories.js +52 -0
  282. package/ui.navigation-pagination/index.vue +276 -0
  283. package/ui.navigation-stepper/composables/attrs.composable.js +25 -0
  284. package/ui.navigation-stepper/configs/default.config.js +13 -0
  285. package/ui.navigation-stepper/constants/index.js +5 -0
  286. package/ui.navigation-stepper/index.stories.js +30 -0
  287. package/ui.navigation-stepper/index.vue +126 -0
  288. package/ui.navigation-tab/composables/attrs.composable.js +30 -0
  289. package/ui.navigation-tab/configs/default.config.js +22 -0
  290. package/ui.navigation-tab/constants/index.js +5 -0
  291. package/ui.navigation-tab/index.stories.js +57 -0
  292. package/ui.navigation-tab/index.vue +85 -0
  293. package/ui.navigation-tabs/composables/attrs.composable.js +24 -0
  294. package/ui.navigation-tabs/configs/default.config.js +14 -0
  295. package/ui.navigation-tabs/constants/index.js +5 -0
  296. package/ui.navigation-tabs/index.stories.js +69 -0
  297. package/ui.navigation-tabs/index.vue +99 -0
  298. package/ui.notify/index.sto_ries.js +102 -0
  299. package/ui.notify/index.vue +248 -0
  300. package/ui.notify/services/index.js +87 -0
  301. package/ui.other-dot/composables/attrs.composable.js +32 -0
  302. package/ui.other-dot/configs/default.config.js +21 -0
  303. package/ui.other-dot/constants/index.js +5 -0
  304. package/ui.other-dot/index.stories.js +77 -0
  305. package/ui.other-dot/index.vue +52 -0
  306. package/ui.other-loader/composables/attrs.composable.js +51 -0
  307. package/ui.other-loader/configs/default.config.js +47 -0
  308. package/ui.other-loader/constants/index.js +5 -0
  309. package/ui.other-loader/index.stories.js +78 -0
  310. package/ui.other-loader/index.vue +136 -0
  311. package/ui.text-alert/composables/attrs.composable.js +48 -0
  312. package/ui.text-alert/configs/default.config.js +51 -0
  313. package/ui.text-alert/constatns/index.js +5 -0
  314. package/ui.text-alert/index.stories.js +157 -0
  315. package/ui.text-alert/index.vue +122 -0
  316. package/ui.text-badge/Docs.mdx +16 -0
  317. package/ui.text-badge/composables/attrs.composable.js +49 -0
  318. package/ui.text-badge/configs/default.config.js +51 -0
  319. package/ui.text-badge/constants/index.js +5 -0
  320. package/ui.text-badge/index.stories.js +190 -0
  321. package/ui.text-badge/index.vue +120 -0
  322. package/ui.text-block/composables/attrs.composable.js +31 -0
  323. package/ui.text-block/configs/default.config.js +35 -0
  324. package/ui.text-block/constatns/index.js +5 -0
  325. package/ui.text-block/index.stories.js +112 -0
  326. package/ui.text-block/index.vue +76 -0
  327. package/ui.text-empty/Docs.mdx +16 -0
  328. package/ui.text-empty/composables/attrs.composable.js +43 -0
  329. package/ui.text-empty/configs/default.config.js +30 -0
  330. package/ui.text-empty/constants/index.js +5 -0
  331. package/ui.text-empty/index.stories.js +106 -0
  332. package/ui.text-empty/index.vue +95 -0
  333. package/ui.text-file/composables/attrs.composable.js +37 -0
  334. package/ui.text-file/configs/default.config.js +15 -0
  335. package/ui.text-file/index.stories.js +29 -0
  336. package/ui.text-file/index.vue +93 -0
  337. package/ui.text-files/composables/attrs.composable.js +19 -0
  338. package/ui.text-files/configs/default.config.js +9 -0
  339. package/ui.text-files/constants/index.js +5 -0
  340. package/ui.text-files/index.stories.js +32 -0
  341. package/ui.text-files/index.vue +87 -0
  342. package/ui.text-header/Docs.mdx +16 -0
  343. package/ui.text-header/composables/attrs.composable.js +34 -0
  344. package/ui.text-header/configs/default.config.js +45 -0
  345. package/ui.text-header/constants/index.js +5 -0
  346. package/ui.text-header/index.stories.js +106 -0
  347. package/ui.text-header/index.vue +83 -0
  348. package/ui.text-money/Docs.mdx +16 -0
  349. package/ui.text-money/assets/credit.svg +7 -0
  350. package/ui.text-money/assets/debit.svg +12 -0
  351. package/ui.text-money/composables/attrs.composable.js +65 -0
  352. package/ui.text-money/configs/default.config.js +69 -0
  353. package/ui.text-money/constants/index.js +7 -0
  354. package/ui.text-money/index.stories.js +265 -0
  355. package/ui.text-money/index.vue +204 -0
  356. package/ui.text-money/services/money.services.js +24 -0
  357. package/ui.viewport/index.vue +78 -0
  358. package/ui.viewport/store/index.js +47 -0
  359. package/web-types.json +7187 -0
@@ -0,0 +1,138 @@
1
+ <template>
2
+ <div :data-cy="dataCy" v-bind="wrapperAttrs">
3
+ <div v-bind="dividerAttrs" />
4
+ <template v-if="label && !vertical">
5
+ <span v-bind="labelAttrs" v-text="label" />
6
+ <div v-bind="dividerAttrs" />
7
+ </template>
8
+ </div>
9
+ </template>
10
+
11
+ <script setup>
12
+ import UIService from "../service.ui";
13
+
14
+ import { UDivider } from "./constants";
15
+ import defaultConfig from "./configs/default.config";
16
+ import { useAttrs } from "./composables/attrs.composable";
17
+
18
+ /* Should be a string for correct web-types gen */
19
+ defineOptions({ name: "UDivider", inheritAttrs: false });
20
+
21
+ const props = defineProps({
22
+ /**
23
+ * Divider label.
24
+ */
25
+ label: {
26
+ type: String,
27
+ default: "",
28
+ },
29
+
30
+ /**
31
+ * Divider padding size.
32
+ * @values xs, sm, md, lg, xl
33
+ */
34
+ size: {
35
+ type: String,
36
+ default: UIService.get(defaultConfig, UDivider).default.size,
37
+ },
38
+
39
+ /**
40
+ * Divider color.
41
+ * @values light, default, dark
42
+ */
43
+ variant: {
44
+ type: String,
45
+ default: UIService.get(defaultConfig, UDivider).default.variant,
46
+ },
47
+
48
+ /**
49
+ * Set line dashed.
50
+ */
51
+ dashed: {
52
+ type: Boolean,
53
+ default: UIService.get(defaultConfig, UDivider).default.dashed,
54
+ },
55
+
56
+ /**
57
+ * Set line dotted.
58
+ */
59
+ dotted: {
60
+ type: Boolean,
61
+ default: UIService.get(defaultConfig, UDivider).default.dotted,
62
+ },
63
+
64
+ /**
65
+ * Set divider orientation to vertical.
66
+ */
67
+ vertical: {
68
+ type: Boolean,
69
+ default: UIService.get(defaultConfig, UDivider).default.vertical,
70
+ },
71
+
72
+ /**
73
+ * Remove border (keeps only spacings).
74
+ */
75
+ noBorder: {
76
+ type: Boolean,
77
+ default: UIService.get(defaultConfig, UDivider).default.noBorder,
78
+ },
79
+
80
+ /**
81
+ * Remove all paddings.
82
+ */
83
+ noPadding: {
84
+ type: Boolean,
85
+ default: UIService.get(defaultConfig, UDivider).default.noPadding,
86
+ },
87
+
88
+ /**
89
+ * Remove top padding.
90
+ */
91
+ noTopPadding: {
92
+ type: Boolean,
93
+ default: UIService.get(defaultConfig, UDivider).default.noTopPadding,
94
+ },
95
+
96
+ /**
97
+ * Remove bottom padding.
98
+ */
99
+ noBottomPadding: {
100
+ type: Boolean,
101
+ default: UIService.get(defaultConfig, UDivider).default.noBottomPadding,
102
+ },
103
+
104
+ /**
105
+ * Remove left padding.
106
+ */
107
+ noLeftPadding: {
108
+ type: Boolean,
109
+ default: UIService.get(defaultConfig, UDivider).default.noLeftPadding,
110
+ },
111
+
112
+ /**
113
+ * Remove right padding.
114
+ */
115
+ noRightPadding: {
116
+ type: Boolean,
117
+ default: UIService.get(defaultConfig, UDivider).default.noRightPadding,
118
+ },
119
+
120
+ /**
121
+ * Component ui config object.
122
+ */
123
+ config: {
124
+ type: Object,
125
+ default: () => ({}),
126
+ },
127
+
128
+ /**
129
+ * Data-cy attribute for automated testing.
130
+ */
131
+ dataCy: {
132
+ type: String,
133
+ default: "",
134
+ },
135
+ });
136
+
137
+ const { wrapperAttrs, dividerAttrs, labelAttrs } = useAttrs(props);
138
+ </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,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";
@@ -0,0 +1,88 @@
1
+ import { getArgTypes } from "../service.storybook";
2
+
3
+ import UGroup from "../ui.container-group";
4
+ import UInput from "../ui.form-input";
5
+ import UButton from "../ui.button";
6
+
7
+ export default {
8
+ id: "5030",
9
+ title: "Containers / Group",
10
+ component: UGroup,
11
+ args: {
12
+ title: "Form group",
13
+ slotTemplate: `
14
+ <template #default>
15
+ <UInput placeholder="Vasyl" label="Name" />
16
+
17
+ <UInput placeholder="Vasylenko" label="Surname" />
18
+
19
+ <UInput placeholder="Kyiv" label="Town" />
20
+ </template>
21
+ `,
22
+ },
23
+ argTypes: {
24
+ ...getArgTypes(UGroup.name),
25
+ },
26
+ parameters: {
27
+ docs: {
28
+ story: {
29
+ iframeHeight: 360,
30
+ },
31
+ },
32
+ },
33
+ };
34
+
35
+ const DefaultTemplate = (args) => ({
36
+ components: { UGroup, UInput, UButton },
37
+ setup() {
38
+ return { args };
39
+ },
40
+ template: `
41
+ <UGroup v-bind="args">
42
+ ${args.slotTemplate}
43
+ </UGroup>
44
+ `,
45
+ });
46
+
47
+ export const Default = DefaultTemplate.bind({});
48
+ Default.args = {
49
+ title: "Some title",
50
+ };
51
+
52
+ export const upperlined = DefaultTemplate.bind({});
53
+ upperlined.args = { upperlined: false, underlined: true };
54
+
55
+ export const underlined = DefaultTemplate.bind({});
56
+ underlined.args = { upperlined: true, underlined: false };
57
+
58
+ export const slotDefault = DefaultTemplate.bind({});
59
+ slotDefault.args = {
60
+ slotTemplate: `
61
+ <template #default>
62
+ <UInput placeholder="placeholder" label="Label" />
63
+ </template>
64
+ `,
65
+ };
66
+ slotDefault.parameters = {
67
+ docs: {
68
+ story: {
69
+ iframeHeight: 240,
70
+ },
71
+ },
72
+ };
73
+
74
+ export const slotRight = DefaultTemplate.bind({});
75
+ slotRight.args = {
76
+ slotTemplate: `
77
+ <template #right>
78
+ <UButton size="sm" label="Edit"/>
79
+ </template>
80
+ `,
81
+ };
82
+ slotRight.parameters = {
83
+ docs: {
84
+ story: {
85
+ iframeHeight: 200,
86
+ },
87
+ },
88
+ };
@@ -0,0 +1,106 @@
1
+ <template>
2
+ <div :data-cy="dataCy" v-bind="wrapperAttrs">
3
+ <template v-if="title">
4
+ <UDivider v-if="upperlined" size="xl" no-top-padding v-bind="upperlineAttrs" />
5
+
6
+ <div v-bind="headerAttrs">
7
+ <!-- @slot Use it to add something left side of the header. -->
8
+ <slot name="left">
9
+ <div v-bind="headerFallbackAttrs">
10
+ <!-- @slot Use it to add something before title. -->
11
+ <slot name="before-title" />
12
+
13
+ <UHeader :label="title" size="xs" v-bind="titleAttrs" />
14
+
15
+ <!-- @slot Use it to add something after title. -->
16
+ <slot name="after-title" />
17
+ </div>
18
+ </slot>
19
+
20
+ <!-- @slot Use it to add something right side of the header. -->
21
+ <slot name="right" />
22
+ </div>
23
+
24
+ <UDivider v-if="underlined" size="xl" v-bind="underlineAttrs" />
25
+ </template>
26
+
27
+ <div v-bind="contentAttrs">
28
+ <!-- @slot Use it to add something instead form. -->
29
+ <slot />
30
+ </div>
31
+ </div>
32
+ </template>
33
+
34
+ <script setup>
35
+ import UIService from "../service.ui";
36
+ import UDivider from "../ui.container-divider";
37
+ import UHeader from "../ui.text-header";
38
+
39
+ import { UGroup } from "./constants";
40
+ import defaultConfig from "./configs/default.config";
41
+ import { useAttrs } from "./composables/attrs.composable";
42
+
43
+ /* Should be a string for correct web-types gen */
44
+ defineOptions({ name: "UGroup", inheritAttrs: false });
45
+
46
+ const props = defineProps({
47
+ /**
48
+ * Set header title.
49
+ */
50
+ title: {
51
+ type: String,
52
+ default: "",
53
+ },
54
+
55
+ /**
56
+ * The distance between nested components.
57
+ * @values sm, md, lg
58
+ */
59
+ size: {
60
+ type: String,
61
+ default: UIService.get(defaultConfig, UGroup).default.size,
62
+ },
63
+
64
+ /**
65
+ * Show line above the header.
66
+ */
67
+ upperlined: {
68
+ type: Boolean,
69
+ default: UIService.get(defaultConfig, UGroup).default.upperlined,
70
+ },
71
+
72
+ /**
73
+ * Show line under the header.
74
+ */
75
+ underlined: {
76
+ type: Boolean,
77
+ default: UIService.get(defaultConfig, UGroup).default.underlined,
78
+ },
79
+
80
+ /**
81
+ * Set component ui config object.
82
+ */
83
+ config: {
84
+ type: Object,
85
+ default: () => ({}),
86
+ },
87
+
88
+ /**
89
+ * Set data-cy attribute for automated testing.
90
+ */
91
+ dataCy: {
92
+ type: String,
93
+ default: "",
94
+ },
95
+ });
96
+
97
+ const {
98
+ contentAttrs,
99
+ headerAttrs,
100
+ wrapperAttrs,
101
+ headerFallbackAttrs,
102
+ titleAttrs,
103
+ upperlineAttrs,
104
+ underlineAttrs,
105
+ } = useAttrs(props);
106
+ </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,12 @@
1
+ import useUI from "../../composable.ui";
2
+ import defaultConfig from "../configs/default.config";
3
+
4
+ export function useAttrs(props) {
5
+ const { getAttrs } = useUI(defaultConfig, () => props.config);
6
+
7
+ const wrapperAttrs = getAttrs("wrapper");
8
+
9
+ return {
10
+ wrapperAttrs,
11
+ };
12
+ }
@@ -0,0 +1,3 @@
1
+ export default /*tw*/ {
2
+ wrapper: "flex flex-col space-y-14",
3
+ };
@@ -0,0 +1,45 @@
1
+ import { getArgTypes } from "../service.storybook";
2
+
3
+ import UGroup from "../ui.container-group";
4
+ import UGroups from "../ui.container-groups";
5
+ import UInput from "../ui.form-input";
6
+
7
+ export default {
8
+ id: "5040",
9
+ title: "Containers / Groups",
10
+ component: UGroups,
11
+ argTypes: {
12
+ ...getArgTypes(UGroups.name),
13
+ },
14
+ parameters: {
15
+ docs: {
16
+ story: {
17
+ iframeHeight: 760,
18
+ },
19
+ },
20
+ },
21
+ };
22
+
23
+ const DefaultTemplate = (args) => ({
24
+ components: { UGroups, UGroup, UInput },
25
+ setup() {
26
+ return { args };
27
+ },
28
+ template: `
29
+ <UGroups>
30
+ ${args.slotTemplate}
31
+ </UGroups>
32
+ `,
33
+ });
34
+
35
+ export const Default = DefaultTemplate.bind({});
36
+ Default.args = {
37
+ slotTemplate: `
38
+ <template #default>
39
+ <UGroup :upperlined="n !== 1" :title="'Group '+n" v-for="n in 3">
40
+ <UInput placeholder="input" label="Label" />
41
+ <UInput placeholder="input" label="Label" />
42
+ </UGroup>
43
+ </template>
44
+ `,
45
+ };
@@ -0,0 +1,33 @@
1
+ <template>
2
+ <div :data-cy="dataCy" v-bind="wrapperAttrs">
3
+ <!-- @slot Use it to add something inside. -->
4
+ <slot />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup>
9
+ import { useAttrs } from "./composables/attrs.composable";
10
+
11
+ /* Should be a string for correct web-types gen */
12
+ defineOptions({ name: "UGroups", inheritAttrs: false });
13
+
14
+ const props = defineProps({
15
+ /**
16
+ * Set component ui config object.
17
+ */
18
+ config: {
19
+ type: Object,
20
+ default: () => ({}),
21
+ },
22
+
23
+ /**
24
+ * Set data-cy attribute for automated testing.
25
+ */
26
+ dataCy: {
27
+ type: String,
28
+ default: "",
29
+ },
30
+ });
31
+
32
+ const { wrapperAttrs } = useAttrs(props);
33
+ </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,90 @@
1
+ import useUI from "../../composable.ui";
2
+ import { cva, cx } from "../../service.ui";
3
+
4
+ import defaultConfig from "../configs/default.config";
5
+ import { useStore } from "vuex";
6
+ import { computed } from "vue";
7
+
8
+ export function useAttrs(props) {
9
+ const store = useStore();
10
+ const { config, getAttrs, hasSlotContent } = useUI(defaultConfig, () => props.config, "wrapper");
11
+ const { modal } = config.value;
12
+
13
+ const cvaModal = cva({
14
+ base: modal.base,
15
+ variants: modal.variants,
16
+ compoundVariants: modal.compoundVariants,
17
+ });
18
+
19
+ const modalClasses = computed(() =>
20
+ cvaModal({
21
+ width: props.width,
22
+ inner: props.inner,
23
+ }),
24
+ );
25
+
26
+ const wrapperAttrs = getAttrs("wrapper");
27
+ const overlayAttrs = getAttrs("overlay");
28
+ const innerWrapperAttrs = getAttrs("innerWrapper");
29
+ const headerAttrsRaw = getAttrs("header");
30
+ const headerLeftAttrs = getAttrs("headerLeft");
31
+ const headerLeftFallbackAttrs = getAttrs("headerLeftFallback");
32
+ const backLinkAttrs = getAttrs("backLink", { isComponent: true });
33
+ const backLinkIconAttrs = getAttrs("backLinkIcon", { isComponent: true });
34
+ const titleAttrs = getAttrs("title", { isComponent: true });
35
+ const descriptionAttrs = getAttrs("description");
36
+ const headerRightAttrs = getAttrs("headerRight");
37
+ const closeIconAttrs = getAttrs("closeIcon", { isComponent: true });
38
+ const bodyAttrs = getAttrs("body");
39
+ const dividerAttrs = getAttrs("divider", { isComponent: true });
40
+ const dividerSpacingAttrs = getAttrs("dividerSpacing", { isComponent: true });
41
+ const footerAttrsRaw = getAttrs("footer");
42
+
43
+ const headerAttrs = computed(() => ({
44
+ ...headerAttrsRaw.value,
45
+ class: cx([
46
+ headerAttrsRaw.value.class,
47
+ props.mobileFooterReverse &&
48
+ store.getters["breakpoint/isMobileDevice"] &&
49
+ config.value.footerMobileReverse,
50
+ ]),
51
+ }));
52
+
53
+ const footerAttrs = computed(() => ({
54
+ ...footerAttrsRaw.value,
55
+ class: cx([
56
+ footerAttrsRaw.value.class,
57
+ props.mobileFooterReverse &&
58
+ store.getters["breakpoint/isMobileDevice"] &&
59
+ config.value.footerMobileReverse,
60
+ ]),
61
+ }));
62
+
63
+ const footerLeftAttrs = getAttrs("footerLeft");
64
+ const footerRightAttrs = getAttrs("footerRight");
65
+ const modalAttrs = getAttrs("modal", { classes: modalClasses });
66
+
67
+ return {
68
+ config,
69
+ modalAttrs,
70
+ titleAttrs,
71
+ backLinkAttrs,
72
+ backLinkIconAttrs,
73
+ closeIconAttrs,
74
+ dividerAttrs,
75
+ dividerSpacingAttrs,
76
+ overlayAttrs,
77
+ wrapperAttrs,
78
+ innerWrapperAttrs,
79
+ headerAttrs,
80
+ headerLeftAttrs,
81
+ headerLeftFallbackAttrs,
82
+ descriptionAttrs,
83
+ headerRightAttrs,
84
+ bodyAttrs,
85
+ footerLeftAttrs,
86
+ footerAttrs,
87
+ footerRightAttrs,
88
+ hasSlotContent,
89
+ };
90
+ }