madmin 1.2.11 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/madmin_manifest.js +3 -0
  3. data/app/assets/stylesheets/madmin/actiontext.css +31 -0
  4. data/app/assets/stylesheets/madmin/application.css +88 -0
  5. data/app/assets/stylesheets/madmin/buttons.css +46 -0
  6. data/app/assets/stylesheets/madmin/forms.css +82 -0
  7. data/app/assets/stylesheets/madmin/pagination.css +59 -0
  8. data/app/assets/stylesheets/madmin/reset.css +242 -0
  9. data/app/assets/stylesheets/madmin/sidebar.css +80 -0
  10. data/app/assets/stylesheets/madmin/tables.css +56 -0
  11. data/app/controllers/madmin/application_controller.rb +7 -12
  12. data/app/controllers/madmin/base_controller.rb +1 -0
  13. data/app/helpers/madmin/application_helper.rb +1 -12
  14. data/app/helpers/madmin/sort_helper.rb +17 -1
  15. data/app/javascript/madmin/application.js +4 -0
  16. data/app/javascript/madmin/controllers/application.js +12 -0
  17. data/app/javascript/madmin/controllers/index.js +5 -0
  18. data/app/javascript/madmin/controllers/nested_form_controller.js +34 -0
  19. data/app/javascript/madmin/controllers/select_controller.js +32 -0
  20. data/app/views/layouts/madmin/application.html.erb +11 -13
  21. data/app/views/madmin/application/_form.html.erb +13 -12
  22. data/app/views/madmin/application/_javascript.html.erb +3 -136
  23. data/app/views/madmin/application/_navigation.html.erb +22 -27
  24. data/app/views/madmin/application/edit.html.erb +9 -5
  25. data/app/views/madmin/application/index.html.erb +37 -31
  26. data/app/views/madmin/application/new.html.erb +9 -5
  27. data/app/views/madmin/application/show.html.erb +28 -22
  28. data/app/views/madmin/dashboard/show.html.erb +4 -1
  29. data/app/views/madmin/fields/attachment/_form.html.erb +11 -4
  30. data/app/views/madmin/fields/attachment/_index.html.erb +5 -1
  31. data/app/views/madmin/fields/attachment/_show.html.erb +4 -4
  32. data/app/views/madmin/fields/attachments/_form.html.erb +1 -4
  33. data/app/views/madmin/fields/belongs_to/_form.html.erb +1 -4
  34. data/app/views/madmin/fields/belongs_to/_index.html.erb +2 -1
  35. data/app/views/madmin/fields/boolean/_form.html.erb +3 -4
  36. data/app/views/madmin/fields/currency/_form.html.erb +1 -0
  37. data/app/views/madmin/fields/currency/_index.html.erb +1 -0
  38. data/app/views/madmin/fields/currency/_show.html.erb +1 -0
  39. data/app/views/madmin/fields/date/_form.html.erb +1 -4
  40. data/app/views/madmin/fields/date_time/_form.html.erb +1 -4
  41. data/app/views/madmin/fields/decimal/_form.html.erb +1 -4
  42. data/app/views/madmin/fields/enum/_form.html.erb +1 -4
  43. data/app/views/madmin/fields/file/_form.html.erb +1 -4
  44. data/app/views/madmin/fields/float/_form.html.erb +1 -4
  45. data/app/views/madmin/fields/has_many/_form.html.erb +1 -4
  46. data/app/views/madmin/fields/has_one/_form.html.erb +0 -3
  47. data/app/views/madmin/fields/integer/_form.html.erb +1 -4
  48. data/app/views/madmin/fields/integer/_index.html.erb +1 -5
  49. data/app/views/madmin/fields/json/_form.html.erb +1 -4
  50. data/app/views/madmin/fields/nested_has_many/_fields.html.erb +4 -5
  51. data/app/views/madmin/fields/nested_has_many/_form.html.erb +0 -4
  52. data/app/views/madmin/fields/password/_form.html.erb +1 -4
  53. data/app/views/madmin/fields/polymorphic/_form.html.erb +1 -4
  54. data/app/views/madmin/fields/rich_text/_form.html.erb +1 -6
  55. data/app/views/madmin/fields/select/_form.html.erb +1 -0
  56. data/app/views/madmin/fields/select/_index.html.erb +1 -0
  57. data/app/views/madmin/fields/select/_show.html.erb +1 -0
  58. data/app/views/madmin/fields/string/_form.html.erb +1 -4
  59. data/app/views/madmin/fields/text/_form.html.erb +1 -4
  60. data/app/views/madmin/shared/_label.html.erb +2 -2
  61. data/config/importmap.rb +10 -0
  62. data/lib/generators/madmin/field/templates/_form.html.erb +1 -4
  63. data/lib/generators/madmin/install/templates/controller.rb.tt +5 -12
  64. data/lib/generators/madmin/resource/templates/resource.rb.tt +12 -10
  65. data/lib/madmin/engine.rb +20 -0
  66. data/lib/madmin/field.rb +17 -5
  67. data/lib/madmin/fields/belongs_to.rb +10 -5
  68. data/lib/madmin/fields/currency.rb +15 -0
  69. data/lib/madmin/fields/polymorphic.rb +1 -1
  70. data/lib/madmin/fields/select.rb +9 -0
  71. data/lib/madmin/menu.rb +70 -0
  72. data/lib/madmin/resource.rb +56 -24
  73. data/lib/madmin/search.rb +1 -1
  74. data/lib/madmin/version.rb +1 -1
  75. data/lib/madmin.rb +22 -1
  76. metadata +61 -13
  77. data/app/assets/config/manifest.js +0 -2
  78. data/app/assets/stylesheets/actiontext.scss +0 -36
  79. data/app/assets/stylesheets/application.css +0 -15
  80. data/app/views/madmin/application/_menu_resources.html.erb +0 -7
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 56db4d11f4d580cf81ae930792f465deefff47373903e5f98503d53314e30eeb
4
- data.tar.gz: 7fbf045417bde2b39a4abcf98f86900dd60d3e7e99670139e1fdbec9a1ecf43d
3
+ metadata.gz: cb075b59c9ecf34a7f4b939bb87a3e564fd984bb0d6866b13926d9873a335d3b
4
+ data.tar.gz: d6ec7fa589c2784e9c4a07d43b8cb5344e8637c7f7a3f53871cd17ecf1241061
5
5
  SHA512:
