django-unfold 0.43.0__py3-none-any.whl → 0.44.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.44.0.dist-info}/METADATA +1 -1
  2. {django_unfold-0.43.0.dist-info → django_unfold-0.44.0.dist-info}/RECORD +129 -117
  3. {django_unfold-0.43.0.dist-info → django_unfold-0.44.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 +13 -2
  30. unfold/settings.py +20 -7
  31. unfold/sites.py +23 -8
  32. unfold/static/admin/js/inlines.js +2 -2
  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 +52 -71
  36. unfold/static/unfold/js/htmx.js +1 -1
  37. unfold/styles.css +67 -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 +4 -4
  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.44.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
@@ -85,6 +72,10 @@ select:not([class*="bg-none"]):not([multiple]) {
85
72
  background-size: 1.125rem 1.125rem;
86
73
  }
87
74
 
75
+ #changelist-actions select:not([class*="bg-none"]):not([multiple]) {
76
+ 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");
77
+ }
78
+
88
79
  select:after {
89
80
  content: "";
90
81
  display: block;
@@ -94,13 +85,14 @@ select:after {
94
85
  Table
95
86
  *******************************************************/
96
87
  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;
88
+ @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
89
 
99
90
  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
91
  background-size: 1.125rem 1.125rem;
101
92
  background-position: right 0.5rem center;
102
93
  }
103
94
 
95
+
104
96
  table select:focus {
105
97
  @apply border-primary-600;
106
98
  }
@@ -118,15 +110,15 @@ table tr.selected th {
118
110
  }
119
111
 
120
112
  .datetimeshortcuts a {
121
- @apply text-0 text-gray-400 transition hover:text-gray-700;
113
+ @apply text-0 text-base-400 transition hover:text-base-700;
122
114
  }
123
115
 
124
116
  .datetimeshortcuts a:first-child {
125
- @apply hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-200;
117
+ @apply hover:text-base-700 dark:text-base-500 dark:hover:text-base-200;
126
118
  }
127
119
 
128
120
  .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;
121
+ @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
122
  content: "timer";
131
123
  }
132
124
 
@@ -135,11 +127,11 @@ table tr.selected th {
135
127
  }
136
128
 
137
129
  .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;
130
+ @apply block h-9 text-base-400 transition-all w-9 hover:text-base-700 dark:text-base-500 dark:hover:text-white;
139
131
  }
140
132
 
141
133
  .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;
134
+ @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
135
  content: "edit";
144
136
  }
145
137
 
@@ -148,11 +140,11 @@ table tr.selected th {
148
140
  }
149
141
 
150
142
  .clock-icon {
151
- @apply block h-9 ml-2 w-9 hover:text-gray-700 dark:text-gray-500 dark:hover:text-gray-200;
143
+ @apply block h-9 ml-2 w-9 hover:text-base-700 dark:text-base-500 dark:hover:text-base-200;
152
144
  }
153
145
 
154
146
  .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;
147
+ @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
148
  content: "edit";
157
149
  }
158
150
 
@@ -161,12 +153,12 @@ table tr.selected th {
161
153
  }
162
154
 
163
155
  .timezonewarning {
164
- @apply absolute block items-center right-20 top-2.5 text-gray-500 truncate;
156
+ @apply absolute block items-center right-20 top-2.5 text-base-500 truncate;
165
157
  font-size: 0;
166
158
  }
167
159
 
168
160
  .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;
161
+ @apply bg-white bottom-px leading-9 left-px right-px px-3 rounded text-xs top-px dark:bg-base-900;
170
162
  }
171
163
 
172
164
  .timezonewarning:hover:before {
@@ -174,7 +166,7 @@ table tr.selected th {
174
166
  }
175
167
 
176
168
  .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;
169
+ @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
170
  content: "warning";
179
171
  }
180
172
 
@@ -186,37 +178,37 @@ table tr.selected th {
186
178
  }
187
179
 
188
180
  .selector select {
189
- @apply bg-none flex-grow w-full dark:bg-gray-900;
181
+ @apply bg-none flex-grow w-full dark:bg-base-900;
190
182
  }
191
183
 
192
184
  .selector option {
193
- @apply px-3 text-gray-500 text-sm truncate dark:text-gray-300;
185
+ @apply px-3 text-base-500 text-sm truncate dark:text-base-300;
194
186
  }
195
187
 
196
188
  .selector .list-footer-display {
197
- @apply border-t py-2 text-center text-sm dark:border-gray-700;
189
+ @apply border-t border-base-200 py-2 text-center text-sm dark:border-base-700;
198
190
  }
