luxlabs 1.0.3 → 1.0.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "luxlabs",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "CLI tool for Lux - Upload and deploy interfaces from your terminal",
5
5
  "author": "Jason Henkel <jason@uselux.ai>",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -3,6 +3,9 @@
3
3
  import { useEffect } from "react";
4
4
  import { useSession, signOut } from "@/lib/auth-client";
5
5
  import { useRouter } from "next/navigation";
6
+ import { createLux } from "@/lib/lux";
7
+
8
+ const lux = createLux("Dashboard");
6
9
 
7
10
  export default function DashboardPage() {
8
11
  const { data: session, isPending } = useSession();
@@ -16,7 +19,7 @@ export default function DashboardPage() {
16
19
 
17
20
  if (isPending) {
18
21
  return (
19
- <div className="min-h-screen flex items-center justify-center">
22
+ <div className="min-h-screen flex items-center justify-center" data-lux={lux("loading")}>
20
23
  <p>Loading...</p>
21
24
  </div>
22
25
  );
@@ -32,17 +35,18 @@ export default function DashboardPage() {
32
35
  }
33
36
 
34
37
  return (
35
- <div className="min-h-screen bg-zinc-50 p-8">
36
- <div className="max-w-2xl mx-auto bg-white p-8 rounded-lg shadow-md">
37
- <h1 className="text-2xl font-semibold mb-4">Dashboard</h1>
38
- <p className="text-zinc-600 mb-2">
38
+ <div className="min-h-screen bg-zinc-50 p-8" data-lux={lux("container")}>
39
+ <div className="max-w-2xl mx-auto bg-white p-8 rounded-lg shadow-md" data-lux={lux("card")}>
40
+ <h1 className="text-2xl font-semibold mb-4" data-lux={lux("title")}>Dashboard</h1>
41
+ <p className="text-zinc-600 mb-2" data-lux={lux("welcome")}>
39
42
  Welcome, <span className="font-medium">{session.user.name}</span>!
40
43
  </p>
41
- <p className="text-zinc-600 mb-6">
44
+ <p className="text-zinc-600 mb-6" data-lux={lux("email")}>
42
45
  Email: {session.user.email}
43
46
  </p>
44
47
  <button
45
48
  onClick={handleSignOut}
49
+ data-lux={lux("signout-button")}
46
50
  className="px-4 py-2 bg-black text-white rounded-md hover:bg-zinc-800"
47
51
  >
48
52
  Sign Out
@@ -1,36 +1,41 @@
1
1
  import Link from "next/link";
2
+ import { createLux } from "@/lib/lux";
3
+
4
+ const lux = createLux("Home");
2
5
 
3
6
  export default function Home() {
4
7
  return (
5
- <div className="min-h-screen flex flex-col bg-white">
8
+ <div className="min-h-screen flex flex-col bg-white" data-lux={lux("container")}>
6
9
  <main className="flex-1 flex flex-col items-center justify-center px-6">
7
10
  <div className="max-w-2xl w-full text-center">
8
- <p className="text-sm font-medium tracking-widest text-zinc-400 uppercase mb-4">
11
+ <p className="text-sm font-medium tracking-widest text-zinc-400 uppercase mb-4" data-lux={lux("tagline")}>
9
12
  Boilerplate
10
13
  </p>
11
- <h1 className="text-6xl font-semibold tracking-tight text-black mb-6">
14
+ <h1 className="text-6xl font-semibold tracking-tight text-black mb-6" data-lux={lux("title")}>
12
15
  Lux
13
16
  </h1>
14
- <p className="text-lg text-zinc-500 mb-12 max-w-md mx-auto">
17
+ <p className="text-lg text-zinc-500 mb-12 max-w-md mx-auto" data-lux={lux("description")}>
15
18
  Authentication, database, and UI components. Everything you need to start building.
16
19
  </p>
17
20
 
18
21
  <div className="flex gap-4 justify-center mb-16">
19
22
  <Link
20
23
  href="/sign-in"
24
+ data-lux={lux("signin-button")}
21
25
  className="px-8 py-3 bg-black text-white text-sm font-medium rounded-full hover:bg-zinc-800 transition-colors"
22
26
  >
23
27
  Sign In
24
28
  </Link>
25
29
  <Link
26
30
  href="/sign-up"
31
+ data-lux={lux("signup-button")}
27
32
  className="px-8 py-3 border border-zinc-200 text-black text-sm font-medium rounded-full hover:bg-zinc-50 transition-colors"
28
33
  >
29
34
  Sign Up
30
35
  </Link>
31
36
  </div>
32
37
 
33
- <div className="flex items-center justify-center gap-8 text-sm text-zinc-400">
38
+ <div className="flex items-center justify-center gap-8 text-sm text-zinc-400" data-lux={lux("features")}>
34
39
  <span>Next.js</span>
35
40
  <span className="w-1 h-1 bg-zinc-300 rounded-full" />
36
41
  <span>Auth</span>
@@ -42,7 +47,7 @@ export default function Home() {
42
47
  </div>
43
48
  </main>
44
49
 
45
- <footer className="py-6 text-center text-sm text-zinc-400">
50
+ <footer className="py-6 text-center text-sm text-zinc-400" data-lux={lux("footer")}>
46
51
  <p>Ready to ship.</p>
47
52
  </footer>
48
53
  </div>
@@ -3,6 +3,9 @@
3
3
  import { useSession, signOut } from "@/lib/auth-client";
4
4
  import { useRouter } from "next/navigation";
5
5
  import { useEffect } from "react";
6
+ import { createLux } from "@/lib/lux";
7
+
8
+ const lux = createLux("Settings");
6
9
 
7
10
  export default function SettingsPage() {
8
11
  const { data: session, isPending } = useSession();
@@ -16,7 +19,7 @@ export default function SettingsPage() {
16
19
 
17
20
  if (isPending) {
18
21
  return (
19
- <div className="min-h-screen flex items-center justify-center">
22
+ <div className="min-h-screen flex items-center justify-center" data-lux={lux("loading")}>
20
23
  <div className="text-gray-500">Loading...</div>
21
24
  </div>
22
25
  );
@@ -32,25 +35,25 @@ export default function SettingsPage() {
32
35
  };
33
36
 
34
37
  return (
35
- <div className="min-h-screen bg-gray-50">
38
+ <div className="min-h-screen bg-gray-50" data-lux={lux("container")}>
36
39
  <div className="max-w-2xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
37
40
  <div className="mb-8">
38
- <h1 className="text-3xl font-bold text-gray-900">Settings</h1>
39
- <p className="mt-2 text-sm text-gray-600">
41
+ <h1 className="text-3xl font-bold text-gray-900" data-lux={lux("title")}>Settings</h1>
42
+ <p className="mt-2 text-sm text-gray-600" data-lux={lux("subtitle")}>
40
43
  Manage your account settings
41
44
  </p>
42
45
  </div>
43
46
 
44
- <div className="bg-white shadow rounded-lg p-6">
45
- <h2 className="text-lg font-medium text-gray-900 mb-4">Account</h2>
47
+ <div className="bg-white shadow rounded-lg p-6" data-lux={lux("card")}>
48
+ <h2 className="text-lg font-medium text-gray-900 mb-4" data-lux={lux("section-title")}>Account</h2>
46
49
 
47
50
  <div className="space-y-4">
48
- <div>
51
+ <div data-lux={lux("name-field")}>
49
52
  <label className="block text-sm font-medium text-gray-700">Name</label>
50
53
  <p className="mt-1 text-sm text-gray-900">{session.user.name}</p>
51
54
  </div>
52
55
 
53
- <div>
56
+ <div data-lux={lux("email-field")}>
54
57
  <label className="block text-sm font-medium text-gray-700">Email</label>
55
58
  <p className="mt-1 text-sm text-gray-900">{session.user.email}</p>
56
59
  </div>
@@ -59,6 +62,7 @@ export default function SettingsPage() {
59
62
  <div className="mt-6 pt-6 border-t border-gray-200">
60
63
  <button
61
64
  onClick={handleSignOut}
65
+ data-lux={lux("signout-button")}
62
66
  className="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors"
63
67
  >
64
68
  Sign Out