openxiangda 1.0.39 → 1.0.41

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 (58) hide show
  1. package/README.md +2 -2
  2. package/lib/cli.js +9 -1
  3. package/openxiangda-skills/SKILL.md +6 -3
  4. package/openxiangda-skills/references/best-practices.md +29 -5
  5. package/openxiangda-skills/references/component-guide.md +79 -45
  6. package/openxiangda-skills/references/forms/component-registry.md +33 -1
  7. package/openxiangda-skills/references/openxiangda-api.md +7 -0
  8. package/openxiangda-skills/references/permissions-settings.md +27 -4
  9. package/openxiangda-skills/skills/openxiangda-core/SKILL.md +2 -2
  10. package/openxiangda-skills/skills/openxiangda-form/SKILL.md +9 -2
  11. package/openxiangda-skills/skills/openxiangda-page/SKILL.md +5 -3
  12. package/openxiangda-skills/skills/openxiangda-permission-settings/SKILL.md +5 -0
  13. package/package.json +1 -1
  14. package/packages/sdk/dist/runtime/index.cjs +546 -0
  15. package/packages/sdk/dist/runtime/index.cjs.map +1 -1
  16. package/packages/sdk/dist/runtime/index.d.mts +13 -1
  17. package/packages/sdk/dist/runtime/index.d.ts +13 -1
  18. package/packages/sdk/dist/runtime/index.mjs +546 -0
  19. package/packages/sdk/dist/runtime/index.mjs.map +1 -1
  20. package/packages/sdk/src/build-source/scripts/build-forms.mjs +5 -1
  21. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda-form.mdc +4 -0
  22. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda-page.mdc +2 -0
  23. package/templates/sy-lowcode-app-workspace/.cursor/rules/openxiangda.mdc +3 -0
  24. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda-form.md +4 -0
  25. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda-page.md +2 -0
  26. package/templates/sy-lowcode-app-workspace/.qoder/rules/openxiangda.md +3 -0
  27. package/templates/sy-lowcode-app-workspace/AGENTS.md +5 -0
  28. package/templates/sy-lowcode-app-workspace/examples/best-practices/README.md +8 -0
  29. package/templates/sy-lowcode-app-workspace/examples/best-practices/catalog.json +32 -0
  30. package/templates/sy-lowcode-app-workspace/examples/best-practices/decision-guide.md +20 -0
  31. package/templates/sy-lowcode-app-workspace/examples/best-practices/design-style.md +48 -0
  32. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/App.tsx +8 -0
  33. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/GlassHomeDashboard.tsx +232 -0
  34. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/index.tsx +10 -0
  35. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/page.config.ts +14 -0
  36. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/glass-home-dashboard/styles.css +196 -0
  37. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/App.tsx +8 -0
  38. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/MintAnalyticsDashboard.tsx +279 -0
  39. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/index.tsx +10 -0
  40. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/page.config.ts +14 -0
  41. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/mint-analytics-dashboard/styles.css +163 -0
  42. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/App.tsx +8 -0
  43. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/OpsMonitorDashboard.tsx +306 -0
  44. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/index.tsx +10 -0
  45. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/page.config.ts +14 -0
  46. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/ops-monitor-dashboard/styles.css +248 -0
  47. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/App.tsx +8 -0
  48. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/WorkOrderListDrawerPage.tsx +371 -0
  49. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/index.tsx +10 -0
  50. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/page.config.ts +14 -0
  51. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/pages/work-order-list-drawer/styles.css +182 -0
  52. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/DashboardPrimitives.tsx +832 -0
  53. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/chartOptions.ts +140 -0
  54. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/sampleData.ts +466 -0
  55. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/styles.css +874 -0
  56. package/templates/sy-lowcode-app-workspace/examples/best-practices/src/shared/components/admin-ui-templates/types.ts +150 -0
  57. package/templates/sy-lowcode-app-workspace/src/forms/README.md +4 -0
  58. package/templates/sy-lowcode-app-workspace/src/main.tsx +4 -0
