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