mindroot 9.3.0__py3-none-any.whl → 9.5.0__py3-none-any.whl

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 (183) hide show
  1. mindroot/coreplugins/admin/__init__.py +3 -1
  2. mindroot/coreplugins/admin/agent_router.py +250 -7
  3. mindroot/coreplugins/admin/asset_manager.py +164 -0
  4. mindroot/coreplugins/admin/command_router.py +236 -1
  5. mindroot/coreplugins/admin/mcp_catalog_routes.py +156 -0
  6. mindroot/coreplugins/admin/mcp_publish_routes.py +450 -0
  7. mindroot/coreplugins/admin/mcp_registry_routes.py +495 -0
  8. mindroot/coreplugins/admin/mcp_routes.py +216 -0
  9. mindroot/coreplugins/admin/mod.py +62 -0
  10. mindroot/coreplugins/admin/oauth_callback_router.py +84 -0
  11. mindroot/coreplugins/admin/persona_handler.py +15 -6
  12. mindroot/coreplugins/admin/persona_router.py +158 -2
  13. mindroot/coreplugins/admin/plugin_manager.py +63 -0
  14. mindroot/coreplugins/admin/plugin_router_fixed.py +23 -0
  15. mindroot/coreplugins/admin/plugin_router_new_not_working.py +145 -0
  16. mindroot/coreplugins/admin/plugin_routes.py +114 -0
  17. mindroot/coreplugins/admin/registry_settings_routes.py +140 -0
  18. mindroot/coreplugins/admin/router.py +116 -15
  19. mindroot/coreplugins/admin/service_models.py +1 -1
  20. mindroot/coreplugins/admin/settings_router.py +1 -0
  21. mindroot/coreplugins/admin/static/css/admin-custom.css +357 -2
  22. mindroot/coreplugins/admin/static/css/dark.css +1 -0
  23. mindroot/coreplugins/admin/static/css/default.css +4 -0
  24. mindroot/coreplugins/admin/static/js/about-info.js +367 -0
  25. mindroot/coreplugins/admin/static/js/agent-form.js +83 -3
  26. mindroot/coreplugins/admin/static/js/api-key-script.js +307 -0
  27. mindroot/coreplugins/admin/static/js/mcp-manager.js +348 -0
  28. mindroot/coreplugins/admin/static/js/mcp-publisher.js +780 -0
  29. mindroot/coreplugins/admin/static/js/persona-editor.js +34 -5
  30. mindroot/coreplugins/admin/static/js/plugin-toggle.js +1 -1
  31. mindroot/coreplugins/admin/static/js/recommended-plugin-install.js +63 -0
  32. mindroot/coreplugins/admin/static/js/registry-auth-section.js +132 -0
  33. mindroot/coreplugins/admin/static/js/registry-manager-base.js +613 -0
  34. mindroot/coreplugins/admin/static/js/registry-manager-old.js +385 -0
  35. mindroot/coreplugins/admin/static/js/registry-manager-publish-old-delete.js +166 -0
  36. mindroot/coreplugins/admin/static/js/registry-manager.js +351 -0
  37. mindroot/coreplugins/admin/static/js/registry-publish-section.js +377 -0
  38. mindroot/coreplugins/admin/static/js/registry-search-section.js +400 -0
  39. mindroot/coreplugins/admin/static/js/registry-search-section.js.bak +3 -0
  40. mindroot/coreplugins/admin/static/js/registry-settings.js +69 -0
  41. mindroot/coreplugins/admin/static/js/registry-shared-services.js +857 -0
  42. mindroot/coreplugins/admin/static/js/registry-simple-sections.js +85 -0
  43. mindroot/coreplugins/admin/static/js/secure-widget-manager.js +438 -0
  44. mindroot/coreplugins/admin/static/logo.png +0 -0
  45. mindroot/coreplugins/admin/templates/admin.jinja2 +275 -110
  46. mindroot/coreplugins/agent/Assistant/agent.json +27 -11
  47. mindroot/coreplugins/agent/agent.py +2 -2
  48. mindroot/coreplugins/agent/command_parser.py +25 -10
  49. mindroot/coreplugins/agent/templates/system.jinja2 +0 -12
  50. mindroot/coreplugins/chat/__init__.py +4 -1
  51. mindroot/coreplugins/chat/router.py +132 -20
  52. mindroot/coreplugins/chat/router_dedup_patch.py +20 -0
  53. mindroot/coreplugins/chat/services.py +31 -1
  54. mindroot/coreplugins/chat/static/css/action-fix.css +32 -0
  55. mindroot/coreplugins/chat/static/css/admin-custom.css +5 -3
  56. mindroot/coreplugins/chat/static/css/dark.css +24 -3
  57. mindroot/coreplugins/chat/static/css/default.css +24 -3
  58. mindroot/coreplugins/chat/static/css/main.css +1 -0
  59. mindroot/coreplugins/chat/static/js/action.js +137 -60
  60. mindroot/coreplugins/chat/static/js/chat-history.js +3 -0
  61. mindroot/coreplugins/chat/static/js/chat.js +59 -16
  62. mindroot/coreplugins/chat/static/js/chat.js.diff +221 -0
  63. mindroot/coreplugins/chat/static/js/chatform.js +2 -2
  64. mindroot/coreplugins/chat/static/site.webmanifest +1 -1
  65. mindroot/coreplugins/chat/templates/chat.jinja2 +3 -3
  66. mindroot/coreplugins/chat/widget_manager.py +139 -0
  67. mindroot/coreplugins/chat/widget_routes.py +287 -0
  68. mindroot/coreplugins/check_list/inject/admin.jinja2 +1 -1
  69. mindroot/coreplugins/email/__init__.py +2 -0
  70. mindroot/coreplugins/email/email_provider.py +2 -2
  71. mindroot/coreplugins/email/mod.py +100 -0
  72. mindroot/coreplugins/email/services.py +5 -3
  73. mindroot/coreplugins/email/smtp_handler.py +9 -3
  74. mindroot/coreplugins/email/test_email_service.py +75 -0
  75. mindroot/coreplugins/env_manager/mod.py +61 -25
  76. mindroot/coreplugins/home/router.py +37 -2
  77. mindroot/coreplugins/home/static/imgs/logo.png +0 -0
  78. mindroot/coreplugins/home/static/imgs/logo.png.bak +0 -0
  79. mindroot/coreplugins/home/static/imgs/logo_teal.png +0 -0
  80. mindroot/coreplugins/home/static/imgs/logo_teal2.png +0 -0
  81. mindroot/coreplugins/home/static/imgs/logo_teal_detailed.png +0 -0
  82. mindroot/coreplugins/home/static/imgs/logo_teal_python.png +0 -0
  83. mindroot/coreplugins/home/templates/home.jinja2 +15 -6
  84. mindroot/coreplugins/index/indices/default/index.json +6 -6
  85. mindroot/coreplugins/jwt_auth/middleware.py +47 -2
  86. mindroot/coreplugins/jwt_auth/mod.py +40 -17
  87. mindroot/coreplugins/l8n/__init__.py +6 -0
  88. mindroot/coreplugins/l8n/debug_loader.py +85 -0
  89. mindroot/coreplugins/l8n/debug_middleware.py +74 -0
  90. mindroot/coreplugins/l8n/l8n_constants.py +19 -0
  91. mindroot/coreplugins/l8n/language_detection.py +183 -0
  92. mindroot/coreplugins/l8n/middleware.py +151 -0
  93. mindroot/coreplugins/l8n/mod.py +277 -0
  94. mindroot/coreplugins/l8n/monkey_patch_to_delete.py +186 -0
  95. mindroot/coreplugins/l8n/test_enhanced.py +298 -0
  96. mindroot/coreplugins/l8n/test_l8n.py +95 -0
  97. mindroot/coreplugins/l8n/test_l8n_standalone.py +251 -0
  98. mindroot/coreplugins/l8n/test_middleware.py +272 -0
  99. mindroot/coreplugins/l8n/utils.py +232 -0
  100. mindroot/coreplugins/mcp_/__init__.py +14 -0
  101. mindroot/coreplugins/mcp_/catalog_commands.py +328 -0
  102. mindroot/coreplugins/mcp_/catalog_manager.py +263 -0
  103. mindroot/coreplugins/mcp_/dynamic_commands.py +154 -0
  104. mindroot/coreplugins/mcp_/mcp_manager.py +1031 -0
  105. mindroot/coreplugins/mcp_/mod.py +367 -0
  106. mindroot/coreplugins/mcp_/oauth_storage.py +144 -0
  107. mindroot/coreplugins/mcp_/server_installer.py +79 -0
  108. mindroot/coreplugins/mcp_/setup.py +26 -0
  109. mindroot/coreplugins/mcp_/test_dynamic_commands.py +134 -0
  110. mindroot/coreplugins/mcp_/testmcpclient.py +92 -0
  111. mindroot/coreplugins/persona/mod.py +12 -7
  112. mindroot/coreplugins/signup/templates/signup.jinja2 +1 -1
  113. mindroot/coreplugins/subscriptions/__init__.py +1 -0
  114. mindroot/coreplugins/subscriptions/mod.py +14 -3
  115. mindroot/coreplugins/subscriptions/router.py +3 -0
  116. mindroot/coreplugins/user_service/__init__.py +1 -2
  117. mindroot/coreplugins/user_service/admin_init.py +1 -0
  118. mindroot/coreplugins/user_service/email_service.py +72 -17
  119. mindroot/coreplugins/user_service/mod.py +10 -2
  120. mindroot/coreplugins/user_service/router.py +2 -0
  121. mindroot/lib/auth/api_key.py +28 -0
  122. mindroot/lib/cli/plugins.py +94 -0
  123. mindroot/lib/plugins/default_plugin_manifest.json +20 -0
  124. mindroot/lib/plugins/installation.py +5 -5
  125. mindroot/lib/plugins/l8n_static_handler.py +225 -0
  126. mindroot/lib/plugins/loader.py +33 -3
  127. mindroot/lib/plugins/loader_with_l8n.py +281 -0
  128. mindroot/lib/plugins/manifest.py +236 -24
  129. mindroot/lib/providers/commands.py +3 -1
  130. mindroot/lib/route_decorators.py +5 -5
  131. mindroot/lib/templates.py +183 -11
  132. mindroot/lib/utils/merge_arrays.py +1 -1
  133. mindroot/migrate.py +39 -20
  134. mindroot/registry/data_access.py +1 -1
  135. mindroot/server.py +42 -13
  136. mindroot/server_missing_normal_args.py +197 -0
  137. mindroot/server_prev.py +173 -0
  138. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/METADATA +7 -2
  139. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/RECORD +144 -112
  140. mindroot/coreplugins/admin/static/favicon/about.txt +0 -6
  141. mindroot/coreplugins/admin/static/favicon/android-chrome-512x512.png +0 -0
  142. mindroot/coreplugins/admin/static/favicon/apple-touch-icon.png +0 -0
  143. mindroot/coreplugins/admin/static/favicon/favicon-16x16.png +0 -0
  144. mindroot/coreplugins/admin/static/favicon/favicon-32x32.png +0 -0
  145. mindroot/coreplugins/admin/static/favicon/favicon.ico +0 -0
  146. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/about.txt +0 -6
  147. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/android-chrome-192x192.png +0 -0
  148. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/android-chrome-512x512.png +0 -0
  149. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/apple-touch-icon.png +0 -0
  150. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/favicon-16x16.png +0 -0
  151. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/favicon-32x32.png +0 -0
  152. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/favicon.ico +0 -0
  153. mindroot/coreplugins/admin/static/favicon/favicon_io (1)/site.webmanifest +0 -1
  154. mindroot/coreplugins/admin/static/favicon/logo.png +0 -0
  155. mindroot/coreplugins/admin/static/favicon/site.webmanifest +0 -1
  156. mindroot/coreplugins/admin/static/js/backup/agent-editor.js +0 -186
  157. mindroot/coreplugins/admin/static/js/backup/agent-form.js +0 -1133
  158. mindroot/coreplugins/admin/static/js/backup/agent-list.js +0 -94
  159. mindroot/coreplugins/chat/static/favicon/about.txt +0 -6
  160. mindroot/coreplugins/chat/static/favicon/android-chrome-192x192.png +0 -0
  161. mindroot/coreplugins/chat/static/favicon/android-chrome-512x512.png +0 -0
  162. mindroot/coreplugins/chat/static/favicon/apple-touch-icon.png +0 -0
  163. mindroot/coreplugins/chat/static/favicon/favicon-16x16.png +0 -0
  164. mindroot/coreplugins/chat/static/favicon/favicon-32x32.png +0 -0
  165. mindroot/coreplugins/chat/static/favicon/favicon.ico +0 -0
  166. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/about.txt +0 -6
  167. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/android-chrome-192x192.png +0 -0
  168. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/android-chrome-512x512.png +0 -0
  169. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/apple-touch-icon.png +0 -0
  170. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/favicon-16x16.png +0 -0
  171. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/favicon-32x32.png +0 -0
  172. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/favicon.ico +0 -0
  173. mindroot/coreplugins/chat/static/favicon/favicon_io (1)/site.webmanifest +0 -1
  174. mindroot/coreplugins/chat/static/favicon/logo.png +0 -0
  175. mindroot/coreplugins/chat/static/favicon/site.webmanifest +0 -1
  176. mindroot/coreplugins/index/default.json +0 -76
  177. mindroot/coreplugins/user_service/file_trigger_service.py +0 -12
  178. mindroot/coreplugins/user_service/hooks.py +0 -23
  179. /mindroot/coreplugins/{admin/static/favicon/android-chrome-192x192.png → home/static/imgs/backuplogo.png} +0 -0
  180. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/WHEEL +0 -0
  181. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/entry_points.txt +0 -0
  182. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/licenses/LICENSE +0 -0
  183. {mindroot-9.3.0.dist-info → mindroot-9.5.0.dist-info}/top_level.txt +0 -0
