django-cfg 1.3.7__py3-none-any.whl → 1.3.9__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 (251) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/accounts/admin/__init__.py +24 -8
  3. django_cfg/apps/accounts/admin/activity_admin.py +146 -0
  4. django_cfg/apps/accounts/admin/filters.py +98 -22
  5. django_cfg/apps/accounts/admin/group_admin.py +86 -0
  6. django_cfg/apps/accounts/admin/inlines.py +42 -13
  7. django_cfg/apps/accounts/admin/otp_admin.py +115 -0
  8. django_cfg/apps/accounts/admin/registration_admin.py +173 -0
  9. django_cfg/apps/accounts/admin/resources.py +123 -19
  10. django_cfg/apps/accounts/admin/twilio_admin.py +327 -0
  11. django_cfg/apps/accounts/admin/user_admin.py +362 -0
  12. django_cfg/apps/agents/admin/__init__.py +17 -4
  13. django_cfg/apps/agents/admin/execution_admin.py +204 -183
  14. django_cfg/apps/agents/admin/registry_admin.py +230 -255
  15. django_cfg/apps/agents/admin/toolsets_admin.py +274 -321
  16. django_cfg/apps/agents/core/__init__.py +1 -1
  17. django_cfg/apps/agents/core/django_agent.py +221 -0
  18. django_cfg/apps/agents/core/exceptions.py +14 -0
  19. django_cfg/apps/agents/core/orchestrator.py +18 -3
  20. django_cfg/apps/knowbase/admin/__init__.py +1 -1
  21. django_cfg/apps/knowbase/admin/archive_admin.py +352 -640
  22. django_cfg/apps/knowbase/admin/chat_admin.py +258 -192
  23. django_cfg/apps/knowbase/admin/document_admin.py +269 -262
  24. django_cfg/apps/knowbase/admin/external_data_admin.py +271 -489
  25. django_cfg/apps/knowbase/config/settings.py +21 -4
  26. django_cfg/apps/knowbase/views/chat_views.py +3 -0
  27. django_cfg/apps/leads/admin/__init__.py +3 -1
  28. django_cfg/apps/leads/admin/leads_admin.py +235 -35
  29. django_cfg/apps/maintenance/admin/__init__.py +2 -2
  30. django_cfg/apps/maintenance/admin/api_key_admin.py +125 -63
  31. django_cfg/apps/maintenance/admin/log_admin.py +143 -61
  32. django_cfg/apps/maintenance/admin/scheduled_admin.py +212 -301
  33. django_cfg/apps/maintenance/admin/site_admin.py +213 -352
  34. django_cfg/apps/newsletter/admin/__init__.py +29 -2
  35. django_cfg/apps/newsletter/admin/newsletter_admin.py +531 -193
  36. django_cfg/apps/payments/admin/__init__.py +18 -27
  37. django_cfg/apps/payments/admin/api_keys_admin.py +179 -546
  38. django_cfg/apps/payments/admin/balance_admin.py +166 -632
  39. django_cfg/apps/payments/admin/currencies_admin.py +235 -607
  40. django_cfg/apps/payments/admin/endpoint_groups_admin.py +127 -0
  41. django_cfg/apps/payments/admin/filters.py +83 -3
  42. django_cfg/apps/payments/admin/networks_admin.py +258 -0
  43. django_cfg/apps/payments/admin/payments_admin.py +171 -461
  44. django_cfg/apps/payments/admin/subscriptions_admin.py +119 -636
  45. django_cfg/apps/payments/admin/tariffs_admin.py +248 -0
  46. django_cfg/apps/payments/admin_interface/serializers/payment_serializers.py +105 -34
  47. django_cfg/apps/payments/admin_interface/templates/payments/payment_form.html +12 -16
  48. django_cfg/apps/payments/admin_interface/views/__init__.py +2 -0
  49. django_cfg/apps/payments/admin_interface/views/api/webhook_admin.py +13 -18
  50. django_cfg/apps/payments/management/commands/manage_currencies.py +236 -274
  51. django_cfg/apps/payments/management/commands/manage_providers.py +4 -1
  52. django_cfg/apps/payments/middleware/api_access.py +32 -6
  53. django_cfg/apps/payments/migrations/0002_currency_usd_rate_currency_usd_rate_updated_at.py +26 -0
  54. django_cfg/apps/payments/migrations/0003_remove_provider_currency_fields.py +28 -0
  55. django_cfg/apps/payments/migrations/0004_add_reserved_usd_field.py +30 -0
  56. django_cfg/apps/payments/models/balance.py +12 -0
  57. django_cfg/apps/payments/models/currencies.py +106 -32
  58. django_cfg/apps/payments/models/managers/currency_managers.py +65 -0
  59. django_cfg/apps/payments/services/core/currency_service.py +35 -28
  60. django_cfg/apps/payments/services/core/payment_service.py +1 -1
  61. django_cfg/apps/payments/services/providers/__init__.py +3 -0
  62. django_cfg/apps/payments/services/providers/base.py +95 -39
  63. django_cfg/apps/payments/services/providers/models/__init__.py +40 -0
  64. django_cfg/apps/payments/services/providers/models/base.py +122 -0
  65. django_cfg/apps/payments/services/providers/models/providers.py +87 -0
  66. django_cfg/apps/payments/services/providers/models/universal.py +48 -0
  67. django_cfg/apps/payments/services/providers/nowpayments/__init__.py +31 -0
  68. django_cfg/apps/payments/services/providers/nowpayments/config.py +70 -0
  69. django_cfg/apps/payments/services/providers/nowpayments/models.py +150 -0
  70. django_cfg/apps/payments/services/providers/nowpayments/parsers.py +879 -0
  71. django_cfg/apps/payments/services/providers/{nowpayments.py → nowpayments/provider.py} +240 -209
  72. django_cfg/apps/payments/services/providers/nowpayments/sync.py +196 -0
  73. django_cfg/apps/payments/services/providers/registry.py +4 -32
  74. django_cfg/apps/payments/services/providers/sync_service.py +277 -0
  75. django_cfg/apps/payments/static/payments/js/api-client.js +23 -5
  76. django_cfg/apps/payments/static/payments/js/payment-form.js +65 -8
  77. django_cfg/apps/payments/tasks/__init__.py +39 -0
  78. django_cfg/apps/payments/tasks/types.py +73 -0
  79. django_cfg/apps/payments/tasks/usage_tracking.py +308 -0
  80. django_cfg/apps/payments/templates/admin/payments/_components/dashboard_header.html +23 -0
  81. django_cfg/apps/payments/templates/admin/payments/_components/stats_card.html +25 -0
  82. django_cfg/apps/payments/templates/admin/payments/_components/stats_grid.html +16 -0
  83. django_cfg/apps/payments/templates/admin/payments/apikey/change_list.html +39 -0
  84. django_cfg/apps/payments/templates/admin/payments/balance/change_list.html +50 -0
  85. django_cfg/apps/payments/templates/admin/payments/currency/change_list.html +40 -0
  86. django_cfg/apps/payments/templates/admin/payments/payment/change_list.html +48 -0
  87. django_cfg/apps/payments/templates/admin/payments/subscription/change_list.html +48 -0
  88. django_cfg/apps/payments/urls_admin.py +1 -1
  89. django_cfg/apps/payments/views/api/currencies.py +5 -5
  90. django_cfg/apps/payments/views/overview/services.py +2 -2
  91. django_cfg/apps/payments/views/serializers/currencies.py +4 -3
  92. django_cfg/apps/support/admin/__init__.py +10 -1
  93. django_cfg/apps/support/admin/support_admin.py +338 -141
  94. django_cfg/apps/tasks/admin/__init__.py +11 -0
  95. django_cfg/apps/tasks/admin/tasks_admin.py +430 -0
  96. django_cfg/config.py +1 -1
  97. django_cfg/core/config.py +10 -5
  98. django_cfg/core/generation.py +1 -1
  99. django_cfg/management/commands/__init__.py +13 -1
  100. django_cfg/management/commands/app_agent_diagnose.py +470 -0
  101. django_cfg/management/commands/app_agent_generate.py +342 -0
  102. django_cfg/management/commands/app_agent_info.py +308 -0
  103. django_cfg/management/commands/migrate_all.py +9 -3
  104. django_cfg/management/commands/migrator.py +11 -6
  105. django_cfg/management/commands/rundramatiq.py +3 -2
  106. django_cfg/middleware/__init__.py +0 -2
  107. django_cfg/models/api_keys.py +115 -0
  108. django_cfg/modules/django_admin/__init__.py +64 -0
  109. django_cfg/modules/django_admin/decorators/__init__.py +13 -0
  110. django_cfg/modules/django_admin/decorators/actions.py +106 -0
  111. django_cfg/modules/django_admin/decorators/display.py +106 -0
  112. django_cfg/modules/django_admin/mixins/__init__.py +14 -0
  113. django_cfg/modules/django_admin/mixins/display_mixin.py +81 -0
  114. django_cfg/modules/django_admin/mixins/optimization_mixin.py +41 -0
  115. django_cfg/modules/django_admin/mixins/standalone_actions_mixin.py +202 -0
  116. django_cfg/modules/django_admin/models/__init__.py +20 -0
  117. django_cfg/modules/django_admin/models/action_models.py +33 -0
  118. django_cfg/modules/django_admin/models/badge_models.py +20 -0
  119. django_cfg/modules/django_admin/models/base.py +26 -0
  120. django_cfg/modules/django_admin/models/display_models.py +31 -0
  121. django_cfg/modules/django_admin/utils/badges.py +159 -0
  122. django_cfg/modules/django_admin/utils/displays.py +247 -0
  123. django_cfg/modules/django_app_agent/__init__.py +87 -0
  124. django_cfg/modules/django_app_agent/agents/__init__.py +40 -0
  125. django_cfg/modules/django_app_agent/agents/base/__init__.py +24 -0
  126. django_cfg/modules/django_app_agent/agents/base/agent.py +354 -0
  127. django_cfg/modules/django_app_agent/agents/base/context.py +236 -0
  128. django_cfg/modules/django_app_agent/agents/base/executor.py +430 -0
  129. django_cfg/modules/django_app_agent/agents/generation/__init__.py +12 -0
  130. django_cfg/modules/django_app_agent/agents/generation/app_generator/__init__.py +15 -0
  131. django_cfg/modules/django_app_agent/agents/generation/app_generator/config_validator.py +147 -0
  132. django_cfg/modules/django_app_agent/agents/generation/app_generator/main.py +99 -0
  133. django_cfg/modules/django_app_agent/agents/generation/app_generator/models.py +32 -0
  134. django_cfg/modules/django_app_agent/agents/generation/app_generator/prompt_manager.py +290 -0
  135. django_cfg/modules/django_app_agent/agents/interfaces.py +376 -0
  136. django_cfg/modules/django_app_agent/core/__init__.py +33 -0
  137. django_cfg/modules/django_app_agent/core/config.py +300 -0
  138. django_cfg/modules/django_app_agent/core/exceptions.py +359 -0
  139. django_cfg/modules/django_app_agent/models/__init__.py +71 -0
  140. django_cfg/modules/django_app_agent/models/base.py +283 -0
  141. django_cfg/modules/django_app_agent/models/context.py +496 -0
  142. django_cfg/modules/django_app_agent/models/enums.py +481 -0
  143. django_cfg/modules/django_app_agent/models/requests.py +500 -0
  144. django_cfg/modules/django_app_agent/models/responses.py +585 -0
  145. django_cfg/modules/django_app_agent/pytest.ini +6 -0
  146. django_cfg/modules/django_app_agent/services/__init__.py +42 -0
  147. django_cfg/modules/django_app_agent/services/app_generator/__init__.py +30 -0
  148. django_cfg/modules/django_app_agent/services/app_generator/ai_integration.py +133 -0
  149. django_cfg/modules/django_app_agent/services/app_generator/context.py +40 -0
  150. django_cfg/modules/django_app_agent/services/app_generator/main.py +202 -0
  151. django_cfg/modules/django_app_agent/services/app_generator/structure.py +316 -0
  152. django_cfg/modules/django_app_agent/services/app_generator/validation.py +125 -0
  153. django_cfg/modules/django_app_agent/services/base.py +437 -0
  154. django_cfg/modules/django_app_agent/services/context_builder/__init__.py +34 -0
  155. django_cfg/modules/django_app_agent/services/context_builder/code_extractor.py +141 -0
  156. django_cfg/modules/django_app_agent/services/context_builder/context_generator.py +276 -0
  157. django_cfg/modules/django_app_agent/services/context_builder/main.py +272 -0
  158. django_cfg/modules/django_app_agent/services/context_builder/models.py +40 -0
  159. django_cfg/modules/django_app_agent/services/context_builder/pattern_analyzer.py +85 -0
  160. django_cfg/modules/django_app_agent/services/project_scanner/__init__.py +31 -0
  161. django_cfg/modules/django_app_agent/services/project_scanner/app_discovery.py +311 -0
  162. django_cfg/modules/django_app_agent/services/project_scanner/main.py +221 -0
  163. django_cfg/modules/django_app_agent/services/project_scanner/models.py +59 -0
  164. django_cfg/modules/django_app_agent/services/project_scanner/pattern_detection.py +94 -0
  165. django_cfg/modules/django_app_agent/services/questioning_service/__init__.py +28 -0
  166. django_cfg/modules/django_app_agent/services/questioning_service/main.py +273 -0
  167. django_cfg/modules/django_app_agent/services/questioning_service/models.py +111 -0
  168. django_cfg/modules/django_app_agent/services/questioning_service/question_generator.py +251 -0
  169. django_cfg/modules/django_app_agent/services/questioning_service/response_processor.py +347 -0
  170. django_cfg/modules/django_app_agent/services/questioning_service/session_manager.py +356 -0
  171. django_cfg/modules/django_app_agent/services/report_service.py +332 -0
  172. django_cfg/modules/django_app_agent/services/template_manager/__init__.py +18 -0
  173. django_cfg/modules/django_app_agent/services/template_manager/jinja_engine.py +236 -0
  174. django_cfg/modules/django_app_agent/services/template_manager/main.py +159 -0
  175. django_cfg/modules/django_app_agent/services/template_manager/models.py +36 -0
  176. django_cfg/modules/django_app_agent/services/template_manager/template_loader.py +100 -0
  177. django_cfg/modules/django_app_agent/services/template_manager/templates/admin.py.j2 +105 -0
  178. django_cfg/modules/django_app_agent/services/template_manager/templates/apps.py.j2 +31 -0
  179. django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_config.py.j2 +44 -0
  180. django_cfg/modules/django_app_agent/services/template_manager/templates/cfg_module.py.j2 +81 -0
  181. django_cfg/modules/django_app_agent/services/template_manager/templates/forms.py.j2 +107 -0
  182. django_cfg/modules/django_app_agent/services/template_manager/templates/models.py.j2 +139 -0
  183. django_cfg/modules/django_app_agent/services/template_manager/templates/serializers.py.j2 +91 -0
  184. django_cfg/modules/django_app_agent/services/template_manager/templates/tests.py.j2 +195 -0
  185. django_cfg/modules/django_app_agent/services/template_manager/templates/urls.py.j2 +35 -0
  186. django_cfg/modules/django_app_agent/services/template_manager/templates/views.py.j2 +211 -0
  187. django_cfg/modules/django_app_agent/services/template_manager/variable_processor.py +200 -0
  188. django_cfg/modules/django_app_agent/services/validation_service/__init__.py +25 -0
  189. django_cfg/modules/django_app_agent/services/validation_service/django_validator.py +333 -0
  190. django_cfg/modules/django_app_agent/services/validation_service/main.py +242 -0
  191. django_cfg/modules/django_app_agent/services/validation_service/models.py +66 -0
  192. django_cfg/modules/django_app_agent/services/validation_service/quality_validator.py +352 -0
  193. django_cfg/modules/django_app_agent/services/validation_service/security_validator.py +272 -0
  194. django_cfg/modules/django_app_agent/services/validation_service/syntax_validator.py +203 -0
  195. django_cfg/modules/django_app_agent/ui/__init__.py +25 -0
  196. django_cfg/modules/django_app_agent/ui/cli.py +419 -0
  197. django_cfg/modules/django_app_agent/ui/rich_components.py +622 -0
  198. django_cfg/modules/django_app_agent/utils/__init__.py +38 -0
  199. django_cfg/modules/django_app_agent/utils/logging.py +360 -0
  200. django_cfg/modules/django_app_agent/utils/validation.py +417 -0
  201. django_cfg/modules/django_currency/__init__.py +2 -2
  202. django_cfg/modules/django_currency/clients/__init__.py +2 -2
  203. django_cfg/modules/django_currency/clients/hybrid_client.py +587 -0
  204. django_cfg/modules/django_currency/core/converter.py +12 -12
  205. django_cfg/modules/django_currency/database/__init__.py +2 -2
  206. django_cfg/modules/django_currency/database/database_loader.py +93 -42
  207. django_cfg/modules/django_llm/llm/client.py +10 -2
  208. django_cfg/modules/django_unfold/callbacks/actions.py +1 -1
  209. django_cfg/modules/django_unfold/callbacks/statistics.py +1 -1
  210. django_cfg/modules/django_unfold/dashboard.py +14 -13
  211. django_cfg/modules/django_unfold/models/config.py +1 -1
  212. django_cfg/registry/core.py +3 -0
  213. django_cfg/registry/third_party.py +2 -2
  214. django_cfg/template_archive/django_sample.zip +0 -0
  215. {django_cfg-1.3.7.dist-info → django_cfg-1.3.9.dist-info}/METADATA +2 -1
  216. {django_cfg-1.3.7.dist-info → django_cfg-1.3.9.dist-info}/RECORD +223 -117
  217. django_cfg/apps/accounts/admin/activity.py +0 -96
  218. django_cfg/apps/accounts/admin/group.py +0 -17
  219. django_cfg/apps/accounts/admin/otp.py +0 -59
  220. django_cfg/apps/accounts/admin/registration_source.py +0 -97
  221. django_cfg/apps/accounts/admin/twilio_response.py +0 -227
  222. django_cfg/apps/accounts/admin/user.py +0 -300
  223. django_cfg/apps/agents/core/agent.py +0 -281
  224. django_cfg/apps/payments/admin_interface/old/payments/base.html +0 -175
  225. django_cfg/apps/payments/admin_interface/old/payments/components/dev_tool_card.html +0 -125
  226. django_cfg/apps/payments/admin_interface/old/payments/components/loading_spinner.html +0 -16
  227. django_cfg/apps/payments/admin_interface/old/payments/components/ngrok_status_card.html +0 -113
  228. django_cfg/apps/payments/admin_interface/old/payments/components/notification.html +0 -27
  229. django_cfg/apps/payments/admin_interface/old/payments/components/provider_card.html +0 -86
  230. django_cfg/apps/payments/admin_interface/old/payments/components/status_card.html +0 -35
  231. django_cfg/apps/payments/admin_interface/old/payments/currency_converter.html +0 -382
  232. django_cfg/apps/payments/admin_interface/old/payments/payment_dashboard.html +0 -309
  233. django_cfg/apps/payments/admin_interface/old/payments/payment_form.html +0 -303
  234. django_cfg/apps/payments/admin_interface/old/payments/payment_list.html +0 -382
  235. django_cfg/apps/payments/admin_interface/old/payments/payment_status.html +0 -500
  236. django_cfg/apps/payments/admin_interface/old/payments/webhook_dashboard.html +0 -518
  237. django_cfg/apps/payments/admin_interface/old/static/payments/css/components.css +0 -619
  238. django_cfg/apps/payments/admin_interface/old/static/payments/css/dashboard.css +0 -188
  239. django_cfg/apps/payments/admin_interface/old/static/payments/js/components.js +0 -545
  240. django_cfg/apps/payments/admin_interface/old/static/payments/js/ngrok-status.js +0 -163
  241. django_cfg/apps/payments/admin_interface/old/static/payments/js/utils.js +0 -412
  242. django_cfg/apps/tasks/admin.py +0 -320
  243. django_cfg/middleware/static_nocache.py +0 -55
  244. django_cfg/modules/django_currency/clients/yahoo_client.py +0 -157
  245. /django_cfg/modules/{django_unfold → django_admin}/icons/README.md +0 -0
  246. /django_cfg/modules/{django_unfold → django_admin}/icons/__init__.py +0 -0
  247. /django_cfg/modules/{django_unfold → django_admin}/icons/constants.py +0 -0
  248. /django_cfg/modules/{django_unfold → django_admin}/icons/generate_icons.py +0 -0
  249. {django_cfg-1.3.7.dist-info → django_cfg-1.3.9.dist-info}/WHEEL +0 -0
  250. {django_cfg-1.3.7.dist-info → django_cfg-1.3.9.dist-info}/entry_points.txt +0 -0
  251. {django_cfg-1.3.7.dist-info → django_cfg-1.3.9.dist-info}/licenses/LICENSE +0 -0
