vueless 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (436) hide show
  1. package/_readme/README.md +5 -75
  2. package/_readme/UNotify.md +1 -1
  3. package/_readme/UTopLoader.md +2 -2
  4. package/_readme/customization.md +347 -0
  5. package/_readme/installation.md +139 -0
  6. package/_readme/storybook-pages/Customisation.mdx +6 -0
  7. package/_readme/storybook-pages/Installation.mdx +7 -0
  8. package/composable.ui/index.js +341 -30
  9. package/library.vue-tailwind-3/index.js +0 -5
  10. package/library.web-types-gen/lib/build.js +35 -9
  11. package/library.web-types-gen/lib/config.js +10 -4
  12. package/package.json +37 -4
  13. package/plugin.vite/index.js +59 -0
  14. package/plugin.vite/services/iconResolver.service.js +291 -0
  15. package/plugin.vite/services/svgLoader.service.js +76 -0
  16. package/plugin.vite/services/tailwindSafelist.service.js +197 -0
  17. package/plugin.vite/services/unpluginComponentsResolver.js +172 -0
  18. package/service.storybook/index.js +53 -80
  19. package/service.tailwind/index.js +112 -0
  20. package/service.ui/index.js +69 -50
  21. package/ui.button/Docs.mdx +16 -0
  22. package/ui.button/composables/attrs.composable.js +41 -0
  23. package/ui.button/configs/default.config.js +164 -0
  24. package/ui.button/constants/index.js +5 -0
  25. package/ui.button/index.stories.js +8 -7
  26. package/ui.button/index.vue +116 -981
  27. package/ui.button-link/Docs.mdx +16 -0
  28. package/ui.button-link/composables/attrs.composable.js +99 -0
  29. package/ui.button-link/configs/default.config.js +80 -0
  30. package/ui.button-link/constants/index.js +5 -0
  31. package/ui.button-link/index.stories.js +56 -19
  32. package/ui.button-link/index.vue +178 -493
  33. package/ui.button-toggle/Docs.mdx +16 -0
  34. package/ui.button-toggle/composables/attrs.composable.js +16 -0
  35. package/ui.button-toggle/configs/default.config.js +12 -0
  36. package/ui.button-toggle/constants/index.js +7 -0
  37. package/{ui.button-group → ui.button-toggle}/index.stories.js +79 -28
  38. package/ui.button-toggle/index.vue +128 -0
  39. package/ui.button-toggle-item/Docs.mdx +16 -0
  40. package/ui.button-toggle-item/composables/attrs.composable.js +53 -0
  41. package/ui.button-toggle-item/configs/default.config.js +58 -0
  42. package/ui.button-toggle-item/constants/index.js +5 -0
  43. package/{ui.button-group-item → ui.button-toggle-item}/index.stories.js +16 -13
  44. package/ui.button-toggle-item/index.vue +147 -0
  45. package/ui.container-accordion/composables/attrs.composable.js +45 -0
  46. package/ui.container-accordion/configs/default.config.js +32 -0
  47. package/ui.container-accordion/constants/index.js +5 -0
  48. package/ui.container-accordion/index.stories.js +3 -2
  49. package/ui.container-accordion/index.vue +71 -143
  50. package/ui.container-card/Docs.mdx +16 -0
  51. package/ui.container-card/composable/attrs.composable.js +56 -0
  52. package/ui.container-card/configs/default.config.js +31 -0
  53. package/ui.container-card/constants/index.js +5 -0
  54. package/ui.container-card/index.stories.js +51 -9
  55. package/ui.container-card/index.vue +108 -169
  56. package/ui.container-divider/Docs.mdx +16 -0
  57. package/ui.container-divider/composables/attrs.composable.js +65 -0
  58. package/ui.container-divider/configs/default.config.js +79 -0
  59. package/ui.container-divider/constants/index.js +5 -0
  60. package/ui.container-divider/index.stories.js +41 -8
  61. package/ui.container-divider/index.vue +126 -189
  62. package/ui.container-group/Docs.mdx +16 -0
  63. package/ui.container-group/composables/attrs.composable.js +44 -0
  64. package/ui.container-group/configs/default.config.js +29 -0
  65. package/ui.container-group/constants/index.js +5 -0
  66. package/ui.container-group/index.stories.js +7 -6
  67. package/ui.container-group/index.vue +76 -142
  68. package/ui.container-groups/Docs.mdx +16 -0
  69. package/ui.container-groups/composables/attrs.composable.js +12 -0
  70. package/ui.container-groups/configs/default.config.js +3 -0
  71. package/ui.container-groups/index.stories.js +4 -3
  72. package/ui.container-groups/index.vue +26 -11
  73. package/ui.container-modal/Docs.mdx +16 -0
  74. package/ui.container-modal/composables/attrs.composable.js +90 -0
  75. package/ui.container-modal/configs/default.config.js +69 -0
  76. package/ui.container-modal/constants/index.js +5 -0
  77. package/ui.container-modal/index.stories.js +8 -7
  78. package/ui.container-modal/index.vue +289 -370
  79. package/ui.container-modal-confirm/Docs.mdx +16 -0
  80. package/ui.container-modal-confirm/composable/attrs.composable.js +19 -0
  81. package/ui.container-modal-confirm/configs/default.config.js +12 -0
  82. package/ui.container-modal-confirm/constants/index.js +5 -0
  83. package/ui.container-modal-confirm/index.stories.js +66 -7
  84. package/ui.container-modal-confirm/index.vue +126 -116
  85. package/ui.container-page/Docs.mdx +16 -0
  86. package/ui.container-page/composables/attrs.composable.js +96 -0
  87. package/ui.container-page/configs/default.config.js +71 -0
  88. package/ui.container-page/constants/index.js +5 -0
  89. package/ui.container-page/index.stories.js +7 -34
  90. package/ui.container-page/index.vue +193 -408
  91. package/ui.container-row/Docs.mdx +16 -0
  92. package/ui.container-row/composables/attrs.composable.js +23 -0
  93. package/ui.container-row/configs/default.config.js +14 -0
  94. package/ui.container-row/constants/index.js +5 -0
  95. package/ui.container-row/index.stories.js +10 -0
  96. package/ui.container-row/index.vue +32 -39
  97. package/ui.data-list/composables/attrs.composable.js +45 -0
  98. package/ui.data-list/configs/default.config.js +32 -0
  99. package/ui.data-list/constants/index.js +5 -0
  100. package/ui.data-list/index.stories.js +1 -0
  101. package/ui.data-list/index.vue +156 -265
  102. package/ui.data-table/Docs.mdx +16 -0
  103. package/ui.data-table/composables/attrs.composable.js +188 -0
  104. package/ui.data-table/configs/default.config.js +82 -0
  105. package/ui.data-table/constants/index.js +5 -0
  106. package/ui.data-table/index.stories.js +73 -43
  107. package/ui.data-table/index.vue +600 -961
  108. package/ui.data-table/services/table.service.js +15 -0
  109. package/ui.data-table-cell/composables/attrs.composable.js +24 -0
  110. package/ui.data-table-cell/configs/default.config.js +19 -0
  111. package/ui.data-table-cell/constants/index.js +5 -0
  112. package/ui.data-table-cell/index.vue +44 -0
  113. package/ui.dropdown-badge/Docs.mdx +16 -0
  114. package/ui.dropdown-badge/composables/attrs.composable.js +63 -0
  115. package/ui.dropdown-badge/configs/default.config.js +34 -0
  116. package/ui.dropdown-badge/constants/index.js +5 -0
  117. package/{ui.dropdown-tag → ui.dropdown-badge}/index.stories.js +26 -25
  118. package/ui.dropdown-badge/index.vue +233 -0
  119. package/ui.dropdown-button/Docs.mdx +16 -0
  120. package/ui.dropdown-button/composables/attrs.composable.js +63 -0
  121. package/ui.dropdown-button/configs/default.config.js +37 -0
  122. package/ui.dropdown-button/constants/index.js +14 -0
  123. package/ui.dropdown-button/index.stories.js +12 -11
  124. package/ui.dropdown-button/index.vue +231 -291
  125. package/ui.dropdown-item/Docs.mdx +16 -0
  126. package/ui.dropdown-item/composables/attrs.composable.js +13 -0
  127. package/ui.dropdown-item/configs/default.config.js +16 -0
  128. package/ui.dropdown-item/index.stories.js +2 -1
  129. package/ui.dropdown-item/index.vue +38 -55
  130. package/ui.dropdown-link/Docs.mdx +16 -0
  131. package/ui.dropdown-link/composables/attrs.composable.js +65 -0
  132. package/ui.dropdown-link/configs/default.config.js +37 -0
  133. package/ui.dropdown-link/constants/index.js +5 -0
  134. package/ui.dropdown-link/index.stories.js +11 -11
  135. package/ui.dropdown-link/index.vue +217 -287
  136. package/ui.dropdown-list/Docs.mdx +16 -0
  137. package/ui.dropdown-list/composables/attrs.composable.js +91 -0
  138. package/ui.dropdown-list/composables/usePointer.js +77 -0
  139. package/ui.dropdown-list/configs/default.config.js +68 -0
  140. package/ui.dropdown-list/constants/index.js +5 -0
  141. package/ui.dropdown-list/index.stories.js +33 -3
  142. package/ui.dropdown-list/index.vue +271 -112
  143. package/ui.form-calendar/Docs.mdx +52 -0
  144. package/ui.form-calendar/components/DayView.vue +230 -0
  145. package/ui.form-calendar/components/MonthView.vue +114 -0
  146. package/ui.form-calendar/components/YearView.vue +118 -0
  147. package/ui.form-calendar/composables/attrs.composable.js +87 -0
  148. package/ui.form-calendar/configs/default.config.js +115 -0
  149. package/ui.form-calendar/constants/index.js +69 -0
  150. package/ui.form-calendar/index.stories.js +50 -0
  151. package/ui.form-calendar/index.vue +628 -0
  152. package/ui.form-calendar/services/calendar.service.js +201 -0
  153. package/ui.form-calendar/services/date.service.js +121 -0
  154. package/ui.form-calendar/services/formatting.service.js +180 -0
  155. package/ui.form-checkbox/Docs.mdx +16 -0
  156. package/ui.form-checkbox/composables/attrs.composable.js +57 -0
  157. package/ui.form-checkbox/configs/default.config.js +69 -0
  158. package/ui.form-checkbox/constants/index.js +5 -0
  159. package/ui.form-checkbox/index.stories.js +75 -26
  160. package/ui.form-checkbox/index.vue +201 -261
  161. package/ui.form-checkbox-group/Docs.mdx +16 -0
  162. package/ui.form-checkbox-group/composables/attrs.composable.js +17 -0
  163. package/ui.form-checkbox-group/configs/default.config.js +5 -0
  164. package/ui.form-checkbox-group/constants/index.js +5 -0
  165. package/ui.form-checkbox-group/index.stories.js +7 -1
  166. package/ui.form-checkbox-group/index.vue +104 -177
  167. package/ui.form-checkbox-multi-state/Docs.mdx +16 -0
  168. package/ui.form-checkbox-multi-state/composables/attrs.composable.js +24 -0
  169. package/ui.form-checkbox-multi-state/configs/default.config.js +9 -0
  170. package/ui.form-checkbox-multi-state/constants/index.js +5 -0
  171. package/ui.form-checkbox-multi-state/index.stories.js +8 -11
  172. package/ui.form-checkbox-multi-state/index.vue +109 -220
  173. package/ui.form-color-picker/composables/attrs.composable.js +44 -0
  174. package/ui.form-color-picker/configs/default.config.js +52 -0
  175. package/ui.form-color-picker/constants/index.js +5 -0
  176. package/ui.form-color-picker/index.stories.js +63 -0
  177. package/ui.form-color-picker/index.vue +147 -329
  178. package/ui.form-date-picker/Docs.mdx +52 -0
  179. package/ui.form-date-picker/composables/attrs.composable.js +22 -0
  180. package/ui.form-date-picker/configs/default.config.js +27 -0
  181. package/ui.form-date-picker/constants/index.js +5 -0
  182. package/ui.form-date-picker/index.stories.js +21 -8
  183. package/ui.form-date-picker/index.vue +205 -802
  184. package/ui.form-input/Docs.mdx +16 -0
  185. package/ui.form-input/composables/attrs.composable.js +66 -0
  186. package/ui.form-input/configs/default.config.js +72 -0
  187. package/{constant.component-names → ui.form-input/constants}/index.js +1 -2
  188. package/ui.form-input/index.stories.js +46 -12
  189. package/ui.form-input/index.vue +320 -459
  190. package/ui.form-input-file/composables/attrs.composable.js +82 -0
  191. package/ui.form-input-file/configs/default.config.js +51 -0
  192. package/ui.form-input-file/constants/index.js +5 -0
  193. package/ui.form-input-file/index.stories.js +3 -2
  194. package/ui.form-input-file/index.vue +332 -498
  195. package/ui.form-input-money/Docs.mdx +16 -0
  196. package/ui.form-input-money/composables/attrs.composable.js +13 -0
  197. package/ui.form-input-money/composables/useFormatCurrency.js +82 -0
  198. package/ui.form-input-money/configs/default.config.js +16 -0
  199. package/ui.form-input-money/constants/index.js +5 -0
  200. package/ui.form-input-money/index.stories.js +71 -43
  201. package/ui.form-input-money/index.vue +241 -237
  202. package/ui.form-input-money/services/format.service.js +72 -0
  203. package/ui.form-input-number/Docs.mdx +16 -0
  204. package/ui.form-input-number/composables/attrs.composable.js +47 -0
  205. package/ui.form-input-number/configs/default.config.js +33 -0
  206. package/ui.form-input-number/constants/index.js +5 -0
  207. package/ui.form-input-number/index.stories.js +73 -3
  208. package/ui.form-input-number/index.vue +138 -106
  209. package/ui.form-input-rating/composables/attrs.composable.js +34 -0
  210. package/ui.form-input-rating/configs/default.config.js +25 -0
  211. package/ui.form-input-rating/constants/index.js +5 -0
  212. package/ui.form-input-rating/index.stories.js +3 -2
  213. package/ui.form-input-rating/index.vue +152 -209
  214. package/ui.form-input-search/composables/attrs.composable.js +21 -0
  215. package/ui.form-input-search/configs/default.config.js +20 -0
  216. package/ui.form-input-search/constants/index.js +5 -0
  217. package/ui.form-input-search/index.stories.js +8 -4
  218. package/ui.form-input-search/index.vue +192 -189
  219. package/ui.form-label/Docs.mdx +16 -0
  220. package/ui.form-label/composables/attrs.composable.js +65 -0
  221. package/ui.form-label/configs/default.config.js +95 -0
  222. package/ui.form-label/constants/index.js +13 -0
  223. package/ui.form-label/index.stories.js +107 -0
  224. package/ui.form-label/index.vue +170 -0
  225. package/ui.form-radio/Docs.mdx +16 -0
  226. package/ui.form-radio/composables/attrs.composable.js +34 -0
  227. package/ui.form-radio/configs/default.config.js +47 -0
  228. package/ui.form-radio/constants/index.js +5 -0
  229. package/ui.form-radio/index.stories.js +12 -10
  230. package/ui.form-radio/index.vue +141 -148
  231. package/ui.form-radio-card/Docs.mdx +16 -0
  232. package/ui.form-radio-card/composables/attrs.composable.js +30 -0
  233. package/ui.form-radio-card/configs/default.config.js +25 -0
  234. package/ui.form-radio-card/constants/index.js +5 -0
  235. package/ui.form-radio-card/index.stories.js +19 -10
  236. package/ui.form-radio-card/index.vue +132 -146
  237. package/ui.form-radio-card/services/variant.service.js +15 -0
  238. package/ui.form-radio-group/Docs.mdx +16 -0
  239. package/ui.form-radio-group/composables/attrs.composable.js +27 -0
  240. package/ui.form-radio-group/configs/default.config.js +18 -0
  241. package/ui.form-radio-group/constants/index.js +5 -0
  242. package/ui.form-radio-group/index.stories.js +1 -0
  243. package/ui.form-radio-group/index.vue +114 -85
  244. package/ui.form-select/Docs.mdx +16 -0
  245. package/ui.form-select/composables/attrs.composable.js +172 -0
  246. package/ui.form-select/configs/default.config.js +131 -0
  247. package/ui.form-select/constants/index.js +19 -0
  248. package/ui.form-select/index.stories.js +194 -38
  249. package/ui.form-select/index.vue +638 -910
  250. package/ui.form-select/services/select.service.js +98 -0
  251. package/ui.form-switch/composables/attrs.composable.js +77 -0
  252. package/ui.form-switch/configs/default.config.js +72 -0
  253. package/ui.form-switch/constants/index.js +5 -0
  254. package/ui.form-switch/index.stories.js +9 -42
  255. package/ui.form-switch/index.vue +177 -632
  256. package/ui.form-switch/services/variant.service.js +31 -0
  257. package/ui.form-textarea/Docs.mdx +16 -0
  258. package/ui.form-textarea/composables/attrs.composable.js +52 -0
  259. package/ui.form-textarea/configs/default.config.js +68 -0
  260. package/ui.form-textarea/constants/index.js +5 -0
  261. package/ui.form-textarea/index.stories.js +47 -5
  262. package/ui.form-textarea/index.vue +238 -353
  263. package/ui.image-avatar/composables/attrs.composable.js +34 -0
  264. package/ui.image-avatar/configs/default.config.js +42 -0
  265. package/ui.image-avatar/constants/index.js +5 -0
  266. package/ui.image-avatar/index.stories.js +7 -6
  267. package/ui.image-avatar/index.vue +94 -226
  268. package/ui.image-icon/Docs.mdx +16 -0
  269. package/ui.image-icon/composables/attrs.composable.js +65 -0
  270. package/ui.image-icon/configs/default.config.js +90 -0
  271. package/ui.image-icon/constants/index.js +5 -0
  272. package/ui.image-icon/index.stories.js +16 -35
  273. package/ui.image-icon/index.vue +165 -453
  274. package/ui.image-logo/composables/attrs.composable.js +41 -0
  275. package/ui.image-logo/configs/default.config.js +38 -0
  276. package/ui.image-logo/constants/index.js +5 -0
  277. package/ui.image-logo/index.stories.js +8 -8
  278. package/ui.image-logo/index.vue +80 -166
  279. package/ui.navigation-pagination/composables/attrs.composable.js +41 -0
  280. package/ui.navigation-pagination/configs/default.config.js +24 -0
  281. package/ui.navigation-pagination/constants/index.js +8 -0
  282. package/ui.navigation-pagination/index.stories.js +23 -6
  283. package/ui.navigation-pagination/index.vue +262 -102
  284. package/ui.navigation-stepper/composables/attrs.composable.js +25 -0
  285. package/ui.navigation-stepper/configs/default.config.js +13 -0
  286. package/ui.navigation-stepper/constants/index.js +5 -0
  287. package/ui.navigation-stepper/index.stories.js +1 -0
  288. package/ui.navigation-stepper/index.vue +87 -88
  289. package/ui.navigation-tab/composables/attrs.composable.js +30 -0
  290. package/ui.navigation-tab/configs/default.config.js +22 -0
  291. package/ui.navigation-tab/constants/index.js +5 -0
  292. package/ui.navigation-tab/index.stories.js +7 -11
  293. package/ui.navigation-tab/index.vue +58 -85
  294. package/ui.navigation-tabs/composables/attrs.composable.js +24 -0
  295. package/ui.navigation-tabs/configs/default.config.js +14 -0
  296. package/ui.navigation-tabs/constants/index.js +5 -0
  297. package/ui.navigation-tabs/index.stories.js +7 -11
  298. package/ui.navigation-tabs/index.vue +68 -88
  299. package/ui.other-dot/composables/attrs.composable.js +32 -0
  300. package/ui.other-dot/configs/default.config.js +21 -0
  301. package/ui.other-dot/constants/index.js +5 -0
  302. package/ui.other-dot/index.stories.js +5 -5
  303. package/ui.other-dot/index.vue +41 -89
  304. package/ui.other-loader/composables/attrs.composable.js +51 -0
  305. package/ui.other-loader/configs/default.config.js +47 -0
  306. package/ui.other-loader/constants/index.js +5 -0
  307. package/ui.other-loader/index.stories.js +14 -13
  308. package/ui.other-loader/index.vue +58 -107
  309. package/ui.text-alert/composables/attrs.composable.js +48 -0
  310. package/ui.text-alert/configs/default.config.js +51 -0
  311. package/ui.text-alert/constatns/index.js +5 -0
  312. package/ui.text-alert/index.stories.js +39 -6
  313. package/ui.text-alert/index.vue +95 -210
  314. package/ui.text-badge/Docs.mdx +16 -0
  315. package/ui.text-badge/composables/attrs.composable.js +49 -0
  316. package/ui.text-badge/configs/default.config.js +51 -0
  317. package/ui.text-badge/constants/index.js +5 -0
  318. package/ui.text-badge/index.stories.js +190 -0
  319. package/ui.text-badge/index.vue +120 -0
  320. package/ui.text-block/composables/attrs.composable.js +31 -0
  321. package/ui.text-block/configs/default.config.js +35 -0
  322. package/ui.text-block/constatns/index.js +5 -0
  323. package/ui.text-block/index.stories.js +2 -1
  324. package/ui.text-block/index.vue +55 -116
  325. package/ui.text-empty/Docs.mdx +16 -0
  326. package/ui.text-empty/composables/attrs.composable.js +43 -0
  327. package/ui.text-empty/configs/default.config.js +4 -2
  328. package/ui.text-empty/constants/index.js +5 -0
  329. package/ui.text-empty/index.stories.js +3 -3
  330. package/ui.text-empty/index.vue +13 -14
  331. package/ui.text-file/composables/attrs.composable.js +37 -0
  332. package/ui.text-file/configs/default.config.js +15 -0
  333. package/ui.text-file/index.stories.js +2 -1
  334. package/ui.text-file/index.vue +63 -72
  335. package/ui.text-files/composables/attrs.composable.js +19 -0
  336. package/ui.text-files/configs/default.config.js +9 -0
  337. package/ui.text-files/constants/index.js +5 -0
  338. package/ui.text-files/index.stories.js +1 -0
  339. package/ui.text-files/index.vue +73 -50
  340. package/ui.text-header/Docs.mdx +16 -0
  341. package/ui.text-header/composables/attrs.composable.js +34 -0
  342. package/ui.text-header/configs/default.config.js +45 -0
  343. package/ui.text-header/constants/index.js +5 -0
  344. package/ui.text-header/index.stories.js +34 -38
  345. package/ui.text-header/index.vue +67 -221
  346. package/ui.text-money/Docs.mdx +16 -0
  347. package/ui.text-money/composables/attrs.composable.js +65 -0
  348. package/ui.text-money/configs/default.config.js +69 -0
  349. package/ui.text-money/constants/index.js +7 -0
  350. package/ui.text-money/index.stories.js +24 -22
  351. package/ui.text-money/index.vue +187 -506
  352. package/ui.text-money/services/money.services.js +24 -0
  353. package/_readme/layoutAdmin.md +0 -703
  354. package/_readme/layoutApp.md +0 -153
  355. package/_readme/layoutAuth.md +0 -190
  356. package/config.rollup-plugin-visualizer/index.js +0 -11
  357. package/config.unplugin-vue-i18n/index.js +0 -9
  358. package/config.vite-plugin-pwa/index.js +0 -132
  359. package/config.vite-svg-loader/index.js +0 -22
  360. package/index.js +0 -151
  361. package/layout-ui.loader/index.vue +0 -61
  362. package/layout-ui.loader/store/index.js +0 -17
  363. package/layout-ui.loader-top/components/TopProgress.vue +0 -277
  364. package/layout-ui.loader-top/index.vue +0 -218
  365. package/layout-ui.loader-top/store/index.js +0 -55
  366. package/layout-ui.notify/index.stories.js +0 -102
  367. package/layout-ui.notify/index.vue +0 -254
  368. package/layout-ui.viewport/index.vue +0 -78
  369. package/layout-ui.viewport/store/index.js +0 -47
  370. package/layout.admin/AsideBlock.vue +0 -534
  371. package/layout.admin/AsideInfoBlock.vue +0 -85
  372. package/layout.admin/BrandBlock.vue +0 -380
  373. package/layout.admin/ChangeThemeModal.vue +0 -179
  374. package/layout.admin/HelperBlock.vue +0 -132
  375. package/layout.admin/MainMenu.vue +0 -234
  376. package/layout.admin/MainSubMenu.vue +0 -196
  377. package/layout.admin/MobileMainMenu.vue +0 -197
  378. package/layout.admin/MobileSubBlock.vue +0 -171
  379. package/layout.admin/RightInfoBlock.vue +0 -166
  380. package/layout.admin/UserBlock.vue +0 -290
  381. package/layout.admin/images/abstract-01.jpg +0 -0
  382. package/layout.admin/images/abstract-01_preview.jpg +0 -0
  383. package/layout.admin/index.vue +0 -544
  384. package/layout.admin/mixins/index.js +0 -54
  385. package/layout.admin/store/index.js +0 -167
  386. package/layout.auth/FeaturesBlock.vue +0 -57
  387. package/layout.auth/FooterMenu.vue +0 -90
  388. package/layout.auth/LanguageSwitcher.vue +0 -90
  389. package/layout.auth/index.vue +0 -237
  390. package/library.vue-tailwind-3/t-input.js +0 -68
  391. package/library.vue-tailwind-3/t-modal.js +0 -409
  392. package/library.vue-tailwind-3/t-pagination.js +0 -309
  393. package/library.vue-tailwind-3/t-table.js +0 -362
  394. package/library.vue-tailwind-3/t-textarea.js +0 -84
  395. package/resolver.unplugin-vue-components/index.js +0 -94
  396. package/service.api/index.js +0 -275
  397. package/service.data/index.js +0 -75
  398. package/service.date/index.js +0 -222
  399. package/service.i18n/index.js +0 -145
  400. package/service.idb-keyval/index.js +0 -37
  401. package/service.jwt/index.js +0 -27
  402. package/service.money/index.js +0 -86
  403. package/service.notify/index.js +0 -87
  404. package/service.redirect/index.js +0 -20
  405. package/service.validation/index.js +0 -55
  406. package/service.worker/index.js +0 -26
  407. package/ui.button-expand/index.stories.js +0 -44
  408. package/ui.button-expand/index.vue +0 -22
  409. package/ui.button-expand-item/index.stories.js +0 -69
  410. package/ui.button-expand-item/index.vue +0 -154
  411. package/ui.button-group/index.vue +0 -165
  412. package/ui.button-group-item/index.vue +0 -283
  413. package/ui.container-modal/components/ArrowLink.vue +0 -87
  414. package/ui.container-page/components/ArrowLink.vue +0 -87
  415. package/ui.data-table/components/DateSeparator.vue +0 -99
  416. package/ui.data-table/components/EmptyTableMsg.vue +0 -46
  417. package/ui.data-table/components/TableCheckbox.vue +0 -109
  418. package/ui.dropdown-tag/index.vue +0 -285
  419. package/ui.form-date-picker-range/components/VariantButton.vue +0 -136
  420. package/ui.form-date-picker-range/components/VariantInput.vue +0 -101
  421. package/ui.form-date-picker-range/index.stories.js +0 -93
  422. package/ui.form-date-picker-range/index.vue +0 -1537
  423. package/ui.form-date-picker-range/services/dateRange.service.js +0 -178
  424. package/ui.form-input-money/_components/ConvertibleInput.vue +0 -773
  425. package/ui.form-input-money/_components/RangeInput.vue +0 -356
  426. package/ui.form-input-money/_components/SingleInput.vue +0 -378
  427. package/ui.form-select-multi/index.stories.js +0 -131
  428. package/ui.form-select-multi/index.vue +0 -882
  429. package/ui.image-icon/cli.mjs +0 -159
  430. package/ui.text-empty/services/variant.service.js +0 -22
  431. package/ui.text-field/index.stories.js +0 -60
  432. package/ui.text-field/index.vue +0 -109
  433. package/ui.text-tag/index.stories.js +0 -90
  434. package/ui.text-tag/index.vue +0 -178
  435. package/web-types.json +0 -6320
  436. /package/ui.form-input/{text-security-disc.woff → assets/fonts/text-security-disc.woff} +0 -0
