django-cfg 1.4.84__py3-none-any.whl → 1.4.86__py3-none-any.whl
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.
Potentially problematic release.
This version of django-cfg might be problematic. Click here for more details.
- django_cfg/__init__.py +1 -1
- django_cfg/apps/dashboard/serializers/__init__.py +55 -0
- django_cfg/apps/dashboard/serializers/activity.py +38 -0
- django_cfg/apps/dashboard/serializers/apizones.py +26 -0
- django_cfg/apps/dashboard/serializers/base.py +16 -0
- django_cfg/apps/dashboard/serializers/charts.py +44 -0
- django_cfg/apps/dashboard/serializers/commands.py +26 -0
- django_cfg/apps/dashboard/serializers/overview.py +34 -0
- django_cfg/apps/dashboard/serializers/statistics.py +46 -0
- django_cfg/apps/dashboard/serializers/system.py +58 -0
- django_cfg/apps/dashboard/services/__init__.py +10 -1
- django_cfg/apps/dashboard/services/apizones_service.py +119 -0
- django_cfg/apps/dashboard/services/charts_service.py +266 -0
- django_cfg/apps/dashboard/services/commands_service.py +142 -0
- django_cfg/apps/dashboard/services/statistics_service.py +262 -104
- django_cfg/apps/dashboard/urls.py +25 -6
- django_cfg/apps/dashboard/views/__init__.py +23 -0
- django_cfg/apps/dashboard/views/activity_views.py +83 -0
- django_cfg/apps/dashboard/views/apizones_views.py +73 -0
- django_cfg/apps/dashboard/views/charts_views.py +159 -0
- django_cfg/apps/dashboard/views/commands_views.py +73 -0
- django_cfg/apps/dashboard/views/overview_views.py +92 -0
- django_cfg/apps/dashboard/views/statistics_views.py +105 -0
- django_cfg/apps/dashboard/views/system_views.py +73 -0
- django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/fetchers.ts.jinja +0 -1
- django_cfg/modules/django_client/core/generator/typescript/templates/fetchers/function.ts.jinja +1 -1
- django_cfg/modules/django_unfold/callbacks/main.py +7 -6
- django_cfg/modules/django_unfold/dashboard.py +1 -36
- django_cfg/modules/django_unfold/models/config.py +102 -73
- django_cfg/modules/django_unfold/tailwind.py +31 -79
- django_cfg/pyproject.toml +1 -1
- django_cfg/static/frontend/admin/404.html +1 -1
- django_cfg/static/frontend/admin/500.html +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/23004-faae121bbfecc163.js +1 -0
- django_cfg/static/frontend/admin/_next/static/chunks/{20695.a7d37b6c40ad3f58.js → 43076.55dd23b6cd68edb0.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/50314-3b9d15242191c8bc.js +1 -0
- django_cfg/static/frontend/admin/_next/static/chunks/{64330.2ef79bccd7d4e363.js → 64330.41858e98c0e5173b.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/6766.8d01e44e83070e83.js +1 -0
- django_cfg/static/frontend/admin/_next/static/chunks/{96168.eb7fdb721b9cdb00.js → 96168.b7197f890097df6e.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/{404-c283223d1afd02a2.js → 404-cf71cd7b3cb005e5.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/{500-389d6d3e1f2f7fda.js → 500-ff19c7842e3df415.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/_app-f62e5528fbcbb6b3.js +272 -0
- django_cfg/static/frontend/admin/_next/static/chunks/pages/{_error-5291033275c26d09.js → _error-87f3fdc2aa131e77.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/{index-d7bc30185f52cbca.js → index-69f737d4802cc5b7.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private/centrifugo-f24beb6ed3955aa8.js +1 -0
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private/{profile-e93a65e8e7d9022b.js → profile-b8045f993287f1a7.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private/{ui-669e8f2a785beba2.js → ui-373fff8b42878e64.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private-fe9faa86ecdb0ce6.js +1 -0
- django_cfg/static/frontend/admin/_next/static/chunks/{webpack-92add5f95c66e349.js → webpack-7c456a65e96eb97e.js} +1 -1
- django_cfg/static/frontend/admin/_next/static/css/5f9a37b6e6a72303.css +3 -0
- django_cfg/static/frontend/admin/_next/static/wg0mGdXjT00H_1BUxoOSH/_buildManifest.js +1 -0
- django_cfg/static/frontend/admin/auth.html +1 -1
- django_cfg/static/frontend/admin/index.html +1 -1
- django_cfg/static/frontend/admin/legal/cookies.html +1 -1
- django_cfg/static/frontend/admin/legal/privacy.html +1 -1
- django_cfg/static/frontend/admin/legal/security.html +1 -1
- django_cfg/static/frontend/admin/legal/terms.html +1 -1
- django_cfg/static/frontend/admin/private/centrifugo.html +1 -1
- django_cfg/static/frontend/admin/private/profile.html +1 -1
- django_cfg/static/frontend/admin/private/ui.html +1 -1
- django_cfg/static/frontend/admin/private.html +1 -1
- django_cfg/templates/admin/index.html +237 -5
- django_cfg/templates/admin/sections/commands_section.html +5 -0
- django_cfg/templates/admin/sections/documentation_section.html +5 -0
- django_cfg/templates/admin/sections/overview_section.html +5 -0
- django_cfg/templates/admin/sections/stats_section.html +5 -0
- django_cfg/templates/admin/sections/system_section.html +5 -0
- django_cfg/templates/admin/sections/widgets_section.html +11 -0
- django_cfg/templates/unfold/layouts/skeleton.html +27 -0
- django_cfg/templatetags/django_cfg.py +53 -0
- {django_cfg-1.4.84.dist-info → django_cfg-1.4.86.dist-info}/METADATA +1 -1
- {django_cfg-1.4.84.dist-info → django_cfg-1.4.86.dist-info}/RECORD +76 -53
- django_cfg/apps/dashboard/api/__init__.py +0 -27
- django_cfg/apps/dashboard/api/serializers.py +0 -165
- django_cfg/apps/dashboard/api/viewsets.py +0 -257
- django_cfg/static/frontend/admin/_next/static/-Zk0eDB7OJOEFrFyR5BwZ/_buildManifest.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/43076-4be6a9794e9c3e8b.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/50314-79c02212788f1ec7.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/6766.d62fed7cd4761148.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/82296-a2c8d38f62224be5.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/_app-f25bec36bbdc9625.js +0 -272
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private/centrifugo-22532c65971225eb.js +0 -1
- django_cfg/static/frontend/admin/_next/static/chunks/pages/private-a8a9ba76f2c75354.js +0 -1
- django_cfg/static/frontend/admin/_next/static/css/78d677ac1677c210.css +0 -3
- /django_cfg/static/frontend/admin/_next/static/{-Zk0eDB7OJOEFrFyR5BwZ → wg0mGdXjT00H_1BUxoOSH}/_ssgManifest.js +0 -0
- {django_cfg-1.4.84.dist-info → django_cfg-1.4.86.dist-info}/WHEEL +0 -0
- {django_cfg-1.4.84.dist-info → django_cfg-1.4.86.dist-info}/entry_points.txt +0 -0
- {django_cfg-1.4.84.dist-info → django_cfg-1.4.86.dist-info}/licenses/LICENSE +0 -0
|
@@ -305,92 +305,121 @@ class UnfoldConfig(BaseModel):
|
|
|
305
305
|
return v
|
|
306
306
|
|
|
307
307
|
def get_color_scheme(self) -> Dict[str, Any]:
|
|
308
|
-
"""
|
|
308
|
+
"""
|
|
309
|
+
Get Unfold semantic color scheme configuration matching Next.js UI package.
|
|
310
|
+
|
|
311
|
+
Colors are synchronized with:
|
|
312
|
+
- packages/ui/src/styles/theme/light.css
|
|
313
|
+
- packages/ui/src/styles/theme/dark.css
|
|
314
|
+
|
|
315
|
+
This ensures consistent theming between Django Unfold and Next.js iframe.
|
|
316
|
+
|
|
317
|
+
IMPORTANT: Colors must be in OKLCH format for Unfold's color-mix() CSS to work!
|
|
318
|
+
Format: "oklch(lightness% chroma hue)"
|
|
319
|
+
"""
|
|
309
320
|
return {
|
|
310
|
-
# Base semantic colors
|
|
321
|
+
# Base semantic colors - matches Next.js UI package
|
|
322
|
+
# Light theme: Clean whites and neutral grays (Vercel-inspired)
|
|
323
|
+
# Dark theme: True black backgrounds with subtle grays
|
|
324
|
+
# Converted from RGB to OKLCH for color-mix() compatibility
|
|
311
325
|
"base": {
|
|
312
|
-
"50": "
|
|
313
|
-
"100": "
|
|
314
|
-
"200": "
|
|
315
|
-
"300": "
|
|
316
|
-
"400": "
|
|
317
|
-
"500": "
|
|
318
|
-
"600": "
|
|
319
|
-
"700": "
|
|
320
|
-
"800": "
|
|
321
|
-
"900": "
|
|
322
|
-
"950": "
|
|
326
|
+
"50": "oklch(98.5% .002 247.839)", # #f9fafb - Very light background
|
|
327
|
+
"100": "oklch(96.7% .003 264.542)", # #f3f4f6 - Light background (96%)
|
|
328
|
+
"200": "oklch(92.8% .006 264.531)", # #e5e7eb - Subtle border (90%)
|
|
329
|
+
"300": "oklch(87.2% .010 258.338)", # #d1d5db - Border
|
|
330
|
+
"400": "oklch(70.7% .022 261.325)", # #9ca3af - Muted text
|
|
331
|
+
"500": "oklch(55.1% .027 264.364)", # #6b7280 - Neutral
|
|
332
|
+
"600": "oklch(44.6% .030 256.802)", # #4b5563 - Text (9%)
|
|
333
|
+
"700": "oklch(37.3% 0 0)", # Neutral dark gray (no hue)
|
|
334
|
+
"800": "oklch(20.0% 0 0)", # Dark card background (no hue)
|
|
335
|
+
"900": "oklch(14.0% 0 0)", # Main background - near black (14%)
|
|
336
|
+
"950": "oklch(10.0% 0 0)", # Deepest black (10%)
|
|
323
337
|
},
|
|
324
|
-
# Primary brand
|
|
338
|
+
# Primary brand color - Blue (#3b82f6 / hsl(217 91% 60%))
|
|
339
|
+
# Matches Next.js UI primary color
|
|
340
|
+
# OKLCH format for color-mix() compatibility
|
|
325
341
|
"primary": {
|
|
326
|
-
"50": "
|
|
327
|
-
"100": "
|
|
328
|
-
"200": "
|
|
329
|
-
"300": "
|
|
330
|
-
"400": "
|
|
331
|
-
"500": "
|
|
332
|
-
"600": "
|
|
333
|
-
"700": "
|
|
334
|
-
"800": "
|
|
335
|
-
"900": "
|
|
336
|
-
"950": "
|
|
342
|
+
"50": "oklch(97.0% .014 254.604)", # #eff6ff
|
|
343
|
+
"100": "oklch(93.2% .032 255.585)", # #dbeafe
|
|
344
|
+
"200": "oklch(88.2% .059 254.128)", # #bfdbfe
|
|
345
|
+
"300": "oklch(79.0% .099 253.800)", # #93c5fd
|
|
346
|
+
"400": "oklch(70.7% .165 254.624)", # #60a5fa
|
|
347
|
+
"500": "oklch(62.3% .214 259.815)", # #3b82f6 - Main brand color
|
|
348
|
+
"600": "oklch(54.6% .245 262.881)", # #2563eb
|
|
349
|
+
"700": "oklch(48.8% .243 264.376)", # #1d4ed8
|
|
350
|
+
"800": "oklch(43.0% .223 265.500)", # #1e40af
|
|
351
|
+
"900": "oklch(37.5% .195 266.000)", # #1e3a8a
|
|
352
|
+
"950": "oklch(30.0% .150 267.000)", # #172554
|
|
337
353
|
},
|
|
338
|
-
# Success
|
|
354
|
+
# Success color - Green
|
|
355
|
+
# OKLCH format for color-mix() compatibility
|
|
339
356
|
"success": {
|
|
340
|
-
"50": "
|
|
341
|
-
"100": "
|
|
342
|
-
"200": "
|
|
343
|
-
"300": "
|
|
344
|
-
"400": "
|
|
345
|
-
"500": "
|
|
346
|
-
"600": "
|
|
347
|
-
"700": "
|
|
348
|
-
"800": "
|
|
349
|
-
"900": "
|
|
350
|
-
"950": "
|
|
357
|
+
"50": "oklch(98.0% .029 156.743)", # #f0fdf4
|
|
358
|
+
"100": "oklch(96.2% .044 156.743)", # #dcfce7
|
|
359
|
+
"200": "oklch(92.5% .084 155.995)", # #bbf7d0
|
|
360
|
+
"300": "oklch(87.0% .139 154.500)", # #86efac
|
|
361
|
+
"400": "oklch(79.2% .209 151.711)", # #4ade80
|
|
362
|
+
"500": "oklch(72.3% .219 149.579)", # #22c55e - Main success
|
|
363
|
+
"600": "oklch(62.7% .194 149.214)", # #16a34a
|
|
364
|
+
"700": "oklch(52.7% .154 150.069)", # #15803d
|
|
365
|
+
"800": "oklch(45.0% .125 151.000)", # #166534
|
|
366
|
+
"900": "oklch(38.0% .100 151.500)", # #14532d
|
|
367
|
+
"950": "oklch(25.0% .060 152.000)", # #052e16
|
|
351
368
|
},
|
|
352
|
-
# Warning
|
|
369
|
+
# Warning color - Amber/Yellow
|
|
370
|
+
# OKLCH format for color-mix() compatibility
|
|
353
371
|
"warning": {
|
|
354
|
-
"50": "
|
|
355
|
-
"100": "
|
|
356
|
-
"200": "
|
|
357
|
-
"300": "
|
|
358
|
-
"400": "
|
|
359
|
-
"500": "
|
|
360
|
-
"600": "
|
|
361
|
-
"700": "
|
|
362
|
-
"800": "
|
|
363
|
-
"900": "
|
|
364
|
-
"950": "
|
|
372
|
+
"50": "oklch(99.0% .020 95.617)", # #fffbeb
|
|
373
|
+
"100": "oklch(96.2% .059 95.617)", # #fef3c7
|
|
374
|
+
"200": "oklch(94.5% .129 101.54)", # #fde68a
|
|
375
|
+
"300": "oklch(89.0% .178 100.000)", # #fcd34d
|
|
376
|
+
"400": "oklch(83.0% .198 95.000)", # #fbbf24
|
|
377
|
+
"500": "oklch(70.5% .213 47.604)", # #f59e0b - Main warning
|
|
378
|
+
"600": "oklch(64.6% .222 41.116)", # #d97706
|
|
379
|
+
"700": "oklch(55.3% .195 38.402)", # #b45309
|
|
380
|
+
"800": "oklch(48.0% .170 37.000)", # #92400e
|
|
381
|
+
"900": "oklch(41.0% .145 38.000)", # #78350f
|
|
382
|
+
"950": "oklch(30.0% .100 40.000)", # #451a03
|
|
365
383
|
},
|
|
366
|
-
# Danger
|
|
384
|
+
# Danger/Error color - Red (matches destructive color)
|
|
385
|
+
# OKLCH format for color-mix() compatibility
|
|
367
386
|
"danger": {
|
|
368
|
-
"50": "
|
|
369
|
-
"100": "
|
|
370
|
-
"200": "
|
|
371
|
-
"300": "
|
|
372
|
-
"400": "
|
|
373
|
-
"500": "
|
|
374
|
-
"600": "
|
|
375
|
-
"700": "
|
|
376
|
-
"800": "
|
|
377
|
-
"900": "
|
|
378
|
-
"950": "
|
|
387
|
+
"50": "oklch(98.0% .011 17.38)", # #fef2f2
|
|
388
|
+
"100": "oklch(95.5% .027 17.717)", # #fee2e2
|
|
389
|
+
"200": "oklch(93.6% .032 17.717)", # #fecaca
|
|
390
|
+
"300": "oklch(88.5% .062 18.334)", # #fca5a5
|
|
391
|
+
"400": "oklch(80.8% .114 19.571)", # #f87171
|
|
392
|
+
"500": "oklch(63.7% .237 25.331)", # #ef4444 - Main danger
|
|
393
|
+
"600": "oklch(57.7% .245 27.325)", # #dc2626
|
|
394
|
+
"700": "oklch(50.5% .213 27.518)", # #b91c1c
|
|
395
|
+
"800": "oklch(45.0% .190 28.000)", # #991b1b
|
|
396
|
+
"900": "oklch(40.0% .165 28.500)", # #7f1d1d
|
|
397
|
+
"950": "oklch(30.0% .120 29.000)", # #450a0a
|
|
379
398
|
},
|
|
380
|
-
# Info
|
|
399
|
+
# Info color - Cyan/Sky blue
|
|
400
|
+
# OKLCH format for color-mix() compatibility
|
|
381
401
|
"info": {
|
|
382
|
-
"50": "
|
|
383
|
-
"100": "
|
|
384
|
-
"200": "
|
|
385
|
-
"300": "
|
|
386
|
-
"400": "
|
|
387
|
-
"500": "
|
|
388
|
-
"600": "
|
|
389
|
-
"700": "
|
|
390
|
-
"800": "
|
|
391
|
-
"900": "
|
|
392
|
-
"950": "
|
|
402
|
+
"50": "oklch(97.5% .015 230.000)", # #f0f9ff
|
|
403
|
+
"100": "oklch(95.0% .035 230.000)", # #e0f2fe
|
|
404
|
+
"200": "oklch(90.0% .070 225.000)", # #bae6fd
|
|
405
|
+
"300": "oklch(82.0% .120 220.000)", # #7dd3fc
|
|
406
|
+
"400": "oklch(74.0% .155 217.000)", # #38bdf8
|
|
407
|
+
"500": "oklch(67.0% .184 215.000)", # #0ea5e9 - Main info
|
|
408
|
+
"600": "oklch(58.0% .185 218.000)", # #0284c7
|
|
409
|
+
"700": "oklch(49.0% .165 220.000)", # #0369a1
|
|
410
|
+
"800": "oklch(42.0% .140 222.000)", # #075985
|
|
411
|
+
"900": "oklch(36.0% .115 224.000)", # #0c4a6e
|
|
412
|
+
"950": "oklch(28.0% .085 226.000)", # #082f49
|
|
393
413
|
},
|
|
414
|
+
# Font semantic colors (using OKLCH format)
|
|
415
|
+
"font": {
|
|
416
|
+
"subtle-light": "oklch(55.1% .027 264.364)", # base-500 #6b7280
|
|
417
|
+
"subtle-dark": "oklch(70.7% .022 261.325)", # base-400 #9ca3af
|
|
418
|
+
"default-light": "oklch(44.6% .030 256.802)", # base-600 #4b5563
|
|
419
|
+
"default-dark": "oklch(87.2% .010 258.338)", # base-300 #d1d5db
|
|
420
|
+
"important-light": "oklch(14.0% 0 0)", # base-900 (near black)
|
|
421
|
+
"important-dark": "oklch(96.7% .003 264.542)", # base-100 #f3f4f6
|
|
422
|
+
}
|
|
394
423
|
}
|
|
395
424
|
|
|
396
425
|
def to_django_settings(self) -> Dict[str, Any]:
|
|
@@ -145,52 +145,28 @@ def get_tailwind_config() -> Dict[str, Any]:
|
|
|
145
145
|
|
|
146
146
|
def get_css_variables() -> str:
|
|
147
147
|
"""
|
|
148
|
-
Get CSS variables for semantic colors.
|
|
149
|
-
|
|
148
|
+
Get CSS variables for semantic colors matching Next.js UI package.
|
|
149
|
+
|
|
150
|
+
NOTE: Background color overrides are now in templates/unfold/layouts/skeleton.html
|
|
151
|
+
for better CSS specificity. This function now only provides base color definitions
|
|
152
|
+
and is kept for backward compatibility.
|
|
153
|
+
|
|
150
154
|
Returns:
|
|
151
155
|
str: CSS variables as string
|
|
152
156
|
"""
|
|
153
157
|
return """
|
|
154
|
-
/*
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
--color-base-500: 107, 114, 128;
|
|
163
|
-
--color-base-600: 75, 85, 99;
|
|
164
|
-
--color-base-700: 55, 65, 81;
|
|
165
|
-
--color-base-800: 31, 41, 55;
|
|
166
|
-
--color-base-900: 17, 24, 39;
|
|
167
|
-
--color-base-950: 3, 7, 18;
|
|
168
|
-
|
|
169
|
-
/* Primary colors */
|
|
170
|
-
--color-primary-50: 239, 246, 255;
|
|
171
|
-
--color-primary-100: 219, 234, 254;
|
|
172
|
-
--color-primary-200: 191, 219, 254;
|
|
173
|
-
--color-primary-300: 147, 197, 253;
|
|
174
|
-
--color-primary-400: 96, 165, 250;
|
|
175
|
-
--color-primary-500: 59, 130, 246;
|
|
176
|
-
--color-primary-600: 37, 99, 235;
|
|
177
|
-
--color-primary-700: 29, 78, 216;
|
|
178
|
-
--color-primary-800: 30, 64, 175;
|
|
179
|
-
--color-primary-900: 30, 58, 138;
|
|
180
|
-
--color-primary-950: 23, 37, 84;
|
|
181
|
-
|
|
182
|
-
/* Font colors for light theme */
|
|
183
|
-
--color-font-subtle-light: var(--color-base-500);
|
|
184
|
-
--color-font-default-light: var(--color-base-600);
|
|
185
|
-
--color-font-important-light: var(--color-base-900);
|
|
158
|
+
/* ============================================== */
|
|
159
|
+
/* CSS Variables - Base Color Definitions */
|
|
160
|
+
/* NOTE: Background overrides in skeleton.html */
|
|
161
|
+
/* ============================================== */
|
|
162
|
+
|
|
163
|
+
/* Tailwind Dark Mode Class Support */
|
|
164
|
+
html.dark {
|
|
165
|
+
color-scheme: dark;
|
|
186
166
|
}
|
|
187
167
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
/* Font colors for dark theme */
|
|
191
|
-
--color-font-subtle-dark: var(--color-base-400);
|
|
192
|
-
--color-font-default-dark: var(--color-base-300);
|
|
193
|
-
--color-font-important-dark: var(--color-base-100);
|
|
168
|
+
html:not(.dark) {
|
|
169
|
+
color-scheme: light;
|
|
194
170
|
}
|
|
195
171
|
|
|
196
172
|
"""
|
|
@@ -266,44 +242,20 @@ def get_modal_fix_css() -> str:
|
|
|
266
242
|
|
|
267
243
|
def get_unfold_colors() -> Dict[str, Any]:
|
|
268
244
|
"""
|
|
269
|
-
Get color configuration for Unfold settings.
|
|
270
|
-
|
|
245
|
+
Get color configuration for Unfold settings matching Next.js UI package.
|
|
246
|
+
|
|
247
|
+
Colors synchronized with:
|
|
248
|
+
- packages/ui/src/styles/theme/light.css
|
|
249
|
+
- packages/ui/src/styles/theme/dark.css
|
|
250
|
+
|
|
251
|
+
IMPORTANT: Returns OKLCH format for Unfold's color-mix() CSS compatibility.
|
|
252
|
+
|
|
271
253
|
Returns:
|
|
272
|
-
Dict[str, Any]: Color configuration for Unfold
|
|
254
|
+
Dict[str, Any]: Color configuration for Unfold in OKLCH format
|
|
273
255
|
"""
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
"400": "96, 165, 250",
|
|
281
|
-
"500": "59, 130, 246",
|
|
282
|
-
"600": "37, 99, 235",
|
|
283
|
-
"700": "29, 78, 216",
|
|
284
|
-
"800": "30, 64, 175",
|
|
285
|
-
"900": "30, 58, 138",
|
|
286
|
-
"950": "23, 37, 84",
|
|
287
|
-
},
|
|
288
|
-
"base": {
|
|
289
|
-
"50": "249, 250, 251",
|
|
290
|
-
"100": "243, 244, 246",
|
|
291
|
-
"200": "229, 231, 235",
|
|
292
|
-
"300": "209, 213, 219",
|
|
293
|
-
"400": "156, 163, 175",
|
|
294
|
-
"500": "107, 114, 128",
|
|
295
|
-
"600": "75, 85, 99",
|
|
296
|
-
"700": "55, 65, 81",
|
|
297
|
-
"800": "31, 41, 55",
|
|
298
|
-
"900": "17, 24, 39",
|
|
299
|
-
"950": "3, 7, 18",
|
|
300
|
-
},
|
|
301
|
-
"font": {
|
|
302
|
-
"subtle-light": "var(--color-base-500)",
|
|
303
|
-
"subtle-dark": "var(--color-base-400)",
|
|
304
|
-
"default-light": "var(--color-base-600)",
|
|
305
|
-
"default-dark": "var(--color-base-300)",
|
|
306
|
-
"important-light": "var(--color-base-900)",
|
|
307
|
-
"important-dark": "var(--color-base-100)",
|
|
308
|
-
}
|
|
309
|
-
}
|
|
256
|
+
# Import from UnfoldConfig to keep colors in sync
|
|
257
|
+
from .models.config import UnfoldConfig
|
|
258
|
+
|
|
259
|
+
# Create temporary config to get color scheme
|
|
260
|
+
temp_config = UnfoldConfig(site_title="temp")
|
|
261
|
+
return temp_config.get_color_scheme()
|
django_cfg/pyproject.toml
CHANGED
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "django-cfg"
|
|
7
|
-
version = "1.4.
|
|
7
|
+
version = "1.4.86"
|
|
8
8
|
description = "Django AI framework with built-in agents, type-safe Pydantic v2 configuration, and 8 enterprise apps. Replace settings.py, validate at startup, 90% less code. Production-ready AI workflows for Django."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
keywords = [ "django", "configuration", "pydantic", "settings", "type-safety", "pydantic-settings", "django-environ", "startup-validation", "ide-autocomplete", "ai-agents", "enterprise-django", "django-settings", "type-safe-config",]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/78d677ac1677c210.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/78d677ac1677c210.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-92add5f95c66e349.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-f25bec36bbdc9625.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/404-c283223d1afd02a2.js" defer=""></script><script src="/cfg/admin/_next/static/-Zk0eDB7OJOEFrFyR5BwZ/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/-Zk0eDB7OJOEFrFyR5BwZ/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="min-h-screen flex items-center justify-center px-4"><div class="max-w-2xl w-full text-center space-y-8"><div class="relative"><h1 class="text-[12rem] font-bold leading-none text-muted/20 select-none" aria-hidden="true">404</h1></div><div class="flex justify-center py-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-question w-24 h-24 text-muted-foreground/50"><path d="M12 17h.01"></path><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"></path><path d="M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3"></path></svg></div><div class="space-y-4"><h2 class="text-4xl font-bold text-foreground">Page Not Found</h2><p class="text-lg text-muted-foreground max-w-md mx-auto">The page you're looking for doesn't exist or has been moved.</p></div><div class="flex flex-col sm:flex-row items-center justify-center gap-4 pt-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8 min-w-[140px]">Go Back</button><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-11 rounded-md px-8 min-w-[140px]">Go Home</button></div><div class="pt-8 text-sm text-muted-foreground"><p>Need help? Contact<!-- --> <a href="mailto:support@djangocfg.com" class="text-primary hover:underline">support</a></p></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"-Zk0eDB7OJOEFrFyR5BwZ","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/5f9a37b6e6a72303.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/5f9a37b6e6a72303.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-7c456a65e96eb97e.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-f62e5528fbcbb6b3.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/404-cf71cd7b3cb005e5.js" defer=""></script><script src="/cfg/admin/_next/static/wg0mGdXjT00H_1BUxoOSH/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/wg0mGdXjT00H_1BUxoOSH/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="min-h-screen flex items-center justify-center px-4"><div class="max-w-2xl w-full text-center space-y-8"><div class="relative"><h1 class="text-[12rem] font-bold leading-none text-muted/20 select-none" aria-hidden="true">404</h1></div><div class="flex justify-center py-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-question w-24 h-24 text-muted-foreground/50"><path d="M12 17h.01"></path><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"></path><path d="M9.1 9a3 3 0 0 1 5.82 1c0 2-3 3-3 3"></path></svg></div><div class="space-y-4"><h2 class="text-4xl font-bold text-foreground">Page Not Found</h2><p class="text-lg text-muted-foreground max-w-md mx-auto">The page you're looking for doesn't exist or has been moved.</p></div><div class="flex flex-col sm:flex-row items-center justify-center gap-4 pt-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8 min-w-[140px]">Go Back</button><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-11 rounded-md px-8 min-w-[140px]">Go Home</button></div><div class="pt-8 text-sm text-muted-foreground"><p>Need help? Contact<!-- --> <a href="mailto:support@djangocfg.com" class="text-primary hover:underline">support</a></p></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/404","query":{},"buildId":"wg0mGdXjT00H_1BUxoOSH","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/78d677ac1677c210.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/78d677ac1677c210.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-92add5f95c66e349.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-f25bec36bbdc9625.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/500-389d6d3e1f2f7fda.js" defer=""></script><script src="/cfg/admin/_next/static/-Zk0eDB7OJOEFrFyR5BwZ/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/-Zk0eDB7OJOEFrFyR5BwZ/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="min-h-screen flex items-center justify-center px-4"><div class="max-w-2xl w-full text-center space-y-8"><div class="relative"><h1 class="text-[12rem] font-bold leading-none text-muted/20 select-none" aria-hidden="true">500</h1></div><div class="flex justify-center py-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server-crash w-24 h-24 text-destructive/50"><path d="M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2"></path><path d="M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2"></path><path d="M6 6h.01"></path><path d="M6 18h.01"></path><path d="m13 6-4 6h6l-4 6"></path></svg></div><div class="space-y-4"><h2 class="text-4xl font-bold text-foreground">Server Error</h2><p class="text-lg text-muted-foreground max-w-md mx-auto">Something went wrong on our end. We're working to fix it.</p></div><div class="flex flex-col sm:flex-row items-center justify-center gap-4 pt-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8 min-w-[140px]">Go Back</button><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-11 rounded-md px-8 min-w-[140px]">Go Home</button></div><div class="pt-8 text-sm text-muted-foreground"><p>Need help? Contact<!-- --> <a href="mailto:support@djangocfg.com" class="text-primary hover:underline">support</a></p></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/500","query":{},"buildId":"-Zk0eDB7OJOEFrFyR5BwZ","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">Django CFG</title><meta name="description" content="Django CFG Admin Panel" data-next-head=""/><link rel="icon" type="image/png" href="/cfg/admin/static/logos/192x192.png" data-next-head=""/><meta property="og:title" content="Django CFG" data-next-head=""/><meta property="og:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:type" content="website" data-next-head=""/><meta name="twitter:card" content="summary_large_image" data-next-head=""/><meta name="twitter:title" content="Django CFG" data-next-head=""/><meta name="twitter:description" content="Django CFG Admin Panel" data-next-head=""/><meta property="og:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><meta property="og:image:width" content="1200" data-next-head=""/><meta property="og:image:height" content="630" data-next-head=""/><meta property="og:image:type" content="image/png" data-next-head=""/><meta name="twitter:image" content="/cfg/admin//api/og?data=eyJ0aXRsZSI6IkRqYW5nbyBDRkciLCJzdWJ0aXRsZSI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwiLCJkZXNjcmlwdGlvbiI6IkRqYW5nbyBDRkcgQWRtaW4gUGFuZWwifQ==" data-next-head=""/><link rel="preload" href="/cfg/admin/_next/static/media/875ae681bfde4580-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/media/4c9affa5bc8f420e-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/cfg/admin/_next/static/css/5f9a37b6e6a72303.css" as="style"/><link rel="stylesheet" href="/cfg/admin/_next/static/css/5f9a37b6e6a72303.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" noModule="" src="/cfg/admin/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/cfg/admin/_next/static/chunks/webpack-7c456a65e96eb97e.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/framework-46f25b115ad0e595.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/main-f9b6d451d9991f19.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/_app-f62e5528fbcbb6b3.js" defer=""></script><script src="/cfg/admin/_next/static/chunks/pages/500-ff19c7842e3df415.js" defer=""></script><script src="/cfg/admin/_next/static/wg0mGdXjT00H_1BUxoOSH/_buildManifest.js" defer=""></script><script src="/cfg/admin/_next/static/wg0mGdXjT00H_1BUxoOSH/_ssgManifest.js" defer=""></script></head><body><link rel="preload" as="image" href="/cfg/admin/static/logos/vector.svg"/><div id="__next"><style>html { font-family: 'Manrope', 'Manrope Fallback'; }</style><div class="min-h-screen flex flex-col"><nav class="sticky top-0 w-full border-b backdrop-blur-xl z-[100] bg-background/80 border-border/30 isolate"><div class="w-full px-4 sm:px-6 lg:px-8"><div class="flex items-center justify-between py-2 min-h-[40px]"><div class="flex items-center gap-6"><a class="flex items-center gap-3 group" href="/cfg/admin"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="h-8 w-auto object-contain transition-transform duration-300 group-hover:scale-105"/><span class="text-xl font-bold transition-colors duration-300 text-foreground group-hover:text-primary">Django CFG</span></a><div class="flex items-center gap-1"><a class="inline-flex h-9 items-center justify-center rounded-md px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50" href="/cfg/admin">Home</a><div><button type="button" id="radix-«Rklr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Resources<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div><div><button type="button" id="radix-«Rslr6»" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="inline-flex h-9 items-center justify-center gap-1 rounded-md px-4 py-2 text-sm font-medium transition-colors focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 hover:bg-accent hover:text-accent-foreground">Security<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 transition-transform duration-200 group-data-[state=open]:rotate-180"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></div><div class="flex items-center gap-2"><div class="flex items-center gap-3"><a class="inline-flex cursor-pointer items-center justify-center whitespace-nowrap font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 rounded-md px-3 text-sm h-9 gap-1.5" href="/cfg/admin/auth"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-user w-4 h-4"><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path><circle cx="12" cy="7" r="4"></circle></svg>Sign In</a></div></div></div></div></nav><main class="flex-1"><div class="min-h-screen flex items-center justify-center px-4"><div class="max-w-2xl w-full text-center space-y-8"><div class="relative"><h1 class="text-[12rem] font-bold leading-none text-muted/20 select-none" aria-hidden="true">500</h1></div><div class="flex justify-center py-8"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-server-crash w-24 h-24 text-destructive/50"><path d="M6 10H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v4a2 2 0 0 1-2 2h-2"></path><path d="M6 14H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-2"></path><path d="M6 6h.01"></path><path d="M6 18h.01"></path><path d="m13 6-4 6h6l-4 6"></path></svg></div><div class="space-y-4"><h2 class="text-4xl font-bold text-foreground">Server Error</h2><p class="text-lg text-muted-foreground max-w-md mx-auto">Something went wrong on our end. We're working to fix it.</p></div><div class="flex flex-col sm:flex-row items-center justify-center gap-4 pt-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground h-11 rounded-md px-8 min-w-[140px]">Go Back</button><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap text-sm font-semibold transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-11 rounded-md px-8 min-w-[140px]">Go Home</button></div><div class="pt-8 text-sm text-muted-foreground"><p>Need help? Contact<!-- --> <a href="mailto:support@djangocfg.com" class="text-primary hover:underline">support</a></p></div></div></div></main><footer class="max-lg:hidden bg-background border-t border-border mt-auto"><div class="w-full px-8 lg:px-16 xl:px-24 py-12"><div class="flex flex-col gap-8"><div class="flex gap-8"><div class="space-y-4" style="width:30%;min-width:300px"><div class="flex items-center gap-2"><div class="w-8 h-8 flex items-center justify-center"><img src="/cfg/admin/static/logos/vector.svg" alt="Django CFG Logo" class="w-full h-full object-contain"/></div><span class="text-xl font-bold text-foreground">Django CFG</span></div><p class="text-muted-foreground text-sm leading-relaxed">Django CFG Admin Panel</p><div class="pt-2"><span class="inline-flex items-center gap-2 px-3 py-1.5 rounded-sm bg-primary/10 hover:bg-primary/15 border border-primary/20 text-xs font-medium text-primary transition-colors"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-car w-3.5 h-3.5" aria-hidden="true"><path d="M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2"></path><circle cx="7" cy="17" r="2"></circle><path d="M9 17h6"></path><circle cx="17" cy="17" r="2"></circle></svg>Django CFG</span></div></div><div class="grid grid-cols-2 md:grid-cols-4 gap-8 flex-1"><div><h3 class="text-sm font-semibold text-foreground mb-3">Legal</h3><ul class="space-y-2"><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/docs">Documentation</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/privacy">Privacy Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/terms">Terms of Service</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/security">Security Policy</a></li><li><a class="text-muted-foreground hover:text-primary text-sm transition-colors" href="/cfg/admin/cookies">Cookie Policy</a></li></ul></div></div></div><div class="border-t border-border" style="margin-top:2rem;padding-top:2rem"><div class="flex justify-between items-center gap-4"><div class="text-xs text-muted-foreground">© <!-- -->2025<!-- --> <!-- -->Django CFG<!-- -->. All rights reserved.</div><div class="text-xs text-muted-foreground flex items-center gap-1">Made with ❤️ by<!-- --> <a href="https://reforms.ai" target="_blank" rel="noopener noreferrer" class="hover:text-primary transition-colors">ReformsAI</a></div><div class="flex flex-wrap items-center gap-4"><button class="inline-flex cursor-pointer items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-semibold focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 hover:bg-accent h-auto w-auto p-1 text-muted-foreground hover:text-primary transition-colors" title="Package Versions" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-«R3rr6»" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info h-3 w-3"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg></button><a href="/docs" target="_blank" rel="noopener noreferrer" class="text-xs text-muted-foreground hover:text-primary transition-colors" title="Documentation">Docs</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/privacy">Privacy Policy</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/terms">Terms of Service</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/security">Security</a><a class="text-xs text-muted-foreground hover:text-primary transition-colors" href="/cfg/admin/cookies">Cookies</a></div></div></div></div></div></footer></div><div role="region" aria-label="Notifications (F8)" tabindex="-1" style="pointer-events:none"><ol tabindex="-1" class="fixed top-0 z-[9999] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]"></ol></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/500","query":{},"buildId":"wg0mGdXjT00H_1BUxoOSH","assetPrefix":"/cfg/admin","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|