@dynect/base 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (871) hide show
  1. package/package.json +1 -1
  2. package/src/runtime/assets/svg/app/asset.svg +8 -0
  3. package/src/runtime/assets/svg/app/crm.svg +8 -0
  4. package/src/runtime/assets/svg/app/dark/asset.svg +6 -0
  5. package/src/runtime/assets/svg/app/dark/crm.svg +6 -0
  6. package/src/runtime/assets/svg/app/dark/erp.svg +5 -0
  7. package/src/runtime/assets/svg/app/dark/hrms.svg +8 -0
  8. package/src/runtime/assets/svg/app/dark/investment.svg +10 -0
  9. package/src/runtime/assets/svg/app/dark/pos.svg +5 -0
  10. package/src/runtime/assets/svg/app/dark/project.svg +8 -0
  11. package/src/runtime/assets/svg/app/dark/retail.svg +9 -0
  12. package/src/runtime/assets/svg/app/erp.svg +5 -0
  13. package/src/runtime/assets/svg/app/hrms.svg +10 -0
  14. package/src/runtime/assets/svg/app/investment.svg +12 -0
  15. package/src/runtime/assets/svg/app/outline/asset.svg +5 -0
  16. package/src/runtime/assets/svg/app/outline/crm.svg +6 -0
  17. package/src/runtime/assets/svg/app/outline/erp.svg +5 -0
  18. package/src/runtime/assets/svg/app/outline/hrms.svg +7 -0
  19. package/src/runtime/assets/svg/app/outline/investment.svg +9 -0
  20. package/src/runtime/assets/svg/app/outline/pos.svg +5 -0
  21. package/src/runtime/assets/svg/app/outline/project.svg +8 -0
  22. package/src/runtime/assets/svg/app/outline/retail.svg +9 -0
  23. package/src/runtime/assets/svg/app/pos.svg +7 -0
  24. package/src/runtime/assets/svg/app/project.svg +10 -0
  25. package/src/runtime/assets/svg/app/retail.svg +11 -0
  26. package/src/runtime/assets/svg/flags/ad.svg +150 -0
  27. package/src/runtime/assets/svg/flags/ae.svg +6 -0
  28. package/src/runtime/assets/svg/flags/af.svg +81 -0
  29. package/src/runtime/assets/svg/flags/ag.svg +14 -0
  30. package/src/runtime/assets/svg/flags/ai.svg +29 -0
  31. package/src/runtime/assets/svg/flags/al.svg +5 -0
  32. package/src/runtime/assets/svg/flags/am.svg +5 -0
  33. package/src/runtime/assets/svg/flags/ao.svg +13 -0
  34. package/src/runtime/assets/svg/flags/aq.svg +5 -0
  35. package/src/runtime/assets/svg/flags/ar.svg +32 -0
  36. package/src/runtime/assets/svg/flags/arab.svg +109 -0
  37. package/src/runtime/assets/svg/flags/as.svg +72 -0
  38. package/src/runtime/assets/svg/flags/asean.svg +13 -0
  39. package/src/runtime/assets/svg/flags/at.svg +4 -0
  40. package/src/runtime/assets/svg/flags/au.svg +8 -0
  41. package/src/runtime/assets/svg/flags/aw.svg +186 -0
  42. package/src/runtime/assets/svg/flags/ax.svg +18 -0
  43. package/src/runtime/assets/svg/flags/az.svg +8 -0
  44. package/src/runtime/assets/svg/flags/ba.svg +12 -0
  45. package/src/runtime/assets/svg/flags/bb.svg +6 -0
  46. package/src/runtime/assets/svg/flags/bd.svg +4 -0
  47. package/src/runtime/assets/svg/flags/be.svg +7 -0
  48. package/src/runtime/assets/svg/flags/bf.svg +7 -0
  49. package/src/runtime/assets/svg/flags/bg.svg +5 -0
  50. package/src/runtime/assets/svg/flags/bh.svg +4 -0
  51. package/src/runtime/assets/svg/flags/bi.svg +15 -0
  52. package/src/runtime/assets/svg/flags/bj.svg +14 -0
  53. package/src/runtime/assets/svg/flags/bl.svg +5 -0
  54. package/src/runtime/assets/svg/flags/bm.svg +97 -0
  55. package/src/runtime/assets/svg/flags/bn.svg +36 -0
  56. package/src/runtime/assets/svg/flags/bo.svg +673 -0
  57. package/src/runtime/assets/svg/flags/bq.svg +5 -0
  58. package/src/runtime/assets/svg/flags/br.svg +45 -0
  59. package/src/runtime/assets/svg/flags/bs.svg +13 -0
  60. package/src/runtime/assets/svg/flags/bt.svg +89 -0
  61. package/src/runtime/assets/svg/flags/bv.svg +13 -0
  62. package/src/runtime/assets/svg/flags/bw.svg +7 -0
  63. package/src/runtime/assets/svg/flags/by.svg +18 -0
  64. package/src/runtime/assets/svg/flags/bz.svg +145 -0
  65. package/src/runtime/assets/svg/flags/ca.svg +4 -0
  66. package/src/runtime/assets/svg/flags/cc.svg +19 -0
  67. package/src/runtime/assets/svg/flags/cd.svg +5 -0
  68. package/src/runtime/assets/svg/flags/cefta.svg +13 -0
  69. package/src/runtime/assets/svg/flags/cf.svg +15 -0
  70. package/src/runtime/assets/svg/flags/cg.svg +12 -0
  71. package/src/runtime/assets/svg/flags/ch.svg +9 -0
  72. package/src/runtime/assets/svg/flags/ci.svg +7 -0
  73. package/src/runtime/assets/svg/flags/ck.svg +9 -0
  74. package/src/runtime/assets/svg/flags/cl.svg +13 -0
  75. package/src/runtime/assets/svg/flags/cm.svg +15 -0
  76. package/src/runtime/assets/svg/flags/cn.svg +11 -0
  77. package/src/runtime/assets/svg/flags/co.svg +7 -0
  78. package/src/runtime/assets/svg/flags/cp.svg +7 -0
  79. package/src/runtime/assets/svg/flags/cr.svg +7 -0
  80. package/src/runtime/assets/svg/flags/cu.svg +13 -0
  81. package/src/runtime/assets/svg/flags/cv.svg +13 -0
  82. package/src/runtime/assets/svg/flags/cw.svg +14 -0
  83. package/src/runtime/assets/svg/flags/cx.svg +15 -0
  84. package/src/runtime/assets/svg/flags/cy.svg +6 -0
  85. package/src/runtime/assets/svg/flags/cz.svg +5 -0
  86. package/src/runtime/assets/svg/flags/de.svg +5 -0
  87. package/src/runtime/assets/svg/flags/dg.svg +130 -0
  88. package/src/runtime/assets/svg/flags/dj.svg +13 -0
  89. package/src/runtime/assets/svg/flags/dk.svg +5 -0
  90. package/src/runtime/assets/svg/flags/dm.svg +152 -0
  91. package/src/runtime/assets/svg/flags/do.svg +121 -0
  92. package/src/runtime/assets/svg/flags/dz.svg +5 -0
  93. package/src/runtime/assets/svg/flags/eac.svg +48 -0
  94. package/src/runtime/assets/svg/flags/ec.svg +138 -0
  95. package/src/runtime/assets/svg/flags/ee.svg +5 -0
  96. package/src/runtime/assets/svg/flags/eg.svg +38 -0
  97. package/src/runtime/assets/svg/flags/eh.svg +16 -0
  98. package/src/runtime/assets/svg/flags/er.svg +8 -0
  99. package/src/runtime/assets/svg/flags/es-ct.svg +4 -0
  100. package/src/runtime/assets/svg/flags/es-ga.svg +187 -0
  101. package/src/runtime/assets/svg/flags/es-pv.svg +5 -0
  102. package/src/runtime/assets/svg/flags/es.svg +544 -0
  103. package/src/runtime/assets/svg/flags/et.svg +14 -0
  104. package/src/runtime/assets/svg/flags/eu.svg +28 -0
  105. package/src/runtime/assets/svg/flags/fi.svg +5 -0
  106. package/src/runtime/assets/svg/flags/fj.svg +120 -0
  107. package/src/runtime/assets/svg/flags/fk.svg +90 -0
  108. package/src/runtime/assets/svg/flags/fm.svg +11 -0
  109. package/src/runtime/assets/svg/flags/fo.svg +12 -0
  110. package/src/runtime/assets/svg/flags/fr.svg +5 -0
  111. package/src/runtime/assets/svg/flags/ga.svg +7 -0
  112. package/src/runtime/assets/svg/flags/gb-eng.svg +5 -0
  113. package/src/runtime/assets/svg/flags/gb-nir.svg +132 -0
  114. package/src/runtime/assets/svg/flags/gb-sct.svg +4 -0
  115. package/src/runtime/assets/svg/flags/gb-wls.svg +9 -0
  116. package/src/runtime/assets/svg/flags/gb.svg +7 -0
  117. package/src/runtime/assets/svg/flags/gd.svg +27 -0
  118. package/src/runtime/assets/svg/flags/ge.svg +6 -0
  119. package/src/runtime/assets/svg/flags/gf.svg +5 -0
  120. package/src/runtime/assets/svg/flags/gg.svg +9 -0
  121. package/src/runtime/assets/svg/flags/gh.svg +6 -0
  122. package/src/runtime/assets/svg/flags/gi.svg +32 -0
  123. package/src/runtime/assets/svg/flags/gl.svg +4 -0
  124. package/src/runtime/assets/svg/flags/gm.svg +14 -0
  125. package/src/runtime/assets/svg/flags/gn.svg +7 -0
  126. package/src/runtime/assets/svg/flags/gp.svg +5 -0
  127. package/src/runtime/assets/svg/flags/gq.svg +23 -0
  128. package/src/runtime/assets/svg/flags/gr.svg +16 -0
  129. package/src/runtime/assets/svg/flags/gs.svg +133 -0
  130. package/src/runtime/assets/svg/flags/gt.svg +204 -0
  131. package/src/runtime/assets/svg/flags/gu.svg +19 -0
  132. package/src/runtime/assets/svg/flags/gw.svg +13 -0
  133. package/src/runtime/assets/svg/flags/gy.svg +9 -0
  134. package/src/runtime/assets/svg/flags/hk.svg +8 -0
  135. package/src/runtime/assets/svg/flags/hm.svg +8 -0
  136. package/src/runtime/assets/svg/flags/hn.svg +18 -0
  137. package/src/runtime/assets/svg/flags/hr.svg +58 -0
  138. package/src/runtime/assets/svg/flags/ht.svg +116 -0
  139. package/src/runtime/assets/svg/flags/hu.svg +7 -0
  140. package/src/runtime/assets/svg/flags/ic.svg +7 -0
  141. package/src/runtime/assets/svg/flags/id.svg +4 -0
  142. package/src/runtime/assets/svg/flags/ie.svg +7 -0
  143. package/src/runtime/assets/svg/flags/il.svg +14 -0
  144. package/src/runtime/assets/svg/flags/im.svg +36 -0
  145. package/src/runtime/assets/svg/flags/in.svg +25 -0
  146. package/src/runtime/assets/svg/flags/io.svg +130 -0
  147. package/src/runtime/assets/svg/flags/iq.svg +10 -0
  148. package/src/runtime/assets/svg/flags/ir.svg +219 -0
  149. package/src/runtime/assets/svg/flags/is.svg +12 -0
  150. package/src/runtime/assets/svg/flags/it.svg +7 -0
  151. package/src/runtime/assets/svg/flags/je.svg +62 -0
  152. package/src/runtime/assets/svg/flags/jm.svg +8 -0
  153. package/src/runtime/assets/svg/flags/jo.svg +16 -0
  154. package/src/runtime/assets/svg/flags/jp.svg +11 -0
  155. package/src/runtime/assets/svg/flags/ke.svg +23 -0
  156. package/src/runtime/assets/svg/flags/kg.svg +4 -0
  157. package/src/runtime/assets/svg/flags/kh.svg +61 -0
  158. package/src/runtime/assets/svg/flags/ki.svg +36 -0
  159. package/src/runtime/assets/svg/flags/km.svg +16 -0
  160. package/src/runtime/assets/svg/flags/kn.svg +14 -0
  161. package/src/runtime/assets/svg/flags/kp.svg +15 -0
  162. package/src/runtime/assets/svg/flags/kr.svg +24 -0
  163. package/src/runtime/assets/svg/flags/kw.svg +13 -0
  164. package/src/runtime/assets/svg/flags/ky.svg +103 -0
  165. package/src/runtime/assets/svg/flags/kz.svg +36 -0
  166. package/src/runtime/assets/svg/flags/la.svg +12 -0
  167. package/src/runtime/assets/svg/flags/lb.svg +15 -0
  168. package/src/runtime/assets/svg/flags/lc.svg +8 -0
  169. package/src/runtime/assets/svg/flags/li.svg +43 -0
  170. package/src/runtime/assets/svg/flags/lk.svg +22 -0
  171. package/src/runtime/assets/svg/flags/lr.svg +14 -0
  172. package/src/runtime/assets/svg/flags/ls.svg +8 -0
  173. package/src/runtime/assets/svg/flags/lt.svg +7 -0
  174. package/src/runtime/assets/svg/flags/lu.svg +5 -0
  175. package/src/runtime/assets/svg/flags/lv.svg +6 -0
  176. package/src/runtime/assets/svg/flags/ly.svg +13 -0
  177. package/src/runtime/assets/svg/flags/ma.svg +4 -0
  178. package/src/runtime/assets/svg/flags/mc.svg +6 -0
  179. package/src/runtime/assets/svg/flags/md.svg +70 -0
  180. package/src/runtime/assets/svg/flags/me.svg +116 -0
  181. package/src/runtime/assets/svg/flags/mf.svg +5 -0
  182. package/src/runtime/assets/svg/flags/mg.svg +7 -0
  183. package/src/runtime/assets/svg/flags/mh.svg +7 -0
  184. package/src/runtime/assets/svg/flags/mk.svg +5 -0
  185. package/src/runtime/assets/svg/flags/ml.svg +7 -0
  186. package/src/runtime/assets/svg/flags/mm.svg +12 -0
  187. package/src/runtime/assets/svg/flags/mn.svg +14 -0
  188. package/src/runtime/assets/svg/flags/mo.svg +9 -0
  189. package/src/runtime/assets/svg/flags/mp.svg +86 -0
  190. package/src/runtime/assets/svg/flags/mq.svg +5 -0
  191. package/src/runtime/assets/svg/flags/mr.svg +6 -0
  192. package/src/runtime/assets/svg/flags/ms.svg +29 -0
  193. package/src/runtime/assets/svg/flags/mt.svg +58 -0
  194. package/src/runtime/assets/svg/flags/mu.svg +8 -0
  195. package/src/runtime/assets/svg/flags/mv.svg +6 -0
  196. package/src/runtime/assets/svg/flags/mw.svg +10 -0
  197. package/src/runtime/assets/svg/flags/mx.svg +382 -0
  198. package/src/runtime/assets/svg/flags/my.svg +26 -0
  199. package/src/runtime/assets/svg/flags/mz.svg +21 -0
  200. package/src/runtime/assets/svg/flags/na.svg +16 -0
  201. package/src/runtime/assets/svg/flags/nc.svg +13 -0
  202. package/src/runtime/assets/svg/flags/ne.svg +6 -0
  203. package/src/runtime/assets/svg/flags/nf.svg +9 -0
  204. package/src/runtime/assets/svg/flags/ng.svg +6 -0
  205. package/src/runtime/assets/svg/flags/ni.svg +129 -0
  206. package/src/runtime/assets/svg/flags/nl.svg +5 -0
  207. package/src/runtime/assets/svg/flags/no.svg +7 -0
  208. package/src/runtime/assets/svg/flags/np.svg +13 -0
  209. package/src/runtime/assets/svg/flags/nr.svg +12 -0
  210. package/src/runtime/assets/svg/flags/nu.svg +10 -0
  211. package/src/runtime/assets/svg/flags/nz.svg +36 -0
  212. package/src/runtime/assets/svg/flags/om.svg +115 -0
  213. package/src/runtime/assets/svg/flags/pa.svg +14 -0
  214. package/src/runtime/assets/svg/flags/pc.svg +33 -0
  215. package/src/runtime/assets/svg/flags/pe.svg +4 -0
  216. package/src/runtime/assets/svg/flags/pf.svg +19 -0
  217. package/src/runtime/assets/svg/flags/pg.svg +9 -0
  218. package/src/runtime/assets/svg/flags/ph.svg +6 -0
  219. package/src/runtime/assets/svg/flags/pk.svg +15 -0
  220. package/src/runtime/assets/svg/flags/pl.svg +6 -0
  221. package/src/runtime/assets/svg/flags/pm.svg +5 -0
  222. package/src/runtime/assets/svg/flags/pn.svg +53 -0
  223. package/src/runtime/assets/svg/flags/pr.svg +13 -0
  224. package/src/runtime/assets/svg/flags/ps.svg +15 -0
  225. package/src/runtime/assets/svg/flags/pt.svg +57 -0
  226. package/src/runtime/assets/svg/flags/pw.svg +11 -0
  227. package/src/runtime/assets/svg/flags/py.svg +157 -0
  228. package/src/runtime/assets/svg/flags/qa.svg +4 -0
  229. package/src/runtime/assets/svg/flags/re.svg +5 -0
  230. package/src/runtime/assets/svg/flags/ro.svg +7 -0
  231. package/src/runtime/assets/svg/flags/rs.svg +292 -0
  232. package/src/runtime/assets/svg/flags/ru.svg +5 -0
  233. package/src/runtime/assets/svg/flags/rw.svg +13 -0
  234. package/src/runtime/assets/svg/flags/sa.svg +25 -0
  235. package/src/runtime/assets/svg/flags/sb.svg +13 -0
  236. package/src/runtime/assets/svg/flags/sc.svg +7 -0
  237. package/src/runtime/assets/svg/flags/sd.svg +13 -0
  238. package/src/runtime/assets/svg/flags/se.svg +4 -0
  239. package/src/runtime/assets/svg/flags/sg.svg +13 -0
  240. package/src/runtime/assets/svg/flags/sh-ac.svg +689 -0
  241. package/src/runtime/assets/svg/flags/sh-hl.svg +164 -0
  242. package/src/runtime/assets/svg/flags/sh-ta.svg +76 -0
  243. package/src/runtime/assets/svg/flags/sh.svg +7 -0
  244. package/src/runtime/assets/svg/flags/si.svg +18 -0
  245. package/src/runtime/assets/svg/flags/sj.svg +7 -0
  246. package/src/runtime/assets/svg/flags/sk.svg +9 -0
  247. package/src/runtime/assets/svg/flags/sl.svg +7 -0
  248. package/src/runtime/assets/svg/flags/sm.svg +75 -0
  249. package/src/runtime/assets/svg/flags/sn.svg +8 -0
  250. package/src/runtime/assets/svg/flags/so.svg +11 -0
  251. package/src/runtime/assets/svg/flags/sr.svg +6 -0
  252. package/src/runtime/assets/svg/flags/ss.svg +8 -0
  253. package/src/runtime/assets/svg/flags/st.svg +16 -0
  254. package/src/runtime/assets/svg/flags/state/ft.svg +5503 -0
  255. package/src/runtime/assets/svg/flags/state/johor.svg +59 -0
  256. package/src/runtime/assets/svg/flags/state/kedah.svg +246 -0
  257. package/src/runtime/assets/svg/flags/state/kelantan.svg +84 -0
  258. package/src/runtime/assets/svg/flags/state/kuala_lumpur.svg +9 -0
  259. package/src/runtime/assets/svg/flags/state/labuan.svg +10 -0
  260. package/src/runtime/assets/svg/flags/state/melaka.svg +56 -0
  261. package/src/runtime/assets/svg/flags/state/negeri_sembilan.svg +5 -0
  262. package/src/runtime/assets/svg/flags/state/pahang.svg +5 -0
  263. package/src/runtime/assets/svg/flags/state/penang.svg +514 -0
  264. package/src/runtime/assets/svg/flags/state/perak.svg +5 -0
  265. package/src/runtime/assets/svg/flags/state/perlis.svg +5 -0
  266. package/src/runtime/assets/svg/flags/state/putrajaya.svg +2631 -0
  267. package/src/runtime/assets/svg/flags/state/sabah.svg +8 -0
  268. package/src/runtime/assets/svg/flags/state/sarawak.svg +18 -0
  269. package/src/runtime/assets/svg/flags/state/selangor.svg +20 -0
  270. package/src/runtime/assets/svg/flags/state/terengganu.svg +6 -0
  271. package/src/runtime/assets/svg/flags/sv.svg +593 -0
  272. package/src/runtime/assets/svg/flags/sx.svg +56 -0
  273. package/src/runtime/assets/svg/flags/sy.svg +6 -0
  274. package/src/runtime/assets/svg/flags/sz.svg +34 -0
  275. package/src/runtime/assets/svg/flags/tc.svg +50 -0
  276. package/src/runtime/assets/svg/flags/td.svg +7 -0
  277. package/src/runtime/assets/svg/flags/tf.svg +15 -0
  278. package/src/runtime/assets/svg/flags/tg.svg +14 -0
  279. package/src/runtime/assets/svg/flags/th.svg +7 -0
  280. package/src/runtime/assets/svg/flags/tj.svg +22 -0
  281. package/src/runtime/assets/svg/flags/tk.svg +5 -0
  282. package/src/runtime/assets/svg/flags/tl.svg +13 -0
  283. package/src/runtime/assets/svg/flags/tm.svg +204 -0
  284. package/src/runtime/assets/svg/flags/tn.svg +4 -0
  285. package/src/runtime/assets/svg/flags/to.svg +10 -0
  286. package/src/runtime/assets/svg/flags/tr.svg +8 -0
  287. package/src/runtime/assets/svg/flags/tt.svg +5 -0
  288. package/src/runtime/assets/svg/flags/tv.svg +9 -0
  289. package/src/runtime/assets/svg/flags/tw.svg +34 -0
  290. package/src/runtime/assets/svg/flags/tz.svg +13 -0
  291. package/src/runtime/assets/svg/flags/ua.svg +6 -0
  292. package/src/runtime/assets/svg/flags/ug.svg +30 -0
  293. package/src/runtime/assets/svg/flags/um.svg +9 -0
  294. package/src/runtime/assets/svg/flags/un.svg +16 -0
  295. package/src/runtime/assets/svg/flags/us.svg +9 -0
  296. package/src/runtime/assets/svg/flags/uy.svg +28 -0
  297. package/src/runtime/assets/svg/flags/uz.svg +30 -0
  298. package/src/runtime/assets/svg/flags/va.svg +190 -0
  299. package/src/runtime/assets/svg/flags/vc.svg +8 -0
  300. package/src/runtime/assets/svg/flags/ve.svg +26 -0
  301. package/src/runtime/assets/svg/flags/vg.svg +59 -0
  302. package/src/runtime/assets/svg/flags/vi.svg +28 -0
  303. package/src/runtime/assets/svg/flags/vn.svg +11 -0
  304. package/src/runtime/assets/svg/flags/vu.svg +21 -0
  305. package/src/runtime/assets/svg/flags/wf.svg +5 -0
  306. package/src/runtime/assets/svg/flags/ws.svg +7 -0
  307. package/src/runtime/assets/svg/flags/xk.svg +5 -0
  308. package/src/runtime/assets/svg/flags/xx.svg +4 -0
  309. package/src/runtime/assets/svg/flags/ye.svg +7 -0
  310. package/src/runtime/assets/svg/flags/yt.svg +5 -0
  311. package/src/runtime/assets/svg/flags/za.svg +17 -0
  312. package/src/runtime/assets/svg/flags/zm.svg +27 -0
  313. package/src/runtime/assets/svg/flags/zw.svg +21 -0
  314. package/src/runtime/assets/svg/icon/activity.svg +4 -0
  315. package/src/runtime/assets/svg/icon/arrow-left.svg +3 -0
  316. package/src/runtime/assets/svg/icon/arrow-right.svg +3 -0
  317. package/src/runtime/assets/svg/icon/building-07.svg +4 -0
  318. package/src/runtime/assets/svg/icon/car-01.svg +4 -0
  319. package/src/runtime/assets/svg/icon/cash.svg +3 -0
  320. package/src/runtime/assets/svg/icon/clipboard-check.svg +3 -0
  321. package/src/runtime/assets/svg/icon/cog.svg +3 -0
  322. package/src/runtime/assets/svg/icon/colapse-sidebar.svg +3 -0
  323. package/src/runtime/assets/svg/icon/file-chart-bar.svg +3 -0
  324. package/src/runtime/assets/svg/icon/frame.svg +3 -0
  325. package/src/runtime/assets/svg/icon/gift-09.svg +7 -0
  326. package/src/runtime/assets/svg/icon/grid.svg +227 -0
  327. package/src/runtime/assets/svg/icon/layers.svg +3 -0
  328. package/src/runtime/assets/svg/icon/medical-cross.svg +3 -0
  329. package/src/runtime/assets/svg/icon/minimise-sidebar.svg +3 -0
  330. package/src/runtime/assets/svg/icon/rocket.svg +3 -0
  331. package/src/runtime/assets/svg/icon/speedometer-04.svg +5 -0
  332. package/src/runtime/assets/svg/icon/user-headset.svg +3 -0
  333. package/src/runtime/assets/svg/icon/users-group.svg +3 -0
  334. package/src/runtime/assets/svg/icon/users.svg +3 -0
  335. package/src/runtime/assets/svg/images/document-folders.svg +86 -0
  336. package/src/runtime/assets/svg/images/error-404.svg +56 -0
  337. package/src/runtime/assets/svg/images/error-500.svg +243 -0
  338. package/src/runtime/assets/svg/images/login-right-content.svg +272 -0
  339. package/src/runtime/assets/svg/images/man-question-mark.svg +130 -0
  340. package/src/runtime/assets/svg/logo/logomark.svg +4 -0
  341. package/src/runtime/assets/svg/logo/logotext.svg +10 -0
  342. package/src/runtime/components/base/event-calendar/AgendaView.vue +92 -0
  343. package/src/runtime/components/base/event-calendar/ColorManager.vue +149 -0
  344. package/src/runtime/components/base/event-calendar/DayEventsOverflowPopup.vue +41 -0
  345. package/src/runtime/components/base/event-calendar/DayView.vue +254 -0
  346. package/src/runtime/components/base/event-calendar/DragDropVisualFeedback.vue +97 -0
  347. package/src/runtime/components/base/event-calendar/EventCalendar.md +203 -0
  348. package/src/runtime/components/base/event-calendar/EventCalendar.vue +414 -0
  349. package/src/runtime/components/base/event-calendar/EventModal.vue +573 -0
  350. package/src/runtime/components/base/event-calendar/EventResizeHandle.vue +284 -0
  351. package/src/runtime/components/base/event-calendar/ExternalCalendarSettings.vue +138 -0
  352. package/src/runtime/components/base/event-calendar/LocationDisplay.vue +62 -0
  353. package/src/runtime/components/base/event-calendar/MonthView.vue +272 -0
  354. package/src/runtime/components/base/event-calendar/WeekView.vue +329 -0
  355. package/src/runtime/components/base/event-calendar/composables/useAdvancedValidation.ts +557 -0
  356. package/src/runtime/components/base/event-calendar/composables/useCalendarUtils.ts +70 -0
  357. package/src/runtime/components/base/event-calendar/composables/useColorManager.ts +244 -0
  358. package/src/runtime/components/base/event-calendar/composables/useCompatibility.ts +318 -0
  359. package/src/runtime/components/base/event-calendar/composables/useDragAndDrop.ts +481 -0
  360. package/src/runtime/components/base/event-calendar/composables/useEventFiltering.ts +116 -0
  361. package/src/runtime/components/base/event-calendar/composables/useEventStatus.ts +108 -0
  362. package/src/runtime/components/base/event-calendar/composables/useEventStore.ts +325 -0
  363. package/src/runtime/components/base/event-calendar/composables/useExternalCalendar.ts +340 -0
  364. package/src/runtime/components/base/event-calendar/composables/useKeyboardNavigation.ts +95 -0
  365. package/src/runtime/components/base/event-calendar/composables/useMonitoring.ts +433 -0
  366. package/src/runtime/components/base/event-calendar/composables/useMultiDayLayout.ts +131 -0
  367. package/src/runtime/components/base/event-calendar/composables/usePerformanceCache.ts +134 -0
  368. package/src/runtime/components/base/event-calendar/composables/useRecurringEvents.ts +291 -0
  369. package/src/runtime/components/base/event-calendar/composables/useResilientErrorHandling.ts +480 -0
  370. package/src/runtime/components/base/event-calendar/composables/useSecurity.ts +425 -0
  371. package/src/runtime/components/base/event-calendar/composables/useTimezone.ts +256 -0
  372. package/src/runtime/components/base/event-calendar/constants.ts +18 -0
  373. package/src/runtime/components/base/event-calendar/eventModal.schema.ts +32 -0
  374. package/src/runtime/components/base/event-calendar/types.ts +96 -0
  375. package/src/runtime/components/base/org-chart/index.vue +359 -0
  376. package/src/runtime/components/base/org-chart/main.ts +2372 -0
  377. package/src/runtime/components/base/org-chart/svg-icons.ts +58 -0
  378. package/src/runtime/components/base/org-chart/types.ts +492 -0
  379. package/src/runtime/components/base/signature/index.vue +218 -0
  380. package/src/runtime/components/base/toast/Toast.vue +396 -0
  381. package/src/runtime/components/base/toast/Toaster.vue +1241 -0
  382. package/src/runtime/components/base/toast/assets/CloseIcon.vue +3 -0
  383. package/src/runtime/components/base/toast/assets/ErrorIcon.vue +7 -0
  384. package/src/runtime/components/base/toast/assets/IconWrapper.vue +13 -0
  385. package/src/runtime/components/base/toast/assets/InfoIcon.vue +7 -0
  386. package/src/runtime/components/base/toast/assets/Loader.vue +18 -0
  387. package/src/runtime/components/base/toast/assets/SuccessIcon.vue +7 -0
  388. package/src/runtime/components/base/toast/assets/WarningIcon.vue +7 -0
  389. package/src/runtime/components/base/toast/constant.ts +30 -0
  390. package/src/runtime/components/base/toast/hooks.ts +114 -0
  391. package/src/runtime/components/base/toast/state.ts +317 -0
  392. package/src/runtime/components/base/toast/types.ts +201 -0
  393. package/src/runtime/components/chart/Bar.vue +175 -0
  394. package/src/runtime/components/chart/Line.vue +149 -0
  395. package/src/runtime/components/chart/Pie.vue +115 -0
  396. package/src/runtime/components/chart/Radar.vue +167 -0
  397. package/src/runtime/components/dynect/Accordion.vue +152 -0
  398. package/src/runtime/components/dynect/Alert.vue +194 -0
  399. package/src/runtime/components/dynect/Autocomplete.vue +404 -0
  400. package/src/runtime/components/dynect/Avatar.vue +132 -0
  401. package/src/runtime/components/dynect/AvatarGroup.vue +56 -0
  402. package/src/runtime/components/dynect/AvatarLabel.vue +82 -0
  403. package/src/runtime/components/dynect/Badge.vue +101 -0
  404. package/src/runtime/components/dynect/Button.vue +36 -0
  405. package/src/runtime/components/dynect/Checkbox.vue +80 -0
  406. package/src/runtime/components/dynect/DatePicker.vue +180 -0
  407. package/src/runtime/components/dynect/DateRange.vue +217 -0
  408. package/src/runtime/components/dynect/Dropzone.vue +355 -0
  409. package/src/runtime/components/dynect/EventCalendar.vue +66 -0
  410. package/src/runtime/components/dynect/Filters.vue +162 -0
  411. package/src/runtime/components/dynect/FormDescription.vue +20 -0
  412. package/src/runtime/components/dynect/FormError.vue +20 -0
  413. package/src/runtime/components/dynect/FormField.vue +45 -0
  414. package/src/runtime/components/dynect/FormLabel.vue +40 -0
  415. package/src/runtime/components/dynect/Gantt.vue +231 -0
  416. package/src/runtime/components/dynect/Input.vue +234 -0
  417. package/src/runtime/components/dynect/Kanban.vue +128 -0
  418. package/src/runtime/components/dynect/Modal.vue +118 -0
  419. package/src/runtime/components/dynect/OtpInput.vue +148 -0
  420. package/src/runtime/components/dynect/Pagination.vue +57 -0
  421. package/src/runtime/components/dynect/PermissionGuard.vue +50 -0
  422. package/src/runtime/components/dynect/Progress.vue +102 -0
  423. package/src/runtime/components/dynect/Radio.vue +90 -0
  424. package/src/runtime/components/dynect/Select.vue +190 -0
  425. package/src/runtime/components/dynect/SelectMultiple.vue +259 -0
  426. package/src/runtime/components/dynect/Sheet.vue +80 -0
  427. package/src/runtime/components/dynect/Signature.vue +135 -0
  428. package/src/runtime/components/dynect/SwitchColor.vue +14 -0
  429. package/src/runtime/components/dynect/SwitchLanguage.vue +39 -0
  430. package/src/runtime/components/dynect/Table.vue +488 -0
  431. package/src/runtime/components/dynect/TagsInput.vue +388 -0
  432. package/src/runtime/components/dynect/Telephone.vue +651 -0
  433. package/src/runtime/components/dynect/TextEditor.vue +94 -0
  434. package/src/runtime/components/dynect/Textarea.vue +108 -0
  435. package/src/runtime/components/dynect/TimePicker.vue +275 -0
  436. package/src/runtime/components/dynect/Timeline.vue +301 -0
  437. package/src/runtime/components/dynect/Toggle.vue +100 -0
  438. package/src/runtime/components/ui/accordion/Accordion.vue +15 -0
  439. package/src/runtime/components/ui/accordion/AccordionContent.vue +19 -0
  440. package/src/runtime/components/ui/accordion/AccordionItem.vue +19 -0
  441. package/src/runtime/components/ui/accordion/AccordionTrigger.vue +32 -0
  442. package/src/runtime/components/ui/accordion/index.ts +4 -0
  443. package/src/runtime/components/ui/alert/Alert.vue +17 -0
  444. package/src/runtime/components/ui/alert/AlertDescription.vue +14 -0
  445. package/src/runtime/components/ui/alert/AlertTitle.vue +14 -0
  446. package/src/runtime/components/ui/alert/index.ts +20 -0
  447. package/src/runtime/components/ui/alert-dialog/AlertDialog.vue +15 -0
  448. package/src/runtime/components/ui/alert-dialog/AlertDialogAction.vue +18 -0
  449. package/src/runtime/components/ui/alert-dialog/AlertDialogCancel.vue +18 -0
  450. package/src/runtime/components/ui/alert-dialog/AlertDialogContent.vue +36 -0
  451. package/src/runtime/components/ui/alert-dialog/AlertDialogDescription.vue +17 -0
  452. package/src/runtime/components/ui/alert-dialog/AlertDialogFooter.vue +14 -0
  453. package/src/runtime/components/ui/alert-dialog/AlertDialogHeader.vue +14 -0
  454. package/src/runtime/components/ui/alert-dialog/AlertDialogTitle.vue +17 -0
  455. package/src/runtime/components/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  456. package/src/runtime/components/ui/alert-dialog/index.ts +9 -0
  457. package/src/runtime/components/ui/aspect-ratio/AspectRatio.vue +12 -0
  458. package/src/runtime/components/ui/aspect-ratio/index.ts +1 -0
  459. package/src/runtime/components/ui/avatar/Avatar.vue +15 -0
  460. package/src/runtime/components/ui/avatar/AvatarFallback.vue +17 -0
  461. package/src/runtime/components/ui/avatar/AvatarImage.vue +12 -0
  462. package/src/runtime/components/ui/avatar/index.ts +3 -0
  463. package/src/runtime/components/ui/badge/Badge.vue +24 -0
  464. package/src/runtime/components/ui/badge/index.ts +22 -0
  465. package/src/runtime/components/ui/breadcrumb/Breadcrumb.vue +13 -0
  466. package/src/runtime/components/ui/breadcrumb/BreadcrumbEllipsis.vue +18 -0
  467. package/src/runtime/components/ui/breadcrumb/BreadcrumbItem.vue +14 -0
  468. package/src/runtime/components/ui/breadcrumb/BreadcrumbLink.vue +16 -0
  469. package/src/runtime/components/ui/breadcrumb/BreadcrumbList.vue +14 -0
  470. package/src/runtime/components/ui/breadcrumb/BreadcrumbPage.vue +14 -0
  471. package/src/runtime/components/ui/breadcrumb/BreadcrumbSeparator.vue +17 -0
  472. package/src/runtime/components/ui/breadcrumb/index.ts +7 -0
  473. package/src/runtime/components/ui/button/Button.vue +38 -0
  474. package/src/runtime/components/ui/button/index.ts +51 -0
  475. package/src/runtime/components/ui/button-group/ButtonGroup.vue +17 -0
  476. package/src/runtime/components/ui/button-group/ButtonGroupSeparator.vue +16 -0
  477. package/src/runtime/components/ui/button-group/ButtonGroupText.vue +22 -0
  478. package/src/runtime/components/ui/button-group/index.ts +23 -0
  479. package/src/runtime/components/ui/calendar/Calendar.vue +163 -0
  480. package/src/runtime/components/ui/calendar/CalendarCell.vue +19 -0
  481. package/src/runtime/components/ui/calendar/CalendarCellTrigger.vue +47 -0
  482. package/src/runtime/components/ui/calendar/CalendarGrid.vue +19 -0
  483. package/src/runtime/components/ui/calendar/CalendarGridBody.vue +12 -0
  484. package/src/runtime/components/ui/calendar/CalendarGridHead.vue +13 -0
  485. package/src/runtime/components/ui/calendar/CalendarGridRow.vue +19 -0
  486. package/src/runtime/components/ui/calendar/CalendarHeadCell.vue +19 -0
  487. package/src/runtime/components/ui/calendar/CalendarHeader.vue +19 -0
  488. package/src/runtime/components/ui/calendar/CalendarHeading.vue +25 -0
  489. package/src/runtime/components/ui/calendar/CalendarNextButton.vue +22 -0
  490. package/src/runtime/components/ui/calendar/CalendarPrevButton.vue +22 -0
  491. package/src/runtime/components/ui/calendar/index.ts +14 -0
  492. package/src/runtime/components/ui/card/Card.vue +14 -0
  493. package/src/runtime/components/ui/card/CardAction.vue +14 -0
  494. package/src/runtime/components/ui/card/CardContent.vue +14 -0
  495. package/src/runtime/components/ui/card/CardDescription.vue +14 -0
  496. package/src/runtime/components/ui/card/CardFooter.vue +14 -0
  497. package/src/runtime/components/ui/card/CardHeader.vue +14 -0
  498. package/src/runtime/components/ui/card/CardTitle.vue +14 -0
  499. package/src/runtime/components/ui/card/index.ts +7 -0
  500. package/src/runtime/components/ui/carousel/Carousel.vue +46 -0
  501. package/src/runtime/components/ui/carousel/CarouselContent.vue +21 -0
  502. package/src/runtime/components/ui/carousel/CarouselItem.vue +15 -0
  503. package/src/runtime/components/ui/carousel/CarouselNext.vue +32 -0
  504. package/src/runtime/components/ui/carousel/CarouselPrevious.vue +32 -0
  505. package/src/runtime/components/ui/carousel/index.ts +8 -0
  506. package/src/runtime/components/ui/carousel/interface.ts +22 -0
  507. package/src/runtime/components/ui/carousel/useCarousel.ts +51 -0
  508. package/src/runtime/components/ui/chart/ChartContainer.vue +61 -0
  509. package/src/runtime/components/ui/chart/ChartLegendContent.vue +52 -0
  510. package/src/runtime/components/ui/chart/ChartStyle.vue +37 -0
  511. package/src/runtime/components/ui/chart/ChartTooltipContent.vue +92 -0
  512. package/src/runtime/components/ui/chart/index.ts +26 -0
  513. package/src/runtime/components/ui/chart/utils.ts +45 -0
  514. package/src/runtime/components/ui/checkbox/Checkbox.vue +34 -0
  515. package/src/runtime/components/ui/checkbox/index.ts +1 -0
  516. package/src/runtime/components/ui/collapsible/Collapsible.vue +15 -0
  517. package/src/runtime/components/ui/collapsible/CollapsibleContent.vue +12 -0
  518. package/src/runtime/components/ui/collapsible/CollapsibleTrigger.vue +12 -0
  519. package/src/runtime/components/ui/collapsible/index.ts +3 -0
  520. package/src/runtime/components/ui/combobox/Combobox.vue +15 -0
  521. package/src/runtime/components/ui/combobox/ComboboxAnchor.vue +19 -0
  522. package/src/runtime/components/ui/combobox/ComboboxEmpty.vue +17 -0
  523. package/src/runtime/components/ui/combobox/ComboboxGroup.vue +25 -0
  524. package/src/runtime/components/ui/combobox/ComboboxInput.vue +33 -0
  525. package/src/runtime/components/ui/combobox/ComboboxItem.vue +29 -0
  526. package/src/runtime/components/ui/combobox/ComboboxItemIndicator.vue +19 -0
  527. package/src/runtime/components/ui/combobox/ComboboxList.vue +38 -0
  528. package/src/runtime/components/ui/combobox/ComboboxSeparator.vue +17 -0
  529. package/src/runtime/components/ui/combobox/ComboboxTrigger.vue +19 -0
  530. package/src/runtime/components/ui/combobox/ComboboxViewport.vue +19 -0
  531. package/src/runtime/components/ui/combobox/index.ts +12 -0
  532. package/src/runtime/components/ui/command/Command.vue +85 -0
  533. package/src/runtime/components/ui/command/CommandDialog.vue +36 -0
  534. package/src/runtime/components/ui/command/CommandEmpty.vue +22 -0
  535. package/src/runtime/components/ui/command/CommandGroup.vue +40 -0
  536. package/src/runtime/components/ui/command/CommandInput.vue +38 -0
  537. package/src/runtime/components/ui/command/CommandItem.vue +80 -0
  538. package/src/runtime/components/ui/command/CommandList.vue +21 -0
  539. package/src/runtime/components/ui/command/CommandSeparator.vue +17 -0
  540. package/src/runtime/components/ui/command/CommandShortcut.vue +14 -0
  541. package/src/runtime/components/ui/command/index.ts +25 -0
  542. package/src/runtime/components/ui/context-menu/ContextMenu.vue +15 -0
  543. package/src/runtime/components/ui/context-menu/ContextMenuCheckboxItem.vue +37 -0
  544. package/src/runtime/components/ui/context-menu/ContextMenuContent.vue +35 -0
  545. package/src/runtime/components/ui/context-menu/ContextMenuGroup.vue +12 -0
  546. package/src/runtime/components/ui/context-menu/ContextMenuItem.vue +42 -0
  547. package/src/runtime/components/ui/context-menu/ContextMenuLabel.vue +17 -0
  548. package/src/runtime/components/ui/context-menu/ContextMenuPortal.vue +12 -0
  549. package/src/runtime/components/ui/context-menu/ContextMenuRadioGroup.vue +15 -0
  550. package/src/runtime/components/ui/context-menu/ContextMenuRadioItem.vue +37 -0
  551. package/src/runtime/components/ui/context-menu/ContextMenuSeparator.vue +15 -0
  552. package/src/runtime/components/ui/context-menu/ContextMenuShortcut.vue +14 -0
  553. package/src/runtime/components/ui/context-menu/ContextMenuSub.vue +15 -0
  554. package/src/runtime/components/ui/context-menu/ContextMenuSubContent.vue +29 -0
  555. package/src/runtime/components/ui/context-menu/ContextMenuSubTrigger.vue +31 -0
  556. package/src/runtime/components/ui/context-menu/ContextMenuTrigger.vue +14 -0
  557. package/src/runtime/components/ui/context-menu/index.ts +14 -0
  558. package/src/runtime/components/ui/dialog/Dialog.vue +15 -0
  559. package/src/runtime/components/ui/dialog/DialogClose.vue +12 -0
  560. package/src/runtime/components/ui/dialog/DialogContent.vue +49 -0
  561. package/src/runtime/components/ui/dialog/DialogDescription.vue +19 -0
  562. package/src/runtime/components/ui/dialog/DialogFooter.vue +25 -0
  563. package/src/runtime/components/ui/dialog/DialogHeader.vue +14 -0
  564. package/src/runtime/components/ui/dialog/DialogOverlay.vue +17 -0
  565. package/src/runtime/components/ui/dialog/DialogScrollContent.vue +46 -0
  566. package/src/runtime/components/ui/dialog/DialogTitle.vue +19 -0
  567. package/src/runtime/components/ui/dialog/DialogTrigger.vue +12 -0
  568. package/src/runtime/components/ui/dialog/index.ts +10 -0
  569. package/src/runtime/components/ui/drawer/Drawer.vue +19 -0
  570. package/src/runtime/components/ui/drawer/DrawerClose.vue +12 -0
  571. package/src/runtime/components/ui/drawer/DrawerContent.vue +40 -0
  572. package/src/runtime/components/ui/drawer/DrawerDescription.vue +17 -0
  573. package/src/runtime/components/ui/drawer/DrawerFooter.vue +14 -0
  574. package/src/runtime/components/ui/drawer/DrawerHeader.vue +14 -0
  575. package/src/runtime/components/ui/drawer/DrawerOverlay.vue +15 -0
  576. package/src/runtime/components/ui/drawer/DrawerTitle.vue +17 -0
  577. package/src/runtime/components/ui/drawer/DrawerTrigger.vue +12 -0
  578. package/src/runtime/components/ui/drawer/index.ts +9 -0
  579. package/src/runtime/components/ui/dropdown-menu/DropdownMenu.vue +15 -0
  580. package/src/runtime/components/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +37 -0
  581. package/src/runtime/components/ui/dropdown-menu/DropdownMenuContent.vue +37 -0
  582. package/src/runtime/components/ui/dropdown-menu/DropdownMenuGroup.vue +12 -0
  583. package/src/runtime/components/ui/dropdown-menu/DropdownMenuItem.vue +41 -0
  584. package/src/runtime/components/ui/dropdown-menu/DropdownMenuLabel.vue +18 -0
  585. package/src/runtime/components/ui/dropdown-menu/DropdownMenuRadioGroup.vue +15 -0
  586. package/src/runtime/components/ui/dropdown-menu/DropdownMenuRadioItem.vue +38 -0
  587. package/src/runtime/components/ui/dropdown-menu/DropdownMenuSeparator.vue +19 -0
  588. package/src/runtime/components/ui/dropdown-menu/DropdownMenuShortcut.vue +14 -0
  589. package/src/runtime/components/ui/dropdown-menu/DropdownMenuSub.vue +15 -0
  590. package/src/runtime/components/ui/dropdown-menu/DropdownMenuSubContent.vue +29 -0
  591. package/src/runtime/components/ui/dropdown-menu/DropdownMenuSubTrigger.vue +30 -0
  592. package/src/runtime/components/ui/dropdown-menu/DropdownMenuTrigger.vue +14 -0
  593. package/src/runtime/components/ui/dropdown-menu/index.ts +16 -0
  594. package/src/runtime/components/ui/empty/Empty.vue +14 -0
  595. package/src/runtime/components/ui/empty/EmptyContent.vue +14 -0
  596. package/src/runtime/components/ui/empty/EmptyDescription.vue +14 -0
  597. package/src/runtime/components/ui/empty/EmptyHeader.vue +14 -0
  598. package/src/runtime/components/ui/empty/EmptyMedia.vue +17 -0
  599. package/src/runtime/components/ui/empty/EmptyTitle.vue +14 -0
  600. package/src/runtime/components/ui/empty/index.ts +23 -0
  601. package/src/runtime/components/ui/field/Field.vue +17 -0
  602. package/src/runtime/components/ui/field/FieldContent.vue +14 -0
  603. package/src/runtime/components/ui/field/FieldDescription.vue +17 -0
  604. package/src/runtime/components/ui/field/FieldError.vue +45 -0
  605. package/src/runtime/components/ui/field/FieldGroup.vue +14 -0
  606. package/src/runtime/components/ui/field/FieldLabel.vue +31 -0
  607. package/src/runtime/components/ui/field/FieldLegend.vue +15 -0
  608. package/src/runtime/components/ui/field/FieldSeparator.vue +18 -0
  609. package/src/runtime/components/ui/field/FieldSet.vue +14 -0
  610. package/src/runtime/components/ui/field/FieldTitle.vue +14 -0
  611. package/src/runtime/components/ui/field/index.ts +32 -0
  612. package/src/runtime/components/ui/form/FormControl.vue +12 -0
  613. package/src/runtime/components/ui/form/FormDescription.vue +17 -0
  614. package/src/runtime/components/ui/form/FormItem.vue +20 -0
  615. package/src/runtime/components/ui/form/FormLabel.vue +17 -0
  616. package/src/runtime/components/ui/form/FormMessage.vue +17 -0
  617. package/src/runtime/components/ui/form/index.ts +7 -0
  618. package/src/runtime/components/ui/form/injectionKeys.ts +3 -0
  619. package/src/runtime/components/ui/form/useFormField.ts +29 -0
  620. package/src/runtime/components/ui/gantt/Gantt.vue +108 -0
  621. package/src/runtime/components/ui/gantt/GanttCreateMarkerTrigger.vue +44 -0
  622. package/src/runtime/components/ui/gantt/GanttFeatureItem.vue +303 -0
  623. package/src/runtime/components/ui/gantt/GanttFeatureList.vue +16 -0
  624. package/src/runtime/components/ui/gantt/GanttFeatureListGroup.vue +20 -0
  625. package/src/runtime/components/ui/gantt/GanttHeader.vue +197 -0
  626. package/src/runtime/components/ui/gantt/GanttMarker.vue +133 -0
  627. package/src/runtime/components/ui/gantt/GanttSidebar.vue +65 -0
  628. package/src/runtime/components/ui/gantt/GanttSidebarGroup.vue +25 -0
  629. package/src/runtime/components/ui/gantt/GanttSidebarItem.vue +32 -0
  630. package/src/runtime/components/ui/gantt/GanttTimeline.vue +179 -0
  631. package/src/runtime/components/ui/gantt/GanttToday.vue +52 -0
  632. package/src/runtime/components/ui/gantt/GanttZoomControls.vue +49 -0
  633. package/src/runtime/components/ui/gantt/README.md +356 -0
  634. package/src/runtime/components/ui/gantt/index.ts +18 -0
  635. package/src/runtime/components/ui/gantt/meta.json +96 -0
  636. package/src/runtime/components/ui/hover-card/HoverCard.vue +15 -0
  637. package/src/runtime/components/ui/hover-card/HoverCardContent.vue +36 -0
  638. package/src/runtime/components/ui/hover-card/HoverCardTrigger.vue +12 -0
  639. package/src/runtime/components/ui/hover-card/index.ts +3 -0
  640. package/src/runtime/components/ui/inline-editable-input/InlineEditableInput.vue +126 -0
  641. package/src/runtime/components/ui/inline-editable-input/index.ts +1 -0
  642. package/src/runtime/components/ui/input/Input.vue +35 -0
  643. package/src/runtime/components/ui/input/index.ts +1 -0
  644. package/src/runtime/components/ui/input-group/InputGroup.vue +37 -0
  645. package/src/runtime/components/ui/input-group/InputGroupAddon.vue +33 -0
  646. package/src/runtime/components/ui/input-group/InputGroupButton.vue +25 -0
  647. package/src/runtime/components/ui/input-group/InputGroupInput.vue +13 -0
  648. package/src/runtime/components/ui/input-group/InputGroupText.vue +14 -0
  649. package/src/runtime/components/ui/input-group/InputGroupTextarea.vue +13 -0
  650. package/src/runtime/components/ui/input-group/index.ts +41 -0
  651. package/src/runtime/components/ui/input-otp/InputOTP.vue +22 -0
  652. package/src/runtime/components/ui/input-otp/InputOTPGroup.vue +18 -0
  653. package/src/runtime/components/ui/input-otp/InputOTPSeparator.vue +17 -0
  654. package/src/runtime/components/ui/input-otp/InputOTPSlot.vue +37 -0
  655. package/src/runtime/components/ui/input-otp/index.ts +4 -0
  656. package/src/runtime/components/ui/item/Item.vue +27 -0
  657. package/src/runtime/components/ui/item/ItemActions.vue +14 -0
  658. package/src/runtime/components/ui/item/ItemContent.vue +14 -0
  659. package/src/runtime/components/ui/item/ItemDescription.vue +14 -0
  660. package/src/runtime/components/ui/item/ItemFooter.vue +14 -0
  661. package/src/runtime/components/ui/item/ItemGroup.vue +14 -0
  662. package/src/runtime/components/ui/item/ItemHeader.vue +14 -0
  663. package/src/runtime/components/ui/item/ItemMedia.vue +17 -0
  664. package/src/runtime/components/ui/item/ItemSeparator.vue +12 -0
  665. package/src/runtime/components/ui/item/ItemTitle.vue +14 -0
  666. package/src/runtime/components/ui/item/index.ts +47 -0
  667. package/src/runtime/components/ui/kanban/Kanban.vue +42 -0
  668. package/src/runtime/components/ui/kanban/KanbanBoard.vue +75 -0
  669. package/src/runtime/components/ui/kanban/KanbanCard.vue +59 -0
  670. package/src/runtime/components/ui/kanban/KanbanCards.vue +27 -0
  671. package/src/runtime/components/ui/kanban/KanbanHeader.vue +15 -0
  672. package/src/runtime/components/ui/kanban/README.md +184 -0
  673. package/src/runtime/components/ui/kanban/index.ts +8 -0
  674. package/src/runtime/components/ui/kbd/Kbd.vue +23 -0
  675. package/src/runtime/components/ui/kbd/KbdGroup.vue +14 -0
  676. package/src/runtime/components/ui/kbd/index.ts +2 -0
  677. package/src/runtime/components/ui/label/Label.vue +30 -0
  678. package/src/runtime/components/ui/label/index.ts +1 -0
  679. package/src/runtime/components/ui/menubar/Menubar.vue +20 -0
  680. package/src/runtime/components/ui/menubar/MenubarCheckboxItem.vue +37 -0
  681. package/src/runtime/components/ui/menubar/MenubarContent.vue +38 -0
  682. package/src/runtime/components/ui/menubar/MenubarGroup.vue +12 -0
  683. package/src/runtime/components/ui/menubar/MenubarItem.vue +37 -0
  684. package/src/runtime/components/ui/menubar/MenubarLabel.vue +16 -0
  685. package/src/runtime/components/ui/menubar/MenubarMenu.vue +12 -0
  686. package/src/runtime/components/ui/menubar/MenubarRadioGroup.vue +15 -0
  687. package/src/runtime/components/ui/menubar/MenubarRadioItem.vue +37 -0
  688. package/src/runtime/components/ui/menubar/MenubarSeparator.vue +17 -0
  689. package/src/runtime/components/ui/menubar/MenubarShortcut.vue +14 -0
  690. package/src/runtime/components/ui/menubar/MenubarSub.vue +20 -0
  691. package/src/runtime/components/ui/menubar/MenubarSubContent.vue +35 -0
  692. package/src/runtime/components/ui/menubar/MenubarSubTrigger.vue +25 -0
  693. package/src/runtime/components/ui/menubar/MenubarTrigger.vue +19 -0
  694. package/src/runtime/components/ui/menubar/index.ts +15 -0
  695. package/src/runtime/components/ui/native-select/NativeSelect.vue +45 -0
  696. package/src/runtime/components/ui/native-select/NativeSelectOptGroup.vue +15 -0
  697. package/src/runtime/components/ui/native-select/NativeSelectOption.vue +15 -0
  698. package/src/runtime/components/ui/native-select/index.ts +3 -0
  699. package/src/runtime/components/ui/navigation-menu/NavigationMenu.vue +31 -0
  700. package/src/runtime/components/ui/navigation-menu/NavigationMenuContent.vue +30 -0
  701. package/src/runtime/components/ui/navigation-menu/NavigationMenuIndicator.vue +23 -0
  702. package/src/runtime/components/ui/navigation-menu/NavigationMenuItem.vue +17 -0
  703. package/src/runtime/components/ui/navigation-menu/NavigationMenuLink.vue +28 -0
  704. package/src/runtime/components/ui/navigation-menu/NavigationMenuList.vue +19 -0
  705. package/src/runtime/components/ui/navigation-menu/NavigationMenuTrigger.vue +22 -0
  706. package/src/runtime/components/ui/navigation-menu/NavigationMenuViewport.vue +28 -0
  707. package/src/runtime/components/ui/navigation-menu/index.ts +14 -0
  708. package/src/runtime/components/ui/number-field/NumberField.vue +20 -0
  709. package/src/runtime/components/ui/number-field/NumberFieldContent.vue +14 -0
  710. package/src/runtime/components/ui/number-field/NumberFieldDecrement.vue +22 -0
  711. package/src/runtime/components/ui/number-field/NumberFieldIncrement.vue +22 -0
  712. package/src/runtime/components/ui/number-field/NumberFieldInput.vue +16 -0
  713. package/src/runtime/components/ui/number-field/index.ts +5 -0
  714. package/src/runtime/components/ui/pagination/Pagination.vue +23 -0
  715. package/src/runtime/components/ui/pagination/PaginationContent.vue +17 -0
  716. package/src/runtime/components/ui/pagination/PaginationEllipsis.vue +21 -0
  717. package/src/runtime/components/ui/pagination/PaginationFirst.vue +34 -0
  718. package/src/runtime/components/ui/pagination/PaginationItem.vue +44 -0
  719. package/src/runtime/components/ui/pagination/PaginationLast.vue +33 -0
  720. package/src/runtime/components/ui/pagination/PaginationNext.vue +33 -0
  721. package/src/runtime/components/ui/pagination/PaginationPrevious.vue +33 -0
  722. package/src/runtime/components/ui/pagination/index.ts +8 -0
  723. package/src/runtime/components/ui/pin-input/PinInput.vue +22 -0
  724. package/src/runtime/components/ui/pin-input/PinInputGroup.vue +17 -0
  725. package/src/runtime/components/ui/pin-input/PinInputSeparator.vue +16 -0
  726. package/src/runtime/components/ui/pin-input/PinInputSlot.vue +26 -0
  727. package/src/runtime/components/ui/pin-input/index.ts +4 -0
  728. package/src/runtime/components/ui/popover/Popover.vue +15 -0
  729. package/src/runtime/components/ui/popover/PopoverAnchor.vue +12 -0
  730. package/src/runtime/components/ui/popover/PopoverContent.vue +38 -0
  731. package/src/runtime/components/ui/popover/PopoverTrigger.vue +12 -0
  732. package/src/runtime/components/ui/popover/index.ts +4 -0
  733. package/src/runtime/components/ui/progress/Progress.vue +19 -0
  734. package/src/runtime/components/ui/progress/index.ts +1 -0
  735. package/src/runtime/components/ui/radio-group/RadioGroup.vue +20 -0
  736. package/src/runtime/components/ui/radio-group/RadioGroupItem.vue +33 -0
  737. package/src/runtime/components/ui/radio-group/index.ts +2 -0
  738. package/src/runtime/components/ui/range-calendar/RangeCalendar.vue +61 -0
  739. package/src/runtime/components/ui/range-calendar/RangeCalendarCell.vue +32 -0
  740. package/src/runtime/components/ui/range-calendar/RangeCalendarCellTrigger.vue +46 -0
  741. package/src/runtime/components/ui/range-calendar/RangeCalendarGrid.vue +19 -0
  742. package/src/runtime/components/ui/range-calendar/RangeCalendarGridBody.vue +12 -0
  743. package/src/runtime/components/ui/range-calendar/RangeCalendarGridHead.vue +12 -0
  744. package/src/runtime/components/ui/range-calendar/RangeCalendarGridRow.vue +19 -0
  745. package/src/runtime/components/ui/range-calendar/RangeCalendarHeadCell.vue +19 -0
  746. package/src/runtime/components/ui/range-calendar/RangeCalendarHeader.vue +19 -0
  747. package/src/runtime/components/ui/range-calendar/RangeCalendarHeading.vue +25 -0
  748. package/src/runtime/components/ui/range-calendar/RangeCalendarNextButton.vue +22 -0
  749. package/src/runtime/components/ui/range-calendar/RangeCalendarPrevButton.vue +22 -0
  750. package/src/runtime/components/ui/range-calendar/index.ts +12 -0
  751. package/src/runtime/components/ui/resizable/ResizableHandle.vue +35 -0
  752. package/src/runtime/components/ui/resizable/ResizablePanel.vue +16 -0
  753. package/src/runtime/components/ui/resizable/ResizablePanelGroup.vue +20 -0
  754. package/src/runtime/components/ui/resizable/index.ts +3 -0
  755. package/src/runtime/components/ui/scroll-area/ScrollArea.vue +22 -0
  756. package/src/runtime/components/ui/scroll-area/ScrollBar.vue +19 -0
  757. package/src/runtime/components/ui/scroll-area/index.ts +2 -0
  758. package/src/runtime/components/ui/select/Select.vue +15 -0
  759. package/src/runtime/components/ui/select/SelectContent.vue +43 -0
  760. package/src/runtime/components/ui/select/SelectGroup.vue +12 -0
  761. package/src/runtime/components/ui/select/SelectItem.vue +39 -0
  762. package/src/runtime/components/ui/select/SelectItemText.vue +12 -0
  763. package/src/runtime/components/ui/select/SelectLabel.vue +14 -0
  764. package/src/runtime/components/ui/select/SelectScrollDownButton.vue +22 -0
  765. package/src/runtime/components/ui/select/SelectScrollUpButton.vue +22 -0
  766. package/src/runtime/components/ui/select/SelectSeparator.vue +15 -0
  767. package/src/runtime/components/ui/select/SelectTrigger.vue +32 -0
  768. package/src/runtime/components/ui/select/SelectValue.vue +12 -0
  769. package/src/runtime/components/ui/select/index.ts +11 -0
  770. package/src/runtime/components/ui/separator/Separator.vue +18 -0
  771. package/src/runtime/components/ui/separator/index.ts +1 -0
  772. package/src/runtime/components/ui/sheet/Sheet.vue +15 -0
  773. package/src/runtime/components/ui/sheet/SheetClose.vue +12 -0
  774. package/src/runtime/components/ui/sheet/SheetContent.vue +54 -0
  775. package/src/runtime/components/ui/sheet/SheetDescription.vue +17 -0
  776. package/src/runtime/components/ui/sheet/SheetFooter.vue +12 -0
  777. package/src/runtime/components/ui/sheet/SheetHeader.vue +12 -0
  778. package/src/runtime/components/ui/sheet/SheetOverlay.vue +17 -0
  779. package/src/runtime/components/ui/sheet/SheetTitle.vue +17 -0
  780. package/src/runtime/components/ui/sheet/SheetTrigger.vue +12 -0
  781. package/src/runtime/components/ui/sheet/index.ts +8 -0
  782. package/src/runtime/components/ui/sidebar/Sidebar.vue +78 -0
  783. package/src/runtime/components/ui/sidebar/SidebarContent.vue +14 -0
  784. package/src/runtime/components/ui/sidebar/SidebarFooter.vue +14 -0
  785. package/src/runtime/components/ui/sidebar/SidebarGroup.vue +14 -0
  786. package/src/runtime/components/ui/sidebar/SidebarGroupAction.vue +31 -0
  787. package/src/runtime/components/ui/sidebar/SidebarGroupContent.vue +14 -0
  788. package/src/runtime/components/ui/sidebar/SidebarGroupLabel.vue +30 -0
  789. package/src/runtime/components/ui/sidebar/SidebarHeader.vue +14 -0
  790. package/src/runtime/components/ui/sidebar/SidebarInput.vue +15 -0
  791. package/src/runtime/components/ui/sidebar/SidebarInset.vue +24 -0
  792. package/src/runtime/components/ui/sidebar/SidebarMenu.vue +14 -0
  793. package/src/runtime/components/ui/sidebar/SidebarMenuAction.vue +41 -0
  794. package/src/runtime/components/ui/sidebar/SidebarMenuBadge.vue +28 -0
  795. package/src/runtime/components/ui/sidebar/SidebarMenuButton.vue +49 -0
  796. package/src/runtime/components/ui/sidebar/SidebarMenuButtonChild.vue +27 -0
  797. package/src/runtime/components/ui/sidebar/SidebarMenuItem.vue +14 -0
  798. package/src/runtime/components/ui/sidebar/SidebarMenuSkeleton.vue +23 -0
  799. package/src/runtime/components/ui/sidebar/SidebarMenuSub.vue +14 -0
  800. package/src/runtime/components/ui/sidebar/SidebarMenuSubButton.vue +43 -0
  801. package/src/runtime/components/ui/sidebar/SidebarMenuSubItem.vue +14 -0
  802. package/src/runtime/components/ui/sidebar/SidebarProvider.vue +89 -0
  803. package/src/runtime/components/ui/sidebar/SidebarRail.vue +35 -0
  804. package/src/runtime/components/ui/sidebar/SidebarSeparator.vue +15 -0
  805. package/src/runtime/components/ui/sidebar/SidebarTrigger.vue +19 -0
  806. package/src/runtime/components/ui/sidebar/index.ts +59 -0
  807. package/src/runtime/components/ui/sidebar/utils.ts +19 -0
  808. package/src/runtime/components/ui/skeleton/Skeleton.vue +14 -0
  809. package/src/runtime/components/ui/skeleton/index.ts +1 -0
  810. package/src/runtime/components/ui/slider/Slider.vue +34 -0
  811. package/src/runtime/components/ui/slider/index.ts +1 -0
  812. package/src/runtime/components/ui/spinner/Spinner.vue +13 -0
  813. package/src/runtime/components/ui/spinner/index.ts +1 -0
  814. package/src/runtime/components/ui/stepper/Stepper.vue +20 -0
  815. package/src/runtime/components/ui/stepper/StepperDescription.vue +19 -0
  816. package/src/runtime/components/ui/stepper/StepperIndicator.vue +34 -0
  817. package/src/runtime/components/ui/stepper/StepperItem.vue +19 -0
  818. package/src/runtime/components/ui/stepper/StepperSeparator.vue +29 -0
  819. package/src/runtime/components/ui/stepper/StepperTitle.vue +19 -0
  820. package/src/runtime/components/ui/stepper/StepperTrigger.vue +19 -0
  821. package/src/runtime/components/ui/stepper/index.ts +7 -0
  822. package/src/runtime/components/ui/switch/Switch.vue +36 -0
  823. package/src/runtime/components/ui/switch/index.ts +1 -0
  824. package/src/runtime/components/ui/table/Table.vue +16 -0
  825. package/src/runtime/components/ui/table/TableBody.vue +14 -0
  826. package/src/runtime/components/ui/table/TableCaption.vue +14 -0
  827. package/src/runtime/components/ui/table/TableCell.vue +14 -0
  828. package/src/runtime/components/ui/table/TableEmpty.vue +29 -0
  829. package/src/runtime/components/ui/table/TableFooter.vue +14 -0
  830. package/src/runtime/components/ui/table/TableHead.vue +14 -0
  831. package/src/runtime/components/ui/table/TableHeader.vue +14 -0
  832. package/src/runtime/components/ui/table/TableRow.vue +14 -0
  833. package/src/runtime/components/ui/table/index.ts +9 -0
  834. package/src/runtime/components/ui/table/utils.ts +8 -0
  835. package/src/runtime/components/ui/tabs/Tabs.vue +23 -0
  836. package/src/runtime/components/ui/tabs/TabsContent.vue +17 -0
  837. package/src/runtime/components/ui/tabs/TabsList.vue +17 -0
  838. package/src/runtime/components/ui/tabs/TabsTrigger.vue +28 -0
  839. package/src/runtime/components/ui/tabs/index.ts +4 -0
  840. package/src/runtime/components/ui/tags-input/TagsInput.vue +20 -0
  841. package/src/runtime/components/ui/tags-input/TagsInputInput.vue +17 -0
  842. package/src/runtime/components/ui/tags-input/TagsInputItem.vue +20 -0
  843. package/src/runtime/components/ui/tags-input/TagsInputItemDelete.vue +22 -0
  844. package/src/runtime/components/ui/tags-input/TagsInputItemText.vue +19 -0
  845. package/src/runtime/components/ui/tags-input/index.ts +5 -0
  846. package/src/runtime/components/ui/textarea/Textarea.vue +31 -0
  847. package/src/runtime/components/ui/textarea/index.ts +1 -0
  848. package/src/runtime/components/ui/tiptap/TiptapContent.vue +154 -0
  849. package/src/runtime/components/ui/tiptap/TiptapEditor.vue +37 -0
  850. package/src/runtime/components/ui/tiptap/TiptapIcon.vue +141 -0
  851. package/src/runtime/components/ui/tiptap/TiptapKeyboardShortcuts.vue +25 -0
  852. package/src/runtime/components/ui/tiptap/TiptapMobileToolbar.vue +148 -0
  853. package/src/runtime/components/ui/tiptap/TiptapProvider.vue +407 -0
  854. package/src/runtime/components/ui/tiptap/TiptapSlotPanel.vue +112 -0
  855. package/src/runtime/components/ui/tiptap/TiptapStatusBar.vue +83 -0
  856. package/src/runtime/components/ui/tiptap/TiptapTableToolbar.vue +176 -0
  857. package/src/runtime/components/ui/tiptap/TiptapToolbar.vue +223 -0
  858. package/src/runtime/components/ui/tiptap/TiptapTreeItem.vue +210 -0
  859. package/src/runtime/components/ui/tiptap/TiptapTreeStructure.vue +133 -0
  860. package/src/runtime/components/ui/tiptap/index.ts +49 -0
  861. package/src/runtime/components/ui/tiptap/tiptapTreeUtils.ts +137 -0
  862. package/src/runtime/components/ui/toggle/Toggle.vue +35 -0
  863. package/src/runtime/components/ui/toggle/index.ts +27 -0
  864. package/src/runtime/components/ui/toggle-group/ToggleGroup.vue +54 -0
  865. package/src/runtime/components/ui/toggle-group/ToggleGroupItem.vue +51 -0
  866. package/src/runtime/components/ui/toggle-group/index.ts +2 -0
  867. package/src/runtime/components/ui/tooltip/Tooltip.vue +15 -0
  868. package/src/runtime/components/ui/tooltip/TooltipContent.vue +39 -0
  869. package/src/runtime/components/ui/tooltip/TooltipProvider.vue +14 -0
  870. package/src/runtime/components/ui/tooltip/TooltipTrigger.vue +12 -0
  871. package/src/runtime/components/ui/tooltip/index.ts +4 -0
