UNPKG

wise-json-db

Version:

Blazing fast, crash-proof embedded JSON database for Node.js with batch operations, TTL, indexes, and segmented checkpointing.

212 lines (183 loc) 4.15 kB
/* explorer/views/styles.css */ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background-color: #f4f6f8; margin: 0; padding: 20px; color: #333; line-height: 1.5; } header { text-align: center; margin-bottom: 20px; border-bottom: 1px solid #e1e4e8; padding-bottom: 10px; } header h1 { margin: 0; color: #24292e; } .server-mode-read-only { color: #d73a49; } .server-mode-write-enabled { color: #22863a; } main { max-width: 1200px; margin: 0 auto; background-color: #fff; padding: 20px; border-radius: 6px; border: 1px solid #d1d5da; box-shadow: 0 1px 15px rgba(27,31,35,.15); } section { margin-bottom: 20px; } .controls-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 15px; align-items: end; } .control-group { display: flex; flex-direction: column; } label { font-weight: 600; margin-bottom: 5px; font-size: 14px; color: #586069; } input[type="text"], input[type="number"], select, textarea { width: 100%; padding: 8px 12px; border: 1px solid #d1d5da; border-radius: 6px; font-size: 14px; background-color: #fafbfc; color: #24292e; box-sizing: border-box; transition: border-color 0.2s, box-shadow 0.2s; } input[type="text"]:focus, input[type="number"]:focus, select:focus, textarea:focus { border-color: #0366d6; outline: none; box-shadow: 0 0 0 3px rgba(3,102,214,.3); } button { padding: 8px 16px; background-color: #2ea44f; color: white; border: 1px solid rgba(27,31,35,.15); border-radius: 6px; cursor: pointer; font-weight: 600; transition: background-color 0.2s ease; } button:hover { background-color: #22863a; } button:disabled { background-color: #94d3a2; cursor: not-allowed; } button.delete-btn { background-color: #d73a49; } button.delete-btn:hover { background-color: #cb2431; } .apply-button { grid-column: 1 / -1; /* Растягиваем на всю ширину грида */ margin-top: 10px; background-color: #0366d6; } .apply-button:hover { background-color: #005cc5; } #tableContainer { overflow-x: auto; } #dataTable { width: 100%; border-collapse: collapse; margin-top: 10px; word-break: break-all; } #dataTable th, #dataTable td { border: 1px solid #e1e4e8; padding: 10px 15px; text-align: left; vertical-align: top; } #dataTable th { background-color: #f6f8fa; font-weight: 600; color: #24292e; } #pagination { text-align: center; margin-top: 15px; } #pagination span { margin: 0 15px; font-weight: 600; } hr { border: 0; height: 1px; background-color: #e1e4e8; margin: 30px 0; } #index-manager h2, #viewer h3 { margin-top: 0; color: #24292e; border-bottom: 1px solid #e1e4e8; padding-bottom: 5px; } #index-list { display: flex; flex-wrap: wrap; gap: 10px; } .index-item { background-color: #f6f8fa; border: 1px solid #d1d5da; border-radius: 20px; padding: 5px 12px; font-size: 14px; display: flex; align-items: center; gap: 8px; } .index-item.unique { font-weight: 600; border-color: #22863a; } .index-item button { padding: 2px 6px; font-size: 12px; line-height: 1; } #documentViewer { width: 100%; font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 13px; background-color: #f6f8fa; border: 1px solid #d1d5da; border-radius: 6px; padding: 10px; box-sizing: border-box; resize: vertical; color: #24292e; } /* Стили для элементов, требующих права на запись */ .write-op { /* по умолчанию скрыты, будут показаны через JS */ }