vanta-admin 0.16.2__tar.gz → 0.17.0__tar.gz

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 (59) hide show
  1. {vanta_admin-0.16.2/vanta_admin.egg-info → vanta_admin-0.17.0}/PKG-INFO +3 -1
  2. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/README.md +2 -0
  3. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/pyproject.toml +1 -1
  4. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.admin.css +264 -0
  5. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templatetags/admin_theme.py +1 -1
  6. {vanta_admin-0.16.2 → vanta_admin-0.17.0/vanta_admin.egg-info}/PKG-INFO +3 -1
  7. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/LICENSE +0 -0
  8. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/MANIFEST.in +0 -0
  9. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/setup.cfg +0 -0
  10. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/__init__.py +0 -0
  11. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/apps.py +0 -0
  12. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.base.css +0 -0
  13. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.css +0 -0
  14. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.fonts.css +0 -0
  15. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.login.css +0 -0
  16. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.responsive.css +0 -0
  17. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/theme.tokens.css +0 -0
  18. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/css/two_factor.css +0 -0
  19. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/OFL-Fira-Code.txt +0 -0
  20. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/OFL-Inter.txt +0 -0
  21. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/OFL-JetBrains-Mono.txt +0 -0
  22. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/fira-code-variable.woff2 +0 -0
  23. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/inter-italic-variable.woff2 +0 -0
  24. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/inter-variable.woff2 +0 -0
  25. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/jetbrains-mono-italic-variable.woff2 +0 -0
  26. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/fonts/jetbrains-mono-variable.woff2 +0 -0
  27. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/img/favicon.png +0 -0
  28. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/img/icon-no.svg +0 -0
  29. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/img/icon-unknown.svg +0 -0
  30. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/img/icon-yes.svg +0 -0
  31. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/changelist.js +0 -0
  32. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/forms.js +0 -0
  33. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/messages.js +0 -0
  34. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/pagination-jump.js +0 -0
  35. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/sidebar.js +0 -0
  36. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/static/admin/js/vanta-theme.js +0 -0
  37. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/app_index.html +0 -0
  38. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/base.html +0 -0
  39. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/base_site.html +0 -0
  40. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/change_form.html +0 -0
  41. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/change_list.html +0 -0
  42. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/filter.html +0 -0
  43. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/includes/breadcrumbs.html +0 -0
  44. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/index.html +0 -0
  45. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/login.html +0 -0
  46. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/nav_sidebar.html +0 -0
  47. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/admin/pagination.html +0 -0
  48. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/_base.html +0 -0
  49. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/_base_focus.html +0 -0
  50. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/_wizard_actions.html +0 -0
  51. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/core/login.html +0 -0
  52. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/core/setup_complete.html +0 -0
  53. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/profile/disable.html +0 -0
  54. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templates/two_factor/profile/profile.html +0 -0
  55. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin/templatetags/__init__.py +0 -0
  56. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin.egg-info/SOURCES.txt +0 -0
  57. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin.egg-info/dependency_links.txt +0 -0
  58. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin.egg-info/requires.txt +0 -0
  59. {vanta_admin-0.16.2 → vanta_admin-0.17.0}/vanta_admin.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vanta-admin
3
- Version: 0.16.2
3
+ Version: 0.17.0
4
4
  Summary: A sharp, dark, and portable Django admin theme forged for builders who want the admin to feel less default.
5
5
  Author: oli-dev0
6
6
  License-Expression: MIT
@@ -74,6 +74,8 @@ feels more deliberate in everyday use.
74
74
  grouped many-to-many selectors.
75
75
  - Styled select controls for common admin dropdowns, plus a clearer enhanced
76
76
  horizontal selector for many-to-many fields.
77
+ - Themed Django date and time picker popups, so built-in calendar and clock
78
+ controls no longer drop back to stock admin styling.
77
79
  - Vanta-styled changelist pagination with result summaries, previous and next
78
80
  controls, and a direct page jump.
79
81
  - Built-in icons for common admin areas, models, and recent actions.
@@ -49,6 +49,8 @@ feels more deliberate in everyday use.
49
49
  grouped many-to-many selectors.
50
50
  - Styled select controls for common admin dropdowns, plus a clearer enhanced
51
51
  horizontal selector for many-to-many fields.
52
+ - Themed Django date and time picker popups, so built-in calendar and clock
53
+ controls no longer drop back to stock admin styling.
52
54
  - Vanta-styled changelist pagination with result summaries, previous and next
