kaze 0.8.0 → 0.9.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 (86) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kaze/commands/install_command.rb +3 -1
  3. data/lib/kaze/commands/installs_hotwire_stack.rb +2 -2
  4. data/lib/kaze/commands/installs_inertia_stacks.rb +7 -7
  5. data/lib/kaze/version.rb +1 -1
  6. data/stubs/default/app/mailers/application_mailer.rb +1 -1
  7. data/stubs/default/app/mailers/user_mailer.rb +16 -1
  8. data/stubs/default/app/models/concerns/can_reset_password.rb +1 -1
  9. data/stubs/default/app/models/concerns/must_verify_email.rb +15 -0
  10. data/stubs/default/app/models/user.rb +1 -0
  11. data/stubs/default/app/views/user_mailer/reset_password.html.erb +2 -2
  12. data/stubs/default/app/views/user_mailer/verify_email.html.erb +33 -0
  13. data/stubs/default/config/routes.rb +4 -0
  14. data/stubs/default/db/migrate/20240101000000_create_users.rb +1 -0
  15. data/stubs/default/test/factories/users.rb +5 -0
  16. data/stubs/default/test/integration/auth/authentication_test.rb +4 -6
  17. data/stubs/default/test/integration/auth/email_verification_test.rb +40 -0
  18. data/stubs/default/test/integration/auth/password_reset_test.rb +3 -3
  19. data/stubs/default/test/integration/password_update_test.rb +2 -2
  20. data/stubs/default/test/integration/profile_test.rb +4 -4
  21. data/stubs/hotwire/app/components/modal_component.rb +5 -5
  22. data/stubs/hotwire/app/controllers/auth/authenticated_session_controller.rb +3 -2
  23. data/stubs/hotwire/app/controllers/auth/email_verification_notification_controller.rb +21 -0
  24. data/stubs/hotwire/app/controllers/auth/new_password_controller.rb +2 -2
  25. data/stubs/hotwire/app/controllers/auth/password_reset_link_controller.rb +1 -1
  26. data/stubs/hotwire/app/controllers/auth/registered_user_controller.rb +6 -2
  27. data/stubs/hotwire/app/controllers/auth/verified_email_controller.rb +23 -0
  28. data/stubs/hotwire/app/controllers/concerns/authenticate.rb +10 -0
  29. data/stubs/hotwire/app/controllers/concerns/validate_signature.rb +17 -0
  30. data/stubs/hotwire/app/controllers/password_controller.rb +1 -1
  31. data/stubs/hotwire/app/controllers/profile_controller.rb +2 -2
  32. data/stubs/hotwire/app/views/auth/verify_email.html.erb +23 -0
  33. data/stubs/hotwire/app/views/profile/partials/_delete_user_form.html.erb +1 -1
  34. data/stubs/inertia-common/app/controllers/auth/authenticated_session_controller.rb +3 -3
  35. data/stubs/inertia-common/app/controllers/auth/email_verification_notification_controller.rb +21 -0
  36. data/stubs/inertia-common/app/controllers/auth/new_password_controller.rb +2 -3
  37. data/stubs/inertia-common/app/controllers/auth/password_reset_link_controller.rb +3 -3
  38. data/stubs/inertia-common/app/controllers/auth/registered_user_controller.rb +6 -2
  39. data/stubs/inertia-common/app/controllers/auth/verified_email_controller.rb +23 -0
  40. data/stubs/inertia-common/app/controllers/concerns/authenticate.rb +10 -0
  41. data/stubs/inertia-common/app/controllers/concerns/validate_signature.rb +17 -0
  42. data/stubs/inertia-common/app/controllers/password_controller.rb +1 -1
  43. data/stubs/inertia-common/app/controllers/profile_controller.rb +2 -2
  44. data/stubs/inertia-common/test/integration/password_update_test.rb +2 -2
  45. data/stubs/inertia-common/test/integration/profile_test.rb +4 -4
  46. data/stubs/inertia-react-ts/app/javascript/Components/Checkbox.tsx +1 -4
  47. data/stubs/inertia-react-ts/app/javascript/Components/DangerButton.tsx +3 -5
  48. data/stubs/inertia-react-ts/app/javascript/Components/Dropdown.tsx +4 -25
  49. data/stubs/inertia-react-ts/app/javascript/Components/InputError.tsx +1 -4
  50. data/stubs/inertia-react-ts/app/javascript/Components/InputLabel.tsx +1 -4
  51. data/stubs/inertia-react-ts/app/javascript/Components/NavLink.tsx +3 -5
  52. data/stubs/inertia-react-ts/app/javascript/Components/PrimaryButton.tsx +3 -5
  53. data/stubs/inertia-react-ts/app/javascript/Components/SecondaryButton.tsx +3 -5
  54. data/stubs/inertia-react-ts/app/javascript/Components/TextInput.tsx +1 -7
  55. data/stubs/inertia-react-ts/app/javascript/Layouts/AuthenticatedLayout.tsx +14 -52
  56. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/ForgotPassword.tsx +3 -6
  57. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Login.tsx +9 -23
  58. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Register.tsx +1 -4
  59. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/ResetPassword.tsx +1 -4
  60. data/stubs/inertia-react-ts/app/javascript/Pages/Auth/VerifyEmail.tsx +47 -0
  61. data/stubs/inertia-react-ts/app/javascript/Pages/Dashboard.tsx +2 -8
  62. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Edit.tsx +1 -5
  63. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.tsx +7 -19
  64. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdatePasswordForm.tsx +7 -15
  65. data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.tsx +7 -16
  66. data/stubs/inertia-react-ts/app/javascript/Pages/Welcome.tsx +1 -2
  67. data/stubs/inertia-react-ts/app/javascript/entrypoints/application.tsx +1 -5
  68. data/stubs/inertia-react-ts/config/tailwind.config.js +1 -6
  69. data/stubs/inertia-vue-ts/app/javascript/Components/ApplicationLogo.vue +3 -1
  70. data/stubs/inertia-vue-ts/app/javascript/Components/Dropdown.vue +1 -4
  71. data/stubs/inertia-vue-ts/app/javascript/Components/Modal.vue +3 -13
  72. data/stubs/inertia-vue-ts/app/javascript/Layouts/AuthenticatedLayout.vue +10 -45
  73. data/stubs/inertia-vue-ts/app/javascript/Layouts/GuestLayout.vue +2 -6
  74. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/ForgotPassword.vue +4 -11
  75. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Login.vue +2 -10
  76. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Register.vue +1 -5
  77. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/ResetPassword.vue +1 -4
  78. data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/VerifyEmail.vue +50 -0
  79. data/stubs/inertia-vue-ts/app/javascript/Pages/Dashboard.vue +3 -11
  80. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Edit.vue +2 -10
  81. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.vue +5 -9
  82. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdatePasswordForm.vue +2 -9
  83. data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.vue +3 -13
  84. data/stubs/inertia-vue-ts/app/javascript/Pages/Welcome.vue +2 -5
  85. data/stubs/inertia-vue-ts/config/tailwind.config.js +1 -6
  86. metadata +14 -2
