madmin 1.2.10 → 2.0.0

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 (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 +0 -3
  42. data/app/views/madmin/fields/enum/_form.html.erb +1 -4
  43. data/app/views/madmin/fields/file/_form.html.erb +0 -3
  44. data/app/views/madmin/fields/float/_form.html.erb +0 -3
  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 +0 -3
  48. data/app/views/madmin/fields/integer/_index.html.erb +1 -5
  49. data/app/views/madmin/fields/json/_form.html.erb +0 -3
  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 +0 -3
  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 +0 -3
  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 +0 -3
  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: 1f28056e0049fbd6d19f4b686b9742d1a0d81e61bea220e0a815870be83fd426
4
- data.tar.gz: ccd99dd6809870a31934bc822a4b05a506b0485a42b87b031f2b96deeea9ade9
3
+ metadata.gz: cb075b59c9ecf34a7f4b939bb87a3e564fd984bb0d6866b13926d9873a335d3b
4
+ data.tar.gz: d6ec7fa589c2784e9c4a07d43b8cb5344e8637c7f7a3f53871cd17ecf1241061
5
5
  SHA512:
6
- metadata.gz: bcc1478dd032b27ef03c7707ff15bb390b44e452169404b936274971a68c72cbbd83bdcccab4498dd385f0a4c0f22d1481cbccf970596d7cc1ef44a3ccc255bf
7
- data.tar.gz: c55e2a66753ca675a7906a7c12114fdc956f68da3deb1119bd83761f47c3fd42396c658baab2c5a57b7c1d42047c7f0d34f95d29c1f99dc305c95d0b96ae73f9
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
+ }