53
55
  controls, and a direct page jump.
54
56
  - Built-in icons for common admin areas, models, and recent actions.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vanta-admin"
7
- version = "0.16.2"
7
+ version = "0.17.0"
8
8
  description = "A sharp, dark, and portable Django admin theme forged for builders who want the admin to feel less default."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -2091,6 +2091,7 @@ html[data-theme="light"] .change-form .inline-group .tabular thead th {
2091
2091
  }
2092
2092
 
2093
2093
  .change-form .submit-row input,
2094
+ .change-form .submit-row a.closelink,
2094
2095
  .change-form .submit-row a.deletelink {
2095
2096
  display: inline-flex;
2096
2097
  align-items: center;
@@ -2145,6 +2146,8 @@ html[data-theme="light"] .change-form .submit-row input:not(.default):not([name=
2145
2146
 
2146
2147
  .change-form .submit-row input:hover,
2147
2148
  .change-form .submit-row input:focus-visible,
2149
+ .change-form .submit-row a.closelink:hover,
2150
+ .change-form .submit-row a.closelink:focus-visible,
2148
2151
  .change-form .submit-row a.deletelink:hover,
2149
2152
  .change-form .submit-row a.deletelink:focus-visible {
2150
2153
  border-color: var(--admin-accent-border);
@@ -2444,6 +2447,260 @@ ul.helptext li::before,
2444
2447
  line-height: 1.2;
2445
2448
  }
2446
2449
 
2450
+ /* Django's dynamically generated date and time popups. */
2451
+ body .calendarbox.module,
2452
+ body .clockbox.module {
2453
+ z-index: 1000;
2454
+ overflow: hidden;
2455
+ border: 1px solid var(--admin-border);
2456
+ border-radius: var(--admin-radius-lg);
2457
+ background: var(--admin-surface);
2458
+ color: var(--admin-text);
2459
+ font-family: var(--admin-font-family);
2460
+ font-size: 0.86rem;
2461
+ line-height: 1.3;
2462
+ }
2463
+
2464
+ body .calendarbox.module {
2465
+ width: min(19rem, calc(100vw - 1rem));
2466
+ }
2467
+
2468
+ body .calendarbox .calendar {
2469
+ width: 100%;
2470
+ }
2471
+
2472
+ body .calendarbox .calendar table {
2473
+ width: 100%;
2474
+ border-collapse: collapse;
2475
+ border: 0;
2476
+ table-layout: fixed;
2477
+ }
2478
+
2479
+ body .calendarbox .calendar caption {
2480
+ position: relative;
2481
+ padding: 0.6rem 2.8rem;
2482
+ background: var(--admin-accent);
2483
+ color: var(--admin-button-text);
2484
+ font-size: 0.94rem;
2485
+ font-weight: 800;
2486
+ letter-spacing: 0.04em;
2487
+ line-height: 1.2;
2488
+ text-transform: uppercase;
2489
+ }
2490
+
2491
+ body .calendarbox > div:first-child {
2492
+ position: absolute;
2493
+ inset: 0 0 auto;
2494
+ z-index: 1;
2495
+ height: 2.64rem;
2496
+ pointer-events: none;
2497
+ }
2498
+
2499
+ body .calendarbox .calendarnav-previous,
2500
+ body .calendarbox .calendarnav-next {
2501
+ position: absolute;
2502
+ top: 0.28rem;
2503
+ display: grid;
2504
+ width: 1.9rem;
2505
+ height: 1.9rem;
2506
+ place-items: center;
2507
+ border-radius: var(--admin-radius-sm);
2508
+ background: transparent !important;
2509
+ color: var(--admin-button-text);
2510
+ font-size: 0;
2511
+ line-height: 1;
2512
+ text-decoration: none;
2513
+ pointer-events: auto;
2514
+ transition:
2515
+ background-color var(--admin-transition),
2516
+ transform var(--admin-transition);
2517
+ }
2518
+
2519
+ body .calendarbox .calendarnav-previous::before,
2520
+ body .calendarbox .calendarnav-next::before {
2521
+ width: 0.48rem;
2522
+ height: 0.48rem;
2523
+ border-top: 2px solid currentColor;
2524
+ border-right: 2px solid currentColor;
2525
+ content: "";
2526
+ }
2527
+
2528
+ body .calendarbox .calendarnav-previous::before {
2529
+ transform: translateX(0.1rem) rotate(-135deg);
2530
+ }
2531
+
2532
+ body .calendarbox .calendarnav-next::before {
2533
+ transform: translateX(-0.1rem) rotate(45deg);
2534
+ }
2535
+
2536
+ body .calendarbox .calendarnav-previous {
2537
+ left: 0.42rem;
2538
+ }
2539
+
2540
+ body .calendarbox .calendarnav-next {
2541
+ right: 0.42rem;
2542
+ }
2543
+
2544
+ body .calendarbox .calendarnav-previous:hover,
2545
+ body .calendarbox .calendarnav-previous:focus-visible,
2546
+ body .calendarbox .calendarnav-next:hover,
2547
+ body .calendarbox .calendarnav-next:focus-visible {
2548
+ background: color-mix(in srgb, var(--admin-button-text) 14%, transparent);
2549
+ outline: none;
2550
+ transform: translateY(-2px);
2551
+ }
2552
+
2553
+ body .calendarbox .calendar th {
2554
+ padding: 0.34rem 0.15rem;
2555
+ background: var(--admin-surface-muted);
2556
+ color: var(--admin-muted);
2557
+ font-size: 0.74rem;
2558
+ font-weight: 760;
2559
+ text-transform: uppercase;
2560
+ }
2561
+
2562
+ body .calendarbox .calendar td {
2563
+ padding: 0;
2564
+ background: var(--admin-surface);
2565
+ color: var(--admin-text);
2566
+ text-align: center;
2567
+ }
2568
+
2569
+ body .calendarbox .calendar td.nonday {
2570
+ background: var(--admin-surface-muted);
2571
+ }
2572
+
2573
+ body .calendarbox .calendar td a {
2574
+ display: grid;
2575
+ min-height: 1.95rem;
2576
+ place-items: center;
2577
+ color: var(--admin-text);
2578
+ font-weight: 620;
2579
+ text-decoration: none;
2580
+ transition:
2581
+ background-color var(--admin-transition),
2582
+ color var(--admin-transition);
2583
+ }
2584
+
2585
+ body .calendarbox .calendar td a:hover,
2586
+ body .calendarbox .calendar td a:focus-visible {
2587
+ background: var(--surface-hover);
2588
+ color: var(--admin-link-strong);
2589
+ outline: none;
2590
+ }
2591
+
2592
+ body .calendarbox .calendar td.today a {
2593
+ background: var(--admin-accent-soft);
2594
+ color: var(--admin-link-strong);
2595
+ font-weight: 800;
2596
+ }
2597
+
2598
+ body .calendarbox .calendar-shortcuts {
2599
+ display: flex;
2600
+ justify-content: center;
2601
+ gap: 0.38rem;
2602
+ padding: 0.42rem 0.5rem;
2603
+ background: var(--admin-surface);
2604
+ color: var(--admin-muted);
2605
+ font-size: 0.76rem;
2606
+ font-weight: 700;
2607
+ }
2608
+
2609
+ body .calendarbox .calendar-shortcuts a,
2610
+ body .clockbox .timelist a,
2611
+ body .calendarbox .calendar-cancel a,
2612
+ body .clockbox .calendar-cancel a {
2613
+ color: var(--admin-link);
2614
+ text-decoration: none;
2615
+ transition:
2616
+ background-color var(--admin-transition),
2617
+ color var(--admin-transition),
2618
+ transform var(--admin-transition);
2619
+ }
2620
+
2621
+ body .calendarbox .calendar-shortcuts a:hover,
2622
+ body .calendarbox .calendar-shortcuts a:focus-visible,
2623
+ body .clockbox .timelist a:hover,
2624
+ body .clockbox .timelist a:focus-visible,
2625
+ body .calendarbox .calendar-cancel a:hover,
2626
+ body .calendarbox .calendar-cancel a:focus-visible,
2627
+ body .clockbox .calendar-cancel a:hover,
2628
+ body .clockbox .calendar-cancel a:focus-visible {
2629
+ color: var(--admin-link-strong);
2630
+ outline: none;
2631
+ }
2632
+
2633
+ body .calendarbox .calendar-shortcuts a:hover,
2634
+ body .calendarbox .calendar-shortcuts a:focus-visible {
2635
+ transform: translateY(-2px);
2636
+ }
2637
+
2638
+ body .calendarbox .calendar-cancel,
2639
+ body .clockbox .calendar-cancel {
2640
+ margin: 0;
2641
+ border-top: 1px solid var(--admin-border);
2642
+ background: var(--admin-surface-muted);
2643
+ text-align: center;
2644
+ transition: background-color var(--admin-transition);
2645
+ }
2646
+
2647
+ body .calendarbox .calendar-cancel a,
2648
+ body .clockbox .calendar-cancel a {
2649
+ display: block;
2650
+ padding: 0.48rem 0.75rem;
2651
+ color: var(--admin-text);
2652
+ font-weight: 720;
2653
+ }
2654
+
2655
+ body .calendarbox .calendar-cancel:hover,
2656
+ body .calendarbox .calendar-cancel:focus-within,
2657
+ body .clockbox .calendar-cancel:hover,
2658
+ body .clockbox .calendar-cancel:focus-within {
2659
+ background: var(--surface-hover);
2660
+ }
2661
+
2662
+ body .calendarbox .calendar-cancel a:hover,
2663
+ body .calendarbox .calendar-cancel a:focus-visible,
2664
+ body .clockbox .calendar-cancel a:hover,
2665
+ body .clockbox .calendar-cancel a:focus-visible {
2666
+ background: transparent;
2667
+ }
2668
+
2669
+ body .clockbox.module {
2670
+ width: 12rem;
2671
+ }
2672
+
2673
+ body .clockbox h2 {
2674
+ margin: 0;
2675
+ padding: 0.72rem 0.85rem;
2676
+ border-bottom: 1px solid var(--admin-border);
2677
+ background: var(--admin-surface);
2678
+ color: var(--admin-text);
2679
+ font-size: 0.94rem;
2680
+ font-weight: 760;
2681
+ line-height: 1.25;
2682
+ }
2683
+
2684
+ body .clockbox .timelist {
2685
+ margin: 0;
2686
+ padding: 0.18rem 0;
2687
+ list-style: none;
2688
+ }
2689
+
2690
+ body .clockbox .timelist a {
2691
+ display: block;
2692
+ padding: 0.28rem 0.75rem;
2693
+ color: var(--admin-text);
2694
+ font-size: 0.92rem;
2695
+ font-weight: 620;
2696
+ text-align: center;
2697
+ }
2698
+
2699
+ body .clockbox .timelist a:hover,
2700
+ body .clockbox .timelist a:focus-visible {
2701
+ background: var(--surface-hover);
2702
+ }
2703
+
2447
2704
  #changelist #toolbar,
2448
2705
  #changelist .actions {
2449
2706
  display: flex;
@@ -5027,6 +5284,13 @@ a.button {
5027
5284
  font-weight: 760;
5028
5285
  }
5029
5286
 
5287
+ input.button:hover,
5288
+ input.button:focus-visible {
5289
+ background: var(--admin-accent-strong);
5290
+ color: var(--admin-button-text);
5291
+ transform: translateY(-2px);
5292
+ }
5293
+
5030
5294
  code,
5031
5295
  pre {
5032
5296
  font-family: var(--site-font-mono);
@@ -597,7 +597,7 @@ def format_admin_facet_label(value, autoescape=True):
597
597
  label = escaper(match.group("label"))
598
598
  compact_count = _format_compact_count(match.group("count"))
599
599
  return format_html(
600
- '{}&nbsp;-&nbsp;<span class="admin-facet-count">{}</span>',
600
+ '{}&nbsp;·&nbsp;<span class="admin-facet-count">{}</span>',
601
601
  label,
602
602
  compact_count,
603
603
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vanta-admin
3
- Version: 0.16.2
3
+ Version: 0.17.0
4
4
  Summary: A sharp, dark, and portable Django admin theme forged for builders who want the admin to feel less default.
5
5
  Author: oli-dev0
6
6
  License-Expression: MIT
@@ -74,6 +74,8 @@ feels more deliberate in everyday use.
74
74
  grouped many-to-many selectors.
75
75
  - Styled select controls for common admin dropdowns, plus a clearer enhanced
76
76
  horizontal selector for many-to-many fields.
77
+ - Themed Django date and time picker popups, so built-in calendar and clock
78
+ controls no longer drop back to stock admin styling.
77
79
  - Vanta-styled changelist pagination with result summaries, previous and next
78
80
  controls, and a direct page jump.
79
81
  - Built-in icons for common admin areas, models, and recent actions.
File without changes
File without changes
File without changes