@@ -1,172 +1,106 @@
1
1
  <template>
2
- <div class="mono-group" :class="formGroupClasses" :data-cy="dataCy">
3
- <div v-if="title" class="mono-group-header-wrapper">
4
- <UDivider v-if="isUpperlined" class="mono-group-upperlined" size="xl" no-top-padding />
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
5
 
6
- <div class="mono-group-header" :class="headerClass">
6
+ <div v-bind="headerAttrs">
7
7
  <!-- @slot Use it to add something left side of the header. -->
8
- <slot name="left" />
8
+ <slot name="left">
9
+ <div v-bind="headerFallbackAttrs">
10
+ <!-- @slot Use it to add something before title. -->
11
+ <slot name="before-title" />
9
12
 
10
- <div class="mono-group-header-container">
11
- <!-- @slot Use it to add something before title. -->
12
- <slot name="beforeTitle" />
13
+ <UHeader :label="title" size="xs" v-bind="titleAttrs" />
13
14
 
14
- <UHeader v-if="title" class="mono-group-block-title" :text="title" size="xs" />
15
-
16
- <!-- @slot Use it to add something after title. -->
17
- <slot name="afterTitle" />
18
- </div>
15
+ <!-- @slot Use it to add something after title. -->
16
+ <slot name="after-title" />
17
+ </div>
18
+ </slot>
19
19
 
