rsb-admin 0.9.1

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 (115) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +15 -0
  3. data/README.md +83 -0
  4. data/Rakefile +25 -0
  5. data/app/assets/javascripts/rsb/admin/themes/modern.js +37 -0
  6. data/app/assets/stylesheets/rsb/admin/themes/default.css +1358 -0
  7. data/app/assets/stylesheets/rsb/admin/themes/modern.css +1370 -0
  8. data/app/controllers/concerns/rsb/admin/authorization.rb +21 -0
  9. data/app/controllers/rsb/admin/admin_controller.rb +138 -0
  10. data/app/controllers/rsb/admin/admin_users_controller.rb +110 -0
  11. data/app/controllers/rsb/admin/dashboard_controller.rb +76 -0
  12. data/app/controllers/rsb/admin/profile_controller.rb +146 -0
  13. data/app/controllers/rsb/admin/profile_sessions_controller.rb +45 -0
  14. data/app/controllers/rsb/admin/resources_controller.rb +386 -0
  15. data/app/controllers/rsb/admin/roles_controller.rb +99 -0
  16. data/app/controllers/rsb/admin/sessions_controller.rb +139 -0
  17. data/app/controllers/rsb/admin/settings_controller.rb +203 -0
  18. data/app/controllers/rsb/admin/two_factor_controller.rb +105 -0
  19. data/app/helpers/rsb/admin/authorization_helper.rb +49 -0
  20. data/app/helpers/rsb/admin/branding_helper.rb +38 -0
  21. data/app/helpers/rsb/admin/formatting_helper.rb +205 -0
  22. data/app/helpers/rsb/admin/i18n_helper.rb +148 -0
  23. data/app/helpers/rsb/admin/icons_helper.rb +55 -0
  24. data/app/helpers/rsb/admin/table_helper.rb +132 -0
  25. data/app/helpers/rsb/admin/theme_helper.rb +84 -0
  26. data/app/helpers/rsb/admin/url_helper.rb +109 -0
  27. data/app/mailers/rsb/admin/admin_mailer.rb +37 -0
  28. data/app/models/rsb/admin/admin_session.rb +109 -0
  29. data/app/models/rsb/admin/admin_user.rb +153 -0
  30. data/app/models/rsb/admin/application_record.rb +10 -0
  31. data/app/models/rsb/admin/role.rb +63 -0
  32. data/app/views/layouts/rsb/admin/application.html.erb +45 -0
  33. data/app/views/rsb/admin/admin_mailer/email_verification.html.erb +11 -0
  34. data/app/views/rsb/admin/admin_mailer/email_verification.text.erb +11 -0
  35. data/app/views/rsb/admin/admin_users/_form.html.erb +52 -0
  36. data/app/views/rsb/admin/admin_users/edit.html.erb +10 -0
  37. data/app/views/rsb/admin/admin_users/index.html.erb +77 -0
  38. data/app/views/rsb/admin/admin_users/new.html.erb +10 -0
  39. data/app/views/rsb/admin/admin_users/show.html.erb +85 -0
  40. data/app/views/rsb/admin/dashboard/index.html.erb +36 -0
  41. data/app/views/rsb/admin/profile/edit.html.erb +67 -0
  42. data/app/views/rsb/admin/profile/show.html.erb +155 -0
  43. data/app/views/rsb/admin/resources/_filters.html.erb +58 -0
  44. data/app/views/rsb/admin/resources/_form.html.erb +20 -0
  45. data/app/views/rsb/admin/resources/_pagination.html.erb +33 -0
  46. data/app/views/rsb/admin/resources/_table.html.erb +70 -0
  47. data/app/views/rsb/admin/resources/edit.html.erb +7 -0
  48. data/app/views/rsb/admin/resources/index.html.erb +49 -0
  49. data/app/views/rsb/admin/resources/new.html.erb +7 -0
  50. data/app/views/rsb/admin/resources/page.html.erb +9 -0
  51. data/app/views/rsb/admin/resources/show.html.erb +55 -0
  52. data/app/views/rsb/admin/roles/_form.html.erb +197 -0
  53. data/app/views/rsb/admin/roles/edit.html.erb +7 -0
  54. data/app/views/rsb/admin/roles/index.html.erb +71 -0
  55. data/app/views/rsb/admin/roles/new.html.erb +7 -0
  56. data/app/views/rsb/admin/roles/show.html.erb +99 -0
  57. data/app/views/rsb/admin/sessions/new.html.erb +31 -0
  58. data/app/views/rsb/admin/sessions/two_factor.html.erb +39 -0
  59. data/app/views/rsb/admin/settings/_field.html.erb +115 -0
  60. data/app/views/rsb/admin/settings/index.html.erb +61 -0
  61. data/app/views/rsb/admin/shared/_badge.html.erb +1 -0
  62. data/app/views/rsb/admin/shared/_breadcrumbs.html.erb +12 -0
  63. data/app/views/rsb/admin/shared/_empty_state.html.erb +4 -0
  64. data/app/views/rsb/admin/shared/_flash.html.erb +22 -0
  65. data/app/views/rsb/admin/shared/_header.html.erb +50 -0
  66. data/app/views/rsb/admin/shared/_page_tabs.html.erb +21 -0
  67. data/app/views/rsb/admin/shared/_sidebar.html.erb +99 -0
  68. data/app/views/rsb/admin/shared/disabled.html.erb +38 -0
  69. data/app/views/rsb/admin/shared/fields/_checkbox.html.erb +6 -0
  70. data/app/views/rsb/admin/shared/fields/_datetime.html.erb +10 -0
  71. data/app/views/rsb/admin/shared/fields/_email.html.erb +10 -0
  72. data/app/views/rsb/admin/shared/fields/_hidden.html.erb +1 -0
  73. data/app/views/rsb/admin/shared/fields/_json.html.erb +11 -0
  74. data/app/views/rsb/admin/shared/fields/_number.html.erb +10 -0
  75. data/app/views/rsb/admin/shared/fields/_password.html.erb +10 -0
  76. data/app/views/rsb/admin/shared/fields/_select.html.erb +12 -0
  77. data/app/views/rsb/admin/shared/fields/_text.html.erb +10 -0
  78. data/app/views/rsb/admin/shared/fields/_textarea.html.erb +10 -0
  79. data/app/views/rsb/admin/shared/forbidden.html.erb +22 -0
  80. data/app/views/rsb/admin/themes/modern/views/shared/_header.html.erb +77 -0
  81. data/app/views/rsb/admin/themes/modern/views/shared/_sidebar.html.erb +135 -0
  82. data/app/views/rsb/admin/two_factor/backup_codes.html.erb +48 -0
  83. data/app/views/rsb/admin/two_factor/new.html.erb +53 -0
  84. data/config/locales/en.yml +140 -0
  85. data/config/locales/seo.en.yml +21 -0
  86. data/config/routes.rb +59 -0
  87. data/db/migrate/20260208000003_create_rsb_admin_tables.rb +43 -0
  88. data/db/migrate/20260214000001_add_otp_fields_to_rsb_admin_admin_users.rb +9 -0
  89. data/lib/generators/rsb/admin/install/install_generator.rb +45 -0
  90. data/lib/generators/rsb/admin/install/templates/rsb_admin_seeds.rb +24 -0
  91. data/lib/generators/rsb/admin/theme/templates/theme.css.tt +66 -0
  92. data/lib/generators/rsb/admin/theme/theme_generator.rb +218 -0
  93. data/lib/generators/rsb/admin/views/views_generator.rb +262 -0
  94. data/lib/rsb/admin/breadcrumb_item.rb +26 -0
  95. data/lib/rsb/admin/category_registration.rb +177 -0
  96. data/lib/rsb/admin/column_definition.rb +89 -0
  97. data/lib/rsb/admin/configuration.rb +69 -0
  98. data/lib/rsb/admin/engine.rb +34 -0
  99. data/lib/rsb/admin/filter_definition.rb +129 -0
  100. data/lib/rsb/admin/form_field_definition.rb +96 -0
  101. data/lib/rsb/admin/icons.rb +95 -0
  102. data/lib/rsb/admin/page_registration.rb +140 -0
  103. data/lib/rsb/admin/registry.rb +109 -0
  104. data/lib/rsb/admin/resource_dsl_context.rb +139 -0
  105. data/lib/rsb/admin/resource_registration.rb +287 -0
  106. data/lib/rsb/admin/settings_schema.rb +60 -0
  107. data/lib/rsb/admin/test_kit/helpers.rb +316 -0
  108. data/lib/rsb/admin/test_kit/resource_test_case.rb +193 -0
  109. data/lib/rsb/admin/test_kit.rb +11 -0
  110. data/lib/rsb/admin/theme_definition.rb +46 -0
  111. data/lib/rsb/admin/themes/modern.rb +44 -0
  112. data/lib/rsb/admin/version.rb +9 -0
  113. data/lib/rsb/admin.rb +177 -0
  114. data/lib/tasks/rsb/admin_tasks.rake +23 -0
  115. metadata +227 -0
