@stacksjs/defaults 0.72.49 → 0.72.54

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 (33) hide show
  1. package/ai/skills/stacks-browse/scripts/browse.ts +63 -4
  2. package/ide/vscode/package.json +1 -1
  3. package/lang/de.yml +0 -1
  4. package/package.json +7 -2
  5. package/resources/components/Dashboard/Auth/ForgotPasswordDashboard.stx +8 -0
  6. package/resources/components/Dashboard/Auth/Login.stx +8 -0
  7. package/resources/components/Dashboard/Auth/LoginDashboard.stx +5 -1
  8. package/resources/components/Dashboard/Auth/MagicLink.stx +94 -0
  9. package/resources/components/Dashboard/Auth/Register.stx +7 -0
  10. package/resources/components/Dashboard/Auth/RegisterDashboard.stx +5 -1
  11. package/resources/components/Dashboard/Auth/ResetPassword.stx +163 -0
  12. package/resources/components/Dashboard/Auth/ResetPasswordDashboard.stx +95 -0
  13. package/resources/layouts/403.stx +15 -148
  14. package/resources/layouts/404.stx +7 -2
  15. package/resources/views/auth/magic/[token].stx +24 -0
  16. package/resources/views/errors/404.stx +42 -0
  17. package/resources/views/forgot-password.stx +13 -0
  18. package/resources/views/login.stx +68 -0
  19. package/resources/views/password/reset/[token].stx +18 -0
  20. package/resources/views/register.stx +64 -0
  21. package/vcs/github/workflows/ci.yml +87 -0
  22. package/views/[...all].stx +0 -7
  23. package/views/about.md +0 -3
  24. package/views/auth/login.stx +0 -1
  25. package/views/auth/magic/[token].stx +0 -88
  26. package/views/auth/signup.stx +0 -120
  27. package/views/forum/category.stx +0 -92
  28. package/views/forum/index.stx +0 -209
  29. package/views/forum/new-topic.stx +0 -113
  30. package/views/forum/profile.stx +0 -1
  31. package/views/forum/topic.stx +0 -143
  32. package/views/hello-world/[name].stx +0 -47
  33. package/views/index.stx +0 -21