6
- metadata.gz: 047cd4d1eceabc2328638b13ee9cb59225b563bd396c02887e89b6a4f6aae3fab5ce38252e7d35981feb1e6cbd76bbc5058c3d9fe686577705a4c48720a9903c
7
- data.tar.gz: 96340f347076e77f481482fd1f34fcac7fcb4d3bd22d62ba22957ac58f14375e5641cb8dac30fff8f9c0ac963d1be5e220df3c721666978b4341ec958953094c
6
+ metadata.gz: 4d98c36cdfa429788088b18bdfc2bb7d9b5263575941156612c40efe4bf96ba7e3abc0560550eec7b3707aab12ec6485d5ea80182b36e8e3f9b04d3698d1c1ca
7
+ data.tar.gz: 24a57436a187fce39ace57a461989fb996395a6967c0513bba022c96197f054414754bd6b2a770cf54040daabfbd71880fb768fb12672917ba2a08bf94d577d3
@@ -0,0 +1,3 @@
1
+ //= link_directory ../stylesheets/madmin .css
2
+ //= link_directory ../../javascript/madmin .js
3
+ //= link_tree ../../javascript/madmin/controllers .js
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and
3
+ * the trix-editor content (whether displayed or under editing). Feel free to incorporate this
4
+ * inclusion directly in any other asset bundle and remove this file.
5
+ *
6
+ *= require trix
7
+ */
8
+
9
+ /*
10
+ * We need to override trix.css’s image gallery styles to accommodate the
11
+ * <action-text-attachment> element we wrap around attachments. Otherwise,
12
+ * images in galleries will be squished by the max-width: 33%; rule.
13
+ */
14
+ .trix-content .attachment-gallery > action-text-attachment,
15
+ .trix-content .attachment-gallery > .attachment {
16
+ flex: 1 0 33%;
17
+ padding: 0 0.5em;
18
+ max-width: 33%;
19
+ }
20
+
21
+ .trix-content .attachment-gallery.attachment-gallery--2 > action-text-attachment,
22
+ .trix-content .attachment-gallery.attachment-gallery--2 > .attachment, .trix-content .attachment-gallery.attachment-gallery--4 > action-text-attachment,
23
+ .trix-content .attachment-gallery.attachment-gallery--4 > .attachment {
24
+ flex-basis: 50%;
25
+ max-width: 50%;
26
+ }
27
+
28
+ .trix-content action-text-attachment .attachment {
29
+ padding: 0 !important;
30
+ max-width: 100% !important;
31
+ }
@@ -0,0 +1,88 @@
1
+ @import url("../trix.css");
2
+ @import url("./actiontext.css");
3
+ @import url("./reset.css");
4
+ @import url("./sidebar.css");
5
+ @import url("./buttons.css");
6
+ @import url("./forms.css");
7
+ @import url("./tables.css");
8
+ @import url("./pagination.css");
9
+
10
+ :root {
11
+ --primary-color: rgb(37 99 235);
12
+ --border-color: rgb(229 231 235);
13
+ --background-color: rgb(249 250 251);
14
+ --text-color: rgb(2 6 23);
15
+ --light-text-color: rgb(71 85 105);
16
+
17
+ --sidebar-width: 16rem;
18
+ }
19
+
20
+ body {
21
+ color: var(--text-color);
22
+ font-size: 14px;
23
+ }
24
+
25
+ a {
26
+ color: var(--primary-color);
27
+ }
28
+
29
+ .search {
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+
34
+ .header {
35
+ border-bottom: 1px solid rgb(229 231 235);
36
+ display: flex;
37
+ justify-content: space-between;
38
+ align-items: center;
39
+ padding-bottom: 1rem;
40
+ margin-bottom: 1rem;
41
+
42
+ h1 {
43
+ margin: 0;
44
+ }
45
+
46
+ a {
47
+ text-decoration: none;
48
+
49
+ &:hover {
50
+ text-decoration: underline;
51
+ }
52
+ }
53
+
54
+ .actions {
55
+ align-items: center;
56
+ display: flex;
57
+ gap: 0.5rem;
58
+ }
59
+ }
60
+
61
+ .metrics {
62
+ display: flex;
63
+
64
+ .metric {
65
+ border: 1px solid rgb(229 231 235);
66
+ border-radius: 0.25rem;
67
+ padding: 1rem;
68
+ margin: 1rem;
69
+ flex: 1 1 0%;
70
+
71
+ h4 {
72
+ color: rgb(75 85 99);
73
+ font-weight: 600;
74
+ margin-top: 0;
75
+ margin-bottom: 0.5rem;
76
+ }
77
+
78
+ p {
79
+ font-size: 2rem;
80
+ font-weight: 600;
81
+ margin: 0;
82
+ }
83
+ }
84
+ }
85
+
86
+ .scopes {
87
+ margin-bottom: 1rem;
88
+ }
@@ -0,0 +1,46 @@
1
+ .btn {
2
+ border-radius: 0.375rem;
3
+ display: inline-block;
4
+ font-weight: 600;
5
+ text-decoration: none;
6
+
7
+ font-size: 0.875rem;
8
+ line-height: 1.25rem;
9
+ padding-bottom: 0.5rem;
10
+ padding-top: 0.5rem;
11
+ padding-left: 0.75rem;
12
+ padding-right: 0.75rem;
13
+
14
+ &:hover {
15
+ text-decoration: none !important;
16
+ }
17
+
18
+ &.btn-primary {
19
+ background-color: var(--primary-color);
20
+ color: white;
21
+ }
22
+
23
+ &.btn-secondary {
24
+ background-color: white;
25
+ color: rgb(31 41 55);
26
+ box-shadow: inset 0 0 0 1px rgb(156 163 175);
27
+
28
+ &:hover {
29
+ background-color: rgb(243 244 246);
30
+ }
31
+
32
+ &.active {
33
+ background-color: rgb(243 244 246);
34
+ }
35
+ }
36
+
37
+ &.btn-danger {
38
+ background-color: white;
39
+ color: rgb(239 68 68);
40
+ box-shadow: inset 0 0 0 1px rgb(239 68 68);
41
+
42
+ &:hover {
43
+ background-color: rgb(243 244 246);
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,82 @@
1
+ .alert {
2
+ border-radius: 0.25rem;
3
+ font-weight: 500;
4
+ padding: 1rem;
5
+ margin-bottom: 1rem;
6
+
7
+ ul {
8
+ margin-top: 0.5rem;
9
+ margin-bottom: 0;
10
+ padding-left: 2rem;
11
+ }
12
+
13
+ &.alert-danger {
14
+ background-color: rgb(254 226 226);
15
+ color: rgb(153 27 27);
16
+ }
17
+ }
18
+
19
+ .form-hint {
20
+ font-size: 0.875rem;
21
+ margin-top: 0.5rem;
22
+
23
+ &.error {
24
+ color: rgb(239 68 68);
25
+ }
26
+ }
27
+
28
+ .form-group {
29
+ margin-bottom: 1rem;
30
+ }
31
+
32
+ .form-input {
33
+ width: 100%;
34
+ }
35
+
36
+ .form-description {
37
+ color: var(--light-text-color);
38
+ }
39
+
40
+ label {
41
+ color: rgb(17 24 39);
42
+ line-height: 1.5rem;
43
+ font-weight: 500;
44
+ font-size: 0.875rem;
45
+ }
46
+
47
+ button, input, optgroup, select, textarea {
48
+ font-family: inherit;
49
+ font-feature-settings: inherit;
50
+ font-variation-settings: inherit;
51
+ font-size: 100%;
52
+ font-weight: inherit;
53
+ line-height: inherit;
54
+ letter-spacing: inherit;
55
+ color: inherit;
56
+ margin: 0;
57
+ padding: 0;
58
+ }
59
+
60
+ [type='text'], input:where(:not([type])), [type='email'], [type='url'], [type='password'], [type='number'], [type='date'], [type='datetime-local'], [type='month'], [type='search'], [type='tel'], [type='time'], [type='week'], [multiple], textarea, select {
61
+ -webkit-appearance: none;
62
+ -moz-appearance: none;
63
+ appearance: none;
64
+ background-color: #fff;
65
+
66
+ border-radius: 0.375rem;
67
+ box-shadow: inset 0 0 0 1px rgb(156 163 175);
68
+ line-height: 1.5rem;
69
+ padding-bottom: 0.375rem;
70
+ padding-left: 0.75rem;
71
+ padding-right: 0.75rem;
72
+ padding-top: 0.375rem;
73
+
74
+ &:focus {
75
+ box-shadow: inset 0 0 0 1px rgb(var(--primary-color));
76
+ }
77
+ }
78
+
79
+ .required {
80
+ color: rgb(239 68 68);
81
+ font-weight: 600;
82
+ }
@@ -0,0 +1,59 @@
1
+ .pagination {
2
+ padding: 0.5rem;
3
+ }
4
+
5
+ .pagy {
6
+ display: inline-flex;
7
+ isolation: isolate;
8
+ border-radius: 0.375rem;
9
+
10
+ a {
11
+ display: inline-flex;
12
+ position: relative;
13
+ padding-top: 0.5rem;
14
+ padding-bottom: 0.5rem;
15
+ padding-left: 0.75rem;
16
+ padding-right: 0.75rem;
17
+ align-items: center;
18
+ box-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
19
+ --tw-ring-inset: inset;
20
+ --tw-ring-color: #D1D5DB;
21
+ font-size: 0.875rem;
22
+ line-height: 1.25rem;
23
+ color: #111827;
24
+ background-color: #ffffff;
25
+ border-radius: 0.25rem;
26
+ text-decoration: none;
27
+ }
28
+
29
+ a:hover {
30
+ background-color: #F3F4F6;
31
+ }
32
+
33
+ a:not([href]) {
34
+ color: #D1D5DB;
35
+ cursor: default;
36
+ }
37
+
38
+ a.current {
39
+ color: #ffffff;
40
+ background-color: var(--primary-color);
41
+ }
42
+
43
+ label {
44
+ display: inline-block;
45
+ padding-top: 0.125rem;
46
+ padding-bottom: 0.125rem;
47
+ padding-left: 0.75rem;
48
+ padding-right: 0.75rem;
49
+ border-radius: 0.5rem;
50
+ white-space: nowrap;
51
+ background-color: #E5E7EB;
52
+ }
53
+
54
+ label input {
55
+ border-radius: 0.375rem;
56
+ border-style: none;
57
+ background-color: #F3F4F6;
58
+ }
59
+ }
@@ -0,0 +1,242 @@
1
+ *, ::before, ::after {
2
+ box-sizing: border-box;
3
+ border-width: 0;
4
+ border-style: solid;
5
+ border-color: #e5e7eb;
6
+ }
7
+
8
+ body {
9
+ line-height: 1.5;
10
+ -webkit-font-smoothing: antialiased;
11
+ -moz-osx-font-smoothing: grayscale;
12
+ }
13
+ img, picture, video, canvas, svg {
14
+ display: block;
15
+ max-width: 100%;
16
+ }
17
+ input, button, textarea, select {
18
+ font: inherit;
19
+ }
20
+ p, h1, h2, h3, h4, h5, h6 {
21
+ overflow-wrap: break-word;
22
+ }
23
+ p {
24
+ text-wrap: pretty;
25
+ }
26
+ h1, h2, h3, h4, h5, h6 {
27
+ text-wrap: balance;
28
+ }
29
+
30
+ /*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize */
31
+
32
+ /*
33
+ Document
34
+ ========
35
+ */
36
+
37
+ /**
38
+ Use a better box model (opinionated).
39
+ */
40
+
41
+ *,
42
+ ::before,
43
+ ::after {
44
+ box-sizing: border-box;
45
+ }
46
+
47
+ html {
48
+ /* Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3) */
49
+ font-family:
50
+ system-ui,
51
+ 'Segoe UI',
52
+ Roboto,
53
+ Helvetica,
54
+ Arial,
55
+ sans-serif,
56
+ 'Apple Color Emoji',
57
+ 'Segoe UI Emoji';
58
+ line-height: 1.15; /* 1. Correct the line height in all browsers. */
59
+ -webkit-text-size-adjust: 100%; /* 2. Prevent adjustments of font size after orientation changes in iOS. */
60
+ tab-size: 4; /* 3. Use a more readable tab size (opinionated). */
61
+ }
62
+
63
+ /*
64
+ Sections
65
+ ========
66
+ */
67
+
68
+ body {
69
+ margin: 0; /* Remove the margin in all browsers. */
70
+ }
71
+
72
+ /*
73
+ Text-level semantics
74
+ ====================
75
+ */
76
+
77
+ /**
78
+ Add the correct font weight in Chrome and Safari.
79
+ */
80
+
81
+ b,
82
+ strong {
83
+ font-weight: bolder;
84
+ }
85
+
86
+ /**
87
+ 1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
88
+ 2. Correct the odd 'em' font sizing in all browsers.
89
+ */
90
+
91
+ code,
92
+ kbd,
93
+ samp,
94
+ pre {
95
+ font-family:
96
+ ui-monospace,
97
+ SFMono-Regular,
98
+ Consolas,
99
+ 'Liberation Mono',
100
+ Menlo,
101
+ monospace; /* 1 */
102
+ font-size: 1em; /* 2 */
103
+ }
104
+
105
+ /**
106
+ Add the correct font size in all browsers.
107
+ */
108
+
109
+ small {
110
+ font-size: 80%;
111
+ }
112
+
113
+ /**
114
+ Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
115
+ */
116
+
117
+ sub,
118
+ sup {
119
+ font-size: 75%;
120
+ line-height: 0;
121
+ position: relative;
122
+ vertical-align: baseline;
123
+ }
124
+
125
+ sub {
126
+ bottom: -0.25em;
127
+ }
128
+
129
+ sup {
130
+ top: -0.5em;
131
+ }
132
+
133
+ /*
134
+ Tabular data
135
+ ============
136
+ */
137
+
138
+ /**
139
+ Correct table border color inheritance in Chrome and Safari. (https://issues.chromium.org/issues/40615503, https://bugs.webkit.org/show_bug.cgi?id=195016)
140
+ */
141
+
142
+ table {
143
+ border-color: currentcolor;
144
+ }
145
+
146
+ /*
147
+ Forms
148
+ =====
149
+ */
150
+
151
+ /**
152
+ 1. Change the font styles in all browsers.
153
+ 2. Remove the margin in Firefox and Safari.
154
+ */
155
+
156
+ button,
157
+ input,
158
+ optgroup,
159
+ select,
160
+ textarea {
161
+ font-family: inherit; /* 1 */
162
+ font-size: 100%; /* 1 */
163
+ line-height: 1.15; /* 1 */
164
+ margin: 0; /* 2 */
165
+ }
166
+
167
+ /**
168
+ Correct the inability to style clickable types in iOS and Safari.
169
+ */
170
+
171
+ button,
172
+ [type='button'],
173
+ [type='reset'],
174
+ [type='submit'] {
175
+ -webkit-appearance: button;
176
+ }
177
+
178
+ /**
179
+ Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
180
+ */
181
+
182
+ legend {
183
+ padding: 0;
184
+ }
185
+
186
+ /**
187
+ Add the correct vertical alignment in Chrome and Firefox.
188
+ */
189
+
190
+ progress {
191
+ vertical-align: baseline;
192
+ }
193
+
194
+ /**
195
+ Correct the cursor style of increment and decrement buttons in Safari.
196
+ */
197
+
198
+ ::-webkit-inner-spin-button,
199
+ ::-webkit-outer-spin-button {
200
+ height: auto;
201
+ }
202
+
203
+ /**
204
+ 1. Correct the odd appearance in Chrome and Safari.
205
+ 2. Correct the outline style in Safari.
206
+ */
207
+
208
+ [type='search'] {
209
+ -webkit-appearance: textfield; /* 1 */
210
+ outline-offset: -2px; /* 2 */
211
+ }
212
+
213
+ /**
214
+ Remove the inner padding in Chrome and Safari on macOS.
215
+ */
216
+
217
+ ::-webkit-search-decoration {
218
+ -webkit-appearance: none;
219
+ }
220
+
221
+ /**
222
+ 1. Correct the inability to style clickable types in iOS and Safari.
223
+ 2. Change font properties to 'inherit' in Safari.
224
+ */
225
+
226
+ ::-webkit-file-upload-button {
227
+ -webkit-appearance: button; /* 1 */
228
+ font: inherit; /* 2 */
229
+ }
230
+
231
+ /*
232
+ Interactive
233
+ ===========
234
+ */
235
+
236
+ /*
237
+ Add the correct display in Chrome and Safari.
238
+ */
239
+
240
+ summary {
241
+ display: list-item;
242
+ }
@@ -0,0 +1,80 @@
1
+ main {
2
+ padding-top: 1rem;
3
+ padding-right: 1rem;
4
+ padding-bottom: 1rem;
5
+ padding-left: calc(1rem + var(--sidebar-width));
6
+ }
7
+
8
+ #sidebar {
9
+ border-right: 1px solid var(--border-color);
10
+ height: 100%;
11
+ margin: 0;
12
+ overflow: auto;
13
+ padding: 1rem;
14
+ position: fixed;
15
+ width: var(--sidebar-width);
16
+
17
+ h1 {
18
+ margin-top: 0;
19
+
20
+ a {
21
+ color: var(--text-color);
22
+ text-decoration: none;
23
+
24
+ &:hover {
25
+ text-decoration: underline;
26
+ }
27
+ }
28
+ }
29
+
30
+ nav {
31
+ h4 {
32
+ margin-top: 0.5rem;
33
+ margin-bottom: 0.25rem;
34
+ }
35
+
36
+ a {
37
+ border-radius: .375rem;
38
+ color: var(--text-color);
39
+ display: block;
40
+ font-weight: 500;
41
+ padding: 0.5rem;
42
+ text-decoration: none;
43
+
44
+ margin-top: 0.1rem;
45
+ margin-bottom: 0.1rem;
46
+
47
+ &:hover {
48
+ background-color: rgb(243 244 246);
49
+ }
50
+
51
+ &.active {
52
+ background-color: rgb(243 244 246);
53
+ font-weight: 600;
54
+ }
55
+ }
56
+ }
57
+
58
+ footer {
59
+ border-top: 1px solid var(--border-color);
60
+ padding-top: 1rem;
61
+ margin-top: 1rem;
62
+
63
+ a {
64
+ color: rgb(75 85 99);
65
+ display: flex;
66
+ align-items: center;
67
+ gap: 0.25rem;
68
+ padding: 0.5rem;
69
+ text-decoration: none;
70
+
71
+ svg {
72
+ display: inline-block;
73
+ }
74
+ }
75
+
76
+ &:hover {
77
+ color: var(--primary-color);
78
+ }
79
+ }
80
+ }
@@ -0,0 +1,56 @@
1
+ .table-scroll {
2
+ border-radius: 6px;
3
+ border: 1px solid var(--border-color);
4
+ overflow-x: auto;
5
+ position: relative;
6
+ }
7
+
8
+ table {
9
+ border-collapse: collapse;
10
+ min-width: 100%;
11
+
12
+ th {
13
+ background-color: var(--background-color);
14
+ border-bottom: 1px solid var(--border-color);
15
+ text-align: left;
16
+ padding-bottom: 0.75rem;
17
+ padding-top: 0.75rem;
18
+ padding-right: 0.875rem;
19
+ padding-left: 0.875rem;
20
+
21
+ a {
22
+ color: rgb(17 24 39);
23
+ text-decoration: none;
24
+ }
25
+
26
+ svg {
27
+ display: inline-block;
28
+ vertical-align: middle;
29
+ }
30
+
31
+ &.label {
32
+ background-color: var(--background-color);
33
+ border-right: 1px solid var(--border-color);
34
+ width: 16rem;
35
+ }
36
+ }
37
+
38
+ td {
39
+ padding-bottom: 0.75rem;
40
+ padding-top: 0.75rem;
41
+ padding-right: 0.875rem;
42
+ padding-left: 0.875rem;
43
+
44
+ a {
45
+ font-weight: 500;
46
+ }
47
+ }
48
+
49
+ tr {
50
+ border-bottom: 1px solid var(--border-color);
51
+
52
+ &:last-child {
53
+ border-bottom: none;
54
+ }
55
+ }
56
+ }