20
20
  <!-- @slot Use it to add something right side of the header. -->
21
21
  <slot name="right" />
22
22
  </div>
23
23
 
24
- <UDivider v-if="isUnderlined" class="mono-group-underlined" size="xl" no-top-padding />
25
- </div>
24
+ <UDivider v-if="underlined" size="xl" v-bind="underlineAttrs" />
25
+ </template>
26
26
 
27
- <div class="mono-group-content">
27
+ <div v-bind="contentAttrs">
28
28
  <!-- @slot Use it to add something instead form. -->
29
29
  <slot />
30
30
  </div>
31
31
  </div>
32
32
  </template>
33
33
 
34
- <script>
35
- import { globalComponentConfig } from "vueless/service.ui";
36
-
34
+ <script setup>
35
+ import UIService from "vueless/service.ui";
37
36
  import UDivider from "vueless/ui.container-divider";
38
37
  import UHeader from "vueless/ui.text-header";
39
38
 
40
- export default {
41
- name: "UGroup",
39
+ import { UGroup } from "./constants";
40
+ import defaultConfig from "./configs/default.config";
41
+ import { useAttrs } from "./composables/attrs.composable";
42
42
 
43
- components: {
44
- UDivider,
45
- UHeader,
46
- },
43
+ /* Should be a string for correct web-types gen */
44
+ defineOptions({ name: "UGroup", inheritAttrs: false });
47
45
 
48
- props: {
49
- /**
50
- * Set header title.
51
- */
52
- title: {
53
- type: String,
54
- default: "",
55
- },
56
-
57
- /**
58
- * The size between nested components.
59
- * @values sm, md, lg
60
- */
61
- size: {
62
- type: String,
63
- default: "md",
64
- },
65
-
66
- /**
67
- * Show line above the header.
68
- */
69
- upperlined: {
70
- type: Boolean,
71
- default: undefined,
72
- },
73
-
74
- /**
75
- * Show line under the header.
76
- */
77
- underlined: {
78
- type: Boolean,
79
- default: undefined,
80
- },
81
-
82
- /**
83
- * Sets data-cy attribute for automated testing.
84
- */
85
- dataCy: {
86
- type: String,
87
- default: "",
88
- },
46
+ const props = defineProps({
47
+ /**
48
+ * Set header title.
49
+ */
50
+ title: {
51
+ type: String,
52
+ default: "",
89
53
  },
90
54
 
91
- computed: {
92
- formGroupClasses() {
93
- const size = `size-${this.size}`;
94
-
95
- return [size];
96
- },
97
-
98
- isUpperlined() {
99
- const upperlined = globalComponentConfig.UGroup?.upperlined;
100
-
101
- if (this.upperlined === undefined && upperlined === undefined) return true;
102
- else if (this.upperlined !== undefined) return this.upperlined;
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
+ },
103
63
 
104
- return upperlined;
105
- },
64
+ /**
65
+ * Show line above the header.
66
+ */
67
+ upperlined: {
68
+ type: Boolean,
69
+ default: UIService.get(defaultConfig, UGroup).default.upperlined,
70
+ },
106
71
 
107
- isUnderlined() {
108
- if (this.underlined !== undefined) return this.underlined;
72
+ /**
73
+ * Show line under the header.
74
+ */
75
+ underlined: {
76
+ type: Boolean,
77
+ default: UIService.get(defaultConfig, UGroup).default.underlined,
78
+ },
109
79
 
110
- return globalComponentConfig.UGroup?.underlined;
111
- },
80
+ /**
81
+ * Set component ui config object.
82
+ */
83
+ config: {
84
+ type: Object,
85
+ default: () => ({}),
86
+ },
112
87
 
113
- headerClass() {
114
- return !this.isUnderlined ? "padding-bottom" : "";
115
- },
88
+ /**
89
+ * Set data-cy attribute for automated testing.
90
+ */
91
+ dataCy: {
92
+ type: String,
93
+ default: "",
116
94
  },
117
- };
95
+ });
96
+
97
+ const {
98
+ contentAttrs,
99
+ headerAttrs,
100
+ wrapperAttrs,
101
+ headerFallbackAttrs,
102
+ titleAttrs,
103
+ upperlineAttrs,
104
+ underlineAttrs,
105
+ } = useAttrs(props);
118
106
  </script>
119
-
120
- <style lang="postcss" scoped>
121
- .size {
122
- &-sm {
123
- .mono-group-content {
124
- @apply space-y-2;
125
- }
126
- }
127
-
128
- &-md {
129
- .mono-group-content {
130
- @apply space-y-4;
131
- }
132
- }
133
-
134
- &-lg {
135
- .mono-group-content {
136
- @apply space-y-6;
137
- }
138
- }
139
- }
140
-
141
- .mono-group {
142
- &-header {
143
- @apply flex items-center justify-between;
144
-
145
- &.padding-bottom {
146
- @apply pb-6;
147
- }
148
-
149
- &-container {
150
- @apply flex items-center;
151
- }
152
- }
153
-
154
- &-title {
155
- @apply mb-6;
156
- }
157
-
158
- &-underlined {
159
- @apply pt-1.5;
160
- }
161
-
162
- &-content {
163
- @apply space-y-4;
164
- }
165
-
166
- &-block {
167
- &-title {
168
- @apply pr-2;
169
- }
170
- }
171
- }
172
- </style>
@@ -0,0 +1,16 @@
1
+ import { Meta, Title, Subtitle, Description, Primary, Controls, Stories, Source } from "@storybook/blocks";
2
+ import { getSource } from "vueless/service.storybook";
3
+
4
+ import * as stories from "./index.stories";
5
+ import defaultConfig from "./configs/default.config?raw"
6
+
7
+ <Meta of={stories} />
8
+ <Title of={stories} />
9
+ <Subtitle of={stories} />
10
+ <Description of={stories} />
11
+ <Primary of={stories} />
12
+ <Controls of={stories.Default} />
13
+ <Stories of={stories} />
14
+
15
+ ## **Default config**
16
+ <Source code={getSource(defaultConfig)} language="jsx" dark />
@@ -0,0 +1,12 @@
1
+ import useUI from "vueless/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
+ };
@@ -5,6 +5,7 @@ import UGroups from "vueless/ui.container-groups";
5
5
  import UInput from "vueless/ui.form-input";
