@simsustech/quasar-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.cjs +19 -0
  3. package/.prettierignore +2 -0
  4. package/.prettierrc.json +22 -0
  5. package/CHANGELOG.md +7 -0
  6. package/LICENSE +21 -0
  7. package/StandardComponent.vue +50 -0
  8. package/package.json +81 -0
  9. package/src/shims-vue.d.ts +6 -0
  10. package/src/ui/authentication/ConsentList.vue +89 -0
  11. package/src/ui/authentication/EmailChangeForm.vue +128 -0
  12. package/src/ui/authentication/EmailChangeStepper.vue +153 -0
  13. package/src/ui/authentication/LoginButton.vue +56 -0
  14. package/src/ui/authentication/LoginForm.vue +162 -0
  15. package/src/ui/authentication/OtpInput.vue +30 -0
  16. package/src/ui/authentication/PasswordChangeForm.vue +161 -0
  17. package/src/ui/authentication/PasswordChangeStepper.vue +153 -0
  18. package/src/ui/authentication/README.md +15 -0
  19. package/src/ui/authentication/RegisterForm.vue +218 -0
  20. package/src/ui/authentication/RequestOtpForm.vue +99 -0
  21. package/src/ui/authentication/UserMenuButton.vue +54 -0
  22. package/src/ui/authentication/VerificationSlider.vue +57 -0
  23. package/src/ui/authentication/index.ts +12 -0
  24. package/src/ui/authentication/lang/en-US.ts +94 -0
  25. package/src/ui/authentication/lang/index.ts +124 -0
  26. package/src/ui/authentication/lang/nl.ts +94 -0
  27. package/src/ui/flags/README.md +30 -0
  28. package/src/ui/flags/assets/en-US.svg +26 -0
  29. package/src/ui/flags/assets/nl.svg +8 -0
  30. package/src/ui/flags/index.ts +4 -0
  31. package/src/ui/flags/lang/en-US.ts +135 -0
  32. package/src/ui/flags/lang/index.ts +169 -0
  33. package/src/ui/flags/lang/nl.ts +135 -0
  34. package/src/ui/flags/vue-flags/ad.svg +12 -0
  35. package/src/ui/flags/vue-flags/ae.svg +9 -0
  36. package/src/ui/flags/vue-flags/af.svg +11 -0
  37. package/src/ui/flags/vue-flags/ag.svg +12 -0
  38. package/src/ui/flags/vue-flags/ai.svg +25 -0
  39. package/src/ui/flags/vue-flags/al.svg +7 -0
  40. package/src/ui/flags/vue-flags/am.svg +7 -0
  41. package/src/ui/flags/vue-flags/ao.svg +11 -0
  42. package/src/ui/flags/vue-flags/aq.svg +13 -0
  43. package/src/ui/flags/vue-flags/ar.svg +10 -0
  44. package/src/ui/flags/vue-flags/as.svg +9 -0
  45. package/src/ui/flags/vue-flags/at.svg +9 -0
  46. package/src/ui/flags/vue-flags/au.svg +28 -0
  47. package/src/ui/flags/vue-flags/aw.svg +11 -0
  48. package/src/ui/flags/vue-flags/ax.svg +7 -0
  49. package/src/ui/flags/vue-flags/az.svg +11 -0
  50. package/src/ui/flags/vue-flags/ba.svg +20 -0
  51. package/src/ui/flags/vue-flags/bb.svg +10 -0
  52. package/src/ui/flags/vue-flags/bd.svg +6 -0
  53. package/src/ui/flags/vue-flags/be.svg +7 -0
  54. package/src/ui/flags/vue-flags/bf.svg +8 -0
  55. package/src/ui/flags/vue-flags/bg.svg +8 -0
  56. package/src/ui/flags/vue-flags/bh.svg +6 -0
  57. package/src/ui/flags/vue-flags/bi.svg +20 -0
  58. package/src/ui/flags/vue-flags/bj.svg +7 -0
  59. package/src/ui/flags/vue-flags/bl.svg +14 -0
  60. package/src/ui/flags/vue-flags/bm.svg +43 -0
  61. package/src/ui/flags/vue-flags/bn.svg +16 -0
  62. package/src/ui/flags/vue-flags/bo.svg +7 -0
  63. package/src/ui/flags/vue-flags/bq.svg +9 -0
  64. package/src/ui/flags/vue-flags/br.svg +11 -0
  65. package/src/ui/flags/vue-flags/bs.svg +10 -0
  66. package/src/ui/flags/vue-flags/bt.svg +7 -0
  67. package/src/ui/flags/vue-flags/bv.svg +8 -0
  68. package/src/ui/flags/vue-flags/bw.svg +10 -0
  69. package/src/ui/flags/vue-flags/by.svg +17 -0
  70. package/src/ui/flags/vue-flags/bz.svg +14 -0
  71. package/src/ui/flags/vue-flags/ca.svg +11 -0
  72. package/src/ui/flags/vue-flags/cc.svg +46 -0
  73. package/src/ui/flags/vue-flags/cd.svg +9 -0
  74. package/src/ui/flags/vue-flags/cf.svg +19 -0
  75. package/src/ui/flags/vue-flags/cg.svg +8 -0
  76. package/src/ui/flags/vue-flags/ch.svg +7 -0
  77. package/src/ui/flags/vue-flags/ci.svg +8 -0
  78. package/src/ui/flags/vue-flags/ck.svg +27 -0
  79. package/src/ui/flags/vue-flags/cl.svg +9 -0
  80. package/src/ui/flags/vue-flags/cm.svg +11 -0
  81. package/src/ui/flags/vue-flags/cn.svg +13 -0
  82. package/src/ui/flags/vue-flags/co.svg +8 -0
  83. package/src/ui/flags/vue-flags/cr.svg +11 -0
  84. package/src/ui/flags/vue-flags/cu.svg +14 -0
  85. package/src/ui/flags/vue-flags/cv.svg +23 -0
  86. package/src/ui/flags/vue-flags/cw.svg +11 -0
  87. package/src/ui/flags/vue-flags/cx.svg +17 -0
  88. package/src/ui/flags/vue-flags/cy.svg +8 -0
  89. package/src/ui/flags/vue-flags/cz.svg +8 -0
  90. package/src/ui/flags/vue-flags/de.svg +8 -0
  91. package/src/ui/flags/vue-flags/dj.svg +9 -0
  92. package/src/ui/flags/vue-flags/dk.svg +7 -0
  93. package/src/ui/flags/vue-flags/dm.svg +26 -0
  94. package/src/ui/flags/vue-flags/do.svg +13 -0
  95. package/src/ui/flags/vue-flags/dz.svg +10 -0
  96. package/src/ui/flags/vue-flags/ec.svg +11 -0
  97. package/src/ui/flags/vue-flags/ee.svg +8 -0
  98. package/src/ui/flags/vue-flags/eg.svg +9 -0
  99. package/src/ui/flags/vue-flags/eh.svg +13 -0
  100. package/src/ui/flags/vue-flags/er.svg +9 -0
  101. package/src/ui/flags/vue-flags/es.svg +10 -0
  102. package/src/ui/flags/vue-flags/et.svg +13 -0
  103. package/src/ui/flags/vue-flags/fi.svg +7 -0
  104. package/src/ui/flags/vue-flags/fj.svg +18 -0
  105. package/src/ui/flags/vue-flags/fk.svg +26 -0
  106. package/src/ui/flags/vue-flags/fm.svg +12 -0
  107. package/src/ui/flags/vue-flags/fo.svg +8 -0
  108. package/src/ui/flags/vue-flags/fr.svg +8 -0
  109. package/src/ui/flags/vue-flags/ga.svg +8 -0
  110. package/src/ui/flags/vue-flags/gb.svg +31 -0
  111. package/src/ui/flags/vue-flags/gd.svg +26 -0
  112. package/src/ui/flags/vue-flags/ge.svg +13 -0
  113. package/src/ui/flags/vue-flags/gf.svg +8 -0
  114. package/src/ui/flags/vue-flags/gg.svg +8 -0
  115. package/src/ui/flags/vue-flags/gh.svg +9 -0
  116. package/src/ui/flags/vue-flags/gi.svg +11 -0
  117. package/src/ui/flags/vue-flags/gl.svg +11 -0
  118. package/src/ui/flags/vue-flags/gm.svg +9 -0
  119. package/src/ui/flags/vue-flags/gn.svg +8 -0
  120. package/src/ui/flags/vue-flags/gp.svg +8 -0
  121. package/src/ui/flags/vue-flags/gq.svg +12 -0
  122. package/src/ui/flags/vue-flags/gr.svg +17 -0
  123. package/src/ui/flags/vue-flags/gs.svg +159 -0
  124. package/src/ui/flags/vue-flags/gt.svg +12 -0
  125. package/src/ui/flags/vue-flags/gu.svg +13 -0
  126. package/src/ui/flags/vue-flags/gw.svg +9 -0
  127. package/src/ui/flags/vue-flags/gy.svg +14 -0
  128. package/src/ui/flags/vue-flags/hk.svg +13 -0
  129. package/src/ui/flags/vue-flags/hm.svg +28 -0
  130. package/src/ui/flags/vue-flags/hn.svg +15 -0
  131. package/src/ui/flags/vue-flags/hr.svg +31 -0
  132. package/src/ui/flags/vue-flags/ht.svg +13 -0
  133. package/src/ui/flags/vue-flags/hu.svg +8 -0
  134. package/src/ui/flags/vue-flags/id.svg +7 -0
  135. package/src/ui/flags/vue-flags/ie.svg +8 -0
  136. package/src/ui/flags/vue-flags/il.svg +11 -0
  137. package/src/ui/flags/vue-flags/im.svg +7 -0
  138. package/src/ui/flags/vue-flags/in.svg +11 -0
  139. package/src/ui/flags/vue-flags/io.svg +60 -0
  140. package/src/ui/flags/vue-flags/iq.svg +13 -0
  141. package/src/ui/flags/vue-flags/ir.svg +37 -0
  142. package/src/ui/flags/vue-flags/is.svg +8 -0
  143. package/src/ui/flags/vue-flags/it.svg +8 -0
  144. package/src/ui/flags/vue-flags/je.svg +12 -0
  145. package/src/ui/flags/vue-flags/jm.svg +10 -0
  146. package/src/ui/flags/vue-flags/jo.svg +10 -0
  147. package/src/ui/flags/vue-flags/jp.svg +7 -0
  148. package/src/ui/flags/vue-flags/ke.svg +19 -0
  149. package/src/ui/flags/vue-flags/kg.svg +17 -0
  150. package/src/ui/flags/vue-flags/kh.svg +11 -0
  151. package/src/ui/flags/vue-flags/ki.svg +21 -0
  152. package/src/ui/flags/vue-flags/km.svg +17 -0
  153. package/src/ui/flags/vue-flags/kn.svg +13 -0
  154. package/src/ui/flags/vue-flags/kp.svg +14 -0
  155. package/src/ui/flags/vue-flags/kr.svg +26 -0
  156. package/src/ui/flags/vue-flags/kw.svg +9 -0
  157. package/src/ui/flags/vue-flags/ky.svg +25 -0
  158. package/src/ui/flags/vue-flags/kz.svg +9 -0
  159. package/src/ui/flags/vue-flags/la.svg +11 -0
  160. package/src/ui/flags/vue-flags/lb.svg +11 -0
  161. package/src/ui/flags/vue-flags/lc.svg +9 -0
  162. package/src/ui/flags/vue-flags/li.svg +8 -0
  163. package/src/ui/flags/vue-flags/lk.svg +19 -0
  164. package/src/ui/flags/vue-flags/lr.svg +16 -0
  165. package/src/ui/flags/vue-flags/ls.svg +9 -0
  166. package/src/ui/flags/vue-flags/lt.svg +8 -0
  167. package/src/ui/flags/vue-flags/lu.svg +8 -0
  168. package/src/ui/flags/vue-flags/lv.svg +10 -0
  169. package/src/ui/flags/vue-flags/ly.svg +12 -0
  170. package/src/ui/flags/vue-flags/ma.svg +7 -0
  171. package/src/ui/flags/vue-flags/mc.svg +7 -0
  172. package/src/ui/flags/vue-flags/md.svg +11 -0
  173. package/src/ui/flags/vue-flags/me.svg +13 -0
  174. package/src/ui/flags/vue-flags/mf.svg +8 -0
  175. package/src/ui/flags/vue-flags/mg.svg +8 -0
  176. package/src/ui/flags/vue-flags/mh.svg +11 -0
  177. package/src/ui/flags/vue-flags/mk.svg +18 -0
  178. package/src/ui/flags/vue-flags/ml.svg +8 -0
  179. package/src/ui/flags/vue-flags/mm.svg +9 -0
  180. package/src/ui/flags/vue-flags/mn.svg +19 -0
  181. package/src/ui/flags/vue-flags/mo.svg +18 -0
  182. package/src/ui/flags/vue-flags/mp.svg +10 -0
  183. package/src/ui/flags/vue-flags/mq.svg +13 -0
  184. package/src/ui/flags/vue-flags/mr.svg +10 -0
  185. package/src/ui/flags/vue-flags/ms.svg +23 -0
  186. package/src/ui/flags/vue-flags/mt.svg +8 -0
  187. package/src/ui/flags/vue-flags/mu.svg +9 -0
  188. package/src/ui/flags/vue-flags/mv.svg +8 -0
  189. package/src/ui/flags/vue-flags/mw.svg +9 -0
  190. package/src/ui/flags/vue-flags/mx.svg +10 -0
  191. package/src/ui/flags/vue-flags/my.svg +17 -0
  192. package/src/ui/flags/vue-flags/mz.svg +13 -0
  193. package/src/ui/flags/vue-flags/na.svg +10 -0
  194. package/src/ui/flags/vue-flags/nc.svg +8 -0
  195. package/src/ui/flags/vue-flags/ne.svg +9 -0
  196. package/src/ui/flags/vue-flags/nf.svg +11 -0
  197. package/src/ui/flags/vue-flags/ng.svg +10 -0
  198. package/src/ui/flags/vue-flags/ni.svg +14 -0
  199. package/src/ui/flags/vue-flags/nl.svg +8 -0
  200. package/src/ui/flags/vue-flags/no.svg +8 -0
  201. package/src/ui/flags/vue-flags/np.svg +13 -0
  202. package/src/ui/flags/vue-flags/nr.svg +8 -0
  203. package/src/ui/flags/vue-flags/nu.svg +48 -0
  204. package/src/ui/flags/vue-flags/nz.svg +26 -0
  205. package/src/ui/flags/vue-flags/om.svg +14 -0
  206. package/src/ui/flags/vue-flags/pa.svg +10 -0
  207. package/src/ui/flags/vue-flags/pe.svg +10 -0
  208. package/src/ui/flags/vue-flags/pf.svg +17 -0
  209. package/src/ui/flags/vue-flags/pg.svg +15 -0
  210. package/src/ui/flags/vue-flags/ph.svg +16 -0
  211. package/src/ui/flags/vue-flags/pk.svg +14 -0
  212. package/src/ui/flags/vue-flags/pl.svg +10 -0
  213. package/src/ui/flags/vue-flags/pm.svg +8 -0
  214. package/src/ui/flags/vue-flags/pn.svg +24 -0
  215. package/src/ui/flags/vue-flags/pr.svg +13 -0
  216. package/src/ui/flags/vue-flags/ps.svg +9 -0
  217. package/src/ui/flags/vue-flags/pt.svg +10 -0
  218. package/src/ui/flags/vue-flags/pw.svg +7 -0
  219. package/src/ui/flags/vue-flags/py.svg +10 -0
  220. package/src/ui/flags/vue-flags/qa.svg +7 -0
  221. package/src/ui/flags/vue-flags/re.svg +8 -0
  222. package/src/ui/flags/vue-flags/ro.svg +8 -0
  223. package/src/ui/flags/vue-flags/rs.svg +14 -0
  224. package/src/ui/flags/vue-flags/ru.svg +9 -0
  225. package/src/ui/flags/vue-flags/rw.svg +9 -0
  226. package/src/ui/flags/vue-flags/sa.svg +14 -0
  227. package/src/ui/flags/vue-flags/sb.svg +15 -0
  228. package/src/ui/flags/vue-flags/sc.svg +10 -0
  229. package/src/ui/flags/vue-flags/sd.svg +9 -0
  230. package/src/ui/flags/vue-flags/se.svg +7 -0
  231. package/src/ui/flags/vue-flags/sg.svg +15 -0
  232. package/src/ui/flags/vue-flags/sh.svg +31 -0
  233. package/src/ui/flags/vue-flags/si.svg +11 -0
  234. package/src/ui/flags/vue-flags/sj.svg +8 -0
  235. package/src/ui/flags/vue-flags/sk.svg +12 -0
  236. package/src/ui/flags/vue-flags/sl.svg +8 -0
  237. package/src/ui/flags/vue-flags/sm.svg +12 -0
  238. package/src/ui/flags/vue-flags/sn.svg +11 -0
  239. package/src/ui/flags/vue-flags/so.svg +7 -0
  240. package/src/ui/flags/vue-flags/sr.svg +12 -0
  241. package/src/ui/flags/vue-flags/ss.svg +11 -0
  242. package/src/ui/flags/vue-flags/st.svg +13 -0
  243. package/src/ui/flags/vue-flags/sv.svg +13 -0
  244. package/src/ui/flags/vue-flags/sx.svg +15 -0
  245. package/src/ui/flags/vue-flags/sy.svg +12 -0
  246. package/src/ui/flags/vue-flags/sz.svg +27 -0
  247. package/src/ui/flags/vue-flags/tc.svg +25 -0
  248. package/src/ui/flags/vue-flags/td.svg +8 -0
  249. package/src/ui/flags/vue-flags/tf.svg +9 -0
  250. package/src/ui/flags/vue-flags/tg.svg +13 -0
  251. package/src/ui/flags/vue-flags/th.svg +11 -0
  252. package/src/ui/flags/vue-flags/tj.svg +18 -0
  253. package/src/ui/flags/vue-flags/tk.svg +16 -0
  254. package/src/ui/flags/vue-flags/tl.svg +9 -0
  255. package/src/ui/flags/vue-flags/tm.svg +35 -0
  256. package/src/ui/flags/vue-flags/tn.svg +11 -0
  257. package/src/ui/flags/vue-flags/to.svg +8 -0
  258. package/src/ui/flags/vue-flags/tr.svg +10 -0
  259. package/src/ui/flags/vue-flags/tt.svg +8 -0
  260. package/src/ui/flags/vue-flags/tv.svg +9 -0
  261. package/src/ui/flags/vue-flags/tw.svg +10 -0
  262. package/src/ui/flags/vue-flags/tz.svg +9 -0
  263. package/src/ui/flags/vue-flags/ua.svg +7 -0
  264. package/src/ui/flags/vue-flags/ug.svg +12 -0
  265. package/src/ui/flags/vue-flags/um.svg +26 -0
  266. package/src/ui/flags/vue-flags/unknown.svg +7 -0
  267. package/src/ui/flags/vue-flags/us.svg +26 -0
  268. package/src/ui/flags/vue-flags/uy.svg +14 -0
  269. package/src/ui/flags/vue-flags/uz.svg +27 -0
  270. package/src/ui/flags/vue-flags/va.svg +9 -0
  271. package/src/ui/flags/vue-flags/vc.svg +13 -0
  272. package/src/ui/flags/vue-flags/ve.svg +18 -0
  273. package/src/ui/flags/vue-flags/vg.svg +34 -0
  274. package/src/ui/flags/vue-flags/vi.svg +20 -0
  275. package/src/ui/flags/vue-flags/vn.svg +7 -0
  276. package/src/ui/flags/vue-flags/vu.svg +15 -0
  277. package/src/ui/flags/vue-flags/wf.svg +8 -0
  278. package/src/ui/flags/vue-flags/ws.svg +14 -0
  279. package/src/ui/flags/vue-flags/ye.svg +8 -0
  280. package/src/ui/flags/vue-flags/yt.svg +8 -0
  281. package/src/ui/flags/vue-flags/za.svg +11 -0
  282. package/src/ui/flags/vue-flags/zm.svg +10 -0
  283. package/src/ui/flags/vue-flags/zw.svg +20 -0
  284. package/src/ui/general/QStyledCard.vue +77 -0
  285. package/src/ui/general/QStyledLayout.vue +108 -0
  286. package/src/ui/general/QSubmitButton.vue +70 -0
  287. package/src/ui/general/index.ts +2 -0
  288. package/src/ui/general/lang/en-US.ts +10 -0
  289. package/src/ui/general/lang/index.ts +44 -0
  290. package/src/ui/general/lang/nl.ts +10 -0
  291. package/src/ui/icons/README.md +3 -0
  292. package/src/ui/icons/assets/microsoft.svg +10 -0
  293. package/src/ui/icons/icons.ts +5 -0
  294. package/src/ui/icons/index.ts +3 -0
  295. package/src/ui/index.ts +2 -0
  296. package/src/vite-plugin.ts +30 -0
  297. package/tsconfig.build.plugin.json +7 -0
  298. package/tsconfig.json +23 -0
  299. package/tsconfig.node.json +10 -0
  300. package/tsconfig.types.json +17 -0
  301. package/vite.config.ts +136 -0
