django-unfold 0.43.0__py3-none-any.whl → 0.45.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. {django_unfold-0.43.0.dist-info → django_unfold-0.45.0.dist-info}/METADATA +5 -3
  2. {django_unfold-0.43.0.dist-info → django_unfold-0.45.0.dist-info}/RECORD +129 -117
  3. {django_unfold-0.43.0.dist-info → django_unfold-0.45.0.dist-info}/WHEEL +1 -1
  4. unfold/contrib/filters/admin.py +5 -5
  5. unfold/contrib/filters/templates/unfold/filters/filters_date_range.html +1 -1
  6. unfold/contrib/filters/templates/unfold/filters/filters_datetime_range.html +1 -1
  7. unfold/contrib/filters/templates/unfold/filters/filters_numeric_range.html +1 -1
  8. unfold/contrib/filters/templates/unfold/filters/filters_numeric_single.html +1 -1
  9. unfold/contrib/filters/templates/unfold/filters/filters_numeric_slider.html +3 -3
  10. unfold/contrib/forms/templates/unfold/forms/array.html +3 -3
  11. unfold/contrib/forms/templates/unfold/forms/helpers/toolbar.html +25 -25
  12. unfold/contrib/forms/widgets.py +5 -5
  13. unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage.html +1 -1
  14. unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_group.html +2 -2
  15. unfold/contrib/guardian/templates/admin/guardian/model/obj_perms_manage_user.html +2 -2
  16. unfold/contrib/guardian/templates/unfold/guardian/group_form.html +8 -8
  17. unfold/contrib/guardian/templates/unfold/guardian/user_form.html +8 -8
  18. unfold/contrib/import_export/templates/admin/import_export/change_form.html +1 -1
  19. unfold/contrib/import_export/templates/admin/import_export/export.html +4 -4
  20. unfold/contrib/import_export/templates/admin/import_export/import_confirm.html +4 -4
  21. unfold/contrib/import_export/templates/admin/import_export/import_errors.html +2 -2
  22. unfold/contrib/import_export/templates/admin/import_export/import_form.html +2 -2
  23. unfold/contrib/import_export/templates/admin/import_export/import_preview.html +5 -5
  24. unfold/contrib/import_export/templates/admin/import_export/import_validation.html +8 -8
  25. unfold/contrib/simple_history/templates/simple_history/object_history.html +2 -2
  26. unfold/contrib/simple_history/templates/simple_history/object_history_form.html +1 -1
  27. unfold/contrib/simple_history/templates/simple_history/object_history_list.html +9 -9
  28. unfold/contrib/simple_history/templates/simple_history/submit_line.html +4 -4
  29. unfold/forms.py +15 -2
  30. unfold/settings.py +20 -7
  31. unfold/sites.py +23 -8
  32. unfold/static/admin/js/inlines.js +5 -3
  33. unfold/static/unfold/css/styles.css +1 -1
  34. unfold/static/unfold/js/alpine.resize.js +1 -0
  35. unfold/static/unfold/js/app.js +51 -70
  36. unfold/static/unfold/js/htmx.js +1 -1
  37. unfold/styles.css +75 -71
  38. unfold/templates/admin/actions.html +19 -17
  39. unfold/templates/admin/app_list.html +3 -3
  40. unfold/templates/admin/auth/user/add_form.html +1 -1
  41. unfold/templates/admin/auth/user/change_password.html +2 -2
  42. unfold/templates/admin/base.html +1 -1
  43. unfold/templates/admin/change_list.html +24 -30
  44. unfold/templates/admin/change_list_results.html +40 -6
  45. unfold/templates/admin/date_hierarchy.html +1 -1
  46. unfold/templates/admin/delete_confirmation.html +7 -7
  47. unfold/templates/admin/delete_selected_confirmation.html +7 -7
  48. unfold/templates/admin/edit_inline/stacked.html +4 -4
  49. unfold/templates/admin/edit_inline/tabular.html +8 -151
  50. unfold/templates/admin/filter.html +7 -7
  51. unfold/templates/admin/includes/fieldset.html +2 -2
  52. unfold/templates/admin/includes/object_delete_summary.html +1 -1
  53. unfold/templates/admin/login.html +15 -13
  54. unfold/templates/admin/nav_sidebar.html +1 -8
  55. unfold/templates/admin/object_history.html +7 -7
  56. unfold/templates/admin/pagination.html +36 -30
  57. unfold/templates/admin/search_form.html +11 -9
  58. unfold/templates/admin/submit_line.html +11 -11
  59. unfold/templates/auth/widgets/read_only_password_hash.html +1 -1
  60. unfold/templates/registration/logged_out.html +3 -3
  61. unfold/templates/registration/password_change_done.html +1 -1
  62. unfold/templates/registration/password_change_form.html +1 -1
  63. unfold/templates/unfold/components/button.html +1 -1
  64. unfold/templates/unfold/components/card.html +4 -4
  65. unfold/templates/unfold/components/chart/cohort.html +1 -1
  66. unfold/templates/unfold/components/navigation.html +2 -2
  67. unfold/templates/unfold/components/separator.html +1 -1
  68. unfold/templates/unfold/components/table.html +6 -6
  69. unfold/templates/unfold/components/tracker.html +1 -1
  70. unfold/templates/unfold/helpers/account_links.html +6 -6
  71. unfold/templates/unfold/helpers/actions_row.html +5 -5
  72. unfold/templates/unfold/helpers/add_link.html +1 -1
  73. unfold/templates/unfold/helpers/app_list.html +10 -10
  74. unfold/templates/unfold/helpers/app_list_default.html +10 -10
  75. unfold/templates/unfold/helpers/boolean.html +1 -1
  76. unfold/templates/unfold/helpers/breadcrumb_item.html +1 -1
  77. unfold/templates/unfold/helpers/change_list_actions.html +13 -0
  78. unfold/templates/unfold/helpers/change_list_filter.html +31 -0
  79. unfold/templates/unfold/helpers/change_list_filter_actions.html +23 -0
  80. unfold/templates/unfold/helpers/delete_submit_line.html +2 -2
  81. unfold/templates/unfold/helpers/display_header.html +3 -3
  82. unfold/templates/unfold/helpers/edit_inline/tabular_delete.html +13 -0
  83. unfold/templates/unfold/helpers/edit_inline/tabular_error.html +8 -0
  84. unfold/templates/unfold/helpers/edit_inline/tabular_field.html +25 -0
  85. unfold/templates/unfold/helpers/edit_inline/tabular_heading.html +25 -0
  86. unfold/templates/unfold/helpers/edit_inline/tabular_row.html +27 -0
  87. unfold/templates/unfold/helpers/edit_inline/tabular_title.html +49 -0
  88. unfold/templates/unfold/helpers/field_readonly.html +1 -1
  89. unfold/templates/unfold/helpers/field_readonly_value.html +1 -1
  90. unfold/templates/unfold/helpers/fieldset_row.html +5 -73
  91. unfold/templates/unfold/helpers/fieldset_row_checkbox.html +45 -0
  92. unfold/templates/unfold/helpers/fieldset_row_field.html +21 -0
  93. unfold/templates/unfold/helpers/fieldsets_tabs.html +2 -2
  94. unfold/templates/unfold/helpers/header.html +1 -1
  95. unfold/templates/unfold/helpers/history.html +4 -4
  96. unfold/templates/unfold/helpers/label.html +1 -1
  97. unfold/templates/unfold/helpers/language_switch.html +3 -3
  98. unfold/templates/unfold/helpers/messages/debug.html +1 -1
  99. unfold/templates/unfold/helpers/messages/error.html +1 -1
  100. unfold/templates/unfold/helpers/messages/errornote.html +1 -1
  101. unfold/templates/unfold/helpers/messages/info.html +1 -1
  102. unfold/templates/unfold/helpers/messages/success.html +1 -1
  103. unfold/templates/unfold/helpers/messages/warning.html +1 -1
  104. unfold/templates/unfold/helpers/navigation.html +3 -11
  105. unfold/templates/unfold/helpers/navigation_header.html +13 -0
  106. unfold/templates/unfold/helpers/pagination_ellipsis.html +1 -1
  107. unfold/templates/unfold/helpers/search.html +5 -5
  108. unfold/templates/unfold/helpers/search_results.html +2 -2
  109. unfold/templates/unfold/helpers/site_icon.html +7 -5
  110. unfold/templates/unfold/helpers/site_logo.html +1 -1
  111. unfold/templates/unfold/helpers/submit.html +1 -1
  112. unfold/templates/unfold/helpers/tab_action.html +2 -2
  113. unfold/templates/unfold/helpers/tab_list.html +9 -9
  114. unfold/templates/unfold/helpers/theme_switch.html +5 -5
  115. unfold/templates/unfold/helpers/userlinks.html +4 -0
  116. unfold/templates/unfold/helpers/welcomemsg.html +7 -3
  117. unfold/templates/unfold/layouts/base_simple.html +2 -2
  118. unfold/templates/unfold/layouts/skeleton.html +11 -5
  119. unfold/templates/unfold/widgets/clearable_file_input.html +6 -6
  120. unfold/templates/unfold/widgets/clearable_file_input_small.html +7 -7
  121. unfold/templates/unfold/widgets/foreign_key_raw_id.html +1 -1
  122. unfold/templates/unfold/widgets/radio.html +1 -1
  123. unfold/templates/unfold/widgets/range.html +1 -1
  124. unfold/templates/unfold/widgets/related_widget_wrapper.html +4 -4
  125. unfold/templates/unfold/widgets/textarea_expandable.html +1 -1
  126. unfold/templatetags/unfold.py +104 -0
  127. unfold/templatetags/unfold_list.py +9 -4
  128. unfold/widgets.py +31 -28
  129. unfold/templates/unfold/change_list_filter.html +0 -57
  130. {django_unfold-0.43.0.dist-info → django_unfold-0.45.0.dist-info}/LICENSE.md +0 -0