@@ -0,0 +1,874 @@
1
+ .bp-admin-shell {
2
+ --bp-accent: #3b82f6;
3
+ --bp-accent-2: #22c55e;
4
+ --bp-bg: #f5f8ff;
5
+ --bp-surface: rgba(255, 255, 255, 0.86);
6
+ --bp-surface-strong: #ffffff;
7
+ --bp-border: rgba(148, 163, 184, 0.24);
8
+ --bp-text: #0f172a;
9
+ --bp-muted: #64748b;
10
+ --bp-shadow: 0 18px 50px rgba(40, 72, 128, 0.12);
11
+ display: grid;
12
+ grid-template-columns: 236px minmax(0, 1fr);
13
+ min-height: 100vh;
14
+ background:
15
+ radial-gradient(circle at 18% 4%, rgba(96, 165, 250, 0.28), transparent 28%),
16
+ radial-gradient(circle at 88% 0%, rgba(34, 211, 238, 0.16), transparent 30%),
17
+ var(--bp-bg);
18
+ color: var(--bp-text);
19
+ }
20
+
21
+ .bp-admin-shell--mint {
22
+ --bp-accent: #10b981;
23
+ --bp-accent-2: #3b82f6;
24
+ --bp-bg: #f3fbf8;
25
+ --bp-border: rgba(16, 185, 129, 0.18);
26
+ --bp-shadow: 0 16px 42px rgba(15, 118, 110, 0.1);
27
+ background:
28
+ radial-gradient(circle at 0% 6%, rgba(16, 185, 129, 0.18), transparent 30%),
29
+ linear-gradient(145deg, #f1fbf7 0%, #f8fbff 52%, #ffffff 100%);
30
+ }
31
+
32
+ .bp-admin-shell--ops {
33
+ --bp-accent: #4f46e5;
34
+ --bp-accent-2: #14b8a6;
35
+ --bp-bg: #eef3ff;
36
+ --bp-border: rgba(99, 102, 241, 0.18);
37
+ --bp-shadow: 0 20px 56px rgba(79, 70, 229, 0.14);
38
+ background:
39
+ radial-gradient(circle at 10% 0%, rgba(124, 58, 237, 0.22), transparent 30%),
40
+ radial-gradient(circle at 82% 8%, rgba(20, 184, 166, 0.16), transparent 30%),
41
+ linear-gradient(135deg, #eef3ff 0%, #f8fbff 48%, #f5f2ff 100%);
42
+ }
43
+
44
+ .bp-admin-shell--work {
45
+ --bp-accent: #2563eb;
46
+ --bp-accent-2: #10b981;
47
+ --bp-bg: #f7f9fc;
48
+ --bp-surface: #ffffff;
49
+ --bp-border: #e5eaf2;
50
+ --bp-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
51
+ grid-template-columns: 208px minmax(0, 1fr);
52
+ background: #f7f9fc;
53
+ }
54
+
55
+ .bp-admin-sidebar {
56
+ position: sticky;
57
+ top: 0;
58
+ z-index: 2;
59
+ display: flex;
60
+ flex-direction: column;
61
+ height: 100vh;
62
+ min-width: 0;
63
+ border-right: 1px solid var(--bp-border);
64
+ background: rgba(255, 255, 255, 0.74);
65
+ box-shadow: 10px 0 32px rgba(30, 64, 175, 0.05);
66
+ backdrop-filter: blur(22px);
67
+ }
68
+
69
+ .bp-admin-shell--work .bp-admin-sidebar {
70
+ background: #ffffff;
71
+ box-shadow: none;
72
+ }
73
+
74
+ .bp-admin-brand {
75
+ display: grid;
76
+ grid-template-columns: 38px minmax(0, 1fr) auto;
77
+ gap: 12px;
78
+ align-items: center;
79
+ min-height: 72px;
80
+ padding: 18px 18px 14px;
81
+ }
82
+
83
+ .bp-admin-brand__mark {
84
+ display: grid;
85
+ width: 38px;
86
+ height: 38px;
87
+ place-items: center;
88
+ border-radius: 13px;
89
+ background: linear-gradient(135deg, var(--bp-accent), var(--bp-accent-2));
90
+ color: #ffffff;
91
+ font-size: 18px;
92
+ font-weight: 800;
93
+ box-shadow: 0 12px 28px color-mix(in srgb, var(--bp-accent) 26%, transparent);
94
+ }
95
+
96
+ .bp-admin-brand strong {
97
+ display: block;
98
+ overflow: hidden;
99
+ color: var(--bp-text);
100
+ font-size: 15px;
101
+ font-weight: 700;
102
+ line-height: 1.25;
103
+ text-overflow: ellipsis;
104
+ white-space: nowrap;
105
+ }
106
+
107
+ .bp-admin-brand small {
108
+ display: block;
109
+ overflow: hidden;
110
+ margin-top: 3px;
111
+ color: var(--bp-muted);
112
+ font-size: 12px;
113
+ line-height: 1.25;
114
+ text-overflow: ellipsis;
115
+ white-space: nowrap;
116
+ }
117
+
118
+ .bp-admin-collapse {
119
+ color: var(--bp-accent);
120
+ border: 0;
121
+ background: rgba(255, 255, 255, 0.68);
122
+ box-shadow: 0 8px 20px rgba(99, 102, 241, 0.12);
123
+ }
124
+
125
+ .bp-admin-nav {
126
+ display: grid;
127
+ gap: 4px;
128
+ padding: 8px 14px;
129
+ overflow: auto;
130
+ }
131
+
132
+ .bp-admin-nav__item,
133
+ .bp-admin-nav__child {
134
+ display: flex;
135
+ align-items: center;
136
+ width: 100%;
137
+ border: 0;
138
+ color: #334155;
139
+ background: transparent;
140
+ text-align: left;
141
+ cursor: pointer;
142
+ transition:
143
+ background 160ms ease,
144
+ color 160ms ease,
145
+ transform 160ms ease;
146
+ }
147
+
148
+ .bp-admin-nav__item {
149
+ gap: 11px;
150
+ min-height: 44px;
151
+ padding: 0 12px;
152
+ border-radius: 12px;
153
+ font-size: 14px;
154
+ }
155
+
156
+ .bp-admin-nav__child {
157
+ min-height: 36px;
158
+ padding: 0 12px 0 44px;
159
+ border-radius: 8px;
160
+ font-size: 13px;
161
+ }
162
+
163
+ .bp-admin-nav__item:hover,
164
+ .bp-admin-nav__child:hover,
165
+ .bp-admin-nav__item.is-active,
166
+ .bp-admin-nav__child.is-active {
167
+ color: var(--bp-accent);
168
+ background: color-mix(in srgb, var(--bp-accent) 10%, #ffffff);
169
+ }
170
+
171
+ .bp-admin-nav__item.is-active {
172
+ box-shadow: inset 3px 0 0 var(--bp-accent);
173
+ }
174
+
175
+ .bp-admin-sidebar__footer {
176
+ margin-top: auto;
177
+ padding: 16px;
178
+ }
179
+
180
+ .bp-admin-main {
181
+ min-width: 0;
182
+ }
183
+
184
+ .bp-admin-topbar {
185
+ position: sticky;
186
+ top: 0;
187
+ z-index: 1;
188
+ display: flex;
189
+ align-items: center;
190
+ justify-content: space-between;
191
+ gap: 16px;
192
+ min-height: 72px;
193
+ padding: 12px 28px;
194
+ border-bottom: 1px solid var(--bp-border);
195
+ background: rgba(255, 255, 255, 0.66);
196
+ backdrop-filter: blur(20px);
197
+ }
198
+
199
+ .bp-admin-shell--work .bp-admin-topbar {
200
+ min-height: 56px;
201
+ padding: 8px 16px;
202
+ background: #ffffff;
203
+ }
204
+
205
+ .bp-admin-topbar__title strong {
206
+ display: block;
207
+ color: var(--bp-text);
208
+ font-size: 17px;
209
+ font-weight: 700;
210
+ line-height: 1.35;
211
+ }
212
+
213
+ .bp-admin-topbar__title span {
214
+ display: block;
215
+ margin-top: 2px;
216
+ color: var(--bp-muted);
217
+ font-size: 12px;
218
+ }
219
+
220
+ .bp-admin-topbar__actions {
221
+ display: flex;
222
+ align-items: center;
223
+ gap: 10px;
224
+ min-width: 0;
225
+ }
226
+
227
+ .bp-admin-search {
228
+ width: min(330px, 30vw);
229
+ border-radius: 14px;
230
+ }
231
+
232
+ .bp-admin-user-menu.ant-btn {
233
+ display: inline-flex;
234
+ align-items: center;
235
+ gap: 8px;
236
+ max-width: 142px;
237
+ min-width: 0;
238
+ height: 38px;
239
+ padding: 0 8px;
240
+ color: var(--bp-text);
241
+ }
242
+
243
+ .bp-admin-user-menu .ant-avatar {
244
+ flex: none;
245
+ background: linear-gradient(135deg, var(--bp-accent), var(--bp-accent-2));
246
+ }
247
+
248
+ .bp-admin-user-menu__name {
249
+ display: block;
250
+ min-width: 0;
251
+ overflow: hidden;
252
+ color: var(--bp-text);
253
+ font-size: 13px;
254
+ font-weight: 600;
255
+ text-overflow: ellipsis;
256
+ white-space: nowrap;
257
+ }
258
+
259
+ .bp-admin-content {
260
+ display: grid;
261
+ gap: 18px;
262
+ min-width: 0;
263
+ padding: 22px 28px 28px;
264
+ }
265
+
266
+ .bp-admin-shell--work .bp-admin-content {
267
+ padding: 16px;
268
+ }
269
+
270
+ .bp-admin-panel,
271
+ .bp-admin-metric {
272
+ min-width: 0;
273
+ border: 1px solid var(--bp-border);
274
+ border-radius: 18px;
275
+ background: var(--bp-surface);
276
+ box-shadow: var(--bp-shadow);
277
+ backdrop-filter: blur(18px);
278
+ }
279
+
280
+ .bp-admin-shell--work .bp-admin-panel,
281
+ .bp-admin-shell--work .bp-admin-metric {
282
+ border-radius: 6px;
283
+ box-shadow: none;
284
+ }
285
+
286
+ .bp-admin-panel {
287
+ padding: 18px;
288
+ }
289
+
290
+ .bp-admin-panel__header {
291
+ display: flex;
292
+ align-items: center;
293
+ justify-content: space-between;
294
+ gap: 12px;
295
+ margin-bottom: 14px;
296
+ }
297
+
298
+ .bp-admin-panel__header h3 {
299
+ margin: 0;
300
+ color: var(--bp-text);
301
+ font-size: 16px;
302
+ font-weight: 700;
303
+ }
304
+
305
+ .bp-admin-icon {
306
+ display: inline-flex;
307
+ align-items: center;
308
+ justify-content: center;
309
+ flex: none;
310
+ color: currentColor;
311
+ font-size: 16px;
312
+ }
313
+
314
+ .bp-admin-tone-blue {
315
+ color: #3b82f6;
316
+ }
317
+
318
+ .bp-admin-tone-cyan {
319
+ color: #06b6d4;
320
+ }
321
+
322
+ .bp-admin-tone-green,
323
+ .bp-admin-tone-mint {
324
+ color: #10b981;
325
+ }
326
+
327
+ .bp-admin-tone-purple {
328
+ color: #7c3aed;
329
+ }
330
+
331
+ .bp-admin-tone-orange {
332
+ color: #f97316;
333
+ }
334
+
335
+ .bp-admin-tone-red {
336
+ color: #ef4444;
337
+ }
338
+
339
+ .bp-admin-tone-slate {
340
+ color: #64748b;
341
+ }
342
+
343
+ .bp-admin-metric {
344
+ position: relative;
345
+ display: grid;
346
+ gap: 8px;
347
+ min-height: 144px;
348
+ padding: 16px;
349
+ overflow: hidden;
350
+ }
351
+
352
+ .bp-admin-metric__head {
353
+ display: flex;
354
+ align-items: center;
355
+ justify-content: space-between;
356
+ gap: 12px;
357
+ color: #334155;
358
+ font-size: 14px;
359
+ font-weight: 600;
360
+ }
361
+
362
+ .bp-admin-metric__head .bp-admin-icon {
363
+ width: 36px;
364
+ height: 36px;
365
+ border-radius: 12px;
366
+ background: color-mix(in srgb, currentColor 14%, #ffffff);
367
+ font-size: 18px;
368
+ }
369
+
370
+ .bp-admin-metric strong {
371
+ color: #0f172a;
372
+ font-size: 23px;
373
+ font-weight: 760;
374
+ line-height: 1.1;
375
+ }
376
+
377
+ .bp-admin-metric__delta {
378
+ display: flex;
379
+ align-items: center;
380
+ gap: 8px;
381
+ color: var(--bp-muted);
382
+ font-size: 12px;
383
+ }
384
+
385
+ .bp-admin-metric__delta b {
386
+ font-weight: 700;
387
+ }
388
+
389
+ .bp-admin-metric__delta .is-up {
390
+ color: #10b981;
391
+ }
392
+
393
+ .bp-admin-metric__delta .is-down {
394
+ color: #ef4444;
395
+ }
396
+
397
+ .bp-admin-sparkline {
398
+ width: 100%;
399
+ height: 46px;
400
+ }
401
+
402
+ .bp-admin-quick-grid {
403
+ display: grid;
404
+ grid-template-columns: repeat(auto-fit, minmax(72px, 1fr));
405
+ gap: 14px 18px;
406
+ }
407
+
408
+ .bp-admin-quick-grid--compact {
409
+ grid-template-columns: repeat(auto-fit, minmax(64px, 1fr));
410
+ }
411
+
412
+ .bp-admin-quick-action {
413
+ display: grid;
414
+ gap: 8px;
415
+ justify-items: center;
416
+ min-width: 0;
417
+ border: 0;
418
+ background: transparent;
419
+ color: #334155;
420
+ font-size: 13px;
421
+ line-height: 1.25;
422
+ cursor: pointer;
423
+ }
424
+
425
+ .bp-admin-quick-action__icon {
426
+ display: grid;
427
+ width: 42px;
428
+ height: 42px;
429
+ place-items: center;
430
+ border-radius: 13px;
431
+ color: #ffffff;
432
+ font-size: 19px;
433
+ box-shadow: 0 12px 24px rgba(59, 130, 246, 0.18);
434
+ transition:
435
+ transform 160ms ease,
436
+ box-shadow 160ms ease;
437
+ }
438
+
439
+ .bp-admin-quick-action:hover .bp-admin-quick-action__icon {
440
+ transform: translateY(-2px);
441
+ box-shadow: 0 16px 30px rgba(59, 130, 246, 0.24);
442
+ }
443
+
444
+ .bp-admin-ranking,
445
+ .bp-admin-activity,
446
+ .bp-admin-notices,
447
+ .bp-admin-todo,
448
+ .bp-admin-task-progress {
449
+ display: grid;
450
+ gap: 10px;
451
+ margin: 0;
452
+ padding: 0;
453
+ }
454
+
455
+ .bp-admin-ranking li,
456
+ .bp-admin-activity__item,
457
+ .bp-admin-notice,
458
+ .bp-admin-todo__item,
459
+ .bp-admin-task-progress__item {
460
+ min-width: 0;
461
+ }
462
+
463
+ .bp-admin-ranking li {
464
+ display: grid;
465
+ grid-template-columns: 26px minmax(0, 1fr) auto;
466
+ gap: 10px;
467
+ align-items: center;
468
+ color: #475569;
469
+ font-size: 13px;
470
+ }
471
+
472
+ .bp-admin-ranking__rank {
473
+ display: grid;
474
+ width: 22px;
475
+ height: 22px;
476
+ place-items: center;
477
+ border-radius: 50%;
478
+ background: #e2e8f0;
479
+ color: #475569;
480
+ font-size: 12px;
481
+ font-weight: 700;
482
+ }
483
+
484
+ .bp-admin-ranking__rank.rank-1,
485
+ .bp-admin-ranking__rank.rank-2,
486
+ .bp-admin-ranking__rank.rank-3 {
487
+ background: #fff7ed;
488
+ color: #f97316;
489
+ }
490
+
491
+ .bp-admin-ranking strong {
492
+ color: #64748b;
493
+ font-size: 13px;
494
+ font-weight: 600;
495
+ }
496
+
497
+ .bp-admin-activity__item {
498
+ display: grid;
499
+ grid-template-columns: 10px minmax(0, 1fr) auto;
500
+ gap: 9px;
501
+ align-items: center;
502
+ color: #475569;
503
+ font-size: 13px;
504
+ }
505
+
506
+ .bp-admin-activity__item i {
507
+ display: block;
508
+ width: 7px;
509
+ height: 7px;
510
+ border-radius: 999px;
511
+ background: currentColor;
512
+ }
513
+
514
+ .bp-admin-activity__item time,
515
+ .bp-admin-notice time,
516
+ .bp-admin-todo time {
517
+ color: #94a3b8;
518
+ font-size: 12px;
519
+ white-space: nowrap;
520
+ }
521
+
522
+ .bp-admin-notice {
523
+ display: grid;
524
+ grid-template-columns: 38px minmax(0, 1fr) auto;
525
+ gap: 10px;
526
+ align-items: center;
527
+ }
528
+
529
+ .bp-admin-notice .bp-admin-icon {
530
+ width: 36px;
531
+ height: 36px;
532
+ border-radius: 12px;
533
+ background: color-mix(in srgb, currentColor 14%, #ffffff);
534
+ }
535
+
536
+ .bp-admin-notice strong,
537
+ .bp-admin-notice span {
538
+ display: block;
539
+ overflow: hidden;
540
+ text-overflow: ellipsis;
541
+ white-space: nowrap;
542
+ }
543
+
544
+ .bp-admin-notice strong {
545
+ color: #334155;
546
+ font-size: 13px;
547
+ }
548
+
549
+ .bp-admin-notice span {
550
+ margin-top: 3px;
551
+ color: #94a3b8;
552
+ font-size: 12px;
553
+ }
554
+
555
+ .bp-admin-todo__item {
556
+ display: grid;
557
+ grid-template-columns: 18px minmax(0, 1fr) auto auto;
558
+ gap: 8px;
559
+ align-items: center;
560
+ color: #475569;
561
+ font-size: 13px;
562
+ }
563
+
564
+ .bp-admin-task-progress__item > div {
565
+ display: grid;
566
+ grid-template-columns: minmax(0, 1fr) 44px 52px;
567
+ gap: 8px;
568
+ align-items: center;
569
+ margin-bottom: 4px;
570
+ color: #475569;
571
+ font-size: 13px;
572
+ }
573
+
574
+ .bp-admin-task-progress__item b {
575
+ color: #1e40af;
576
+ text-align: right;
577
+ }
578
+
579
+ .bp-admin-task-progress__item small {
580
+ color: #64748b;
581
+ }
582
+
583
+ .bp-admin-health {
584
+ display: grid;
585
+ grid-template-columns: 150px minmax(0, 1fr);
586
+ gap: 18px;
587
+ align-items: center;
588
+ }
589
+
590
+ .bp-admin-health__score {
591
+ display: grid;
592
+ color: #10b981;
593
+ font-size: 28px;
594
+ font-weight: 800;
595
+ line-height: 1;
596
+ }
597
+
598
+ .bp-admin-health__score small {
599
+ margin-top: 7px;
600
+ color: #64748b;
601
+ font-size: 12px;
602
+ font-weight: 500;
603
+ }
604
+
605
+ .bp-admin-health__checks {
606
+ display: grid;
607
+ gap: 10px;
608
+ }
609
+
610
+ .bp-admin-health__checks span {
611
+ display: flex;
612
+ align-items: center;
613
+ justify-content: space-between;
614
+ gap: 10px;
615
+ color: #475569;
616
+ font-size: 13px;
617
+ }
618
+
619
+ .bp-admin-health__checks svg,
620
+ .bp-admin-health__checks b {
621
+ color: #10b981;
622
+ }
623
+
624
+ .bp-admin-drawer-form {
625
+ padding-bottom: 12px;
626
+ }
627
+
628
+ .bp-admin-full {
629
+ width: 100%;
630
+ }
631
+
632
+ .bp-admin-drawer-footer {
633
+ display: flex;
634
+ justify-content: flex-end;
635
+ gap: 10px;
636
+ }
637
+
638
+ .bp-admin-drawer-detail {
639
+ display: grid;
640
+ gap: 18px;
641
+ }
642
+
643
+ .bp-admin-drawer-detail__title {
644
+ display: grid;
645
+ gap: 8px;
646
+ padding-bottom: 12px;
647
+ border-bottom: 1px solid #eef2f7;
648
+ }
649
+
650
+ .bp-admin-drawer-detail__title strong {
651
+ color: #0f172a;
652
+ font-size: 16px;
653
+ line-height: 1.35;
654
+ }
655
+
656
+ .bp-admin-drawer-detail__title span {
657
+ color: #64748b;
658
+ font-size: 12px;
659
+ }
660
+
661
+ .bp-admin-drawer-block {
662
+ display: grid;
663
+ gap: 8px;
664
+ }
665
+
666
+ .bp-admin-drawer-block h4 {
667
+ margin: 0;
668
+ color: #334155;
669
+ font-size: 14px;
670
+ font-weight: 700;
671
+ }
672
+
673
+ .bp-admin-drawer-block p {
674
+ margin: 0;
675
+ padding: 12px;
676
+ border: 1px solid #e5eaf2;
677
+ border-radius: 8px;
678
+ background: #f8fafc;
679
+ color: #475569;
680
+ font-size: 13px;
681
+ line-height: 1.7;
682
+ }
683
+
684
+ .bp-admin-drawer-attachment {
685
+ display: grid;
686
+ grid-template-columns: 32px minmax(0, 1fr) auto;
687
+ gap: 8px;
688
+ align-items: center;
689
+ padding: 10px;
690
+ border: 1px solid #e5eaf2;
691
+ border-radius: 8px;
692
+ background: #ffffff;
693
+ color: #475569;
694
+ font-size: 13px;
695
+ }
696
+
697
+ .bp-admin-drawer-attachment svg {
698
+ color: #2563eb;
699
+ font-size: 20px;
700
+ }
701
+
702
+ .bp-admin-drawer-attachment small {
703
+ color: #94a3b8;
704
+ }
705
+
706
+ .bp-admin-drawer-timeline {
707
+ display: grid;
708
+ gap: 12px;
709
+ }
710
+
711
+ .bp-admin-drawer-timeline div {
712
+ position: relative;
713
+ display: grid;
714
+ gap: 3px;
715
+ padding-left: 18px;
716
+ }
717
+
718
+ .bp-admin-drawer-timeline div::before {
719
+ position: absolute;
720
+ top: 13px;
721
+ bottom: -14px;
722
+ left: 4px;
723
+ width: 1px;
724
+ background: #dbe4f0;
725
+ content: "";
726
+ }
727
+
728
+ .bp-admin-drawer-timeline div:last-child::before {
729
+ display: none;
730
+ }
731
+
732
+ .bp-admin-drawer-timeline i {
733
+ position: absolute;
734
+ top: 4px;
735
+ left: 0;
736
+ display: block;
737
+ width: 9px;
738
+ height: 9px;
739
+ border-radius: 50%;
740
+ background: #2563eb;
741
+ box-shadow: 0 0 0 4px #dbeafe;
742
+ }
743
+
744
+ .bp-admin-drawer-timeline strong {
745
+ color: #334155;
746
+ font-size: 13px;
747
+ }
748
+
749
+ .bp-admin-drawer-timeline span {
750
+ color: #94a3b8;
751
+ font-size: 12px;
752
+ }
753
+
754
+ @media (max-width: 1180px) {
755
+ .bp-admin-shell {
756
+ grid-template-columns: 76px minmax(0, 1fr);
757
+ }
758
+
759
+ .bp-admin-brand {
760
+ grid-template-columns: 1fr;
761
+ justify-items: center;
762
+ padding: 16px 10px 10px;
763
+ }
764
+
765
+ .bp-admin-brand div,
766
+ .bp-admin-nav__item span,
767
+ .bp-admin-nav__children,
768
+ .bp-admin-collapse {
769
+ display: none;
770
+ }
771
+
772
+ .bp-admin-nav__item {
773
+ justify-content: center;
774
+ padding: 0;
775
+ }
776
+
777
+ .bp-admin-content {
778
+ padding: 18px;
779
+ }
780
+ }
781
+
782
+ @media (max-width: 820px) {
783
+ .bp-admin-shell {
784
+ display: block;
785
+ }
786
+
787
+ .bp-admin-sidebar {
788
+ position: static;
789
+ height: auto;
790
+ border-right: 0;
791
+ border-bottom: 1px solid var(--bp-border);
792
+ }
793
+
794
+ .bp-admin-brand {
795
+ grid-template-columns: 38px minmax(0, 1fr);
796
+ justify-items: start;
797
+ }
798
+
799
+ .bp-admin-brand div {
800
+ display: block;
801
+ }
802
+
803
+ .bp-admin-nav {
804
+ display: flex;
805
+ padding: 0 12px 12px;
806
+ overflow-x: auto;
807
+ }
808
+
809
+ .bp-admin-nav__item {
810
+ width: auto;
811
+ min-width: 104px;
812
+ justify-content: center;
813
+ padding: 0 12px;
814
+ }
815
+
816
+ .bp-admin-nav__item span {
817
+ display: inline;
818
+ }
819
+
820
+ .bp-admin-sidebar__footer {
821
+ display: none;
822
+ }
823
+
824
+ .bp-admin-topbar {
825
+ position: static;
826
+ align-items: stretch;
827
+ flex-direction: column;
828
+ padding: 14px 16px;
829
+ }
830
+
831
+ .bp-admin-topbar__actions {
832
+ flex-wrap: wrap;
833
+ }
834
+
835
+ .bp-admin-search {
836
+ width: 100%;
837
+ }
838
+
839
+ .bp-admin-user-menu__name {
840
+ display: none;
841
+ }
842
+
843
+ .bp-admin-content {
844
+ padding: 14px;
845
+ }
846
+
847
+ .bp-admin-quick-grid,
848
+ .bp-admin-quick-grid--compact {
849
+ grid-template-columns: repeat(3, minmax(72px, 1fr));
850
+ }
851
+
852
+ .bp-admin-health {
853
+ grid-template-columns: 1fr;
854
+ justify-items: center;
855
+ }
856
+ }
857
+
858
+ @media (prefers-reduced-motion: no-preference) {
859
+ .bp-admin-shell--ops .bp-admin-metric .bp-admin-icon,
860
+ .bp-admin-shell--ops .bp-admin-quick-action__icon {
861
+ animation: bp-admin-float 4s ease-in-out infinite;
862
+ }
863
+ }
864
+
865
+ @keyframes bp-admin-float {
866
+ 0%,
867
+ 100% {
868
+ transform: translateY(0);
869
+ }
870
+
871
+ 50% {
872
+ transform: translateY(-3px);
873
+ }
874
+ }