@@ -0,0 +1,1358 @@
1
+ /*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer theme, base, components, utilities;
4
+ @layer theme {
5
+ :root, :host {
6
+ --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
7
+ 'Noto Color Emoji';
8
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
9
+ monospace;
10
+ --color-red-200: oklch(88.5% 0.062 18.334);
11
+ --color-red-700: oklch(50.5% 0.213 27.518);
12
+ --color-amber-200: oklch(92.4% 0.12 95.746);
13
+ --color-amber-400: oklch(82.8% 0.189 84.429);
14
+ --color-amber-600: oklch(66.6% 0.179 58.318);
15
+ --color-green-200: oklch(92.5% 0.084 155.995);
16
+ --color-blue-200: oklch(88.2% 0.059 254.128);
17
+ --color-white: #fff;
18
+ --spacing: 0.25rem;
19
+ --container-xs: 20rem;
20
+ --container-md: 28rem;
21
+ --text-xs: 0.75rem;
22
+ --text-xs--line-height: calc(1 / 0.75);
23
+ --text-sm: 0.875rem;
24
+ --text-sm--line-height: calc(1.25 / 0.875);
25
+ --text-base: 1rem;
26
+ --text-base--line-height: calc(1.5 / 1);
27
+ --text-lg: 1.125rem;
28
+ --text-lg--line-height: calc(1.75 / 1.125);
29
+ --text-2xl: 1.5rem;
30
+ --text-2xl--line-height: calc(2 / 1.5);
31
+ --font-weight-medium: 500;
32
+ --font-weight-semibold: 600;
33
+ --font-weight-bold: 700;
34
+ --tracking-wider: 0.05em;
35
+ --default-transition-duration: 150ms;
36
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
37
+ --default-font-family: var(--font-sans);
38
+ --default-mono-font-family: var(--font-mono);
39
+ --color-rsb-bg: var(--rsb-admin-bg);
40
+ --color-rsb-card: var(--rsb-admin-card-bg);
41
+ --color-rsb-text: var(--rsb-admin-text);
42
+ --color-rsb-muted: var(--rsb-admin-text-muted);
43
+ --color-rsb-border: var(--rsb-admin-border);
44
+ --color-rsb-primary: var(--rsb-admin-primary);
45
+ --color-rsb-primary-hover: var(--rsb-admin-primary-hover);
46
+ --color-rsb-primary-text: var(--rsb-admin-primary-text);
47
+ --color-rsb-danger: var(--rsb-admin-danger);
48
+ --color-rsb-danger-bg: var(--rsb-admin-danger-bg);
49
+ --color-rsb-danger-text: var(--rsb-admin-danger-text);
50
+ --color-rsb-success: var(--rsb-admin-success);
51
+ --color-rsb-success-bg: var(--rsb-admin-success-bg);
52
+ --color-rsb-success-text: var(--rsb-admin-success-text);
53
+ --color-rsb-warning: var(--rsb-admin-warning);
54
+ --color-rsb-warning-bg: var(--rsb-admin-warning-bg);
55
+ --color-rsb-warning-text: var(--rsb-admin-warning-text);
56
+ --color-rsb-info: var(--rsb-admin-info);
57
+ --color-rsb-info-bg: var(--rsb-admin-info-bg);
58
+ --color-rsb-info-text: var(--rsb-admin-info-text);
59
+ --color-rsb-sidebar: var(--rsb-admin-sidebar-bg);
60
+ --color-rsb-sidebar-text: var(--rsb-admin-sidebar-text);
61
+ --color-rsb-sidebar-active: var(--rsb-admin-sidebar-active);
62
+ --color-rsb-sidebar-hover: var(--rsb-admin-sidebar-hover-bg);
63
+ --radius-rsb: var(--rsb-admin-radius);
64
+ --radius-rsb-lg: var(--rsb-admin-radius-lg);
65
+ }
66
+ }
67
+ @layer base {
68
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
69
+ box-sizing: border-box;
70
+ margin: 0;
71
+ padding: 0;
72
+ border: 0 solid;
73
+ }
74
+ html, :host {
75
+ line-height: 1.5;
76
+ -webkit-text-size-adjust: 100%;
77
+ tab-size: 4;
78
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji');
79
+ font-feature-settings: var(--default-font-feature-settings, normal);
80
+ font-variation-settings: var(--default-font-variation-settings, normal);
81
+ -webkit-tap-highlight-color: transparent;
82
+ }
83
+ hr {
84
+ height: 0;
85
+ color: inherit;
86
+ border-top-width: 1px;
87
+ }
88
+ abbr:where([title]) {
89
+ -webkit-text-decoration: underline dotted;
90
+ text-decoration: underline dotted;
91
+ }
92
+ h1, h2, h3, h4, h5, h6 {
93
+ font-size: inherit;
94
+ font-weight: inherit;
95
+ }
96
+ a {
97
+ color: inherit;
98
+ -webkit-text-decoration: inherit;
99
+ text-decoration: inherit;
100
+ }
101
+ b, strong {
102
+ font-weight: bolder;
103
+ }
104
+ code, kbd, samp, pre {
105
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace);
106
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
107
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
108
+ font-size: 1em;
109
+ }
110
+ small {
111
+ font-size: 80%;
112
+ }
113
+ sub, sup {
114
+ font-size: 75%;
115
+ line-height: 0;
116
+ position: relative;
117
+ vertical-align: baseline;
118
+ }
119
+ sub {
120
+ bottom: -0.25em;
121
+ }
122
+ sup {
123
+ top: -0.5em;
124
+ }
125
+ table {
126
+ text-indent: 0;
127
+ border-color: inherit;
128
+ border-collapse: collapse;
129
+ }
130
+ :-moz-focusring {
131
+ outline: auto;
132
+ }
133
+ progress {
134
+ vertical-align: baseline;
135
+ }
136
+ summary {
137
+ display: list-item;
138
+ }
139
+ ol, ul, menu {
140
+ list-style: none;
141
+ }
142
+ img, svg, video, canvas, audio, iframe, embed, object {
143
+ display: block;
144
+ vertical-align: middle;
145
+ }
146
+ img, video {
147
+ max-width: 100%;
148
+ height: auto;
149
+ }
150
+ button, input, select, optgroup, textarea, ::file-selector-button {
151
+ font: inherit;
152
+ font-feature-settings: inherit;
153
+ font-variation-settings: inherit;
154
+ letter-spacing: inherit;
155
+ color: inherit;
156
+ border-radius: 0;
157
+ background-color: transparent;
158
+ opacity: 1;
159
+ }
160
+ :where(select:is([multiple], [size])) optgroup {
161
+ font-weight: bolder;
162
+ }
163
+ :where(select:is([multiple], [size])) optgroup option {
164
+ padding-inline-start: 20px;
165
+ }
166
+ ::file-selector-button {
167
+ margin-inline-end: 4px;
168
+ }
169
+ ::placeholder {
170
+ opacity: 1;
171
+ }
172
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
173
+ ::placeholder {
174
+ color: currentcolor;
175
+ @supports (color: color-mix(in lab, red, red)) {
176
+ color: color-mix(in oklab, currentcolor 50%, transparent);
177
+ }
178
+ }
179
+ }
180
+ textarea {
181
+ resize: vertical;
182
+ }
183
+ ::-webkit-search-decoration {
184
+ -webkit-appearance: none;
185
+ }
186
+ ::-webkit-date-and-time-value {
187
+ min-height: 1lh;
188
+ text-align: inherit;
189
+ }
190
+ ::-webkit-datetime-edit {
191
+ display: inline-flex;
192
+ }
193
+ ::-webkit-datetime-edit-fields-wrapper {
194
+ padding: 0;
195
+ }
196
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
197
+ padding-block: 0;
198
+ }
199
+ ::-webkit-calendar-picker-indicator {
200
+ line-height: 1;
201
+ }
202
+ :-moz-ui-invalid {
203
+ box-shadow: none;
204
+ }
205
+ button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button {
206
+ appearance: button;
207
+ }
208
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
209
+ height: auto;
210
+ }
211
+ [hidden]:where(:not([hidden='until-found'])) {
212
+ display: none !important;
213
+ }
214
+ }
215
+ @layer utilities {
216
+ .pointer-events-none {
217
+ pointer-events: none;
218
+ }
219
+ .visible {
220
+ visibility: visible;
221
+ }
222
+ .sr-only {
223
+ position: absolute;
224
+ width: 1px;
225
+ height: 1px;
226
+ padding: 0;
227
+ margin: -1px;
228
+ overflow: hidden;
229
+ clip-path: inset(50%);
230
+ white-space: nowrap;
231
+ border-width: 0;
232
+ }
233
+ .fixed {
234
+ position: fixed;
235
+ }
236
+ .relative {
237
+ position: relative;
238
+ }
239
+ .top-0 {
240
+ top: calc(var(--spacing) * 0);
241
+ }
242
+ .bottom-0 {
243
+ bottom: calc(var(--spacing) * 0);
244
+ }
245
+ .left-0 {
246
+ left: calc(var(--spacing) * 0);
247
+ }
248
+ .container {
249
+ width: 100%;
250
+ @media (width >= 40rem) {
251
+ max-width: 40rem;
252
+ }
253
+ @media (width >= 48rem) {
254
+ max-width: 48rem;
255
+ }
256
+ @media (width >= 64rem) {
257
+ max-width: 64rem;
258
+ }
259
+ @media (width >= 80rem) {
260
+ max-width: 80rem;
261
+ }
262
+ @media (width >= 96rem) {
263
+ max-width: 96rem;
264
+ }
265
+ }
266
+ .mx-1 {
267
+ margin-inline: calc(var(--spacing) * 1);
268
+ }
269
+ .mt-0\.5 {
270
+ margin-top: calc(var(--spacing) * 0.5);
271
+ }
272
+ .mt-1 {
273
+ margin-top: calc(var(--spacing) * 1);
274
+ }
275
+ .mt-2 {
276
+ margin-top: calc(var(--spacing) * 2);
277
+ }
278
+ .mt-3 {
279
+ margin-top: calc(var(--spacing) * 3);
280
+ }
281
+ .mt-4 {
282
+ margin-top: calc(var(--spacing) * 4);
283
+ }
284
+ .mt-6 {
285
+ margin-top: calc(var(--spacing) * 6);
286
+ }
287
+ .-mb-px {
288
+ margin-bottom: -1px;
289
+ }
290
+ .mb-1 {
291
+ margin-bottom: calc(var(--spacing) * 1);
292
+ }
293
+ .mb-2 {
294
+ margin-bottom: calc(var(--spacing) * 2);
295
+ }
296
+ .mb-3 {
297
+ margin-bottom: calc(var(--spacing) * 3);
298
+ }
299
+ .mb-4 {
300
+ margin-bottom: calc(var(--spacing) * 4);
301
+ }
302
+ .mb-6 {
303
+ margin-bottom: calc(var(--spacing) * 6);
304
+ }
305
+ .ml-1 {
306
+ margin-left: calc(var(--spacing) * 1);
307
+ }
308
+ .ml-2 {
309
+ margin-left: calc(var(--spacing) * 2);
310
+ }
311
+ .ml-\[250px\] {
312
+ margin-left: 250px;
313
+ }
314
+ .block {
315
+ display: block;
316
+ }
317
+ .flex {
318
+ display: flex;
319
+ }
320
+ .grid {
321
+ display: grid;
322
+ }
323
+ .hidden {
324
+ display: none;
325
+ }
326
+ .inline {
327
+ display: inline;
328
+ }
329
+ .inline-block {
330
+ display: inline-block;
331
+ }
332
+ .inline-flex {
333
+ display: inline-flex;
334
+ }
335
+ .table {
336
+ display: table;
337
+ }
338
+ .h-5 {
339
+ height: calc(var(--spacing) * 5);
340
+ }
341
+ .h-8 {
342
+ height: calc(var(--spacing) * 8);
343
+ }
344
+ .h-10 {
345
+ height: calc(var(--spacing) * 10);
346
+ }
347
+ .h-14 {
348
+ height: calc(var(--spacing) * 14);
349
+ }
350
+ .min-h-\[60vh\] {
351
+ min-height: 60vh;
352
+ }
353
+ .min-h-screen {
354
+ min-height: 100vh;
355
+ }
356
+ .w-10 {
357
+ width: calc(var(--spacing) * 10);
358
+ }
359
+ .w-24 {
360
+ width: calc(var(--spacing) * 24);
361
+ }
362
+ .w-\[250px\] {
363
+ width: 250px;
364
+ }
365
+ .w-full {
366
+ width: 100%;
367
+ }
368
+ .max-w-\[400px\] {
369
+ max-width: 400px;
370
+ }
371
+ .max-w-md {
372
+ max-width: var(--container-md);
373
+ }
374
+ .max-w-xs {
375
+ max-width: var(--container-xs);
376
+ }
377
+ .min-w-\[150px\] {
378
+ min-width: 150px;
379
+ }
380
+ .flex-1 {
381
+ flex: 1;
382
+ }
383
+ .shrink-0 {
384
+ flex-shrink: 0;
385
+ }
386
+ .rotate-90 {
387
+ rotate: 90deg;
388
+ }
389
+ .cursor-not-allowed {
390
+ cursor: not-allowed;
391
+ }
392
+ .cursor-pointer {
393
+ cursor: pointer;
394
+ }
395
+ .list-disc {
396
+ list-style-type: disc;
397
+ }
398
+ .grid-cols-\[200px_1fr\] {
399
+ grid-template-columns: 200px 1fr;
400
+ }
401
+ .flex-col {
402
+ flex-direction: column;
403
+ }
404
+ .flex-wrap {
405
+ flex-wrap: wrap;
406
+ }
407
+ .items-center {
408
+ align-items: center;
409
+ }
410
+ .items-end {
411
+ align-items: flex-end;
412
+ }
413
+ .justify-between {
414
+ justify-content: space-between;
415
+ }
416
+ .justify-center {
417
+ justify-content: center;
418
+ }
419
+ .justify-end {
420
+ justify-content: flex-end;
421
+ }
422
+ .gap-1 {
423
+ gap: calc(var(--spacing) * 1);
424
+ }
425
+ .gap-1\.5 {
426
+ gap: calc(var(--spacing) * 1.5);
427
+ }
428
+ .gap-2 {
429
+ gap: calc(var(--spacing) * 2);
430
+ }
431
+ .gap-3 {
432
+ gap: calc(var(--spacing) * 3);
433
+ }
434
+ .gap-4 {
435
+ gap: calc(var(--spacing) * 4);
436
+ }
437
+ .space-y-5 {
438
+ :where(& > :not(:last-child)) {
439
+ --tw-space-y-reverse: 0;
440
+ margin-block-start: calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));
441
+ margin-block-end: calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)));
442
+ }
443
+ }
444
+ .divide-y {
445
+ :where(& > :not(:last-child)) {
446
+ --tw-divide-y-reverse: 0;
447
+ border-bottom-style: var(--tw-border-style);
448
+ border-top-style: var(--tw-border-style);
449
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
450
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
451
+ }
452
+ }
453
+ .divide-rsb-border {
454
+ :where(& > :not(:last-child)) {
455
+ border-color: var(--color-rsb-border);
456
+ }
457
+ }
458
+ .truncate {
459
+ overflow: hidden;
460
+ text-overflow: ellipsis;
461
+ white-space: nowrap;
462
+ }
463
+ .overflow-hidden {
464
+ overflow: hidden;
465
+ }
466
+ .overflow-x-auto {
467
+ overflow-x: auto;
468
+ }
469
+ .overflow-y-auto {
470
+ overflow-y: auto;
471
+ }
472
+ .rounded {
473
+ border-radius: 0.25rem;
474
+ }
475
+ .rounded-full {
476
+ border-radius: calc(infinity * 1px);
477
+ }
478
+ .rounded-rsb {
479
+ border-radius: var(--radius-rsb);
480
+ }
481
+ .rounded-rsb-lg {
482
+ border-radius: var(--radius-rsb-lg);
483
+ }
484
+ .border {
485
+ border-style: var(--tw-border-style);
486
+ border-width: 1px;
487
+ }
488
+ .border-t {
489
+ border-top-style: var(--tw-border-style);
490
+ border-top-width: 1px;
491
+ }
492
+ .border-b {
493
+ border-bottom-style: var(--tw-border-style);
494
+ border-bottom-width: 1px;
495
+ }
496
+ .border-b-2 {
497
+ border-bottom-style: var(--tw-border-style);
498
+ border-bottom-width: 2px;
499
+ }
500
+ .border-l-\[3px\] {
501
+ border-left-style: var(--tw-border-style);
502
+ border-left-width: 3px;
503
+ }
504
+ .border-amber-200 {
505
+ border-color: var(--color-amber-200);
506
+ }
507
+ .border-blue-200 {
508
+ border-color: var(--color-blue-200);
509
+ }
510
+ .border-green-200 {
511
+ border-color: var(--color-green-200);
512
+ }
513
+ .border-red-200 {
514
+ border-color: var(--color-red-200);
515
+ }
516
+ .border-rsb-border {
517
+ border-color: var(--color-rsb-border);
518
+ }
519
+ .border-rsb-border\/50 {
520
+ border-color: var(--color-rsb-border);
521
+ @supports (color: color-mix(in lab, red, red)) {
522
+ border-color: color-mix(in oklab, var(--color-rsb-border) 50%, transparent);
523
+ }
524
+ }
525
+ .border-rsb-danger {
526
+ border-color: var(--color-rsb-danger);
527
+ }
528
+ .border-rsb-danger-bg {
529
+ border-color: var(--color-rsb-danger-bg);
530
+ }
531
+ .border-rsb-info {
532
+ border-color: var(--color-rsb-info);
533
+ }
534
+ .border-rsb-info-bg {
535
+ border-color: var(--color-rsb-info-bg);
536
+ }
537
+ .border-rsb-primary {
538
+ border-color: var(--color-rsb-primary);
539
+ }
540
+ .border-rsb-sidebar-active {
541
+ border-color: var(--color-rsb-sidebar-active);
542
+ }
543
+ .border-rsb-success {
544
+ border-color: var(--color-rsb-success);
545
+ }
546
+ .border-rsb-success-bg {
547
+ border-color: var(--color-rsb-success-bg);
548
+ }
549
+ .border-rsb-warning {
550
+ border-color: var(--color-rsb-warning);
551
+ }
552
+ .border-rsb-warning-bg {
553
+ border-color: var(--color-rsb-warning-bg);
554
+ }
555
+ .border-transparent {
556
+ border-color: transparent;
557
+ }
558
+ .border-white\/10 {
559
+ border-color: color-mix(in srgb, #fff 10%, transparent);
560
+ @supports (color: color-mix(in lab, red, red)) {
561
+ border-color: color-mix(in oklab, var(--color-white) 10%, transparent);
562
+ }
563
+ }
564
+ .bg-rsb-bg {
565
+ background-color: var(--color-rsb-bg);
566
+ }
567
+ .bg-rsb-border {
568
+ background-color: var(--color-rsb-border);
569
+ }
570
+ .bg-rsb-card {
571
+ background-color: var(--color-rsb-card);
572
+ }
573
+ .bg-rsb-danger {
574
+ background-color: var(--color-rsb-danger);
575
+ }
576
+ .bg-rsb-danger-bg {
577
+ background-color: var(--color-rsb-danger-bg);
578
+ }
579
+ .bg-rsb-danger\/50 {
580
+ background-color: var(--color-rsb-danger);
581
+ @supports (color: color-mix(in lab, red, red)) {
582
+ background-color: color-mix(in oklab, var(--color-rsb-danger) 50%, transparent);
583
+ }
584
+ }
585
+ .bg-rsb-info {
586
+ background-color: var(--color-rsb-info);
587
+ }
588
+ .bg-rsb-info-bg {
589
+ background-color: var(--color-rsb-info-bg);
590
+ }
591
+ .bg-rsb-primary {
592
+ background-color: var(--color-rsb-primary);
593
+ }
594
+ .bg-rsb-primary\/50 {
595
+ background-color: var(--color-rsb-primary);
596
+ @supports (color: color-mix(in lab, red, red)) {
597
+ background-color: color-mix(in oklab, var(--color-rsb-primary) 50%, transparent);
598
+ }
599
+ }
600
+ .bg-rsb-sidebar {
601
+ background-color: var(--color-rsb-sidebar);
602
+ }
603
+ .bg-rsb-success {
604
+ background-color: var(--color-rsb-success);
605
+ }
606
+ .bg-rsb-success-bg {
607
+ background-color: var(--color-rsb-success-bg);
608
+ }
609
+ .bg-rsb-warning {
610
+ background-color: var(--color-rsb-warning);
611
+ }
612
+ .bg-rsb-warning-bg {
613
+ background-color: var(--color-rsb-warning-bg);
614
+ }
615
+ .bg-white\/\[0\.08\] {
616
+ background-color: color-mix(in srgb, #fff 8%, transparent);
617
+ @supports (color: color-mix(in lab, red, red)) {
618
+ background-color: color-mix(in oklab, var(--color-white) 8%, transparent);
619
+ }
620
+ }
621
+ .p-2 {
622
+ padding: calc(var(--spacing) * 2);
623
+ }
624
+ .p-3 {
625
+ padding: calc(var(--spacing) * 3);
626
+ }
627
+ .p-4 {
628
+ padding: calc(var(--spacing) * 4);
629
+ }
630
+ .p-6 {
631
+ padding: calc(var(--spacing) * 6);
632
+ }
633
+ .p-8 {
634
+ padding: calc(var(--spacing) * 8);
635
+ }
636
+ .px-2 {
637
+ padding-inline: calc(var(--spacing) * 2);
638
+ }
639
+ .px-3 {
640
+ padding-inline: calc(var(--spacing) * 3);
641
+ }
642
+ .px-4 {
643
+ padding-inline: calc(var(--spacing) * 4);
644
+ }
645
+ .px-5 {
646
+ padding-inline: calc(var(--spacing) * 5);
647
+ }
648
+ .px-6 {
649
+ padding-inline: calc(var(--spacing) * 6);
650
+ }
651
+ .py-0\.5 {
652
+ padding-block: calc(var(--spacing) * 0.5);
653
+ }
654
+ .py-1\.5 {
655
+ padding-block: calc(var(--spacing) * 1.5);
656
+ }
657
+ .py-2 {
658
+ padding-block: calc(var(--spacing) * 2);
659
+ }
660
+ .py-2\.5 {
661
+ padding-block: calc(var(--spacing) * 2.5);
662
+ }
663
+ .py-3 {
664
+ padding-block: calc(var(--spacing) * 3);
665
+ }
666
+ .py-4 {
667
+ padding-block: calc(var(--spacing) * 4);
668
+ }
669
+ .py-8 {
670
+ padding-block: calc(var(--spacing) * 8);
671
+ }
672
+ .pt-3 {
673
+ padding-top: calc(var(--spacing) * 3);
674
+ }
675
+ .pt-4 {
676
+ padding-top: calc(var(--spacing) * 4);
677
+ }
678
+ .pt-6 {
679
+ padding-top: calc(var(--spacing) * 6);
680
+ }
681
+ .pr-4 {
682
+ padding-right: calc(var(--spacing) * 4);
683
+ }
684
+ .pb-1 {
685
+ padding-bottom: calc(var(--spacing) * 1);
686
+ }
687
+ .pb-2 {
688
+ padding-bottom: calc(var(--spacing) * 2);
689
+ }
690
+ .pb-4 {
691
+ padding-bottom: calc(var(--spacing) * 4);
692
+ }
693
+ .pl-6 {
694
+ padding-left: calc(var(--spacing) * 6);
695
+ }
696
+ .text-center {
697
+ text-align: center;
698
+ }
699
+ .text-left {
700
+ text-align: left;
701
+ }
702
+ .text-right {
703
+ text-align: right;
704
+ }
705
+ .font-mono {
706
+ font-family: var(--font-mono);
707
+ }
708
+ .font-sans {
709
+ font-family: var(--font-sans);
710
+ }
711
+ .text-2xl {
712
+ font-size: var(--text-2xl);
713
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
714
+ }
715
+ .text-base {
716
+ font-size: var(--text-base);
717
+ line-height: var(--tw-leading, var(--text-base--line-height));
718
+ }
719
+ .text-lg {
720
+ font-size: var(--text-lg);
721
+ line-height: var(--tw-leading, var(--text-lg--line-height));
722
+ }
723
+ .text-sm {
724
+ font-size: var(--text-sm);
725
+ line-height: var(--tw-leading, var(--text-sm--line-height));
726
+ }
727
+ .text-xs {
728
+ font-size: var(--text-xs);
729
+ line-height: var(--tw-leading, var(--text-xs--line-height));
730
+ }
731
+ .text-\[0\.6rem\] {
732
+ font-size: 0.6rem;
733
+ }
734
+ .text-\[0\.7rem\] {
735
+ font-size: 0.7rem;
736
+ }
737
+ .font-bold {
738
+ --tw-font-weight: var(--font-weight-bold);
739
+ font-weight: var(--font-weight-bold);
740
+ }
741
+ .font-medium {
742
+ --tw-font-weight: var(--font-weight-medium);
743
+ font-weight: var(--font-weight-medium);
744
+ }
745
+ .font-semibold {
746
+ --tw-font-weight: var(--font-weight-semibold);
747
+ font-weight: var(--font-weight-semibold);
748
+ }
749
+ .tracking-wider {
750
+ --tw-tracking: var(--tracking-wider);
751
+ letter-spacing: var(--tracking-wider);
752
+ }
753
+ .whitespace-pre {
754
+ white-space: pre;
755
+ }
756
+ .text-amber-600 {
757
+ color: var(--color-amber-600);
758
+ }
759
+ .text-rsb-danger {
760
+ color: var(--color-rsb-danger);
761
+ }
762
+ .text-rsb-danger-text {
763
+ color: var(--color-rsb-danger-text);
764
+ }
765
+ .text-rsb-info {
766
+ color: var(--color-rsb-info);
767
+ }
768
+ .text-rsb-info-text {
769
+ color: var(--color-rsb-info-text);
770
+ }
771
+ .text-rsb-muted {
772
+ color: var(--color-rsb-muted);
773
+ }
774
+ .text-rsb-muted\/40 {
775
+ color: var(--color-rsb-muted);
776
+ @supports (color: color-mix(in lab, red, red)) {
777
+ color: color-mix(in oklab, var(--color-rsb-muted) 40%, transparent);
778
+ }
779
+ }
780
+ .text-rsb-primary {
781
+ color: var(--color-rsb-primary);
782
+ }
783
+ .text-rsb-primary-text {
784
+ color: var(--color-rsb-primary-text);
785
+ }
786
+ .text-rsb-primary-text\/50 {
787
+ color: var(--color-rsb-primary-text);
788
+ @supports (color: color-mix(in lab, red, red)) {
789
+ color: color-mix(in oklab, var(--color-rsb-primary-text) 50%, transparent);
790
+ }
791
+ }
792
+ .text-rsb-sidebar-text {
793
+ color: var(--color-rsb-sidebar-text);
794
+ }
795
+ .text-rsb-success {
796
+ color: var(--color-rsb-success);
797
+ }
798
+ .text-rsb-success-text {
799
+ color: var(--color-rsb-success-text);
800
+ }
801
+ .text-rsb-text {
802
+ color: var(--color-rsb-text);
803
+ }
804
+ .text-rsb-warning {
805
+ color: var(--color-rsb-warning);
806
+ }
807
+ .text-rsb-warning-text {
808
+ color: var(--color-rsb-warning-text);
809
+ }
810
+ .text-white {
811
+ color: var(--color-white);
812
+ }
813
+ .text-white\/20 {
814
+ color: color-mix(in srgb, #fff 20%, transparent);
815
+ @supports (color: color-mix(in lab, red, red)) {
816
+ color: color-mix(in oklab, var(--color-white) 20%, transparent);
817
+ }
818
+ }
819
+ .text-white\/30 {
820
+ color: color-mix(in srgb, #fff 30%, transparent);
821
+ @supports (color: color-mix(in lab, red, red)) {
822
+ color: color-mix(in oklab, var(--color-white) 30%, transparent);
823
+ }
824
+ }
825
+ .text-white\/40 {
826
+ color: color-mix(in srgb, #fff 40%, transparent);
827
+ @supports (color: color-mix(in lab, red, red)) {
828
+ color: color-mix(in oklab, var(--color-white) 40%, transparent);
829
+ }
830
+ }
831
+ .text-white\/50 {
832
+ color: color-mix(in srgb, #fff 50%, transparent);
833
+ @supports (color: color-mix(in lab, red, red)) {
834
+ color: color-mix(in oklab, var(--color-white) 50%, transparent);
835
+ }
836
+ }
837
+ .uppercase {
838
+ text-transform: uppercase;
839
+ }
840
+ .opacity-20 {
841
+ opacity: 20%;
842
+ }
843
+ .opacity-30 {
844
+ opacity: 30%;
845
+ }
846
+ .opacity-40 {
847
+ opacity: 40%;
848
+ }
849
+ .opacity-50 {
850
+ opacity: 50%;
851
+ }
852
+ .opacity-60 {
853
+ opacity: 60%;
854
+ }
855
+ .shadow-rsb {
856
+ --tw-shadow: var(--rsb-admin-shadow);
857
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
858
+ }
859
+ .shadow-rsb-sm {
860
+ --tw-shadow: var(--rsb-admin-shadow-sm);
861
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
862
+ }
863
+ .filter {
864
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
865
+ }
866
+ .transition {
867
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events;
868
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
869
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
870
+ }
871
+ .transition-all {
872
+ transition-property: all;
873
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
874
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
875
+ }
876
+ .transition-colors {
877
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
878
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
879
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
880
+ }
881
+ .transition-opacity {
882
+ transition-property: opacity;
883
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
884
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
885
+ }
886
+ .transition-transform {
887
+ transition-property: transform, translate, scale, rotate;
888
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
889
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
890
+ }
891
+ .duration-200 {
892
+ --tw-duration: 200ms;
893
+ transition-duration: 200ms;
894
+ }
895
+ .duration-\[var\(--rsb-admin-transition\)\] {
896
+ --tw-duration: var(--rsb-admin-transition);
897
+ transition-duration: var(--rsb-admin-transition);
898
+ }
899
+ .group-hover\:opacity-70 {
900
+ &:is(:where(.group):hover *) {
901
+ @media (hover: hover) {
902
+ opacity: 70%;
903
+ }
904
+ }
905
+ }
906
+ .group-hover\:opacity-100 {
907
+ &:is(:where(.group):hover *) {
908
+ @media (hover: hover) {
909
+ opacity: 100%;
910
+ }
911
+ }
912
+ }
913
+ .peer-checked\:bg-rsb-primary {
914
+ &:is(:where(.peer):checked ~ *) {
915
+ background-color: var(--color-rsb-primary);
916
+ }
917
+ }
918
+ .after\:absolute {
919
+ &::after {
920
+ content: var(--tw-content);
921
+ position: absolute;
922
+ }
923
+ }
924
+ .after\:top-0\.5 {
925
+ &::after {
926
+ content: var(--tw-content);
927
+ top: calc(var(--spacing) * 0.5);
928
+ }
929
+ }
930
+ .after\:left-0\.5 {
931
+ &::after {
932
+ content: var(--tw-content);
933
+ left: calc(var(--spacing) * 0.5);
934
+ }
935
+ }
936
+ .after\:h-4 {
937
+ &::after {
938
+ content: var(--tw-content);
939
+ height: calc(var(--spacing) * 4);
940
+ }
941
+ }
942
+ .after\:w-4 {
943
+ &::after {
944
+ content: var(--tw-content);
945
+ width: calc(var(--spacing) * 4);
946
+ }
947
+ }
948
+ .after\:rounded-full {
949
+ &::after {
950
+ content: var(--tw-content);
951
+ border-radius: calc(infinity * 1px);
952
+ }
953
+ }
954
+ .after\:bg-white {
955
+ &::after {
956
+ content: var(--tw-content);
957
+ background-color: var(--color-white);
958
+ }
959
+ }
960
+ .after\:transition-transform {
961
+ &::after {
962
+ content: var(--tw-content);
963
+ transition-property: transform, translate, scale, rotate;
964
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
965
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
966
+ }
967
+ }
968
+ .after\:duration-200 {
969
+ &::after {
970
+ content: var(--tw-content);
971
+ --tw-duration: 200ms;
972
+ transition-duration: 200ms;
973
+ }
974
+ }
975
+ .after\:content-\[\'\'\] {
976
+ &::after {
977
+ --tw-content: '';
978
+ content: var(--tw-content);
979
+ }
980
+ }
981
+ .peer-checked\:after\:translate-x-5 {
982
+ &:is(:where(.peer):checked ~ *) {
983
+ &::after {
984
+ content: var(--tw-content);
985
+ --tw-translate-x: calc(var(--spacing) * 5);
986
+ translate: var(--tw-translate-x) var(--tw-translate-y);
987
+ }
988
+ }
989
+ }
990
+ .last\:border-b-0 {
991
+ &:last-child {
992
+ border-bottom-style: var(--tw-border-style);
993
+ border-bottom-width: 0px;
994
+ }
995
+ }
996
+ .hover\:border-rsb-border {
997
+ &:hover {
998
+ @media (hover: hover) {
999
+ border-color: var(--color-rsb-border);
1000
+ }
1001
+ }
1002
+ }
1003
+ .hover\:bg-red-700 {
1004
+ &:hover {
1005
+ @media (hover: hover) {
1006
+ background-color: var(--color-red-700);
1007
+ }
1008
+ }
1009
+ }
1010
+ .hover\:bg-rsb-bg {
1011
+ &:hover {
1012
+ @media (hover: hover) {
1013
+ background-color: var(--color-rsb-bg);
1014
+ }
1015
+ }
1016
+ }
1017
+ .hover\:bg-rsb-primary-hover {
1018
+ &:hover {
1019
+ @media (hover: hover) {
1020
+ background-color: var(--color-rsb-primary-hover);
1021
+ }
1022
+ }
1023
+ }
1024
+ .hover\:bg-rsb-sidebar-hover {
1025
+ &:hover {
1026
+ @media (hover: hover) {
1027
+ background-color: var(--color-rsb-sidebar-hover);
1028
+ }
1029
+ }
1030
+ }
1031
+ .hover\:text-rsb-danger {
1032
+ &:hover {
1033
+ @media (hover: hover) {
1034
+ color: var(--color-rsb-danger);
1035
+ }
1036
+ }
1037
+ }
1038
+ .hover\:text-rsb-text {
1039
+ &:hover {
1040
+ @media (hover: hover) {
1041
+ color: var(--color-rsb-text);
1042
+ }
1043
+ }
1044
+ }
1045
+ .hover\:text-white {
1046
+ &:hover {
1047
+ @media (hover: hover) {
1048
+ color: var(--color-white);
1049
+ }
1050
+ }
1051
+ }
1052
+ .hover\:text-white\/60 {
1053
+ &:hover {
1054
+ @media (hover: hover) {
1055
+ color: color-mix(in srgb, #fff 60%, transparent);
1056
+ @supports (color: color-mix(in lab, red, red)) {
1057
+ color: color-mix(in oklab, var(--color-white) 60%, transparent);
1058
+ }
1059
+ }
1060
+ }
1061
+ }
1062
+ .hover\:underline {
1063
+ &:hover {
1064
+ @media (hover: hover) {
1065
+ text-decoration-line: underline;
1066
+ }
1067
+ }
1068
+ }
1069
+ .hover\:opacity-100 {
1070
+ &:hover {
1071
+ @media (hover: hover) {
1072
+ opacity: 100%;
1073
+ }
1074
+ }
1075
+ }
1076
+ .focus\:border-rsb-primary {
1077
+ &:focus {
1078
+ border-color: var(--color-rsb-primary);
1079
+ }
1080
+ }
1081
+ .focus\:ring-1 {
1082
+ &:focus {
1083
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1084
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1085
+ }
1086
+ }
1087
+ .focus\:ring-2 {
1088
+ &:focus {
1089
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1090
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1091
+ }
1092
+ }
1093
+ .focus\:ring-rsb-primary {
1094
+ &:focus {
1095
+ --tw-ring-color: var(--color-rsb-primary);
1096
+ }
1097
+ }
1098
+ .focus\:ring-rsb-primary\/10 {
1099
+ &:focus {
1100
+ --tw-ring-color: var(--color-rsb-primary);
1101
+ @supports (color: color-mix(in lab, red, red)) {
1102
+ --tw-ring-color: color-mix(in oklab, var(--color-rsb-primary) 10%, transparent);
1103
+ }
1104
+ }
1105
+ }
1106
+ .focus\:outline-none {
1107
+ &:focus {
1108
+ --tw-outline-style: none;
1109
+ outline-style: none;
1110
+ }
1111
+ }
1112
+ .dark\:text-amber-400 {
1113
+ @media (prefers-color-scheme: dark) {
1114
+ color: var(--color-amber-400);
1115
+ }
1116
+ }
1117
+ }
1118
+ :root {
1119
+ --rsb-admin-bg: #f9fafb;
1120
+ --rsb-admin-bg-secondary: #f3f4f6;
1121
+ --rsb-admin-card-bg: #ffffff;
1122
+ --rsb-admin-text: #111827;
1123
+ --rsb-admin-text-muted: #6b7280;
1124
+ --rsb-admin-border: #e5e7eb;
1125
+ --rsb-admin-primary: #4f46e5;
1126
+ --rsb-admin-primary-hover: #4338ca;
1127
+ --rsb-admin-primary-text: #ffffff;
1128
+ --rsb-admin-success: #16a34a;
1129
+ --rsb-admin-success-bg: #ecfdf5;
1130
+ --rsb-admin-success-text: #065f46;
1131
+ --rsb-admin-warning: #d97706;
1132
+ --rsb-admin-warning-bg: #fffbeb;
1133
+ --rsb-admin-warning-text: #92400e;
1134
+ --rsb-admin-danger: #dc2626;
1135
+ --rsb-admin-danger-bg: #fef2f2;
1136
+ --rsb-admin-danger-text: #991b1b;
1137
+ --rsb-admin-info: #2563eb;
1138
+ --rsb-admin-info-bg: #eff6ff;
1139
+ --rsb-admin-info-text: #1e40af;
1140
+ --rsb-admin-sidebar-bg: #1f2937;
1141
+ --rsb-admin-sidebar-text: #d1d5db;
1142
+ --rsb-admin-sidebar-active: #4f46e5;
1143
+ --rsb-admin-sidebar-hover-bg: rgba(255,255,255,0.05);
1144
+ --rsb-admin-radius-sm: 0.25rem;
1145
+ --rsb-admin-radius: 0.375rem;
1146
+ --rsb-admin-radius-lg: 0.5rem;
1147
+ --rsb-admin-shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
1148
+ --rsb-admin-shadow: 0 1px 3px rgba(0,0,0,0.1), 0 1px 2px rgba(0,0,0,0.06);
1149
+ --rsb-admin-transition: 0.15s;
1150
+ }
1151
+ @property --tw-space-y-reverse {
1152
+ syntax: "*";
1153
+ inherits: false;
1154
+ initial-value: 0;
1155
+ }
1156
+ @property --tw-divide-y-reverse {
1157
+ syntax: "*";
1158
+ inherits: false;
1159
+ initial-value: 0;
1160
+ }
1161
+ @property --tw-border-style {
1162
+ syntax: "*";
1163
+ inherits: false;
1164
+ initial-value: solid;
1165
+ }
1166
+ @property --tw-font-weight {
1167
+ syntax: "*";
1168
+ inherits: false;
1169
+ }
1170
+ @property --tw-tracking {
1171
+ syntax: "*";
1172
+ inherits: false;
1173
+ }
1174
+ @property --tw-shadow {
1175
+ syntax: "*";
1176
+ inherits: false;
1177
+ initial-value: 0 0 #0000;
1178
+ }
1179
+ @property --tw-shadow-color {
1180
+ syntax: "*";
1181
+ inherits: false;
1182
+ }
1183
+ @property --tw-shadow-alpha {
1184
+ syntax: "<percentage>";
1185
+ inherits: false;
1186
+ initial-value: 100%;
1187
+ }
1188
+ @property --tw-inset-shadow {
1189
+ syntax: "*";
1190
+ inherits: false;
1191
+ initial-value: 0 0 #0000;
1192
+ }
1193
+ @property --tw-inset-shadow-color {
1194
+ syntax: "*";
1195
+ inherits: false;
1196
+ }
1197
+ @property --tw-inset-shadow-alpha {
1198
+ syntax: "<percentage>";
1199
+ inherits: false;
1200
+ initial-value: 100%;
1201
+ }
1202
+ @property --tw-ring-color {
1203
+ syntax: "*";
1204
+ inherits: false;
1205
+ }
1206
+ @property --tw-ring-shadow {
1207
+ syntax: "*";
1208
+ inherits: false;
1209
+ initial-value: 0 0 #0000;
1210
+ }
1211
+ @property --tw-inset-ring-color {
1212
+ syntax: "*";
1213
+ inherits: false;
1214
+ }
1215
+ @property --tw-inset-ring-shadow {
1216
+ syntax: "*";
1217
+ inherits: false;
1218
+ initial-value: 0 0 #0000;
1219
+ }
1220
+ @property --tw-ring-inset {
1221
+ syntax: "*";
1222
+ inherits: false;
1223
+ }
1224
+ @property --tw-ring-offset-width {
1225
+ syntax: "<length>";
1226
+ inherits: false;
1227
+ initial-value: 0px;
1228
+ }
1229
+ @property --tw-ring-offset-color {
1230
+ syntax: "*";
1231
+ inherits: false;
1232
+ initial-value: #fff;
1233
+ }
1234
+ @property --tw-ring-offset-shadow {
1235
+ syntax: "*";
1236
+ inherits: false;
1237
+ initial-value: 0 0 #0000;
1238
+ }
1239
+ @property --tw-blur {
1240
+ syntax: "*";
1241
+ inherits: false;
1242
+ }
1243
+ @property --tw-brightness {
1244
+ syntax: "*";
1245
+ inherits: false;
1246
+ }
1247
+ @property --tw-contrast {
1248
+ syntax: "*";
1249
+ inherits: false;
1250
+ }
1251
+ @property --tw-grayscale {
1252
+ syntax: "*";
1253
+ inherits: false;
1254
+ }
1255
+ @property --tw-hue-rotate {
1256
+ syntax: "*";
1257
+ inherits: false;
1258
+ }
1259
+ @property --tw-invert {
1260
+ syntax: "*";
1261
+ inherits: false;
1262
+ }
1263
+ @property --tw-opacity {
1264
+ syntax: "*";
1265
+ inherits: false;
1266
+ }
1267
+ @property --tw-saturate {
1268
+ syntax: "*";
1269
+ inherits: false;
1270
+ }
1271
+ @property --tw-sepia {
1272
+ syntax: "*";
1273
+ inherits: false;
1274
+ }
1275
+ @property --tw-drop-shadow {
1276
+ syntax: "*";
1277
+ inherits: false;
1278
+ }
1279
+ @property --tw-drop-shadow-color {
1280
+ syntax: "*";
1281
+ inherits: false;
1282
+ }
1283
+ @property --tw-drop-shadow-alpha {
1284
+ syntax: "<percentage>";
1285
+ inherits: false;
1286
+ initial-value: 100%;
1287
+ }
1288
+ @property --tw-drop-shadow-size {
1289
+ syntax: "*";
1290
+ inherits: false;
1291
+ }
1292
+ @property --tw-duration {
1293
+ syntax: "*";
1294
+ inherits: false;
1295
+ }
1296
+ @property --tw-content {
1297
+ syntax: "*";
1298
+ initial-value: "";
1299
+ inherits: false;
1300
+ }
1301
+ @property --tw-translate-x {
1302
+ syntax: "*";
1303
+ inherits: false;
1304
+ initial-value: 0;
1305
+ }
1306
+ @property --tw-translate-y {
1307
+ syntax: "*";
1308
+ inherits: false;
1309
+ initial-value: 0;
1310
+ }
1311
+ @property --tw-translate-z {
1312
+ syntax: "*";
1313
+ inherits: false;
1314
+ initial-value: 0;
1315
+ }
1316
+ @layer properties {
1317
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
1318
+ *, ::before, ::after, ::backdrop {
1319
+ --tw-space-y-reverse: 0;
1320
+ --tw-divide-y-reverse: 0;
1321
+ --tw-border-style: solid;
1322
+ --tw-font-weight: initial;
1323
+ --tw-tracking: initial;
1324
+ --tw-shadow: 0 0 #0000;
1325
+ --tw-shadow-color: initial;
1326
+ --tw-shadow-alpha: 100%;
1327
+ --tw-inset-shadow: 0 0 #0000;
1328
+ --tw-inset-shadow-color: initial;
1329
+ --tw-inset-shadow-alpha: 100%;
1330
+ --tw-ring-color: initial;
1331
+ --tw-ring-shadow: 0 0 #0000;
1332
+ --tw-inset-ring-color: initial;
1333
+ --tw-inset-ring-shadow: 0 0 #0000;
1334
+ --tw-ring-inset: initial;
1335
+ --tw-ring-offset-width: 0px;
1336
+ --tw-ring-offset-color: #fff;
1337
+ --tw-ring-offset-shadow: 0 0 #0000;
1338
+ --tw-blur: initial;
1339
+ --tw-brightness: initial;
1340
+ --tw-contrast: initial;
1341
+ --tw-grayscale: initial;
1342
+ --tw-hue-rotate: initial;
1343
+ --tw-invert: initial;
1344
+ --tw-opacity: initial;
1345
+ --tw-saturate: initial;
1346
+ --tw-sepia: initial;
1347
+ --tw-drop-shadow: initial;
1348
+ --tw-drop-shadow-color: initial;
1349
+ --tw-drop-shadow-alpha: 100%;
1350
+ --tw-drop-shadow-size: initial;
1351
+ --tw-duration: initial;
1352
+ --tw-content: "";
1353
+ --tw-translate-x: 0;
1354
+ --tw-translate-y: 0;
1355
+ --tw-translate-z: 0;
1356
+ }
1357
+ }
1358
+ }