@@ -0,0 +1,44 @@
1
+ export interface Language {
2
+ isoName: string
3
+ submit: string
4
+ next: string
5
+ back: string
6
+ }
7
+
8
+ import type { Ref } from 'vue'
9
+ import { ref } from 'vue'
10
+ import en from './en-US'
11
+ export const lang = ref(en)
12
+
13
+ const locales = import.meta.glob<{ default: Language }>([
14
+ './*.ts',
15
+ '!./index.ts'
16
+ ])
17
+
18
+ export const defineLang = (lang: Language) => {
19
+ return lang
20
+ }
21
+
22
+ export const useLang = () => {
23
+ return lang as Ref<Language>
24
+ }
25
+
26
+ let loadingLanguage = false
27
+ export const loadLang = async (isoName: string) => {
28
+ if (!loadingLanguage) {
29
+ loadingLanguage = true
30
+ try {
31
+ const data = (await locales[`./${isoName}.ts`]()).default
32
+
33
+ if (data) {
34
+ lang.value = data
35
+ }
36
+ } catch (e) {
37
+ if (import.meta.env.DEBUG) console.error(e)
38
+ throw new Error(
39
+ `[quasar-components] Failed to load ${isoName} language file.`
40
+ )
41
+ }
42
+ loadingLanguage = false
43
+ }
44
+ }
@@ -0,0 +1,10 @@
1
+ import type { Language } from '../lang'
2
+
3
+ const lang: Language = {
4
+ isoName: 'nl',
5
+ submit: 'Versturen',
6
+ next: 'Volgende',
7
+ back: 'Vorige'
8
+ }
9
+
10
+ export default lang
@@ -0,0 +1,3 @@
1
+ # Credits
2
+
3
+ Thanks to [SuperTinyIcons](https://github.com/edent/SuperTinyIcons) for providing the SVG icons.
@@ -0,0 +1,10 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg"
2
+ aria-label="Microsoft" role="img"
3
+ viewBox="0 0 512 512"><rect
4
+ width="512" height="512"
5
+ rx="15%"
6
+ fill="#fff"/><path
7
+ d="M75 75v171h171v-171z" fill="#f25022"/><path
8
+ d="M266 75v171h171v-171z" fill="#7fba00"/><path
9
+ d="M75 266v171h171v-171z" fill="#00a4ef"/><path
10
+ d="M266 266v171h171v-171z" fill="#ffb900"/></svg>
@@ -0,0 +1,5 @@
1
+ export default {
2
+ microsoft: {
3
+ name: 'Microsoft'
4
+ }
5
+ }
@@ -0,0 +1,3 @@
1
+ // @ts-nocheck
2
+ import microsoft from 'microsoft.icon'
3
+ export { microsoft }
@@ -0,0 +1,2 @@
1
+ export * from './authentication/index'
2
+ export * from './general/index'
@@ -0,0 +1,30 @@
1
+ import type { Plugin } from 'vite'
2
+
3
+ export default async function (): Promise<Plugin> {
4
+ return {
5
+ name: '@simsustech/quasar-components-plugin',
6
+ config(config, { mode }) {
7
+ if (mode === 'development') {
8
+ return {
9
+ resolve: {
10
+ alias: [
11
+ {
12
+ find: '@simsustech/quasar-components/flags',
13
+ replacement: new URL(
14
+ '../src/ui/flags/index.ts',
15
+ import.meta.url
16
+ ).pathname
17
+ },
18
+ {
19
+ find: '@simsustech/quasar-components',
20
+ replacement: new URL('../src/ui/index.ts', import.meta.url)
21
+ .pathname
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ }
27
+ return {}
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "compilerOptions": {
3
+ "rootDir": "src/"
4
+ },
5
+ "extends": "./tsconfig.node.json",
6
+ "include": ["./src/vite-plugin.ts"]
7
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "useDefineForClassFields": true,
5
+ "module": "esnext",
6
+ "moduleResolution": "node",
7
+ "strict": true,
8
+ "jsx": "preserve",
9
+ "sourceMap": true,
10
+ "resolveJsonModule": true,
11
+ "esModuleInterop": true,
12
+ "declaration": true,
13
+ "lib": ["esnext", "dom"],
14
+ "types": ["vite/client"],
15
+ "outDir": "./dist"
16
+ },
17
+ "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
18
+ "references": [
19
+ {
20
+ "path": "./tsconfig.node.json"
21
+ }
22
+ ]
23
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "esnext",
5
+ "moduleResolution": "node",
6
+ "outDir": "./dist",
7
+ "declaration": true
8
+ },
9
+ "include": ["vite.config.ts"]
10
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "esnext",
4
+ "module": "esnext",
5
+ "lib": ["esnext", "DOM"],
6
+ "strict": true,
7
+ "skipLibCheck": true,
8
+ "moduleResolution": "node",
9
+ "declaration": true,
10
+ "outDir": "dist",
11
+ "emitDeclarationOnly": true,
12
+ "declarationDir": "./dist/types",
13
+ "isolatedModules": true,
14
+ "types": ["vite/client"]
15
+ },
16
+ "include": ["./src"]
17
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,136 @@
1
+ import { defineConfig } from 'vite'
2
+ import vue from '@vitejs/plugin-vue'
3
+ import Components from 'unplugin-vue-components/vite'
4
+ import { QuasarResolver } from 'unplugin-vue-components/resolvers'
5
+
6
+ const FlagIcon = (locale) => `
7
+ import { computed, ref, watch, h } from 'vue'
8
+ import { QuasarLanguageCodes, useQuasar, QIcon } from 'quasar'
9
+ import { useLang, loadLang } from '${
10
+ new URL(`./src/ui/flags/lang`, import.meta.url).pathname
11
+ }'
12
+ import icon from '${
13
+ new URL(`./src/ui/flags/assets/${locale}.svg`, import.meta.url).pathname
14
+ }'
15
+ export default {
16
+ setup(props, context) {
17
+ const $q = useQuasar()
18
+ const lang = useLang()
19
+ if (lang.value.isoName !== $q.lang.isoName) loadLang($q.lang.isoName)
20
+ watch($q.lang, (val) => {
21
+ loadLang($q.lang.isoName)
22
+ })
23
+
24
+ const country = computed(
25
+ () => lang.value.countries['${locale}']
26
+ )
27
+ // @ts-ignore
28
+ const language = computed(() => lang.value.languages['${locale}'])
29
+ const variables = ref({
30
+ country,
31
+ language
32
+ // header: lang.value.some.nested.prop
33
+ })
34
+ const functions = ref({
35
+ // submit
36
+ })
37
+
38
+ context.expose({
39
+ variables,
40
+ functions
41
+ })
42
+
43
+ // return the render function
44
+ return () => h(QIcon, { name: \`img:\${icon}\` })
45
+ }}
46
+ `
47
+
48
+ const Icon = (icon) => `
49
+ import { computed, ref, watch, h } from 'vue'
50
+ import { QuasarLanguageCodes, useQuasar, QIcon } from 'quasar'
51
+ import icon from '${
52
+ new URL(`./src/ui/icons/assets/${icon}.svg`, import.meta.url).pathname
53
+ }'
54
+ import icons from '${
55
+ new URL(`./src/ui/icons/icons.ts`, import.meta.url).pathname
56
+ }'
57
+ export default {
58
+ setup(props, context) {
59
+ const $q = useQuasar()
60
+
61
+ const variables = ref(icons['${icon}'])
62
+
63
+ const functions = ref({
64
+ // submit
65
+ })
66
+
67
+ context.expose({
68
+ variables,
69
+ functions
70
+ })
71
+
72
+ // return the render function
73
+ return () => h(QIcon, { name: \`img:\${icon}\` })
74
+ }}
75
+ `
76
+
77
+ export default defineConfig(async ({ command, mode }) => ({
78
+ plugins: [
79
+ {
80
+ name: 'module-tranform-plugin',
81
+ enforce: 'pre',
82
+ resolveId: (id) => {
83
+ if (id.includes('.flag')) return id
84
+ else if (id.includes('.icon')) return id
85
+ },
86
+ load: (id) => {
87
+ if (id.includes('.flag')) {
88
+ const locale = id.slice(0, -5)
89
+ const flag = FlagIcon(locale)
90
+ return flag
91
+ } else if (id.includes('.icon')) {
92
+ const iconId = id.slice(0, -5)
93
+ const icon = Icon(iconId)
94
+ return icon
95
+ }
96
+ }
97
+ // resolveId: (source) => {
98
+ // if (source.includes('FlagIcon.vue')) {
99
+ // const split = source.split('FlagIcon.vue')
100
+ // split[0].slice(2)
101
+ // return { id: './FlagIcon.vue' }
102
+ // }
103
+ // }
104
+ },
105
+ Components({
106
+ resolvers: [QuasarResolver()]
107
+ }),
108
+ vue()
109
+ ],
110
+ build: {
111
+ // minify: false,
112
+ lib: {
113
+ // UMD not supported for code-splitting builds
114
+ fileName: 'ui',
115
+ formats: ['es'],
116
+ entry: './src/ui/index.ts'
117
+ },
118
+ minify: false,
119
+ emptyOutDir: true,
120
+ rollupOptions: {
121
+ input: {
122
+ authentication: new URL(
123
+ './src/ui/authentication/index.ts',
124
+ import.meta.url
125
+ ).pathname,
126
+ general: new URL('./src/ui/general/index.ts', import.meta.url).pathname,
127
+ flags: new URL('./src/ui/flags/index.ts', import.meta.url).pathname,
128
+ icons: new URL('./src/ui/icons/index.ts', import.meta.url).pathname
129
+ },
130
+ output: {
131
+ entryFileNames: '[name].js'
132
+ },
133
+ external: ['vue', 'vue-router', 'quasar']
134
+ }
135
+ }
136
+ }))