@@ -1,120 +0,0 @@
1
- <script server>
2
- /**
3
- * The providers whose buttons are worth rendering.
4
- *
5
- * `configuredSocialProviders()` knows each provider's own required config,
6
- * so a provider missing credentials never reaches a visitor as a button
7
- * that fails at the redirect. Adding credentials to `config/services.ts`
8
- * is the whole of what turns one on.
9
- *
10
- * Icons come from hugeicons, the collection Stacks defaults to. Swap the
11
- * map if your app standardises on another one.
12
- */
13
- import { configuredSocialProviders } from '@stacksjs/socials'
14
-
15
- const PROVIDER_ICONS = {
16
- apple: 'i-hugeicons-apple',
17
- facebook: 'i-hugeicons-facebook-01',
18
- github: 'i-hugeicons-github',
19
- google: 'i-hugeicons-google',
20
- twitter: 'i-hugeicons-new-twitter',
21
- }
22
-
23
- const socialSignIn = configuredSocialProviders().map(provider => ({
24
- label: provider.label,
25
- href: `/auth/${provider.name}/redirect`,
26
- icon: PROVIDER_ICONS[provider.name] ?? 'i-hugeicons-user-circle',
27
- }))
28
- </script>
29
-
30
- <div class="flex flex-col justify-center py-12 sm:px-6 lg:px-8 min-h-full">
31
- <div class="sm:mx-auto sm:max-w-md sm:w-full">
32
- <Logo class="mx-auto h-11 w-auto" />
33
- <h2 class="mt-6 font-bold leading-9 text-2xl text-center text-gray-900 tracking-tight">
34
- Sign up to your account
35
- </h2>
36
- </div>
37
-
38
- <div class="mt-10 sm:mx-auto sm:max-w-[480px] sm:w-full">
39
- <div class="px-6 py-12 sm:px-12 bg-white sm:rounded-lg shadow">
40
- <form class="space-y-6" action="#" method="POST">
41
- <div>
42
- <label for="name" class="block font-medium leading-6 text-gray-900 text-sm">Name</label>
43
- <div class="mt-2">
44
- <input id="name" name="name" type="text" autocomplete="name" required class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-blue-600 focus:ring-inset shadow-sm">
45
- </div>
46
- </div>
47
-
48
- <div>
49
- <label for="email" class="block font-medium leading-6 text-gray-900 text-sm">Email address</label>
50
- <div class="mt-2">
51
- <input id="email" name="email" type="email" autocomplete="email" required class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-blue-600 focus:ring-inset shadow-sm">
52
- </div>
53
- </div>
54
-
55
- <div>
56
- <label for="password" class="block font-medium leading-6 text-gray-900 text-sm">Password</label>
57
- <div class="mt-2">
58
- <input id="password" name="password" type="password" autocomplete="current-password" required class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-blue-600 focus:ring-inset shadow-sm">
59
- </div>
60
- </div>
61
-
62
- <div>
63
- <label for="password" class="block font-medium leading-6 text-gray-900 text-sm">Confirm Password</label>
64
- <div class="mt-2">
65
- <input id="password" name="password" type="password" autocomplete="current-password" required class="block py-1.5 w-full text-gray-900 sm:leading-6 sm:text-sm placeholder:text-gray-400 border-0 ring-1 ring-gray-300 ring-inset rounded-md focus:ring-2 focus:ring-blue-600 focus:ring-inset shadow-sm">
66
- </div>
67
- </div>
68
-
69
- <div>
70
- <div>
71
- <button type="submit" class="flex justify-center px-3 py-1.5 w-full font-semibold leading-6 text-sm text-white bg-blue-600 hover:bg-blue-500 rounded-md focus-visible:outline focus-visible:outline-2 focus-visible:outline-blue-600 focus-visible:outline-offset-2 shadow-sm">
72
- Sign up
73
- </button>
74
- </div>
75
- </div>
76
- </form>
77
-
78
- {{--
79
- Social sign-in, driven by which providers are actually configured.
80
-
81
- This block used to be two hardcoded buttons pointing at `href="#"`,
82
- so a scaffolded app shipped a Google and a GitHub button that both
83
- did nothing, and offered them whether or not either provider had
84
- credentials. `configuredSocialProviders()` answers that per
85
- provider on each provider's own terms (Apple has no clientSecret
86
- and is validated on its signing key instead), so what renders here
87
- is exactly the set that will complete a sign-in.
88
- --}}
89
- @if (socialSignIn.length)
90
- <div>
91
- <div class="relative mt-10">
92
- <div class="flex absolute inset-0 items-center" aria-hidden="true">
93
- <div class="w-full border-gray-200 border-t"></div>
94
- </div>
95
- <div class="flex relative justify-center font-medium leading-6 text-sm">
96
- <span class="px-6 text-gray-900 bg-white">Or continue with</span>
97
- </div>
98
- </div>
99
-
100
- <div class="grid gap-4 mt-6 {{ socialSignIn.length > 1 ? 'grid-cols-2' : 'grid-cols-1' }}">
101
- @foreach (socialSignIn as provider)
102
- <a
103
- href="{{ provider.href }}"
104
- class="flex gap-3 items-center justify-center px-3 py-2 w-full font-semibold text-gray-900 text-sm bg-white hover:bg-gray-50 ring-1 ring-gray-300 ring-inset rounded-md focus-visible:ring-transparent shadow-sm"
105
- >
106
- <i class="h-5 w-5 {{ provider.icon }}" aria-hidden="true"></i>
107
- <span class="font-semibold leading-6 text-sm">{{ provider.label }}</span>
108
- </a>
109
- @endforeach
110
- </div>
111
- </div>
112
- @endif
113
- </div>
114
-
115
- <p class="mt-10 text-center text-gray-500 text-sm">
116
- Already have an account?
117
- <a href="/login" class="font-semibold leading-6 text-blue-600 hover:text-blue-500">Sign in</a>
118
- </p>
119
- </div>
120
- </div>
@@ -1,92 +0,0 @@
1
- <script server>
2
- const category = ''
3
- const subcategory = ''
4
- const filter = ''
5
- </script>
6
- <ForumLayout :route="routeType">
7
- <div class="grid gap-8 grid-cols-1 lg:grid-cols-3">
8
- <div class="lg:col-span-2">
9
- <ForumBreadcrumb :items="breadcrumbItems" />
10
-
11
- <div class="mb-6">
12
- <div class="flex items-center justify-between px-4 py-3 bg-gray-100 rounded-t-md">
13
- <div>
14
- <h1 class="font-bold text-xl">{{ categoryTitle }}</h1>
15
- <p class="mt-1 text-gray-600 text-sm">{{ categoryDescription }}</p>
16
- </div>
17
-
18
- <div>
19
- <a href="/forum/new-topic" class="px-4 py-2 text-white bg-primary rounded-md hover:opacity-90">New Topic</a>
20
- </div>
21
- </div>
22
- </div>
23
-
24
- <ForumTopicList :title="listTitle">
25
- @foreach (topic in topics)
26
- <ForumTopicItem
27
- :key="topic.id"
28
- :title="topic.title"
29
- :link="topic.link"
30
- :authorName="topic.authorName"
31
- :authorAvatar="topic.authorAvatar"
32
- :createdAt="topic.createdAt"
33
- :viewCount="topic.viewCount"
34
- :replyCount="topic.replyCount"
35
- :likeCount="topic.likeCount"
36
- :category="topic.category"
37
- :categoryLink="topic.categoryLink"
38
- :excerpt="topic.excerpt || ''"
39
- :isPinned="!!topic.isPinned"
40
- :isSolved="!!topic.isSolved"
41
- :lastReplyAuthorName="topic.lastReplyAuthorName || ''"
42
- :lastReplyAuthorAvatar="topic.lastReplyAuthorAvatar || ''"
43
- :lastReplyAt="topic.lastReplyAt || ''"
44
- />
45
- @endforeach
46
- </ForumTopicList>
47
-
48
- <ForumPagination :currentPage="1" :totalPages="5" />
49
- </div>
50
-
51
- <div class="lg:col-span-1">
52
- <ForumSidebar
53
- :stats="{
54
- topics: 540,
55
- posts: 3287,
56
- members: 1245,
57
- newestMember: 'NewUser123'
58
- }"
59
- :popularTopics="[
60
- {
61
- id: 1,
62
- title: 'How to implement authentication in a new Stacks.js project?',
63
- link: '/forum/topic/1',
64
- replyCount: 3,
65
- viewCount: 45
66
- },
67
- {
68
- id: 2,
69
- title: 'Best practices for database migrations in Stacks.js',
70
- link: '/forum/topic/3',
71
- replyCount: 15,
72
- viewCount: 128
73
- },
74
- {
75
- id: 3,
76
- title: 'Introducing myself to the community!',
77
- link: '/forum/topic/2',
78
- replyCount: 8,
79
- viewCount: 32
80
- }
81
- ]"
82
- :onlineUsers="[
83
- { id: 1, name: 'JohnDoe', avatar: '/images/avatars/default.png' },
84
- { id: 2, name: 'DatabaseGuru', avatar: '/images/avatars/default.png' },
85
- { id: 3, name: 'NewUser123', avatar: '/images/avatars/default.png' },
86
- { id: 4, name: 'ExpertUser', avatar: '/images/avatars/default.png' },
87
- { id: 5, name: 'StacksMaster', avatar: '/images/avatars/default.png' }
88
- ]"
89
- />
90
- </div>
91
- </div>
92
- </ForumLayout>
@@ -1,209 +0,0 @@
1
- <script server>
2
- const filter = ''
3
- </script>
4
- <ForumLayout :route="currentRoute">
5
- <div class="grid gap-8 grid-cols-1 lg:grid-cols-3">
6
- <div class="lg:col-span-2">
7
- <ForumBreadcrumb :items="breadcrumbItems" />
8
-
9
- @if (!filter)
10
- <div>
11
- <ForumCategory title="Announcements">
12
- <ForumCategoryItem
13
- title="Welcome to the Stacks Community Forum"
14
- description="Important information about the forum rules and guidelines. Please read before posting."
15
- link="/forum/category/announcements/welcome"
16
- :topicCount="5"
17
- :postCount="42"
18
- icon="i-hugeicons-megaphone"
19
- :latestTopic="{
20
- title: 'Forum Rules and Guidelines',
21
- link: '/forum/topic/4',
22
- timeAgo: '1 week ago',
23
- author: 'Admin',
24
- authorLink: '/forum/profile/admin'
25
- }"
26
- />
27
- <ForumCategoryItem
28
- title="Stacks.js v2.0 Release Notes"
29
- description="Learn about the latest features and improvements in Stacks.js v2.0"
30
- link="/forum/category/announcements/release-notes"
31
- :topicCount="12"
32
- :postCount="87"
33
- icon="i-hugeicons-newspaper"
34
- :latestTopic="{
35
- title: 'Stacks.js v2.0 Released!',
36
- link: '/forum/topic/6',
37
- timeAgo: '3 days ago',
38
- author: 'StacksMaster',
39
- authorLink: '/forum/profile/stacksmaster'
40
- }"
41
- />
42
- </ForumCategory>
43
-
44
- <ForumCategory title="General Discussion">
45
- <ForumCategoryItem
46
- title="General Chat"
47
- description="A place to discuss anything related to Stacks.js and our community."
48
- link="/forum/category/general/chat"
49
- :topicCount="128"
50
- :postCount="1243"
51
- :latestTopic="{
52
- title: 'Best practices for database migrations in Stacks.js',
53
- link: '/forum/topic/3',
54
- timeAgo: '1 day ago',
55
- author: 'DatabaseGuru',
56
- authorLink: '/forum/profile/databaseguru'
57
- }"
58
- />
59
- <ForumCategoryItem
60
- title="Introductions"
61
- description="New to the forum? Introduce yourself here and meet other community members!"
62
- link="/forum/category/general/introductions"
63
- :topicCount="75"
64
- :postCount="312"
65
- icon="i-hugeicons-user-plus"
66
- :latestTopic="{
67
- title: 'Introducing myself to the community!',
68
- link: '/forum/topic/2',
69
- timeAgo: '5 hours ago',
70
- author: 'NewUser123',
71
- authorLink: '/forum/profile/newuser123'
72
- }"
73
- />
74
- <ForumCategoryItem
75
- title="Feedback & Suggestions"
76
- description="Share your ideas and suggestions for improving Stacks.js and the forum."
77
- link="/forum/category/general/feedback"
78
- :topicCount="34"
79
- :postCount="156"
80
- icon="i-hugeicons-lightbulb"
81
- :latestTopic="{
82
- title: 'Suggestion: Add dark mode to the forum',
83
- link: '/forum/topic/7',
84
- timeAgo: '2 days ago',
85
- author: 'DarkModeEnthusiast',
86
- authorLink: '/forum/profile/darkmode'
87
- }"
88
- />
89
- </ForumCategory>
90
-
91
- <ForumCategory title="Technical Support">
92
- <ForumCategoryItem
93
- title="Installation & Setup"
94
- description="Need help with installing or setting up Stacks.js? Ask here."
95
- link="/forum/category/support/installation"
96
- :topicCount="87"
97
- :postCount="423"
98
- icon="i-hugeicons-wrench"
99
- :latestTopic="{
100
- title: 'How to implement authentication in a new Stacks.js project?',
101
- link: '/forum/topic/1',
102
- timeAgo: '2 hours ago',
103
- author: 'JohnDoe',
104
- authorLink: '/forum/profile/johndoe'
105
- }"
106
- />
107
- <ForumCategoryItem
108
- title="Troubleshooting"
109
- description="Having issues with your Stacks.js project? Get help from the community."
110
- link="/forum/category/support/troubleshooting"
111
- :topicCount="142"
112
- :postCount="768"
113
- icon="i-hugeicons-bug"
114
- :latestTopic="{
115
- title: 'TypeError when using the new API client',
116
- link: '/forum/topic/8',
117
- timeAgo: '6 hours ago',
118
- author: 'BugHunter',
119
- authorLink: '/forum/profile/bughunter'
120
- }"
121
- />
122
- <ForumCategoryItem
123
- title="Feature Requests"
124
- description="Request new features or enhancements for Stacks.js."
125
- link="/forum/category/support/feature-requests"
126
- :topicCount="56"
127
- :postCount="289"
128
- icon="i-hugeicons-star"
129
- :latestTopic="{
130
- title: 'Request: Add built-in support for WebSockets',
131
- link: '/forum/topic/9',
132
- timeAgo: '4 days ago',
133
- author: 'RealtimeDev',
134
- authorLink: '/forum/profile/realtimedev'
135
- }"
136
- />
137
- </ForumCategory>
138
- </div>
139
- @endif
140
-
141
- <ForumTopicList :title="listTitle">
142
- @foreach (topic in topics)
143
- <ForumTopicItem
144
- :key="topic.id"
145
- :title="topic.title"
146
- :link="topic.link"
147
- :authorName="topic.authorName"
148
- :authorAvatar="topic.authorAvatar"
149
- :createdAt="topic.createdAt"
150
- :viewCount="topic.viewCount"
151
- :replyCount="topic.replyCount"
152
- :likeCount="topic.likeCount"
153
- :category="topic.category"
154
- :categoryLink="topic.categoryLink"
155
- :excerpt="topic.excerpt || ''"
156
- :isPinned="!!topic.isPinned"
157
- :isSolved="!!topic.isSolved"
158
- :lastReplyAuthorName="topic.lastReplyAuthorName || ''"
159
- :lastReplyAuthorAvatar="topic.lastReplyAuthorAvatar || ''"
160
- :lastReplyAt="topic.lastReplyAt || ''"
161
- />
162
- @endforeach
163
- </ForumTopicList>
164
-
165
- <ForumPagination :currentPage="1" :totalPages="5" />
166
- </div>
167
-
168
- <div class="lg:col-span-1">
169
- <ForumSidebar
170
- :stats="{
171
- topics: 540,
172
- posts: 3287,
173
- members: 1245,
174
- newestMember: 'NewUser123'
175
- }"
176
- :popularTopics="[
177
- {
178
- id: 1,
179
- title: 'How to implement authentication in a new Stacks.js project?',
180
- link: '/forum/topic/1',
181
- replyCount: 3,
182
- viewCount: 45
183
- },
184
- {
185
- id: 2,
186
- title: 'Best practices for database migrations in Stacks.js',
187
- link: '/forum/topic/3',
188
- replyCount: 15,
189
- viewCount: 128
190
- },
191
- {
192
- id: 3,
193
- title: 'Introducing myself to the community!',
194
- link: '/forum/topic/2',
195
- replyCount: 8,
196
- viewCount: 32
197
- }
198
- ]"
199
- :onlineUsers="[
200
- { id: 1, name: 'JohnDoe', avatar: '/images/avatars/default.png' },
201
- { id: 2, name: 'DatabaseGuru', avatar: '/images/avatars/default.png' },
202
- { id: 3, name: 'NewUser123', avatar: '/images/avatars/default.png' },
203
- { id: 4, name: 'ExpertUser', avatar: '/images/avatars/default.png' },
204
- { id: 5, name: 'StacksMaster', avatar: '/images/avatars/default.png' }
205
- ]"
206
- />
207
- </div>
208
- </div>
209
- </ForumLayout>
@@ -1,113 +0,0 @@
1
- <script>
2
- </script>
3
-
4
- <ForumLayout route="forum-new-topic">
5
- <div class="mx-auto max-w-3xl">
6
- <ForumBreadcrumb :items="[
7
- { label: 'Forum', link: '/forum' },
8
- { label: 'New Topic', link: '/forum/new-topic' }
9
- ]" />
10
-
11
- <div class="mb-6 border rounded-md">
12
- <div class="flex items-center px-4 py-3 bg-gray-50 rounded-t-md">
13
- <h1 class="font-medium text-lg">Create New Topic</h1>
14
- </div>
15
-
16
- <div class="p-4">
17
- <div class="space-y-4">
18
- <div>
19
- <label class="block mb-1 font-medium">Title</label>
20
- <input
21
- type="text"
22
- placeholder="Enter a descriptive title for your topic"
23
- class="px-3 py-2 w-full border rounded-md focus:outline-none focus:ring-2 focus:ring-primary"
24
- >
25
- <div class="mt-1 text-gray-500 text-xs">
26
- Be specific and imagine you're asking a question to another person
27
- </div>
28
- </div>
29
-
30
- <div>
31
- <label class="block mb-1 font-medium">Category</label>
32
- <select class="px-3 py-2 w-full border rounded-md focus:outline-none focus:ring-2 focus:ring-primary">
33
- <option value="">Select a category</option>
34
- <optgroup label="General Discussion">
35
- <option value="general-chat">General Chat</option>
36
- <option value="introductions">Introductions</option>
37
- <option value="feedback">Feedback & Suggestions</option>
38
- </optgroup>
39
- <optgroup label="Technical Support">
40
- <option value="installation">Installation & Setup</option>
41
- <option value="troubleshooting">Troubleshooting</option>
42
- <option value="feature-requests">Feature Requests</option>
43
- </optgroup>
44
- </select>
45
- </div>
46
-
47
- <div>
48
- <label class="block mb-1 font-medium">Content</label>
49
- <div class="mb-2">
50
- <div class="flex gap-2 mb-2">
51
- <button class="px-2 py-1 text-sm hover:bg-gray-100 border rounded">B</button>
52
- <button class="px-2 py-1 text-sm hover:bg-gray-100 border rounded">I</button>
53
- <button class="px-2 py-1 text-sm hover:bg-gray-100 border rounded">
54
- <span class="i-hugeicons-link"></span>
55
- </button>
56
- <button class="px-2 py-1 text-sm hover:bg-gray-100 border rounded">
57
- <span class="i-hugeicons-code"></span>
58
- </button>
59
- <button class="px-2 py-1 text-sm hover:bg-gray-100 border rounded">
60
- <span class="i-hugeicons-image"></span>
61
- </button>
62
- </div>
63
- <textarea
64
- class="p-3 min-h-40 w-full border rounded-md focus:outline-none focus:ring-2 focus:ring-primary"
65
- placeholder="Describe your topic in detail. Include any relevant code, error messages, or screenshots."
66
- ></textarea>
67
- </div>
68
- </div>
69
-
70
- <div>
71
- <label class="block mb-1 font-medium">Tags</label>
72
- <input
73
- type="text"
74
- placeholder="Add tags separated by commas (e.g. javascript, stx, api)"
75
- class="px-3 py-2 w-full border rounded-md focus:outline-none focus:ring-2 focus:ring-primary"
76
- >
77
- <div class="mt-1 text-gray-500 text-xs">
78
- Add up to 5 tags to help categorize your topic and make it more discoverable
79
- </div>
80
- </div>
81
-
82
- <div class="flex items-center">
83
- <input type="checkbox" id="notify" class="mr-2" checked>
84
- <label for="notify" class="text-gray-600 text-sm">
85
- Notify me when someone replies to this topic
86
- </label>
87
- </div>
88
-
89
- <div class="flex gap-2 justify-end">
90
- <a href="/forum" class="px-4 py-2 hover:bg-gray-100 border rounded-md">
91
- Cancel
92
- </a>
93
- <button class="px-4 py-2 text-white bg-primary rounded-md hover:opacity-90">
94
- Create Topic
95
- </button>
96
- </div>
97
- </div>
98
- </div>
99
- </div>
100
-
101
- <div class="p-4 bg-gray-50 border rounded-md">
102
- <h3 class="mb-2 font-medium">Forum Guidelines</h3>
103
- <ul class="space-y-1 list-disc list-inside text-gray-600 text-sm">
104
- <li>Be respectful and courteous to other community members</li>
105
- <li>Search before posting to avoid duplicate topics</li>
106
- <li>Use descriptive titles that summarize your question or discussion</li>
107
- <li>Format code using the code formatting button for better readability</li>
108
- <li>Tag your topic appropriately to help others find it</li>
109
- <li>If you're asking for help, include relevant details like version numbers and error messages</li>
110
- </ul>
111
- </div>
112
- </div>
113
- </ForumLayout>
@@ -1 +0,0 @@
1
- <!-- Forum profile view -->