drf-to-mkdoc 0.1.5__py3-none-any.whl → 0.1.8__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 drf-to-mkdoc might be problematic. Click here for more details.

Files changed (42) hide show
  1. drf_to_mkdoc/__init__.py +1 -1
  2. drf_to_mkdoc/apps.py +6 -2
  3. drf_to_mkdoc/conf/defaults.py +0 -1
  4. drf_to_mkdoc/conf/settings.py +11 -5
  5. drf_to_mkdoc/management/commands/build_docs.py +61 -19
  6. drf_to_mkdoc/management/commands/generate_docs.py +5 -5
  7. drf_to_mkdoc/management/commands/generate_model_docs.py +37 -7
  8. drf_to_mkdoc/static/drf-to-mkdoc/javascripts/endpoints-filter.js +189 -0
  9. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/accessibility.css +21 -0
  10. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/animations.css +11 -0
  11. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/badges.css +54 -0
  12. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/base.css +84 -0
  13. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/endpoint-content.css +165 -0
  14. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/endpoints-grid.css +194 -0
  15. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/filter-section.css +209 -0
  16. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/fixes.css +44 -0
  17. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/layout.css +31 -0
  18. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/loading.css +35 -0
  19. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/responsive.css +96 -0
  20. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/sections.css +35 -0
  21. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/stats.css +34 -0
  22. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/tags.css +92 -0
  23. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/theme-toggle.css +42 -0
  24. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/endpoints/variables.css +73 -0
  25. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/animations.css +25 -0
  26. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/base.css +83 -0
  27. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/model-cards.css +126 -0
  28. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/model-tables.css +57 -0
  29. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/responsive.css +51 -0
  30. drf_to_mkdoc/static/drf-to-mkdoc/stylesheets/models/variables.css +46 -0
  31. drf_to_mkdoc/utils/common.py +31 -29
  32. drf_to_mkdoc/utils/{endpoint_generator.py → endpoint_detail_generator.py} +214 -384
  33. drf_to_mkdoc/utils/endpoint_list_generator.py +234 -0
  34. drf_to_mkdoc/utils/extractors/query_parameter_extractors.py +15 -16
  35. drf_to_mkdoc/utils/{model_generator.py → model_detail_generator.py} +20 -51
  36. drf_to_mkdoc/utils/model_list_generator.py +67 -0
  37. {drf_to_mkdoc-0.1.5.dist-info → drf_to_mkdoc-0.1.8.dist-info}/METADATA +3 -25
  38. drf_to_mkdoc-0.1.8.dist-info/RECORD +50 -0
  39. drf_to_mkdoc-0.1.5.dist-info/RECORD +0 -25
  40. {drf_to_mkdoc-0.1.5.dist-info → drf_to_mkdoc-0.1.8.dist-info}/WHEEL +0 -0
  41. {drf_to_mkdoc-0.1.5.dist-info → drf_to_mkdoc-0.1.8.dist-info}/licenses/LICENSE +0 -0
  42. {drf_to_mkdoc-0.1.5.dist-info → drf_to_mkdoc-0.1.8.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,96 @@
1
+ /* ===== RESPONSIVE DESIGN ===== */
2
+ @media (max-width: 1200px) {
3
+ .endpoints-grid {
4
+ grid-template-columns: 1fr;
5
+ }
6
+ }
7
+
8
+ @media (max-width: 768px) {
9
+ .endpoints-grid {
10
+ grid-template-columns: 1fr;
11
+ gap: 12px;
12
+ }
13
+
14
+ .endpoint-card {
15
+ padding: 16px;
16
+ flex-direction: column;
17
+ align-items: flex-start;
18
+ gap: 12px;
19
+ }
20
+
21
+ .endpoint-path {
22
+ font-size: 14px;
23
+ padding: 8px;
24
+ }
25
+
26
+ .method-badge {
27
+ align-self: flex-start;
28
+ }
29
+ }
30
+
31
+ @media (max-width: 480px) {
32
+ .endpoint-card {
33
+ padding: 12px;
34
+ }
35
+
36
+ .endpoint-path {
37
+ font-size: 13px;
38
+ padding: 6px;
39
+ }
40
+
41
+ .method-badge {
42
+ font-size: 10px;
43
+ padding: 4px 6px;
44
+ min-width: 50px;
45
+ }
46
+ }
47
+
48
+ /* Responsive design improvements */
49
+ @media screen and (max-width: 768px) {
50
+ .field-grid, .method-grid {
51
+ grid-template-columns: 1fr;
52
+ }
53
+
54
+ .endpoint-header {
55
+ flex-direction: column;
56
+ align-items: flex-start;
57
+ }
58
+
59
+ .endpoint-path {
60
+ margin-left: 0;
61
+ margin-top: 0.5rem;
62
+ }
63
+ }
64
+
65
+ /* Responsive adjustments for model cards */
66
+ @media screen and (max-width: 768px) {
67
+ .model-cards {
68
+ grid-template-columns: 1fr;
69
+ gap: 1rem;
70
+ }
71
+
72
+ .model-card {
73
+ padding: 1rem;
74
+ }
75
+
76
+ .model-header h3 {
77
+ font-size: 1.1rem;
78
+ }
79
+
80
+ .model-badge {
81
+ font-size: 0.7rem;
82
+ padding: 0.2rem 0.6rem;
83
+ }
84
+ }
85
+
86
+ @media screen and (max-width: 480px) {
87
+ .model-header {
88
+ flex-direction: column;
89
+ align-items: flex-start;
90
+ gap: 0.5rem;
91
+ }
92
+
93
+ .model-badge {
94
+ align-self: flex-start;
95
+ }
96
+ }
@@ -0,0 +1,35 @@
1
+ /* ===== SECTIONS ===== */
2
+ .app-section,
3
+ .viewset-section {
4
+ margin-bottom: 48px;
5
+ transition: opacity 0.3s ease;
6
+ }
7
+
8
+ .app-title,
9
+ .viewset-title {
10
+ font-size: 24px;
11
+ font-weight: 700;
12
+ color: var(--text-primary);
13
+ margin-bottom: 20px;
14
+ padding-bottom: 12px;
15
+ border-bottom: 2px solid var(--border-color);
16
+ position: relative;
17
+ }
18
+
19
+ .app-title::before,
20
+ .viewset-title::before {
21
+ content: '';
22
+ position: absolute;
23
+ bottom: -2px;
24
+ left: 0;
25
+ width: 60px;
26
+ height: 2px;
27
+ background: linear-gradient(135deg, var(--accent-primary), #9333ea);
28
+ }
29
+
30
+ .app-description {
31
+ color: var(--text-secondary);
32
+ font-size: 16px;
33
+ margin-bottom: 32px;
34
+ line-height: 1.6;
35
+ }
@@ -0,0 +1,34 @@
1
+ /* ===== STATS ===== */
2
+ .stats-section {
3
+ display: grid;
4
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
5
+ gap: 20px;
6
+ margin-bottom: 40px;
7
+ }
8
+
9
+ .stat-card {
10
+ background: var(--bg-secondary);
11
+ border: 1px solid var(--border-color);
12
+ border-radius: 12px;
13
+ padding: 20px;
14
+ text-align: center;
15
+ box-shadow: var(--shadow);
16
+ transition: transform 0.2s ease;
17
+ }
18
+
19
+ .stat-card:hover {
20
+ transform: translateY(-2px);
21
+ }
22
+
23
+ .stat-number {
24
+ font-size: 28px;
25
+ font-weight: 700;
26
+ color: var(--accent-primary);
27
+ margin-bottom: 8px;
28
+ }
29
+
30
+ .stat-label {
31
+ font-size: 14px;
32
+ color: var(--text-secondary);
33
+ font-weight: 500;
34
+ }
@@ -0,0 +1,92 @@
1
+ /* ===== TAGS ===== */
2
+ .tags-container {
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ gap: 8px;
6
+ }
7
+
8
+ .tag {
9
+ display: flex;
10
+ align-items: center;
11
+ gap: 4px;
12
+ padding: 6px 10px;
13
+ border-radius: 16px;
14
+ font-size: 11px;
15
+ font-weight: 500;
16
+ background: var(--bg-primary);
17
+ color: var(--text-secondary);
18
+ border: 1px solid var(--border-color);
19
+ transition: all 0.2s ease;
20
+ }
21
+
22
+ .tag:hover {
23
+ transform: translateY(-1px);
24
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
25
+ }
26
+
27
+ /* Tag Types - Light Mode */
28
+ .tag.auth {
29
+ background: #fef3c7;
30
+ color: #92400e;
31
+ border-color: #fbbf24;
32
+ }
33
+
34
+ .tag.pagination {
35
+ background: #dbeafe;
36
+ color: #1e40af;
37
+ border-color: #3b82f6;
38
+ }
39
+
40
+ .tag.search {
41
+ background: #dcfce7;
42
+ color: #166534;
43
+ border-color: #22c55e;
44
+ }
45
+
46
+ .tag.ordering {
47
+ background: #fce7f3;
48
+ color: #be185d;
49
+ border-color: #ec4899;
50
+ }
51
+
52
+ .tag.permission {
53
+ background: #f3e8ff;
54
+ color: #7c3aed;
55
+ border-color: #a855f7;
56
+ }
57
+
58
+ /* Tag Types - Dark Mode */
59
+ [data-theme="dark"] .tag.auth,
60
+ [data-md-color-scheme="slate"] .tag.auth {
61
+ background: #451a03;
62
+ color: #fbbf24;
63
+ border-color: #92400e;
64
+ }
65
+
66
+ [data-theme="dark"] .tag.pagination,
67
+ [data-md-color-scheme="slate"] .tag.pagination {
68
+ background: #1e3a8a;
69
+ color: #60a5fa;
70
+ border-color: #1e40af;
71
+ }
72
+
73
+ [data-theme="dark"] .tag.search,
74
+ [data-md-color-scheme="slate"] .tag.search {
75
+ background: #14532d;
76
+ color: #4ade80;
77
+ border-color: #166534;
78
+ }
79
+
80
+ [data-theme="dark"] .tag.ordering,
81
+ [data-md-color-scheme="slate"] .tag.ordering {
82
+ background: #831843;
83
+ color: #f472b6;
84
+ border-color: #be185d;
85
+ }
86
+
87
+ [data-theme="dark"] .tag.permission,
88
+ [data-md-color-scheme="slate"] .tag.permission {
89
+ background: #581c87;
90
+ color: #c4b5fd;
91
+ border-color: #7c3aed;
92
+ }
@@ -0,0 +1,42 @@
1
+ /* ===== THEME TOGGLE ===== */
2
+ .theme-toggle {
3
+ position: fixed;
4
+ top: 20px;
5
+ right: 20px;
6
+ background: var(--bg-secondary);
7
+ border: 1px solid var(--border-color);
8
+ padding: 10px 16px;
9
+ border-radius: 12px;
10
+ cursor: pointer;
11
+ transition: all 0.3s ease;
12
+ z-index: 1000;
13
+ font-size: 14px;
14
+ color: var(--text-primary);
15
+ box-shadow: var(--shadow);
16
+ display: flex;
17
+ align-items: center;
18
+ gap: 8px;
19
+ }
20
+
21
+ .theme-toggle:hover {
22
+ transform: translateY(-2px);
23
+ box-shadow: var(--shadow-hover);
24
+ border-color: var(--accent-primary);
25
+ }
26
+
27
+ .theme-toggle:focus {
28
+ outline: 2px solid var(--accent-primary);
29
+ outline-offset: 2px;
30
+ }
31
+
32
+ /* Dark mode adjustments */
33
+ [data-md-color-scheme="slate"] .field-item,
34
+ [data-md-color-scheme="slate"] .method-item {
35
+ background-color: var(--md-code-bg-color);
36
+ border-color: var(--md-default-fg-color--lightest);
37
+ }
38
+
39
+ [data-md-color-scheme="slate"] table th {
40
+ background-color: var(--md-primary-fg-color);
41
+ color: var(--md-primary-bg-color);
42
+ }
@@ -0,0 +1,73 @@
1
+ /* ===== CSS VARIABLES ===== */
2
+ :root {
3
+ /* Colors */
4
+ --bg-primary: #ffffff;
5
+ --bg-secondary: #f8fafc;
6
+ --bg-tertiary: #f1f5f9;
7
+
8
+ --text-primary: #0f172a;
9
+ --text-secondary: #475569;
10
+ --text-muted: #64748b;
11
+
12
+ --border-color: #e2e8f0;
13
+ --border-hover: #cbd5e1;
14
+
15
+ --accent-primary: #3b82f6;
16
+ --accent-secondary: #1d4ed8;
17
+ --accent-hover: #2563eb;
18
+
19
+ /* Shadows */
20
+ --shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
21
+ --shadow-hover: 0 4px 6px rgba(0, 0, 0, 0.1);
22
+ --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
23
+
24
+ /* Transitions */
25
+ --transition-fast: 0.15s ease;
26
+ --transition-normal: 0.3s ease;
27
+ --transition-slow: 0.5s ease;
28
+ }
29
+
30
+ /* Dark mode */
31
+ [data-md-color-scheme="slate"] {
32
+ --bg-primary: #1a1a1a;
33
+ --bg-secondary: #2d2d2d;
34
+ --bg-tertiary: #404040;
35
+
36
+ --text-primary: #ffffff;
37
+ --text-secondary: #e5e5e5;
38
+ --text-muted: #cccccc;
39
+
40
+ --border-color: #404040;
41
+ --border-hover: #555555;
42
+
43
+ --accent-primary: #60a5fa;
44
+ --accent-secondary: #3b82f6;
45
+ --accent-hover: #93c5fd;
46
+ }
47
+
48
+ /* Dark mode adjustments */
49
+ [data-md-color-scheme="slate"] .field-item,
50
+ [data-md-color-scheme="slate"] .method-item {
51
+ background-color: var(--md-code-bg-color);
52
+ border-color: var(--md-default-fg-color--lightest);
53
+ }
54
+
55
+ [data-md-color-scheme="slate"] table th {
56
+ background-color: var(--md-primary-fg-color);
57
+ color: var(--md-primary-bg-color);
58
+ }
59
+
60
+ [data-md-color-scheme="slate"] .model-card {
61
+ background: var(--md-code-bg-color);
62
+ border-color: var(--md-default-fg-color--lightest);
63
+ }
64
+
65
+ [data-md-color-scheme="slate"] .model-card:hover {
66
+ border-color: var(--md-primary-fg-color);
67
+ box-shadow: 0 8px 16px rgba(255, 255, 255, 0.1);
68
+ }
69
+
70
+ [data-md-color-scheme="slate"] .app-description {
71
+ color: var(--md-default-fg-color--light);
72
+ border-color: var(--md-default-fg-color--lightest);
73
+ }
@@ -0,0 +1,25 @@
1
+ /* ===== ANIMATIONS FOR MODELS ===== */
2
+
3
+ /* Animation for cards appearing */
4
+ @keyframes fadeInUp {
5
+ from {
6
+ opacity: 0;
7
+ transform: translateY(20px);
8
+ }
9
+ to {
10
+ opacity: 1;
11
+ transform: translateY(0);
12
+ }
13
+ }
14
+
15
+ .model-card {
16
+ animation: fadeInUp 0.6s ease-out;
17
+ }
18
+
19
+ /* Stagger animation for multiple cards */
20
+ .model-card:nth-child(1) { animation-delay: 0.1s; }
21
+ .model-card:nth-child(2) { animation-delay: 0.2s; }
22
+ .model-card:nth-child(3) { animation-delay: 0.3s; }
23
+ .model-card:nth-child(4) { animation-delay: 0.4s; }
24
+ .model-card:nth-child(5) { animation-delay: 0.5s; }
25
+ .model-card:nth-child(6) { animation-delay: 0.6s; }
@@ -0,0 +1,83 @@
1
+ /* ===== BASE STYLES FOR MODELS ===== */
2
+ * {
3
+ box-sizing: border-box;
4
+ }
5
+
6
+ body {
7
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
8
+ background: var(--bg-primary);
9
+ color: var(--text-primary);
10
+ line-height: 1.6;
11
+ transition: background-color 0.3s ease, color 0.3s ease;
12
+ margin: 0;
13
+ padding: 0;
14
+ min-height: 100vh;
15
+ }
16
+
17
+ /* Enhanced code blocks */
18
+ .highlight pre {
19
+ border-left: 4px solid var(--md-primary-fg-color);
20
+ background-color: var(--md-code-bg-color);
21
+ padding: 1rem;
22
+ border-radius: 0.2rem;
23
+ }
24
+
25
+ /* Navigation enhancements */
26
+ .md-nav__item--active > .md-nav__link {
27
+ font-weight: 600;
28
+ }
29
+
30
+ /* Admonition customizations */
31
+ .admonition.note {
32
+ border-left-color: var(--md-primary-fg-color);
33
+ }
34
+
35
+ .admonition.tip {
36
+ border-left-color: #00c853;
37
+ }
38
+
39
+ .admonition.warning {
40
+ border-left-color: #ff9800;
41
+ }
42
+
43
+ .admonition.danger {
44
+ border-left-color: #f44336;
45
+ }
46
+
47
+ /* Search result enhancements */
48
+ .md-search-result__meta {
49
+ color: var(--md-default-fg-color--light);
50
+ }
51
+
52
+ /* Code syntax highlighting enhancements */
53
+ .codehilite .k { color: #0066cc; } /* Keywords */
54
+ .codehilite .s { color: #009900; } /* Strings */
55
+ .codehilite .c { color: #999999; } /* Comments */
56
+ .codehilite .n { color: #333333; } /* Names */
57
+ .codehilite .o { color: #666666; } /* Operators */
58
+
59
+ /* Custom icons for different sections */
60
+ .md-nav__item[data-md-level="1"] > .md-nav__link[href*="models"] {
61
+ position: relative;
62
+ }
63
+
64
+ .md-nav__item[data-md-level="1"] > .md-nav__link[href*="models"]::before {
65
+ content: "🗃️";
66
+ margin-right: 0.5rem;
67
+ }
68
+
69
+ /* Print styles */
70
+ @media print {
71
+ .md-header, .md-sidebar, .md-footer {
72
+ display: none;
73
+ }
74
+
75
+ .md-content {
76
+ margin: 0;
77
+ }
78
+
79
+ .highlight pre {
80
+ border: 1px solid #ccc;
81
+ page-break-inside: avoid;
82
+ }
83
+ }
@@ -0,0 +1,126 @@
1
+ /* ===== DJANGO MODELS CARD LAYOUT ===== */
2
+
3
+ /* Models container */
4
+ .models-container {
5
+ max-width: 100%;
6
+ margin: 0 auto;
7
+ }
8
+
9
+ /* App header styling */
10
+ .app-header {
11
+ font-size: 1.5rem;
12
+ font-weight: 700;
13
+ color: var(--text-primary);
14
+ margin: 2rem 0 1rem 0;
15
+ padding: 0.5rem 0;
16
+ border-bottom: 2px solid var(--accent-primary);
17
+ }
18
+
19
+ /* App description styling */
20
+ .app-description {
21
+ font-size: 1rem;
22
+ color: var(--text-secondary);
23
+ margin-bottom: 1.5rem;
24
+ padding: 0.5rem 0;
25
+ border-bottom: 1px solid var(--border-color);
26
+ }
27
+
28
+ /* Model cards grid */
29
+ .model-cards {
30
+ display: grid;
31
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
32
+ gap: 1.5rem;
33
+ margin-bottom: 3rem;
34
+ }
35
+
36
+ /* Individual model card */
37
+ .model-card {
38
+ background: var(--bg-primary);
39
+ border: 1px solid var(--border-color);
40
+ border-radius: 8px;
41
+ padding: 1.5rem;
42
+ transition: all 0.3s ease;
43
+ box-shadow: var(--shadow);
44
+ position: relative;
45
+ overflow: hidden;
46
+ text-decoration: none;
47
+ color: var(--text-primary);
48
+ display: block;
49
+ }
50
+
51
+ .model-card:hover {
52
+ transform: translateY(-4px);
53
+ box-shadow: var(--shadow-hover);
54
+ border-color: var(--accent-primary);
55
+ text-decoration: none;
56
+ color: var(--text-primary);
57
+ }
58
+
59
+ .model-card::before {
60
+ content: '';
61
+ position: absolute;
62
+ top: 0;
63
+ left: 0;
64
+ right: 0;
65
+ height: 4px;
66
+ background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
67
+ opacity: 0;
68
+ transition: opacity 0.3s ease;
69
+ }
70
+
71
+ .model-card:hover::before {
72
+ opacity: 1;
73
+ }
74
+
75
+ /* Model header */
76
+ .model-header {
77
+ display: flex;
78
+ justify-content: space-between;
79
+ align-items: center;
80
+ margin-bottom: 0.5rem;
81
+ }
82
+
83
+ .model-header h3 {
84
+ margin: 0;
85
+ font-size: 1.25rem;
86
+ font-weight: 600;
87
+ }
88
+
89
+ .model-header h3 a {
90
+ color: var(--text-primary);
91
+ text-decoration: none;
92
+ transition: color 0.3s ease;
93
+ }
94
+
95
+ .model-header h3 a:hover {
96
+ color: var(--accent-primary);
97
+ }
98
+
99
+ /* Model badge */
100
+ .model-badge {
101
+ display: inline-block;
102
+ padding: 0.25rem 0.75rem;
103
+ background: var(--accent-primary);
104
+ color: var(--bg-primary);
105
+ border-radius: 20px;
106
+ font-size: 0.75rem;
107
+ font-weight: 600;
108
+ text-transform: uppercase;
109
+ letter-spacing: 0.5px;
110
+ }
111
+
112
+ /* Dark mode adjustments for model cards */
113
+ [data-md-color-scheme="slate"] .model-card {
114
+ background: var(--md-code-bg-color);
115
+ border-color: var(--md-default-fg-color--lightest);
116
+ }
117
+
118
+ [data-md-color-scheme="slate"] .model-card:hover {
119
+ border-color: var(--md-primary-fg-color);
120
+ box-shadow: 0 8px 16px rgba(255, 255, 255, 0.1);
121
+ }
122
+
123
+ [data-md-color-scheme="slate"] .app-description {
124
+ color: var(--md-default-fg-color--light);
125
+ border-color: var(--md-default-fg-color--lightest);
126
+ }
@@ -0,0 +1,57 @@
1
+ /* ===== MODEL TABLES AND FIELD GRIDS ===== */
2
+
3
+ /* Model field tables */
4
+ table {
5
+ border-collapse: collapse;
6
+ width: 100%;
7
+ margin: 1rem 0;
8
+ }
9
+
10
+ table th {
11
+ background-color: var(--md-primary-fg-color--light);
12
+ color: var(--md-primary-bg-color);
13
+ padding: 0.75rem;
14
+ text-align: left;
15
+ font-weight: 600;
16
+ }
17
+
18
+ table td {
19
+ padding: 0.75rem;
20
+ border-bottom: 1px solid var(--md-default-fg-color--lightest);
21
+ }
22
+
23
+ table tr:hover {
24
+ background-color: var(--md-accent-fg-color--transparent);
25
+ }
26
+
27
+ /* Field and method grids */
28
+ .field-grid, .method-grid {
29
+ display: grid;
30
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
31
+ gap: 1rem;
32
+ margin: 1rem 0;
33
+ }
34
+
35
+ .field-item, .method-item {
36
+ background-color: var(--md-default-bg-color);
37
+ border: 1px solid var(--md-default-fg-color--lightest);
38
+ border-radius: 0.2rem;
39
+ padding: 1rem;
40
+ }
41
+
42
+ .field-item h4, .method-item h4 {
43
+ margin-top: 0;
44
+ color: var(--md-primary-fg-color);
45
+ }
46
+
47
+ /* Dark mode adjustments for tables and grids */
48
+ [data-md-color-scheme="slate"] .field-item,
49
+ [data-md-color-scheme="slate"] .method-item {
50
+ background-color: var(--md-code-bg-color);
51
+ border-color: var(--md-default-fg-color--lightest);
52
+ }
53
+
54
+ [data-md-color-scheme="slate"] table th {
55
+ background-color: var(--md-primary-fg-color);
56
+ color: var(--md-primary-bg-color);
57
+ }