unfold/styles.css CHANGED
@@ -4,19 +4,6 @@
4
4
 
5
5
  @tailwind utilities;
6
6
 
7
- html {
8
- --color-primary-50: theme("colors.purple.50");
9
- --color-primary-100: theme("colors.purple.100");
10
- --color-primary-200: theme("colors.purple.200");
11
- --color-primary-300: theme("colors.purple.300");
12
- --color-primary-400: theme("colors.purple.400");
13
- --color-primary-500: theme("colors.purple.500");
14
- --color-primary-600: theme("colors.purple.600");
15
- --color-primary-700: theme("colors.purple.700");
16
- --color-primary-800: theme("colors.purple.800");
17
- --color-primary-900: theme("colors.purple.900");
18
- --color-primary-950: theme("colors.purple.950");
19
- }
20
7
 
21
8
  /*******************************************************
22
9
  Classes
@@ -75,6 +62,13 @@ html {
75
62
  font-size: 18px;
76
63
  }
77
64
 
65
+ /*******************************************************
66
+ Search
67
+ *******************************************************/
68
+ input[type="search"]::-webkit-search-cancel-button {
69
+ @apply z-10 dark:invert;
70
+ }
71
+
78
72
  /*******************************************************
79
73
  Select
80
74
  *******************************************************/
@@ -85,6 +79,10 @@ select:not([class*="bg-none"]):not([multiple]) {
85
79
  background-size: 1.125rem 1.125rem;
86
80
  }
