ixbrl-viewer 1.4.21__py3-none-any.whl → 1.4.50__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 ixbrl-viewer might be problematic. Click here for more details.
- iXBRLViewerPlugin/__init__.py +77 -49
- iXBRLViewerPlugin/_version.py +2 -2
- iXBRLViewerPlugin/constants.py +86 -1
- iXBRLViewerPlugin/featureConfig.py +4 -1
- iXBRLViewerPlugin/iXBRLViewer.py +210 -137
- iXBRLViewerPlugin/plugin.py +7 -0
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js +1 -1
- iXBRLViewerPlugin/viewer/dist/ixbrlviewer.js.LICENSE.txt +9 -2
- iXBRLViewerPlugin/viewer/i18next-parser.config.js +1 -1
- iXBRLViewerPlugin/viewer/src/data/utr.json +1 -0
- iXBRLViewerPlugin/viewer/src/html/fact-details.html +69 -38
- iXBRLViewerPlugin/viewer/src/html/footer-logo.html +4 -0
- iXBRLViewerPlugin/viewer/src/html/footnote-details.html +1 -1
- iXBRLViewerPlugin/viewer/src/html/inspector.html +324 -211
- iXBRLViewerPlugin/viewer/src/i18n/cy/balancetypes.json +1 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/currencies.json +13 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/datatypes.json +9 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/labelroles.json +24 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/referenceparts.json +10 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/scale.json +16 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/tooltips.json +17 -0
- iXBRLViewerPlugin/viewer/src/i18n/cy/translation.json +179 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/balancetypes.json +4 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/datatypes.json +10 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/labelroles.json +4 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/scale.json +16 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/tooltips.json +17 -0
- iXBRLViewerPlugin/viewer/src/i18n/en/translation.json +56 -24
- iXBRLViewerPlugin/viewer/src/i18n/es/balancetypes.json +4 -0
- iXBRLViewerPlugin/viewer/src/i18n/es/datatypes.json +10 -0
- iXBRLViewerPlugin/viewer/src/i18n/es/labelroles.json +24 -0
- iXBRLViewerPlugin/viewer/src/i18n/es/scale.json +16 -0
- iXBRLViewerPlugin/viewer/src/i18n/es/tooltips.json +17 -0
- iXBRLViewerPlugin/viewer/src/i18n/es/translation.json +70 -37
- iXBRLViewerPlugin/viewer/src/icons/dark-mode.svg +4 -0
- iXBRLViewerPlugin/viewer/src/img/arelle-dark.svg +179 -0
- iXBRLViewerPlugin/viewer/src/img/inline-viewer-dark.svg +59 -0
- iXBRLViewerPlugin/viewer/src/js/accordian.js +3 -2
- iXBRLViewerPlugin/viewer/src/js/aspect.js +18 -10
- iXBRLViewerPlugin/viewer/src/js/aspect.test.js +2 -2
- iXBRLViewerPlugin/viewer/src/js/balance.js +14 -0
- iXBRLViewerPlugin/viewer/src/js/calculation.js +45 -34
- iXBRLViewerPlugin/viewer/src/js/calculationInspector.js +4 -7
- iXBRLViewerPlugin/viewer/src/js/chart.js +23 -21
- iXBRLViewerPlugin/viewer/src/js/concept.js +30 -3
- iXBRLViewerPlugin/viewer/src/js/concept.test.js +23 -2
- iXBRLViewerPlugin/viewer/src/js/datatype.js +20 -0
- iXBRLViewerPlugin/viewer/src/js/datatype.test.js +62 -0
- iXBRLViewerPlugin/viewer/src/js/dialog.js +6 -4
- iXBRLViewerPlugin/viewer/src/js/fact.js +40 -7
- iXBRLViewerPlugin/viewer/src/js/fact.test.js +3 -0
- iXBRLViewerPlugin/viewer/src/js/index.js +11 -3
- iXBRLViewerPlugin/viewer/src/js/inspector.js +560 -160
- iXBRLViewerPlugin/viewer/src/js/inspector.test.js +1 -2
- iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.js +129 -31
- iXBRLViewerPlugin/viewer/src/js/ixbrlviewer.test.js +133 -20
- iXBRLViewerPlugin/viewer/src/js/ixnode.js +1 -1
- iXBRLViewerPlugin/viewer/src/js/menu.js +25 -7
- iXBRLViewerPlugin/viewer/src/js/number-matcher.js +2 -2
- iXBRLViewerPlugin/viewer/src/js/outline.js +2 -4
- iXBRLViewerPlugin/viewer/src/js/period.js +0 -1
- iXBRLViewerPlugin/viewer/src/js/report.js +68 -13
- iXBRLViewerPlugin/viewer/src/js/report.test.js +77 -6
- iXBRLViewerPlugin/viewer/src/js/reportset.js +33 -3
- iXBRLViewerPlugin/viewer/src/js/reportset.test.js +32 -6
- iXBRLViewerPlugin/viewer/src/js/search.js +61 -35
- iXBRLViewerPlugin/viewer/src/js/search.test.js +8 -5
- iXBRLViewerPlugin/viewer/src/js/summary.js +28 -2
- iXBRLViewerPlugin/viewer/src/js/summary.test.js +52 -14
- iXBRLViewerPlugin/viewer/src/js/tableExport.js +3 -3
- iXBRLViewerPlugin/viewer/src/js/taxonomynamer.js +34 -0
- iXBRLViewerPlugin/viewer/src/js/taxonomynamer.test.js +32 -0
- iXBRLViewerPlugin/viewer/src/js/theme.js +49 -0
- iXBRLViewerPlugin/viewer/src/js/unit.js +73 -2
- iXBRLViewerPlugin/viewer/src/js/unit.test.js +14 -3
- iXBRLViewerPlugin/viewer/src/js/util.js +21 -18
- iXBRLViewerPlugin/viewer/src/js/util.test.js +1 -0
- iXBRLViewerPlugin/viewer/src/js/utr.js +27 -0
- iXBRLViewerPlugin/viewer/src/js/viewer.js +40 -29
- iXBRLViewerPlugin/viewer/src/js/viewerOptions.js +0 -2
- iXBRLViewerPlugin/viewer/src/less/accordian.less +8 -4
- iXBRLViewerPlugin/viewer/src/less/block-list.less +12 -6
- iXBRLViewerPlugin/viewer/src/less/calculation-inspector.less +2 -2
- iXBRLViewerPlugin/viewer/src/less/chart.less +8 -5
- iXBRLViewerPlugin/viewer/src/less/colours-dark-mode.less +40 -0
- iXBRLViewerPlugin/viewer/src/less/colours.less +28 -21
- iXBRLViewerPlugin/viewer/src/less/common.less +1 -1
- iXBRLViewerPlugin/viewer/src/less/components.less +3 -3
- iXBRLViewerPlugin/viewer/src/less/core.less +2 -0
- iXBRLViewerPlugin/viewer/src/less/dialog.less +13 -10
- iXBRLViewerPlugin/viewer/src/less/form-controls.less +33 -11
- iXBRLViewerPlugin/viewer/src/less/inspector.less +556 -300
- iXBRLViewerPlugin/viewer/src/less/loader.less +2 -2
- iXBRLViewerPlugin/viewer/src/less/menu.less +33 -15
- iXBRLViewerPlugin/viewer/src/less/summary.less +16 -6
- iXBRLViewerPlugin/viewer/src/less/tabs.less +5 -5
- iXBRLViewerPlugin/viewer/src/less/text-mixins.less +2 -1
- iXBRLViewerPlugin/viewer/src/less/validation-report.less +1 -1
- iXBRLViewerPlugin/viewer/src/less/viewer.less +30 -18
- iXBRLViewerPlugin/viewer/webpack.common.js +19 -9
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/METADATA +41 -14
- ixbrl_viewer-1.4.50.dist-info/RECORD +197 -0
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/WHEEL +1 -1
- tests/puppeteer/framework/page_objects/doc_frame.js +3 -3
- tests/puppeteer/framework/page_objects/fact_details_panel.js +29 -1
- tests/puppeteer/puppeteer_test_run_via_intellij.jpg +0 -0
- tests/puppeteer/tests/fact_properties.test.js +10 -4
- tests/unit_tests/iXBRLViewerPlugin/test_iXBRLViewer.py +117 -51
- iXBRLViewerPlugin/viewer/src/js/interact.min.js +0 -6
- ixbrl_viewer-1.4.21.dist-info/RECORD +0 -166
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/LICENSE +0 -0
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/NOTICE +0 -0
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/entry_points.txt +0 -0
- {ixbrl_viewer-1.4.21.dist-info → ixbrl_viewer-1.4.50.dist-info}/top_level.txt +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
// See COPYRIGHT.md for copyright information
|
|
2
2
|
|
|
3
3
|
import $ from 'jquery'
|
|
4
|
-
import { numberMatchSearch
|
|
4
|
+
import { numberMatchSearch } from './number-matcher.js'
|
|
5
5
|
import { TableExport } from './tableExport.js'
|
|
6
6
|
import { IXNode } from './ixnode.js';
|
|
7
|
-
import { getIXHiddenLinkStyle, runGenerator,
|
|
7
|
+
import { getIXHiddenLinkStyle, runGenerator, viewerUniqueId, HIGHLIGHT_COLORS } from './util.js';
|
|
8
8
|
import { DocOrderIndex } from './docOrderIndex.js';
|
|
9
9
|
import { MessageBox } from './messagebox.js';
|
|
10
10
|
|
|
@@ -65,7 +65,7 @@ export class Viewer {
|
|
|
65
65
|
viewer._iframes.each(function (docIndex) {
|
|
66
66
|
$(this).data("selected", docIndex == viewer._currentDocumentIndex);
|
|
67
67
|
const reportIndex = $(this).data("report-index");
|
|
68
|
-
viewer._preProcessiXBRL($(this).contents().find("body").get(0), reportIndex, docIndex);
|
|
68
|
+
viewer._preProcessiXBRL($(this).contents().find("body").get(0), reportIndex, docIndex, false);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
/* Call plugin promise for each document in turn */
|
|
@@ -108,11 +108,11 @@ export class Viewer {
|
|
|
108
108
|
if (this._reportSet.isMultiDocumentViewer()) {
|
|
109
109
|
$('#ixv .ixds-tabs').show();
|
|
110
110
|
for (const [i, doc] of this._reportSet.reportFiles().entries()) {
|
|
111
|
-
$('<
|
|
111
|
+
$('<button class="tab"></button>')
|
|
112
112
|
.text(doc.file)
|
|
113
113
|
.prop('title', doc.file)
|
|
114
114
|
.data('ix-doc-id', i)
|
|
115
|
-
.click(
|
|
115
|
+
.on("click", () => this.selectDocument(i))
|
|
116
116
|
.appendTo($('#ixv #viewer-pane .ixds-tabs .tab-area'));
|
|
117
117
|
}
|
|
118
118
|
$('#ixv #viewer-pane .ixds-tabs .tab-area .tab').eq(0).addClass("active");
|
|
@@ -123,12 +123,17 @@ export class Viewer {
|
|
|
123
123
|
// display: block, a div is used, otherwise a span. Returns the wrapper node
|
|
124
124
|
// as a jQuery node
|
|
125
125
|
_wrapNode(n) {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
126
|
+
let wrapper = "<span>";
|
|
127
|
+
if (getComputedStyle(n).getPropertyValue("display") === "block") {
|
|
128
|
+
wrapper = '<div>';
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const nn = n.getElementsByTagName("*");
|
|
132
|
+
for (var i = 0; i < nn.length; i++) {
|
|
133
|
+
if (getComputedStyle(nn[i]).getPropertyValue('display') === "block") {
|
|
134
|
+
wrapper = '<div>';
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
132
137
|
}
|
|
133
138
|
}
|
|
134
139
|
$(n).wrap(wrapper);
|
|
@@ -232,7 +237,7 @@ export class Viewer {
|
|
|
232
237
|
const [file, fragment] = url.split('#', 2);
|
|
233
238
|
const docIndex = this._reportSet.reportFiles().indexOf(file);
|
|
234
239
|
if (!url.includes('/') && docIndex != -1) {
|
|
235
|
-
$(n).click(
|
|
240
|
+
$(n).on("click", (e) => {
|
|
236
241
|
this._showDocumentAndElement(docIndex, fragment);
|
|
237
242
|
e.preventDefault();
|
|
238
243
|
});
|
|
@@ -268,7 +273,7 @@ export class Viewer {
|
|
|
268
273
|
nodes.push(tableNode)
|
|
269
274
|
}
|
|
270
275
|
}
|
|
271
|
-
/* Otherwise, insert a <span> as wrapper */
|
|
276
|
+
/* Otherwise, insert a <span> or <div> as wrapper */
|
|
272
277
|
if (nodes.length == 0) {
|
|
273
278
|
nodes.push(this._wrapNode(domNode));
|
|
274
279
|
}
|
|
@@ -440,7 +445,7 @@ export class Viewer {
|
|
|
440
445
|
// Handle SEC/ESEF links-to-hidden
|
|
441
446
|
const vuid = viewerUniqueId(reportIndex, getIXHiddenLinkStyle(n));
|
|
442
447
|
if (vuid !== null) {
|
|
443
|
-
let nodes =
|
|
448
|
+
let nodes = this._findOrCreateWrapperNode(n, inHidden);
|
|
444
449
|
nodes.addClass("ixbrl-element").data('ivids', [vuid]);
|
|
445
450
|
this._docOrderItemIndex.addItem(vuid, docIndex);
|
|
446
451
|
/* We may have already seen the corresponding ix element in the hidden
|
|
@@ -472,7 +477,7 @@ export class Viewer {
|
|
|
472
477
|
_applyStyles() {
|
|
473
478
|
const stlyeElts = $("<style>")
|
|
474
479
|
.prop("type", "text/css")
|
|
475
|
-
.text(require('
|
|
480
|
+
.text(require('../less/viewer.less').toString())
|
|
476
481
|
.appendTo(this._iframes.contents().find("head"));
|
|
477
482
|
this._iv.callPluginMethod("updateViewerStyleElements", stlyeElts);
|
|
478
483
|
}
|
|
@@ -512,18 +517,18 @@ export class Viewer {
|
|
|
512
517
|
_bindHandlers() {
|
|
513
518
|
const viewer = this;
|
|
514
519
|
$('.ixbrl-element', this._contents)
|
|
515
|
-
.click
|
|
520
|
+
.on("click", function (e) {
|
|
516
521
|
e.stopPropagation();
|
|
517
522
|
viewer.selectElementByClick($(this));
|
|
518
523
|
})
|
|
519
|
-
.mouseenter
|
|
520
|
-
.mouseleave
|
|
524
|
+
.on("mouseenter", function (e) { viewer._mouseEnter($(this)) })
|
|
525
|
+
.on("mouseleave", function (e) { viewer._mouseLeave($(this)) });
|
|
521
526
|
$("body", this._contents)
|
|
522
|
-
.click(
|
|
527
|
+
.on("click", () => viewer.selectElement(null));
|
|
523
528
|
|
|
524
|
-
$('#iframe-container .zoom-in').click(
|
|
525
|
-
$('#iframe-container .zoom-out').click(
|
|
526
|
-
$('#iframe-container .print').click(
|
|
529
|
+
$('#iframe-container .zoom-in').on("click", () => this.zoomIn());
|
|
530
|
+
$('#iframe-container .zoom-out').on("click", () => this.zoomOut());
|
|
531
|
+
$('#iframe-container .print').on("click", () => this.currentDocument().get(0).contentWindow.print());
|
|
527
532
|
|
|
528
533
|
TableExport.addHandles(this._contents, this._reportSet);
|
|
529
534
|
}
|
|
@@ -593,7 +598,7 @@ export class Viewer {
|
|
|
593
598
|
/* If the specified element is not fully visible, scroll it into the center of
|
|
594
599
|
* the viewport */
|
|
595
600
|
showElement(e) {
|
|
596
|
-
const ee = e.get(0);
|
|
601
|
+
const ee = e.filter(':not(.ixbrl-no-highlight)').get(0);
|
|
597
602
|
if (!this.isFullyVisible(ee)) {
|
|
598
603
|
ee.scrollIntoView({ block: "center", inline: "center" });
|
|
599
604
|
}
|
|
@@ -749,11 +754,14 @@ export class Viewer {
|
|
|
749
754
|
// highlight color for an element that is double tagged in a
|
|
750
755
|
// table cell.
|
|
751
756
|
const ixn = $(this).data('ivids').map(id => viewer._ixNodeMap[id]).filter(ixn => !ixn.footnote)[0];
|
|
752
|
-
if (ixn
|
|
753
|
-
const
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
+
if (ixn !== undefined ) {
|
|
758
|
+
const item = reportSet.getItemById(ixn.id);
|
|
759
|
+
if (item !== undefined) {
|
|
760
|
+
const elements = viewer.elementsForItemIds(ixn.chainIXIds());
|
|
761
|
+
const i = groups[item.conceptQName().prefix];
|
|
762
|
+
if (i !== undefined) {
|
|
763
|
+
elements.addClass("ixbrl-highlight-" + i);
|
|
764
|
+
}
|
|
757
765
|
}
|
|
758
766
|
}
|
|
759
767
|
});
|
|
@@ -803,7 +811,10 @@ export class Viewer {
|
|
|
803
811
|
}
|
|
804
812
|
|
|
805
813
|
_setTitle(docIndex) {
|
|
806
|
-
|
|
814
|
+
const title = $('head title', this._iframes.eq(docIndex).contents()).text();
|
|
815
|
+
$('#top-bar .document-title')
|
|
816
|
+
.text(title)
|
|
817
|
+
.attr("aria-label", "Inline Viewer: " + title);
|
|
807
818
|
}
|
|
808
819
|
|
|
809
820
|
showDocumentForItemId(vuid) {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
.accordian .card {
|
|
4
4
|
margin-top: 0.4rem;
|
|
5
|
-
background-color:
|
|
5
|
+
background-color: var(--colour-button-bg);
|
|
6
6
|
|
|
7
7
|
.card-body {
|
|
8
8
|
display: none;
|
|
@@ -16,17 +16,21 @@
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.title {
|
|
19
|
+
.text-md();
|
|
20
|
+
|
|
19
21
|
padding: 1.2rem 1.6rem;
|
|
22
|
+
border: none;
|
|
23
|
+
width: 100%;
|
|
24
|
+
text-align: left;
|
|
20
25
|
cursor: pointer;
|
|
21
|
-
line-height: 1.8rem;
|
|
22
26
|
|
|
23
27
|
&:hover {
|
|
24
|
-
background-color:
|
|
28
|
+
background-color: var(--colour-bg-selected);
|
|
25
29
|
}
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
&.active {
|
|
29
|
-
background-color:
|
|
33
|
+
background-color: var(--colour-bg-selected);
|
|
30
34
|
|
|
31
35
|
.title {
|
|
32
36
|
font-weight: bold;
|
|
@@ -3,27 +3,33 @@
|
|
|
3
3
|
.block-list-item {
|
|
4
4
|
margin: 0.5rem 0;
|
|
5
5
|
padding: 0.3rem 0.9rem;
|
|
6
|
-
background-color:
|
|
6
|
+
background-color: var(--colour-button-bg);
|
|
7
7
|
cursor: pointer;
|
|
8
8
|
position: relative;
|
|
9
|
-
border-left: solid 0.4rem
|
|
9
|
+
border-left: solid 0.4rem var(--colour-button-bg);
|
|
10
|
+
border-right: none;
|
|
11
|
+
border-top: none;
|
|
12
|
+
border-bottom: none;
|
|
13
|
+
border-radius: 0;
|
|
14
|
+
text-align: left;
|
|
15
|
+
width: 100%;
|
|
10
16
|
|
|
11
17
|
& > * {
|
|
12
18
|
margin: 0.8rem 0;
|
|
13
19
|
}
|
|
14
20
|
|
|
15
21
|
// Contents of .tags provide 0.2rem of non-collapsing margin
|
|
16
|
-
& > .tags {
|
|
22
|
+
& > .block-list-item-tags {
|
|
17
23
|
margin: 0.6rem 0;
|
|
18
24
|
}
|
|
19
25
|
|
|
20
26
|
&:hover {
|
|
21
|
-
background-color:
|
|
27
|
+
background-color: var(--colour-bg-selected);
|
|
22
28
|
}
|
|
23
29
|
|
|
24
30
|
&.selected {
|
|
25
|
-
border-left: solid 0.4rem
|
|
26
|
-
background-color:
|
|
31
|
+
border-left: solid 0.4rem var(--colour-primary);
|
|
32
|
+
background-color: var(--colour-bg-selected);
|
|
27
33
|
}
|
|
28
34
|
|
|
29
35
|
&.linked-highlight {
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
&.consistent .icon::before {
|
|
59
59
|
.icon-circle-tick();
|
|
60
60
|
|
|
61
|
-
color:
|
|
61
|
+
color: var(--colour-primary);
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
&.inconsistent .icon::before {
|
|
65
65
|
.icon-circle-cross();
|
|
66
66
|
|
|
67
|
-
color:
|
|
67
|
+
color: var(--colour-warning);
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
width: 100%;
|
|
13
13
|
position: absolute;
|
|
14
14
|
bottom: 0;
|
|
15
|
+
left: 0;
|
|
16
|
+
padding: 1rem;
|
|
17
|
+
box-sizing: border-box;
|
|
15
18
|
|
|
16
19
|
.other-aspect {
|
|
17
20
|
display: inline-block;
|
|
@@ -24,21 +27,21 @@
|
|
|
24
27
|
}
|
|
25
28
|
|
|
26
29
|
&.addable {
|
|
27
|
-
color:
|
|
30
|
+
color: var(--colour-primary);
|
|
28
31
|
|
|
29
32
|
&:hover {
|
|
30
|
-
color:
|
|
33
|
+
color: var(--colour-primary)-focus;
|
|
31
34
|
text-decoration: underline;
|
|
32
35
|
}
|
|
33
36
|
}
|
|
34
37
|
|
|
35
38
|
&.selected {
|
|
36
|
-
background-color:
|
|
39
|
+
background-color: var(--colour-button-primary-bg);
|
|
37
40
|
border-radius: 0.4rem;
|
|
38
|
-
border: 0.1rem solid
|
|
41
|
+
border: 0.1rem solid var(--colour-button-primary-border);
|
|
39
42
|
|
|
40
43
|
/* border: solid 1px #399; */
|
|
41
|
-
color:
|
|
44
|
+
color: var(--colour-bg);
|
|
42
45
|
}
|
|
43
46
|
}
|
|
44
47
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// See COPYRIGHT.md for copyright information
|
|
2
|
+
|
|
3
|
+
@colour-bg-d: #000000;
|
|
4
|
+
@colour-foreground-d: #ffffff;
|
|
5
|
+
|
|
6
|
+
@colour-primary-d: #72bafd;
|
|
7
|
+
@colour-secondary-d: #66cc00;
|
|
8
|
+
@colour-tertiary-d: #aa108e;
|
|
9
|
+
@colour-warning-d: #d8ae15;
|
|
10
|
+
|
|
11
|
+
@colour-bg-fade-d: fadeout(@colour-foreground-d, 50%);
|
|
12
|
+
@colour-primary-focus-d: darken(spin(@colour-primary-d, -3.4), 7.0);
|
|
13
|
+
|
|
14
|
+
@colour-loader-d: @colour-foreground-d;
|
|
15
|
+
@colour-linked-fact-d: @colour-primary-d;
|
|
16
|
+
@colour-related-fact-d: lighten(desaturate(spin(@colour-secondary-d, 30.0), 14.5), 6.5);
|
|
17
|
+
|
|
18
|
+
@colour-text-title-d: darken(@colour-foreground-d, 26.2);
|
|
19
|
+
@colour-text-d: darken(@colour-foreground-d, 26.2);
|
|
20
|
+
@colour-text-light-d: darken(@colour-foreground-d, 52.4);
|
|
21
|
+
@colour-text-form-value-d: darken(@colour-foreground-d, 36.8);
|
|
22
|
+
|
|
23
|
+
@colour-border-grey-d: darken(@colour-foreground-d, 59.7);
|
|
24
|
+
|
|
25
|
+
@colour-highlight-default-d: lighten(desaturate(spin(@colour-secondary-d, -0.5660), 31.1688), 34); // #beea8f
|
|
26
|
+
@colour-highlight-1-d: lighten(saturate(spin(@colour-tertiary-d, -25.3918), 17.2043), 36); // #dd73ff
|
|
27
|
+
@colour-highlight-2-d: lighten(saturate(spin(@colour-warning-d, 1.0810), 17.7215), 33); // #ffac29
|
|
28
|
+
|
|
29
|
+
@colour-icon-grey-d: @colour-text-d;
|
|
30
|
+
|
|
31
|
+
@colour-button-primary-bg-d: @colour-primary-focus-d;
|
|
32
|
+
@colour-button-primary-border-d: darken(spin(@colour-primary-d, -3.2), 3.2);
|
|
33
|
+
|
|
34
|
+
@colour-button-bg-d: lighten(@colour-bg-d, 8.2);
|
|
35
|
+
@colour-bg-selected-d: lighten(@colour-bg-d, 14.1);
|
|
36
|
+
|
|
37
|
+
@colour-bg-tag-d: lighten(@colour-bg-d, 137.0);
|
|
38
|
+
|
|
39
|
+
@colour-row-hover-d: lighten(@colour-bg-d, 29.4);
|
|
40
|
+
@colour-row-odd-d: @colour-button-bg-d;
|
|
@@ -1,33 +1,40 @@
|
|
|
1
1
|
// See COPYRIGHT.md for copyright information
|
|
2
2
|
|
|
3
|
-
@
|
|
4
|
-
@
|
|
3
|
+
@colour-bg: #ffffff;
|
|
4
|
+
@colour-foreground: #000000;
|
|
5
5
|
|
|
6
|
-
@
|
|
7
|
-
@
|
|
6
|
+
@colour-primary: #026dce;
|
|
7
|
+
@colour-secondary: #66cc00;
|
|
8
|
+
@colour-tertiary: #aa108e;
|
|
9
|
+
@colour-warning: #7a4b06;
|
|
8
10
|
|
|
9
|
-
@
|
|
10
|
-
@
|
|
11
|
-
@text-light: #b2b2b2;
|
|
12
|
-
@text-form-value: #7d7d7d;
|
|
11
|
+
@colour-bg-fade: fadeout(@colour-foreground, 50%);
|
|
12
|
+
@colour-primary-focus: lighten(saturate(spin(@colour-primary, -3.3529), 1.9231), 9.2157); // #0094ff
|
|
13
13
|
|
|
14
|
-
@
|
|
15
|
-
@
|
|
14
|
+
@colour-loader: @colour-bg;
|
|
15
|
+
@colour-linked-fact: @colour-primary;
|
|
16
|
+
@colour-related-fact: darken(desaturate(spin(@colour-secondary, 30.0000), 14.5078), 2.1569); // #0eb30e;
|
|
16
17
|
|
|
17
|
-
@
|
|
18
|
-
@
|
|
19
|
-
@
|
|
18
|
+
@colour-text-title: lighten(@colour-foreground, 26.6667); // #444444;
|
|
19
|
+
@colour-text: lighten(@colour-foreground, 34.9020); // #595959;
|
|
20
|
+
@colour-text-light: lighten(@colour-foreground, 45); // #737373;
|
|
21
|
+
@colour-text-form-value: lighten(@colour-foreground, 45); // #737373
|
|
20
22
|
|
|
21
|
-
@
|
|
23
|
+
@colour-border-grey: lighten(@colour-foreground, 79.6078);
|
|
22
24
|
|
|
23
|
-
@
|
|
24
|
-
@
|
|
25
|
+
@colour-highlight-default: lighten(desaturate(spin(@colour-secondary, -0.5660), 31.1688), 34); // #beea8f
|
|
26
|
+
@colour-highlight-1: lighten(saturate(spin(@colour-tertiary, -25.3918), 17.2043), 36); // #dd73ff
|
|
27
|
+
@colour-highlight-2: lighten(saturate(spin(@colour-warning, 1.0810), 17.7215), 33); // #ffac29
|
|
25
28
|
|
|
26
|
-
@
|
|
27
|
-
@background-selected: #f3f3f3;
|
|
29
|
+
@colour-icon-grey: @colour-text;
|
|
28
30
|
|
|
29
|
-
@
|
|
31
|
+
@colour-button-primary-bg: darken(@colour-primary-focus, 20);
|
|
32
|
+
@colour-button-primary-border: darken(@colour-button-primary-bg, 10);
|
|
30
33
|
|
|
31
|
-
@
|
|
34
|
+
@colour-button-bg: darken(@colour-bg, 2.7451); // #f8f8f8;
|
|
35
|
+
@colour-bg-selected: darken(@colour-bg, 4.7059); // #f3f3f3;
|
|
32
36
|
|
|
33
|
-
@
|
|
37
|
+
@colour-bg-tag: darken(@colour-bg, 65); // #595959;
|
|
38
|
+
|
|
39
|
+
@colour-row-hover: darken(@colour-bg, 9.8039); // #e6e6e6
|
|
40
|
+
@colour-row-odd: @colour-button-bg;
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
display: inline-block;
|
|
5
5
|
text-transform: uppercase;
|
|
6
6
|
font-weight: bold;
|
|
7
|
-
background-color:
|
|
7
|
+
background-color: var(--colour-bg-tag);
|
|
8
8
|
padding: 0.15em 0.5em;
|
|
9
|
-
color:
|
|
9
|
+
color: var(--colour-bg);
|
|
10
10
|
border-radius: 0.3em;
|
|
11
11
|
margin: 0.2rem 0.3rem 0.2rem 0;
|
|
12
12
|
white-space: nowrap;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
.clickable {
|
|
16
16
|
cursor: pointer;
|
|
17
|
-
color:
|
|
17
|
+
color: var(--colour-primary);
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
.panel-indent {
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
left: 50%;
|
|
8
8
|
transform: translate(-50%, -50%);
|
|
9
9
|
border: solid 1px #000;
|
|
10
|
-
background-color:
|
|
10
|
+
background-color: var(--colour-bg);
|
|
11
11
|
display: none;
|
|
12
|
+
padding: 0;
|
|
13
|
+
margin: 0;
|
|
12
14
|
|
|
13
15
|
&.full-screen {
|
|
14
16
|
width: calc(100vw - 5em);
|
|
@@ -37,15 +39,16 @@
|
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
.close {
|
|
42
|
+
border: none;
|
|
40
43
|
position: absolute;
|
|
41
|
-
top:
|
|
42
|
-
right:
|
|
43
|
-
padding:
|
|
44
|
+
top: 1rem;
|
|
45
|
+
right: 1.4rem;
|
|
46
|
+
padding: 0.3rem;
|
|
44
47
|
font-size: 2.6rem;
|
|
45
48
|
z-index: 20;
|
|
46
49
|
cursor: pointer;
|
|
47
50
|
line-height: 2.2rem;
|
|
48
|
-
|
|
51
|
+
color: var(--colour-border-grey);
|
|
49
52
|
|
|
50
53
|
&::before {
|
|
51
54
|
content: "\00d7";
|
|
@@ -61,14 +64,14 @@
|
|
|
61
64
|
border-radius: 0;
|
|
62
65
|
min-width: 10rem;
|
|
63
66
|
margin-right: 1.5rem;
|
|
64
|
-
border: solid 0.1rem
|
|
65
|
-
color:
|
|
66
|
-
background-color:
|
|
67
|
+
border: solid 0.1rem var(--colour-border-grey);
|
|
68
|
+
color: var(--colour-text);
|
|
69
|
+
background-color: var(--colour-button-bg);
|
|
67
70
|
cursor: pointer;
|
|
68
71
|
|
|
69
72
|
&.dialog-button-primary {
|
|
70
|
-
color:
|
|
71
|
-
background-color:
|
|
73
|
+
color: var(--colour-bg);
|
|
74
|
+
background-color: var(--colour-primary);
|
|
72
75
|
border: none;
|
|
73
76
|
}
|
|
74
77
|
}
|
|
@@ -4,10 +4,10 @@ input[type="text"],
|
|
|
4
4
|
select,
|
|
5
5
|
button {
|
|
6
6
|
padding: 7px 5px;
|
|
7
|
-
border: solid 1px
|
|
7
|
+
border: solid 1px var(--colour-border-grey);
|
|
8
8
|
border-radius: 5px;
|
|
9
|
-
color:
|
|
10
|
-
background-color:
|
|
9
|
+
color: var(--colour-text);
|
|
10
|
+
background-color: unset;
|
|
11
11
|
box-sizing: border-box;
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -15,13 +15,14 @@ button {
|
|
|
15
15
|
width: 3.2rem;
|
|
16
16
|
height: 3.2rem;
|
|
17
17
|
text-align: center;
|
|
18
|
-
color:
|
|
18
|
+
color: var(--colour-icon-grey);
|
|
19
19
|
box-sizing: border-box;
|
|
20
20
|
cursor: pointer;
|
|
21
21
|
padding: 0;
|
|
22
22
|
font-size: 2.2rem;
|
|
23
23
|
line-height: 3.2rem;
|
|
24
24
|
user-select: none;
|
|
25
|
+
border: none;
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
.square-button {
|
|
@@ -29,8 +30,8 @@ button {
|
|
|
29
30
|
|
|
30
31
|
padding: 0;
|
|
31
32
|
border-radius: 3px;
|
|
32
|
-
border: solid 0.1rem
|
|
33
|
-
background-color:
|
|
33
|
+
border: solid 0.1rem var(--colour-border-grey);
|
|
34
|
+
background-color: var(--colour-button-bg);
|
|
34
35
|
line-height: 3rem;
|
|
35
36
|
margin: 0 0.5rem;
|
|
36
37
|
|
|
@@ -44,9 +45,9 @@ button {
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
.square-button.primary {
|
|
47
|
-
color:
|
|
48
|
-
border-color:
|
|
49
|
-
background-color:
|
|
48
|
+
color: var(--colour-bg);
|
|
49
|
+
border-color: var(--colour-button-primary-border);
|
|
50
|
+
background-color: var(--colour-button-primary-bg);
|
|
50
51
|
}
|
|
51
52
|
|
|
52
53
|
.wk-checkbox,
|
|
@@ -57,6 +58,11 @@ label.checkbox {
|
|
|
57
58
|
user-select: none;
|
|
58
59
|
line-height: 1.6rem;
|
|
59
60
|
|
|
61
|
+
&:focus-within {
|
|
62
|
+
outline: solid 0.2rem #000;
|
|
63
|
+
outline-offset: 0.3rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
60
66
|
input {
|
|
61
67
|
position: absolute;
|
|
62
68
|
opacity: 0;
|
|
@@ -73,7 +79,7 @@ label.checkbox {
|
|
|
73
79
|
width: 1.6rem;
|
|
74
80
|
height: 1.6rem;
|
|
75
81
|
border-radius: 0.4rem;
|
|
76
|
-
border: solid 0.1rem
|
|
82
|
+
border: solid 0.1rem var(--colour-border-grey);
|
|
77
83
|
}
|
|
78
84
|
|
|
79
85
|
input:checked ~ .checkmark::before {
|
|
@@ -83,7 +89,7 @@ label.checkbox {
|
|
|
83
89
|
left: 0.4rem;
|
|
84
90
|
width: 0.4rem;
|
|
85
91
|
height: 1.1rem;
|
|
86
|
-
border: solid
|
|
92
|
+
border: solid var(--colour-primary);
|
|
87
93
|
border-width: 0 0.2rem 0.2rem 0;
|
|
88
94
|
transform: rotate(45deg);
|
|
89
95
|
}
|
|
@@ -92,3 +98,19 @@ label.checkbox {
|
|
|
92
98
|
input:disabled {
|
|
93
99
|
background-color: #eee;
|
|
94
100
|
}
|
|
101
|
+
|
|
102
|
+
.inline-button {
|
|
103
|
+
display: inline;
|
|
104
|
+
cursor: pointer;
|
|
105
|
+
color: var(--colour-primary);
|
|
106
|
+
padding: 0.3rem;
|
|
107
|
+
border: none;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.bare-button {
|
|
111
|
+
display: inline;
|
|
112
|
+
cursor: pointer;
|
|
113
|
+
color: var(--colour-primary);
|
|
114
|
+
padding: 0.3rem;
|
|
115
|
+
border: none;
|
|
116
|
+
}
|