create-nextjs-cms 0.9.0 → 0.9.2

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 (186) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +71 -71
  3. package/dist/helpers/utils.js +16 -16
  4. package/dist/lib/section-creators.js +166 -166
  5. package/package.json +1 -1
  6. package/templates/default/.eslintrc.json +5 -5
  7. package/templates/default/.prettierignore +7 -7
  8. package/templates/default/.prettierrc.json +27 -27
  9. package/templates/default/CHANGELOG.md +140 -140
  10. package/templates/default/_gitignore +57 -57
  11. package/templates/default/app/(auth)/auth/login/LoginPage.tsx +192 -192
  12. package/templates/default/app/(auth)/auth/login/page.tsx +11 -11
  13. package/templates/default/app/(auth)/layout.tsx +81 -81
  14. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/page.tsx +40 -40
  15. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/plugin-server-registry.ts +16 -16
  16. package/templates/default/app/(rootLayout)/admins/page.tsx +10 -10
  17. package/templates/default/app/(rootLayout)/browse/[section]/[page]/page.tsx +22 -22
  18. package/templates/default/app/(rootLayout)/categorized/[section]/page.tsx +15 -15
  19. package/templates/default/app/(rootLayout)/dashboard/page.tsx +63 -63
  20. package/templates/default/app/(rootLayout)/dashboard-new/page.tsx +7 -7
  21. package/templates/default/app/(rootLayout)/edit/[section]/[itemId]/page.tsx +20 -20
  22. package/templates/default/app/(rootLayout)/layout.tsx +81 -81
  23. package/templates/default/app/(rootLayout)/loading.tsx +10 -10
  24. package/templates/default/app/(rootLayout)/log/page.tsx +7 -7
  25. package/templates/default/app/(rootLayout)/new/[section]/page.tsx +15 -15
  26. package/templates/default/app/(rootLayout)/section/[section]/page.tsx +19 -19
  27. package/templates/default/app/(rootLayout)/settings/page.tsx +13 -13
  28. package/templates/default/app/_trpc/client.ts +3 -3
  29. package/templates/default/app/api/auth/csrf/route.ts +25 -25
  30. package/templates/default/app/api/auth/refresh/route.ts +10 -10
  31. package/templates/default/app/api/auth/route.ts +49 -49
  32. package/templates/default/app/api/auth/session/route.ts +20 -20
  33. package/templates/default/app/api/document/route.ts +165 -165
  34. package/templates/default/app/api/editor/photo/route.ts +49 -49
  35. package/templates/default/app/api/photo/route.ts +27 -27
  36. package/templates/default/app/api/submit/section/item/[slug]/route.ts +95 -95
  37. package/templates/default/app/api/submit/section/item/route.ts +56 -56
  38. package/templates/default/app/api/submit/section/simple/route.ts +86 -86
  39. package/templates/default/app/api/trpc/[trpc]/route.ts +33 -33
  40. package/templates/default/app/api/video/route.ts +174 -174
  41. package/templates/default/app/globals.css +228 -228
  42. package/templates/default/app/providers.tsx +152 -152
  43. package/templates/default/cms.config.ts +57 -58
  44. package/templates/default/components/AdminCard.tsx +166 -166
  45. package/templates/default/components/AdminEditPage.tsx +124 -124
  46. package/templates/default/components/AdminPrivilegeCard.tsx +185 -185
  47. package/templates/default/components/AdminsPage.tsx +43 -43
  48. package/templates/default/components/AnalyticsPage.tsx +128 -128
  49. package/templates/default/components/BarChartBox.tsx +42 -42
  50. package/templates/default/components/BrowsePage.tsx +106 -106
  51. package/templates/default/components/CategorizedSectionPage.tsx +31 -31
  52. package/templates/default/components/CategoryDeleteConfirmPage.tsx +130 -130
  53. package/templates/default/components/CategorySectionSelectInput.tsx +140 -140
  54. package/templates/default/components/ConditionalFields.tsx +49 -49
  55. package/templates/default/components/ContainerBox.tsx +24 -24
  56. package/templates/default/components/DashboardNewPage.tsx +253 -253
  57. package/templates/default/components/DashboardPage.tsx +188 -188
  58. package/templates/default/components/DashboardPageAlt.tsx +45 -45
  59. package/templates/default/components/DefaultNavItems.tsx +3 -3
  60. package/templates/default/components/Dropzone.tsx +154 -154
  61. package/templates/default/components/EmailCard.tsx +138 -138
  62. package/templates/default/components/EmailPasswordForm.tsx +85 -85
  63. package/templates/default/components/EmailQuotaForm.tsx +73 -73
  64. package/templates/default/components/EmailsPage.tsx +49 -49
  65. package/templates/default/components/ErrorComponent.tsx +16 -16
  66. package/templates/default/components/GalleryPhoto.tsx +93 -93
  67. package/templates/default/components/InfoCard.tsx +93 -93
  68. package/templates/default/components/ItemEditPage.tsx +294 -294
  69. package/templates/default/components/Layout.tsx +84 -84
  70. package/templates/default/components/LoadingSpinners.tsx +67 -67
  71. package/templates/default/components/LocaleSwitcher.tsx +89 -89
  72. package/templates/default/components/LogPage.tsx +107 -107
  73. package/templates/default/components/Modal.tsx +166 -166
  74. package/templates/default/components/Navbar.tsx +258 -258
  75. package/templates/default/components/NewAdminForm.tsx +173 -173
  76. package/templates/default/components/NewEmailForm.tsx +132 -132
  77. package/templates/default/components/NewPage.tsx +206 -206
  78. package/templates/default/components/NewVariantComponent.tsx +229 -229
  79. package/templates/default/components/PhotoGallery.tsx +35 -35
  80. package/templates/default/components/PieChartBox.tsx +101 -101
  81. package/templates/default/components/ProgressBar.tsx +48 -48
  82. package/templates/default/components/ProtectedDocument.tsx +44 -44
  83. package/templates/default/components/ProtectedImage.tsx +143 -143
  84. package/templates/default/components/ProtectedVideo.tsx +76 -76
  85. package/templates/default/components/SectionIcon.tsx +8 -8
  86. package/templates/default/components/SectionItemCard.tsx +144 -144
  87. package/templates/default/components/SectionItemStatusBadge.tsx +17 -17
  88. package/templates/default/components/SectionPage.tsx +205 -205
  89. package/templates/default/components/SelectBox.tsx +98 -98
  90. package/templates/default/components/SelectInputButtons.tsx +125 -125
  91. package/templates/default/components/SettingsPage.tsx +232 -232
  92. package/templates/default/components/Sidebar.tsx +204 -204
  93. package/templates/default/components/SidebarDropdownItem.tsx +83 -83
  94. package/templates/default/components/SidebarItem.tsx +24 -24
  95. package/templates/default/components/ThemeProvider.tsx +8 -8
  96. package/templates/default/components/TooltipComponent.tsx +27 -27
  97. package/templates/default/components/VariantCard.tsx +124 -124
  98. package/templates/default/components/VariantEditPage.tsx +230 -230
  99. package/templates/default/components/analytics/BounceRate.tsx +70 -70
  100. package/templates/default/components/analytics/LivePageViews.tsx +55 -55
  101. package/templates/default/components/analytics/LiveUsersCount.tsx +33 -33
  102. package/templates/default/components/analytics/MonthlyPageViews.tsx +42 -42
  103. package/templates/default/components/analytics/TopCountries.tsx +52 -52
  104. package/templates/default/components/analytics/TopDevices.tsx +46 -46
  105. package/templates/default/components/analytics/TopMediums.tsx +58 -58
  106. package/templates/default/components/analytics/TopSources.tsx +45 -45
  107. package/templates/default/components/analytics/TotalPageViews.tsx +41 -41
  108. package/templates/default/components/analytics/TotalSessions.tsx +41 -41
  109. package/templates/default/components/analytics/TotalUniqueUsers.tsx +41 -41
  110. package/templates/default/components/custom/RightHomeRoomVariantCard.tsx +138 -138
  111. package/templates/default/components/dndKit/Draggable.tsx +21 -21
  112. package/templates/default/components/dndKit/Droppable.tsx +20 -20
  113. package/templates/default/components/dndKit/SortableItem.tsx +18 -18
  114. package/templates/default/components/form/DateRangeFormInput.tsx +57 -57
  115. package/templates/default/components/form/Form.tsx +360 -360
  116. package/templates/default/components/form/FormInputElement.tsx +70 -70
  117. package/templates/default/components/form/FormInputs.tsx +111 -111
  118. package/templates/default/components/form/helpers/_section-hot-reload.js +1 -1
  119. package/templates/default/components/form/helpers/util.ts +17 -17
  120. package/templates/default/components/form/inputs/CheckboxFormInput.tsx +46 -46
  121. package/templates/default/components/form/inputs/ColorFormInput.tsx +44 -44
  122. package/templates/default/components/form/inputs/DateFormInput.tsx +156 -156
  123. package/templates/default/components/form/inputs/DocumentFormInput.tsx +222 -222
  124. package/templates/default/components/form/inputs/MapFormInput.tsx +140 -140
  125. package/templates/default/components/form/inputs/MultipleSelectFormInput.tsx +85 -85
  126. package/templates/default/components/form/inputs/NumberFormInput.tsx +43 -43
  127. package/templates/default/components/form/inputs/PasswordFormInput.tsx +47 -47
  128. package/templates/default/components/form/inputs/PhotoFormInput.tsx +275 -275
  129. package/templates/default/components/form/inputs/RichTextFormInput.tsx +138 -138
  130. package/templates/default/components/form/inputs/SelectFormInput.tsx +175 -175
  131. package/templates/default/components/form/inputs/SlugFormInput.tsx +131 -131
  132. package/templates/default/components/form/inputs/TagsFormInput.tsx +260 -260
  133. package/templates/default/components/form/inputs/TextFormInput.tsx +51 -51
  134. package/templates/default/components/form/inputs/TextareaFormInput.tsx +50 -50
  135. package/templates/default/components/form/inputs/VideoFormInput.tsx +118 -118
  136. package/templates/default/components/multi-select.tsx +1146 -1146
  137. package/templates/default/components/pagination/Pagination.tsx +36 -36
  138. package/templates/default/components/pagination/PaginationButtons.tsx +147 -147
  139. package/templates/default/components/theme-toggle.tsx +39 -39
  140. package/templates/default/components/ui/accordion.tsx +53 -53
  141. package/templates/default/components/ui/alert-dialog.tsx +157 -157
  142. package/templates/default/components/ui/alert.tsx +47 -47
  143. package/templates/default/components/ui/badge.tsx +38 -38
  144. package/templates/default/components/ui/button.tsx +62 -62
  145. package/templates/default/components/ui/calendar.tsx +166 -166
  146. package/templates/default/components/ui/card.tsx +43 -43
  147. package/templates/default/components/ui/checkbox.tsx +29 -29
  148. package/templates/default/components/ui/command.tsx +137 -137
  149. package/templates/default/components/ui/custom-alert-dialog.tsx +113 -113
  150. package/templates/default/components/ui/custom-dialog.tsx +123 -123
  151. package/templates/default/components/ui/dialog.tsx +123 -123
  152. package/templates/default/components/ui/direction.tsx +22 -22
  153. package/templates/default/components/ui/dropdown-menu.tsx +182 -182
  154. package/templates/default/components/ui/input-group.tsx +54 -54
  155. package/templates/default/components/ui/input.tsx +22 -22
  156. package/templates/default/components/ui/label.tsx +19 -19
  157. package/templates/default/components/ui/popover.tsx +42 -42
  158. package/templates/default/components/ui/progress.tsx +31 -31
  159. package/templates/default/components/ui/scroll-area.tsx +42 -42
  160. package/templates/default/components/ui/select.tsx +165 -165
  161. package/templates/default/components/ui/separator.tsx +28 -28
  162. package/templates/default/components/ui/sheet.tsx +103 -103
  163. package/templates/default/components/ui/spinner.tsx +16 -16
  164. package/templates/default/components/ui/switch.tsx +29 -29
  165. package/templates/default/components/ui/table.tsx +83 -83
  166. package/templates/default/components/ui/tabs.tsx +55 -55
  167. package/templates/default/components/ui/toast.tsx +113 -113
  168. package/templates/default/components/ui/toaster.tsx +35 -35
  169. package/templates/default/components/ui/tooltip.tsx +30 -30
  170. package/templates/default/components/ui/use-toast.ts +188 -188
  171. package/templates/default/components.json +21 -21
  172. package/templates/default/context/ModalProvider.tsx +53 -53
  173. package/templates/default/drizzle.config.ts +4 -4
  174. package/templates/default/dynamic-schemas/schema.ts +475 -474
  175. package/templates/default/env/env.js +130 -130
  176. package/templates/default/envConfig.ts +4 -4
  177. package/templates/default/hooks/useModal.ts +8 -8
  178. package/templates/default/lib/apiHelpers.ts +92 -92
  179. package/templates/default/lib/postinstall.js +14 -14
  180. package/templates/default/lib/utils.ts +6 -6
  181. package/templates/default/next-env.d.ts +6 -6
  182. package/templates/default/next.config.ts +23 -23
  183. package/templates/default/package.json +1 -1
  184. package/templates/default/postcss.config.mjs +6 -6
  185. package/templates/default/proxy.ts +32 -32
  186. package/templates/default/tsconfig.json +48 -48