@@ -138,7 +138,7 @@ details summary .material-icons {
138
138
 
139
139
  .commands-grid {
140
140
  display: grid;
141
- grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
141
+ grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
142
142
  gap: 0.5rem;
143
143
  margin-top: 0.25rem;
144
144
  }
@@ -147,7 +147,7 @@ details summary .material-icons {
147
147
  display: flex;
148
148
  align-items: center;
149
149
  gap: 0.5rem;
150
- padding: 0.35rem 0.5rem;
150
+ padding: 0.5rem 0.75rem;
151
151
  background: rgba(255, 255, 255, 0.05);
152
152
  border-radius: 4px;
153
153
  cursor: pointer;
@@ -167,6 +167,9 @@ details summary .material-icons {
167
167
 
168
168
  .command-name {
169
169
  white-space: nowrap;
170
+ flex: 1;
171
+ margin-right: 1rem;
172
+ min-width: 0;
170
173
  overflow: hidden;
171
174
  text-overflow: ellipsis;
172
175
  font-size: 0.9rem;
@@ -312,3 +315,355 @@ h2, h3, h4 {
312
315
  .admin-link, .admin-link:visited {
313
316
  color: #ddd;
314
317
  }
318
+
319
+ /* Category Section Styles */
320
+ .category-section {
321
+ margin-bottom: 2rem;
322
+ background: rgba(5, 5, 15, 0.6);
323
+ border-radius: 12px;
324
+ padding: 1.5rem;
325
+ border: 1px solid rgba(255, 255, 255, 0.08);
326
+ }
327
+
328
+ .category-title {
329
+ display: flex;
330
+ align-items: center;
331
+ gap: 0.75rem;
332
+ font-size: 1.3rem;
333
+ font-weight: 600;
334
+ color: rgba(255, 255, 255, 0.95);
335
+ margin: 0 0 1.5rem 0;
336
+ padding: 0.75rem 1rem;
337
+ background: rgba(255, 255, 255, 0.08);
338
+ border-radius: 8px;
339
+ border: 1px solid rgba(255, 255, 255, 0.12);
340
+ }
341
+
342
+ .category-title .material-icons {
343
+ font-size: 1.4rem;
344
+ opacity: 0.9;
345
+ }
346
+
347
+ /* Adjust details within categories */
348
+ .category-section details {
349
+ margin-bottom: 1rem;
350
+ background: rgba(15, 15, 30, 0.7);
351
+ border: 1px solid rgba(255, 255, 255, 0.12);
352
+ }
353
+
354
+ .category-section details:last-child {
355
+ margin-bottom: 0;
356
+ }
357
+
358
+ .category-section details summary {
359
+ background: rgba(255, 255, 255, 0.06);
360
+ padding: 1rem 1.25rem;
361
+ font-size: 1.05rem;
362
+ }
363
+
364
+ .category-section details summary:hover {
365
+ background: rgba(255, 255, 255, 0.12);
366
+ }
367
+
368
+ .category-section .details-content {
369
+ padding: 1.25rem;
370
+ background: rgba(10, 10, 25, 0.5);
371
+ }
372
+
373
+ /* Category-specific styling */
374
+ .category-section:nth-child(1) .category-title {
375
+ background: linear-gradient(135deg, rgba(74, 158, 255, 0.15), rgba(74, 158, 255, 0.08));
376
+ border-color: rgba(74, 158, 255, 0.2);
377
+ }
378
+
379
+ .category-section:nth-child(2) .category-title {
380
+ background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(76, 175, 80, 0.08));
381
+ border-color: rgba(76, 175, 80, 0.2);
382
+ }
383
+
384
+ .category-section:nth-child(3) .category-title {
385
+ background: linear-gradient(135deg, rgba(255, 152, 0, 0.15), rgba(255, 152, 0, 0.08));
386
+ border-color: rgba(255, 152, 0, 0.2);
387
+ }
388
+
389
+ /* Responsive adjustments for categories */
390
+ @media (max-width: 768px) {
391
+ .category-section {
392
+ padding: 1rem;
393
+ margin-bottom: 1.5rem;
394
+ }
395
+
396
+ .category-title {
397
+ font-size: 1.2rem;
398
+ padding: 0.6rem 0.8rem;
399
+ }
400
+
401
+ .category-section details summary {
402
+ padding: 0.8rem 1rem;
403
+ font-size: 1rem;
404
+ }
405
+
406
+ .category-section .details-content {
407
+ padding: 1rem;
408
+ }
409
+ }
410
+
411
+ /* Navigation Category Styles */
412
+ .nav-category {
413
+ margin-bottom: 0.5rem;
414
+ }
415
+
416
+ .nav-category-header {
417
+ display: flex;
418
+ align-items: center;
419
+ gap: 0.5rem;
420
+ padding: 0.75rem 1rem;
421
+ background: rgba(255, 255, 255, 0.08);
422
+ border: 1px solid rgba(255, 255, 255, 0.15);
423
+ border-radius: 6px;
424
+ cursor: pointer;
425
+ font-weight: 600;
426
+ font-size: 0.95rem;
427
+ color: rgba(255, 255, 255, 0.9);
428
+ margin-bottom: 0.5rem;
429
+ transition: background 0.2s ease;
430
+ }
431
+
432
+ .nav-category-header:hover {
433
+ background: rgba(255, 255, 255, 0.12);
434
+ }
435
+
436
+ .nav-category-header .material-icons {
437
+ font-size: 1.1rem;
438
+ opacity: 0.8;
439
+ }
440
+
441
+ .nav-category-content {
442
+ padding-left: 1rem;
443
+ border-left: 2px solid rgba(255, 255, 255, 0.1);
444
+ margin-left: 1rem;
445
+ }
446
+
447
+ .nav-category-content .tab-button {
448
+ width: 100%;
449
+ margin-bottom: 0.25rem;
450
+ justify-content: flex-start;
451
+ padding: 0.6rem 0.75rem;
452
+ font-size: 0.9rem;
453
+ }
454
+
455
+ /* Category-specific colors for headers */
456
+ .nav-category:nth-child(1) .nav-category-header {
457
+ background: linear-gradient(135deg, rgba(74, 158, 255, 0.15), rgba(74, 158, 255, 0.08));
458
+ border-color: rgba(74, 158, 255, 0.2);
459
+ }
460
+
461
+ .nav-category:nth-child(1) .nav-category-content {
462
+ border-left-color: rgba(74, 158, 255, 0.3);
463
+ }
464
+
465
+ .nav-category:nth-child(2) .nav-category-header {
466
+ background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(76, 175, 80, 0.08));
467
+ border-color: rgba(76, 175, 80, 0.2);
468
+ }
469
+
470
+ .nav-category:nth-child(2) .nav-category-content {
471
+ border-left-color: rgba(76, 175, 80, 0.3);
472
+ }
473
+
474
+ .nav-category:nth-child(3) .nav-category-header {
475
+ background: linear-gradient(135deg, rgba(255, 152, 0, 0.15), rgba(255, 152, 0, 0.08));
476
+ border-color: rgba(255, 152, 0, 0.2);
477
+ }
478
+
479
+ .nav-category:nth-child(3) .nav-category-content {
480
+ border-left-color: rgba(255, 152, 0, 0.3);
481
+ }
482
+
483
+ /* Responsive adjustments for navigation categories */
484
+ @media (max-width: 768px) {
485
+ .nav-category-header {
486
+ padding: 0.6rem 0.8rem;
487
+ font-size: 0.9rem;
488
+ }
489
+
490
+ .nav-category-content {
491
+ padding-left: 0.75rem;
492
+ margin-left: 0.75rem;
493
+ }
494
+
495
+ .nav-category-content .tab-button {
496
+ padding: 0.5rem 0.6rem;
497
+ font-size: 0.85rem;
498
+ }
499
+ }
500
+
501
+ /* Enhanced Navigation Category Styles with Expand Indicators */
502
+ .nav-category-header {
503
+ position: relative;
504
+ }
505
+
506
+ .nav-category-header::after {
507
+ content: '▼';
508
+ position: absolute;
509
+ right: 1rem;
510
+ top: 50%;
511
+ transform: translateY(-50%);
512
+ font-size: 0.8rem;
513
+ opacity: 0.7;
514
+ transition: transform 0.2s ease, opacity 0.2s ease;
515
+ }
516
+
517
+ .nav-category:not([open]) .nav-category-header::after {
518
+ transform: translateY(-50%) rotate(-90deg);
519
+ }
520
+
521
+ .nav-category-header:hover::after {
522
+ opacity: 1;
523
+ }
524
+
525
+ /* Enhanced hover effects */
526
+ .nav-category-header:hover {
527
+ background: rgba(255, 255, 255, 0.15);
528
+ transform: translateY(-1px);
529
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
530
+ }
531
+
532
+ /* Category-specific hover enhancements */
533
+ .nav-category:nth-child(1) .nav-category-header:hover {
534
+ background: linear-gradient(135deg, rgba(74, 158, 255, 0.25), rgba(74, 158, 255, 0.15));
535
+ border-color: rgba(74, 158, 255, 0.3);
536
+ }
537
+
538
+ .nav-category:nth-child(2) .nav-category-header:hover {
539
+ background: linear-gradient(135deg, rgba(76, 175, 80, 0.25), rgba(76, 175, 80, 0.15));
540
+ border-color: rgba(76, 175, 80, 0.3);
541
+ }
542
+
543
+ .nav-category:nth-child(3) .nav-category-header:hover {
544
+ background: linear-gradient(135deg, rgba(255, 152, 0, 0.25), rgba(255, 152, 0, 0.15));
545
+ border-color: rgba(255, 152, 0, 0.3);
546
+ }
547
+
548
+ /* Smooth transitions for all category interactions */
549
+ .nav-category-header {
550
+ transition: all 0.2s ease;
551
+ }
552
+
553
+ .nav-category-content {
554
+ transition: all 0.2s ease;
555
+ }
556
+
557
+ /* Enhanced tab button hover within categories */
558
+ .nav-category-content .tab-button:hover {
559
+ background: rgba(255, 255, 255, 0.15);
560
+ transform: translateX(2px);
561
+ border-left: 2px solid rgba(255, 255, 255, 0.3);
562
+ }
563
+
564
+ /* Active state enhancements */
565
+ .nav-category-content .tab-button.active {
566
+ background: rgba(255, 255, 255, 0.2);
567
+ border-left: 3px solid #4a9eff;
568
+ font-weight: 500;
569
+ }
570
+
571
+ .nav-category-content .tab-button.active:hover {
572
+ background: rgba(255, 255, 255, 0.25);
573
+ }
574
+
575
+
576
+ .publish-details summary {
577
+ list-style: none;
578
+ }
579
+
580
+ /* Remove webkit default arrow */
581
+ .publish-details summary::-webkit-details-marker {
582
+ display: none;
583
+ }
584
+
585
+ /* Add custom arrow using ::before pseudo-element */
586
+ .publish-details summary::before {
587
+ content: '▶';
588
+ margin-right: 8px;
589
+ transition: transform 0.2s ease;
590
+ display: inline-block;
591
+ }
592
+
593
+ /* Rotate arrow when expanded */
594
+ .publish-details details[open] summary::before {
595
+ transform: rotate(90deg);
596
+ }
597
+
598
+
599
+
600
+ /* Override all radio buttons globally */
601
+ input[type="radio"] {
602
+ /* Remove default appearance */
603
+ appearance: none;
604
+ -webkit-appearance: none;
605
+ -moz-appearance: none;
606
+
607
+ /* Size and positioning */
608
+ width: 20px;
609
+ height: 20px;
610
+ margin-right: 8px;
611
+
612
+ /* Dark theme styling */
613
+ background-color: #2a2a2a;
614
+ border: 2px solid #4a4a4a;
615
+ border-radius: 50%;
616
+
617
+ /* Smooth transitions */
618
+ transition: all 0.2s ease;
619
+ cursor: pointer;
620
+
621
+ /* Positioning for the inner dot */
622
+ position: relative;
623
+ vertical-align: middle;
624
+ }
625
+
626
+ /* Hover state */
627
+ input[type="radio"]:hover {
628
+ border-color: #6366f1;
629
+ box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.1);
630
+ }
631
+
632
+ /* Checked state */
633
+ input[type="radio"]:checked {
634
+ background-color: #6366f1;
635
+ border-color: #6366f1;
636
+ }
637
+
638
+ /* Inner dot when checked */
639
+ input[type="radio"]:checked::after {
640
+ content: '';
641
+ position: absolute;
642
+ top: 50%;
643
+ left: 50%;
644
+ transform: translate(-50%, -50%);
645
+ width: 8px;
646
+ height: 8px;
647
+ background-color: white;
648
+ border-radius: 50%;
649
+ }
650
+
651
+ /* Focus state for accessibility */
652
+ input[type="radio"]:focus {
653
+ outline: none;
654
+ box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.3);
655
+ }
656
+
657
+ /* Disabled state */
658
+ input[type="radio"]:disabled {
659
+ opacity: 0.5;
660
+ cursor: not-allowed;
661
+ }
662
+
663
+ input[type="radio"]:disabled:hover {
664
+ border-color: #4a4a4a;
665
+ box-shadow: none;
666
+ }
667
+
668
+
669
+
@@ -3,6 +3,7 @@ html, body {
3
3
  color: #f0f0f0;
4
4
  padding: 5px 5px;
5
5
  font-family: ui-sans-serif, -apple-system, system-ui, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, Helvetica, "Apple Color Emoji", Arial, "Segoe UI Emoji", "Segoe UI Symbol";
6
+ font-size: 16px;
6
7
  display: flex;
7
8
  flex-direction: column;
8
9
  height: 100%;
@@ -10,6 +10,10 @@ html, body {
10
10
  margin: 2px;
11
11
  }
12
12
 
13
+ html, body, * {
14
+ font-size: 16px;
15
+ }
16
+
13
17
  input, textarea {
14
18
  background-color: rgba(10, 10, 25, 0.95);
15
19
  color: #f0f0f0;