sqlseed-web 0.2.4__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.
- sqlseed_web/AGENTS.md +106 -0
- sqlseed_web/__init__.py +24 -0
- sqlseed_web/__main__.py +8 -0
- sqlseed_web/_application.py +205 -0
- sqlseed_web/ai_settings.py +290 -0
- sqlseed_web/api.py +1102 -0
- sqlseed_web/app.py +26 -0
- sqlseed_web/managed_worker.py +184 -0
- sqlseed_web/operation_errors.py +42 -0
- sqlseed_web/plugin_environment.py +231 -0
- sqlseed_web/plugin_management.py +322 -0
- sqlseed_web/plugin_process.py +131 -0
- sqlseed_web/runtime_lifecycle.py +130 -0
- sqlseed_web/runtime_session.py +97 -0
- sqlseed_web/settings_environment.py +368 -0
- sqlseed_web/sqlite_target.py +86 -0
- sqlseed_web/state.py +348 -0
- sqlseed_web/static/AGENTS.md +180 -0
- sqlseed_web/static/ai.css +57 -0
- sqlseed_web/static/configs.css +50 -0
- sqlseed_web/static/date-picker.css +230 -0
- sqlseed_web/static/disclosure.css +149 -0
- sqlseed_web/static/graph-clarity.css +103 -0
- sqlseed_web/static/index.html +29 -0
- sqlseed_web/static/js/api.js +228 -0
- sqlseed_web/static/js/app.js +97 -0
- sqlseed_web/static/js/dropdown.js +432 -0
- sqlseed_web/static/js/filepicker.js +203 -0
- sqlseed_web/static/js/genform.js +1066 -0
- sqlseed_web/static/js/labels.js +195 -0
- sqlseed_web/static/js/pages/browse.js +209 -0
- sqlseed_web/static/js/pages/configs.js +424 -0
- sqlseed_web/static/js/pages/connect.js +332 -0
- sqlseed_web/static/js/pages/heal.js +395 -0
- sqlseed_web/static/js/pages/meta.js +110 -0
- sqlseed_web/static/js/pages/runs.js +293 -0
- sqlseed_web/static/js/pages/settings.js +942 -0
- sqlseed_web/static/js/pages/wizard.js +751 -0
- sqlseed_web/static/js/pages/workbench.js +3123 -0
- sqlseed_web/static/js/tree.js +126 -0
- sqlseed_web/static/js/workbench/ai-eligibility.js +33 -0
- sqlseed_web/static/js/workbench/ai-handoff.js +31 -0
- sqlseed_web/static/js/workbench/ai-stream.js +116 -0
- sqlseed_web/static/js/workbench/ai.js +888 -0
- sqlseed_web/static/js/workbench/connection.js +508 -0
- sqlseed_web/static/js/workbench/date-picker.js +445 -0
- sqlseed_web/static/js/workbench/dependency-view.js +119 -0
- sqlseed_web/static/js/workbench/editor.js +1236 -0
- sqlseed_web/static/js/workbench/focus.js +11 -0
- sqlseed_web/static/js/workbench/graph-layout.js +332 -0
- sqlseed_web/static/js/workbench/graph.js +970 -0
- sqlseed_web/static/js/workbench/guidance.js +29 -0
- sqlseed_web/static/js/workbench/model.js +124 -0
- sqlseed_web/static/js/workbench/plugin-management.js +512 -0
- sqlseed_web/static/js/workbench/preview-scroll-layout.js +94 -0
- sqlseed_web/static/js/workbench/preview.js +572 -0
- sqlseed_web/static/js/workbench/provider-guide.js +33 -0
- sqlseed_web/static/js/workbench/recovery.js +28 -0
- sqlseed_web/static/js/workbench/scroll-lock.js +26 -0
- sqlseed_web/static/js/workbench/session.js +174 -0
- sqlseed_web/static/js/workbench/table-data.js +186 -0
- sqlseed_web/static/js/workbench/ui.js +262 -0
- sqlseed_web/static/navigation.css +92 -0
- sqlseed_web/static/preview.css +29 -0
- sqlseed_web/static/runs.css +53 -0
- sqlseed_web/static/scrollbars.css +42 -0
- sqlseed_web/static/settings.css +108 -0
- sqlseed_web/static/style.css +3382 -0
- sqlseed_web/static/table-data.css +27 -0
- sqlseed_web/static/workbench.css +509 -0
- sqlseed_web/supervised_plugins.py +173 -0
- sqlseed_web/supervisor.py +238 -0
- sqlseed_web/workbench.py +381 -0
- sqlseed_web/workbench_ai.py +887 -0
- sqlseed_web/workbench_ai_relations.py +285 -0
- sqlseed_web/workbench_ai_stream.py +172 -0
- sqlseed_web/workbench_data.py +163 -0
- sqlseed_web/workbench_execution.py +199 -0
- sqlseed_web/workbench_runtime.py +1218 -0
- sqlseed_web/workbench_schema.py +277 -0
- sqlseed_web/workbench_store.py +458 -0
- sqlseed_web/worker_control.py +192 -0
- sqlseed_web-0.2.4.dist-info/METADATA +105 -0
- sqlseed_web-0.2.4.dist-info/RECORD +87 -0
- sqlseed_web-0.2.4.dist-info/WHEEL +4 -0
- sqlseed_web-0.2.4.dist-info/entry_points.txt +2 -0
- sqlseed_web-0.2.4.dist-info/licenses/LICENSE +679 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/* Shared read-only record viewer; independent from generated preview state. */
|
|
2
|
+
.run-view-data { display:flex; margin-top:8px; font-size:11px; min-height:30px; padding:4px 9px; }
|
|
3
|
+
.wb-table-data .wb-table-data-heading { display:flex; gap:16px; align-items:center; justify-content:space-between; }
|
|
4
|
+
.wb-table-data-heading h3 { margin:0; font-size:20px; overflow-wrap:anywhere; }
|
|
5
|
+
.wb-table-data-target { overflow-wrap:anywhere; user-select:text; font-size:12px; }
|
|
6
|
+
.wb-table-data-status { min-height:1.6em; font-size:12px; margin:14px 0 8px; }
|
|
7
|
+
.wb-table-data-error { color:var(--danger,#ac3434); font-size:13px; overflow-wrap:anywhere; }
|
|
8
|
+
.wb-table-data-error:empty { display:none; }
|
|
9
|
+
.wb-table-data-scroll { max-height:min(52vh,520px); overflow:auto; border:1px solid var(--line); border-radius:8px; }
|
|
10
|
+
.wb-table-data-scroll table { width:100%; border-spacing:0; border-collapse:separate; font-size:12px; }
|
|
11
|
+
.wb-table-data-scroll caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
|
|
12
|
+
.wb-table-data-scroll th { position:sticky; top:0; z-index:1; background:var(--soft); text-align:left; white-space:nowrap; padding:10px 14px; border-bottom:1px solid var(--line); }
|
|
13
|
+
.wb-table-data-scroll th small { display:block; font-size:11px; color:var(--muted); font-weight:400; margin-top:4px; }
|
|
14
|
+
.wb-table-data-scroll td { padding:10px 14px; border-bottom:1px solid var(--line); vertical-align:top; max-width:28rem; white-space:pre-wrap; overflow-wrap:anywhere; user-select:text; font-family:var(--mono,monospace); }
|
|
15
|
+
.wb-table-data-scroll tbody tr:last-child td { border-bottom:0; }
|
|
16
|
+
.wb-table-data-scroll tbody tr:hover { background:var(--wash); }
|
|
17
|
+
.wb-table-data-value summary { cursor:pointer; min-width:180px; color:var(--teal); }
|
|
18
|
+
.wb-table-data-value pre { white-space:pre-wrap; overflow-wrap:anywhere; margin:8px 0 0; font:inherit; }
|
|
19
|
+
.wb-table-data-pagination { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-top:14px; font-size:12px; }
|
|
20
|
+
.wb-table-data-pagination > div { display:flex; gap:8px; }
|
|
21
|
+
.wb-table-data-read-at,.wb-table-data-order,.wb-table-data-empty { font-size:12px; }
|
|
22
|
+
.wb-table-data-empty { padding:20px 14px; background:var(--wash); }
|
|
23
|
+
@media(max-width:760px) {
|
|
24
|
+
.wb-table-data-heading { flex-wrap:wrap; }
|
|
25
|
+
.wb-table-data-scroll { max-height:48vh; }
|
|
26
|
+
.wb-table-data-scroll td { min-width:100px; max-width:240px; }
|
|
27
|
+
}
|
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
/* Workbench-specific components of the v8 design. Shared tokens, typography,
|
|
2
|
+
layout and controls live in style.css; there is no alternate page theme. */
|
|
3
|
+
.wb-config-tools { display:flex; align-items:center; gap:14px; margin-top:10px; font-size:11px; }
|
|
4
|
+
.wb-config-tools .btn { padding:0; min-height:20px; border:0; background:none; font-weight:400; color:var(--muted); font-size:11px; }
|
|
5
|
+
.wb-config-tools .btn:hover { color:var(--teal); }
|
|
6
|
+
.wb-config-tools .icon { width:13px; height:13px; }
|
|
7
|
+
.wb-config-name { flex-direction:row-reverse; }
|
|
8
|
+
.wb-config-name .icon { width:16px; height:16px; color:var(--muted); margin-left:12px; }
|
|
9
|
+
.wb-welcome { max-width:680px; margin:10vh auto; padding:48px; text-align:center; background:var(--paper); border:1px solid var(--line); border-radius:12px; }
|
|
10
|
+
.wb-welcome>.icon { height:38px; width:38px; margin:0 auto 24px; color:var(--teal); }
|
|
11
|
+
.wb-welcome p { color:var(--muted); margin:18px 0 28px; }
|
|
12
|
+
.wb-welcome-steps { display:flex; justify-content:center; gap:22px; font-size:11px; color:var(--muted); padding-top:32px; }
|
|
13
|
+
.wb-table-list { max-height:550px; overflow:auto; }
|
|
14
|
+
.wb-source { overflow-wrap:anywhere; text-align:left; }
|
|
15
|
+
.wb-rule-button { display:block; text-align:left; padding:0; width:100%; }
|
|
16
|
+
.wb-rule-button:hover .rule-line { color:var(--teal); }
|
|
17
|
+
.wb-rule-button .rule-meta { overflow-wrap:anywhere; }
|
|
18
|
+
.wb-notice { overflow-wrap:anywhere; }
|
|
19
|
+
.wb-error { color:#a15813!important; }
|
|
20
|
+
.wb-success { color:var(--teal); }
|
|
21
|
+
.wb-preview-notice { font-size:11px; padding:0 27px; }
|
|
22
|
+
.wb-preview-notice:empty { display:none; }
|
|
23
|
+
.wb-key-values { display:grid; grid-template-columns:90px minmax(0,1fr); row-gap:16px; font-size:13px; padding:10px 0; }
|
|
24
|
+
.wb-key-values dt { color:var(--muted); }
|
|
25
|
+
.wb-key-values dd { margin:0; overflow-wrap:anywhere; }
|
|
26
|
+
.wb-edge-mapping { display:grid; gap:18px; background:#f5f9fa; padding:12px; border-radius:6px; }
|
|
27
|
+
.wb-edge-mapping>div { display:grid; gap:6px; font-size:12px; overflow-wrap:anywhere; }
|
|
28
|
+
.wb-code { width:100%; font:12px/1.7 var(--mono); padding:14px; border:1px solid var(--line); border-radius:7px; background:#f8fafb; resize:vertical; color:var(--ink); }
|
|
29
|
+
.wb-draft-card { width:100%; padding:13px 15px; margin:8px 0; text-align:left; display:flex; justify-content:space-between; align-items:center; gap:12px; border:1px solid var(--line); border-radius:7px; background:#fff; }
|
|
30
|
+
.wb-draft-card:hover { background:var(--soft); }
|
|
31
|
+
.wb-draft-card small { color:var(--muted); }
|
|
32
|
+
.wb-summary-total { padding:16px 0; color:var(--muted); }
|
|
33
|
+
.wb-summary-total strong { font-size:28px; color:var(--ink); }
|
|
34
|
+
.wb-summary-plan { padding:0; list-style:none; }
|
|
35
|
+
.wb-summary-plan li { display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--line); }
|
|
36
|
+
.wb-summary-plan li>span:last-child { color:var(--muted); }
|
|
37
|
+
.wb-import-help { font:12px/1.6 var(--mono); padding:12px; background:#f5f9fa; border-radius:7px; overflow:auto; }
|
|
38
|
+
.wb-imported-note { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; font-size:12px; color:var(--muted); }
|
|
39
|
+
.wb-settings-note { font-size:12px; color:var(--muted); }
|
|
40
|
+
.wb-page .execution-table { display:inline-flex; align-items:center; color:var(--ink); }
|
|
41
|
+
.wb-page .execution-table:hover { color:var(--teal); box-shadow:inset 0 0 0 1px var(--teal); }
|
|
42
|
+
.wb-page .inspector-field .field-card-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; }
|
|
43
|
+
.wb-page .inspector-field .field-card-heading small { font-size:10px; color:var(--muted); }
|
|
44
|
+
.wb-page .inspector-field .sample { font-size:11px; color:#577969; }
|
|
45
|
+
.wb-page .inspector-field { width:100%; text-align:left; }
|
|
46
|
+
.wb-page .inspector-table-title { display:flex; align-items:center; justify-content:space-between; }
|
|
47
|
+
.wb-page .inspector-table-title small { font-size:11px; color:var(--muted); }
|
|
48
|
+
.wb-page .inspector-actions>.btn { width:100%; margin-top:10px; }
|
|
49
|
+
.wb-page .inspector-tabs { display:flex; gap:18px; padding:0 13px; border-bottom:1px solid var(--line); background:#f8fafb; }
|
|
50
|
+
.wb-page .inspector-tabs button { font-size:12px; padding:12px 0; border-bottom:2px solid transparent; color:var(--muted); }
|
|
51
|
+
.wb-page .inspector-tabs button.active { border-color:var(--teal); color:var(--teal); font-weight:600; }
|
|
52
|
+
@media(max-width:760px) {
|
|
53
|
+
.wb-welcome { padding:28px 18px; margin:4vh auto; }
|
|
54
|
+
.wb-welcome-steps { gap:8px; flex-wrap:wrap; }
|
|
55
|
+
.wb-config-tools { gap:12px; }
|
|
56
|
+
.wb-table-list { max-height:none; overflow-x:auto; }
|
|
57
|
+
.wb-key-values { grid-template-columns:70px minmax(0,1fr); }
|
|
58
|
+
}
|
|
59
|
+
/* Component additions to the v8 prototype baseline, for root to integrate.
|
|
60
|
+
graph.js uses graph-toolbar / graph-filters / path-scope / graph-meta /
|
|
61
|
+
graph-canvas / schema-graph / graph-node / graph-edge / graph-label directly.
|
|
62
|
+
editor.js uses generator-heading/picker/options and control/column-constraints.
|
|
63
|
+
Keep the prototype definitions for these classes; remove former wb/sg skins. */
|
|
64
|
+
|
|
65
|
+
.graph-controls,
|
|
66
|
+
.graph-visual { min-width: 0; }
|
|
67
|
+
.graph-controls .graph-toolbar { margin: 17px 0 12px; }
|
|
68
|
+
.graph-controls [hidden],
|
|
69
|
+
.rule-editor [hidden] { display: none !important; }
|
|
70
|
+
.graph-controls .graph-search { margin-left: auto; }
|
|
71
|
+
.graph-controls .graph-search > button {
|
|
72
|
+
border: 0; background: transparent; color: var(--muted);
|
|
73
|
+
font-size: 10px; padding: 2px; white-space: nowrap;
|
|
74
|
+
}
|
|
75
|
+
.graph-controls .graph-search > button:disabled { opacity: .45; cursor: default; }
|
|
76
|
+
.graph-visual .schema-graph { overflow: visible; }
|
|
77
|
+
.graph-visual .graph-canvas { touch-action: none; }
|
|
78
|
+
.graph-visual .graph-meta { margin-top: 0; }
|
|
79
|
+
.graph-visual .graph-tools .graph-zoom-label {
|
|
80
|
+
min-width: 38px; text-align: center; font: 10px var(--mono); cursor: help;
|
|
81
|
+
}
|
|
82
|
+
.graph-visual .graph-footer input {
|
|
83
|
+
width: 14px; height: 14px; min-width: 14px; margin: 0; accent-color: var(--teal);
|
|
84
|
+
}
|
|
85
|
+
.graph-empty { padding: 72px 24px; text-align: center; font-size: 12px; color: var(--muted); }
|
|
86
|
+
.graph-canvas:focus-visible,
|
|
87
|
+
.graph-controls button:focus-visible,
|
|
88
|
+
.graph-visual button:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
|
|
89
|
+
|
|
90
|
+
.rule-editor { min-width: 0; font-size: 12px; color: var(--ink); }
|
|
91
|
+
.rule-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; margin-bottom: 18px; }
|
|
92
|
+
.rule-heading strong { font-size: 17px; }
|
|
93
|
+
.rule-heading span { font-size: 11px; }
|
|
94
|
+
.drawer-body .rule-heading { display: none; } /* The drawer header already names the column. */
|
|
95
|
+
.rule-editor .control { display: block; margin: 18px 0; }
|
|
96
|
+
.rule-editor .control > label { display: block; color: var(--muted); }
|
|
97
|
+
.rule-editor .editor-control-label { display: block; }
|
|
98
|
+
.rule-editor .control input:not([type=checkbox]),
|
|
99
|
+
.rule-editor .control textarea,
|
|
100
|
+
.rule-editor .control .dropdown { width: 100%; min-width: 0; margin-top: 8px; }
|
|
101
|
+
.rule-editor .control input[type=checkbox] {
|
|
102
|
+
display: inline-block; width: 14px; height: 14px; min-width: 14px;
|
|
103
|
+
padding: 0; margin: 8px 0 0; accent-color: var(--teal);
|
|
104
|
+
}
|
|
105
|
+
.rule-editor .control small { display: block; margin-top: 5px; }
|
|
106
|
+
.rule-editor .generator-heading .btn { gap: 10px; }
|
|
107
|
+
.rule-editor .generator-all {
|
|
108
|
+
display: flex; align-items: center; gap: 6px; margin-top: 8px;
|
|
109
|
+
font-size: 10px; color: var(--muted); cursor: pointer;
|
|
110
|
+
}
|
|
111
|
+
.rule-editor .generator-all input {
|
|
112
|
+
width: 13px; height: 13px; min-width: 13px; margin: 0; accent-color: var(--teal);
|
|
113
|
+
}
|
|
114
|
+
.rule-editor .generator-options button { text-align: left; color: var(--ink); min-width:0; overflow-wrap:anywhere; padding:10px 12px; }
|
|
115
|
+
.rule-editor .generator-options .editor-note { grid-column: 1 / -1; }
|
|
116
|
+
.rule-editor .editor-note { margin-top: 10px; }
|
|
117
|
+
.rule-editor .column-constraints { margin-top: 18px; border-top: 1px solid var(--line); padding-top: 14px; }
|
|
118
|
+
.rule-editor .editor-reset { margin-top: 16px; }
|
|
119
|
+
.editor-error { color: #a95023; font-size: 11px; line-height: 1.8; margin-bottom: 10px; }
|
|
120
|
+
.editor-error:empty { display: none; }
|
|
121
|
+
.rule-editor [aria-invalid=true] { border-color: #b16c3c !important; }
|
|
122
|
+
|
|
123
|
+
/* ui.modal uses the exact v8 overlay/modal/drawer skeleton. These aliases
|
|
124
|
+
replace ID-only prototype rules and allow more than one modal purpose. */
|
|
125
|
+
.modal > .modal-body { overflow: auto; min-height: 0; }
|
|
126
|
+
.modal { max-height: calc(100vh - 38px); display: flex; flex-direction: column; }
|
|
127
|
+
.modal-wide { width: min(860px, calc(100% - 36px)); }
|
|
128
|
+
.modal-head,
|
|
129
|
+
.modal-footer { flex-shrink: 0; }
|
|
130
|
+
.drawer > .drawer-body { overflow: auto; min-height: 0; padding: 0 3px 8px; }
|
|
131
|
+
.drawer > .drawer-head,
|
|
132
|
+
.drawer > .drawer-footer { flex-shrink: 0; }
|
|
133
|
+
.drawer > .drawer-head h2 { font-size: 17px; overflow-wrap: anywhere; }
|
|
134
|
+
|
|
135
|
+
@media (max-width: 760px) {
|
|
136
|
+
.graph-controls .graph-search { margin-left: 0; }
|
|
137
|
+
.rule-editor .generator-options { grid-template-columns: 1fr 1fr; }
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* Usability refinement: clear scope, readable controls and room for focus rings. */
|
|
141
|
+
.wb-page .heading { align-items:center; gap:14px 18px; flex-wrap:wrap; margin-bottom:12px; }
|
|
142
|
+
.wb-page .heading .title-line { min-width:0; flex-wrap:wrap; gap:10px; }
|
|
143
|
+
.wb-page .heading h1 { font-size:23px; }
|
|
144
|
+
.wb-page .wb-config-name { overflow-wrap:anywhere; text-align:left; }
|
|
145
|
+
.wb-page .wb-config-name .icon { flex-shrink:0; }
|
|
146
|
+
.wb-page .heading-actions { gap:10px; flex-wrap:wrap; align-items:flex-start; }
|
|
147
|
+
.wb-page .wb-config-context { display:flex; align-items:center; flex-wrap:wrap; gap:8px 18px; margin-bottom:16px; padding:10px 14px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
|
|
148
|
+
.wb-config-context [data-provider-warning] { flex-basis:100%; min-width:0; padding-top:10px; border-top:1px solid var(--line); color:#805323; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
|
|
149
|
+
.wb-config-context [data-provider-warning][hidden] { display:none; }
|
|
150
|
+
.wb-config-context [data-provider-warning] p { margin:0 0 8px; }
|
|
151
|
+
.wb-config-context [data-provider-warning] .btn { margin:0 8px 0 0; }
|
|
152
|
+
.wb-next-step { margin-bottom:16px; padding:10px 14px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
|
|
153
|
+
.wb-next-step-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; color:var(--muted); font-size:12px; }
|
|
154
|
+
.wb-next-step-body { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px 24px; padding-top:6px; }
|
|
155
|
+
.wb-next-step-body[hidden] { display:none; }
|
|
156
|
+
.wb-next-step-main { min-width:0; }
|
|
157
|
+
.wb-next-step-main h3 { margin:0 0 5px; font-size:14px; }
|
|
158
|
+
.wb-next-step-main p { margin:0 0 8px; font-size:12px; line-height:1.65; color:var(--muted); }
|
|
159
|
+
.wb-next-step-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
|
|
160
|
+
.wb-next-step-ai { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding-left:20px; border-left:1px solid var(--line); }
|
|
161
|
+
.wb-next-step-ai>span { display:flex; align-items:center; gap:6px; font-size:13px; }
|
|
162
|
+
.wb-next-step-ai small { font-size:11px; color:var(--muted); }
|
|
163
|
+
@media(max-width:760px) {
|
|
164
|
+
.wb-next-step-body { grid-template-columns:minmax(0,1fr); }
|
|
165
|
+
.wb-next-step-ai { border-left:0; border-top:1px solid var(--line); padding:10px 0 0; flex-direction:row; align-items:center; flex-wrap:wrap; }
|
|
166
|
+
}
|
|
167
|
+
.wb-page .wb-config-tools { gap:10px; flex-wrap:wrap; margin:0; }
|
|
168
|
+
.wb-page .wb-config-tools .btn { padding:5px 9px; min-height:30px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:12px; }
|
|
169
|
+
.wb-generation-settings { display:grid; grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr); gap:12px; padding:16px 20px; margin:4px 0 16px; border:1px solid var(--line); border-radius:10px; background:var(--paper); }
|
|
170
|
+
.wb-settings-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:13px; }
|
|
171
|
+
.wb-settings-heading small { width:100%; font-size:11px; color:var(--muted); }
|
|
172
|
+
.wb-setting-tile { display:grid; grid-template-columns:1fr auto; gap:5px 12px; padding:10px 14px; border:1px solid var(--line); border-radius:7px; text-align:left; background:#f6faf9; }
|
|
173
|
+
.wb-setting-tile small { color:var(--muted); font-size:11px; }
|
|
174
|
+
.wb-setting-tile strong { grid-row:2; font:600 14px var(--mono); }
|
|
175
|
+
.wb-setting-tile span { grid-column:2; grid-row:1 / 3; align-self:center; font-size:12px; color:var(--teal); }
|
|
176
|
+
.wb-setting-tile:hover { border-color:var(--teal); }
|
|
177
|
+
.wb-page .selection-actions { display:flex; gap:8px; padding:0 8px 10px; }
|
|
178
|
+
.wb-page .wb-sidebar .sidebar-label { margin-left:9px; margin-right:9px; margin-top:16px; margin-bottom:10px; }
|
|
179
|
+
.wb-page .selection-actions .btn { padding:6px 10px; min-height:30px; border:1px solid var(--line); border-radius:6px; background:var(--paper); font-size:12px; }
|
|
180
|
+
.wb-page .wb-field-name { cursor:pointer; text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:4px; }
|
|
181
|
+
.wb-source-card { padding:12px; border:1px solid var(--line); border-radius:7px; margin:10px 0; font-size:12px; overflow-wrap:anywhere; background:#f7faf9; }
|
|
182
|
+
.wb-source-card strong { font-size:11px; }
|
|
183
|
+
.wb-source-card p { margin:8px 0; line-height:1.6; color:var(--muted); }
|
|
184
|
+
.wb-overlay .wb-modal-actions { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; padding-top:12px; }
|
|
185
|
+
.wb-overlay .wb-modal-actions .btn { margin:0; }
|
|
186
|
+
.wb-overlay .drawer > .drawer-body { padding:8px 8px 14px; }
|
|
187
|
+
.wb-modal .control { min-width:0; margin:16px 0; }
|
|
188
|
+
.wb-modal input[type=checkbox],.wb-modal input[type=radio] { accent-color:var(--teal); }
|
|
189
|
+
.wb-modal .control input:not([type=checkbox]):not([type=radio]),.wb-modal .control textarea,.wb-modal .dropdown { max-width:100%; min-width:0; }
|
|
190
|
+
.wb-modal input:focus-visible,.wb-modal textarea:focus-visible,.wb-modal .dropdown-btn:focus-visible,.wb-modal button:focus-visible { outline:2px solid #74b7c9; outline-offset:1px; }
|
|
191
|
+
.wb-modal .modal-body { padding:4px; }
|
|
192
|
+
.wb-modal .drawer-body input[type=date],.wb-modal .drawer-body input[type=time] { display:block; box-sizing:border-box; min-height:38px; }
|
|
193
|
+
.wb-generator-guide,.wb-editor-default { padding:12px; border-radius:7px; background:#f0f7f4; margin:12px 0; overflow-wrap:anywhere; }
|
|
194
|
+
.wb-generator-purpose { font-size:12px; line-height:1.6; }
|
|
195
|
+
.wb-generator-example { display:block; margin-top:5px; font:11px/1.6 var(--mono); color:var(--teal); overflow-wrap:anywhere; }
|
|
196
|
+
.wb-parameter-hint { display:block; font-size:11px; line-height:1.6; color:var(--muted); margin:5px 0; }
|
|
197
|
+
.wb-param-presets,.wb-weekday-options { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0; }
|
|
198
|
+
.wb-param-presets button { padding:5px 9px; border:1px solid var(--line); border-radius:5px; font-size:11px; background:var(--paper); }
|
|
199
|
+
.wb-weekday-options label { display:flex; gap:5px; align-items:center; font-size:12px; }
|
|
200
|
+
.rule-editor details { border:1px solid var(--line); border-radius:7px; padding:12px; margin:16px 0; }
|
|
201
|
+
.rule-editor details > summary { cursor:pointer; font-weight:600; }
|
|
202
|
+
.connection-group { border:1px solid var(--line); border-radius:8px; padding:14px; margin:12px 0; }
|
|
203
|
+
.connection-group-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
|
|
204
|
+
.connection-target { font-size:11px; color:var(--muted); overflow-wrap:anywhere; margin:7px 0 12px; }
|
|
205
|
+
.connection-session { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; margin:8px 0; align-items:center; }
|
|
206
|
+
.connection-session .connection-card { margin:0; }
|
|
207
|
+
.connection-session-help { display:block; font-size:11px; color:var(--muted); margin:8px 0; }
|
|
208
|
+
.connection-add-title { border-top:1px solid var(--line); padding-top:18px; margin-top:22px; }
|
|
209
|
+
.connection-notice:empty { display:none; }
|
|
210
|
+
.connection-modal .connection-notice { font-size:12px; line-height:1.6; color:var(--teal); overflow-wrap:anywhere; }
|
|
211
|
+
.connection-modal .connection-file-path { align-items:center; }
|
|
212
|
+
.connection-modal .connection-file-path input { flex:1; }
|
|
213
|
+
.connection-modal .connection-file-path > button { flex:none; min-height:38px; margin:0; }
|
|
214
|
+
.connection-modal button:disabled { opacity:.55; cursor:default; }
|
|
215
|
+
.connection-modal [aria-busy=true] button:disabled { cursor:wait; }
|
|
216
|
+
.connection-modal .connection-card:disabled { cursor:default; }
|
|
217
|
+
.run-metrics { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:20px 0; }
|
|
218
|
+
.run-metrics .run-total { display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:16px; margin:0; border:1px solid var(--line); border-radius:8px; }
|
|
219
|
+
.run-metrics .run-committed { background:#f0f7f4; }
|
|
220
|
+
.run-metric-label,.run-count-explanation { font-size:12px; color:var(--muted); line-height:1.7; }
|
|
221
|
+
.wb-ai-settings,.wb-ai-form,.wb-ai-diff { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
|
|
222
|
+
.wb-ai-actions,.wb-ai-scope { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:14px 0; }
|
|
223
|
+
.wb-ai-suggestion { padding:14px; border:1px solid var(--line); border-radius:7px; margin:12px 0; }
|
|
224
|
+
.wb-ai-suggestion label { display:flex; align-items:center; gap:8px; }
|
|
225
|
+
.wb-ai-suggestion input[type=checkbox] { width:15px; height:15px; }
|
|
226
|
+
.wb-ai-diff > * { min-width:0; overflow-wrap:anywhere; background:#f5f9fa; padding:10px; border-radius:6px; }
|
|
227
|
+
.wb-ai-diff pre { font-size:11px; white-space:pre-wrap; overflow-wrap:anywhere; }
|
|
228
|
+
.wb-ai-status { font-size:12px; line-height:1.7; overflow-wrap:anywhere; }
|
|
229
|
+
@media(max-width:900px) {
|
|
230
|
+
.wb-generation-settings { grid-template-columns:1fr 1fr; }
|
|
231
|
+
.wb-settings-heading { grid-column:1 / -1; }
|
|
232
|
+
.wb-settings-heading small { width:auto; }
|
|
233
|
+
}
|
|
234
|
+
@media(max-width:600px) {
|
|
235
|
+
.wb-generation-settings,.wb-ai-settings,.wb-ai-form,.wb-ai-diff,.run-metrics { grid-template-columns:1fr; }
|
|
236
|
+
.connection-session { grid-template-columns:minmax(0,1fr); }
|
|
237
|
+
.wb-page .heading-actions { width:100%; }
|
|
238
|
+
.wb-page .heading-actions > button { flex:1; }
|
|
239
|
+
}
|
|
240
|
+
.wb-ai-settings { display:block; margin:16px 0; padding:14px; border:1px solid var(--line); border-radius:8px; }
|
|
241
|
+
.wb-ai-settings > summary { cursor:pointer; font-weight:600; }
|
|
242
|
+
.wb-ai-settings-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 18px; margin-top:10px; }
|
|
243
|
+
.wb-ai-settings-form .control input { display:block; width:100%; margin-top:8px; }
|
|
244
|
+
.wb-ai-settings-form .hint,.wb-ai-settings-form small { display:block; font-size:11px; color:var(--muted); line-height:1.6; margin-top:6px; }
|
|
245
|
+
.wb-ai-settings-form .wb-ai-models,.wb-ai-settings-form .wb-ai-actions { grid-column:1 / -1; }
|
|
246
|
+
.wb-ai-scope label { display:flex; align-items:center; gap:7px; }
|
|
247
|
+
.wb-ai-scope input { width:15px; height:15px; margin:0; }
|
|
248
|
+
.rule-editor .generator-options { grid-template-columns:1fr; max-height:310px; padding:4px; gap:8px; }
|
|
249
|
+
.rule-editor .generator-options .wb-generator-example { font:11px/1.6 var(--mono); color:var(--teal); margin-top:5px; }
|
|
250
|
+
.rule-editor .generator-options .wb-generator-purpose { font-size:12px; line-height:1.6; }
|
|
251
|
+
@media(max-width:600px) { .wb-ai-settings-form { grid-template-columns:1fr; } }
|
|
252
|
+
.wb-modal.modal-wide { width:min(860px,calc(100% - 36px)); }
|
|
253
|
+
.wb-ai-settings-form .wb-ai-models:empty { display:none; }
|
|
254
|
+
.wb-ai-progress { flex-basis:100%; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 14px; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--soft); font-size:12px; line-height:1.5; }
|
|
255
|
+
.wb-ai-progress[hidden] { display:none; }
|
|
256
|
+
.wb-ai-progress strong { flex:1; min-width:180px; overflow-wrap:anywhere; }
|
|
257
|
+
.wb-ai-progress > span { color:var(--muted); white-space:nowrap; font-variant-numeric:tabular-nums; }
|
|
258
|
+
.wb-ai-diagnostics { margin:12px 0; padding:12px; border:1px solid var(--line); border-radius:7px; }
|
|
259
|
+
.wb-ai-diagnostics summary { cursor:pointer; font-weight:600; }
|
|
260
|
+
.wb-ai-diagnostics ul { margin:10px 0 0; padding-left:20px; line-height:1.7; overflow-wrap:anywhere; }
|
|
261
|
+
|
|
262
|
+
/* Reviewed hierarchy: compact global context, one preview entry, separate field facts. */
|
|
263
|
+
.wb-page .wb-generation-settings { display:flex; align-items:center; flex-wrap:wrap; padding:0; gap:10px; margin:0 0 0 auto; border:0; border-radius:0; background:transparent; }
|
|
264
|
+
.wb-page .wb-settings-heading { font-size:11px; color:var(--muted); }
|
|
265
|
+
.wb-page .wb-settings-heading small { width:auto; }
|
|
266
|
+
.wb-page .wb-setting-tile { display:flex; align-items:center; gap:8px; padding:6px 10px; }
|
|
267
|
+
.wb-page .wb-setting-tile strong { font-size:13px; }
|
|
268
|
+
.wb-operation-status { margin:0 0 12px; padding:10px 14px; border:1px solid var(--line); background:var(--soft); border-radius:7px; font-size:13px; }
|
|
269
|
+
.wb-operation-status[hidden] { display:none; }
|
|
270
|
+
.wb-button[disabled] { opacity:.6; }
|
|
271
|
+
.wb-button[aria-busy=true] { cursor:wait; }
|
|
272
|
+
.wb-ai-protected { padding:12px; background:var(--soft); border-radius:7px; color:var(--muted); line-height:1.6; }
|
|
273
|
+
.wb-provider-guide { border:1px solid var(--line); padding:14px; border-radius:8px; background:var(--soft); font-size:13px; }
|
|
274
|
+
.wb-provider-guide h3 { margin:0 0 10px; display:flex; align-items:center; gap:10px; }
|
|
275
|
+
.wb-provider-guide h3 small { color:var(--teal); font-size:11px; }
|
|
276
|
+
.wb-provider-guide ul { padding-left:18px; line-height:1.7; }
|
|
277
|
+
.wb-provider-example { padding:4px 10px; border-radius:6px; background:var(--paper); overflow-wrap:anywhere; }
|
|
278
|
+
.wb-provider-guide > small { display:block; margin-top:7px; font-size:11px; }
|
|
279
|
+
.wb-provider-limit { color:var(--muted); }
|
|
280
|
+
.wb-provider-guide summary { cursor:pointer; min-height:28px; }
|
|
281
|
+
.wb-provider-guide a { display:inline-block; margin:6px 12px 0 0; }
|
|
282
|
+
.wb-structure-menu { position:relative; margin-top:12px; }
|
|
283
|
+
.wb-structure-menu > summary { display:flex; align-items:center; gap:8px; cursor:pointer; min-height:32px; color:var(--teal); font-size:12px; }
|
|
284
|
+
.wb-structure-menu > summary::after { content:'⌄'; margin-left:auto; }
|
|
285
|
+
.wb-structure-commands { display:flex; flex-direction:column; gap:8px; padding:10px; background:var(--paper); border:1px solid var(--line); border-radius:8px; }
|
|
286
|
+
.wb-structure-commands .btn { justify-content:flex-start; }
|
|
287
|
+
.wb-field-tabs { display:flex; border-bottom:1px solid var(--line); margin-bottom:18px; }
|
|
288
|
+
.wb-field-tabs [role=tab] { min-height:42px; padding:10px 16px; border:0; border-bottom:2px solid transparent; border-radius:0; background:none; }
|
|
289
|
+
.wb-field-tabs [aria-selected=true] { border-bottom-color:var(--teal); color:var(--teal); font-weight:600; }
|
|
290
|
+
.wb-field-facts { display:grid; grid-template-columns:110px minmax(0,1fr); gap:12px; }
|
|
291
|
+
.wb-field-facts dt { color:var(--muted); }
|
|
292
|
+
.wb-field-facts dd { margin:0; overflow-wrap:anywhere; }
|
|
293
|
+
.wb-drawer [role=tabpanel][hidden] { display:none; }
|
|
294
|
+
|
|
295
|
+
.wb-write-strategy { border:1px solid var(--line); border-radius:9px; padding:12px 16px; margin:16px 0; min-width:0; }
|
|
296
|
+
.wb-write-strategy legend { font-weight:600; padding:0 6px; }
|
|
297
|
+
.wb-write-strategy label { display:flex; align-items:flex-start; gap:10px; padding:9px 0; cursor:pointer; }
|
|
298
|
+
.wb-write-strategy input { margin-top:3px; flex:none; }
|
|
299
|
+
.wb-write-strategy small { display:block; color:var(--muted); margin-top:4px; line-height:1.6; }
|
|
300
|
+
.wb-write-strategy .wb-reset-identity { border-top:1px solid var(--line); margin-top:6px; padding-top:14px; }
|
|
301
|
+
.wb-execution-plan { padding:12px 16px; border-radius:8px; background:var(--wash); }
|
|
302
|
+
.wb-execution-plan ul { padding-left:22px; }
|
|
303
|
+
|
|
304
|
+
/* Preview is a read-only result view; configuration remains on the workbench. */
|
|
305
|
+
.wb-config-document { display:inline-flex; align-items:center; gap:7px; padding:5px 9px; min-height:30px; color:var(--muted); background:transparent; border:1px solid transparent; border-radius:6px; font-size:12px; }
|
|
306
|
+
.wb-config-document:hover { background:var(--soft); color:var(--teal); }
|
|
307
|
+
.modal.wb-data-preview { width:min(1080px,calc(100% - 40px)); }
|
|
308
|
+
.wb-preview-controls { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; margin:20px 0 10px; }
|
|
309
|
+
.wb-preview-field { display:flex; flex-direction:column; gap:7px; min-width:0; color:var(--muted); font-size:12px; }
|
|
310
|
+
.wb-preview-field .dropdown { width:260px; max-width:100%; }
|
|
311
|
+
.wb-preview-field input[type=number] { width:130px; height:38px; margin:0; padding:7px 10px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); font-variant-numeric:tabular-nums; }
|
|
312
|
+
.wb-preview-field .dropdown-btn { height:38px; min-height:38px; }
|
|
313
|
+
.wb-preview-controls > .btn { height:38px; min-height:38px; }
|
|
314
|
+
.wb-preview-help { margin:8px 0 14px; color:var(--muted); font-size:12px; line-height:1.6; }
|
|
315
|
+
.wb-preview-status { margin:12px 0; font-size:13px; }
|
|
316
|
+
.wb-preview-error { color:#a15813; font-size:13px; }
|
|
317
|
+
.wb-preview-error:empty,.wb-preview-issues:empty { display:none; }
|
|
318
|
+
.wb-preview-issues { padding:10px 14px; border:1px solid var(--line); border-radius:8px; background:var(--soft); font-size:12px; line-height:1.6; }
|
|
319
|
+
.wb-preview-issues p { margin:4px 0; }
|
|
320
|
+
.wb-preview-tables:empty { display:none; }
|
|
321
|
+
.wb-preview-tables { display:flex; flex-wrap:wrap; gap:7px; margin:16px 0 12px; }
|
|
322
|
+
.wb-preview-tables .btn[aria-pressed=true] { border-color:var(--teal); color:var(--teal); background:var(--soft); }
|
|
323
|
+
.wb-preview-summary { margin:12px 0; font-size:13px; }
|
|
324
|
+
/* Short inline previews stay natural; long tables retain their fixed headers. */
|
|
325
|
+
.wb-preview-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:8px; }
|
|
326
|
+
.wb-preview-scroll.wb-preview-long { max-height:55vh; overflow:auto; }
|
|
327
|
+
/* Only the measured desktop table or the modal body scrolls vertically. */
|
|
328
|
+
.modal.wb-data-preview > .modal-body { display:flex; flex-direction:column; scrollbar-gutter:stable; }
|
|
329
|
+
.modal.wb-data-preview > .modal-body > * { flex:none; }
|
|
330
|
+
.modal.wb-data-preview .wb-preview-results { display:flex; flex-direction:column; }
|
|
331
|
+
.modal.wb-data-preview .wb-preview-results > * { flex:none; }
|
|
332
|
+
.modal.wb-data-preview.wb-preview-table-scroll > .modal-body { overflow:hidden; }
|
|
333
|
+
.wb-preview-data { width:max-content; min-width:100%; border-collapse:collapse; table-layout:auto; font-size:12px; }
|
|
334
|
+
.wb-preview-data caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
|
|
335
|
+
.wb-preview-data thead th { position:sticky; top:0; z-index:1; background:var(--soft); text-align:left; white-space:nowrap; }
|
|
336
|
+
.wb-preview-data th,.wb-preview-data td { padding:10px 12px; border-bottom:1px solid var(--line); vertical-align:top; }
|
|
337
|
+
.wb-preview-data td { min-width:100px; max-width:320px; overflow-wrap:anywhere; font-family:var(--mono); }
|
|
338
|
+
.wb-preview-data tbody th { text-align:left; font-weight:400; }
|
|
339
|
+
.wb-preview-data th:first-child,.wb-preview-data td:first-child { min-width:40px; width:44px; color:var(--muted); }
|
|
340
|
+
.wb-preview-data tr:last-child td { border-bottom:0; }
|
|
341
|
+
.wb-preview-data .wb-preview-placeholder { font-family:inherit; font-size:11px; color:var(--muted); }
|
|
342
|
+
.wb-preview-empty { padding:22px 14px; border:1px dashed var(--line); border-radius:8px; color:var(--muted); line-height:1.6; }
|
|
343
|
+
@media(max-width:600px) {
|
|
344
|
+
.modal.wb-data-preview { width:calc(100% - 20px); }
|
|
345
|
+
.wb-preview-controls { gap:10px; }
|
|
346
|
+
.wb-preview-field:first-child { width:100%; }
|
|
347
|
+
.wb-preview-field .dropdown { width:100%; }
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* Object-focused workbench: table navigation and table content size independently. */
|
|
351
|
+
.wb-page .wb-workspace { grid-template-columns:264px minmax(0,1fr); align-items:start; gap:16px; border:0; border-radius:0; background:transparent; overflow:visible; min-height:0; }
|
|
352
|
+
.wb-page .wb-sidebar { border:1px solid var(--line); border-radius:10px; padding:14px 12px; min-width:0; }
|
|
353
|
+
.wb-page .wb-content { border:1px solid var(--line); border-radius:10px; background:var(--paper); overflow:hidden; min-width:0; }
|
|
354
|
+
.wb-page .wb-sidebar .source { padding:0 8px 12px; }
|
|
355
|
+
.wb-page .wb-sidebar .source-note { margin-top:6px; }
|
|
356
|
+
.wb-page .wb-table-search { display:flex; margin:0 8px 10px; width:auto; min-width:0; }
|
|
357
|
+
.wb-page .wb-table-search input { width:100%; min-width:0; }
|
|
358
|
+
.wb-page .wb-table-list { max-height:360px; min-height:0; overflow:auto; }
|
|
359
|
+
.wb-page .wb-table-entry { display:grid; grid-template-columns:16px minmax(0,1fr) 28px; gap:6px; padding:0 6px; margin:2px 0; }
|
|
360
|
+
.wb-page .wb-table-entry .wb-table-name { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:9px 0; min-width:0; }
|
|
361
|
+
.wb-page .wb-table-name .table-name { width:100%; white-space:normal; overflow-wrap:anywhere; font-size:12px; line-height:1.4; }
|
|
362
|
+
.wb-page .wb-table-name .count { margin:0; font-size:10px; line-height:1.4; white-space:normal; }
|
|
363
|
+
.wb-page .wb-table-graph { display:flex; width:28px; height:30px; padding:5px; }
|
|
364
|
+
.wb-page .wb-table-graph:focus-visible,.wb-page .wb-table-entry input:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
|
|
365
|
+
.wb-page .wb-table-entry[hidden] { display:none; }
|
|
366
|
+
.wb-page .wb-batch-preview { margin:12px 8px 0; width:calc(100% - 16px); }
|
|
367
|
+
.wb-page .scope-summary { margin-top:14px; padding:12px 8px 0; }
|
|
368
|
+
.wb-page .wb-structure-commands { padding:8px 0 0; border:0; border-radius:0; background:transparent; gap:5px; }
|
|
369
|
+
.wb-page .wb-structure-commands .btn { background:var(--paper); font-size:11px; padding:6px 8px; }
|
|
370
|
+
.wb-page .wb-structure-commands small { color:var(--muted); padding:2px 0 5px; }
|
|
371
|
+
.wb-page .wb-structure-menu[open] > summary::after { content:'⌃'; }
|
|
372
|
+
.wb-page .table-heading { padding:18px 22px 8px; }
|
|
373
|
+
.wb-page .viewbar { margin:0 22px; padding:0; gap:14px; }
|
|
374
|
+
.wb-page .viewbar > .search { margin:0; }
|
|
375
|
+
.wb-page .tabs [role=tab] { white-space:nowrap; }
|
|
376
|
+
.wb-page .tabs [role=tab]:focus-visible { outline:2px solid var(--teal); outline-offset:-2px; }
|
|
377
|
+
.wb-page .sample-guide { padding:13px 22px; }
|
|
378
|
+
.wb-page .wb-rules-scroll { max-height:min(60vh,640px); overflow:auto; scroll-padding-block:32px 4px; }
|
|
379
|
+
.wb-page .wb-rules-scroll:focus-visible,.wb-page .wb-preview-scroll:focus-visible { outline:2px solid var(--teal); outline-offset:-2px; }
|
|
380
|
+
.wb-page .wb-data col.col-field { width:32%; }
|
|
381
|
+
.wb-page .wb-data col.col-rule { width:68%; }
|
|
382
|
+
.wb-page .wb-data thead th { position:sticky; top:0; z-index:1; background:var(--wash); }
|
|
383
|
+
.wb-page .wb-data th:first-child,.wb-page .wb-data td:first-child { padding-left:22px; }
|
|
384
|
+
.wb-page .wb-data th:last-child,.wb-page .wb-data td:last-child { padding-right:22px; }
|
|
385
|
+
.wb-page .wb-data .field-type { overflow-wrap:anywhere; }
|
|
386
|
+
.wb-page .statusbar { padding:10px 22px; }
|
|
387
|
+
.wb-table-preview { padding:2px 22px 18px; }
|
|
388
|
+
.wb-table-preview .wb-preview-controls { margin-top:12px; }
|
|
389
|
+
.wb-table-preview .wb-preview-summary { margin:10px 0; }
|
|
390
|
+
.wb-document-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin:14px 0 10px; }
|
|
391
|
+
.wb-document-format { display:flex; align-items:center; gap:8px; margin-left:auto; color:var(--muted); font-size:12px; }
|
|
392
|
+
.wb-document-format .dropdown { width:105px; }
|
|
393
|
+
.wb-document-toolbar .btn,.wb-document-format .dropdown-btn { min-height:36px; }
|
|
394
|
+
.wb-dependency-summary { padding:12px 14px; margin:12px 0 16px; border:1px solid var(--line); border-radius:8px; font-size:13px; }
|
|
395
|
+
.wb-dependency-summary p { margin:5px 0 0; color:var(--muted); font-size:12px; }
|
|
396
|
+
.wb-dependency-blocked { background:#fff8ed; border-color:#e5c59d; }
|
|
397
|
+
.wb-dependency-blocked strong { color:#895212; }
|
|
398
|
+
.wb-dependency-passed { background:var(--soft); }
|
|
399
|
+
.wb-dependency-passed strong { color:var(--teal); }
|
|
400
|
+
.wb-dependency-issues h4 { margin:16px 0 8px; font-size:13px; }
|
|
401
|
+
.wb-dependency-issues .dependency-card { overflow-wrap:anywhere; }
|
|
402
|
+
.wb-dependency-sources { margin:18px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:8px 0; }
|
|
403
|
+
.wb-dependency-sources > summary { cursor:pointer; min-height:32px; padding:6px 0; font-size:13px; font-weight:600; overflow-wrap:anywhere; }
|
|
404
|
+
.wb-dependency-sources > summary:focus-visible { outline:2px solid var(--teal); outline-offset:2px; }
|
|
405
|
+
.wb-dependency-sources > p { font-size:12px; }
|
|
406
|
+
@media(max-width:760px) {
|
|
407
|
+
.wb-page .wb-workspace { grid-template-columns:1fr; gap:12px; }
|
|
408
|
+
.wb-page .wb-sidebar { display:block; }
|
|
409
|
+
.wb-page .wb-table-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); max-height:210px; gap:4px; }
|
|
410
|
+
.wb-page .wb-table-entry { min-width:0; }
|
|
411
|
+
.wb-page .wb-sidebar .sidebar-label { display:flex; }
|
|
412
|
+
.wb-page .wb-batch-preview { width:auto; }
|
|
413
|
+
.wb-page .table-heading { padding:14px 16px 8px; }
|
|
414
|
+
.wb-page .viewbar { margin:0 16px; }
|
|
415
|
+
.wb-page .sample-guide { padding:10px 16px; }
|
|
416
|
+
.wb-table-preview { padding:2px 16px 16px; }
|
|
417
|
+
.wb-page .wb-data col.col-field { width:35%; }
|
|
418
|
+
.wb-page .wb-data col.col-rule { width:65%; }
|
|
419
|
+
.wb-page .wb-generation-settings { margin-left:0; }
|
|
420
|
+
}
|
|
421
|
+
@media(max-width:480px) {
|
|
422
|
+
.wb-page .wb-table-list { grid-template-columns:1fr; }
|
|
423
|
+
.wb-page .wb-settings-heading { width:100%; }
|
|
424
|
+
.wb-page .wb-config-context { padding:10px; }
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* R2 graph overview, focused reading and bounded search results. */
|
|
428
|
+
.graph-controls .graph-inspected-table {
|
|
429
|
+
min-width: 0;
|
|
430
|
+
color: var(--muted);
|
|
431
|
+
font-size: 11px;
|
|
432
|
+
overflow-wrap: anywhere;
|
|
433
|
+
}
|
|
434
|
+
.graph-controls .graph-reading-guide {
|
|
435
|
+
display: flex;
|
|
436
|
+
align-items: center;
|
|
437
|
+
flex-wrap: wrap;
|
|
438
|
+
gap: 8px 12px;
|
|
439
|
+
margin: 0 0 12px;
|
|
440
|
+
}
|
|
441
|
+
.graph-controls .graph-reading-guide .graph-scope-note {
|
|
442
|
+
flex: 1 1 280px;
|
|
443
|
+
min-width: 0;
|
|
444
|
+
margin: 0;
|
|
445
|
+
color: var(--muted);
|
|
446
|
+
font-size: 11px;
|
|
447
|
+
overflow-wrap: anywhere;
|
|
448
|
+
}
|
|
449
|
+
.graph-controls [data-graph-action="focus-readable"] {
|
|
450
|
+
min-height: 30px;
|
|
451
|
+
padding: 4px 9px;
|
|
452
|
+
border: 1px solid #8fb5a7;
|
|
453
|
+
border-radius: 6px;
|
|
454
|
+
background: var(--paper);
|
|
455
|
+
color: var(--teal);
|
|
456
|
+
font-size: 11px;
|
|
457
|
+
}
|
|
458
|
+
.graph-controls [data-graph-action="focus-readable"]:disabled { opacity: .5; }
|
|
459
|
+
.graph-controls .graph-search-results {
|
|
460
|
+
min-width: 0;
|
|
461
|
+
margin-bottom: 14px;
|
|
462
|
+
padding: 10px;
|
|
463
|
+
border: 1px solid var(--line);
|
|
464
|
+
border-radius: 8px;
|
|
465
|
+
background: var(--paper);
|
|
466
|
+
}
|
|
467
|
+
.graph-controls .graph-search-count {
|
|
468
|
+
margin: 0 0 6px;
|
|
469
|
+
color: var(--muted);
|
|
470
|
+
font-size: 11px;
|
|
471
|
+
}
|
|
472
|
+
.graph-controls .graph-search-matches {
|
|
473
|
+
display: grid;
|
|
474
|
+
grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr));
|
|
475
|
+
gap: 6px;
|
|
476
|
+
max-height: 126px;
|
|
477
|
+
overflow-y: auto;
|
|
478
|
+
overscroll-behavior: contain;
|
|
479
|
+
margin: 0;
|
|
480
|
+
padding: 4px;
|
|
481
|
+
list-style: none;
|
|
482
|
+
}
|
|
483
|
+
.graph-controls .graph-search-matches > li { min-width: 0; }
|
|
484
|
+
.graph-controls .graph-search-match {
|
|
485
|
+
display: flex;
|
|
486
|
+
flex-direction: column;
|
|
487
|
+
align-items: flex-start;
|
|
488
|
+
gap: 2px;
|
|
489
|
+
width: 100%;
|
|
490
|
+
min-height: 32px;
|
|
491
|
+
padding: 6px 8px;
|
|
492
|
+
border-radius: 5px;
|
|
493
|
+
background: #f4f8f7;
|
|
494
|
+
text-align: left;
|
|
495
|
+
font-size: 11px;
|
|
496
|
+
overflow-wrap: anywhere;
|
|
497
|
+
}
|
|
498
|
+
.graph-controls .graph-search-match:hover { background: var(--soft); }
|
|
499
|
+
.graph-controls .graph-search-match small {
|
|
500
|
+
display: -webkit-box;
|
|
501
|
+
-webkit-box-orient: vertical;
|
|
502
|
+
-webkit-line-clamp: 2;
|
|
503
|
+
overflow: hidden;
|
|
504
|
+
color: var(--muted);
|
|
505
|
+
font-size: 10px;
|
|
506
|
+
}
|
|
507
|
+
.wb-write-target { padding:14px 16px; margin-bottom:14px; border:1px solid var(--line); border-radius:7px; background:var(--wash); }
|
|
508
|
+
.wb-write-target > div { display:flex; gap:12px; align-items:center; }
|
|
509
|
+
.wb-write-target p { margin:8px 0; overflow-wrap:anywhere; user-select:text; }
|