meadow-integration 1.0.39 → 1.0.41
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.
- package/Dockerfile +1 -1
- package/docs/_brand.json +18 -0
- package/docs/_version.json +3 -3
- package/docs/data-clone/configuration.md +9 -1
- package/docs/index.html +6 -7
- package/docs/retold-catalog.json +18 -13
- package/docs/retold-keyword-index.json +4937 -4775
- package/example-applications/mapping-demo/package.json +25 -1
- package/example-applications/mapping-demo/server.js +28 -0
- package/example-applications/mapping-demo/source/MappingDemoApp.js +42 -3
- package/example-applications/mapping-demo/source/MappingDemoBrand.js +17 -0
- package/example-applications/mapping-demo/web/favicons/apple-touch-icon.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-16.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-192.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-32.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-48.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-512.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-64.png +0 -0
- package/example-applications/mapping-demo/web/favicons/favicon-dark.svg +30 -0
- package/example-applications/mapping-demo/web/favicons/favicon-light.svg +30 -0
- package/example-applications/mapping-demo/web/favicons/favicon.svg +30 -0
- package/example-applications/mapping-demo/web/index.html +46 -32
- package/example-applications/mapping-demo/web/mapping-demo-editor.js +3268 -399
- package/example-applications/mapping-demo/web/mapping-demo-editor.js.map +1 -1
- package/example-applications/mapping-demo/web/mapping-demo-editor.min.js +34 -1
- package/example-applications/mapping-demo/web/mapping-demo-editor.min.js.map +1 -1
- package/example-applications/mapping-demo/web/pict.min.js +2 -2
- package/package.json +12 -9
- package/source/views/PictView-MeadowMappingEditor.js +35 -35
- package/source/views/flow-cards/FlowCard-SolverExpression.js +2 -2
- package/source/views/flow-cards/FlowCard-TemplateExpression.js +2 -2
- package/docs/css/docuserve.css +0 -327
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "meadow-integration",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.41",
|
|
4
4
|
"description": "Meadow Data Integration",
|
|
5
5
|
"retoldBeacon": {
|
|
6
6
|
"displayName": "Meadow Integration",
|
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
"author": "steven velozo <steven@velozo.com>",
|
|
59
59
|
"license": "MIT",
|
|
60
60
|
"devDependencies": {
|
|
61
|
-
"meadow-connection-sqlite": "^1.0.
|
|
62
|
-
"pict-docuserve": "^
|
|
63
|
-
"quackage": "^1.2.
|
|
61
|
+
"meadow-connection-sqlite": "^1.0.20",
|
|
62
|
+
"pict-docuserve": "^1.3.2",
|
|
63
|
+
"quackage": "^1.2.3"
|
|
64
64
|
},
|
|
65
65
|
"mocha": {
|
|
66
66
|
"diff": true,
|
|
@@ -81,15 +81,18 @@
|
|
|
81
81
|
]
|
|
82
82
|
},
|
|
83
83
|
"dependencies": {
|
|
84
|
-
"fable": "^3.1.
|
|
84
|
+
"fable": "^3.1.75",
|
|
85
85
|
"fable-serviceproviderbase": "^3.0.19",
|
|
86
86
|
"fast-xml-parser": "^4.4.1",
|
|
87
|
-
"meadow": "^2.0.
|
|
87
|
+
"meadow": "^2.0.41",
|
|
88
88
|
"meadow-connection-mssql": "^1.0.23",
|
|
89
89
|
"meadow-connection-mysql": "^1.0.19",
|
|
90
|
-
"orator": "^6.1.
|
|
91
|
-
"orator-serviceserver-restify": "^2.0.
|
|
92
|
-
"pict-
|
|
90
|
+
"orator": "^6.1.2",
|
|
91
|
+
"orator-serviceserver-restify": "^2.0.11",
|
|
92
|
+
"pict-provider-theme": "^1.0.1",
|
|
93
|
+
"pict-section-flow": "^1.0.1",
|
|
94
|
+
"pict-section-modal": "^1.1.1",
|
|
95
|
+
"pict-section-theme": "^1.0.5",
|
|
93
96
|
"pict-service-commandlineutility": "^1.0.19",
|
|
94
97
|
"pict-sessionmanager": "^1.0.2",
|
|
95
98
|
"pict-view": "^1.0.68",
|
|
@@ -40,21 +40,21 @@ const _ViewConfiguration =
|
|
|
40
40
|
font-weight: 600;
|
|
41
41
|
text-transform: uppercase;
|
|
42
42
|
letter-spacing: 0.5px;
|
|
43
|
-
color: var(--
|
|
43
|
+
color: var(--theme-color-text-muted, #a09070);
|
|
44
44
|
padding: 0.5em 0.4em;
|
|
45
|
-
border-bottom: 1px solid var(--
|
|
45
|
+
border-bottom: 1px solid var(--theme-color-border-default, #d6c8ae);
|
|
46
46
|
}
|
|
47
47
|
.meadow-mapping-list-table td {
|
|
48
48
|
padding: 0.35em 0.4em;
|
|
49
|
-
border-bottom: 1px solid var(--
|
|
49
|
+
border-bottom: 1px solid var(--theme-color-border-light, #e8ddc8);
|
|
50
50
|
vertical-align: middle;
|
|
51
51
|
}
|
|
52
52
|
.meadow-flow-container {
|
|
53
53
|
width: 100%;
|
|
54
54
|
height: 500px;
|
|
55
|
-
border: 1px solid var(--
|
|
55
|
+
border: 1px solid var(--theme-color-border-default, #d6c8ae);
|
|
56
56
|
border-radius: 6px;
|
|
57
|
-
background: var(--
|
|
57
|
+
background: var(--theme-color-background-secondary, #fcf8f0);
|
|
58
58
|
margin-bottom: 0.75em;
|
|
59
59
|
}
|
|
60
60
|
.meadow-mapping-json-editor {
|
|
@@ -63,10 +63,10 @@ const _ViewConfiguration =
|
|
|
63
63
|
font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', monospace;
|
|
64
64
|
font-size: 0.85em;
|
|
65
65
|
padding: 0.75em;
|
|
66
|
-
border: 1px solid var(--
|
|
66
|
+
border: 1px solid var(--theme-color-border-default, #d6c8ae);
|
|
67
67
|
border-radius: 6px;
|
|
68
|
-
background: var(--
|
|
69
|
-
color: var(--
|
|
68
|
+
background: var(--theme-color-background-panel, #fcf8f0);
|
|
69
|
+
color: var(--theme-color-text-primary, #3a3020);
|
|
70
70
|
resize: vertical;
|
|
71
71
|
tab-size: 4;
|
|
72
72
|
}
|
|
@@ -83,13 +83,13 @@ const _ViewConfiguration =
|
|
|
83
83
|
font-size: 0.82em;
|
|
84
84
|
cursor: pointer;
|
|
85
85
|
padding: 0.3em 0.5em;
|
|
86
|
-
border: 1px solid var(--
|
|
86
|
+
border: 1px solid var(--theme-color-border-light, #e8ddc8);
|
|
87
87
|
border-radius: 4px;
|
|
88
|
-
background: var(--
|
|
88
|
+
background: var(--theme-color-background-panel, #fcf8f0);
|
|
89
89
|
}
|
|
90
90
|
.meadow-mapping-store-checklist label:has(input:checked) {
|
|
91
|
-
border-color: var(--
|
|
92
|
-
background: var(--
|
|
91
|
+
border-color: var(--theme-color-brand-primary, #18a5a0);
|
|
92
|
+
background: var(--theme-color-background-selected, rgba(24,165,160,0.12));
|
|
93
93
|
}
|
|
94
94
|
.meadow-mapping-btn {
|
|
95
95
|
display: inline-flex;
|
|
@@ -105,25 +105,25 @@ const _ViewConfiguration =
|
|
|
105
105
|
line-height: 1.4;
|
|
106
106
|
}
|
|
107
107
|
.meadow-mapping-btn-primary {
|
|
108
|
-
background: var(--
|
|
109
|
-
color: #fff;
|
|
110
|
-
border-color: var(--
|
|
108
|
+
background: var(--theme-color-brand-primary, #18a5a0);
|
|
109
|
+
color: var(--theme-color-background-panel, #fff);
|
|
110
|
+
border-color: var(--theme-color-brand-primary, #18a5a0);
|
|
111
111
|
}
|
|
112
112
|
.meadow-mapping-btn-primary:hover {
|
|
113
113
|
opacity: 0.88;
|
|
114
114
|
}
|
|
115
115
|
.meadow-mapping-btn-secondary {
|
|
116
|
-
background: var(--
|
|
117
|
-
color: var(--
|
|
118
|
-
border-color: var(--
|
|
116
|
+
background: var(--theme-color-background-panel, #fcf8f0);
|
|
117
|
+
color: var(--theme-color-text-primary, #3a3020);
|
|
118
|
+
border-color: var(--theme-color-border-default, #d6c8ae);
|
|
119
119
|
}
|
|
120
120
|
.meadow-mapping-btn-secondary:hover {
|
|
121
|
-
background: var(--
|
|
121
|
+
background: var(--theme-color-border-light, #e8ddc8);
|
|
122
122
|
}
|
|
123
123
|
.meadow-mapping-btn-danger {
|
|
124
|
-
background: #e74c3c;
|
|
125
|
-
color: #fff;
|
|
126
|
-
border-color: #e74c3c;
|
|
124
|
+
background: var(--theme-color-status-error, #e74c3c);
|
|
125
|
+
color: var(--theme-color-background-panel, #fff);
|
|
126
|
+
border-color: var(--theme-color-status-error, #e74c3c);
|
|
127
127
|
}
|
|
128
128
|
.meadow-mapping-btn-danger:hover {
|
|
129
129
|
opacity: 0.88;
|
|
@@ -139,23 +139,23 @@ const _ViewConfiguration =
|
|
|
139
139
|
.meadow-schema-mode-tab {
|
|
140
140
|
padding: 0.25em 0.75em;
|
|
141
141
|
font-size: 0.8em;
|
|
142
|
-
border: 1px solid var(--
|
|
142
|
+
border: 1px solid var(--theme-color-border-default, #d6c8ae);
|
|
143
143
|
border-radius: 4px;
|
|
144
144
|
cursor: pointer;
|
|
145
|
-
background: var(--
|
|
146
|
-
color: var(--
|
|
145
|
+
background: var(--theme-color-background-panel, #fcf8f0);
|
|
146
|
+
color: var(--theme-color-text-primary, #3a3020);
|
|
147
147
|
}
|
|
148
148
|
.meadow-schema-mode-tab.active {
|
|
149
|
-
background: var(--
|
|
150
|
-
color: #fff;
|
|
151
|
-
border-color: var(--
|
|
149
|
+
background: var(--theme-color-brand-primary, #18a5a0);
|
|
150
|
+
color: var(--theme-color-background-panel, #fff);
|
|
151
|
+
border-color: var(--theme-color-brand-primary, #18a5a0);
|
|
152
152
|
}
|
|
153
153
|
.meadow-section-title {
|
|
154
154
|
font-size: 0.72em;
|
|
155
155
|
font-weight: 600;
|
|
156
156
|
text-transform: uppercase;
|
|
157
157
|
letter-spacing: 0.5px;
|
|
158
|
-
color: var(--
|
|
158
|
+
color: var(--theme-color-text-muted, #a09070);
|
|
159
159
|
}
|
|
160
160
|
`,
|
|
161
161
|
|
|
@@ -186,12 +186,12 @@ const _ViewConfiguration =
|
|
|
186
186
|
<div id="MeadowMap-Detail" style="display:none;">
|
|
187
187
|
<div style="display:flex; gap:0.5em; align-items:center; margin-bottom:0.75em;">
|
|
188
188
|
<label style="font-size:0.78em; font-weight:600;">Mapping Name</label>
|
|
189
|
-
<input type="text" id="MeadowMap-Name" placeholder="Mapping name" style="flex:1; padding:0.3em 0.5em; font-size:0.85em; border:1px solid var(--
|
|
189
|
+
<input type="text" id="MeadowMap-Name" placeholder="Mapping name" style="flex:1; padding:0.3em 0.5em; font-size:0.85em; border:1px solid var(--theme-color-border-default); border-radius:4px; background:var(--theme-color-background-panel); color:var(--theme-color-text-primary);">
|
|
190
190
|
</div>
|
|
191
191
|
|
|
192
192
|
<div style="display:flex; gap:0.5em; align-items:center; margin-bottom:0.75em;">
|
|
193
193
|
<label style="font-size:0.78em; font-weight:600;">Source</label>
|
|
194
|
-
<select id="MeadowMap-Source" style="flex:1; padding:0.3em 0.5em; font-size:0.85em; border:1px solid var(--
|
|
194
|
+
<select id="MeadowMap-Source" style="flex:1; padding:0.3em 0.5em; font-size:0.85em; border:1px solid var(--theme-color-border-default); border-radius:4px;"></select>
|
|
195
195
|
<button class="meadow-mapping-btn meadow-mapping-btn-secondary meadow-mapping-btn-small" onclick="{~P~}.views['MeadowMappingEditor'].discoverSourceFields()">Discover Fields</button>
|
|
196
196
|
</div>
|
|
197
197
|
|
|
@@ -204,7 +204,7 @@ const _ViewConfiguration =
|
|
|
204
204
|
</div>
|
|
205
205
|
|
|
206
206
|
<div style="margin-top:0.75em;">
|
|
207
|
-
<div style="font-size:0.72em; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; color:var(--
|
|
207
|
+
<div style="font-size:0.72em; font-weight:600; text-transform:uppercase; letter-spacing:0.5px; color:var(--theme-color-text-muted); margin-bottom:0.35em;">Target Stores</div>
|
|
208
208
|
<div id="MeadowMap-Stores" class="meadow-mapping-store-checklist"></div>
|
|
209
209
|
</div>
|
|
210
210
|
|
|
@@ -428,7 +428,7 @@ class MeadowMappingEditorView extends libPictView
|
|
|
428
428
|
|
|
429
429
|
if (this._CurrentMappings.length === 0)
|
|
430
430
|
{
|
|
431
|
-
tmpContainer.innerHTML = '<div style="text-align:center; padding:1.5em; color:var(--
|
|
431
|
+
tmpContainer.innerHTML = '<div style="text-align:center; padding:1.5em; color:var(--theme-color-text-muted, #a09070);">No mappings yet. Create one to map source fields to target columns.</div>';
|
|
432
432
|
return;
|
|
433
433
|
}
|
|
434
434
|
|
|
@@ -725,7 +725,7 @@ class MeadowMappingEditorView extends libPictView
|
|
|
725
725
|
|
|
726
726
|
if (this._MappingStores.length === 0)
|
|
727
727
|
{
|
|
728
|
-
tmpContainer.innerHTML = '<div style="font-size:0.82em; color:var(--
|
|
728
|
+
tmpContainer.innerHTML = '<div style="font-size:0.82em; color:var(--theme-color-text-muted, #a09070);">No stores configured yet.</div>';
|
|
729
729
|
return;
|
|
730
730
|
}
|
|
731
731
|
|
|
@@ -1035,7 +1035,7 @@ class MeadowMappingEditorView extends libPictView
|
|
|
1035
1035
|
catch (pFlowError)
|
|
1036
1036
|
{
|
|
1037
1037
|
this.log.error('Failed to initialize flow view: ' + pFlowError.message);
|
|
1038
|
-
tmpFlowContainer.innerHTML = '<div style="padding:2em; text-align:center; color:var(--
|
|
1038
|
+
tmpFlowContainer.innerHTML = '<div style="padding:2em; text-align:center; color:var(--theme-color-text-muted, #a09070);">Flow editor could not be loaded. Use JSON Config mode instead.</div>';
|
|
1039
1039
|
}
|
|
1040
1040
|
}
|
|
1041
1041
|
|
|
@@ -43,7 +43,7 @@ class FlowCardSolverExpression extends libPictFlowCard
|
|
|
43
43
|
BodyContent:
|
|
44
44
|
{
|
|
45
45
|
ContentType: 'html',
|
|
46
|
-
Template: '<div style="font-size:10px; padding:2px 4px; color
|
|
46
|
+
Template: '<div style="font-size:10px; padding:2px 4px; color:var(--theme-color-border-default, #ccc); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:200px;">{~D:Record.Data.SolverExpression~}</div>'
|
|
47
47
|
},
|
|
48
48
|
PropertiesPanel:
|
|
49
49
|
{
|
|
@@ -53,7 +53,7 @@ class FlowCardSolverExpression extends libPictFlowCard
|
|
|
53
53
|
Title: 'Solver Expression',
|
|
54
54
|
Configuration:
|
|
55
55
|
{
|
|
56
|
-
Template: '<div style="padding:8px;"><label style="display:block; margin-bottom:4px; font-weight:bold; font-size:12px;">Solver Expression</label><textarea id="FlowCard-SOL-{~D:Record.Hash~}" style="width:100%; height:80px; font-family:monospace; font-size:12px; resize:vertical; background:#1a1a2e; color
|
|
56
|
+
Template: '<div style="padding:8px;"><label style="display:block; margin-bottom:4px; font-weight:bold; font-size:12px;">Solver Expression</label><textarea id="FlowCard-SOL-{~D:Record.Hash~}" style="width:100%; height:80px; font-family:monospace; font-size:12px; resize:vertical; background:#1a1a2e; color:var(--theme-color-border-default, #e0e0e0); border:1px solid var(--theme-color-text-secondary, #444); border-radius:4px; padding:6px;" onchange="(function(el){var n=pict.views[\'MeadowMapping-Flow\'];if(n&&n._FlowData){for(var i=0;i<n._FlowData.Nodes.length;i++){if(n._FlowData.Nodes[i].Hash===\'{~D:Record.Hash~}\'){n._FlowData.Nodes[i].Data.SolverExpression=el.value;if(typeof n.renderFlow===\'function\')n.renderFlow();break;}}}})(this)">{~D:Record.Data.SolverExpression~}</textarea><div style="font-size:10px; color:var(--theme-color-text-muted, #888); margin-top:4px;">Example: IF(IncomingRecord.Type == \'Premium\', \'GOLD\', \'SILVER\')</div></div>'
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
},
|
|
@@ -42,7 +42,7 @@ class FlowCardTemplateExpression extends libPictFlowCard
|
|
|
42
42
|
BodyContent:
|
|
43
43
|
{
|
|
44
44
|
ContentType: 'html',
|
|
45
|
-
Template: '<div style="font-size:10px; padding:2px 4px; color
|
|
45
|
+
Template: '<div style="font-size:10px; padding:2px 4px; color:var(--theme-color-border-default, #ccc); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; max-width:200px;">{~D:Record.Data.TemplateExpression~}</div>'
|
|
46
46
|
},
|
|
47
47
|
PropertiesPanel:
|
|
48
48
|
{
|
|
@@ -52,7 +52,7 @@ class FlowCardTemplateExpression extends libPictFlowCard
|
|
|
52
52
|
Title: 'Template Expression',
|
|
53
53
|
Configuration:
|
|
54
54
|
{
|
|
55
|
-
Template: '<div style="padding:8px;"><label style="display:block; margin-bottom:4px; font-weight:bold; font-size:12px;">Template Expression</label><textarea id="FlowCard-TPL-{~D:Record.Hash~}" style="width:100%; height:80px; font-family:monospace; font-size:12px; resize:vertical; background:#1a1a2e; color
|
|
55
|
+
Template: '<div style="padding:8px;"><label style="display:block; margin-bottom:4px; font-weight:bold; font-size:12px;">Template Expression</label><textarea id="FlowCard-TPL-{~D:Record.Hash~}" style="width:100%; height:80px; font-family:monospace; font-size:12px; resize:vertical; background:#1a1a2e; color:var(--theme-color-border-default, #e0e0e0); border:1px solid var(--theme-color-text-secondary, #444); border-radius:4px; padding:6px;" onchange="(function(el){var n=pict.views[\'MeadowMapping-Flow\'];if(n&&n._FlowData){for(var i=0;i<n._FlowData.Nodes.length;i++){if(n._FlowData.Nodes[i].Hash===\'{~D:Record.Hash~}\'){n._FlowData.Nodes[i].Data.TemplateExpression=el.value;if(typeof n.renderFlow===\'function\')n.renderFlow();break;}}}})(this)">{~D:Record.Data.TemplateExpression~}</textarea><div style="font-size:10px; color:var(--theme-color-text-muted, #888); margin-top:4px;">Use {~D:Record.FieldName~} syntax. Example: {~D:Record.Name~} in {~D:Record.City~}</div></div>'
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
},
|
package/docs/css/docuserve.css
DELETED
|
@@ -1,327 +0,0 @@
|
|
|
1
|
-
/* ============================================================================
|
|
2
|
-
Pict Docuserve - Base Styles & Theme Variables
|
|
3
|
-
============================================================================ */
|
|
4
|
-
|
|
5
|
-
/* ----------------------------------------------------------------------------
|
|
6
|
-
Theme variables — light defaults on :root.
|
|
7
|
-
Dark mode applies when either:
|
|
8
|
-
(a) the user explicitly selected dark via <html data-theme="dark">
|
|
9
|
-
(b) the user hasn't chosen anything AND the system prefers dark
|
|
10
|
-
An explicit <html data-theme="light"> pins the light palette regardless.
|
|
11
|
-
---------------------------------------------------------------------------- */
|
|
12
|
-
|
|
13
|
-
:root
|
|
14
|
-
{
|
|
15
|
-
/* Surfaces */
|
|
16
|
-
--docuserve-bg: #FDFBF7;
|
|
17
|
-
--docuserve-bg-elevated: #FFFFFF;
|
|
18
|
-
--docuserve-border: #DDD6CA;
|
|
19
|
-
--docuserve-border-soft: #EAE3D8;
|
|
20
|
-
|
|
21
|
-
/* Text */
|
|
22
|
-
--docuserve-text: #2A241E;
|
|
23
|
-
--docuserve-text-strong: #3D3229;
|
|
24
|
-
--docuserve-text-muted: #5E5549;
|
|
25
|
-
--docuserve-text-dim: #8A7F72;
|
|
26
|
-
|
|
27
|
-
/* Accent / links */
|
|
28
|
-
--docuserve-accent: #2E7D74;
|
|
29
|
-
--docuserve-accent-hover: #236660;
|
|
30
|
-
|
|
31
|
-
/* Top bar */
|
|
32
|
-
--docuserve-topbar-bg: #3D3229;
|
|
33
|
-
--docuserve-topbar-text: #E8E0D4;
|
|
34
|
-
--docuserve-topbar-text-muted: #B5AA9A;
|
|
35
|
-
--docuserve-topbar-text-dim: #8A7F72;
|
|
36
|
-
--docuserve-topbar-hover-bg: #524438;
|
|
37
|
-
--docuserve-topbar-version-bg: rgba(255, 255, 255, 0.06);
|
|
38
|
-
--docuserve-topbar-version-border: rgba(255, 255, 255, 0.08);
|
|
39
|
-
--docuserve-topbar-version-text: #B5AA9A;
|
|
40
|
-
|
|
41
|
-
/* Sidebar */
|
|
42
|
-
--docuserve-sidebar-bg: #FAF7F1;
|
|
43
|
-
--docuserve-sidebar-border: #DDD6CA;
|
|
44
|
-
--docuserve-sidebar-border-soft: #E5DED1;
|
|
45
|
-
--docuserve-sidebar-text: #423D37;
|
|
46
|
-
--docuserve-sidebar-group-title: #3D3229;
|
|
47
|
-
--docuserve-sidebar-module-text: #5E5549;
|
|
48
|
-
--docuserve-sidebar-hover-bg: #EAE3D8;
|
|
49
|
-
--docuserve-sidebar-hover-text: #2E7D74;
|
|
50
|
-
--docuserve-sidebar-active-bg: #E5DED1;
|
|
51
|
-
--docuserve-sidebar-active-text: #2E7D74;
|
|
52
|
-
--docuserve-sidebar-search-bg: #FFFFFF;
|
|
53
|
-
--docuserve-sidebar-search-border: #DDD6CA;
|
|
54
|
-
|
|
55
|
-
/* Inline code */
|
|
56
|
-
--docuserve-inline-code-bg: #F0ECE4;
|
|
57
|
-
--docuserve-inline-code-text: #9E3A50;
|
|
58
|
-
|
|
59
|
-
/* Code block panel */
|
|
60
|
-
--docuserve-code-bg: #F6F3EE;
|
|
61
|
-
--docuserve-code-border: #E5DED1;
|
|
62
|
-
--docuserve-code-gutter-bg: #EFEAE0;
|
|
63
|
-
--docuserve-code-gutter-border: #DDD6CA;
|
|
64
|
-
--docuserve-code-gutter-text: #A59986;
|
|
65
|
-
--docuserve-code-text: #2A241E;
|
|
66
|
-
|
|
67
|
-
/* Syntax tokens — low-chroma dark-on-light palette */
|
|
68
|
-
--docuserve-tok-keyword: #A03472;
|
|
69
|
-
--docuserve-tok-string: #1A6640;
|
|
70
|
-
--docuserve-tok-number: #B25A00;
|
|
71
|
-
--docuserve-tok-comment: #8A7F72;
|
|
72
|
-
--docuserve-tok-operator: #2E7D74;
|
|
73
|
-
--docuserve-tok-punctuation: #2A241E;
|
|
74
|
-
--docuserve-tok-function: #2A5DB0;
|
|
75
|
-
--docuserve-tok-property: #9E3A50;
|
|
76
|
-
--docuserve-tok-tag: #9E3A50;
|
|
77
|
-
--docuserve-tok-attr-name: #B25A00;
|
|
78
|
-
--docuserve-tok-attr-value: #1A6640;
|
|
79
|
-
|
|
80
|
-
/* Tables, blockquotes, mermaid */
|
|
81
|
-
--docuserve-table-header-bg: #F5F0E8;
|
|
82
|
-
--docuserve-table-row-alt-bg: #F9F6F0;
|
|
83
|
-
--docuserve-blockquote-bg: #F7F5F0;
|
|
84
|
-
--docuserve-blockquote-border: #2E7D74;
|
|
85
|
-
--docuserve-blockquote-text: #5E5549;
|
|
86
|
-
--docuserve-mermaid-bg: #FFFFFF;
|
|
87
|
-
|
|
88
|
-
/* Scrollbars */
|
|
89
|
-
--docuserve-scrollbar-track: #F5F0E8;
|
|
90
|
-
--docuserve-scrollbar-thumb: #D4CCBE;
|
|
91
|
-
--docuserve-scrollbar-thumb-hover: #B5AA9A;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
@media (prefers-color-scheme: dark)
|
|
95
|
-
{
|
|
96
|
-
:root:not([data-theme="light"])
|
|
97
|
-
{
|
|
98
|
-
--docuserve-bg: #15120F;
|
|
99
|
-
--docuserve-bg-elevated: #1B1814;
|
|
100
|
-
--docuserve-border: #2F2823;
|
|
101
|
-
--docuserve-border-soft: #26211C;
|
|
102
|
-
|
|
103
|
-
--docuserve-text: #E8E0D4;
|
|
104
|
-
--docuserve-text-strong: #F2ECE0;
|
|
105
|
-
--docuserve-text-muted: #B5AA9A;
|
|
106
|
-
--docuserve-text-dim: #7A6F62;
|
|
107
|
-
|
|
108
|
-
--docuserve-accent: #5DB8A8;
|
|
109
|
-
--docuserve-accent-hover: #7FCCB8;
|
|
110
|
-
|
|
111
|
-
--docuserve-topbar-bg: #1A1612;
|
|
112
|
-
--docuserve-topbar-text: #E8E0D4;
|
|
113
|
-
--docuserve-topbar-text-muted: #B5AA9A;
|
|
114
|
-
--docuserve-topbar-text-dim: #7A6F62;
|
|
115
|
-
--docuserve-topbar-hover-bg: #2A241E;
|
|
116
|
-
--docuserve-topbar-version-bg: rgba(255, 255, 255, 0.05);
|
|
117
|
-
--docuserve-topbar-version-border: rgba(255, 255, 255, 0.09);
|
|
118
|
-
--docuserve-topbar-version-text: #B5AA9A;
|
|
119
|
-
|
|
120
|
-
--docuserve-sidebar-bg: #1B1814;
|
|
121
|
-
--docuserve-sidebar-border: #2F2823;
|
|
122
|
-
--docuserve-sidebar-border-soft: #26211C;
|
|
123
|
-
--docuserve-sidebar-text: #C9C0B3;
|
|
124
|
-
--docuserve-sidebar-group-title: #F2ECE0;
|
|
125
|
-
--docuserve-sidebar-module-text: #B5AA9A;
|
|
126
|
-
--docuserve-sidebar-hover-bg: #2A241E;
|
|
127
|
-
--docuserve-sidebar-hover-text: #7FCCB8;
|
|
128
|
-
--docuserve-sidebar-active-bg: #2F2823;
|
|
129
|
-
--docuserve-sidebar-active-text: #7FCCB8;
|
|
130
|
-
--docuserve-sidebar-search-bg: #26211C;
|
|
131
|
-
--docuserve-sidebar-search-border: #2F2823;
|
|
132
|
-
|
|
133
|
-
--docuserve-inline-code-bg: #2A241E;
|
|
134
|
-
--docuserve-inline-code-text: #E8B07A;
|
|
135
|
-
|
|
136
|
-
--docuserve-code-bg: #1E1A17;
|
|
137
|
-
--docuserve-code-border: #2F2823;
|
|
138
|
-
--docuserve-code-gutter-bg: #17130F;
|
|
139
|
-
--docuserve-code-gutter-border: #2F2823;
|
|
140
|
-
--docuserve-code-gutter-text: #6A6052;
|
|
141
|
-
--docuserve-code-text: #E8E0D4;
|
|
142
|
-
|
|
143
|
-
--docuserve-tok-keyword: #C678DD;
|
|
144
|
-
--docuserve-tok-string: #98C379;
|
|
145
|
-
--docuserve-tok-number: #D19A66;
|
|
146
|
-
--docuserve-tok-comment: #7F848E;
|
|
147
|
-
--docuserve-tok-operator: #56B6C2;
|
|
148
|
-
--docuserve-tok-punctuation: #E8E0D4;
|
|
149
|
-
--docuserve-tok-function: #61AFEF;
|
|
150
|
-
--docuserve-tok-property: #E06C75;
|
|
151
|
-
--docuserve-tok-tag: #E06C75;
|
|
152
|
-
--docuserve-tok-attr-name: #D19A66;
|
|
153
|
-
--docuserve-tok-attr-value: #98C379;
|
|
154
|
-
|
|
155
|
-
--docuserve-table-header-bg: #26211C;
|
|
156
|
-
--docuserve-table-row-alt-bg: #1F1B17;
|
|
157
|
-
--docuserve-blockquote-bg: #1F1B17;
|
|
158
|
-
--docuserve-blockquote-border: #5DB8A8;
|
|
159
|
-
--docuserve-blockquote-text: #C9C0B3;
|
|
160
|
-
--docuserve-mermaid-bg: #E8E0D4;
|
|
161
|
-
|
|
162
|
-
--docuserve-scrollbar-track: #1B1814;
|
|
163
|
-
--docuserve-scrollbar-thumb: #3A322B;
|
|
164
|
-
--docuserve-scrollbar-thumb-hover: #524438;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
:root[data-theme="dark"]
|
|
169
|
-
{
|
|
170
|
-
--docuserve-bg: #15120F;
|
|
171
|
-
--docuserve-bg-elevated: #1B1814;
|
|
172
|
-
--docuserve-border: #2F2823;
|
|
173
|
-
--docuserve-border-soft: #26211C;
|
|
174
|
-
|
|
175
|
-
--docuserve-text: #E8E0D4;
|
|
176
|
-
--docuserve-text-strong: #F2ECE0;
|
|
177
|
-
--docuserve-text-muted: #B5AA9A;
|
|
178
|
-
--docuserve-text-dim: #7A6F62;
|
|
179
|
-
|
|
180
|
-
--docuserve-accent: #5DB8A8;
|
|
181
|
-
--docuserve-accent-hover: #7FCCB8;
|
|
182
|
-
|
|
183
|
-
--docuserve-topbar-bg: #1A1612;
|
|
184
|
-
--docuserve-topbar-text: #E8E0D4;
|
|
185
|
-
--docuserve-topbar-text-muted: #B5AA9A;
|
|
186
|
-
--docuserve-topbar-text-dim: #7A6F62;
|
|
187
|
-
--docuserve-topbar-hover-bg: #2A241E;
|
|
188
|
-
--docuserve-topbar-version-bg: rgba(255, 255, 255, 0.05);
|
|
189
|
-
--docuserve-topbar-version-border: rgba(255, 255, 255, 0.09);
|
|
190
|
-
--docuserve-topbar-version-text: #B5AA9A;
|
|
191
|
-
|
|
192
|
-
--docuserve-sidebar-bg: #1B1814;
|
|
193
|
-
--docuserve-sidebar-border: #2F2823;
|
|
194
|
-
--docuserve-sidebar-border-soft: #26211C;
|
|
195
|
-
--docuserve-sidebar-text: #C9C0B3;
|
|
196
|
-
--docuserve-sidebar-group-title: #F2ECE0;
|
|
197
|
-
--docuserve-sidebar-module-text: #B5AA9A;
|
|
198
|
-
--docuserve-sidebar-hover-bg: #2A241E;
|
|
199
|
-
--docuserve-sidebar-hover-text: #7FCCB8;
|
|
200
|
-
--docuserve-sidebar-active-bg: #2F2823;
|
|
201
|
-
--docuserve-sidebar-active-text: #7FCCB8;
|
|
202
|
-
--docuserve-sidebar-search-bg: #26211C;
|
|
203
|
-
--docuserve-sidebar-search-border: #2F2823;
|
|
204
|
-
|
|
205
|
-
--docuserve-inline-code-bg: #2A241E;
|
|
206
|
-
--docuserve-inline-code-text: #E8B07A;
|
|
207
|
-
|
|
208
|
-
--docuserve-code-bg: #1E1A17;
|
|
209
|
-
--docuserve-code-border: #2F2823;
|
|
210
|
-
--docuserve-code-gutter-bg: #17130F;
|
|
211
|
-
--docuserve-code-gutter-border: #2F2823;
|
|
212
|
-
--docuserve-code-gutter-text: #6A6052;
|
|
213
|
-
--docuserve-code-text: #E8E0D4;
|
|
214
|
-
|
|
215
|
-
--docuserve-tok-keyword: #C678DD;
|
|
216
|
-
--docuserve-tok-string: #98C379;
|
|
217
|
-
--docuserve-tok-number: #D19A66;
|
|
218
|
-
--docuserve-tok-comment: #7F848E;
|
|
219
|
-
--docuserve-tok-operator: #56B6C2;
|
|
220
|
-
--docuserve-tok-punctuation: #E8E0D4;
|
|
221
|
-
--docuserve-tok-function: #61AFEF;
|
|
222
|
-
--docuserve-tok-property: #E06C75;
|
|
223
|
-
--docuserve-tok-tag: #E06C75;
|
|
224
|
-
--docuserve-tok-attr-name: #D19A66;
|
|
225
|
-
--docuserve-tok-attr-value: #98C379;
|
|
226
|
-
|
|
227
|
-
--docuserve-table-header-bg: #26211C;
|
|
228
|
-
--docuserve-table-row-alt-bg: #1F1B17;
|
|
229
|
-
--docuserve-blockquote-bg: #1F1B17;
|
|
230
|
-
--docuserve-blockquote-border: #5DB8A8;
|
|
231
|
-
--docuserve-blockquote-text: #C9C0B3;
|
|
232
|
-
--docuserve-mermaid-bg: #E8E0D4;
|
|
233
|
-
|
|
234
|
-
--docuserve-scrollbar-track: #1B1814;
|
|
235
|
-
--docuserve-scrollbar-thumb: #3A322B;
|
|
236
|
-
--docuserve-scrollbar-thumb-hover: #524438;
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
/* ----------------------------------------------------------------------------
|
|
240
|
-
Reset and base
|
|
241
|
-
---------------------------------------------------------------------------- */
|
|
242
|
-
|
|
243
|
-
*, *::before, *::after
|
|
244
|
-
{
|
|
245
|
-
box-sizing: border-box;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
html, body
|
|
249
|
-
{
|
|
250
|
-
margin: 0;
|
|
251
|
-
padding: 0;
|
|
252
|
-
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
|
253
|
-
font-size: 16px;
|
|
254
|
-
line-height: 1.5;
|
|
255
|
-
color: var(--docuserve-text);
|
|
256
|
-
background-color: var(--docuserve-bg);
|
|
257
|
-
-webkit-font-smoothing: antialiased;
|
|
258
|
-
-moz-osx-font-smoothing: grayscale;
|
|
259
|
-
transition: background-color 0.15s ease, color 0.15s ease;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/* Typography */
|
|
263
|
-
h1, h2, h3, h4, h5, h6
|
|
264
|
-
{
|
|
265
|
-
margin-top: 0;
|
|
266
|
-
line-height: 1.3;
|
|
267
|
-
color: var(--docuserve-text-strong);
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
a
|
|
271
|
-
{
|
|
272
|
-
color: var(--docuserve-accent);
|
|
273
|
-
text-decoration: none;
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
a:hover
|
|
277
|
-
{
|
|
278
|
-
color: var(--docuserve-accent-hover);
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/* Application container */
|
|
282
|
-
#Docuserve-Application-Container
|
|
283
|
-
{
|
|
284
|
-
min-height: 100vh;
|
|
285
|
-
}
|
|
286
|
-
|
|
287
|
-
/* Utility: scrollbar styling */
|
|
288
|
-
::-webkit-scrollbar
|
|
289
|
-
{
|
|
290
|
-
width: 8px;
|
|
291
|
-
height: 8px;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
::-webkit-scrollbar-track
|
|
295
|
-
{
|
|
296
|
-
background: var(--docuserve-scrollbar-track);
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
::-webkit-scrollbar-thumb
|
|
300
|
-
{
|
|
301
|
-
background: var(--docuserve-scrollbar-thumb);
|
|
302
|
-
border-radius: 4px;
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
::-webkit-scrollbar-thumb:hover
|
|
306
|
-
{
|
|
307
|
-
background: var(--docuserve-scrollbar-thumb-hover);
|
|
308
|
-
}
|
|
309
|
-
|
|
310
|
-
/* Responsive adjustments */
|
|
311
|
-
@media (max-width: 768px)
|
|
312
|
-
{
|
|
313
|
-
html
|
|
314
|
-
{
|
|
315
|
-
font-size: 14px;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
#Docuserve-Sidebar-Container
|
|
319
|
-
{
|
|
320
|
-
display: none;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
.docuserve-body
|
|
324
|
-
{
|
|
325
|
-
flex-direction: column;
|
|
326
|
-
}
|
|
327
|
-
}
|