199
191
 
200
192
  .selector-chosen,
201
193
  .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;
194
+ @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
195
  }
204
196
 
205
197
  .selector-chosen h2,
206
198
  .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;
199
+ @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
200
  }
209
201
 
210
202
  .selector-filter {
211
203
  @apply flex;
212
204
  }
213
205
  .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;
206
+ @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
207
  }
216
208
 
217
209
  .selector-chooseall,
218
210
  .selector-clearall {
219
- @apply block border-t py-2 text-center text-sm text-primary-500 dark:border-gray-700;
211
+ @apply block border-t border-base-200 py-2 text-center text-sm text-primary-500 dark:border-base-700;
220
212
  }
221
213
 
222
214
  .selector-clearall {
@@ -233,7 +225,7 @@ table tr.selected th {
233
225
 
234
226
  .selector-add:after,
235
227
  .selector-remove:after {
236
- @apply inline-block material-symbols-outlined text-gray-400 w-5;
228
+ @apply inline-block material-symbols-outlined text-base-400 w-5;
237
229
  }
238
230
 
239
231
  .selector-add:after {
@@ -259,12 +251,16 @@ table tr.selected th {
259
251
  @apply hidden;
260
252
  }
261
253
 
254
+ .tabular-table .template tr {
255
+ @apply border-t border-base-200 dark:border-base-800;
256
+ }
257
+
262
258
  .add-row {
263
- @apply align-middle bg-gray-50 px-3 py-5 font-normal text-right dark:bg-white/[.02];
259
+ @apply align-middle bg-base-50 px-3 py-5 font-normal text-right dark:bg-white/[.02];
264
260
  }
265
261
 
266
262
  [data-inline-type="stacked"] .add-row {
267
- @apply border-t border-gray-200 overflow-hidden dark:border-gray-800;
263
+ @apply border-t border-base-200 overflow-hidden dark:border-base-800;
268
264
  }
269
265
 
270
266
  .add-row td {
@@ -272,7 +268,7 @@ table tr.selected th {
272
268
  }
273
269
 
274
270
  .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;
271
+ @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
272
  }
277
273
 
278
274
  .inline-deletelink {
@@ -291,7 +287,7 @@ h3 span:nth-child(3) {
291
287
  Autocomplete
292
288
  *******************************************************/
293
289
  .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;
290
+ @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
291
  }
296
292
 
297
293
  .errors .select2.select2-container {
@@ -306,7 +302,7 @@ h3 span:nth-child(3) {
306
302
  .select2-container.select2-container--admin-autocomplete
307
303
  .select2-selection--single
308
304
  .select2-selection__rendered {
309
- @apply font-medium h-9 px-3 py-2 text-gray-500 text-sm dark:text-gray-300;
305
+ @apply font-medium h-9 px-3 py-2 text-base-500 text-sm dark:text-base-300;
310
306
  }
311
307
 
312
308
  .select2-container.select2-container--admin-autocomplete
@@ -324,7 +320,7 @@ h3 span:nth-child(3) {
324
320
  .select2-container.select2-container--admin-autocomplete
325
321
  .select2-selection--single
326
322
  .select2-selection__clear:after {
327
- @apply material-symbols-outlined text-gray-500;
323
+ @apply material-symbols-outlined text-base-500;
328
324
  content: "close";
329
325
  font-size: 14px;
330
326
  }
@@ -338,7 +334,7 @@ h3 span:nth-child(3) {
338
334
  .select2-container.select2-container--admin-autocomplete
339
335
  .select2-selection--single
340
336
  .select2-selection__arrow:after {
341
- @apply left-0 leading-none m-0 material-symbols-outlined text-gray-500 text-lg;
337
+ @apply left-0 leading-none m-0 material-symbols-outlined text-base-500 text-lg;
342
338
  content: "expand_more";
343
339
  }
344
340
 
@@ -357,7 +353,7 @@ h3 span:nth-child(3) {
357
353
  .select2-container.select2-container--admin-autocomplete
358
354
  .select2-search--dropdown
359
355
  .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;
356
+ @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
357
  }
362
358
 
363
359
  .select2-container.select2-container--admin-autocomplete.select2-container--open.select2-container--above {
@@ -369,20 +365,20 @@ h3 span:nth-child(3) {
369
365
  }
370
366
 
371
367
  .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;
368
+ @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
369
  }
374
370
 
375
371
  .select2-container.select2-container--open .select2-dropdown--below {
376
- @apply rounded-t-none rounded-b-md;
372
+ @apply rounded-t-none rounded-b;
377
373
  }
378
374
 
379
375
  .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;
376
+ @apply rounded-b-none rounded after:bottom-0 after:-mb-1 after:mt-0 after:top-auto;
381
377
  }
382
378
 
383
379
  .select2-container.select2-container--admin-autocomplete
384
380
  .select2-results__option {
385
- @apply block px-3 py-2 text-gray-500 text-sm transition-all dark:text-gray-300;
381
+ @apply block px-3 py-2 text-base-500 text-sm transition-all dark:text-base-300;
386
382
  }
387
383
 
388
384
  .select2-container.select2-container--admin-autocomplete
@@ -411,14 +407,14 @@ h3 span:nth-child(3) {
411
407
  .select2-container--admin-autocomplete
412
408
  .select2-selection--multiple
413
409
  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;
410
+ @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
411
  }
416
412
 
417
413
  .select2-container--admin-autocomplete
418
414
  .select2-selection--multiple
419
415
  li.select2-selection__choice
420
416
  .select2-selection__choice__remove {
421
- @apply align-top text-0 hover:text-gray-600 dark:hover:text-gray-200;
417
+ @apply align-top text-0 hover:text-base-600 dark:hover:text-base-200;
422
418
  }
423
419
 
424
420
  .select2-container--admin-autocomplete
@@ -435,7 +431,7 @@ h3 span:nth-child(3) {
435
431
  .select2-selection--multiple
436
432
  li.select2-search--inline
437
433
  .select2-search__field {
438
- @apply m-0 h-7 text-gray-500 text-sm;
434
+ @apply m-0 h-7 text-base-500 text-sm;
439
435
  }
440
436
 
441
437
  .select2.select2-container--open {
@@ -480,11 +476,11 @@ fieldset details[open] > summary:after {
480
476
  *******************************************************/
481
477
  .calendarbox,
482
478
  .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;
479
+ @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
480
  }
485
481
 
486
482
  .calendar caption {
487
- @apply font-medium mb-3 py-3 text-gray-700 dark:text-gray-200;
483
+ @apply font-medium mb-3 py-3 text-base-700 dark:text-base-200;
488
484
  }
489
485
 
490
486
  .calendar table {
@@ -492,7 +488,7 @@ fieldset details[open] > summary:after {
492
488
  }
493
489
 
494
490
  .calendar table th {
495
- @apply font-medium text-center text-gray-700 text-xs dark:text-gray-200;
491
+ @apply font-medium text-center text-base-700 text-xs dark:text-base-200;
496
492
  }
497
493
 
498
494
  .calendar table td {
@@ -500,11 +496,11 @@ fieldset details[open] > summary:after {
500
496
  }
501
497
 
502
498
  .calendar table td a {
503
- @apply block flex h-8 items-center justify-center rounded-full transition-all w-8 dark:text-gray-300;
499
+ @apply block flex h-8 items-center justify-center rounded-full transition-all w-8 dark:text-base-300;
504
500
  }
505
501
 
506
502
  .calendar table td a:hover {
507
- @apply bg-gray-100 text-gray-700;
503
+ @apply bg-base-100 text-base-700;
508
504
  }
509
505
 
510
506
  .calendar table td.today a {
@@ -512,15 +508,15 @@ fieldset details[open] > summary:after {
512
508
  }
513
509
 
514
510
  .calendar-shortcuts {
515
- @apply flex flex-row justify-center mb-3 px-1 rounded-b-md text-0;
511
+ @apply flex flex-row justify-center mb-3 px-1 rounded-b text-0;
516
512
  }
517
513
 
518
514
  .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;
515
+ @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
516
  }
521
517
 
522
518
  .calendar-cancel {
523
- @apply block border-t py-2 text-center text-xs text-red-600 dark:border-gray-700 dark:text-red-500;
519
+ @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
520
  }
525
521
 
526
522
  .calendarnav-previous {
@@ -529,7 +525,7 @@ fieldset details[open] > summary:after {
529
525
 
530
526
  .calendarnav-next:after,
531
527
  .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;
528
+ @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
529
 
534
530
  content: "navigate_before";
535
531
  display: flex;
@@ -537,7 +533,7 @@ fieldset details[open] > summary:after {
537
533
 
538
534
  .calendarnav-next:hover:after,
539
535
  .calendarnav-previous:hover:after {
540
- @apply dark:border-gray-600 dark:text-gray-200;
536
+ @apply dark:border-base-600 dark:text-base-200;
541
537
  }
542
538
 
543
539
  .calendarnav-next {
@@ -553,14 +549,14 @@ fieldset details[open] > summary:after {
553
549
  Timepicker
554
550
  *******************************************************/
555
551
  .clockbox {
556
- @apply bg-white border rounded-md shadow-sm text-sm dark:bg-gray-800 dark:border-gray-700 z-50;
552
+ @apply bg-white border border-base-200 rounded shadow-sm text-sm dark:bg-base-800 dark:border-base-700 z-50;
557
553
  }
558
554
 
559
555
  .clockbox h2 {
560
- @apply font-medium px-3 py-2 text-gray-700 dark:text-gray-200;
556
+ @apply font-medium px-3 py-2 text-base-700 dark:text-base-200;
561
557
  }
562
558
  .clockbox .timelist {
563
- @apply pb-2 px-3 text-gray-500 dark:text-gray-300;
559
+ @apply pb-2 px-3 text-base-500 dark:text-base-300;
564
560
  }
565
561
 
566
562
  .clockbox .timelist li {
@@ -573,13 +569,13 @@ fieldset details[open] > summary:after {
573
569
  /*******************************************************
574
570
  Htmx
575
571
  *******************************************************/
576
- .htmx-swapping:before {
572
+ .htmx-indicator.htmx-swapping:before {
577
573
  @apply absolute bg-white bottom-0 left-0 opacity-80 transition-all right-0 top-0;
578
574
  content: "";
579
575
  }
580
576
 
581
- .htmx-swapping:after {
582
- @apply absolute animate-spin h-4 inset-1/2 material-symbols-outlined md-16 text-gray-400 w-4;
577
+ .htmx-indicator.htmx-swapping:after {
578
+ @apply absolute animate-spin h-4 inset-1/2 material-symbols-outlined md-16 text-base-400 w-4;
583
579
  content: "sync";
584
580
  }
585
581
 
@@ -587,7 +583,7 @@ fieldset details[open] > summary:after {
587
583
  Filters
588
584
  *******************************************************/
589
585
  #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;
586
+ @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
587
  }
592
588
 
593
589
  #changelist-filter .admin-numeric-filter-slider .noUi-handle-upper {
@@ -603,7 +599,7 @@ fieldset details[open] > summary:after {
603
599
  }
604
600
 
605
601
  #changelist-filter .admin-numeric-filter-slider.noUi-target {
606
- @apply bg-gray-200 border-0 h-1 shadow-none dark:bg-gray-600;
602
+ @apply bg-base-200 border-0 h-1 shadow-none dark:bg-base-600;
607
603
  }
608
604
 
609
605
  #changelist-filter .admin-numeric-filter-slider .noUi-connect {
@@ -611,14 +607,14 @@ fieldset details[open] > summary:after {
611
607
  }
612
608
 
613
609
  #changelist-filter .admin-numeric-filter-slider-tooltips {
614
- @apply flex flex-row font-medium mb-5 space-x-4 text-gray-500 text-sm;
610
+ @apply flex flex-row font-medium mb-5 space-x-4 text-base-500 text-sm;
615
611
  }
616
612
 
617
613
  /*******************************************************
618
614
  Trix
619
615
  *******************************************************/
620
616
  trix-toolbar[id^="trix-toolbar-"] {
621
- @apply sticky top-0 dark:bg-gray-900;
617
+ @apply sticky top-0 dark:bg-base-900;
622
618
  }
623
619
 
624
620
  .trix-active {
@@ -633,7 +629,7 @@ trix-toolbar[id^="trix-toolbar-"] {
633
629
  }
634
630
 
635
631
  .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;
632
+ @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
633
  }
638
634
 
639
635
  .ui-tabs.ui-widget .ui-tabs-nav li {
@@ -641,18 +637,18 @@ trix-toolbar[id^="trix-toolbar-"] {
641
637
  }
642
638
 
643
639
  .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;
640
+ @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
641
  }
646
642
 
647
643
  .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;
644
+ @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
645
  }
650
646
 
651
647
  /*******************************************************
652
648
  Simplebar
653
649
  *******************************************************/
654
650
  .simplebar-track .simplebar-scrollbar::before {
655
- @apply bg-gray-900/80 dark:bg-gray-400/80;
651
+ @apply bg-base-900/80 dark:bg-base-400/80;
656
652
  }
657
653
 
658
654
  .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 %}