cmdbox 0.5.1.2__py3-none-any.whl → 0.5.3__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.

Potentially problematic release.


This version of cmdbox might be problematic. Click here for more details.

Files changed (143) hide show
  1. cmdbox/app/app.py +4 -2
  2. cmdbox/app/auth/signin.py +634 -631
  3. cmdbox/app/client.py +10 -10
  4. cmdbox/app/common.py +50 -6
  5. cmdbox/app/commons/convert.py +9 -0
  6. cmdbox/app/commons/module.py +113 -113
  7. cmdbox/app/commons/redis_client.py +40 -29
  8. cmdbox/app/edge.py +4 -4
  9. cmdbox/app/features/cli/audit_base.py +138 -0
  10. cmdbox/app/features/cli/cmdbox_audit_createdb.py +224 -0
  11. cmdbox/app/features/cli/cmdbox_audit_delete.py +308 -0
  12. cmdbox/app/features/cli/cmdbox_audit_search.py +416 -0
  13. cmdbox/app/features/cli/cmdbox_audit_write.py +247 -0
  14. cmdbox/app/features/cli/cmdbox_client_file_copy.py +207 -207
  15. cmdbox/app/features/cli/cmdbox_client_file_download.py +207 -207
  16. cmdbox/app/features/cli/cmdbox_client_file_list.py +193 -193
  17. cmdbox/app/features/cli/cmdbox_client_file_mkdir.py +191 -191
  18. cmdbox/app/features/cli/cmdbox_client_file_move.py +199 -199
  19. cmdbox/app/features/cli/cmdbox_client_file_remove.py +190 -190
  20. cmdbox/app/features/cli/cmdbox_client_file_rmdir.py +190 -190
  21. cmdbox/app/features/cli/cmdbox_client_file_upload.py +212 -212
  22. cmdbox/app/features/cli/cmdbox_client_server_info.py +166 -166
  23. cmdbox/app/features/cli/cmdbox_server_list.py +88 -88
  24. cmdbox/app/features/cli/cmdbox_server_stop.py +138 -138
  25. cmdbox/app/features/web/cmdbox_web_audit.py +81 -0
  26. cmdbox/app/features/web/cmdbox_web_audit_metrics.py +72 -0
  27. cmdbox/app/features/web/cmdbox_web_del_cmd.py +2 -0
  28. cmdbox/app/features/web/cmdbox_web_del_pipe.py +1 -0
  29. cmdbox/app/features/web/cmdbox_web_do_signin.py +12 -2
  30. cmdbox/app/features/web/cmdbox_web_do_signout.py +1 -0
  31. cmdbox/app/features/web/cmdbox_web_exec_cmd.py +31 -2
  32. cmdbox/app/features/web/cmdbox_web_exec_pipe.py +1 -0
  33. cmdbox/app/features/web/cmdbox_web_filer download.py +43 -42
  34. cmdbox/app/features/web/cmdbox_web_filer.py +1 -0
  35. cmdbox/app/features/web/cmdbox_web_filer_upload.py +65 -64
  36. cmdbox/app/features/web/cmdbox_web_gui.py +166 -165
  37. cmdbox/app/features/web/cmdbox_web_load_pin.py +43 -43
  38. cmdbox/app/features/web/cmdbox_web_raw_pipe.py +87 -87
  39. cmdbox/app/features/web/cmdbox_web_save_cmd.py +1 -0
  40. cmdbox/app/features/web/cmdbox_web_save_pin.py +42 -42
  41. cmdbox/app/features/web/cmdbox_web_save_pipe.py +1 -0
  42. cmdbox/app/features/web/cmdbox_web_user_data.py +58 -0
  43. cmdbox/app/features/web/cmdbox_web_users.py +12 -0
  44. cmdbox/app/options.py +788 -601
  45. cmdbox/app/web.py +7 -1
  46. cmdbox/extensions/features.yml +23 -0
  47. cmdbox/extensions/sample_project/sample/app/features/cli/sample_client_time.py +82 -82
  48. cmdbox/extensions/sample_project/sample/app/features/cli/sample_server_time.py +145 -145
  49. cmdbox/extensions/user_list.yml +5 -0
  50. cmdbox/licenses/{LICENSE.Sphinx.8.1.3(BSD License).txt → LICENSE.Sphinx.8.2.3(UNKNOWN).txt} +1 -1
  51. cmdbox/licenses/LICENSE.argcomplete.3.6.2(Apache Software License).txt +177 -0
  52. cmdbox/licenses/{LICENSE.babel.2.16.0(BSD License).txt → LICENSE.babel.2.17.0(BSD License).txt } +1 -1
  53. cmdbox/licenses/{LICENSE.pkginfo.1.10.0(MIT License).txt → LICENSE.charset-normalizer.3.4.1(MIT License).txt } +1 -1
  54. cmdbox/licenses/LICENSE.gevent.25.4.1(MIT).txt +25 -0
  55. cmdbox/licenses/LICENSE.greenlet.3.2.0(MIT AND Python-2.0).txt +30 -0
  56. cmdbox/licenses/LICENSE.gunicorn.23.0.0(MIT License).txt +23 -0
  57. cmdbox/licenses/LICENSE.importlib_metadata.8.6.1(Apache Software License).txt +202 -0
  58. cmdbox/licenses/LICENSE.nh3.0.2.21(MIT).txt +21 -0
  59. cmdbox/licenses/{LICENSE.pillow.11.0.0(CMU License (MIT-CMU)).txt → LICENSE.pillow.11.1.0(CMU License (MIT-CMU)).txt } +27 -40
  60. cmdbox/licenses/LICENSE.pillow.11.2.1(UNKNOWN).txt +1200 -0
  61. cmdbox/licenses/LICENSE.plyer.2.1.0(MIT License).txt +19 -0
  62. cmdbox/licenses/LICENSE.prompt_toolkit.3.0.50(BSD License).txt +27 -0
  63. cmdbox/licenses/LICENSE.prompt_toolkit.3.0.51(BSD License).txt +27 -0
  64. cmdbox/licenses/LICENSE.psycopg-binary.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt +165 -0
  65. cmdbox/licenses/LICENSE.psycopg-pool.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt +165 -0
  66. cmdbox/licenses/LICENSE.psycopg.3.2.6(GNU Lesser General Public License v3 (LGPLv3)).txt +165 -0
  67. cmdbox/licenses/LICENSE.pycryptodome.3.22.0(BSD License; Public Domain).txt +61 -0
  68. cmdbox/licenses/LICENSE.pydantic.2.11.3(MIT License).txt +21 -0
  69. cmdbox/licenses/LICENSE.pydantic_core.2.33.1(MIT License).txt +21 -0
  70. cmdbox/licenses/LICENSE.pystray.0.19.5(GNU Lesser General Public License v3 (LGPLv3)).txt +674 -0
  71. cmdbox/licenses/LICENSE.questionary.2.1.0(MIT License).txt +19 -0
  72. cmdbox/licenses/LICENSE.roman-numerals-py.3.1.0(CC0 1.0 Universal (CC0 1.0) Public Domain Dedication; Zero-Clause BSD (0BSD)).txt +146 -0
  73. cmdbox/licenses/{LICENSE.six.1.16.0(MIT License).txt → LICENSE.six.1.17.0(MIT License).txt } +1 -1
  74. cmdbox/licenses/LICENSE.starlette.0.46.2(BSD License).txt +27 -0
  75. cmdbox/licenses/{LICENSE.charset-normalizer.3.4.0(MIT License).txt → LICENSE.typing-inspection.0.4.0(MIT License).txt } +2 -2
  76. cmdbox/licenses/LICENSE.typing_extensions.4.13.2(UNKNOWN).txt +279 -0
  77. cmdbox/licenses/LICENSE.tzdata.2025.2(Apache Software License).txt +15 -0
  78. cmdbox/licenses/LICENSE.urllib3.2.4.0(UNKNOWN).txt +21 -0
  79. cmdbox/licenses/LICENSE.uvicorn.0.34.1(BSD License).txt +27 -0
  80. cmdbox/licenses/LICENSE.watchfiles.1.0.5(MIT License).txt +21 -0
  81. cmdbox/licenses/files.txt +49 -38
  82. cmdbox/logconf_audit.yml +30 -0
  83. cmdbox/logconf_cmdbox.yml +30 -0
  84. cmdbox/version.py +2 -2
  85. cmdbox/web/assets/apexcharts/apexcharts.css +679 -0
  86. cmdbox/web/assets/apexcharts/apexcharts.min.js +38 -0
  87. cmdbox/web/assets/cmdbox/audit.js +340 -0
  88. cmdbox/web/assets/cmdbox/color_mode.css +520 -0
  89. cmdbox/web/assets/cmdbox/common.js +416 -24
  90. cmdbox/web/assets/cmdbox/filer_modal.js +1 -1
  91. cmdbox/web/assets/cmdbox/list_cmd.js +10 -275
  92. cmdbox/web/assets/cmdbox/list_pipe.js +3 -3
  93. cmdbox/web/assets/cmdbox/main.js +2 -2
  94. cmdbox/web/assets/cmdbox/result.js +2 -2
  95. cmdbox/web/assets/cmdbox/signin.js +2 -2
  96. cmdbox/web/assets/cmdbox/users.js +19 -20
  97. cmdbox/web/assets/cmdbox/view_raw.js +1 -1
  98. cmdbox/web/assets/cmdbox/view_result.js +11 -13
  99. cmdbox/web/assets/filer/filer.js +2 -2
  100. cmdbox/web/assets/filer/main.js +2 -2
  101. cmdbox/web/assets_license_list.txt +4 -1
  102. cmdbox/web/audit.html +268 -0
  103. cmdbox/web/filer.html +37 -12
  104. cmdbox/web/gui.html +36 -53
  105. cmdbox/web/result.html +24 -3
  106. cmdbox/web/signin.html +35 -14
  107. cmdbox/web/users.html +21 -3
  108. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/METADATA +28 -5
  109. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/RECORD +142 -103
  110. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/entry_points.txt +0 -1
  111. cmdbox/licenses/LICENSE.nh3.0.2.18(MIT).txt +0 -1
  112. /cmdbox/licenses/{LICENSE.Jinja2.3.1.4(BSD License).txt → LICENSE.Jinja2.3.1.6(BSD License).txt} +0 -0
  113. /cmdbox/licenses/{LICENSE.Pygments.2.18.0(BSD License).txt → LICENSE.Pygments.2.19.1(BSD License).txt} +0 -0
  114. /cmdbox/licenses/{LICENSE.anyio.4.6.2.post1(MIT License).txt → LICENSE.anyio.4.9.0(MIT License).txt} +0 -0
  115. /cmdbox/licenses/{LICENSE.argcomplete.3.5.1(Apache Software License).txt → LICENSE.argcomplete.3.6.1(Apache Software License).txt} +0 -0
  116. /cmdbox/licenses/{LICENSE.certifi.2024.8.30(Mozilla Public License 2.0 (MPL 2.0)).txt → LICENSE.certifi.2025.1.31(Mozilla Public License 2.0 (MPL 2.0)).txt} +0 -0
  117. /cmdbox/licenses/{LICENSE.click.8.1.7(BSD License).txt → LICENSE.click.8.1.8(BSD License).txt} +0 -0
  118. /cmdbox/licenses/{LICENSE.cryptography.43.0.3(Apache Software License; BSD License).txt → LICENSE.cryptography.44.0.2(Apache Software License; BSD License).txt} +0 -0
  119. /cmdbox/licenses/{LICENSE.fastapi.0.115.5(MIT License).txt → LICENSE.fastapi.0.115.12(MIT License).txt} +0 -0
  120. /cmdbox/licenses/{LICENSE.importlib_metadata.8.5.0(Apache Software License).txt → LICENSE.id.1.5.0(Apache Software License).txt} +0 -0
  121. /cmdbox/licenses/{LICENSE.keyring.25.5.0(MIT License).txt → LICENSE.keyring.25.6.0(MIT License).txt} +0 -0
  122. /cmdbox/licenses/{LICENSE.more-itertools.10.5.0(MIT License).txt → LICENSE.more-itertools.10.6.0(MIT License).txt} +0 -0
  123. /cmdbox/licenses/{LICENSE.numpy.2.1.3(BSD License).txt → LICENSE.numpy.2.2.4(BSD License).txt} +0 -0
  124. /cmdbox/licenses/{LICENSE.prettytable.3.12.0(BSD License).txt → LICENSE.prettytable.3.16.0(UNKNOWN).txt} +0 -0
  125. /cmdbox/licenses/{LICENSE.pydantic.2.10.2(MIT License).txt → LICENSE.pydantic.2.11.1(MIT License).txt} +0 -0
  126. /cmdbox/licenses/{LICENSE.pydantic_core.2.27.1(MIT License).txt → LICENSE.pydantic_core.2.33.0(MIT License).txt} +0 -0
  127. /cmdbox/licenses/{LICENSE.python-dotenv.1.0.1(BSD License).txt → LICENSE.python-dotenv.1.1.0(BSD License).txt} +0 -0
  128. /cmdbox/licenses/{LICENSE.python-multipart.0.0.17(Apache Software License).txt → LICENSE.python-multipart.0.0.20(Apache Software License).txt} +0 -0
  129. /cmdbox/licenses/{LICENSE.redis.5.2.0(MIT License).txt → LICENSE.redis.5.2.1(MIT License).txt} +0 -0
  130. /cmdbox/licenses/{LICENSE.rich.13.9.4(MIT License).txt → LICENSE.rich.14.0.0(MIT License).txt} +0 -0
  131. /cmdbox/licenses/{LICENSE.sphinx-intl.2.3.0(BSD License).txt → LICENSE.sphinx-intl.2.3.1(BSD License).txt} +0 -0
  132. /cmdbox/licenses/{LICENSE.starlette.0.41.3(BSD License).txt → LICENSE.starlette.0.46.1(BSD License).txt} +0 -0
  133. /cmdbox/licenses/{LICENSE.tomli.2.1.0(MIT License).txt → LICENSE.tomli.2.2.1(MIT License).txt} +0 -0
  134. /cmdbox/licenses/{LICENSE.twine.5.1.1(Apache Software License).txt → LICENSE.twine.6.1.0(Apache Software License).txt} +0 -0
  135. /cmdbox/licenses/{LICENSE.typing_extensions.4.12.2(Python Software Foundation License).txt → LICENSE.typing_extensions.4.13.0(UNKNOWN).txt} +0 -0
  136. /cmdbox/licenses/{LICENSE.urllib3.2.2.3(MIT License).txt → LICENSE.urllib3.2.3.0(MIT License).txt} +0 -0
  137. /cmdbox/licenses/{LICENSE.uvicorn.0.32.1(BSD License).txt → LICENSE.uvicorn.0.34.0(BSD License).txt} +0 -0
  138. /cmdbox/licenses/{LICENSE.watchfiles.1.0.0(MIT License).txt → LICENSE.watchfiles.1.0.4(MIT License).txt} +0 -0
  139. /cmdbox/licenses/{LICENSE.websockets.14.1(BSD License).txt → LICENSE.websockets.15.0.1(BSD License).txt} +0 -0
  140. /cmdbox/licenses/{LICENSE.zope.interface.7.1.1(Zope Public License).txt → LICENSE.zope.interface.7.2(Zope Public License).txt} +0 -0
  141. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/LICENSE +0 -0
  142. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/WHEEL +0 -0
  143. {cmdbox-0.5.1.2.dist-info → cmdbox-0.5.3.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,520 @@
1
+ .th {
2
+ background-color: var(--bs-tertiary-bg) !important;
3
+ word-break:normal;
4
+ }
5
+ /* ライトモード (基本) - 必要に応じて調整 */
6
+ [data-bs-theme="light"] {
7
+ --bs-body-bg: #fff;
8
+ --bs-body-color: #212529;
9
+ --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
10
+ --bs-body-font-size: 1rem;
11
+ --bs-body-font-weight: 400;
12
+ --bs-body-line-height: 1.5;
13
+ --bs-body-text-align: left;
14
+ --bs-body-text-decoration: none;
15
+
16
+ --bs-emphasis-color: #000;
17
+ --bs-secondary-color: #6c757d;
18
+ --bs-secondary-bg: #e2e3e5;
19
+ --bs-tertiary-color: #6c757d;
20
+ --bs-tertiary-bg: #f8f9fa;
21
+ --bs-link-color: #0d6efd;
22
+ --bs-link-hover-color: #0a58ca;
23
+ --bs-code-color: #d63384;
24
+ --bs-highlight-bg: #fff3cd;
25
+ --bs-highlight-border-color: #ffeeba;
26
+
27
+ --bs-primary: #0d6efd;
28
+ --bs-primary-rgb: 13, 110, 253;
29
+ --bs-primary-text: #fff;
30
+ --bs-primary-bg-subtle: #cfe2ff;
31
+ --bs-primary-border-subtle: #b6d4fe;
32
+ --bs-secondary: #6c757d;
33
+ --bs-secondary-rgb: 108, 117, 125;
34
+ --bs-secondary-text: #fff;
35
+ --bs-secondary-bg-subtle: #e2e3e5;
36
+ --bs-secondary-border-subtle: #d3d6d8;
37
+ --bs-success: #198754;
38
+ --bs-success-rgb: 25, 135, 84;
39
+ --bs-success-text: #fff;
40
+ --bs-success-bg-subtle: #d1e7dd;
41
+ --bs-success-border-subtle: #badbcc;
42
+ --bs-info: #0dcaf0;
43
+ --bs-info-rgb: 13, 202, 240;
44
+ --bs-info-text: #000;
45
+ --bs-info-bg-subtle: #cff4fc;
46
+ --bs-info-border-subtle: #b6effb;
47
+ --bs-warning: #ffc107;
48
+ --bs-warning-rgb: 255, 193, 7;
49
+ --bs-warning-text: #000;
50
+ --bs-warning-bg-subtle: #fff3cd;
51
+ --bs-warning-border-subtle: #ffeeba;
52
+ --bs-danger: #dc3545;
53
+ --bs-danger-rgb: 220, 53, 69;
54
+ --bs-danger-text: #fff;
55
+ --bs-danger-bg-subtle: #f8d7da;
56
+ --bs-danger-border-subtle: #f5c2c7;
57
+ --bs-light: #f8f9fa;
58
+ --bs-light-rgb: 248, 249, 250;
59
+ --bs-light-text: #000;
60
+ --bs-light-bg-subtle: #fdfdfe;
61
+ --bs-light-border-subtle: #fcfcfd;
62
+ --bs-dark: #212529;
63
+ --bs-dark-rgb: 33, 37, 41;
64
+ --bs-dark-text: #fff;
65
+ --bs-dark-bg-subtle: #ced4da;
66
+ --bs-dark-border-subtle: #adb5bd;
67
+
68
+ --bs-white: #fff;
69
+ --bs-black: #000;
70
+ --bs-blue: #0d6efd;
71
+ --bs-indigo: #6610f2;
72
+ --bs-purple: #6f42c1;
73
+ --bs-pink: #d63384;
74
+ --bs-red: #dc3545;
75
+ --bs-orange: #fd7e14;
76
+ --bs-yellow: #ffc107;
77
+ --bs-green: #198754;
78
+ --bs-teal: #20c997;
79
+ --bs-cyan: #0dcaf0;
80
+ --bs-gray: #6c757d;
81
+ --bs-gray-dark: #343a40;
82
+
83
+ --bs-gradient: linear-gradient(180deg, rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0));
84
+
85
+ --bs-border-width: 1px;
86
+ --bs-border-style: solid;
87
+ --bs-border-color: #dee2e6;
88
+ --bs-border-color-translucent: rgba(0, 0, 0, 0.175);
89
+ --bs-border-radius: 0.375rem;
90
+ --bs-border-radius-sm: 0.25rem;
91
+ --bs-border-radius-lg: 0.5rem;
92
+ --bs-border-radius-pill: 50rem;
93
+
94
+ --bs-box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
95
+ --bs-box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075);
96
+ --bs-box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175);
97
+ --bs-box-shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .075);
98
+
99
+ --bs-component-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out, filter .15s ease-in-out, backdrop-filter .15s ease-in-out;
100
+ --bs-form-control-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
101
+ --bs-button-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
102
+ --bs-modal-transition: transform .3s ease-out;
103
+ --bs-collapse-transition: height .35s ease;
104
+ --bs-dropdown-transition: transform .15s ease-in-out;
105
+ --bs-alert-transition: opacity .15s ease-in-out, margin .15s ease-in-out;
106
+ --bs-tooltip-transition: opacity .15s ease-in-out;
107
+ --bs-popover-transition: opacity .15s ease-in-out;
108
+ --bs-carousel-transition: transform .6s ease-in-out;
109
+ }
110
+
111
+ /* ダークモード - 必要に応じて調整 */
112
+ [data-bs-theme="dark"] {
113
+ --bs-body-bg: #212529;
114
+ --bs-body-color: #fff;
115
+ --bs-emphasis-color: #fff;
116
+ --bs-secondary-color: #6c757d;
117
+ --bs-secondary-bg: #343a40;
118
+ --bs-tertiary-color: #6c757d;
119
+ --bs-tertiary-bg: #212529;
120
+ --bs-link-color: #0d6efd;
121
+ --bs-link-hover-color: #0a58ca;
122
+ --bs-code-color: #d63384;
123
+ --bs-highlight-bg: #fff3cd;
124
+ --bs-highlight-border-color: #ffeeba;
125
+
126
+ --bs-primary: #0d6efd;
127
+ --bs-primary-rgb: 13, 110, 253;
128
+ --bs-primary-text: #fff;
129
+ --bs-primary-bg-subtle: #162e51;
130
+ --bs-primary-border-subtle: #0c1a30;
131
+ --bs-secondary: #6c757d;
132
+ --bs-secondary-rgb: 108, 117, 125;
133
+ --bs-secondary-text: #fff;
134
+ --bs-secondary-bg-subtle: #41464b;
135
+ --bs-secondary-border-subtle: #2b3035;
136
+ --bs-success: #198754;
137
+ --bs-success-rgb: 25, 135, 84;
138
+ --bs-success-text: #fff;
139
+ --bs-success-bg-subtle: #142b1e;
140
+ --bs-success-border-subtle: #0a1913;
141
+ --bs-info: #0dcaf0;
142
+ --bs-info-rgb: 13, 202, 240;
143
+ --bs-info-text: #000;
144
+ --bs-info-bg-subtle: #11303b;
145
+ --bs-info-border-subtle: #081c22;
146
+ --bs-warning: #ffc107;
147
+ --bs-warning-rgb: 255, 193, 7;
148
+ --bs-warning-text: #000;
149
+ --bs-warning-bg-subtle: #4d3b08;
150
+ --bs-warning-border-subtle: #302406;
151
+ --bs-danger: #dc3545;
152
+ --bs-danger-rgb: 220, 53, 69;
153
+ --bs-danger-text: #fff;
154
+ --bs-danger-bg-subtle: #361114;
155
+ --bs-danger-border-subtle: #1e0b0d;
156
+ --bs-light: #f8f9fa;
157
+ --bs-light-rgb: 248, 249, 250;
158
+ --bs-light-text: #000;
159
+ --bs-light-bg-subtle: #fdfdfe;
160
+ --bs-light-border-subtle: #fcfcfd;
161
+ --bs-dark: #212529;
162
+ --bs-dark-rgb: 33, 37, 41;
163
+ --bs-dark-text: #fff;
164
+ --bs-dark-bg-subtle: #ced4da;
165
+ --bs-dark-border-subtle: #adb5bd;
166
+
167
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
168
+ --bs-border-color: #495057;
169
+ --bs-border-color-translucent: rgba(255, 255, 255, 0.15);
170
+ }
171
+
172
+ /* ミッドナイトモード */
173
+ [data-bs-theme="midnight"] {
174
+ --bs-body-bg: #1a233a; /* ダークネイビー */
175
+ --bs-body-color: #d7dbe8; /* ライトブルーグレー */
176
+ --bs-emphasis-color: #fff;
177
+ --bs-secondary-color: #283552; /* ディープネイビー */
178
+ --bs-secondary-bg: #131a2c;
179
+ --bs-tertiary-color: #546e7a; /* ブルーグレー */
180
+ --bs-tertiary-bg: #283552;
181
+ --bs-link-color: #64b5f6; /* ライトブルー */
182
+ --bs-link-hover-color: #42a5f5; /* ブルー */
183
+ --bs-code-color: #ffb300; /* アンバー */
184
+ --bs-highlight-bg: #25324e;
185
+ --bs-highlight-border-color: #1a233a;
186
+
187
+ --bs-primary: #64b5f6; /* ライトブルー */
188
+ --bs-primary-rgb: 100, 181, 246;
189
+ --bs-primary-text: #000;
190
+ --bs-primary-bg-subtle: #2d4263;
191
+ --bs-primary-border-subtle: #1e2b40;
192
+ --bs-secondary: #283552; /* ディープネイビー */
193
+ --bs-secondary-rgb: 40, 53, 82;
194
+ --bs-secondary-text: #fff;
195
+ --bs-secondary-bg-subtle: #141b2d;
196
+ --bs-secondary-border-subtle: #0d111f;
197
+ --bs-success: #66bb6a; /* ライトグリーン */
198
+ --bs-success-rgb: 102, 187, 106;
199
+ --bs-success-text: #000;
200
+ --bs-success-bg-subtle: #2a402e;
201
+ --bs-success-border-subtle: #1b291f;
202
+ --bs-info: #b0bec5; /* ブルーグレー */
203
+ --bs-info-rgb: 176, 190, 197;
204
+ --bs-info-text: #000;
205
+ --bs-info-bg-subtle: #32373a;
206
+ --bs-info-border-subtle: #212426;
207
+ --bs-warning: #ffca28; /* イエローアンバー */
208
+ --bs-warning-rgb: 255, 202, 40;
209
+ --bs-warning-text: #000;
210
+ --bs-warning-bg-subtle: #4d3e10;
211
+ --bs-warning-border-subtle: #332a0b;
212
+ --bs-danger: #ef5350; /* ライトレッド */
213
+ --bs-danger-rgb: 239, 83, 80;
214
+ --bs-danger-text: #fff;
215
+ --bs-danger-bg-subtle: #451e1d;
216
+ --bs-danger-border-subtle: #2e1312;
217
+ --bs-light: #e0e0e0; /* ライトグレー */
218
+ --bs-light-rgb: 224, 224, 224;
219
+ --bs-light-text: #000;
220
+ --bs-light-bg-subtle: #37474f;
221
+ --bs-light-border-subtle: #263238;
222
+ --bs-dark: #283552; /* ディープネイビー */
223
+ --bs-dark-rgb: 40, 53, 82;
224
+ --bs-dark-text: #fff;
225
+ --bs-dark-bg-subtle: #141b2d;
226
+ --bs-dark-border-subtle: #0d111f;
227
+
228
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
229
+ --bs-border-width: 1px;
230
+ --bs-border-style: solid;
231
+ --bs-border-color: #37474f;
232
+ --bs-border-color-translucent: rgba(40, 53, 82, 1);
233
+
234
+ --bs-emphasis-color-rgb: var(--bs-card-title-color);
235
+ --bs-warning-text-emphasis: var(--bs-code-color);
236
+ --bs-body-color-rgb: var(--bs-body-color);
237
+ --bs-secondary-rgb: var(--bs-btn-color);
238
+ --bs-table-bg: var(--bs-tertiary-bg);
239
+ --bs-tertiary-bg-rgb: var(--bs-tertiary-bg);
240
+ }
241
+
242
+ /* バーダントモード */
243
+ [data-bs-theme="verdant"] {
244
+ --bs-body-bg: #001a00; /* 濃い緑 */
245
+ --bs-body-color: #90ee90; /* ライトグリーン */
246
+ --bs-emphasis-color: #00ff00; /* ライム */
247
+ --bs-secondary-color: #006400; /* ダークグリーン */
248
+ --bs-secondary-bg: #000d00;
249
+ --bs-tertiary-color: #228b22; /* フォレストグリーン */
250
+ --bs-tertiary-bg: #285235;
251
+ --bs-link-color: #32cd32; /* ライムグリーン */
252
+ --bs-link-hover-color: #008000; /* 緑 */
253
+ --bs-code-color: #fafad2; /* ライトゴールデンロッドイエロー */
254
+ --bs-highlight-bg: #003300;
255
+ --bs-highlight-border-color: #001a00;
256
+
257
+ --bs-primary: #32cd32; /* ライムグリーン */
258
+ --bs-primary-rgb: 50, 205, 50;
259
+ --bs-primary-text: #000;
260
+ --bs-primary-bg-subtle: #004d00;
261
+ --bs-primary-border-subtle: #003300;
262
+ --bs-secondary: #006400; /* ダークグリーン */
263
+ --bs-secondary-rgb: 0, 100, 0;
264
+ --bs-secondary-text: #fff;
265
+ --bs-secondary-bg-subtle: #001900;
266
+ --bs-secondary-border-subtle: #000d00;
267
+ --bs-success: #00ff00; /* ライム */
268
+ --bs-success-rgb: 0, 255, 0;
269
+ --bs-success-text: #000;
270
+ --bs-success-bg-subtle: #004d00;
271
+ --bs-success-border-subtle: #003300;
272
+ --bs-info: #4682b4; /* スティールブルー (コントラスト用) */
273
+ --bs-info-rgb: 70, 130, 180;
274
+ --bs-info-text: #fff;
275
+ --bs-info-bg-subtle: #0b141d;
276
+ --bs-info-border-subtle: #070c11;
277
+ --bs-warning: #ffd700; /* ゴールド (コントラスト用) */
278
+ --bs-warning-rgb: 255, 215, 0;
279
+ --bs-warning-text: #000;
280
+ --bs-warning-bg-subtle: #4d4300;
281
+ --bs-warning-border-subtle: #332b00;
282
+ --bs-danger: #ff4500; /* オレンジレッド (コントラスト用) */
283
+ --bs-danger-rgb: 255, 69, 0;
284
+ --bs-danger-text: #fff;
285
+ --bs-danger-bg-subtle: #4d1100;
286
+ --bs-danger-border-subtle: #330b00;
287
+ --bs-light: #003300; /* 濃い緑 */
288
+ --bs-light-rgb: 0, 51, 0;
289
+ --bs-light-text: #fff;
290
+ --bs-light-bg-subtle: #001a00;
291
+ --bs-light-border-subtle: #000d00;
292
+ --bs-dark: #006400; /* ダークグリーン */
293
+ --bs-dark-rgb: 0, 100, 0;
294
+ --bs-dark-text: #fff;
295
+ --bs-dark-bg-subtle: #001900;
296
+ --bs-dark-border-subtle: #000d00;
297
+
298
+ --bs-gradient: linear-gradient(180deg, rgba(0, 255, 0, 0.15), rgba(0, 255, 0, 0));
299
+ --bs-border-width: 1px;
300
+ --bs-border-style: solid;
301
+ --bs-border-color: #006400;
302
+ --bs-border-color-translucent: rgba(0, 100, 0, 1);
303
+
304
+ --bs-emphasis-color-rgb: var(--bs-card-title-color);
305
+ --bs-warning-text-emphasis: var(--bs-code-color);
306
+ --bs-body-color-rgb: var(--bs-body-color);
307
+ --bs-secondary-rgb: var(--bs-btn-color);
308
+ --bs-table-bg: var(--bs-tertiary-bg);
309
+ --bs-tertiary-bg-rgb: var(--bs-tertiary-bg);
310
+ }
311
+
312
+ /* ディープシーモード */
313
+ [data-bs-theme="deepsea"] {
314
+ --bs-body-bg: #0a1128; /* 濃いネイビー */
315
+ --bs-body-color: #a7bcd4; /* ライトブルーグレー */
316
+ --bs-emphasis-color: #fff;
317
+ --bs-secondary-color: #001f54; /* ディープブルー */
318
+ --bs-secondary-bg: #050b17;
319
+ --bs-tertiary-color: #415a77; /* スティールブルー */
320
+ --bs-tertiary-bg: #001f54;
321
+ --bs-link-color: #6a994e; /* オリーブグリーン */
322
+ --bs-link-hover-color: #386641; /* ダークオリーブグリーン */
323
+ --bs-code-color: #feca57; /* イエロー */
324
+ --bs-highlight-bg: #141d37;
325
+ --bs-highlight-border-color: #0a1128;
326
+
327
+ --bs-primary: #6a994e; /* オリーブグリーン */
328
+ --bs-primary-rgb: 106, 153, 78;
329
+ --bs-primary-text: #fff;
330
+ --bs-primary-bg-subtle: #2a3d1f;
331
+ --bs-primary-border-subtle: #1b2814;
332
+ --bs-secondary: #001f54; /* ディープブルー */
333
+ --bs-secondary-rgb: 0, 31, 84;
334
+ --bs-secondary-text: #fff;
335
+ --bs-secondary-bg-subtle: #000a1a;
336
+ --bs-secondary-border-subtle: #00060f;
337
+ --bs-success: #43aa8b; /* シーグリーン */
338
+ --bs-success-rgb: 67, 170, 139;
339
+ --bs-success-text: #fff;
340
+ --bs-success-bg-subtle: #1a372e;
341
+ --bs-success-border-subtle: #10251f;
342
+ --bs-info: #4cc9f0; /* シアン */
343
+ --bs-info-rgb: 76, 201, 240;
344
+ --bs-info-text: #000;
345
+ --bs-info-bg-subtle: #1d3845;
346
+ --bs-info-border-subtle: #13252f;
347
+ --bs-warning: #ffbe0b; /* アンバー */
348
+ --bs-warning-rgb: 255, 190, 11;
349
+ --bs-warning-text: #000;
350
+ --bs-warning-bg-subtle: #4d3b05;
351
+ --bs-warning-border-subtle: #332703;
352
+ --bs-danger: #f94144; /* レッドオレンジ */
353
+ --bs-danger-rgb: 249, 65, 68;
354
+ --bs-danger-text: #fff;
355
+ --bs-danger-bg-subtle: #4a191a;
356
+ --bs-danger-border-subtle: #301011;
357
+ --bs-light: #e9ecef; /* ライトグレー */
358
+ --bs-light-rgb: 233, 236, 239;
359
+ --bs-light-text: #000;
360
+ --bs-light-bg-subtle: #1e2533;
361
+ --bs-light-border-subtle: #131822;
362
+ --bs-dark: #001f54; /* ディープブルー */
363
+ --bs-dark-rgb: 0, 31, 84;
364
+ --bs-dark-text: #fff;
365
+ --bs-dark-bg-subtle: #000a1a;
366
+ --bs-dark-border-subtle: #00060f;
367
+
368
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0));
369
+ --bs-border-width: 1px;
370
+ --bs-border-style: solid;
371
+ --bs-border-color: #1e2533;
372
+ --bs-border-color-translucent: rgba(0, 31, 84, 1);
373
+
374
+ --bs-emphasis-color-rgb: var(--bs-card-title-color);
375
+ --bs-warning-text-emphasis: var(--bs-code-color);
376
+ --bs-body-color-rgb: var(--bs-body-color);
377
+ --bs-secondary-rgb: var(--bs-btn-color);
378
+ --bs-table-bg: var(--bs-tertiary-bg);
379
+ --bs-tertiary-bg-rgb: var(--bs-tertiary-bg);
380
+ }
381
+
382
+ /* クリムゾンモード */
383
+ [data-bs-theme="crimson"] {
384
+ --bs-body-bg: #1a0000; /* 濃いマルーン */
385
+ --bs-body-color: #f08080; /* ライトコーラル */
386
+ --bs-emphasis-color: #ff0000; /* 赤 */
387
+ --bs-secondary-color: #8b0000; /* ダークレッド */
388
+ --bs-secondary-bg: #0d0000;
389
+ --bs-tertiary-color: #b22222; /* ファイアブリック */
390
+ --bs-tertiary-bg: #522835;
391
+ --bs-link-color: #ff4d4d; /* 明るい赤 */
392
+ --bs-link-hover-color: #cc0000; /* より濃い赤 */
393
+ --bs-code-color: #ffdab9; /* ピーチパフ */
394
+ --bs-highlight-bg: #330000;
395
+ --bs-highlight-border-color: #1a0000;
396
+
397
+ --bs-primary: #ff4d4d; /* 明るい赤 */
398
+ --bs-primary-rgb: 255, 77, 77;
399
+ --bs-primary-text: #fff;
400
+ --bs-primary-bg-subtle: #4d0000;
401
+ --bs-primary-border-subtle: #330000;
402
+ --bs-secondary: #8b0000; /* ダークレッド */
403
+ --bs-secondary-rgb: 139, 0, 0;
404
+ --bs-secondary-text: #fff;
405
+ --bs-secondary-bg-subtle: #220000;
406
+ --bs-secondary-border-subtle: #140000;
407
+ --bs-success: #556b2f; /* ダークオリーブグリーン (コントラスト用) */
408
+ --bs-success-rgb: 85, 107, 47;
409
+ --bs-success-text: #fff;
410
+ --bs-success-bg-subtle: #11170b;
411
+ --bs-success-border-subtle: #0a0e07;
412
+ --bs-info: #4682b4; /* スティールブルー (コントラスト用) */
413
+ --bs-info-rgb: 70, 130, 180;
414
+ --bs-info-text: #fff;
415
+ --bs-info-bg-subtle: #0b141d;
416
+ --bs-info-border-subtle: #070c11;
417
+ --bs-warning: #ffa07a; /* ライトサーモン (コントラスト用) */
418
+ --bs-warning-rgb: 255, 160, 122;
419
+ --bs-warning-text: #000;
420
+ --bs-warning-bg-subtle: #4d2012;
421
+ --bs-warning-border-subtle: #33140b;
422
+ --bs-danger: #ff0000; /* 赤 */
423
+ --bs-danger-rgb: 255, 0, 0;
424
+ --bs-danger-text: #fff;
425
+ --bs-danger-bg-subtle: #4d0000;
426
+ --bs-danger-border-subtle: #330000;
427
+ --bs-light: #4d0000; /* 濃いマルーン */
428
+ --bs-light-rgb: 77, 0, 0;
429
+ --bs-light-text: #fff;
430
+ --bs-light-bg-subtle: #1a0000;
431
+ --bs-light-border-subtle: #0d0000;
432
+ --bs-dark: #8b0000; /* ダークレッド */
433
+ --bs-dark-rgb: 139, 0, 0;
434
+ --bs-dark-text: #fff;
435
+ --bs-dark-bg-subtle: #220000;
436
+ --bs-dark-border-subtle: #140000;
437
+
438
+ --bs-gradient: linear-gradient(180deg, rgba(255, 0, 0, 0.15), rgba(255, 0, 0, 0));
439
+ --bs-border-width: 1px;
440
+ --bs-border-style: solid;
441
+ --bs-border-color: #8b0000;
442
+ --bs-border-color-translucent: rgba(139, 0, 0, 1);
443
+
444
+ --bs-emphasis-color-rgb: var(--bs-card-title-color);
445
+ --bs-warning-text-emphasis: var(--bs-code-color);
446
+ --bs-body-color-rgb: var(--bs-body-color);
447
+ --bs-secondary-rgb: var(--bs-btn-color);
448
+ --bs-table-bg: var(--bs-tertiary-bg);
449
+ --bs-tertiary-bg-rgb: var(--bs-tertiary-bg);
450
+ }
451
+
452
+ /* バンブルビーモード */
453
+ [data-bs-theme="bumblebee"] {
454
+ --bs-body-bg: #1a1a00; /* 濃いオリーブ */
455
+ --bs-body-color: #ffff00; /* 黄 */
456
+ --bs-emphasis-color: #ffff00; /* 黄 */
457
+ --bs-secondary-color: #b8860b; /* ダークゴールデンロッド */
458
+ --bs-secondary-bg: #0d0d00;
459
+ --bs-tertiary-color: #ffd700; /* ゴールド */
460
+ --bs-tertiary-bg: #525235;
461
+ --bs-link-color: #ffcc00; /* 明るい黄 */
462
+ --bs-link-hover-color: #e6b800; /* より濃い黄 */
463
+ --bs-code-color: #f0f8ff; /* アリスブルー */
464
+ --bs-highlight-bg: #333300;
465
+ --bs-highlight-border-color: #1a1a00;
466
+
467
+ --bs-primary: #ffcc00; /* 明るい黄 */
468
+ --bs-primary-rgb: 255, 204, 0;
469
+ --bs-primary-text: #000;
470
+ --bs-primary-bg-subtle: #4d4000;
471
+ --bs-primary-border-subtle: #332b00;
472
+ --bs-secondary: #b8860b; /* ダークゴールデンロッド */
473
+ --bs-secondary-rgb: 184, 134, 11;
474
+ --bs-secondary-text: #000;
475
+ --bs-secondary-bg-subtle: #2e2103;
476
+ --bs-secondary-border-subtle: #1f1602;
477
+ --bs-success: #008000; /* 緑 (コントラスト用) */
478
+ --bs-success-rgb: 0, 128, 0;
479
+ --bs-success-text: #fff;
480
+ --bs-success-bg-subtle: #001900;
481
+ --bs-success-border-subtle: #000d00;
482
+ --bs-info: #008b8b; /* ダークシアン (コントラスト用) */
483
+ --bs-info-rgb: 0, 139, 139;
484
+ --bs-info-text: #fff;
485
+ --bs-info-bg-subtle: #001a1a;
486
+ --bs-info-border-subtle: #000d0d;
487
+ --bs-warning: #ffff00; /* 黄 */
488
+ --bs-warning-rgb: 255, 255, 0;
489
+ --bs-warning-text: #000;
490
+ --bs-warning-bg-subtle: #4d4d00;
491
+ --bs-warning-border-subtle: #333300;
492
+ --bs-danger: #ff4500; /* オレンジレッド (コントラスト用) */
493
+ --bs-danger-rgb: 255, 69, 0;
494
+ --bs-danger-text: #fff;
495
+ --bs-danger-bg-subtle: #4d1100;
496
+ --bs-danger-border-subtle: #330b00;
497
+ --bs-light: #333300; /* 濃いオリーブ */
498
+ --bs-light-rgb: 51, 51, 0;
499
+ --bs-light-text: #fff;
500
+ --bs-light-bg-subtle: #1a1a00;
501
+ --bs-light-border-subtle: #0d0d00;
502
+ --bs-dark: #b8860b; /* ダークゴールデンロッド */
503
+ --bs-dark-rgb: 184, 134, 11;
504
+ --bs-dark-text: #000;
505
+ --bs-dark-bg-subtle: #2e2103;
506
+ --bs-dark-border-subtle: #1f1602;
507
+
508
+ --bs-gradient: linear-gradient(180deg, rgba(255, 255, 0, 0.15), rgba(255, 255, 0, 0));
509
+ --bs-border-width: 1px;
510
+ --bs-border-style: solid;
511
+ --bs-border-color: #b8860b;
512
+ --bs-border-color-translucent: rgba(184, 134, 11, 1);
513
+
514
+ --bs-emphasis-color-rgb: var(--bs-card-title-color);
515
+ --bs-warning-text-emphasis: var(--bs-code-color);
516
+ --bs-body-color-rgb: var(--bs-body-color);
517
+ --bs-secondary-rgb: var(--bs-btn-color);
518
+ --bs-table-bg: var(--bs-tertiary-bg);
519
+ --bs-tertiary-bg-rgb: var(--bs-tertiary-bg);
520
+ }