87
81
 
82
+ #changelist-actions select:not([class*="bg-none"]):not([multiple]) {
83
+ background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3e%3cpath fill='#ffffff' d='M24 31.4 11.3 18.7l2.85-2.8L24 25.8l9.85-9.85 2.85 2.8Z'/%3e%3c/svg%3e");
84
+ }
85
+
88
86
  select:after {
89
87
  content: "";
90
88
  display: block;
@@ -94,13 +92,14 @@ select:after {
94
92
  Table
95
93
  *******************************************************/
96
94
  table select {
97
- @apply appearance-none bg-no-repeat border block cursor-pointer font-medium px-3 py-2 pr-5 rounded-md shadow-sm text-gray-500;
95
+ @apply appearance-none bg-no-repeat border border-base-200 block cursor-pointer font-medium px-3 py-2 pr-5 rounded shadow-sm text-base-500;
98
96
 
99
97
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="rgb(156, 163, 175)"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M7 10l5 5 5-5H7z"/></svg>');
100
98
  background-size: 1.125rem 1.125rem;
101
99
  background-position: right 0.5rem center;
102
100
  }
103
101
 
102
+
104
103
  table select:focus {
105
104
  @apply border-primary-600;
106
105
  }
@@ -118,15 +117,15 @@ table tr.selected th {
118
117
  }
119
118
 
120
119
  .datetimeshortcuts a {
121
- @apply text-0 text-gray-400 transition hover:text-gray-700;
120
+ @apply text-0 text-base-400 transition hover:text-base-700;
122
121
  }
123
122
 
124
123
  .datetimeshortcuts a:first-child {
125
- @apply hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-200;
124
+ @apply hover:text-base-700 dark:text-base-500 dark:hover:text-base-200;
126
125
  }
127
126
 
128
127
  .datetimeshortcuts a:first-child:after {
129
- @apply border-l flex h-9 items-center justify-center leading-none material-symbols-outlined py-2 text-base text-center w-9 hover:text-gray-700 dark:border-gray-700 dark:hover:text-white;
128
+ @apply border-l border-base-200 flex h-9 items-center justify-center leading-none material-symbols-outlined py-2 text-base text-center w-9 hover:text-base-700 dark:border-base-700 dark:hover:text-white;
130
129
  content: "timer";
131
130
  }
132
131
 
@@ -135,11 +134,11 @@ table tr.selected th {
135
134
  }
136
135
 
137
136
  .date-icon {
138
- @apply block h-9 text-gray-400 transition-all w-9 hover:text-gray-700 dark:text-gray-500 dark:hover:text-white;
137
+ @apply block h-9 text-base-400 transition-all w-9 hover:text-base-700 dark:text-base-500 dark:hover:text-white;
139
138
  }
140
139
 
141
140
  .date-icon:after {
142
- @apply border-l h-9 items-center justify-center leading-none material-symbols-outlined py-2 text-base text-center w-9 hover:text-gray-700 dark:border-gray-700;
141
+ @apply border-l border-base-200 h-9 items-center justify-center leading-none material-symbols-outlined py-2 text-base text-center w-9 hover:text-base-700 dark:border-base-700;
143
142
  content: "edit";
144
143
  }
145
144
 
@@ -148,11 +147,11 @@ table tr.selected th {
148
147
  }
149
148
 
150
149
  .clock-icon {
151
- @apply block h-9 ml-2 w-9 hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-200;
150
+ @apply block h-9 ml-2 w-9 hover:text-base-700 dark:text-base-500 dark:hover:text-base-200;
152
151
  }
153
152
 
154
153
  .clock-icon:after {
155
- @apply border-l h-9 items-center justify-center material-symbols-outlined py-2 text-base text-center w-9 hover:text-gray-700 dark:border-gray-700 dark:hover:text-white;
154
+ @apply border-l border-base-200 h-9 items-center justify-center material-symbols-outlined py-2 text-base text-center w-9 hover:text-base-700 dark:border-base-700 dark:hover:text-white;
156
155
  content: "edit";
157
156
  }
158
157
 
@@ -161,12 +160,12 @@ table tr.selected th {
161
160
  }
162
161
 
163
162
  .timezonewarning {
164
- @apply absolute block items-center right-20 top-2.5 text-gray-500 truncate;
163
+ @apply absolute block items-center right-20 top-2.5 text-base-500 truncate;
165
164
  font-size: 0;
166
165
  }
167
166
 
168
167
  .timezonewarning:hover {
169
- @apply bg-white bottom-px leading-9 left-px right-px px-3 rounded-md text-xs top-px dark:bg-gray-900;
168
+ @apply bg-white bottom-px leading-9 left-px right-px px-3 rounded text-xs top-px dark:bg-base-900;
170
169
  }
171
170
 
172
171
  .timezonewarning:hover:before {
@@ -174,7 +173,7 @@ table tr.selected th {
174
173
  }
175
174
 
176
175
  .timezonewarning:before {
177
- @apply block cursor-pointer items-center justify-center material-symbols-outlined text-base text-center text-red-600 dark:border-gray-700;
176
+ @apply block border-base-200 cursor-pointer items-center justify-center material-symbols-outlined text-base text-center text-red-600 dark:border-base-700;
178
177
  content: "warning";
179
178
  }
180
179
 
@@ -186,37 +185,38 @@ table tr.selected th {
186
185
  }
187
186
 
188
187
  .selector select {
189
- @apply bg-none flex-grow w-full dark:bg-gray-900;
188
+ @apply bg-none flex-grow w-full dark:bg-base-900;
190
189
  }
191
190
 
192
191
  .selector option {
193
- @apply px-3 text-gray-500 text-sm truncate dark:text-gray-300;
192
+ @apply px-3 text-base-500 text-sm truncate dark:text-base-300;
194
193
  }
195
194
 
196
195
  .selector .list-footer-display {
197
- @apply border-t py-2 text-center text-sm dark:border-gray-700;
196
+ @apply border-t border-base-200 py-2 text-center text-sm dark:border-base-700;
198
197
  }
199
198
 
200
199
  .selector-chosen,
201
200
  .selector-available {
202
- @apply border flex flex-col flex-grow rounded-md self-stretch shadow-sm md:w-72 lg:w-96 dark:border-gray-700;
201
+ @apply border border-base-200 flex flex-col flex-grow rounded self-stretch shadow-sm md:w-72 lg:w-96 dark:border-base-700;
203
202
  }
204
203
 
205
204
  .selector-chosen h2,
206
205
  .selector-available h2 {
207
- @apply border-b mb-3 py-2 px-3 text-sm text-gray-500 dark:border-gray-700 dark:text-gray-200;
206
+ @apply border-b border-base-200 mb-3 py-2 px-3 text-sm text-base-500 dark:border-base-700 dark:text-base-200;
208
207
  }
209
208
 
210
209
  .selector-filter {
211
210
  @apply flex;
212
211
  }
212
+
213
213
  .selector-filter input {
214
- @apply bg-gray-100 block flex-grow font-medium mb-3 mx-3 px-3 py-2 rounded-md text-gray-500 text-sm focus:outline-none dark:bg-gray-800 dark:text-gray-300;
214
+ @apply bg-base-100 block flex-grow font-medium mb-3 mx-3 px-3 py-2 rounded text-base-500 text-sm focus:outline-none dark:bg-base-800 dark:text-base-300;
215
215
  }
216
216
 
217
217
  .selector-chooseall,
218
218
  .selector-clearall {
219
- @apply block border-t py-2 text-center text-sm text-primary-500 dark:border-gray-700;
219
+ @apply block border-t border-base-200 py-2 text-center text-sm text-primary-500 dark:border-base-700;
220
220
  }
221
221
 
222
222
  .selector-clearall {
@@ -233,7 +233,7 @@ table tr.selected th {
233
233
 
234
234
  .selector-add:after,
235
235
  .selector-remove:after {
236
- @apply inline-block material-symbols-outlined text-gray-400 w-5;
236
+ @apply inline-block material-symbols-outlined text-base-400 w-5;
237
237
  }
238
238
 
239
239
  .selector-add:after {
@@ -259,12 +259,16 @@ table tr.selected th {
259
259
  @apply hidden;
260
260
  }
261
261
 
262
+ .tabular-table .template tr {
263
+ @apply border-t border-base-200 dark:border-base-800;
264
+ }
265
+
262
266
  .add-row {
263
- @apply align-middle bg-gray-50 px-3 py-5 font-normal text-right dark:bg-white/[.02];
267
+ @apply align-middle bg-base-50 px-3 py-5 font-normal text-right dark:bg-white/[.02];
264
268
  }
265
269
 
266
270
  [data-inline-type="stacked"] .add-row {
267
- @apply border-t border-gray-200 overflow-hidden dark:border-gray-800;
271
+ @apply border-t border-base-200 overflow-hidden dark:border-base-800;
268
272
  }
269
273
 
270
274
  .add-row td {
@@ -272,7 +276,7 @@ table tr.selected th {
272
276
  }
273
277
 
274
278
  .add-row a {
275
- @apply bg-white border block font-medium px-3 py-2 rounded-md text-center hover:text-gray-700 lg:float-right dark:bg-gray-900 dark:border-gray-700 dark:hover:text-gray-200;
279
+ @apply bg-white border border-base-200 block font-medium px-3 py-2 rounded text-center hover:text-base-700 lg:float-right dark:bg-base-900 dark:border-base-700 dark:hover:text-base-200;
276
280
  }
277
281
 
278
282
  .inline-deletelink {
@@ -291,7 +295,7 @@ h3 span:nth-child(3) {
291
295
  Autocomplete
292
296
  *******************************************************/
293
297
  .select2.select2-container {
294
- @apply bg-white border max-w-2xl !min-h-9.5 relative rounded-md shadow-sm !w-full dark:bg-gray-900 dark:border-gray-700;
298
+ @apply bg-white border border-base-200 max-w-2xl !min-h-9.5 relative rounded shadow-sm !w-full dark:bg-base-900 dark:border-base-700;
295
299
  }
296
300
 
297
301
  .errors .select2.select2-container {
@@ -306,7 +310,7 @@ h3 span:nth-child(3) {
306
310
  .select2-container.select2-container--admin-autocomplete
307
311
  .select2-selection--single
308
312
  .select2-selection__rendered {
309
- @apply font-medium h-9 px-3 py-2 text-gray-500 text-sm dark:text-gray-300;
313
+ @apply font-medium h-9 px-3 py-2 text-base-500 text-sm dark:text-base-300;
310
314
  }
311
315
 
312
316
  .select2-container.select2-container--admin-autocomplete
@@ -324,7 +328,7 @@ h3 span:nth-child(3) {
324
328
  .select2-container.select2-container--admin-autocomplete
325
329
  .select2-selection--single
326
330
  .select2-selection__clear:after {
327
- @apply material-symbols-outlined text-gray-500;
331
+ @apply material-symbols-outlined text-base-500;
328
332
  content: "close";
329
333
  font-size: 14px;
330
334
  }
@@ -338,7 +342,7 @@ h3 span:nth-child(3) {
338
342
  .select2-container.select2-container--admin-autocomplete
339
343
  .select2-selection--single
340
344
  .select2-selection__arrow:after {
341
- @apply left-0 leading-none m-0 material-symbols-outlined text-gray-500 text-lg;
345
+ @apply left-0 leading-none m-0 material-symbols-outlined text-base-500 text-lg;
342
346
  content: "expand_more";
343
347
  }
344
348
 
@@ -357,7 +361,7 @@ h3 span:nth-child(3) {
357
361
  .select2-container.select2-container--admin-autocomplete
358
362
  .select2-search--dropdown
359
363
  .select2-search__field {
360
- @apply bg-gray-50 border border-gray-200 border-solid flex-grow font-medium mx-0 outline-none px-3 py-2 rounded-md shadow-sm text-gray-500 text-sm w-full dark:bg-gray-800 dark:border-gray-800 dark:text-gray-300;
364
+ @apply bg-base-50 border border-base-200 border-solid flex-grow font-medium mx-0 outline-none px-3 py-2 rounded shadow-sm text-base-500 text-sm w-full dark:bg-base-800 dark:border-base-800 dark:text-base-300;
361
365
  }
362
366
 
363
367
  .select2-container.select2-container--admin-autocomplete.select2-container--open.select2-container--above {
@@ -369,20 +373,20 @@ h3 span:nth-child(3) {
369
373
  }
370
374
 
371
375
  .select2-container.select2-container--open .select2-dropdown {
372
- @apply border-primary-600 ring ring-primary-300 pb-2 shadow-sm dark:bg-gray-900 dark:border-primary-700 after:block after:bg-white after:absolute after:border-l after:border-l-primary-600 after:border-r after:border-r-primary-600 after:h-1 after:-left-px after:-right-px after:-mt-1 after:top-0 dark:after:bg-gray-900 dark:after:border-l-primary-700 dark:after:border-r-primary-700 dark:ring-primary-700 dark:ring-opacity-50;
376
+ @apply border-primary-600 ring ring-primary-300 pb-2 shadow-sm dark:bg-base-900 dark:border-primary-700 after:block after:bg-white after:absolute after:border-l after:border-l-primary-600 after:border-r after:border-r-primary-600 after:h-1 after:-left-px after:-right-px after:-mt-1 after:top-0 dark:after:bg-base-900 dark:after:border-l-primary-700 dark:after:border-r-primary-700 dark:ring-primary-700 dark:ring-opacity-50;
373
377
  }
374
378
 
375
379
  .select2-container.select2-container--open .select2-dropdown--below {
376
- @apply rounded-t-none rounded-b-md;
380
+ @apply rounded-t-none rounded-b;
377
381
  }
378
382
 
379
383
  .select2-container.select2-container--open .select2-dropdown--above {
380
- @apply rounded-b-none rounded-t-md after:bottom-0 after:-mb-1 after:mt-0 after:top-auto;
384
+ @apply rounded-b-none rounded after:bottom-0 after:-mb-1 after:mt-0 after:top-auto;
381
385
  }
382
386
 
383
387
  .select2-container.select2-container--admin-autocomplete
384
388
  .select2-results__option {
385
- @apply block px-3 py-2 text-gray-500 text-sm transition-all dark:text-gray-300;
389
+ @apply block px-3 py-2 text-base-500 text-sm transition-all dark:text-base-300;
386
390
  }
387
391
 
388
392
  .select2-container.select2-container--admin-autocomplete
@@ -411,14 +415,14 @@ h3 span:nth-child(3) {
411
415
  .select2-container--admin-autocomplete
412
416
  .select2-selection--multiple
413
417
  li.select2-selection__choice {
414
- @apply bg-gray-100 block font-medium h-7 leading-7 m-0 mr-1 mb-1 px-2 shadow-inner text-sm text-gray-600 hover:text-gray-700 truncate dark:bg-gray-800 dark:text-gray-300 dark:hover:text-gray-200;
418
+ @apply bg-base-100 block font-medium h-7 leading-7 m-0 mr-1 mb-1 px-2 shadow-inner text-sm text-base-600 hover:text-base-700 truncate dark:bg-base-800 dark:text-base-300 dark:hover:text-base-200;
415
419
  }
416
420
 
417
421
  .select2-container--admin-autocomplete
418
422
  .select2-selection--multiple
419
423
  li.select2-selection__choice
420
424
  .select2-selection__choice__remove {
421
- @apply align-top text-0 hover:text-gray-600 dark:hover:text-gray-200;
425
+ @apply align-top text-0 hover:text-base-600 dark:hover:text-base-200;
422
426
  }
423
427
 
424
428
  .select2-container--admin-autocomplete
@@ -435,7 +439,7 @@ h3 span:nth-child(3) {
435
439
  .select2-selection--multiple
436
440
  li.select2-search--inline
437
441
  .select2-search__field {
438
- @apply m-0 h-7 text-gray-500 text-sm;
442
+ @apply m-0 h-7 text-base-500 text-sm;
439
443
  }
440
444
 
441
445
  .select2.select2-container--open {
@@ -480,11 +484,11 @@ fieldset details[open] > summary:after {
480
484
  *******************************************************/
481
485
  .calendarbox,
482
486
  .clockbox {
483
- @apply bg-white border rounded-md shadow-sm text-gray-500 text-sm w-80 z-50 dark:bg-gray-800 dark:border-gray-700 !fixed !left-1/2 !top-1/2 -translate-x-1/2 -translate-y-1/2;
487
+ @apply bg-white border border-base-200 rounded shadow-sm text-base-500 text-sm w-80 z-50 dark:bg-base-800 dark:border-base-700 !fixed !left-1/2 !top-1/2 -translate-x-1/2 -translate-y-1/2;
484
488
  }
485
489
 
486
490
  .calendar caption {
487
- @apply font-medium mb-3 py-3 text-gray-700 dark:text-gray-200;
491
+ @apply font-medium mb-3 py-3 text-base-700 dark:text-base-200;
488
492
  }
489
493
 
490
494
  .calendar table {
@@ -492,7 +496,7 @@ fieldset details[open] > summary:after {
492
496
  }
493
497
 
494
498
  .calendar table th {
495
- @apply font-medium text-center text-gray-700 text-xs dark:text-gray-200;
499
+ @apply font-medium text-center text-base-700 text-xs dark:text-base-200;
496
500
  }
497
501
 
498
502
  .calendar table td {
@@ -500,11 +504,11 @@ fieldset details[open] > summary:after {
500
504
  }
501
505
 
502
506
  .calendar table td a {
503
- @apply block flex h-8 items-center justify-center rounded-full transition-all w-8 dark:text-gray-300;
507
+ @apply block flex h-8 items-center justify-center rounded-full transition-all w-8 dark:text-base-300;
504
508
  }
505
509
 
506
510
  .calendar table td a:hover {
507
- @apply bg-gray-100 text-gray-700;
511
+ @apply bg-base-100 text-base-700;
508
512
  }
509
513
 
510
514
  .calendar table td.today a {
@@ -512,15 +516,15 @@ fieldset details[open] > summary:after {
512
516
  }
513
517
 
514
518
  .calendar-shortcuts {
515
- @apply flex flex-row justify-center mb-3 px-1 rounded-b-md text-0;
519
+ @apply flex flex-row justify-center mb-3 px-1 rounded-b text-0;
516
520
  }
517
521
 
518
522
  .calendar-shortcuts a {
519
- @apply border font-medium leading-none mx-1 px-2 py-2 rounded-md shadow-sm text-center text-gray-500 text-xs transition-all w-1/3 dark:border-gray-700 dark:hover:border-gray-600 dark:text-gray-300 dark:hover:text-gray-200;
523
+ @apply border border-base-200 font-medium leading-none mx-1 px-2 py-2 rounded shadow-sm text-center text-base-500 text-xs transition-all w-1/3 dark:border-base-700 dark:hover:border-base-600 dark:text-base-300 dark:hover:text-base-200;
520
524
  }
521
525
 
522
526
  .calendar-cancel {
523
- @apply block border-t py-2 text-center text-xs text-red-600 dark:border-gray-700 dark:text-red-500;
527
+ @apply block border-t border-base-200 py-2 text-center text-xs text-red-600 dark:border-base-700 dark:text-red-500;
524
528
  }
525
529
 
526
530
  .calendarnav-previous {
@@ -529,7 +533,7 @@ fieldset details[open] > summary:after {
529
533
 
530
534
  .calendarnav-next:after,
531
535
  .calendarnav-previous:after {
532
- @apply border flex h-7 items-center justify-center material-symbols-outlined rounded-full text-gray-400 transition-all w-7 hover:border-primary-600 hover:text-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:hover:border-gray-800;
536
+ @apply border border-base-200 flex h-7 items-center justify-center material-symbols-outlined rounded-full text-base-400 transition-all w-7 hover:border-primary-600 hover:text-primary-500 dark:bg-base-800 dark:border-base-700 dark:hover:border-base-800;
533
537
 
534
538
  content: "navigate_before";
535
539
  display: flex;
@@ -537,7 +541,7 @@ fieldset details[open] > summary:after {
537
541
 
538
542
  .calendarnav-next:hover:after,
539
543
  .calendarnav-previous:hover:after {
540
- @apply dark:border-gray-600 dark:text-gray-200;
544
+ @apply dark:border-base-600 dark:text-base-200;
541
545
  }
542
546
 
543
547
  .calendarnav-next {
@@ -553,14 +557,14 @@ fieldset details[open] > summary:after {
553
557
  Timepicker
554
558
  *******************************************************/
555
559
  .clockbox {
556
- @apply bg-white border rounded-md shadow-sm text-sm dark:bg-gray-800 dark:border-gray-700 z-50;
560
+ @apply bg-white border border-base-200 rounded shadow-sm text-sm dark:bg-base-800 dark:border-base-700 z-50;
557
561
  }
558
562
 
559
563
  .clockbox h2 {
560
- @apply font-medium px-3 py-2 text-gray-700 dark:text-gray-200;
564
+ @apply font-medium px-3 py-2 text-base-700 dark:text-base-200;
561
565
  }
562
566
  .clockbox .timelist {
563
- @apply pb-2 px-3 text-gray-500 dark:text-gray-300;
567
+ @apply pb-2 px-3 text-base-500 dark:text-base-300;
564
568
  }
565
569
 
566
570
  .clockbox .timelist li {
@@ -573,13 +577,13 @@ fieldset details[open] > summary:after {
573
577
  /*******************************************************
574
578
  Htmx
575
579
  *******************************************************/
576
- .htmx-swapping:before {
580
+ .htmx-indicator.htmx-swapping:before {
577
581
  @apply absolute bg-white bottom-0 left-0 opacity-80 transition-all right-0 top-0;
578
582
  content: "";
579
583
  }
580
584
 
581
- .htmx-swapping:after {
582
- @apply absolute animate-spin h-4 inset-1/2 material-symbols-outlined md-16 text-gray-400 w-4;
585
+ .htmx-indicator.htmx-swapping:after {
586
+ @apply absolute animate-spin h-4 inset-1/2 material-symbols-outlined md-16 text-base-400 w-4;
583
587
  content: "sync";
584
588
  }
585
589
 
@@ -587,7 +591,7 @@ fieldset details[open] > summary:after {
587
591
  Filters
588
592
  *******************************************************/
589
593
  #changelist-filter .admin-numeric-filter-slider .noUi-handle {
590
- @apply bg-white border border-gray-200 cursor-pointer h-4 -right-4 rounded-full shadow-sm w-4 dark:bg-gray-200 dark:border-gray-200;
594
+ @apply bg-white border border-base-200 cursor-pointer h-4 -right-4 rounded-full shadow-sm w-4 dark:bg-base-200 dark:border-base-200;
591
595
  }
592
596
 
593
597
  #changelist-filter .admin-numeric-filter-slider .noUi-handle-upper {
@@ -603,7 +607,7 @@ fieldset details[open] > summary:after {
603
607
  }
604
608
 
605
609
  #changelist-filter .admin-numeric-filter-slider.noUi-target {
606
- @apply bg-gray-200 border-0 h-1 shadow-none dark:bg-gray-600;
610
+ @apply bg-base-200 border-0 h-1 shadow-none dark:bg-base-600;
607
611
  }
608
612
 
609
613
  #changelist-filter .admin-numeric-filter-slider .noUi-connect {
@@ -611,14 +615,14 @@ fieldset details[open] > summary:after {
611
615
  }
612
616
 
613
617
  #changelist-filter .admin-numeric-filter-slider-tooltips {
614
- @apply flex flex-row font-medium mb-5 space-x-4 text-gray-500 text-sm;
618
+ @apply flex flex-row font-medium mb-5 space-x-4 text-base-500 text-sm;
615
619
  }
616
620
 
617
621
  /*******************************************************
618
622
  Trix
619
623
  *******************************************************/
620
624
  trix-toolbar[id^="trix-toolbar-"] {
621
- @apply sticky top-0 dark:bg-gray-900;
625
+ @apply sticky top-0 dark:bg-base-900;
622
626
  }
623
627
 
624
628
  .trix-active {
@@ -633,7 +637,7 @@ trix-toolbar[id^="trix-toolbar-"] {
633
637
  }
634
638
 
635
639
  .ui-tabs.ui-widget .ui-tabs-nav {
636
- @apply bg-gray-100 border-0 flex gap-2 m-0 mb-4 mr-auto p-1 rounded text-sm dark:bg-white/[.04] after:hidden;
640
+ @apply bg-base-100 border-0 flex gap-2 m-0 mb-4 mr-auto p-1 rounded text-sm dark:bg-white/[.04] after:hidden;
637
641
  }
638
642
 
639
643
  .ui-tabs.ui-widget .ui-tabs-nav li {
@@ -641,18 +645,18 @@ trix-toolbar[id^="trix-toolbar-"] {
641
645
  }
642
646
 
643
647
  .ui-tabs.ui-widget .ui-tabs-nav li a {
644
- @apply bg-transparent border-0 flex flex-row font-medium items-center m-0 px-2.5 py-1 rounded text-gray-400 text-sm hover:bg-gray-700/[.04] hover:text-gray-700 dark:hover:bg-white/[.04] dark:hover:text-white;
648
+ @apply bg-transparent border-0 flex flex-row font-medium items-center m-0 px-2.5 py-1 rounded text-base-400 text-sm hover:bg-base-700/[.04] hover:text-base-700 dark:hover:bg-white/[.04] dark:hover:text-white;
645
649
  }
646
650
 
647
651
  .ui-tabs.ui-widget .ui-tabs-nav li.ui-tabs-active a {
648
- @apply flex flex-row font-medium items-center px-2.5 py-1 rounded bg-white shadow-sm text-gray-700 hover:bg-white dark:bg-gray-900 dark:hover:bg-gray-900 dark:text-white;
652
+ @apply flex flex-row font-medium items-center px-2.5 py-1 rounded bg-white shadow-sm text-base-700 hover:bg-white dark:bg-base-900 dark:hover:bg-base-900 dark:text-white;
649
653
  }
650
654
 
651
655
  /*******************************************************
652
656
  Simplebar
653
657
  *******************************************************/
654
658
  .simplebar-track .simplebar-scrollbar::before {
655
- @apply bg-gray-900/80 dark:bg-gray-400/80;
659
+ @apply bg-base-900/80 dark:bg-base-400/80;
656
660
  }
657
661
 
658
662
  .simplebar-horizontal-scrollbar-top .simplebar-track.simplebar-horizontal {
@@ -1,8 +1,8 @@
1
1
  {% load i18n %}
2
2
 
3
- <div class="actions flex flex-col gap-3 order-last lg:order-none lg:flex-row lg:items-center">
3
+ <div id="changelist-actions" class="actions flex flex-col gap-3 text-white sm:flex-row sm:items-center lg:items-center {% if not cl.model_admin.list_fullwidth %}mx-auto{% endif %}" x-bind:style="'width: ' + changeListWidth + 'px'">
4
4
  {% block actions %}
5
- <div class="flex flex-col gap-2 lg:flex-row" x-data="{action: ''}">
5
+ <div class="flex flex-row gap-2 lg:flex-row" x-data="{action: ''}">
6
6
  {% block actions-form %}
7
7
  {% for field in action_form %}
8
8
  {% if field.label %}
@@ -19,7 +19,7 @@
19
19
  {% endblock %}
20
20
 
21
21
  {% block actions-submit %}
22
- <button type="submit" x-show="action" class="bg-primary-600 cursor-pointer flex font-medium items-center justify-center px-3 py-2 rounded-md text-sm text-white whitespace-nowrap" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">
22
+ <button type="submit" x-show="action" class="bg-primary-900 cursor-pointer flex font-medium items-center justify-center px-3 py-2 rounded text-sm text-white whitespace-nowrap" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">
23
23
  {% trans "Run" %}
24
24
  </button>
25
25
  {% endblock %}
@@ -27,28 +27,30 @@
27
27
 
28
28
  {% block actions-counter %}
29
29
  {% if actions_selection_counter %}
30
- <div class="bg-gray-100 flex flex-row gap-2 h-9.5 items-center px-3 rounded-md shadow-sm truncate dark:bg-white/[.04] lg:bg-transparent dark:lg:!bg-transparent lg:px-0 lg:shadow-none">
31
- <span class="action-counter text-sm" data-actions-icnt="{{ cl.result_list|length }}">
30
+ <div class="flex flex-grow flex-col sm:flex-row sm:items-center">
31
+ <span class="action-counter" data-actions-icnt="{{ cl.result_list|length }}">
32
32
  {{ selection_note }}
33
33
  </span>
34
34
 
35
35
  {% if cl.result_count != cl.result_list|length %}
36
- <span class="all hidden text-gray-500 text-sm">
36
+ <span class="all hidden">
37
37
  {{ selection_note_all }}
38
38
  </span>
39
39
 
40
40
  {% if not cl.model_admin.list_disable_select_all %}
41
- <span class="question hidden text-primary-600 text-sm dark:text-primary-500">
42
- <a href="#" title="{% translate "Click here to select the objects across all pages" %}">
43
- {% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}
44
- </a>
45
- </span>
46
-
47
- <span class="clear hidden text-sm text-red-600">
48
- <a href="#">
49
- {% translate "Clear selection" %}
50
- </a>
51
- </span>
41
+ <div class="mt-3 sm:ml-auto sm:mt-0">
42
+ <span class="question hidden">
43
+ <a href="#" class="bg-white/20 block border border-transparent font-medium px-3 py-2 rounded text-white transition-colors hover:bg-white/30" title="{% translate "Click here to select the objects across all pages" %}">
44
+ {% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}
45
+ </a>
46
+ </span>
47
+
48
+ <span class="clear hidden">
49
+ <a href="#" class="bg-white/20 block border border-transparent font-medium px-3 py-2 rounded text-white transition-colors hover:bg-white/30">
50
+ {% translate "Clear selection" %}
51
+ </a>
52
+ </span>
53
+ </div>
52
54
  {% endif %}
53
55
  {% endif %}
54
56
  </div>
@@ -15,19 +15,19 @@
15
15
  </h2>
16
16
  {% endif %}
17
17
 
18
- <ol>
18
+ <ol class="flex flex-col gap-1">
19
19
  {% for model in app.models %}
20
20
  {% if not model.hidden %}
21
21
  <li class="model-{{ model.object_name|lower }}{% if model.admin_url in request.path|urlencode %} current-model{% endif %}">
22
22
  {% if model.header %}
23
- <h3 class="font-medium my-3 text-gray-900 text-sm dark:text-gray-200">
23
+ <h3 class="font-medium my-2 text-base-900 text-sm dark:text-base-200">
24
24
  {{ model.header }}
25
25
  </h3>
26
26
  {% endif %}
27
27
 
28
28
  {% if model.admin_url %}
29
29
  <a href="{{ model.admin_url }}" id="link-{{ app.app_label }}-{{ model.object_name|lower }}"
30
- class="block -mx-3 px-3 py-3 rounded-md truncate hover:text-primary-600 dark:hover:text-primary-500 {% if model.admin_url in request.path|urlencode %}bg-gray-100 font-semibold text-primary-600 dark:bg-white/[.06] dark:text-primary-500{% endif %}">
30
+ class="flex items-center h-9.5 -mx-3 px-3 rounded truncate hover:text-primary-600 dark:hover:text-primary-500 {% if model.admin_url in request.path|urlencode %}bg-base-100 font-semibold text-primary-600 dark:bg-white/[.06] dark:text-primary-500{% endif %}">
31
31
  {{ model.name }}
32
32
  </a>
33
33
  {% else %}
@@ -2,7 +2,7 @@
2
2
  {% load i18n %}
3
3
 
4
4
  {% block form_top %}
5
- <p class="bg-blue-50 border-blue-200 mb-8 p-3 rounded-md text-blue-500 text-sm dark:bg-blue-500/20 dark:border-blue-500/10">
5
+ <p class="bg-blue-50 border-blue-200 mb-8 p-3 rounded text-blue-500 text-sm dark:bg-blue-500/20 dark:border-blue-500/10">
6
6
  {% if not is_popup %}
7
7
  {% translate 'First, enter a username and password. Then, you’ll be able to edit more user options.' %}
8
8
  {% else %}
@@ -44,14 +44,14 @@
44
44
  {% blocktranslate with username=original asvar message %}Enter a new password for the user <strong>{{ username }}</strong>.{% endblocktranslate %}
45
45
  {% include "unfold/helpers/messages/info.html" with message=message %}
46
46
 
47
- <fieldset class="border border-gray-200 mb-8 rounded-md pt-3 px-3 shadow-sm dark:border-gray-800">
47
+ <fieldset class="border border-base-200 mb-8 rounded pt-3 px-3 shadow-sm dark:border-base-800">
48
48
 
49
49
  {% include "unfold/helpers/field.html" with field=form.password1 %}
50
50
 
51
51
  {% include "unfold/helpers/field.html" with field=form.password2 %}
52
52
  </fieldset>
53
53
 
54
- <button type="submit" class="bg-primary-600 border border-transparent font-medium px-3 py-2 rounded-md text-sm text-white">
54
+ <button type="submit" class="bg-primary-600 border border-transparent font-medium px-3 py-2 rounded text-sm text-white">
55
55
  {% translate 'Change password' %}
56
56
  </button>
57
57
  </form>
@@ -10,7 +10,7 @@
10
10
  {% endblock %}
11
11
  {% endif %}
12
12
 
13
- <div id="main" class="flex-grow min-w-0">
13
+ <div id="main" class="flex-grow min-w-0" x-resize="mainWidth = $width">
14
14
  {% include "unfold/helpers/header.html" %}
15
15
 
16
16
  {% if not is_popup %}