@@ -1,619 +0,0 @@
1
- /* Universal Payment System v2.0 - Components CSS */
2
-
3
- /* Material Icons Utilities */
4
- .material-icon-sm { font-size: 16px !important; }
5
- .material-icon-md { font-size: 20px !important; }
6
- .material-icon-lg { font-size: 24px !important; }
7
- .material-icon-xl { font-size: 32px !important; }
8
-
9
- /* Status Indicators */
10
- .status-indicator {
11
- width: 8px;
12
- height: 8px;
13
- border-radius: 50%;
14
- display: inline-block;
15
- margin-right: 8px;
16
- }
17
-
18
- .status-active { background-color: #10b981; }
19
- .status-inactive { background-color: #ef4444; }
20
- .status-warning { background-color: #f59e0b; }
21
- .status-pending { background-color: #3b82f6; }
22
-
23
- /* Notification System */
24
- .notification {
25
- position: fixed;
26
- top: 20px;
27
- right: 20px;
28
- z-index: 1000;
29
- padding: 12px 16px;
30
- border-radius: 8px;
31
- color: white;
32
- font-weight: 500;
33
- min-width: 300px;
34
- box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
35
- display: flex;
36
- align-items: center;
37
- gap: 8px;
38
- }
39
-
40
- .notification.success {
41
- background-color: #10b981;
42
- border-left: 4px solid #059669;
43
- }
44
-
45
- .notification.error {
46
- background-color: #ef4444;
47
- border-left: 4px solid #dc2626;
48
- }
49
-
50
- .notification.warning {
51
- background-color: #f59e0b;
52
- border-left: 4px solid #d97706;
53
- }
54
-
55
- .notification.info {
56
- background-color: #3b82f6;
57
- border-left: 4px solid #2563eb;
58
- }
59
-
60
- .notification .material-icons-outlined {
61
- font-size: 20px;
62
- }
63
-
64
- .notification .close-btn {
65
- margin-left: auto;
66
- background: none;
67
- border: none;
68
- color: white;
69
- cursor: pointer;
70
- padding: 4px;
71
- border-radius: 4px;
72
- opacity: 0.8;
73
- }
74
-
75
- .notification .close-btn:hover {
76
- opacity: 1;
77
- background-color: rgba(255, 255, 255, 0.1);
78
- }
79
-
80
- /* Animation Classes */
81
- .slide-in {
82
- animation: slideIn 0.3s ease-out;
83
- }
84
-
85
- .slide-out {
86
- animation: slideOut 0.3s ease-in;
87
- }
88
-
89
- .fade-in {
90
- animation: fadeIn 0.3s ease-out;
91
- }
92
-
93
- .fade-out {
94
- animation: fadeOut 0.3s ease-in;
95
- }
96
-
97
- @keyframes slideIn {
98
- from {
99
- transform: translateX(100%);
100
- opacity: 0;
101
- }
102
- to {
103
- transform: translateX(0);
104
- opacity: 1;
105
- }
106
- }
107
-
108
- @keyframes slideOut {
109
- from {
110
- transform: translateX(0);
111
- opacity: 1;
112
- }
113
- to {
114
- transform: translateX(100%);
115
- opacity: 0;
116
- }
117
- }
118
-
119
- @keyframes fadeIn {
120
- from { opacity: 0; }
121
- to { opacity: 1; }
122
- }
123
-
124
- @keyframes fadeOut {
125
- from { opacity: 1; }
126
- to { opacity: 0; }
127
- }
128
-
129
- /* Card Components */
130
- .payment-card {
131
- background: white;
132
- border: 1px solid #e5e7eb;
133
- border-radius: 12px;
134
- padding: 24px;
135
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
136
- transition: all 0.2s ease-in-out;
137
- }
138
-
139
- .payment-card:hover {
140
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
141
- transform: translateY(-2px);
142
- }
143
-
144
- /* Dark theme cards */
145
- .dark .payment-card {
146
- background: #1f2937;
147
- border-color: #374151;
148
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
149
- }
150
-
151
- .dark .payment-card:hover {
152
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
153
- }
154
-
155
- .payment-card-header {
156
- @apply flex items-center justify-between mb-4;
157
- }
158
-
159
- .payment-card-title {
160
- @apply text-lg font-semibold text-gray-900 dark:text-white flex items-center;
161
- }
162
-
163
- .payment-card-title .material-icons-outlined {
164
- @apply mr-2 text-blue-600 dark:text-blue-400;
165
- }
166
-
167
- .payment-card-content {
168
- @apply space-y-3;
169
- }
170
-
171
- /* Status Cards */
172
- .status-card {
173
- background: white;
174
- border: 1px solid #e5e7eb;
175
- border-radius: 12px;
176
- padding: 20px;
177
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
178
- transition: all 0.2s ease-in-out;
179
- }
180
-
181
- .status-card:hover {
182
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
183
- transform: translateY(-1px);
184
- }
185
-
186
- .status-card-content {
187
- display: flex;
188
- align-items: center;
189
- gap: 16px;
190
- }
191
-
192
- .status-card-icon {
193
- width: 48px;
194
- height: 48px;
195
- border-radius: 12px;
196
- display: flex;
197
- align-items: center;
198
- justify-content: center;
199
- font-size: 24px;
200
- }
201
-
202
- .status-card-info {
203
- flex: 1;
204
- }
205
-
206
- .status-card-title {
207
- font-size: 14px;
208
- font-weight: 500;
209
- color: #6b7280;
210
- margin-bottom: 4px;
211
- }
212
-
213
- .status-card-value {
214
- font-size: 28px;
215
- font-weight: 700;
216
- display: flex;
217
- align-items: center;
218
- gap: 8px;
219
- margin-bottom: 4px;
220
- }
221
-
222
- .status-card-description {
223
- font-size: 12px;
224
- color: #9ca3af;
225
- margin: 0;
226
- }
227
-
228
- .status-card-action-btn {
229
- padding: 8px;
230
- border-radius: 8px;
231
- color: #6b7280;
232
- transition: all 0.2s;
233
- }
234
-
235
- .status-card-action-btn:hover {
236
- background: #f3f4f6;
237
- color: #374151;
238
- }
239
-
240
- /* Status Card Color Variants */
241
- .status-card-blue .status-card-icon {
242
- background: #dbeafe;
243
- color: #2563eb;
244
- }
245
-
246
- .status-card-blue .status-card-value {
247
- color: #2563eb;
248
- }
249
-
250
- .status-card-green .status-card-icon {
251
- background: #dcfce7;
252
- color: #16a34a;
253
- }
254
-
255
- .status-card-green .status-card-value {
256
- color: #16a34a;
257
- }
258
-
259
- .status-card-red .status-card-icon {
260
- background: #fee2e2;
261
- color: #dc2626;
262
- }
263
-
264
- .status-card-red .status-card-value {
265
- color: #dc2626;
266
- }
267
-
268
- .status-card-yellow .status-card-icon {
269
- background: #fef3c7;
270
- color: #d97706;
271
- }
272
-
273
- .status-card-yellow .status-card-value {
274
- color: #d97706;
275
- }
276
-
277
- .status-card-purple .status-card-icon {
278
- background: #f3e8ff;
279
- color: #9333ea;
280
- }
281
-
282
- .status-card-purple .status-card-value {
283
- color: #9333ea;
284
- }
285
-
286
- /* Dark Theme Status Cards */
287
- .dark .status-card {
288
- background: #1f2937;
289
- border-color: #374151;
290
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3);
291
- }
292
-
293
- .dark .status-card:hover {
294
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
295
- }
296
-
297
- .dark .status-card-title {
298
- color: #d1d5db;
299
- }
300
-
301
- .dark .status-card-description {
302
- color: #9ca3af;
303
- }
304
-
305
- .dark .status-card-action-btn {
306
- color: #9ca3af;
307
- }
308
-
309
- .dark .status-card-action-btn:hover {
310
- background: #374151;
311
- color: #f3f4f6;
312
- }
313
-
314
- .dark .status-card-blue .status-card-icon {
315
- background: #1e3a8a;
316
- color: #60a5fa;
317
- }
318
-
319
- .dark .status-card-blue .status-card-value {
320
- color: #60a5fa;
321
- }
322
-
323
- .dark .status-card-green .status-card-icon {
324
- background: #14532d;
325
- color: #4ade80;
326
- }
327
-
328
- .dark .status-card-green .status-card-value {
329
- color: #4ade80;
330
- }
331
-
332
- .dark .status-card-red .status-card-icon {
333
- background: #7f1d1d;
334
- color: #f87171;
335
- }
336
-
337
- .dark .status-card-red .status-card-value {
338
- color: #f87171;
339
- }
340
-
341
- .dark .status-card-yellow .status-card-icon {
342
- background: #92400e;
343
- color: #fbbf24;
344
- }
345
-
346
- .dark .status-card-yellow .status-card-value {
347
- color: #fbbf24;
348
- }
349
-
350
- .dark .status-card-purple .status-card-icon {
351
- background: #581c87;
352
- color: #c084fc;
353
- }
354
-
355
- .dark .status-card-purple .status-card-value {
356
- color: #c084fc;
357
- }
358
-
359
- /* Status Badges */
360
- .status-badge {
361
- display: inline-flex;
362
- align-items: center;
363
- padding: 4px 12px;
364
- border-radius: 20px;
365
- font-size: 12px;
366
- font-weight: 500;
367
- }
368
-
369
- .status-badge.success {
370
- background: #dcfce7;
371
- color: #166534;
372
- }
373
-
374
- .status-badge.error {
375
- background: #fee2e2;
376
- color: #991b1b;
377
- }
378
-
379
- .status-badge.warning {
380
- background: #fef3c7;
381
- color: #92400e;
382
- }
383
-
384
- .status-badge.info {
385
- background: #dbeafe;
386
- color: #1d4ed8;
387
- }
388
-
389
- .status-badge.pending {
390
- background: #f3f4f6;
391
- color: #374151;
392
- }
393
-
394
- /* Dark theme badges */
395
- .dark .status-badge.success {
396
- background: #14532d;
397
- color: #4ade80;
398
- }
399
-
400
- .dark .status-badge.error {
401
- background: #7f1d1d;
402
- color: #f87171;
403
- }
404
-
405
- .dark .status-badge.warning {
406
- background: #92400e;
407
- color: #fbbf24;
408
- }
409
-
410
- .dark .status-badge.info {
411
- background: #1e3a8a;
412
- color: #60a5fa;
413
- }
414
-
415
- .dark .status-badge.pending {
416
- background: #374151;
417
- color: #d1d5db;
418
- }
419
-
420
- /* Button Components */
421
- .btn-primary {
422
- @apply bg-blue-600 hover:bg-blue-700 text-white font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;
423
- }
424
-
425
- .btn-secondary {
426
- @apply bg-gray-600 hover:bg-gray-700 text-white font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;
427
- }
428
-
429
- .btn-success {
430
- @apply bg-green-600 hover:bg-green-700 text-white font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;
431
- }
432
-
433
- .btn-danger {
434
- @apply bg-red-600 hover:bg-red-700 text-white font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;
435
- }
436
-
437
- .btn-outline {
438
- @apply border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-300 hover:bg-gray-50 dark:hover:bg-gray-700 font-medium py-2 px-4 rounded-lg transition-colors duration-200 flex items-center;
439
- }
440
-
441
- .btn-icon {
442
- @apply p-2 rounded-lg transition-colors duration-200 flex items-center justify-center;
443
- }
444
-
445
- .btn-icon:hover {
446
- @apply bg-gray-100 dark:bg-gray-700;
447
- }
448
-
449
- .btn .material-icons-outlined {
450
- @apply mr-2;
451
- font-size: 18px;
452
- }
453
-
454
- .btn-icon .material-icons-outlined {
455
- margin: 0;
456
- }
457
-
458
- /* Loading States */
459
- .loading-spinner {
460
- @apply animate-spin rounded-full border-2 border-gray-300 border-t-blue-600;
461
- }
462
-
463
- .loading-spinner.sm {
464
- @apply h-4 w-4;
465
- }
466
-
467
- .loading-spinner.md {
468
- @apply h-6 w-6;
469
- }
470
-
471
- .loading-spinner.lg {
472
- @apply h-8 w-8;
473
- }
474
-
475
- /* Form Components */
476
- .form-group {
477
- @apply mb-4;
478
- }
479
-
480
- .form-label {
481
- @apply block text-sm font-medium text-gray-700 dark:text-gray-300 mb-2;
482
- }
483
-
484
- .form-input {
485
- @apply w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent;
486
- }
487
-
488
- .form-select {
489
- @apply w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent;
490
- }
491
-
492
- .form-textarea {
493
- @apply w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-700 text-gray-900 dark:text-white focus:ring-2 focus:ring-blue-500 focus:border-transparent resize-vertical;
494
- }
495
-
496
- .form-error {
497
- @apply text-red-600 dark:text-red-400 text-sm mt-1;
498
- }
499
-
500
- .form-help {
501
- @apply text-gray-500 dark:text-gray-400 text-sm mt-1;
502
- }
503
-
504
- /* Table Components */
505
- .data-table {
506
- @apply w-full border-collapse bg-white dark:bg-gray-800 rounded-lg overflow-hidden shadow-sm;
507
- }
508
-
509
- .data-table th {
510
- @apply bg-gray-50 dark:bg-gray-700 px-6 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-300 uppercase tracking-wider;
511
- }
512
-
513
- .data-table td {
514
- @apply px-6 py-4 whitespace-nowrap text-sm text-gray-900 dark:text-white border-t border-gray-200 dark:border-gray-700;
515
- }
516
-
517
- .data-table tbody tr:hover {
518
- @apply bg-gray-50 dark:bg-gray-700;
519
- }
520
-
521
- /* Modal Components */
522
- .modal-overlay {
523
- @apply fixed inset-0 bg-gray-600 bg-opacity-50 overflow-y-auto h-full w-full z-50;
524
- }
525
-
526
- .modal-container {
527
- @apply relative top-20 mx-auto p-5 border w-96 shadow-lg rounded-lg bg-white dark:bg-gray-800;
528
- }
529
-
530
- .modal-header {
531
- @apply flex justify-between items-center mb-4;
532
- }
533
-
534
- .modal-title {
535
- @apply text-lg font-semibold text-gray-900 dark:text-white;
536
- }
537
-
538
- .modal-close {
539
- @apply text-gray-400 hover:text-gray-600 dark:hover:text-gray-200 cursor-pointer;
540
- }
541
-
542
- .modal-body {
543
- @apply mb-4;
544
- }
545
-
546
- .modal-footer {
547
- @apply flex justify-end space-x-3;
548
- }
549
-
550
- /* Utility Classes */
551
- .text-truncate {
552
- @apply truncate;
553
- }
554
-
555
- .text-break {
556
- word-break: break-word;
557
- }
558
-
559
- .cursor-copy {
560
- cursor: copy;
561
- }
562
-
563
- .transition-smooth {
564
- transition: all 0.2s ease-in-out;
565
- }
566
-
567
- /* Responsive Utilities */
568
- @media (max-width: 768px) {
569
- .payment-card {
570
- @apply p-4;
571
- }
572
-
573
- .modal-container {
574
- @apply w-11/12 max-w-sm;
575
- }
576
-
577
- .notification {
578
- @apply right-4 left-4 min-w-0;
579
- }
580
- }
581
-
582
- /* Dark Mode Specific */
583
- .dark .payment-card {
584
- box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.3), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
585
- }
586
-
587
- .dark .payment-card:hover {
588
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
589
- }
590
-
591
- /* Custom Scrollbar */
592
- .custom-scrollbar::-webkit-scrollbar {
593
- width: 6px;
594
- }
595
-
596
- .custom-scrollbar::-webkit-scrollbar-track {
597
- background: #f1f5f9;
598
- }
599
-
600
- .custom-scrollbar::-webkit-scrollbar-thumb {
601
- background: #cbd5e1;
602
- border-radius: 3px;
603
- }
604
-
605
- .custom-scrollbar::-webkit-scrollbar-thumb:hover {
606
- background: #94a3b8;
607
- }
608
-
609
- .dark .custom-scrollbar::-webkit-scrollbar-track {
610
- background: #1e293b;
611
- }
612
-
613
- .dark .custom-scrollbar::-webkit-scrollbar-thumb {
614
- background: #475569;
615
- }
616
-
617
- .dark .custom-scrollbar::-webkit-scrollbar-thumb:hover {
618
- background: #64748b;
619
- }