kaze 1.1.0 → 1.2.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +79 -0
- data/README.md +4 -2
- data/lib/kaze/commands/app/base_stack.rb +6 -4
- data/lib/kaze/commands/app/hotwire_stack.rb +4 -4
- data/lib/kaze/commands/app/inertia_react_stack.rb +16 -13
- data/lib/kaze/commands/app/inertia_vue_stack.rb +16 -13
- data/lib/kaze/version.rb +1 -1
- data/stubs/hotwire/app/assets/tailwind/application.css +21 -0
- data/stubs/hotwire/app/components/danger_button_component.rb +1 -1
- data/stubs/hotwire/app/components/dropdown_link_component.rb +1 -1
- data/stubs/hotwire/app/components/nav_link_component.rb +2 -2
- data/stubs/hotwire/app/components/primary_button_component.rb +1 -1
- data/stubs/hotwire/app/components/responsive_nav_link_component.rb +2 -2
- data/stubs/hotwire/app/components/secondary_button_component.rb +1 -1
- data/stubs/hotwire/app/components/text_input_component.rb +1 -1
- data/stubs/hotwire/app/views/auth/login.html.erb +2 -2
- data/stubs/hotwire/app/views/auth/register.html.erb +1 -1
- data/stubs/hotwire/app/views/auth/verify_email.html.erb +1 -1
- data/stubs/hotwire/app/views/dashboard/index.html.erb +1 -1
- data/stubs/hotwire/app/views/layouts/_navigation.html.erb +2 -2
- data/stubs/hotwire/app/views/layouts/application.html.erb +2 -2
- data/stubs/hotwire/app/views/layouts/guest.html.erb +1 -1
- data/stubs/hotwire/app/views/profile/edit.html.erb +3 -3
- data/stubs/hotwire/app/views/profile/partials/_update_profile_information_form.html.erb +1 -1
- data/stubs/hotwire/app/views/welcome/index.html.erb +4 -4
- data/stubs/inertia-react-ts/app/assets/tailwind/application.css +20 -0
- data/stubs/inertia-react-ts/app/javascript/Components/Checkbox.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/DangerButton.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/Dropdown.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/NavLink.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/PrimaryButton.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/ResponsiveNavLink.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/SecondaryButton.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Components/TextInput.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Layouts/AuthenticatedLayout.tsx +3 -3
- data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Login.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Pages/Auth/Register.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Pages/Auth/VerifyEmail.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Pages/Dashboard.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Edit.tsx +3 -3
- data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.tsx +1 -1
- data/stubs/inertia-react-ts/app/javascript/Pages/Welcome.tsx +3 -3
- data/stubs/inertia-react-ts/package.json +1 -5
- data/stubs/inertia-vue-ts/app/assets/tailwind/application.css +20 -0
- data/stubs/inertia-vue-ts/app/javascript/Components/Checkbox.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Components/DangerButton.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Components/DropdownLink.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Components/NavLink.vue +2 -2
- data/stubs/inertia-vue-ts/app/javascript/Components/PrimaryButton.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Components/ResponsiveNavLink.vue +2 -2
- data/stubs/inertia-vue-ts/app/javascript/Components/SecondaryButton.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Components/TextInput.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Layouts/AuthenticatedLayout.vue +3 -3
- data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Login.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/Register.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Pages/Auth/VerifyEmail.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Pages/Dashboard.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Edit.vue +3 -3
- data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.vue +1 -1
- data/stubs/inertia-vue-ts/app/javascript/Pages/Welcome.vue +3 -3
- data/stubs/inertia-vue-ts/package.json +1 -5
- metadata +9 -8
- data/stubs/default/app/assets/stylesheets/application.tailwind.css +0 -3
- data/stubs/hotwire/config/tailwind.config.js +0 -23
- data/stubs/inertia-react-ts/config/tailwind.config.js +0 -17
- data/stubs/inertia-vue-ts/config/tailwind.config.js +0 -17
|
@@ -9,7 +9,7 @@ export default function DangerButton({
|
|
|
9
9
|
return (
|
|
10
10
|
<button
|
|
11
11
|
{...props}
|
|
12
|
-
className={`inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-
|
|
12
|
+
className={`inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-red-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150 ${
|
|
13
13
|
disabled && 'opacity-25'
|
|
14
14
|
} ${className}`}
|
|
15
15
|
disabled={disabled}
|
|
@@ -86,7 +86,7 @@ const DropdownLink = ({ className = '', children, ...props }: InertiaLinkProps)
|
|
|
86
86
|
return (
|
|
87
87
|
<Link
|
|
88
88
|
{...props}
|
|
89
|
-
className={`block w-full px-4 py-2 text-start text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-
|
|
89
|
+
className={`block w-full px-4 py-2 text-start text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out ${className}`}
|
|
90
90
|
>
|
|
91
91
|
{children}
|
|
92
92
|
</Link>
|
|
@@ -9,7 +9,7 @@ export default function NavLink({
|
|
|
9
9
|
return (
|
|
10
10
|
<Link
|
|
11
11
|
{...props}
|
|
12
|
-
className={`inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium leading-5 transition duration-150 ease-in-out focus:outline-
|
|
12
|
+
className={`inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium leading-5 transition duration-150 ease-in-out focus:outline-hidden ${
|
|
13
13
|
active
|
|
14
14
|
? 'border-indigo-400 dark:border-indigo-600 text-gray-900 dark:text-gray-100 focus:border-indigo-700 '
|
|
15
15
|
: 'border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-700 '
|
|
@@ -9,7 +9,7 @@ export default function PrimaryButton({
|
|
|
9
9
|
return (
|
|
10
10
|
<button
|
|
11
11
|
{...props}
|
|
12
|
-
className={`inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-
|
|
12
|
+
className={`inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150 ${
|
|
13
13
|
disabled && 'opacity-25'
|
|
14
14
|
} ${className}`}
|
|
15
15
|
disabled={disabled}
|
|
@@ -13,7 +13,7 @@ export default function ResponsiveNavLink({
|
|
|
13
13
|
active
|
|
14
14
|
? 'border-indigo-400 dark:border-indigo-600 text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:text-indigo-800 dark:focus:text-indigo-200 focus:bg-indigo-100 dark:focus:bg-indigo-900 focus:border-indigo-700 dark:focus:border-indigo-300'
|
|
15
15
|
: 'border-transparent text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:text-gray-800 dark:focus:text-gray-200 focus:bg-gray-50 dark:focus:bg-gray-700 focus:border-gray-300 dark:focus:border-gray-600'
|
|
16
|
-
} text-base font-medium focus:outline-
|
|
16
|
+
} text-base font-medium focus:outline-hidden transition duration-150 ease-in-out ${className}`}
|
|
17
17
|
>
|
|
18
18
|
{children}
|
|
19
19
|
</Link>
|
|
@@ -11,7 +11,7 @@ export default function SecondaryButton({
|
|
|
11
11
|
<button
|
|
12
12
|
{...props}
|
|
13
13
|
type={type}
|
|
14
|
-
className={`inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-
|
|
14
|
+
className={`inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-xs hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 disabled:opacity-25 transition ease-in-out duration-150 ${
|
|
15
15
|
disabled && 'opacity-25'
|
|
16
16
|
} ${className}`}
|
|
17
17
|
disabled={disabled}
|
|
@@ -25,7 +25,7 @@ export default forwardRef(function TextInput(
|
|
|
25
25
|
<input
|
|
26
26
|
{...props}
|
|
27
27
|
type={type}
|
|
28
|
-
className={`border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-
|
|
28
|
+
className={`border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-xs ${className}`}
|
|
29
29
|
ref={localRef}
|
|
30
30
|
/>
|
|
31
31
|
)
|
|
@@ -39,7 +39,7 @@ export default function AuthenticatedLayout({ header, children }: PropsWithChild
|
|
|
39
39
|
<span className="inline-flex rounded-md">
|
|
40
40
|
<button
|
|
41
41
|
type="button"
|
|
42
|
-
className="inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 bg-white hover:text-gray-700 focus:outline-
|
|
42
|
+
className="inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 bg-white hover:text-gray-700 focus:outline-hidden transition ease-in-out duration-150"
|
|
43
43
|
>
|
|
44
44
|
{user.name}
|
|
45
45
|
|
|
@@ -72,7 +72,7 @@ export default function AuthenticatedLayout({ header, children }: PropsWithChild
|
|
|
72
72
|
<div className="-me-2 flex items-center sm:hidden">
|
|
73
73
|
<button
|
|
74
74
|
onClick={() => setShowingNavigationDropdown((previousState) => !previousState)}
|
|
75
|
-
className="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-
|
|
75
|
+
className="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-hidden focus:bg-gray-100 focus:text-gray-500 transition duration-150 ease-in-out"
|
|
76
76
|
>
|
|
77
77
|
<svg className="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
|
78
78
|
<path
|
|
@@ -119,7 +119,7 @@ export default function AuthenticatedLayout({ header, children }: PropsWithChild
|
|
|
119
119
|
</nav>
|
|
120
120
|
|
|
121
121
|
{header && (
|
|
122
|
-
<header className="bg-white shadow">
|
|
122
|
+
<header className="bg-white shadow-sm">
|
|
123
123
|
<div className="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">{header}</div>
|
|
124
124
|
</header>
|
|
125
125
|
)}
|
|
@@ -73,7 +73,7 @@ export default function Login({ status }: { status?: string }) {
|
|
|
73
73
|
<div className="flex items-center justify-end mt-4">
|
|
74
74
|
<Link
|
|
75
75
|
href={password_request_path()}
|
|
76
|
-
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
76
|
+
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
77
77
|
>
|
|
78
78
|
Forgot your password?
|
|
79
79
|
</Link>
|
|
@@ -99,7 +99,7 @@ export default function Register() {
|
|
|
99
99
|
<div className="flex items-center justify-end mt-4">
|
|
100
100
|
<Link
|
|
101
101
|
href={login_path()}
|
|
102
|
-
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
102
|
+
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
103
103
|
>
|
|
104
104
|
Already registered?
|
|
105
105
|
</Link>
|
|
@@ -36,7 +36,7 @@ export default function VerifyEmail({ status }: { status?: string }) {
|
|
|
36
36
|
href={logout_path()}
|
|
37
37
|
method="post"
|
|
38
38
|
as="button"
|
|
39
|
-
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
39
|
+
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
40
40
|
>
|
|
41
41
|
Log Out
|
|
42
42
|
</Link>
|
|
@@ -10,7 +10,7 @@ export default function Dashboard() {
|
|
|
10
10
|
|
|
11
11
|
<div className="py-12">
|
|
12
12
|
<div className="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
|
13
|
-
<div className="bg-white dark:bg-gray-800 overflow-hidden shadow-
|
|
13
|
+
<div className="bg-white dark:bg-gray-800 overflow-hidden shadow-xs sm:rounded-lg">
|
|
14
14
|
<div className="p-6 text-gray-900 dark:text-gray-100">You're logged in!</div>
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
|
@@ -14,15 +14,15 @@ export default function Edit({ mustVerifyEmail, status }: PageProps<{ mustVerify
|
|
|
14
14
|
|
|
15
15
|
<div className="py-12">
|
|
16
16
|
<div className="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6">
|
|
17
|
-
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
17
|
+
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
18
18
|
<UpdateProfileInformationForm mustVerifyEmail={mustVerifyEmail} status={status} className="max-w-xl" />
|
|
19
19
|
</div>
|
|
20
20
|
|
|
21
|
-
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
21
|
+
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
22
22
|
<UpdatePasswordForm className="max-w-xl" />
|
|
23
23
|
</div>
|
|
24
24
|
|
|
25
|
-
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
25
|
+
<div className="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
26
26
|
<DeleteUserForm className="max-w-xl" />
|
|
27
27
|
</div>
|
|
28
28
|
</div>
|
data/stubs/inertia-react-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.tsx
CHANGED
|
@@ -80,7 +80,7 @@ export default function UpdateProfileInformation({
|
|
|
80
80
|
href={verification_send_path()}
|
|
81
81
|
method="post"
|
|
82
82
|
as="button"
|
|
83
|
-
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
83
|
+
className="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
84
84
|
>
|
|
85
85
|
Click here to re-send the verification email.
|
|
86
86
|
</Link>
|
|
@@ -25,7 +25,7 @@ export default function Welcome({
|
|
|
25
25
|
{user ? (
|
|
26
26
|
<Link
|
|
27
27
|
href={dashboard_path()}
|
|
28
|
-
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
28
|
+
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
29
29
|
>
|
|
30
30
|
Dashboard
|
|
31
31
|
</Link>
|
|
@@ -33,13 +33,13 @@ export default function Welcome({
|
|
|
33
33
|
<>
|
|
34
34
|
<Link
|
|
35
35
|
href={login_path()}
|
|
36
|
-
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
36
|
+
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
37
37
|
>
|
|
38
38
|
Log in
|
|
39
39
|
</Link>
|
|
40
40
|
<Link
|
|
41
41
|
href={register_path()}
|
|
42
|
-
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
42
|
+
className="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
43
43
|
>
|
|
44
44
|
Register
|
|
45
45
|
</Link>
|
|
@@ -8,19 +8,15 @@
|
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@headlessui/react": "^2.0.4",
|
|
10
10
|
"@inertiajs/react": "^2.0.0",
|
|
11
|
-
"@tailwindcss/forms": "^0.5.7",
|
|
12
11
|
"@types/node": "^18.13.0",
|
|
13
12
|
"@types/react": "^18.0.28",
|
|
14
13
|
"@types/react-dom": "^18.0.10",
|
|
15
14
|
"@vitejs/plugin-react": "^4.2.0",
|
|
16
|
-
"autoprefixer": "^10.4.12",
|
|
17
15
|
"axios": "^1.6.4",
|
|
18
|
-
"postcss": "^8.4.31",
|
|
19
16
|
"react": "^18.2.0",
|
|
20
17
|
"react-dom": "^18.2.0",
|
|
21
|
-
"tailwindcss": "^3.2.1",
|
|
22
18
|
"typescript": "^5.6.3",
|
|
23
|
-
"vite": "^
|
|
19
|
+
"vite": "^6.4.4",
|
|
24
20
|
"vite-plugin-rails": "^0.5.0"
|
|
25
21
|
}
|
|
26
22
|
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
@import "tailwindcss";
|
|
2
|
+
|
|
3
|
+
@plugin "@tailwindcss/forms";
|
|
4
|
+
|
|
5
|
+
@source "../../../public/*.html";
|
|
6
|
+
@source "../../helpers/**/*.rb";
|
|
7
|
+
@source "../../views/**/*";
|
|
8
|
+
@source "../../javascript/**/*.vue";
|
|
9
|
+
|
|
10
|
+
@theme {
|
|
11
|
+
--font-sans: Inter, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Tailwind v4 Preflight resets buttons to `cursor: default`; keep the v3 behaviour. */
|
|
15
|
+
@layer base {
|
|
16
|
+
button:not(:disabled),
|
|
17
|
+
[role="button"]:not(:disabled) {
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -24,6 +24,6 @@ const proxyChecked = computed({
|
|
|
24
24
|
type="checkbox"
|
|
25
25
|
:value="value"
|
|
26
26
|
v-model="proxyChecked"
|
|
27
|
-
class="rounded dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-
|
|
27
|
+
class="rounded-sm dark:bg-gray-900 border-gray-300 dark:border-gray-700 text-indigo-600 shadow-xs focus:ring-indigo-500 dark:focus:ring-indigo-600 dark:focus:ring-offset-gray-800"
|
|
28
28
|
/>
|
|
29
29
|
</template>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
class="inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-
|
|
3
|
+
class="inline-flex items-center px-4 py-2 bg-red-600 border border-transparent rounded-md font-semibold text-xs text-white uppercase tracking-widest hover:bg-red-500 active:bg-red-700 focus:outline-hidden focus:ring-2 focus:ring-red-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150"
|
|
4
4
|
>
|
|
5
5
|
<slot />
|
|
6
6
|
</button>
|
|
@@ -9,7 +9,7 @@ defineProps<{
|
|
|
9
9
|
<template>
|
|
10
10
|
<Link
|
|
11
11
|
:href="href"
|
|
12
|
-
class="block w-full px-4 py-2 text-start text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-
|
|
12
|
+
class="block w-full px-4 py-2 text-start text-sm leading-5 text-gray-700 dark:text-gray-300 hover:bg-gray-100 dark:hover:bg-gray-800 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-800 transition duration-150 ease-in-out"
|
|
13
13
|
>
|
|
14
14
|
<slot />
|
|
15
15
|
</Link>
|
|
@@ -9,8 +9,8 @@ const props = defineProps<{
|
|
|
9
9
|
|
|
10
10
|
const classes = computed(() =>
|
|
11
11
|
props.active
|
|
12
|
-
? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-indigo-600 text-sm font-medium leading-5 text-gray-900 dark:text-gray-100 focus:outline-
|
|
13
|
-
: 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:outline-
|
|
12
|
+
? 'inline-flex items-center px-1 pt-1 border-b-2 border-indigo-400 dark:border-indigo-600 text-sm font-medium leading-5 text-gray-900 dark:text-gray-100 focus:outline-hidden focus:border-indigo-700 transition duration-150 ease-in-out'
|
|
13
|
+
: 'inline-flex items-center px-1 pt-1 border-b-2 border-transparent text-sm font-medium leading-5 text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300 dark:hover:border-gray-700 focus:outline-hidden focus:text-gray-700 dark:focus:text-gray-300 focus:border-gray-300 dark:focus:border-gray-700 transition duration-150 ease-in-out',
|
|
14
14
|
)
|
|
15
15
|
</script>
|
|
16
16
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<button
|
|
3
|
-
class="inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-
|
|
3
|
+
class="inline-flex items-center px-4 py-2 bg-gray-800 dark:bg-gray-200 border border-transparent rounded-md font-semibold text-xs text-white dark:text-gray-800 uppercase tracking-widest hover:bg-gray-700 dark:hover:bg-white focus:bg-gray-700 dark:focus:bg-white active:bg-gray-900 dark:active:bg-gray-300 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 transition ease-in-out duration-150"
|
|
4
4
|
>
|
|
5
5
|
<slot />
|
|
6
6
|
</button>
|
|
@@ -9,8 +9,8 @@ const props = defineProps<{
|
|
|
9
9
|
|
|
10
10
|
const classes = computed(() =>
|
|
11
11
|
props.active
|
|
12
|
-
? 'block w-full ps-3 pe-4 py-2 border-l-4 border-indigo-400 dark:border-indigo-600 text-start text-base font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:outline-
|
|
13
|
-
: 'block w-full ps-3 pe-4 py-2 border-l-4 border-transparent text-start text-base font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-
|
|
12
|
+
? 'block w-full ps-3 pe-4 py-2 border-l-4 border-indigo-400 dark:border-indigo-600 text-start text-base font-medium text-indigo-700 dark:text-indigo-300 bg-indigo-50 dark:bg-indigo-900/50 focus:outline-hidden focus:text-indigo-800 dark:focus:text-indigo-200 focus:bg-indigo-100 dark:focus:bg-indigo-900 focus:border-indigo-700 dark:focus:border-indigo-300 transition duration-150 ease-in-out'
|
|
13
|
+
: 'block w-full ps-3 pe-4 py-2 border-l-4 border-transparent text-start text-base font-medium text-gray-600 dark:text-gray-400 hover:text-gray-800 dark:hover:text-gray-200 hover:bg-gray-50 dark:hover:bg-gray-700 hover:border-gray-300 dark:hover:border-gray-600 focus:outline-hidden focus:text-gray-800 dark:focus:text-gray-200 focus:bg-gray-50 dark:focus:bg-gray-700 focus:border-gray-300 dark:focus:border-gray-600 transition duration-150 ease-in-out',
|
|
14
14
|
)
|
|
15
15
|
</script>
|
|
16
16
|
|
|
@@ -12,7 +12,7 @@ withDefaults(
|
|
|
12
12
|
<template>
|
|
13
13
|
<button
|
|
14
14
|
:type="type"
|
|
15
|
-
class="inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-
|
|
15
|
+
class="inline-flex items-center px-4 py-2 bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-500 rounded-md font-semibold text-xs text-gray-700 dark:text-gray-300 uppercase tracking-widest shadow-xs hover:bg-gray-50 dark:hover:bg-gray-700 focus:outline-hidden focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 dark:focus:ring-offset-gray-800 disabled:opacity-25 transition ease-in-out duration-150"
|
|
16
16
|
>
|
|
17
17
|
<slot />
|
|
18
18
|
</button>
|
|
@@ -16,7 +16,7 @@ defineExpose({ focus: () => input.value?.focus() })
|
|
|
16
16
|
|
|
17
17
|
<template>
|
|
18
18
|
<input
|
|
19
|
-
class="border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-
|
|
19
|
+
class="border-gray-300 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-300 focus:border-indigo-500 dark:focus:border-indigo-600 focus:ring-indigo-500 dark:focus:ring-indigo-600 rounded-md shadow-xs"
|
|
20
20
|
v-model="model"
|
|
21
21
|
ref="input"
|
|
22
22
|
/>
|
|
@@ -42,7 +42,7 @@ const { pathname = '' } = typeof window !== 'undefined' ? window.location : {}
|
|
|
42
42
|
<span class="inline-flex rounded-md">
|
|
43
43
|
<button
|
|
44
44
|
type="button"
|
|
45
|
-
class="inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 hover:text-gray-700 dark:hover:text-gray-300 focus:outline-
|
|
45
|
+
class="inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 hover:text-gray-700 dark:hover:text-gray-300 focus:outline-hidden transition ease-in-out duration-150"
|
|
46
46
|
>
|
|
47
47
|
{{ $page.props.auth.user.name }}
|
|
48
48
|
|
|
@@ -74,7 +74,7 @@ const { pathname = '' } = typeof window !== 'undefined' ? window.location : {}
|
|
|
74
74
|
<div class="-me-2 flex items-center sm:hidden">
|
|
75
75
|
<button
|
|
76
76
|
@click="showingNavigationDropdown = !showingNavigationDropdown"
|
|
77
|
-
class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-900 focus:outline-
|
|
77
|
+
class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-900 focus:outline-hidden focus:bg-gray-100 dark:focus:bg-gray-900 focus:text-gray-500 dark:focus:text-gray-400 transition duration-150 ease-in-out"
|
|
78
78
|
>
|
|
79
79
|
<svg class="h-6 w-6" stroke="currentColor" fill="none" viewBox="0 0 24 24">
|
|
80
80
|
<path
|
|
@@ -137,7 +137,7 @@ const { pathname = '' } = typeof window !== 'undefined' ? window.location : {}
|
|
|
137
137
|
</nav>
|
|
138
138
|
|
|
139
139
|
<!-- Page Heading -->
|
|
140
|
-
<header class="bg-white dark:bg-gray-800 shadow" v-if="$slots.header">
|
|
140
|
+
<header class="bg-white dark:bg-gray-800 shadow-sm" v-if="$slots.header">
|
|
141
141
|
<div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
|
|
142
142
|
<slot name="header" />
|
|
143
143
|
</div>
|
|
@@ -77,7 +77,7 @@ const submit = () => {
|
|
|
77
77
|
<div class="flex items-center justify-end mt-4">
|
|
78
78
|
<Link
|
|
79
79
|
:href="password_request_path()"
|
|
80
|
-
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
80
|
+
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
81
81
|
>
|
|
82
82
|
Forgot your password?
|
|
83
83
|
</Link>
|
|
@@ -92,7 +92,7 @@ const submit = () => {
|
|
|
92
92
|
<div class="flex items-center justify-end mt-4">
|
|
93
93
|
<Link
|
|
94
94
|
:href="login_path()"
|
|
95
|
-
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
95
|
+
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
96
96
|
>
|
|
97
97
|
Already registered?
|
|
98
98
|
</Link>
|
|
@@ -41,7 +41,7 @@ const verificationLinkSent = computed(() => props.status === 'verification-link-
|
|
|
41
41
|
:href="logout_path()"
|
|
42
42
|
method="post"
|
|
43
43
|
as="button"
|
|
44
|
-
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
44
|
+
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
45
45
|
>Log Out</Link
|
|
46
46
|
>
|
|
47
47
|
</div>
|
|
@@ -13,7 +13,7 @@ import { Head } from '@inertiajs/vue3'
|
|
|
13
13
|
|
|
14
14
|
<div class="py-12">
|
|
15
15
|
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
|
16
|
-
<div class="bg-white dark:bg-gray-800 overflow-hidden shadow-
|
|
16
|
+
<div class="bg-white dark:bg-gray-800 overflow-hidden shadow-xs sm:rounded-lg">
|
|
17
17
|
<div class="p-6 text-gray-900 dark:text-gray-100">You're logged in!</div>
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
@@ -21,15 +21,15 @@ defineProps<{
|
|
|
21
21
|
|
|
22
22
|
<div class="py-12">
|
|
23
23
|
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8 space-y-6">
|
|
24
|
-
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
24
|
+
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
25
25
|
<UpdateProfileInformationForm :must-verify-email="mustVerifyEmail" :status="status" class="max-w-xl" />
|
|
26
26
|
</div>
|
|
27
27
|
|
|
28
|
-
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
28
|
+
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
29
29
|
<UpdatePasswordForm class="max-w-xl" />
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
|
-
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow sm:rounded-lg">
|
|
32
|
+
<div class="p-4 sm:p-8 bg-white dark:bg-gray-800 shadow-sm sm:rounded-lg">
|
|
33
33
|
<DeleteUserForm class="max-w-xl" />
|
|
34
34
|
</div>
|
|
35
35
|
</div>
|
data/stubs/inertia-vue-ts/app/javascript/Pages/Profile/Partials/UpdateProfileInformationForm.vue
CHANGED
|
@@ -68,7 +68,7 @@ const form = useForm({
|
|
|
68
68
|
:href="verification_send_path()"
|
|
69
69
|
method="post"
|
|
70
70
|
as="button"
|
|
71
|
-
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-
|
|
71
|
+
class="underline text-sm text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-100 rounded-md focus:outline-hidden focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500 dark:focus:ring-offset-gray-800"
|
|
72
72
|
>
|
|
73
73
|
Click here to re-send the verification email.
|
|
74
74
|
</Link>
|
|
@@ -22,7 +22,7 @@ defineProps<{
|
|
|
22
22
|
<div class="-mx-3 flex flex-1 justify-end">
|
|
23
23
|
<Link
|
|
24
24
|
:href="dashboard_path()"
|
|
25
|
-
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
25
|
+
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
26
26
|
v-if="$page.props.auth.user"
|
|
27
27
|
>
|
|
28
28
|
Dashboard
|
|
@@ -30,13 +30,13 @@ defineProps<{
|
|
|
30
30
|
<template v-else>
|
|
31
31
|
<Link
|
|
32
32
|
:href="login_path()"
|
|
33
|
-
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
33
|
+
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
34
34
|
>
|
|
35
35
|
Log in
|
|
36
36
|
</Link>
|
|
37
37
|
<Link
|
|
38
38
|
:href="register_path()"
|
|
39
|
-
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-
|
|
39
|
+
class="rounded-md px-3 py-2 text-black ring-1 ring-transparent transition hover:text-black/70 focus:outline-hidden focus-visible:ring-[#FF2D20] dark:text-white dark:hover:text-white/80 dark:focus-visible:ring-white"
|
|
40
40
|
>
|
|
41
41
|
Register
|
|
42
42
|
</Link>
|
|
@@ -8,15 +8,11 @@
|
|
|
8
8
|
"devDependencies": {
|
|
9
9
|
"@headlessui/vue": "^1.7.22",
|
|
10
10
|
"@inertiajs/vue3": "^2.0.0",
|
|
11
|
-
"@tailwindcss/forms": "^0.5.7",
|
|
12
11
|
"@types/node": "^18.13.0",
|
|
13
12
|
"@vitejs/plugin-vue": "^5.0.5",
|
|
14
|
-
"autoprefixer": "^10.4.12",
|
|
15
13
|
"axios": "^1.6.4",
|
|
16
|
-
"postcss": "^8.4.31",
|
|
17
|
-
"tailwindcss": "^3.2.1",
|
|
18
14
|
"typescript": "^5.6.3",
|
|
19
|
-
"vite": "^
|
|
15
|
+
"vite": "^6.4.4",
|
|
20
16
|
"vite-plugin-rails": "^0.5.0",
|
|
21
17
|
"vue": "^3.4.27",
|
|
22
18
|
"vue-tsc": "^2.0.21"
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: kaze
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1
|
|
4
|
+
version: 1.2.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Cuong Giang
|
|
@@ -58,6 +58,7 @@ executables:
|
|
|
58
58
|
extensions: []
|
|
59
59
|
extra_rdoc_files: []
|
|
60
60
|
files:
|
|
61
|
+
- CHANGELOG.md
|
|
61
62
|
- LICENSE.md
|
|
62
63
|
- README.md
|
|
63
64
|
- bin/kaze
|
|
@@ -72,7 +73,6 @@ files:
|
|
|
72
73
|
- lib/kaze/version.rb
|
|
73
74
|
- stubs/default/Procfile.dev
|
|
74
75
|
- stubs/default/app/assets/stylesheets/application.css
|
|
75
|
-
- stubs/default/app/assets/stylesheets/application.tailwind.css
|
|
76
76
|
- stubs/default/app/forms/application_form.rb
|
|
77
77
|
- stubs/default/app/forms/auth/login_form.rb
|
|
78
78
|
- stubs/default/app/forms/auth/new_password_form.rb
|
|
@@ -108,6 +108,7 @@ files:
|
|
|
108
108
|
- stubs/default/test/integration/password_update_test.rb
|
|
109
109
|
- stubs/default/test/integration/profile_test.rb
|
|
110
110
|
- stubs/default/test/test_helper.rb
|
|
111
|
+
- stubs/hotwire/app/assets/tailwind/application.css
|
|
111
112
|
- stubs/hotwire/app/components/application_logo_component.rb
|
|
112
113
|
- stubs/hotwire/app/components/auth_session_status_component.rb
|
|
113
114
|
- stubs/hotwire/app/components/danger_button_component.rb
|
|
@@ -157,7 +158,6 @@ files:
|
|
|
157
158
|
- stubs/hotwire/app/views/profile/partials/_update_profile_information_form.html.erb
|
|
158
159
|
- stubs/hotwire/app/views/welcome/index.html.erb
|
|
159
160
|
- stubs/hotwire/config/importmap.rb
|
|
160
|
-
- stubs/hotwire/config/tailwind.config.js
|
|
161
161
|
- stubs/inertia-common/app/controllers/application_controller.rb
|
|
162
162
|
- stubs/inertia-common/app/controllers/auth/authenticated_session_controller.rb
|
|
163
163
|
- stubs/inertia-common/app/controllers/auth/email_verification_notification_controller.rb
|
|
@@ -179,6 +179,7 @@ files:
|
|
|
179
179
|
- stubs/inertia-common/config/vite.json
|
|
180
180
|
- stubs/inertia-common/test/integration/password_update_test.rb
|
|
181
181
|
- stubs/inertia-common/test/integration/profile_test.rb
|
|
182
|
+
- stubs/inertia-react-ts/app/assets/tailwind/application.css
|
|
182
183
|
- stubs/inertia-react-ts/app/javascript/Components/ApplicationLogo.tsx
|
|
183
184
|
- stubs/inertia-react-ts/app/javascript/Components/Checkbox.tsx
|
|
184
185
|
- stubs/inertia-react-ts/app/javascript/Components/DangerButton.tsx
|
|
@@ -210,10 +211,10 @@ files:
|
|
|
210
211
|
- stubs/inertia-react-ts/app/javascript/types/index.d.ts
|
|
211
212
|
- stubs/inertia-react-ts/app/javascript/types/vite-env.d.ts
|
|
212
213
|
- stubs/inertia-react-ts/app/views/layouts/application.html.erb
|
|
213
|
-
- stubs/inertia-react-ts/config/tailwind.config.js
|
|
214
214
|
- stubs/inertia-react-ts/package.json
|
|
215
215
|
- stubs/inertia-react-ts/tsconfig.json
|
|
216
216
|
- stubs/inertia-react-ts/vite.config.ts
|
|
217
|
+
- stubs/inertia-vue-ts/app/assets/tailwind/application.css
|
|
217
218
|
- stubs/inertia-vue-ts/app/javascript/Components/ApplicationLogo.vue
|
|
218
219
|
- stubs/inertia-vue-ts/app/javascript/Components/Checkbox.vue
|
|
219
220
|
- stubs/inertia-vue-ts/app/javascript/Components/DangerButton.vue
|
|
@@ -246,14 +247,14 @@ files:
|
|
|
246
247
|
- stubs/inertia-vue-ts/app/javascript/types/index.d.ts
|
|
247
248
|
- stubs/inertia-vue-ts/app/javascript/types/vite-env.d.ts
|
|
248
249
|
- stubs/inertia-vue-ts/app/views/layouts/application.html.erb
|
|
249
|
-
- stubs/inertia-vue-ts/config/tailwind.config.js
|
|
250
250
|
- stubs/inertia-vue-ts/package.json
|
|
251
251
|
- stubs/inertia-vue-ts/tsconfig.json
|
|
252
252
|
- stubs/inertia-vue-ts/vite.config.ts
|
|
253
|
-
homepage: https://github.com/
|
|
253
|
+
homepage: https://github.com/cuonggt/kaze
|
|
254
254
|
licenses:
|
|
255
255
|
- MIT
|
|
256
|
-
metadata:
|
|
256
|
+
metadata:
|
|
257
|
+
changelog_uri: https://github.com/cuonggt/kaze/blob/master/CHANGELOG.md
|
|
257
258
|
rdoc_options: []
|
|
258
259
|
require_paths:
|
|
259
260
|
- lib
|
|
@@ -268,7 +269,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
268
269
|
- !ruby/object:Gem::Version
|
|
269
270
|
version: '0'
|
|
270
271
|
requirements: []
|
|
271
|
-
rubygems_version:
|
|
272
|
+
rubygems_version: 4.0.10
|
|
272
273
|
specification_version: 4
|
|
273
274
|
summary: Opinionated minimal Rails authentication scaffolding with Hotwire, React,
|
|
274
275
|
or Vue + Tailwind.
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import defaultTheme from 'tailwindcss/defaultTheme'
|
|
2
|
-
import forms from '@tailwindcss/forms'
|
|
3
|
-
|
|
4
|
-
/** @type {import('tailwindcss').Config} */
|
|
5
|
-
export default {
|
|
6
|
-
content: [
|
|
7
|
-
'./public/*.html',
|
|
8
|
-
'./app/helpers/**/*.rb',
|
|
9
|
-
'./app/components/**/*',
|
|
10
|
-
'./app/views/**/*',
|
|
11
|
-
'./app/javascript/**/*.js',
|
|
12
|
-
],
|
|
13
|
-
|
|
14
|
-
theme: {
|
|
15
|
-
extend: {
|
|
16
|
-
fontFamily: {
|
|
17
|
-
sans: ['Inter', ...defaultTheme.fontFamily.sans],
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
|
|
22
|
-
plugins: [forms],
|
|
23
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import defaultTheme from 'tailwindcss/defaultTheme'
|
|
2
|
-
import forms from '@tailwindcss/forms'
|
|
3
|
-
|
|
4
|
-
/** @type {import('tailwindcss').Config} */
|
|
5
|
-
export default {
|
|
6
|
-
content: ['./public/*.html', './app/helpers/**/*.rb', './app/views/**/*', './app/javascript/**/*.tsx'],
|
|
7
|
-
|
|
8
|
-
theme: {
|
|
9
|
-
extend: {
|
|
10
|
-
fontFamily: {
|
|
11
|
-
sans: ['Inter', ...defaultTheme.fontFamily.sans],
|
|
12
|
-
},
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
|
|
16
|
-
plugins: [forms],
|
|
17
|
-
}
|