create-deesse-app 0.5.0 → 0.5.1
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.
- package/README.md +1 -2
- package/dist/src/copy.d.ts +1 -1
- package/dist/src/copy.d.ts.map +1 -1
- package/dist/src/copy.js +3 -1
- package/dist/src/copy.js.map +1 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/templates/default/src/app/(deesse)/admin/[[...slug]]/page.tsx +0 -2
- package/templates/without-admin/AGENTS.md +5 -5
- package/templates/without-admin/CLAUDE.md +1 -1
- package/templates/without-admin/README.md +36 -28
- package/templates/without-admin/components.json +25 -25
- package/templates/without-admin/drizzle.config.ts +1 -1
- package/templates/without-admin/eslint.config.mjs +18 -18
- package/templates/without-admin/next.config.ts +7 -0
- package/templates/without-admin/package-lock.json +11412 -0
- package/templates/without-admin/package.json +41 -50
- package/templates/without-admin/postcss.config.mjs +7 -7
- package/templates/without-admin/public/file.svg +1 -1
- package/templates/without-admin/public/globe.svg +1 -1
- package/templates/without-admin/public/nesalia.svg +2 -2
- package/templates/without-admin/public/next.svg +1 -0
- package/templates/without-admin/public/vercel.svg +1 -0
- package/templates/without-admin/public/window.svg +1 -1
- package/templates/without-admin/src/app/(deesse)/api/[...slug]/route.ts +5 -0
- package/templates/without-admin/src/app/(frontend)/(auth)/login/page.tsx +85 -0
- package/templates/without-admin/src/app/(frontend)/(auth)/signup/page.tsx +90 -0
- package/templates/without-admin/src/app/(frontend)/home/page.tsx +19 -0
- package/templates/without-admin/src/app/(frontend)/layout.tsx +14 -0
- package/templates/without-admin/src/app/{page.tsx → (frontend)/page.tsx} +1 -1
- package/templates/without-admin/src/app/globals.css +129 -129
- package/templates/without-admin/src/app/icon.svg +100 -100
- package/templates/without-admin/src/app/layout.tsx +37 -33
- package/templates/without-admin/src/components/header.tsx +123 -0
- package/templates/without-admin/src/components/password-input.tsx +50 -0
- package/templates/without-admin/src/components/providers/index.tsx +3 -1
- package/templates/without-admin/src/components/providers/theme-provider.tsx +1 -1
- package/templates/without-admin/src/components/ui/alert-dialog.tsx +199 -0
- package/templates/without-admin/src/components/ui/avatar.tsx +112 -0
- package/templates/without-admin/src/components/ui/button.tsx +67 -0
- package/templates/without-admin/src/components/ui/dialog.tsx +168 -0
- package/templates/without-admin/src/components/ui/dropdown-menu.tsx +269 -0
- package/templates/without-admin/src/components/ui/input.tsx +19 -0
- package/templates/without-admin/src/components/ui/label.tsx +24 -0
- package/templates/without-admin/src/components/ui/sonner.tsx +49 -0
- package/templates/without-admin/src/components/ui/tooltip.tsx +57 -0
- package/templates/without-admin/src/db/schema/auth-schema.ts +1 -1
- package/templates/without-admin/src/db/schema/index.ts +1 -0
- package/templates/without-admin/src/deesse.config.ts +1 -3
- package/templates/without-admin/src/lib/deesse.ts +1 -1
- package/templates/without-admin/src/lib/utils.ts +6 -6
- package/templates/without-admin/tsconfig.json +34 -35
- package/templates/minimal/.gitkeep +0 -0
- package/templates/without-admin/drizzle/0000_cheerful_clea.sql +0 -58
- package/templates/without-admin/drizzle/meta/0000_snapshot.json +0 -405
- package/templates/without-admin/drizzle/meta/_journal.json +0 -13
- package/templates/without-admin/skills-lock.json +0 -10
- package/templates/without-admin/src/deesse.pages.tsx +0 -1
- package/templates/without-admin/src/hooks/use-mobile.ts +0 -5
- package/templates/without-admin/src/lib/auth.ts +0 -3
|
@@ -1,109 +1,109 @@
|
|
|
1
1
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
2
2
|
width="100%" viewBox="0 0 400 400" enable-background="new 0 0 400 400" xml:space="preserve">
|
|
3
|
-
<path fill="#0E0E0E" opacity="1.000000" stroke="none"
|
|
3
|
+
<path fill="#0E0E0E" opacity="1.000000" stroke="none"
|
|
4
4
|
d="
|
|
5
|
-
M267.000000,401.000000
|
|
6
|
-
C178.027649,401.000000 89.555305,401.000000 1.041477,401.000000
|
|
7
|
-
C1.041477,267.735992 1.041477,134.471954 1.041477,1.103967
|
|
8
|
-
C134.222290,1.103967 267.444672,1.103967 400.833557,1.103967
|
|
9
|
-
C400.833557,134.333160 400.833557,267.666565 400.833557,401.000000
|
|
10
|
-
C356.472015,401.000000 311.986023,401.000000 267.000000,401.000000
|
|
11
|
-
M245.949005,111.425331
|
|
12
|
-
C260.777893,111.457680 275.606995,111.449310 290.435516,111.542068
|
|
13
|
-
C296.525177,111.580154 296.922760,112.077141 296.923096,118.165054
|
|
14
|
-
C296.926331,176.653320 296.926575,235.141586 296.926117,293.629852
|
|
15
|
-
C296.926056,301.056915 296.875092,301.102844 289.380524,301.102417
|
|
16
|
-
C251.721390,301.100220 214.062149,301.069031 176.403397,301.186005
|
|
17
|
-
C174.592148,301.191620 171.532974,302.119049 171.179001,303.270264
|
|
18
|
-
C168.878952,310.751251 167.167358,318.413177 165.272491,325.978363
|
|
19
|
-
C166.841049,326.396210 167.158066,326.554504 167.475143,326.554657
|
|
20
|
-
C209.966354,326.575287 252.457870,326.660797 294.948303,326.482452
|
|
21
|
-
C299.474518,326.463470 304.489777,325.870270 308.421509,323.864349
|
|
22
|
-
C319.067963,318.432678 323.624512,308.467682 323.671570,297.135284
|
|
23
|
-
C323.924011,236.315613 324.128143,175.490585 323.522003,114.675652
|
|
24
|
-
C323.338013,96.214424 314.001709,86.883896 297.602203,85.613609
|
|
25
|
-
C278.910370,84.165764 260.020203,85.278717 241.073532,85.278717
|
|
26
|
-
C240.619827,87.590599 240.022095,89.684921 239.819992,91.816750
|
|
27
|
-
C238.212769,108.769485 231.617706,123.910545 222.134048,137.693375
|
|
28
|
-
C215.125336,147.879288 207.484436,157.729233 199.254807,166.952209
|
|
29
|
-
C187.708206,179.892578 175.710541,192.415085 165.996140,206.862473
|
|
30
|
-
C159.675659,216.262360 153.910156,226.033386 152.970932,237.592255
|
|
31
|
-
C151.974960,249.849533 151.545609,262.160675 151.165039,274.457458
|
|
32
|
-
C150.893784,283.222290 151.112381,292.002258 151.112381,301.104889
|
|
33
|
-
C137.275574,301.104889 123.978027,301.106232 110.680481,301.104340
|
|
34
|
-
C104.057365,301.103394 103.971504,301.032928 103.972267,294.388214
|
|
35
|
-
C103.978943,236.233261 103.990631,178.078308 104.006310,119.923355
|
|
36
|
-
C104.008644,111.264519 104.021843,111.307678 112.583542,111.312515
|
|
37
|
-
C147.742416,111.332352 182.901306,111.309959 218.060150,111.353218
|
|
38
|
-
C220.669342,111.356430 223.336090,111.484184 223.999939,108.302216
|
|
39
|
-
C225.573746,100.758461 226.920395,93.167320 228.346146,85.662270
|
|
40
|
-
C227.221619,85.353386 226.908051,85.191887 226.594406,85.191780
|
|
41
|
-
C186.103012,85.177856 145.603302,84.698196 105.124199,85.402382
|
|
42
|
-
C88.354301,85.694115 77.444130,96.086456 77.298378,114.197830
|
|
43
|
-
C76.807610,175.181564 76.952293,236.172745 77.355705,297.157745
|
|
44
|
-
C77.396233,303.285461 80.009277,309.832611 82.945442,315.382538
|
|
45
|
-
C85.908882,320.983948 91.440399,325.556458 97.978798,325.795715
|
|
46
|
-
C116.265434,326.464935 134.585632,326.218964 152.892715,326.306152
|
|
47
|
-
C153.146179,326.307373 153.401367,325.944122 153.392334,325.950989
|
|
48
|
-
C154.655365,318.834473 155.298706,311.801636 157.202545,305.128418
|
|
49
|
-
C162.672943,285.953857 172.318451,268.877167 184.677475,253.293350
|
|
50
|
-
C190.435135,246.033356 196.079575,238.680786 201.956680,231.518982
|
|
51
|
-
C210.224243,221.444229 218.953018,211.735733 226.956192,201.459137
|
|
52
|
-
C239.035538,185.948502 244.168961,168.084747 243.820374,148.462372
|
|
53
|
-
C243.610443,136.644394 243.954102,124.816582 244.513947,112.678047
|
|
54
|
-
C244.693604,112.352043 244.873260,112.026039 245.949005,111.425331
|
|
5
|
+
M267.000000,401.000000
|
|
6
|
+
C178.027649,401.000000 89.555305,401.000000 1.041477,401.000000
|
|
7
|
+
C1.041477,267.735992 1.041477,134.471954 1.041477,1.103967
|
|
8
|
+
C134.222290,1.103967 267.444672,1.103967 400.833557,1.103967
|
|
9
|
+
C400.833557,134.333160 400.833557,267.666565 400.833557,401.000000
|
|
10
|
+
C356.472015,401.000000 311.986023,401.000000 267.000000,401.000000
|
|
11
|
+
M245.949005,111.425331
|
|
12
|
+
C260.777893,111.457680 275.606995,111.449310 290.435516,111.542068
|
|
13
|
+
C296.525177,111.580154 296.922760,112.077141 296.923096,118.165054
|
|
14
|
+
C296.926331,176.653320 296.926575,235.141586 296.926117,293.629852
|
|
15
|
+
C296.926056,301.056915 296.875092,301.102844 289.380524,301.102417
|
|
16
|
+
C251.721390,301.100220 214.062149,301.069031 176.403397,301.186005
|
|
17
|
+
C174.592148,301.191620 171.532974,302.119049 171.179001,303.270264
|
|
18
|
+
C168.878952,310.751251 167.167358,318.413177 165.272491,325.978363
|
|
19
|
+
C166.841049,326.396210 167.158066,326.554504 167.475143,326.554657
|
|
20
|
+
C209.966354,326.575287 252.457870,326.660797 294.948303,326.482452
|
|
21
|
+
C299.474518,326.463470 304.489777,325.870270 308.421509,323.864349
|
|
22
|
+
C319.067963,318.432678 323.624512,308.467682 323.671570,297.135284
|
|
23
|
+
C323.924011,236.315613 324.128143,175.490585 323.522003,114.675652
|
|
24
|
+
C323.338013,96.214424 314.001709,86.883896 297.602203,85.613609
|
|
25
|
+
C278.910370,84.165764 260.020203,85.278717 241.073532,85.278717
|
|
26
|
+
C240.619827,87.590599 240.022095,89.684921 239.819992,91.816750
|
|
27
|
+
C238.212769,108.769485 231.617706,123.910545 222.134048,137.693375
|
|
28
|
+
C215.125336,147.879288 207.484436,157.729233 199.254807,166.952209
|
|
29
|
+
C187.708206,179.892578 175.710541,192.415085 165.996140,206.862473
|
|
30
|
+
C159.675659,216.262360 153.910156,226.033386 152.970932,237.592255
|
|
31
|
+
C151.974960,249.849533 151.545609,262.160675 151.165039,274.457458
|
|
32
|
+
C150.893784,283.222290 151.112381,292.002258 151.112381,301.104889
|
|
33
|
+
C137.275574,301.104889 123.978027,301.106232 110.680481,301.104340
|
|
34
|
+
C104.057365,301.103394 103.971504,301.032928 103.972267,294.388214
|
|
35
|
+
C103.978943,236.233261 103.990631,178.078308 104.006310,119.923355
|
|
36
|
+
C104.008644,111.264519 104.021843,111.307678 112.583542,111.312515
|
|
37
|
+
C147.742416,111.332352 182.901306,111.309959 218.060150,111.353218
|
|
38
|
+
C220.669342,111.356430 223.336090,111.484184 223.999939,108.302216
|
|
39
|
+
C225.573746,100.758461 226.920395,93.167320 228.346146,85.662270
|
|
40
|
+
C227.221619,85.353386 226.908051,85.191887 226.594406,85.191780
|
|
41
|
+
C186.103012,85.177856 145.603302,84.698196 105.124199,85.402382
|
|
42
|
+
C88.354301,85.694115 77.444130,96.086456 77.298378,114.197830
|
|
43
|
+
C76.807610,175.181564 76.952293,236.172745 77.355705,297.157745
|
|
44
|
+
C77.396233,303.285461 80.009277,309.832611 82.945442,315.382538
|
|
45
|
+
C85.908882,320.983948 91.440399,325.556458 97.978798,325.795715
|
|
46
|
+
C116.265434,326.464935 134.585632,326.218964 152.892715,326.306152
|
|
47
|
+
C153.146179,326.307373 153.401367,325.944122 153.392334,325.950989
|
|
48
|
+
C154.655365,318.834473 155.298706,311.801636 157.202545,305.128418
|
|
49
|
+
C162.672943,285.953857 172.318451,268.877167 184.677475,253.293350
|
|
50
|
+
C190.435135,246.033356 196.079575,238.680786 201.956680,231.518982
|
|
51
|
+
C210.224243,221.444229 218.953018,211.735733 226.956192,201.459137
|
|
52
|
+
C239.035538,185.948502 244.168961,168.084747 243.820374,148.462372
|
|
53
|
+
C243.610443,136.644394 243.954102,124.816582 244.513947,112.678047
|
|
54
|
+
C244.693604,112.352043 244.873260,112.026039 245.949005,111.425331
|
|
55
55
|
z"/>
|
|
56
|
-
<path fill="#FBFBFB" opacity="1.000000" stroke="none"
|
|
56
|
+
<path fill="#FBFBFB" opacity="1.000000" stroke="none"
|
|
57
57
|
d="
|
|
58
|
-
M244.048981,112.993195
|
|
59
|
-
C243.954102,124.816582 243.610443,136.644394 243.820374,148.462372
|
|
60
|
-
C244.168961,168.084747 239.035538,185.948502 226.956192,201.459137
|
|
61
|
-
C218.953018,211.735733 210.224243,221.444229 201.956680,231.518982
|
|
62
|
-
C196.079575,238.680786 190.435135,246.033356 184.677475,253.293350
|
|
63
|
-
C172.318451,268.877167 162.672943,285.953857 157.202545,305.128418
|
|
64
|
-
C155.298706,311.801636 154.655365,318.834473 153.392334,325.950989
|
|
65
|
-
C153.401367,325.944122 153.146179,326.307373 152.892715,326.306152
|
|
66
|
-
C134.585632,326.218964 116.265434,326.464935 97.978798,325.795715
|
|
67
|
-
C91.440399,325.556458 85.908882,320.983948 82.945442,315.382538
|
|
68
|
-
C80.009277,309.832611 77.396233,303.285461 77.355705,297.157745
|
|
69
|
-
C76.952293,236.172745 76.807610,175.181564 77.298378,114.197830
|
|
70
|
-
C77.444130,96.086456 88.354301,85.694115 105.124199,85.402382
|
|
71
|
-
C145.603302,84.698196 186.103012,85.177856 226.594406,85.191780
|
|
72
|
-
C226.908051,85.191887 227.221619,85.353386 228.346146,85.662270
|
|
73
|
-
C226.920395,93.167320 225.573746,100.758461 223.999939,108.302216
|
|
74
|
-
C223.336090,111.484184 220.669342,111.356430 218.060150,111.353218
|
|
75
|
-
C182.901306,111.309959 147.742416,111.332352 112.583542,111.312515
|
|
76
|
-
C104.021843,111.307678 104.008644,111.264519 104.006310,119.923355
|
|
77
|
-
C103.990631,178.078308 103.978943,236.233261 103.972267,294.388214
|
|
78
|
-
C103.971504,301.032928 104.057365,301.103394 110.680481,301.104340
|
|
79
|
-
C123.978027,301.106232 137.275574,301.104889 151.112381,301.104889
|
|
80
|
-
C151.112381,292.002258 150.893784,283.222290 151.165039,274.457458
|
|
81
|
-
C151.545609,262.160675 151.974960,249.849533 152.970932,237.592255
|
|
82
|
-
C153.910156,226.033386 159.675659,216.262360 165.996140,206.862473
|
|
83
|
-
C175.710541,192.415085 187.708206,179.892578 199.254807,166.952209
|
|
84
|
-
C207.484436,157.729233 215.125336,147.879288 222.134048,137.693375
|
|
85
|
-
C231.617706,123.910545 238.212769,108.769485 239.819992,91.816750
|
|
86
|
-
C240.022095,89.684921 240.619827,87.590599 241.073532,85.278717
|
|
87
|
-
C260.020203,85.278717 278.910370,84.165764 297.602203,85.613609
|
|
88
|
-
C314.001709,86.883896 323.338013,96.214424 323.522003,114.675652
|
|
89
|
-
C324.128143,175.490585 323.924011,236.315613 323.671570,297.135284
|
|
90
|
-
C323.624512,308.467682 319.067963,318.432678 308.421509,323.864349
|
|
91
|
-
C304.489777,325.870270 299.474518,326.463470 294.948303,326.482452
|
|
92
|
-
C252.457870,326.660797 209.966354,326.575287 167.475143,326.554657
|
|
93
|
-
C167.158066,326.554504 166.841049,326.396210 165.272491,325.978363
|
|
94
|
-
C167.167358,318.413177 168.878952,310.751251 171.179001,303.270264
|
|
95
|
-
C171.532974,302.119049 174.592148,301.191620 176.403397,301.186005
|
|
96
|
-
C214.062149,301.069031 251.721390,301.100220 289.380524,301.102417
|
|
97
|
-
C296.875092,301.102844 296.926056,301.056915 296.926117,293.629852
|
|
98
|
-
C296.926575,235.141586 296.926331,176.653320 296.923096,118.165054
|
|
99
|
-
C296.922760,112.077141 296.525177,111.580154 290.435516,111.542068
|
|
100
|
-
C275.606995,111.449310 260.777893,111.457680 245.138916,111.531952
|
|
101
|
-
C244.235550,112.090118 244.142258,112.541656 244.048981,112.993195
|
|
58
|
+
M244.048981,112.993195
|
|
59
|
+
C243.954102,124.816582 243.610443,136.644394 243.820374,148.462372
|
|
60
|
+
C244.168961,168.084747 239.035538,185.948502 226.956192,201.459137
|
|
61
|
+
C218.953018,211.735733 210.224243,221.444229 201.956680,231.518982
|
|
62
|
+
C196.079575,238.680786 190.435135,246.033356 184.677475,253.293350
|
|
63
|
+
C172.318451,268.877167 162.672943,285.953857 157.202545,305.128418
|
|
64
|
+
C155.298706,311.801636 154.655365,318.834473 153.392334,325.950989
|
|
65
|
+
C153.401367,325.944122 153.146179,326.307373 152.892715,326.306152
|
|
66
|
+
C134.585632,326.218964 116.265434,326.464935 97.978798,325.795715
|
|
67
|
+
C91.440399,325.556458 85.908882,320.983948 82.945442,315.382538
|
|
68
|
+
C80.009277,309.832611 77.396233,303.285461 77.355705,297.157745
|
|
69
|
+
C76.952293,236.172745 76.807610,175.181564 77.298378,114.197830
|
|
70
|
+
C77.444130,96.086456 88.354301,85.694115 105.124199,85.402382
|
|
71
|
+
C145.603302,84.698196 186.103012,85.177856 226.594406,85.191780
|
|
72
|
+
C226.908051,85.191887 227.221619,85.353386 228.346146,85.662270
|
|
73
|
+
C226.920395,93.167320 225.573746,100.758461 223.999939,108.302216
|
|
74
|
+
C223.336090,111.484184 220.669342,111.356430 218.060150,111.353218
|
|
75
|
+
C182.901306,111.309959 147.742416,111.332352 112.583542,111.312515
|
|
76
|
+
C104.021843,111.307678 104.008644,111.264519 104.006310,119.923355
|
|
77
|
+
C103.990631,178.078308 103.978943,236.233261 103.972267,294.388214
|
|
78
|
+
C103.971504,301.032928 104.057365,301.103394 110.680481,301.104340
|
|
79
|
+
C123.978027,301.106232 137.275574,301.104889 151.112381,301.104889
|
|
80
|
+
C151.112381,292.002258 150.893784,283.222290 151.165039,274.457458
|
|
81
|
+
C151.545609,262.160675 151.974960,249.849533 152.970932,237.592255
|
|
82
|
+
C153.910156,226.033386 159.675659,216.262360 165.996140,206.862473
|
|
83
|
+
C175.710541,192.415085 187.708206,179.892578 199.254807,166.952209
|
|
84
|
+
C207.484436,157.729233 215.125336,147.879288 222.134048,137.693375
|
|
85
|
+
C231.617706,123.910545 238.212769,108.769485 239.819992,91.816750
|
|
86
|
+
C240.022095,89.684921 240.619827,87.590599 241.073532,85.278717
|
|
87
|
+
C260.020203,85.278717 278.910370,84.165764 297.602203,85.613609
|
|
88
|
+
C314.001709,86.883896 323.338013,96.214424 323.522003,114.675652
|
|
89
|
+
C324.128143,175.490585 323.924011,236.315613 323.671570,297.135284
|
|
90
|
+
C323.624512,308.467682 319.067963,318.432678 308.421509,323.864349
|
|
91
|
+
C304.489777,325.870270 299.474518,326.463470 294.948303,326.482452
|
|
92
|
+
C252.457870,326.660797 209.966354,326.575287 167.475143,326.554657
|
|
93
|
+
C167.158066,326.554504 166.841049,326.396210 165.272491,325.978363
|
|
94
|
+
C167.167358,318.413177 168.878952,310.751251 171.179001,303.270264
|
|
95
|
+
C171.532974,302.119049 174.592148,301.191620 176.403397,301.186005
|
|
96
|
+
C214.062149,301.069031 251.721390,301.100220 289.380524,301.102417
|
|
97
|
+
C296.875092,301.102844 296.926056,301.056915 296.926117,293.629852
|
|
98
|
+
C296.926575,235.141586 296.926331,176.653320 296.923096,118.165054
|
|
99
|
+
C296.922760,112.077141 296.525177,111.580154 290.435516,111.542068
|
|
100
|
+
C275.606995,111.449310 260.777893,111.457680 245.138916,111.531952
|
|
101
|
+
C244.235550,112.090118 244.142258,112.541656 244.048981,112.993195
|
|
102
102
|
z"/>
|
|
103
|
-
<path fill="#030304" opacity="1.000000" stroke="none"
|
|
103
|
+
<path fill="#030304" opacity="1.000000" stroke="none"
|
|
104
104
|
d="
|
|
105
|
-
M244.281464,112.835617
|
|
106
|
-
C244.142258,112.541656 244.235550,112.090118 244.690872,111.669312
|
|
107
|
-
C244.873260,112.026039 244.693604,112.352043 244.281464,112.835617
|
|
105
|
+
M244.281464,112.835617
|
|
106
|
+
C244.142258,112.541656 244.235550,112.090118 244.690872,111.669312
|
|
107
|
+
C244.873260,112.026039 244.693604,112.352043 244.281464,112.835617
|
|
108
108
|
z"/>
|
|
109
109
|
</svg>
|
|
@@ -1,33 +1,37 @@
|
|
|
1
|
-
import { AppProvider } from '@/components/providers';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
1
|
+
import { AppProvider } from '@/components/providers';
|
|
2
|
+
import { Header } from '@/components/header';
|
|
3
|
+
import type { Metadata } from 'next';
|
|
4
|
+
import { Geist, Geist_Mono } from 'next/font/google';
|
|
5
|
+
import './globals.css';
|
|
6
|
+
|
|
7
|
+
const geistSans = Geist({
|
|
8
|
+
variable: '--font-sans',
|
|
9
|
+
subsets: ['latin'],
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
const geistMono = Geist_Mono({
|
|
13
|
+
variable: '--font-mono',
|
|
14
|
+
subsets: ['latin'],
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const metadata: Metadata = {
|
|
18
|
+
title: 'Create Deesse App',
|
|
19
|
+
description: 'Generated by create deesse app',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default function RootLayout({
|
|
23
|
+
children,
|
|
24
|
+
}: Readonly<{
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
}>) {
|
|
27
|
+
return (
|
|
28
|
+
<html lang="en" className={`${geistSans.variable} ${geistMono.variable} h-full antialiased`} suppressHydrationWarning>
|
|
29
|
+
<body className="min-h-full flex flex-col font-sans">
|
|
30
|
+
<AppProvider>
|
|
31
|
+
<Header />
|
|
32
|
+
{children}
|
|
33
|
+
</AppProvider>
|
|
34
|
+
</body>
|
|
35
|
+
</html>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import Image from "next/image"
|
|
5
|
+
import Link from "next/link"
|
|
6
|
+
import { useRouter } from "next/navigation"
|
|
7
|
+
import { toast } from "sonner"
|
|
8
|
+
import { Button } from "@/components/ui/button"
|
|
9
|
+
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
|
|
10
|
+
import {
|
|
11
|
+
DropdownMenu,
|
|
12
|
+
DropdownMenuContent,
|
|
13
|
+
DropdownMenuItem,
|
|
14
|
+
DropdownMenuTrigger,
|
|
15
|
+
} from "@/components/ui/dropdown-menu"
|
|
16
|
+
import {
|
|
17
|
+
AlertDialog,
|
|
18
|
+
AlertDialogAction,
|
|
19
|
+
AlertDialogCancel,
|
|
20
|
+
AlertDialogContent,
|
|
21
|
+
AlertDialogDescription,
|
|
22
|
+
AlertDialogFooter,
|
|
23
|
+
AlertDialogHeader,
|
|
24
|
+
AlertDialogTitle,
|
|
25
|
+
} from "@/components/ui/alert-dialog"
|
|
26
|
+
import { client } from "@/lib/client"
|
|
27
|
+
|
|
28
|
+
export function Header() {
|
|
29
|
+
const router = useRouter()
|
|
30
|
+
const { data: session, isPending } = client.auth.useSession()
|
|
31
|
+
const [showLogoutDialog, setShowLogoutDialog] = React.useState(false)
|
|
32
|
+
|
|
33
|
+
const handleSignOut = async () => {
|
|
34
|
+
await client.auth.signOut()
|
|
35
|
+
toast.success("Signed out successfully")
|
|
36
|
+
router.push("/")
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (isPending) {
|
|
40
|
+
return (
|
|
41
|
+
<header className="flex h-14 items-center border-b border-border bg-background">
|
|
42
|
+
<div className="flex items-center justify-between w-full px-4 mx-auto max-w-7xl">
|
|
43
|
+
<Link href="/" className="flex items-center gap-2">
|
|
44
|
+
<Image
|
|
45
|
+
src="/nesalia.svg"
|
|
46
|
+
alt="Logo"
|
|
47
|
+
width={36}
|
|
48
|
+
height={36}
|
|
49
|
+
loading="eager"
|
|
50
|
+
/>
|
|
51
|
+
</Link>
|
|
52
|
+
</div>
|
|
53
|
+
</header>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return (
|
|
58
|
+
<header className="flex h-14 items-center border-b border-border bg-background">
|
|
59
|
+
<div className="flex items-center justify-between w-full px-4 mx-auto max-w-7xl">
|
|
60
|
+
<Link href="/" className="flex items-center gap-2">
|
|
61
|
+
<Image
|
|
62
|
+
src="/nesalia.svg"
|
|
63
|
+
alt="Logo"
|
|
64
|
+
width={36}
|
|
65
|
+
height={36}
|
|
66
|
+
loading="eager"
|
|
67
|
+
/>
|
|
68
|
+
</Link>
|
|
69
|
+
<nav className="flex items-center gap-2">
|
|
70
|
+
{session ? (
|
|
71
|
+
<>
|
|
72
|
+
<Button variant="outline" asChild>
|
|
73
|
+
<Link href="/home">Dashboard</Link>
|
|
74
|
+
</Button>
|
|
75
|
+
<DropdownMenu>
|
|
76
|
+
<DropdownMenuTrigger asChild>
|
|
77
|
+
<Avatar className="cursor-pointer">
|
|
78
|
+
<AvatarImage
|
|
79
|
+
src={`https://vercel.com/api/www/avatar?s=64&u=${session.user.name}`}
|
|
80
|
+
alt={session.user.name ?? "User"}
|
|
81
|
+
/>
|
|
82
|
+
<AvatarFallback>
|
|
83
|
+
{session.user.name?.[0] ?? "U"}
|
|
84
|
+
</AvatarFallback>
|
|
85
|
+
</Avatar>
|
|
86
|
+
</DropdownMenuTrigger>
|
|
87
|
+
<DropdownMenuContent align="end">
|
|
88
|
+
<DropdownMenuItem onSelect={() => setShowLogoutDialog(true)}>
|
|
89
|
+
Sign out
|
|
90
|
+
</DropdownMenuItem>
|
|
91
|
+
</DropdownMenuContent>
|
|
92
|
+
</DropdownMenu>
|
|
93
|
+
|
|
94
|
+
<AlertDialog open={showLogoutDialog} onOpenChange={setShowLogoutDialog}>
|
|
95
|
+
<AlertDialogContent>
|
|
96
|
+
<AlertDialogHeader>
|
|
97
|
+
<AlertDialogTitle>Sign out</AlertDialogTitle>
|
|
98
|
+
<AlertDialogDescription>
|
|
99
|
+
Are you sure you want to sign out?
|
|
100
|
+
</AlertDialogDescription>
|
|
101
|
+
</AlertDialogHeader>
|
|
102
|
+
<AlertDialogFooter>
|
|
103
|
+
<AlertDialogCancel>Cancel</AlertDialogCancel>
|
|
104
|
+
<AlertDialogAction onClick={handleSignOut}>Sign out</AlertDialogAction>
|
|
105
|
+
</AlertDialogFooter>
|
|
106
|
+
</AlertDialogContent>
|
|
107
|
+
</AlertDialog>
|
|
108
|
+
</>
|
|
109
|
+
) : (
|
|
110
|
+
<>
|
|
111
|
+
<Button variant="outline" asChild>
|
|
112
|
+
<Link href="/login">Login</Link>
|
|
113
|
+
</Button>
|
|
114
|
+
<Button asChild>
|
|
115
|
+
<Link href="/signup">Sign up</Link>
|
|
116
|
+
</Button>
|
|
117
|
+
</>
|
|
118
|
+
)}
|
|
119
|
+
</nav>
|
|
120
|
+
</div>
|
|
121
|
+
</header>
|
|
122
|
+
)
|
|
123
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
import { Eye, EyeOff } from "lucide-react"
|
|
5
|
+
|
|
6
|
+
import { cn } from "@/lib/utils"
|
|
7
|
+
import { Button } from "@/components/ui/button"
|
|
8
|
+
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
|
|
9
|
+
|
|
10
|
+
function PasswordInput({ className, ...props }: React.ComponentProps<"input">) {
|
|
11
|
+
const [showPassword, setShowPassword] = React.useState(false)
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<TooltipProvider>
|
|
15
|
+
<div className="relative">
|
|
16
|
+
<input
|
|
17
|
+
type={showPassword ? "text" : "password"}
|
|
18
|
+
data-slot="input"
|
|
19
|
+
className={cn(
|
|
20
|
+
"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent pr-8 px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",
|
|
21
|
+
className
|
|
22
|
+
)}
|
|
23
|
+
{...props}
|
|
24
|
+
/>
|
|
25
|
+
<Tooltip>
|
|
26
|
+
<TooltipTrigger asChild>
|
|
27
|
+
<Button
|
|
28
|
+
type="button"
|
|
29
|
+
variant="ghost"
|
|
30
|
+
size="icon"
|
|
31
|
+
className="absolute right-0 top-0 h-full px-2 py-1"
|
|
32
|
+
onClick={() => setShowPassword(!showPassword)}
|
|
33
|
+
>
|
|
34
|
+
{showPassword ? (
|
|
35
|
+
<EyeOff className="h-4 w-4 text-muted-foreground" />
|
|
36
|
+
) : (
|
|
37
|
+
<Eye className="h-4 w-4 text-muted-foreground" />
|
|
38
|
+
)}
|
|
39
|
+
</Button>
|
|
40
|
+
</TooltipTrigger>
|
|
41
|
+
<TooltipContent>
|
|
42
|
+
{showPassword ? "Hide password" : "Show password"}
|
|
43
|
+
</TooltipContent>
|
|
44
|
+
</Tooltip>
|
|
45
|
+
</div>
|
|
46
|
+
</TooltipProvider>
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { PasswordInput }
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { ThemeProvider } from './theme-provider';
|
|
2
|
+
import { Toaster } from '@/components/ui/sonner';
|
|
2
3
|
|
|
3
4
|
export const AppProvider = ({ children }: { children: React.ReactNode }) => {
|
|
4
5
|
return (
|
|
5
6
|
<ThemeProvider attribute="class" defaultTheme="system" enableSystem disableTransitionOnChange>
|
|
6
7
|
{children}
|
|
8
|
+
<Toaster />
|
|
7
9
|
</ThemeProvider>
|
|
8
10
|
);
|
|
9
|
-
};
|
|
11
|
+
};
|