@@ -43,14 +43,11 @@ const closeModal = () => {
43
43
  <template>
44
44
  <section class="space-y-6">
45
45
  <header>
46
- <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
47
- Delete Account
48
- </h2>
46
+ <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">Delete Account</h2>
49
47
 
50
48
  <p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
51
- Once your account is deleted, all of its resources and data will be
52
- permanently deleted. Before deleting your account, please download any
53
- data or information that you wish to retain.
49
+ Once your account is deleted, all of its resources and data will be permanently deleted. Before deleting your
50
+ account, please download any data or information that you wish to retain.
54
51
  </p>
55
52
  </header>
56
53
 
@@ -63,9 +60,8 @@ const closeModal = () => {
63
60
  </h2>
64
61
 
65
62
  <p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
66
- Once your account is deleted, all of its resources and data will be
67
- permanently deleted. Please enter your password to confirm you would
68
- like to permanently delete your account.
63
+ Once your account is deleted, all of its resources and data will be permanently deleted. Please enter your
64
+ password to confirm you would like to permanently delete your account.
69
65
  </p>
70
66
 
71
67
  <div class="mt-6">
@@ -39,9 +39,7 @@ const updatePassword = () => {
39
39
  <template>
40
40
  <section>
41
41
  <header>
42
- <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
43
- Update Password
44
- </h2>
42
+ <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">Update Password</h2>
45
43
 
46
44
  <p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
47
45
  Ensure your account is using a long, random password to stay secure.
@@ -102,12 +100,7 @@ const updatePassword = () => {
102
100
  leave-active-class="transition ease-in-out"
103
101
  leave-to-class="opacity-0"
104
102
  >
105
- <p
106
- v-if="form.recentlySuccessful"
107
- class="text-sm text-gray-600 dark:text-gray-400"
108
- >
109
- Saved.
110
- </p>
103
+ <p v-if="form.recentlySuccessful" class="text-sm text-gray-600 dark:text-gray-400">Saved.</p>
111
104
  </Transition>
112
105
  </div>
113
106
  </form>
@@ -22,19 +22,14 @@ const form = useForm({
22
22
  <template>
23
23
  <section>
24
24
  <header>
25
- <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">
26
- Profile Information
27
- </h2>
25
+ <h2 class="text-lg font-medium text-gray-900 dark:text-gray-100">Profile Information</h2>
28
26
 
29
27
  <p class="mt-1 text-sm text-gray-600 dark:text-gray-400">
30
28
  Update your account's profile information and email address.
31
29
  </p>
32
30
  </header>
33
31
 
34
- <form
35
- @submit.prevent="form.patch(profile_update_path())"
36
- class="mt-6 space-y-6"
37
- >
32
+ <form @submit.prevent="form.patch(profile_update_path())" class="mt-6 space-y-6">
38
33
  <div>
39
34
  <InputLabel for="name" value="Name" />
40
35
 
@@ -75,12 +70,7 @@ const form = useForm({
75
70
  leave-active-class="transition ease-in-out"
76
71
  leave-to-class="opacity-0"
77
72
  >
78
- <p
79
- v-if="form.recentlySuccessful"
80
- class="text-sm text-gray-600 dark:text-gray-400"
81
- >
82
- Saved.
83
- </p>
73
+ <p v-if="form.recentlySuccessful" class="text-sm text-gray-600 dark:text-gray-400">Saved.</p>
84
74
  </Transition>
85
75
  </div>
86
76
  </form>
@@ -18,9 +18,7 @@ defineProps<{
18
18
  font-size: calc(0.9em + 0.5vw);
19
19
  "
20
20
  >
21
- <header
22
- class="absolute top-0 right-0 grid grid-cols-2 items-center gap-2 py-10 lg:grid-cols-3"
23
- >
21
+ <header class="absolute top-0 right-0 grid grid-cols-2 items-center gap-2 py-10 lg:grid-cols-3">
24
22
  <div class="-mx-3 flex flex-1 justify-end">
25
23
  <Link
26
24
  :href="dashboard_path()"
@@ -63,8 +61,7 @@ defineProps<{
63
61
  target="_blank"
64
62
  style="
65
63
  transition: background 0.25s cubic-bezier(0.33, 1, 0.68, 1);
66
- filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03))
67
- drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
64
+ filter: drop-shadow(0 20px 13px rgb(0 0 0 / 0.03)) drop-shadow(0 8px 5px rgb(0 0 0 / 0.08));
68
65
  "
69
66
  >
70
67
  <img
@@ -3,12 +3,7 @@ import forms from '@tailwindcss/forms'
3
3
 
4
4
  /** @type {import('tailwindcss').Config} */
5
5
  export default {
6
- content: [
7
- './public/*.html',
8
- './app/helpers/**/*.rb',
9
- './app/views/**/*',
10
- './app/javascript/**/*.vue',
11
- ],
6
+ content: ['./public/*.html', './app/helpers/**/*.rb', './app/views/**/*', './app/javascript/**/*.vue'],
12
7
 
13
8
  theme: {
14
9
  extend: {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaze
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cuong Giang
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-06-16 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -84,6 +84,7 @@ files:
84
84
  - stubs/default/app/mailers/user_mailer.rb
85
85
  - stubs/default/app/models/application_record.rb
86
86
  - stubs/default/app/models/concerns/can_reset_password.rb
87
+ - stubs/default/app/models/concerns/must_verify_email.rb
87
88
  - stubs/default/app/models/current.rb
88
89
  - stubs/default/app/models/session_guard.rb
89
90
  - stubs/default/app/models/user.rb
@@ -94,12 +95,14 @@ files:
94
95
  - stubs/default/app/views/layouts/mailer.html.erb
95
96
  - stubs/default/app/views/layouts/mailer.text.erb
96
97
  - stubs/default/app/views/user_mailer/reset_password.html.erb
98
+ - stubs/default/app/views/user_mailer/verify_email.html.erb
97
99
  - stubs/default/bin/dev
98
100
  - stubs/default/config/routes.rb
99
101
  - stubs/default/db/migrate/20240101000000_create_users.rb
100
102
  - stubs/default/db/migrate/20240101000001_create_delayed_jobs.rb
101
103
  - stubs/default/test/factories/users.rb
102
104
  - stubs/default/test/integration/auth/authentication_test.rb
105
+ - stubs/default/test/integration/auth/email_verification_test.rb
103
106
  - stubs/default/test/integration/auth/password_reset_test.rb
104
107
  - stubs/default/test/integration/auth/registration_test.rb
105
108
  - stubs/default/test/integration/password_update_test.rb
@@ -122,12 +125,15 @@ files:
122
125
  - stubs/hotwire/app/components/text_input_component.rb
123
126
  - stubs/hotwire/app/controllers/application_controller.rb
124
127
  - stubs/hotwire/app/controllers/auth/authenticated_session_controller.rb
128
+ - stubs/hotwire/app/controllers/auth/email_verification_notification_controller.rb
125
129
  - stubs/hotwire/app/controllers/auth/new_password_controller.rb
126
130
  - stubs/hotwire/app/controllers/auth/password_reset_link_controller.rb
127
131
  - stubs/hotwire/app/controllers/auth/registered_user_controller.rb
132
+ - stubs/hotwire/app/controllers/auth/verified_email_controller.rb
128
133
  - stubs/hotwire/app/controllers/concerns/authenticate.rb
129
134
  - stubs/hotwire/app/controllers/concerns/redirect_if_authenticated.rb
130
135
  - stubs/hotwire/app/controllers/concerns/set_current_auth.rb
136
+ - stubs/hotwire/app/controllers/concerns/validate_signature.rb
131
137
  - stubs/hotwire/app/controllers/dashboard_controller.rb
132
138
  - stubs/hotwire/app/controllers/password_controller.rb
133
139
  - stubs/hotwire/app/controllers/profile_controller.rb
@@ -138,6 +144,7 @@ files:
138
144
  - stubs/hotwire/app/views/auth/login.html.erb
139
145
  - stubs/hotwire/app/views/auth/register.html.erb
140
146
  - stubs/hotwire/app/views/auth/reset_password.html.erb
147
+ - stubs/hotwire/app/views/auth/verify_email.html.erb
141
148
  - stubs/hotwire/app/views/dashboard/index.html.erb
142
149
  - stubs/hotwire/app/views/layouts/_navigation.html.erb
143
150
  - stubs/hotwire/app/views/layouts/application.html.erb
@@ -151,13 +158,16 @@ files:
151
158
  - stubs/hotwire/config/tailwind.config.js
152
159
  - stubs/inertia-common/app/controllers/application_controller.rb
153
160
  - stubs/inertia-common/app/controllers/auth/authenticated_session_controller.rb
161
+ - stubs/inertia-common/app/controllers/auth/email_verification_notification_controller.rb
154
162
  - stubs/inertia-common/app/controllers/auth/new_password_controller.rb
155
163
  - stubs/inertia-common/app/controllers/auth/password_reset_link_controller.rb
156
164
  - stubs/inertia-common/app/controllers/auth/registered_user_controller.rb
165
+ - stubs/inertia-common/app/controllers/auth/verified_email_controller.rb
157
166
  - stubs/inertia-common/app/controllers/concerns/authenticate.rb
158
167
  - stubs/inertia-common/app/controllers/concerns/handle_inertia_requests.rb
159
168
  - stubs/inertia-common/app/controllers/concerns/redirect_if_authenticated.rb
160
169
  - stubs/inertia-common/app/controllers/concerns/set_current_auth.rb
170
+ - stubs/inertia-common/app/controllers/concerns/validate_signature.rb
161
171
  - stubs/inertia-common/app/controllers/concerns/verify_csrf_token.rb
162
172
  - stubs/inertia-common/app/controllers/dashboard_controller.rb
163
173
  - stubs/inertia-common/app/controllers/password_controller.rb
@@ -185,6 +195,7 @@ files:
185
195
  - stubs/inertia-react-ts/app/javascript/Pages/Auth/Login.tsx
186
196
  - stubs/inertia-react-ts/app/javascript/Pages/Auth/Register.tsx
187
197
  - stubs/inertia-react-ts/app/javascript/Pages/Auth/ResetPassword.tsx
198
+ - stubs/inertia-react-ts/app/javascript/Pages/Auth/VerifyEmail.tsx
188
199
  - stubs/inertia-react-ts/app/javascript/Pages/Dashboard.tsx
189
200
  - stubs/inertia-react-ts/app/javascript/Pages/Profile/Edit.tsx
190
201
  - stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.tsx
@@ -220,6 +231,7 @@ files:
220
231
  - stubs/inertia-vue-ts/app/javascript/Pages/Auth/Login.vue
221
232
  - stubs/inertia-vue-ts/app/javascript/Pages/Auth/Register.vue
222
233
  - stubs/inertia-vue-ts/app/javascript/Pages/Auth/ResetPassword.vue
234
+ - stubs/inertia-vue-ts/app/javascript/Pages/Auth/VerifyEmail.vue
223
235
  - stubs/inertia-vue-ts/app/javascript/Pages/Dashboard.vue
224
236
  - stubs/inertia-vue-ts/app/javascript/Pages/Profile/Edit.vue
225
237
  - stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/DeleteUserForm.vue