6
6
 
7
7
  export default {
8
+ id: "5040",
8
9
  title: "Containers / Groups",
9
10
  component: UGroups,
10
11
  argTypes: {
@@ -31,11 +32,11 @@ const DefaultTemplate = (args) => ({
31
32
  `,
32
33
  });
33
34
 
34
- export const slotDefault = DefaultTemplate.bind({});
35
- slotDefault.args = {
35
+ export const Default = DefaultTemplate.bind({});
36
+ Default.args = {
36
37
  slotTemplate: `
37
38
  <template #default>
38
- <UGroup :upperlined="!n" :title="'Group '+n" v-for="n in 3">
39
+ <UGroup :upperlined="n !== 1" :title="'Group '+n" v-for="n in 3">
39
40
  <UInput placeholder="input" label="Label" />
40
41
  <UInput placeholder="input" label="Label" />
41
42
  </UGroup>
@@ -1,18 +1,33 @@
1
1
  <template>
2
- <div class="mono-groups">
2
+ <div :data-cy="dataCy" v-bind="wrapperAttrs">
3
3
  <!-- @slot Use it to add something inside. -->
4
4
  <slot />
5
5
  </div>
6
6
  </template>
7
7
 
8
- <script>
9
- export default {
10
- name: "UGroups",
11
- };
12
- </script>
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
+ },
13
22
 
14
- <style scoped lang="postcss">
15
- .mono-groups {
16
- @apply flex flex-col space-y-14;
17
- }
18
- </style>
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 "vueless/service.storybook";
3
+
4
+ import * as stories from "./index.stories";
5
+ import defaultConfig from "./configs/default.config?raw"
6
+
7
+ <Meta of={stories} />
8
+ <Title of={stories} />
9
+ <Subtitle of={stories} />
10
+ <Description of={stories} />
11
+ <Primary of={stories} />
12
+ <Controls of={stories.Default} />
13
+ <Stories of={stories} />
14
+
15
+ ## **Default config**
16
+ <Source code={getSource(defaultConfig)} language="jsx" dark />
@@ -0,0 +1,90 @@
1
+ import useUI from "vueless/composable.ui";
2
+ import { cva, cx } from "vueless/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
+ }
@@ -0,0 +1,69 @@
1
+ export default /*tw*/ {
2
+ wrapper: "fixed inset-0 z-50 outline-none",
3
+ wrapperTransition: {
4
+ enterActiveClass: "ease-out duration-300",
5
+ enterFromClass: "opacity-0 translate-y-4 sm:translate-y-0 transform sm:scale-95",
6
+ enterToClass: "opacity-100 translate-y-0 transform sm:scale-100",
7
+ leaveActiveClass: "ease-in duration-200",
8
+ leaveFromClass: "opacity-100 translate-y-0 transform sm:scale-100",
9
+ leaveToClass: "opacity-0 translate-y-4 sm:translate-y-0 transform sm:scale-95",
10
+ },
11
+ overlay: "fixed inset-0 z-40 bg-gray-900 bg-opacity-75",
12
+ overlayTransition: {
13
+ enterActiveClass: "ease-out duration-300",
14
+ enterFromClass: "opacity-0",
15
+ enterToClass: "opacity-100",
16
+ leaveActiveClass: "ease-in duration-200",
17
+ leaveFromClass: "opacity-100",
18
+ leaveToClass: "opacity-0",
19
+ },
20
+ innerWrapper: "py-12 w-full h-full overflow-auto",
21
+ header: "flex items-center justify-between px-4 md:px-8 pb-6 pt-8",
22
+ headerLeft: "flex items-center space-x-4",
23
+ headerLeftFallback: "flex flex-col",
24
+ backLink: "flex items-center gap-0.5",
25
+ backLinkIcon: "",
26
+ backLinkIconName: "arrow_back",
27
+ title: "",
28
+ description: "mt-1.5 text-base font-normal text-gray-500",
29
+ headerRight: "",
30
+ closeIcon: "",
31
+ closeIconName: "close",
32
+ body: "space-y-4 px-4 md:px-8",
33
+ divider: "",
34
+ dividerSpacing: "",
35
+ footer: "flex justify-between px-4 md:px-8 py-8 max-md:flex-col max-md:gap-4",
36
+ footerLeft: "flex flex-col md:flex-row space-y-4 md:space-x-4 md:space-y-0 w-full",
37
+ footerRight: "flex flex-col md:flex-row space-y-4 md:space-x-4 md:space-y-0 w-full justify-end",
38
+ footerMobileReverse: "flex flex-col-reverse space-y-reverse group/reversed-footer",
39
+ modal: {
40
+ base: "mx-auto rounded-2xl bg-white",
41
+ variants: {
42
+ width: {
43
+ xs: "md:w-[25rem]",
44
+ sm: "md:w-[31.25rem]",
45
+ md: "md:w-[37.5rem]",
46
+ lg: "md:w-[43.75rem]",
47
+ xl: "md:w-[50rem]",
48
+ "2xl": "md:w-[56.25rem]",
49
+ "3xl": "md:w-[62.5rem]",
50
+ "4xl": "md:w-[68.75rem]",
51
+ "5xl": "md:w-[75rem]",
52
+ },
53
+ inner: {
54
+ true: "!my-[4.5rem]",
55
+ },
56
+ },
57
+ },
58
+ defaultVariants: {
59
+ color: "brand",
60
+ width: "sm",
61
+ inner: false,
62
+ closeIcon: true,
63
+ escToClose: true,
64
+ clickToClose: true,
65
+ noDivider: false,
66
+ mobileBottomAlign: false,
67
+ mobileFooterReverse: false,
68
+ },
69
+ };
@@ -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 UModal = "UModal";
@@ -9,6 +9,7 @@ import UTextarea from "vueless/ui.form-textarea";
9
9
  import URow from "vueless/ui.container-row";
10
10
 
11
11
  export default {
12
+ id: "5070",
12
13
  title: "Containers / Modal",
13
14
  component: UModal,
14
15
  args: {
@@ -49,7 +50,7 @@ const DefaultTemplate = (args) => ({
49
50
  ${args.slotTemplate || ""}
50
51
  </UModal>
51
52
 
52
- <UButton text="show modal" @click="onClick"/>
53
+ <UButton label="show modal" @click="onClick"/>
53
54
  </div>
54
55
  `,
55
56
  methods: {
@@ -59,7 +60,7 @@ const DefaultTemplate = (args) => ({
59
60
  },
60
61
  });
61
62
 
62
- const SizesTemplate = (args, { argTypes }) => ({
63
+ const SizesTemplate = (args, { argTypes } = {}) => ({
63
64
  components: { UModal, UButton, URow, UInput, UTextarea },
64
65
  setup() {
65
66
  return {
@@ -77,7 +78,7 @@ const SizesTemplate = (args, { argTypes }) => ({
77
78
  <URow>
78
79
  <UButton
79
80
  v-for="(size, index) in sizes"
80
- :key="index" :text="size" @click="onClick(size)"
81
+ :key="index" :label="size" @click="onClick(size)"
81
82
  />
82
83
  </URow>
83
84
  </div>
@@ -124,7 +125,7 @@ export const slotHeaderLeft = DefaultTemplate.bind({});
124
125
  slotHeaderLeft.args = {
125
126
  slotTemplate: `
126
127
  <template #header-left>
127
- <UHeader size="lg" text="Large title" />
128
+ <UHeader size="lg" label="Large title" />
128
129
  </template>
129
130
  `,
130
131
  };
@@ -145,7 +146,7 @@ export const slotHeaderRight = DefaultTemplate.bind({});
145
146
  slotHeaderRight.args = {
146
147
  slotTemplate: `
147
148
  <template #header-right>
148
- <UButton size="sm" color="gray" text="some button" />
149
+ <UButton size="sm" color="gray" label="some button" />
149
150
  </template>
150
151
  `,
151
152
  };
@@ -154,7 +155,7 @@ export const slotFooterLeft = DefaultTemplate.bind({});
154
155
  slotFooterLeft.args = {
155
156
  slotTemplate: `
156
157
  <template #footer-left>
157
- <UButton text="Submit" />
158
+ <UButton label="Submit" />
158
159
  </template>
159
160
  `,
160
161
  };
@@ -163,7 +164,7 @@ export const slotFooterRight = DefaultTemplate.bind({});
163
164
  slotFooterRight.args = {
164
165
  slotTemplate: `
165
166
  <template #footer-right>
166
- <UButton text="Back" />
167
+ <UButton label="Back" />
167
168
  </template>
168
169
  `,
169
170
  };