@@ -1,229 +1,229 @@
1
- @import "tailwindcss";
2
- @plugin "tailwindcss-animate";
3
-
4
- @custom-variant dark (&:is(.dark *));
5
-
6
- /**
7
- * Background colors for the dashboard plugin
8
- */
9
- @source inline("{dark:,}bg-orange-{50,{100..900..100},950}");
10
-
11
- @utility container {
12
- margin-inline: auto;
13
- padding-inline: 2rem;
14
- @media (width >= --theme(--breakpoint-sm-sidebar)) {
15
- max-width: none;
16
- }
17
- @media (width >= 1400px) {
18
- max-width: 1400px;
19
- }
20
- }
21
-
22
- @theme {
23
- --breakpoint-sm-sidebar: 768px;
24
- --breakpoint-md-sidebar: 1024px;
25
- --breakpoint-lg-sidebar: 1280px;
26
- --breakpoint-xl-sidebar: 1536px;
27
- --breakpoint-2xl-sidebar: 1920px;
28
-
29
- --font-sans:
30
- var(--font-cairo, var(--font-sans)), ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
31
- 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
32
-
33
- --color-border: hsl(var(--border));
34
- --color-input: hsl(var(--input));
35
- --color-ring: hsl(var(--ring));
36
- --color-background: hsl(var(--background));
37
- --color-foreground: hsl(var(--foreground));
38
-
39
- --color-primary: hsl(var(--primary));
40
- --color-primary-foreground: hsl(var(--primary-foreground));
41
-
42
- --color-secondary: hsl(var(--secondary));
43
- --color-secondary-foreground: hsl(var(--secondary-foreground));
44
-
45
- --color-success: hsl(var(--success));
46
- --color-success-foreground: hsl(var(--success-foreground));
47
-
48
- --color-warning: hsl(var(--warning));
49
- --color-warning-foreground: hsl(var(--warning-foreground));
50
-
51
- --color-info: hsl(var(--info));
52
- --color-info-foreground: hsl(var(--info-foreground));
53
-
54
- --color-destructive: hsl(var(--destructive));
55
- --color-destructive-foreground: hsl(var(--destructive-foreground));
56
-
57
- --color-muted: hsl(var(--muted));
58
- --color-muted-foreground: hsl(var(--muted-foreground));
59
-
60
- --color-accent: hsl(var(--accent));
61
- --color-accent-foreground: hsl(var(--accent-foreground));
62
-
63
- --color-popover: hsl(var(--popover));
64
- --color-popover-foreground: hsl(var(--popover-foreground));
65
-
66
- --color-card: hsl(var(--card));
67
- --color-card-foreground: hsl(var(--card-foreground));
68
-
69
- --color-disabled: hsl(var(--disabled));
70
- --color-disabled-foreground: hsl(var(--disabled-foreground));
71
-
72
- --radius-lg: var(--radius);
73
- --radius-md: calc(var(--radius) - 2px);
74
- --radius-sm: calc(var(--radius) - 4px);
75
-
76
- --animate-accordion-down: accordion-down 0.2s ease-out;
77
- --animate-accordion-up: accordion-up 0.2s ease-out;
78
-
79
- @keyframes accordion-down {
80
- from {
81
- height: 0;
82
- }
83
- to {
84
- height: var(--radix-accordion-content-height);
85
- }
86
- }
87
- @keyframes accordion-up {
88
- from {
89
- height: var(--radix-accordion-content-height);
90
- }
91
- to {
92
- height: 0;
93
- }
94
- }
95
- }
96
-
97
- /*
98
- The default border color has changed to `currentcolor` in Tailwind CSS v4,
99
- so we've added these compatibility styles to make sure everything still
100
- looks the same as it did with Tailwind CSS v3.
101
-
102
- If we ever want to remove these styles, we need to add an explicit border
103
- color utility to any element that depends on these defaults.
104
- */
105
- @layer base {
106
- *,
107
- ::after,
108
- ::before,
109
- ::backdrop,
110
- ::file-selector-button {
111
- border-color: var(--color-gray-200, currentcolor);
112
- }
113
- }
114
-
115
- @layer base {
116
- :root {
117
- --background: 0 0% 100%;
118
- --foreground: 222.2 84% 4.9%;
119
-
120
- --card: 0 0% 100%;
121
- --card-foreground: 222.2 84% 4.9%;
122
-
123
- --popover: 0 0% 100%;
124
- --popover-foreground: 222.2 84% 4.9%;
125
-
126
- --primary: 222.2 47.4% 11.2%;
127
- --primary-foreground: 210 40% 98%;
128
-
129
- --success: 122.7 39.5% 49.6%;
130
- --success-foreground: 210 40% 98%;
131
-
132
- --warning: 45 100% 50%;
133
- --warning-foreground: 210 40% 98%;
134
-
135
- --info: 213 80% 52%;
136
- --info-foreground: 222 80% 52%;
137
-
138
- --secondary: 210 40% 96.1%;
139
- --secondary-foreground: 222.2 47.4% 11.2%;
140
-
141
- --muted: 210 40% 96.1%;
142
- --muted-foreground: 215.4 16.3% 46.9%;
143
-
144
- --accent: 210 40% 96.1%;
145
- --accent-foreground: 222.2 47.4% 11.2%;
146
-
147
- --destructive: 0 84.2% 60.2%;
148
- --destructive-foreground: 210 40% 98%;
149
-
150
- --border: 214.3 31.8% 91.4%;
151
- --input: 214.3 31.8% 96.4%;
152
- --ring: 222.2 84% 4.9%;
153
-
154
- --radius: 0.5rem;
155
- }
156
-
157
- .dark {
158
- --background: 999 84% 4.9%;
159
- --foreground: 210 40% 98%;
160
-
161
- --card: 222.2 84% 4.9%;
162
- --card-foreground: 210 40% 98%;
163
-
164
- --popover: 222.2 84% 4.9%;
165
- --popover-foreground: 210 40% 98%;
166
-
167
- --primary: 210 40% 98%;
168
- --primary-foreground: 222.2 47.4% 11.2%;
169
-
170
- --secondary: 217.2 32.6% 17.5%;
171
- --secondary-foreground: 210 40% 98%;
172
-
173
- --success: 122.7 39.5% 49.6%;
174
- --success-foreground: 210 40% 98%;
175
-
176
- --warning: 45 100% 50%;
177
- --warning-foreground: 210 40% 98%;
178
-
179
- --info: 213 60% 52%;
180
- --info-foreground: 200 80% 52%;
181
-
182
- --muted: 217.2 32.6% 17.5%;
183
- --muted-foreground: 215 20.2% 65.1%;
184
-
185
- --accent: 217.2 32.6% 17.5%;
186
- --accent-foreground: 210 40% 98%;
187
-
188
- --destructive: 0 62.8% 30.6%;
189
- --destructive-foreground: 210 40% 98%;
190
-
191
- --border: 217.2 32.6% 17.5%;
192
- --input: 217.2 32.6% 17.5%;
193
- --ring: 212.7 26.8% 83.9%;
194
- }
195
- }
196
-
197
- @layer base {
198
- * {
199
- @apply border-border;
200
- }
201
- body {
202
- @apply bg-background text-foreground;
203
- }
204
- }
205
-
206
- /* Progress bar indeterminate animation */
207
- @keyframes progress-indeterminate {
208
- 0% {
209
- transform: translateX(-100%);
210
- }
211
- 50% {
212
- transform: translateX(400%);
213
- }
214
- 100% {
215
- transform: translateX(-100%);
216
- }
217
- }
218
-
219
- /* Custom progress bar styling to match Material-UI appearance */
220
- .progress-bar-custom [data-slot="progress"] {
221
- background-color: var(--progress-bg, #eeeeee) !important;
222
- border-radius: 5px !important;
223
- height: 10px !important;
224
- }
225
-
226
- .progress-bar-custom [data-slot="progress-indicator"] {
227
- background-color: var(--progress-fg, #1a90ff) !important;
228
- border-radius: 5px !important;
1
+ @import "tailwindcss";
2
+ @plugin "tailwindcss-animate";
3
+
4
+ @custom-variant dark (&:is(.dark *));
5
+
6
+ /**
7
+ * Background colors for the dashboard plugin
8
+ */
9
+ @source inline("{dark:,}bg-orange-{50,{100..900..100},950}");
10
+
11
+ @utility container {
12
+ margin-inline: auto;
13
+ padding-inline: 2rem;
14
+ @media (width >= --theme(--breakpoint-sm-sidebar)) {
15
+ max-width: none;
16
+ }
17
+ @media (width >= 1400px) {
18
+ max-width: 1400px;
19
+ }
20
+ }
21
+
22
+ @theme {
23
+ --breakpoint-sm-sidebar: 768px;
24
+ --breakpoint-md-sidebar: 1024px;
25
+ --breakpoint-lg-sidebar: 1280px;
26
+ --breakpoint-xl-sidebar: 1536px;
27
+ --breakpoint-2xl-sidebar: 1920px;
28
+
29
+ --font-sans:
30
+ var(--font-cairo, var(--font-sans)), ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji',
31
+ 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
32
+
33
+ --color-border: hsl(var(--border));
34
+ --color-input: hsl(var(--input));
35
+ --color-ring: hsl(var(--ring));
36
+ --color-background: hsl(var(--background));
37
+ --color-foreground: hsl(var(--foreground));
38
+
39
+ --color-primary: hsl(var(--primary));
40
+ --color-primary-foreground: hsl(var(--primary-foreground));
41
+
42
+ --color-secondary: hsl(var(--secondary));
43
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
44
+
45
+ --color-success: hsl(var(--success));
46
+ --color-success-foreground: hsl(var(--success-foreground));
47
+
48
+ --color-warning: hsl(var(--warning));
49
+ --color-warning-foreground: hsl(var(--warning-foreground));
50
+
51
+ --color-info: hsl(var(--info));
52
+ --color-info-foreground: hsl(var(--info-foreground));
53
+
54
+ --color-destructive: hsl(var(--destructive));
55
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
56
+
57
+ --color-muted: hsl(var(--muted));
58
+ --color-muted-foreground: hsl(var(--muted-foreground));
59
+
60
+ --color-accent: hsl(var(--accent));
61
+ --color-accent-foreground: hsl(var(--accent-foreground));
62
+
63
+ --color-popover: hsl(var(--popover));
64
+ --color-popover-foreground: hsl(var(--popover-foreground));
65
+
66
+ --color-card: hsl(var(--card));
67
+ --color-card-foreground: hsl(var(--card-foreground));
68
+
69
+ --color-disabled: hsl(var(--disabled));
70
+ --color-disabled-foreground: hsl(var(--disabled-foreground));
71
+
72
+ --radius-lg: var(--radius);
73
+ --radius-md: calc(var(--radius) - 2px);
74
+ --radius-sm: calc(var(--radius) - 4px);
75
+
76
+ --animate-accordion-down: accordion-down 0.2s ease-out;
77
+ --animate-accordion-up: accordion-up 0.2s ease-out;
78
+
79
+ @keyframes accordion-down {
80
+ from {
81
+ height: 0;
82
+ }
83
+ to {
84
+ height: var(--radix-accordion-content-height);
85
+ }
86
+ }
87
+ @keyframes accordion-up {
88
+ from {
89
+ height: var(--radix-accordion-content-height);
90
+ }
91
+ to {
92
+ height: 0;
93
+ }
94
+ }
95
+ }
96
+
97
+ /*
98
+ The default border color has changed to `currentcolor` in Tailwind CSS v4,
99
+ so we've added these compatibility styles to make sure everything still
100
+ looks the same as it did with Tailwind CSS v3.
101
+
102
+ If we ever want to remove these styles, we need to add an explicit border
103
+ color utility to any element that depends on these defaults.
104
+ */
105
+ @layer base {
106
+ *,
107
+ ::after,
108
+ ::before,
109
+ ::backdrop,
110
+ ::file-selector-button {
111
+ border-color: var(--color-gray-200, currentcolor);
112
+ }
113
+ }
114
+
115
+ @layer base {
116
+ :root {
117
+ --background: 0 0% 100%;
118
+ --foreground: 222.2 84% 4.9%;
119
+
120
+ --card: 0 0% 100%;
121
+ --card-foreground: 222.2 84% 4.9%;
122
+
123
+ --popover: 0 0% 100%;
124
+ --popover-foreground: 222.2 84% 4.9%;
125
+
126
+ --primary: 222.2 47.4% 11.2%;
127
+ --primary-foreground: 210 40% 98%;
128
+
129
+ --success: 122.7 39.5% 49.6%;
130
+ --success-foreground: 210 40% 98%;
131
+
132
+ --warning: 45 100% 50%;
133
+ --warning-foreground: 210 40% 98%;
134
+
135
+ --info: 213 80% 52%;
136
+ --info-foreground: 222 80% 52%;
137
+
138
+ --secondary: 210 40% 96.1%;
139
+ --secondary-foreground: 222.2 47.4% 11.2%;
140
+
141
+ --muted: 210 40% 96.1%;
142
+ --muted-foreground: 215.4 16.3% 46.9%;
143
+
144
+ --accent: 210 40% 96.1%;
145
+ --accent-foreground: 222.2 47.4% 11.2%;
146
+
147
+ --destructive: 0 84.2% 60.2%;
148
+ --destructive-foreground: 210 40% 98%;
149
+
150
+ --border: 214.3 31.8% 91.4%;
151
+ --input: 214.3 31.8% 96.4%;
152
+ --ring: 222.2 84% 4.9%;
153
+
154
+ --radius: 0.5rem;
155
+ }
156
+
157
+ .dark {
158
+ --background: 999 84% 4.9%;
159
+ --foreground: 210 40% 98%;
160
+
161
+ --card: 222.2 84% 4.9%;
162
+ --card-foreground: 210 40% 98%;
163
+
164
+ --popover: 222.2 84% 4.9%;
165
+ --popover-foreground: 210 40% 98%;
166
+
167
+ --primary: 210 40% 98%;
168
+ --primary-foreground: 222.2 47.4% 11.2%;
169
+
170
+ --secondary: 217.2 32.6% 17.5%;
171
+ --secondary-foreground: 210 40% 98%;
172
+
173
+ --success: 122.7 39.5% 49.6%;
174
+ --success-foreground: 210 40% 98%;
175
+
176
+ --warning: 45 100% 50%;
177
+ --warning-foreground: 210 40% 98%;
178
+
179
+ --info: 213 60% 52%;
180
+ --info-foreground: 200 80% 52%;
181
+
182
+ --muted: 217.2 32.6% 17.5%;
183
+ --muted-foreground: 215 20.2% 65.1%;
184
+
185
+ --accent: 217.2 32.6% 17.5%;
186
+ --accent-foreground: 210 40% 98%;
187
+
188
+ --destructive: 0 62.8% 30.6%;
189
+ --destructive-foreground: 210 40% 98%;
190
+
191
+ --border: 217.2 32.6% 17.5%;
192
+ --input: 217.2 32.6% 17.5%;
193
+ --ring: 212.7 26.8% 83.9%;
194
+ }
195
+ }
196
+
197
+ @layer base {
198
+ * {
199
+ @apply border-border;
200
+ }
201
+ body {
202
+ @apply bg-background text-foreground;
203
+ }
204
+ }
205
+
206
+ /* Progress bar indeterminate animation */
207
+ @keyframes progress-indeterminate {
208
+ 0% {
209
+ transform: translateX(-100%);
210
+ }
211
+ 50% {
212
+ transform: translateX(400%);
213
+ }
214
+ 100% {
215
+ transform: translateX(-100%);
216
+ }
217
+ }
218
+
219
+ /* Custom progress bar styling to match Material-UI appearance */
220
+ .progress-bar-custom [data-slot="progress"] {
221
+ background-color: var(--progress-bg, #eeeeee) !important;
222
+ border-radius: 5px !important;
223
+ height: 10px !important;
224
+ }
225
+
226
+ .progress-bar-custom [data-slot="progress-indicator"] {
227
+ background-color: var(--progress-fg, #1a90ff) !important;
228
+ border-radius: 5px !important;
229
229
  }