@@ -0,0 +1,573 @@
1
+ <script setup lang="ts">
2
+ import { onKeyStroke } from '@vueuse/core';
3
+ import { toDate } from 'reka-ui/date';
4
+ import { fromDate, CalendarDate, type DateValue, today, getLocalTimeZone } from '@internationalized/date';
5
+ import { cn } from '@/lib/utils';
6
+ import type { CalendarEvent, EventColor, EventStatus } from './types';
7
+ import { DefaultEndHour, DefaultStartHour, EndHour, StartHour } from './constants';
8
+ import { useTimezone } from './composables/useTimezone';
9
+ import { eventModalSchema } from './eventModal.schema';
10
+ import DynectButton from '@/components/dynect/Button.vue';
11
+
12
+ const uuidv4 = useId();
13
+
14
+ const props = defineProps<{
15
+ isOpen: boolean;
16
+ mode: 'add' | 'edit';
17
+ eventData?: CalendarEvent | null; // For pre-filling in edit mode
18
+ targetDate?: Date | null; // For pre-filling start date in add mode
19
+ isAllDayFromCell?: boolean; // For pre-filling allDay status from cell click
20
+ }>();
21
+
22
+ const emit = defineEmits<{
23
+ (e: 'update:isOpen', value: boolean): void;
24
+ (e: 'submitEvent', eventPayload: CalendarEvent, mode: 'add' | 'edit'): void;
25
+ (e: 'deleteEvent', eventId: string): void;
26
+ }>();
27
+
28
+ // Handle ESC key to close modal
29
+ // Initialize timezone support
30
+ const { userTimezone, commonTimezones, convertEventFromDisplayTimezone } = useTimezone();
31
+
32
+ onKeyStroke('Escape', (e) => {
33
+ if (props.isOpen) {
34
+ e.preventDefault();
35
+ emit('update:isOpen', false);
36
+ }
37
+ });
38
+
39
+ const startDateOpen = ref(false);
40
+ const endDateOpen = ref(false);
41
+ const isAllDay = ref(props.isAllDayFromCell || false);
42
+ const isRecurring = ref(false);
43
+ const isTZOpen = ref(false);
44
+ const recurringEndType = ref('never');
45
+ const startDateValue = ref<Date | undefined>(undefined);
46
+ const endDateValue = ref<Date | undefined>(addHours(new Date(), 1));
47
+ const recurringEndDateValue = ref<Date | undefined>(undefined);
48
+ const error = ref<string | null>(null);
49
+ const timezoneSearchTerm = ref('');
50
+
51
+ const setError = (message: string) => {
52
+ error.value = message;
53
+ };
54
+
55
+ const clearError = () => {
56
+ error.value = null;
57
+ };
58
+
59
+ const formatTimeForInput = (date: Date) => {
60
+ const hours = date.getHours().toString().padStart(2, '0');
61
+ const minutes = Math.floor(date.getMinutes() / 15) * 15;
62
+ return `${hours}:${minutes.toString().padStart(2, '0')}`;
63
+ };
64
+
65
+ const convertToDateValue = (date: Date, timezone: string = 'UTC'): DateValue => {
66
+ try {
67
+ const zonedDateTime = fromDate(date, timezone);
68
+ return new CalendarDate(zonedDateTime.year, zonedDateTime.month, zonedDateTime.day);
69
+ } catch {
70
+ // Fallback: Manual construction
71
+ return new CalendarDate(date.getFullYear(), date.getMonth() + 1, date.getDate());
72
+ }
73
+ };
74
+
75
+ // Memoize time options so they're only calculated once
76
+ const timeOptions = computed(() => {
77
+ const options = [];
78
+ for (let hour = StartHour; hour <= EndHour; hour++) {
79
+ for (let minute = 0; minute < 60; minute += 15) {
80
+ const formattedHour = hour.toString().padStart(2, '0');
81
+ const formattedMinute = minute.toString().padStart(2, '0');
82
+ const value = `${formattedHour}:${formattedMinute}`;
83
+ // Use a fixed date to avoid unnecessary date object creations
84
+ const date = new Date(2000, 0, 1, hour, minute);
85
+ const label = convertDateTime(date, 'en-US', { hour: 'numeric', minute: 'numeric', hour12: true });
86
+ options.push({ value, label });
87
+ }
88
+ }
89
+ return options;
90
+ });
91
+
92
+ const getTZDisplayName = (timezone: string) => {
93
+ const tz = commonTimezones.find((t) => t.timezone === timezone);
94
+ return tz ? `${tz.label} (${tz.offset})` : timezone;
95
+ };
96
+
97
+ // Helper to ensure proper Date object for Calendar component
98
+ const ensureValidDate = (value: any): Date => {
99
+ if (!value) return new Date();
100
+ if (value instanceof Date && !Number.isNaN(value.getTime())) return value;
101
+ if ('calendar' in value) return toDate(value);
102
+ const parsed = new Date(value);
103
+ return Number.isNaN(parsed.getTime()) ? new Date() : parsed;
104
+ };
105
+
106
+ // Filter timezones based on search term
107
+ const filteredTimezones = computed(() => {
108
+ if (!timezoneSearchTerm.value) {
109
+ return commonTimezones;
110
+ }
111
+ const searchLower = timezoneSearchTerm.value.toLowerCase();
112
+ return commonTimezones.filter((tz: { label: string; timezone: string; offset: string }) => tz.label.toLowerCase().includes(searchLower) || tz.timezone.toLowerCase().includes(searchLower) || tz.offset.toLowerCase().includes(searchLower));
113
+ });
114
+
115
+ const statusOptions = [
116
+ { label: 'Confirmed', value: 'confirmed' },
117
+ { label: 'Tentative', value: 'tentative' },
118
+ { label: 'Cancelled', value: 'cancelled' },
119
+ ];
120
+
121
+ const recurringTypeOptions = [
122
+ { label: 'Daily', value: 'daily' },
123
+ { label: 'Weekly', value: 'weekly' },
124
+ { label: 'Monthly', value: 'monthly' },
125
+ { label: 'Yearly', value: 'yearly' },
126
+ ];
127
+
128
+ const colorOptions: Array<{ value: EventColor; label: string; bgClass: string; borderClass: string }> = [
129
+ { value: 'sky', label: 'Sky', bgClass: 'bg-sky-400 data-[state=checked]:bg-sky-400', borderClass: 'border-sky-400 data-[state=checked]:border-sky-400' },
130
+ { value: 'amber', label: 'Amber', bgClass: 'bg-amber-400 data-[state=checked]:bg-amber-400', borderClass: 'border-amber-400 data-[state=checked]:border-amber-400' },
131
+ { value: 'violet', label: 'Violet', bgClass: 'bg-violet-400 data-[state=checked]:bg-violet-400', borderClass: 'border-violet-400 data-[state=checked]:border-violet-400' },
132
+ { value: 'rose', label: 'Rose', bgClass: 'bg-rose-400 data-[state=checked]:bg-rose-400', borderClass: 'border-rose-400 data-[state=checked]:border-rose-400' },
133
+ { value: 'emerald', label: 'Emerald', bgClass: 'bg-emerald-400 data-[state=checked]:bg-emerald-400', borderClass: 'border-emerald-400 data-[state=checked]:border-emerald-400' },
134
+ { value: 'orange', label: 'Orange', bgClass: 'bg-orange-400 data-[state=checked]:bg-orange-400', borderClass: 'border-orange-400 data-[state=checked]:border-orange-400' },
135
+ ];
136
+
137
+ // Form reactive object
138
+ const form = reactive<CalendarEvent & { recurringEndType?: string }>({
139
+ id: props.mode === 'add' ? uuidv4 : props.eventData?.id || '',
140
+ title: '',
141
+ description: '',
142
+ startDate: ensureValidDate(props.targetDate),
143
+ endDate: ensureValidDate(props.targetDate ? addHours(new Date(props.targetDate), 1) : addHours(new Date(), 1)),
144
+ startTime: `${DefaultStartHour}:00`,
145
+ endTime: `${DefaultEndHour}:00`,
146
+ allDay: props.isAllDayFromCell || false,
147
+ color: 'sky' as EventColor,
148
+ location: '',
149
+ status: 'confirmed' as EventStatus,
150
+ timezone: userTimezone.value,
151
+ isRecurring: false,
152
+ recurringPattern: {
153
+ type: 'daily',
154
+ interval: 1,
155
+ daysOfWeek: [] as number[],
156
+ count: undefined,
157
+ endDate: new Date(),
158
+ dayOfMonth: undefined,
159
+ monthOfYear: undefined,
160
+ },
161
+ recurringId: undefined,
162
+ recurringEndType: 'never',
163
+ });
164
+
165
+ // VeeValidate form handling
166
+ const { handleSubmit, isSubmitting, setFieldValue, values, setValues, resetForm } = useForm({
167
+ validationSchema: eventModalSchema,
168
+ initialValues: form,
169
+ });
170
+
171
+ const endDateMinValue = computed<DateValue | undefined>(() => {
172
+ if (!values.startDate || !(values.startDate instanceof Date)) return undefined;
173
+ try {
174
+ return convertToDateValue(values.startDate, getLocalTimeZone());
175
+ } catch {
176
+ return undefined;
177
+ }
178
+ });
179
+
180
+ // Submit handler
181
+ const onSubmit = handleSubmit(async (values: any) => {
182
+ clearError();
183
+
184
+ const start = new Date(values.startDate);
185
+ const end = new Date(values.endDate);
186
+
187
+ // Handle all-day vs timed events
188
+ if (values.allDay) {
189
+ start.setHours(0, 0, 0, 0);
190
+ end.setHours(23, 59, 59, 999);
191
+ } else {
192
+ const [startHours = 0, startMinutes = 0] = (values.startTime || '09:00').split(':').map(Number);
193
+ const [endHours = 0, endMinutes = 0] = (values.endTime || '10:00').split(':').map(Number);
194
+
195
+ if (!validateEventTimes(startHours, startMinutes, endHours, endMinutes)) {
196
+ return;
197
+ }
198
+
199
+ start.setHours(startHours, startMinutes, 0);
200
+ end.setHours(endHours, endMinutes, 0);
201
+ }
202
+
203
+ // Validate that end date is not before start date
204
+ if (isBefore(end, start)) {
205
+ setError('End date cannot be before start date');
206
+ return;
207
+ }
208
+
209
+ // Use generic title if empty
210
+ const eventTitle = (values.title ?? '').trim() ? values.title : '(no title)';
211
+
212
+ // Process recurring pattern
213
+ const recurringPattern = processRecurringPattern(values, start);
214
+ // Ensure dates are proper Date objects and use correct field names
215
+ const eventData: CalendarEvent = {
216
+ ...values,
217
+ title: eventTitle,
218
+ startDate: start,
219
+ color: values.color as EventColor,
220
+ endDate: end,
221
+ recurringPattern,
222
+ recurringId: values.isRecurring && props.mode === 'add' ? uuidv4 : values.recurringId,
223
+ };
224
+
225
+ // Convert timezone before submitting
226
+ const submittedEvent = convertEventFromDisplayTimezone(eventData);
227
+ emit('submitEvent', submittedEvent, props.mode);
228
+ closePopup();
229
+ });
230
+
231
+ watch(
232
+ () => [props.isOpen, props.mode, props.eventData, props.targetDate, props.isAllDayFromCell],
233
+ ([isOpenNew, modeNew, eventDataNew, targetDateNew, isAllDayNew]) => {
234
+ if (isOpenNew) {
235
+ clearError(); // Clear any previous errors when opening modal
236
+ if (modeNew === 'edit' && eventDataNew && typeof eventDataNew === 'object' && 'startDate' in eventDataNew) {
237
+ // Determine the recurring end type for the UI
238
+ let recurringEndType = 'never';
239
+ if (eventDataNew.recurringPattern?.count) {
240
+ recurringEndType = 'after';
241
+ } else if (eventDataNew.recurringPattern?.endDate) {
242
+ recurringEndType = 'on';
243
+ }
244
+
245
+ const startDate = ensureValidDate(eventDataNew.startDate);
246
+ const endDate = ensureValidDate(eventDataNew.endDate);
247
+
248
+ // Update ref values
249
+ startDateValue.value = startDate;
250
+ endDateValue.value = endDate;
251
+ recurringEndDateValue.value = eventDataNew.recurringPattern?.endDate ? ensureValidDate(eventDataNew.recurringPattern.endDate) : undefined;
252
+ timezoneSearchTerm.value = '';
253
+ isAllDay.value = eventDataNew.allDay || false;
254
+ isRecurring.value = eventDataNew.isRecurring || false;
255
+
256
+ // Update form with edit data
257
+ const editFormData = {
258
+ ...eventDataNew,
259
+ startDate,
260
+ endDate,
261
+ startTime: formatTimeForInput(eventDataNew.startDate),
262
+ endTime: formatTimeForInput(eventDataNew.endDate),
263
+ recurringEndType,
264
+ recurringPattern: {
265
+ type: 'daily',
266
+ interval: 1,
267
+ daysOfWeek: [] as number[],
268
+ count: undefined,
269
+ endDate: undefined,
270
+ dayOfMonth: undefined,
271
+ monthOfYear: undefined,
272
+ ...eventDataNew.recurringPattern,
273
+ },
274
+ };
275
+ Object.assign(form, editFormData);
276
+ setValues(editFormData);
277
+ } else {
278
+ // 'add' mode or reset
279
+ const targetDate = ensureValidDate(targetDateNew);
280
+ const defaultEndDate = ensureValidDate(addHours(targetDate, 1));
281
+
282
+ // Update ref values
283
+ startDateValue.value = targetDate;
284
+ endDateValue.value = defaultEndDate;
285
+ recurringEndDateValue.value = undefined;
286
+ timezoneSearchTerm.value = '';
287
+ isAllDay.value = Boolean(isAllDayNew);
288
+ isRecurring.value = false;
289
+
290
+ // Reset form for add mode
291
+ const addFormData = {
292
+ id: '',
293
+ title: '',
294
+ description: '',
295
+ startDate: targetDate,
296
+ endDate: defaultEndDate,
297
+ allDay: Boolean(isAllDayNew),
298
+ color: 'sky' as EventColor,
299
+ location: '',
300
+ status: 'confirmed' as EventStatus,
301
+ timezone: userTimezone.value,
302
+ startTime: `${DefaultStartHour}:00`,
303
+ endTime: `${DefaultEndHour}:00`,
304
+ isRecurring: false,
305
+ recurringPattern: {
306
+ type: 'daily',
307
+ interval: 1,
308
+ daysOfWeek: [] as number[],
309
+ count: undefined,
310
+ endDate: undefined,
311
+ dayOfMonth: undefined,
312
+ monthOfYear: undefined,
313
+ },
314
+ recurringId: undefined,
315
+ recurringEndType: 'never',
316
+ };
317
+ Object.assign(form, addFormData);
318
+ setValues(addFormData);
319
+ }
320
+ }
321
+ },
322
+ { deep: true }
323
+ );
324
+
325
+ // Watch for changes to recurring pattern type and auto-populate fields
326
+ watch(
327
+ () => form.recurringPattern?.type,
328
+ (newType, oldType) => {
329
+ const startDate = form.startDate;
330
+ if (!startDate || !form.recurringPattern) return;
331
+
332
+ const date = ensureValidDate(startDate);
333
+
334
+ if (newType === 'weekly' && oldType !== 'weekly') {
335
+ const currentDaysOfWeek = form.recurringPattern.daysOfWeek || [];
336
+ if (currentDaysOfWeek.length === 0) {
337
+ // Auto-select the day of the week of the start date
338
+ const dayOfWeek = date.getDay();
339
+ form.recurringPattern.daysOfWeek = [dayOfWeek];
340
+ }
341
+ } else if (newType === 'monthly' && oldType !== 'monthly') {
342
+ const currentDayOfMonth = form.recurringPattern.dayOfMonth;
343
+ if (!currentDayOfMonth) {
344
+ // Auto-set the day of the month of the start date
345
+ form.recurringPattern.dayOfMonth = date.getDate();
346
+ }
347
+ } else if (newType === 'yearly' && oldType !== 'yearly') {
348
+ const currentMonthOfYear = form.recurringPattern.monthOfYear;
349
+ const currentDayOfMonth = form.recurringPattern.dayOfMonth;
350
+
351
+ if (!currentMonthOfYear) {
352
+ // Auto-set the month of the start date (getMonth() returns 0-11, but we want 1-12)
353
+ form.recurringPattern.monthOfYear = date.getMonth() + 1;
354
+ }
355
+ if (!currentDayOfMonth) {
356
+ // Auto-set the day of the month of the start date
357
+ form.recurringPattern.dayOfMonth = date.getDate();
358
+ }
359
+ }
360
+ }
361
+ );
362
+
363
+ const validateEventTimes = (startHours: number, startMinutes: number, endHours: number, endMinutes: number) => {
364
+ if (startHours < StartHour || startHours > EndHour || endHours < StartHour || endHours > EndHour) {
365
+ setError(`Selected time must be between ${StartHour}:00 and ${EndHour}:00`);
366
+ return false;
367
+ }
368
+ return true;
369
+ };
370
+
371
+ const processRecurringPattern = (value: any, start: Date) => {
372
+ if (!value.isRecurring || !value.recurringPattern) {
373
+ return undefined;
374
+ }
375
+
376
+ const recurringPattern = { ...value.recurringPattern };
377
+
378
+ // Handle end conditions
379
+ if (value.recurringEndType === 'never') {
380
+ recurringPattern.endDate = undefined;
381
+ recurringPattern.count = undefined;
382
+ recurringPattern.endsNever = true;
383
+ } else if (value.recurringEndType === 'after') {
384
+ recurringPattern.endDate = undefined;
385
+ recurringPattern.endsNever = false;
386
+ } else if (value.recurringEndType === 'on') {
387
+ recurringPattern.count = undefined;
388
+ recurringPattern.endsNever = false;
389
+ }
390
+
391
+ // Handle weekly events
392
+ if (recurringPattern.type === 'weekly' && (!recurringPattern.daysOfWeek || recurringPattern.daysOfWeek.length === 0)) {
393
+ recurringPattern.daysOfWeek = [start.getDay()];
394
+ }
395
+
396
+ // Handle monthly events
397
+ if (recurringPattern.type === 'monthly' && !recurringPattern.dayOfMonth) {
398
+ recurringPattern.dayOfMonth = start.getDate();
399
+ }
400
+
401
+ // Handle yearly events
402
+ if (recurringPattern.type === 'yearly') {
403
+ if (!recurringPattern.monthOfYear) {
404
+ recurringPattern.monthOfYear = start.getMonth() + 1;
405
+ }
406
+ if (!recurringPattern.dayOfMonth) {
407
+ recurringPattern.dayOfMonth = start.getDate();
408
+ }
409
+ }
410
+
411
+ return recurringPattern;
412
+ };
413
+
414
+ const closePopup = () => {
415
+ emit('update:isOpen', false);
416
+ };
417
+
418
+ const handleDelete = () => {
419
+ if (props.mode === 'edit' && props.eventData?.id) {
420
+ emit('deleteEvent', props.eventData.id);
421
+ closePopup();
422
+ }
423
+ };
424
+ </script>
425
+
426
+ <template>
427
+ <DynectModal :open="isOpen" :title="mode === 'add' ? 'Create Event' : 'Edit Event'" size="xl" :show-cancel="false" :show-action="false" @update:open="closePopup">
428
+ <!-- Error banner -->
429
+ <DynectFormError v-if="error" :error="error" class="mb-4" />
430
+
431
+ <form @submit="onSubmit">
432
+ <div class="grid gap-4 py-4">
433
+ <!-- Title -->
434
+ <div class="*:not-first:mt-1.5">
435
+ <DynectInput id="title" v-model="form.title" required label="Title" placeholder="Event title" />
436
+ </div>
437
+
438
+ <!-- Description -->
439
+ <div class="*:not-first:mt-1.5">
440
+ <DynectInput id="description" v-model="form.description" required label="Description" placeholder="Event description" />
441
+ </div>
442
+
443
+ <!-- Start Date + Start Time -->
444
+ <div class="flex gap-4">
445
+ <DynectDatePicker id="startDate" v-model="form.startDate" label="Start Date" :required="true" placeholder="Pick a date" class="flex-1" />
446
+ <DynectSelect v-if="!form.allDay" id="startTime" v-model="form.startTime" label="Start Time" placeholder="Select time" class="min-w-32" :options="timeOptions" />
447
+ </div>
448
+
449
+ <!-- End Date + End Time -->
450
+ <div class="flex gap-4">
451
+ <DynectDatePicker id="endDate" v-model="form.endDate" label="End Date" placeholder="Pick a date" class="flex-1" :min-value="endDateMinValue" />
452
+ <DynectSelect v-if="!form.allDay" id="endTime" v-model="form.endTime" label="End Time" placeholder="Select time" class="min-w-32" :options="timeOptions" />
453
+ </div>
454
+
455
+ <!-- All Day -->
456
+ <DynectCheckbox id="allDay" v-model="form.allDay" inline-label="All Day Event" />
457
+
458
+ <!-- Location -->
459
+ <div class="space-y-1">
460
+ <DynectInput id="location" v-model="form.location" label="Location" placeholder="Add event location">
461
+ <template #leading>
462
+ <Icon name="lucide:map-pin" class="size-4" />
463
+ </template>
464
+ </DynectInput>
465
+ <div v-if="form.location?.trim()" class="text-text-body bg-background flex items-center gap-2 rounded-md p-2 text-sm">
466
+ <Icon name="lucide:map-pin" size="14" class="shrink-0" />
467
+ <span class="truncate">{{ form.location }}</span>
468
+ </div>
469
+ </div>
470
+
471
+ <!-- Color -->
472
+ <DynectRadio id="color" v-model="form.color" label="Color" :options="colorOptions" :required="true" :hide-input="true" radio-group-class="grid grid-cols-2 gap-4 sm:grid-cols-4">
473
+ <template v-for="colorOption in colorOptions" :key="colorOption.value" #[colorOption.value]>
474
+ <div class="border-border-base-base-medium flex cursor-pointer flex-col items-center gap-1.5 rounded-md border p-2.5 text-center" :class="form.color === colorOption.value ? 'bg-bg-brand-soft border-border-base-brand' : 'bg-bg-primary-soft hover:bg-bg-secondary'">
475
+ <span :class="cn('size-6 rounded-full', colorOption.bgClass, colorOption.borderClass)" />
476
+ </div>
477
+ </template>
478
+ </DynectRadio>
479
+
480
+ <!-- Status -->
481
+ <DynectSelect id="status" v-model="form.status" label="Status" placeholder="Select status" :options="statusOptions" />
482
+
483
+ <!-- Timezone -->
484
+ <DynectSelect id="timezone" v-model="form.timezone" label="Timezone" placeholder="Select timezone" :options="commonTimezones" value-key="timezone" label-key="label" :searchable="true" search-placeholder="Search timezones...">
485
+ <template #option="{ option }">{{ option.label }} ({{ option.offset }})</template>
486
+ <template #selected="{ value }">{{ getTZDisplayName(String(value ?? '')) }}</template>
487
+ </DynectSelect>
488
+
489
+ <!-- Recurring Event -->
490
+ <div class="flex items-center gap-2">
491
+ <DynectCheckbox
492
+ id="isRecurring"
493
+ v-model="form.isRecurring"
494
+ inline-label=""
495
+ @update:checked="
496
+ (val: any) => {
497
+ isRecurring = val;
498
+ form.isRecurring = val;
499
+ }
500
+ "
501
+ />
502
+ <span class="flex cursor-default items-center gap-1.5 text-sm">
503
+ <Icon name="lucide:repeat" size="14" class="text-text-body" />
504
+ Recurring Event
505
+ </span>
506
+ </div>
507
+
508
+ <!-- Recurring pattern -->
509
+ <div v-if="form.isRecurring" class="bg-background space-y-4 rounded-md p-4">
510
+ <h4 class="text-foreground text-sm font-medium">Recurrence Pattern</h4>
511
+
512
+ <DynectSelect id="recurringPattern.type" :model-value="form.recurringPattern?.type" label="Repeat" placeholder="Select frequency" :options="recurringTypeOptions" @update:model-value="(v: any) => form.recurringPattern && (form.recurringPattern.type = v)" />
513
+
514
+ <div class="flex gap-4">
515
+ <DynectInput id="recurringPattern.interval" :model-value="form.recurringPattern?.interval" label="Every" type="number" placeholder="1" class="flex-1" @update:model-value="(v: any) => form.recurringPattern && (form.recurringPattern.interval = v)" />
516
+ <div class="flex flex-1 items-end">
517
+ <span class="text-text-body pb-2.5 text-sm"> {{ form.recurringPattern?.type || 'day(s)' }}{{ ((form.recurringPattern?.interval as number) ?? 0) > 1 ? 's' : '' }} </span>
518
+ </div>
519
+ </div>
520
+
521
+ <!-- Weekly: days of week -->
522
+ <div v-if="form.recurringPattern?.type === 'weekly'" class="space-y-1.5">
523
+ <span class="text-foreground text-sm font-medium">Days of the week</span>
524
+ <ToggleGroup type="multiple" variant="outline" size="sm" @update:model-value="(v: any) => setFieldValue('recurringPattern.daysOfWeek', v as number[])">
525
+ <ToggleGroupItem v-for="(day, index) in getDayNameShort()" :key="day" :value="index" :aria-label="`Toggle ${day}`" class="h-8 w-12 cursor-pointer p-0">
526
+ {{ day }}
527
+ </ToggleGroupItem>
528
+ </ToggleGroup>
529
+ </div>
530
+
531
+ <!-- End recurrence -->
532
+ <div class="space-y-2">
533
+ <span class="text-foreground text-sm font-medium">End recurrence</span>
534
+ <RadioGroup v-model="form.recurringEndType" class="space-y-2">
535
+ <div class="flex items-center space-x-2">
536
+ <RadioGroupItem id="end-never" value="never" />
537
+ <Label for="end-never" class="font-normal">Never</Label>
538
+ </div>
539
+
540
+ <div class="flex items-center space-x-2">
541
+ <RadioGroupItem id="end-after" value="after" />
542
+ <Label for="end-after" class="font-normal">After</Label>
543
+ <DynectInput id="recurringPattern.count" :model-value="form.recurringPattern?.count" type="number" class="w-20" placeholder="10" :disabled="form.recurringEndType !== 'after'" @update:model-value="(v: any) => form.recurringPattern && (form.recurringPattern.count = v)" />
544
+ <span class="text-text-body text-sm">occurrences</span>
545
+ </div>
546
+
547
+ <div class="flex items-center space-x-2">
548
+ <RadioGroupItem id="end-on" value="on" />
549
+ <Label for="end-on" class="font-normal">On</Label>
550
+ <DynectDatePicker
551
+ id="recurringPattern.endDate"
552
+ :model-value="form.recurringPattern?.endDate"
553
+ placeholder="Pick date"
554
+ :disabled="form.recurringEndType !== 'on'"
555
+ :min-value="today(getLocalTimeZone())"
556
+ @update:model-value="(v: any) => form.recurringPattern && (form.recurringPattern.endDate = v)"
557
+ />
558
+ </div>
559
+ </RadioGroup>
560
+ </div>
561
+ </div>
562
+ </div>
563
+
564
+ <DialogFooter>
565
+ <DynectButton type="button" color="secondary" @click="closePopup">Cancel</DynectButton>
566
+ <DynectButton type="submit" color="brand" :disabled="isSubmitting">
567
+ {{ isSubmitting ? 'Saving...' : mode === 'add' ? 'Add Event' : 'Save Changes' }}
568
+ </DynectButton>
569
+ <DynectButton v-if="mode === 'edit'" type="button" color="danger" class="ml-auto" @click="handleDelete"> Delete </DynectButton>
570
+ </DialogFooter>
571
+ </form>
572
+ </DynectModal>
573
+ </template>