@design.estate/dees-catalog 13.1.0 → 13.2.0
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/dist_bundle/bundle.js +453 -150
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +2 -0
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +11 -2
- package/dist_ts_web/elements/00group-chart/dees-chart-area/styles.js +4 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +12 -8
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.d.ts +37 -1
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.js +267 -79
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.d.ts +7 -0
- package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js +192 -40
- package/package.json +1 -1
- package/readme.md +19 -0
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-chart/dees-chart-area/component.ts +4 -0
- package/ts_web/elements/00group-chart/dees-chart-area/styles.ts +3 -0
- package/ts_web/elements/00group-chart/dees-chart-area/template.ts +11 -7
- package/ts_web/elements/00group-dataview/dees-dataview-codebox/codebox.diff.ts +309 -76
- package/ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.ts +184 -37
package/dist_ts_web/elements/00group-dataview/dees-dataview-codebox/dees-dataview-codebox.js
CHANGED
|
@@ -42,7 +42,7 @@ import { DeesContextmenu } from '../../00group-overlay/dees-contextmenu/dees-con
|
|
|
42
42
|
import { DeesServiceLibLoader } from '../../../services/index.js';
|
|
43
43
|
import '../../00group-layout/dees-tile/dees-tile.js';
|
|
44
44
|
import '../../00group-utility/dees-icon/dees-icon.js';
|
|
45
|
-
import { buildSplitRows, computeLineDiff, diffStats, foldContextRows,
|
|
45
|
+
import { buildSplitRows, computeLineDiff, diffStats, foldContextRows, parseUnifiedDiffDocument, toUnifiedDiff, } from './codebox.diff.js';
|
|
46
46
|
let DeesDataviewCodebox = (() => {
|
|
47
47
|
let _classDecorators = [customElement('dees-dataview-codebox')];
|
|
48
48
|
let _classDescriptor;
|
|
@@ -67,6 +67,9 @@ let DeesDataviewCodebox = (() => {
|
|
|
67
67
|
let _unifiedDiff_decorators;
|
|
68
68
|
let _unifiedDiff_initializers = [];
|
|
69
69
|
let _unifiedDiff_extraInitializers = [];
|
|
70
|
+
let _unifiedDiffTruncated_decorators;
|
|
71
|
+
let _unifiedDiffTruncated_initializers = [];
|
|
72
|
+
let _unifiedDiffTruncated_extraInitializers = [];
|
|
70
73
|
let _diffView_decorators;
|
|
71
74
|
let _diffView_initializers = [];
|
|
72
75
|
let _diffView_extraInitializers = [];
|
|
@@ -98,6 +101,7 @@ let DeesDataviewCodebox = (() => {
|
|
|
98
101
|
_codeToDisplay_decorators = [property({ type: String })];
|
|
99
102
|
_codeBefore_decorators = [property({ type: String })];
|
|
100
103
|
_unifiedDiff_decorators = [property({ type: String })];
|
|
104
|
+
_unifiedDiffTruncated_decorators = [property({ type: Boolean })];
|
|
101
105
|
_diffView_decorators = [property({ type: String })];
|
|
102
106
|
_showDiffLineNumbers_decorators = [property({ type: Boolean })];
|
|
103
107
|
_highlightedCode_decorators = [state()];
|
|
@@ -111,6 +115,7 @@ let DeesDataviewCodebox = (() => {
|
|
|
111
115
|
__esDecorate(this, null, _codeToDisplay_decorators, { kind: "accessor", name: "codeToDisplay", static: false, private: false, access: { has: obj => "codeToDisplay" in obj, get: obj => obj.codeToDisplay, set: (obj, value) => { obj.codeToDisplay = value; } }, metadata: _metadata }, _codeToDisplay_initializers, _codeToDisplay_extraInitializers);
|
|
112
116
|
__esDecorate(this, null, _codeBefore_decorators, { kind: "accessor", name: "codeBefore", static: false, private: false, access: { has: obj => "codeBefore" in obj, get: obj => obj.codeBefore, set: (obj, value) => { obj.codeBefore = value; } }, metadata: _metadata }, _codeBefore_initializers, _codeBefore_extraInitializers);
|
|
113
117
|
__esDecorate(this, null, _unifiedDiff_decorators, { kind: "accessor", name: "unifiedDiff", static: false, private: false, access: { has: obj => "unifiedDiff" in obj, get: obj => obj.unifiedDiff, set: (obj, value) => { obj.unifiedDiff = value; } }, metadata: _metadata }, _unifiedDiff_initializers, _unifiedDiff_extraInitializers);
|
|
118
|
+
__esDecorate(this, null, _unifiedDiffTruncated_decorators, { kind: "accessor", name: "unifiedDiffTruncated", static: false, private: false, access: { has: obj => "unifiedDiffTruncated" in obj, get: obj => obj.unifiedDiffTruncated, set: (obj, value) => { obj.unifiedDiffTruncated = value; } }, metadata: _metadata }, _unifiedDiffTruncated_initializers, _unifiedDiffTruncated_extraInitializers);
|
|
114
119
|
__esDecorate(this, null, _diffView_decorators, { kind: "accessor", name: "diffView", static: false, private: false, access: { has: obj => "diffView" in obj, get: obj => obj.diffView, set: (obj, value) => { obj.diffView = value; } }, metadata: _metadata }, _diffView_initializers, _diffView_extraInitializers);
|
|
115
120
|
__esDecorate(this, null, _showDiffLineNumbers_decorators, { kind: "accessor", name: "showDiffLineNumbers", static: false, private: false, access: { has: obj => "showDiffLineNumbers" in obj, get: obj => obj.showDiffLineNumbers, set: (obj, value) => { obj.showDiffLineNumbers = value; } }, metadata: _metadata }, _showDiffLineNumbers_initializers, _showDiffLineNumbers_extraInitializers);
|
|
116
121
|
__esDecorate(this, null, _highlightedCode_decorators, { kind: "accessor", name: "highlightedCode", static: false, private: false, access: { has: obj => "highlightedCode" in obj, get: obj => obj.highlightedCode, set: (obj, value) => { obj.highlightedCode = value; } }, metadata: _metadata }, _highlightedCode_initializers, _highlightedCode_extraInitializers);
|
|
@@ -150,7 +155,11 @@ let DeesDataviewCodebox = (() => {
|
|
|
150
155
|
#unifiedDiff_accessor_storage = (__runInitializers(this, _codeBefore_extraInitializers), __runInitializers(this, _unifiedDiff_initializers, ''));
|
|
151
156
|
get unifiedDiff() { return this.#unifiedDiff_accessor_storage; }
|
|
152
157
|
set unifiedDiff(value) { this.#unifiedDiff_accessor_storage = value; }
|
|
153
|
-
#
|
|
158
|
+
#unifiedDiffTruncated_accessor_storage = (__runInitializers(this, _unifiedDiff_extraInitializers), __runInitializers(this, _unifiedDiffTruncated_initializers, false));
|
|
159
|
+
/** The unified patch ends before the producer's complete output. */
|
|
160
|
+
get unifiedDiffTruncated() { return this.#unifiedDiffTruncated_accessor_storage; }
|
|
161
|
+
set unifiedDiffTruncated(value) { this.#unifiedDiffTruncated_accessor_storage = value; }
|
|
162
|
+
#diffView_accessor_storage = (__runInitializers(this, _unifiedDiffTruncated_extraInitializers), __runInitializers(this, _diffView_initializers, ''));
|
|
154
163
|
/** '' = regular code; 'inline' = unified rows; 'split' = side by side; 'auto' splits at 640px. */
|
|
155
164
|
get diffView() { return this.#diffView_accessor_storage; }
|
|
156
165
|
set diffView(value) { this.#diffView_accessor_storage = value; }
|
|
@@ -485,17 +494,64 @@ let DeesDataviewCodebox = (() => {
|
|
|
485
494
|
.diffStat.removed {
|
|
486
495
|
color: var(--dees-color-accent-error);
|
|
487
496
|
}
|
|
497
|
+
|
|
498
|
+
.diffFileHeader {
|
|
499
|
+
display: flex;
|
|
500
|
+
align-items: baseline;
|
|
501
|
+
gap: var(--dees-spacing-md);
|
|
502
|
+
min-width: 0;
|
|
503
|
+
padding: 6px var(--dees-spacing-lg);
|
|
504
|
+
border-top: 1px solid var(--dees-color-border-subtle);
|
|
505
|
+
border-bottom: 1px solid var(--dees-color-border-subtle);
|
|
506
|
+
background: var(--dees-color-bg-secondary);
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
.diffFile:first-child > .diffFileHeader { border-top: 0; }
|
|
510
|
+
|
|
511
|
+
.diffFilePath {
|
|
512
|
+
min-width: 0;
|
|
513
|
+
overflow: hidden;
|
|
514
|
+
text-overflow: ellipsis;
|
|
515
|
+
white-space: nowrap;
|
|
516
|
+
color: var(--dees-color-text-primary);
|
|
517
|
+
font: 600 var(--dees-font-control-size-sm)/1.4 var(--dees-font-family-mono);
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
.diffFileMeta {
|
|
521
|
+
flex: 0 1 auto;
|
|
522
|
+
min-width: 0;
|
|
523
|
+
overflow: hidden;
|
|
524
|
+
text-overflow: ellipsis;
|
|
525
|
+
white-space: nowrap;
|
|
526
|
+
color: var(--dees-color-text-muted);
|
|
527
|
+
font-size: var(--dees-font-caption1-size, 11px);
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
.diffFileNotice,
|
|
531
|
+
.diffDocumentNotice {
|
|
532
|
+
padding: var(--dees-spacing-lg);
|
|
533
|
+
color: var(--dees-color-text-muted);
|
|
534
|
+
font-size: var(--dees-font-control-size-sm);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
.diffQualifier {
|
|
538
|
+
margin-left: var(--dees-spacing-sm);
|
|
539
|
+
color: var(--dees-color-text-muted);
|
|
540
|
+
font-weight: 500;
|
|
541
|
+
}
|
|
488
542
|
`,
|
|
489
543
|
];
|
|
490
544
|
render() {
|
|
491
545
|
const contextMenuOptions = [
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
546
|
+
...(!this.unifiedDiff
|
|
547
|
+
? [{
|
|
548
|
+
name: 'Copy Code',
|
|
549
|
+
iconName: 'lucide:Copy',
|
|
550
|
+
action: async () => {
|
|
551
|
+
await this.copyCode();
|
|
552
|
+
},
|
|
553
|
+
}]
|
|
554
|
+
: []),
|
|
499
555
|
...(this.isDiffActive
|
|
500
556
|
? [{
|
|
501
557
|
name: 'Copy Unified Diff',
|
|
@@ -524,13 +580,15 @@ let DeesDataviewCodebox = (() => {
|
|
|
524
580
|
@option-activate=${(event) => { event.stopPropagation(); this.setDiffView(event.detail.value); }}></dees-input-multitoggle>
|
|
525
581
|
`
|
|
526
582
|
: ''}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
583
|
+
${!this.unifiedDiff ? html `
|
|
584
|
+
<div
|
|
585
|
+
class="copyButton ${this.copied ? 'copied' : ''}"
|
|
586
|
+
title="Copy code"
|
|
587
|
+
@click=${this.copyCode}
|
|
588
|
+
>
|
|
589
|
+
<dees-icon .icon=${this.copied ? 'lucide:Check' : 'lucide:Copy'} iconSize="14"></dees-icon>
|
|
590
|
+
</div>
|
|
591
|
+
` : ''}
|
|
534
592
|
</div>
|
|
535
593
|
</div>
|
|
536
594
|
${this.isDiffActive ? this.renderDiff() : this.renderCode()}
|
|
@@ -559,19 +617,90 @@ let DeesDataviewCodebox = (() => {
|
|
|
559
617
|
return html `<div class="lineCount">${codeLines.length} ${codeLines.length === 1 ? 'line' : 'lines'}</div>`;
|
|
560
618
|
}
|
|
561
619
|
renderDiffFooter() {
|
|
562
|
-
const
|
|
620
|
+
const summary = this.diffDocument?.summary;
|
|
621
|
+
const stats = summary
|
|
622
|
+
? summary.type === 'unparseable' ? undefined : summary.stats
|
|
623
|
+
: diffStats(this.diffRows);
|
|
624
|
+
const qualifiers = [];
|
|
625
|
+
if (summary?.type === 'partial')
|
|
626
|
+
qualifiers.push('Partial diff');
|
|
627
|
+
if (summary?.type === 'unparseable')
|
|
628
|
+
qualifiers.push('Diff format unavailable');
|
|
629
|
+
if (summary?.binaryFiles) {
|
|
630
|
+
qualifiers.push(`${summary.binaryFiles} binary ${summary.binaryFiles === 1 ? 'file' : 'files'}`);
|
|
631
|
+
}
|
|
632
|
+
if (summary?.type === 'exact' && !stats && !summary.binaryFiles)
|
|
633
|
+
qualifiers.push('Metadata-only diff');
|
|
563
634
|
return html `
|
|
564
635
|
<div class="lineCount">
|
|
565
|
-
|
|
566
|
-
|
|
636
|
+
${stats ? html `
|
|
637
|
+
<span class="diffStat added">+${stats.added}</span>
|
|
638
|
+
<span class="diffStat removed">−${stats.removed}</span>
|
|
639
|
+
` : ''}
|
|
640
|
+
${qualifiers.length ? html `<span class="diffQualifier">${qualifiers.join(' · ')}</span>` : ''}
|
|
567
641
|
</div>
|
|
568
642
|
`;
|
|
569
643
|
}
|
|
570
644
|
renderDiff() {
|
|
571
|
-
const
|
|
645
|
+
const sections = this.displaySectionsWithFolds();
|
|
646
|
+
if (!sections.length) {
|
|
647
|
+
return html `<div class="diffDocumentNotice">The diff has no displayable file sections.</div>`;
|
|
648
|
+
}
|
|
572
649
|
return this.effectiveDiffView === 'split'
|
|
573
|
-
?
|
|
574
|
-
|
|
650
|
+
? html `${sections.map(({ file, rows }) => html `
|
|
651
|
+
<section class="diffFile">
|
|
652
|
+
${this.renderDiffFileHeader(file)}
|
|
653
|
+
${rows.length ? this.renderSplitGrid(rows) : this.renderDiffFileNotice(file)}
|
|
654
|
+
</section>
|
|
655
|
+
`)}`
|
|
656
|
+
: html `<div class="diffScroll">${sections.map(({ file, rows }) => html `
|
|
657
|
+
<section class="diffFile">
|
|
658
|
+
${this.renderDiffFileHeader(file)}
|
|
659
|
+
${rows.length ? this.renderInlineGrid(rows) : this.renderDiffFileNotice(file)}
|
|
660
|
+
</section>
|
|
661
|
+
`)}</div>`;
|
|
662
|
+
}
|
|
663
|
+
renderDiffFileHeader(fileArg) {
|
|
664
|
+
const details = this.diffFileMetadataLabels(fileArg);
|
|
665
|
+
const path = fileArg.beforePath && fileArg.afterPath && fileArg.beforePath !== fileArg.afterPath
|
|
666
|
+
? `${fileArg.beforePath} → ${fileArg.afterPath}`
|
|
667
|
+
: fileArg.displayPath;
|
|
668
|
+
if (!path && !details.length)
|
|
669
|
+
return '';
|
|
670
|
+
return html `
|
|
671
|
+
<div class="diffFileHeader">
|
|
672
|
+
<div class="diffFilePath">${path ?? 'Unscoped patch'}</div>
|
|
673
|
+
${details.length ? html `<div class="diffFileMeta">${details.join(' · ')}</div>` : ''}
|
|
674
|
+
</div>
|
|
675
|
+
`;
|
|
676
|
+
}
|
|
677
|
+
diffFileMetadataLabels(fileArg) {
|
|
678
|
+
const labels = [];
|
|
679
|
+
const metadata = (kindArg) => fileArg.metadata.filter((entry) => entry.kind === kindArg).map((entry) => entry.value);
|
|
680
|
+
const newFileMode = metadata('new-file-mode')[0];
|
|
681
|
+
const deletedFileMode = metadata('deleted-file-mode')[0];
|
|
682
|
+
const oldMode = metadata('old-mode')[0];
|
|
683
|
+
const newMode = metadata('new-mode')[0];
|
|
684
|
+
if (newFileMode)
|
|
685
|
+
labels.push(`New file · mode ${newFileMode}`);
|
|
686
|
+
if (deletedFileMode)
|
|
687
|
+
labels.push(`Deleted file · mode ${deletedFileMode}`);
|
|
688
|
+
if (metadata('rename-from').length || metadata('rename-to').length)
|
|
689
|
+
labels.push('Renamed');
|
|
690
|
+
if (metadata('copy-from').length || metadata('copy-to').length)
|
|
691
|
+
labels.push('Copied');
|
|
692
|
+
if (oldMode || newMode)
|
|
693
|
+
labels.push(`Mode ${oldMode ?? '?'} → ${newMode ?? '?'}`);
|
|
694
|
+
labels.push(...metadata('similarity-index').map((value) => `${value} similar`));
|
|
695
|
+
labels.push(...metadata('dissimilarity-index').map((value) => `${value} dissimilar`));
|
|
696
|
+
if (fileArg.binary)
|
|
697
|
+
labels.push('Binary change');
|
|
698
|
+
return labels;
|
|
699
|
+
}
|
|
700
|
+
renderDiffFileNotice(fileArg) {
|
|
701
|
+
return html `<div class="diffFileNotice">${fileArg.binary
|
|
702
|
+
? 'Binary content is not shown.'
|
|
703
|
+
: 'No textual line changes.'}</div>`;
|
|
575
704
|
}
|
|
576
705
|
renderInlineGrid(displayRows) {
|
|
577
706
|
return html `
|
|
@@ -683,6 +812,7 @@ let DeesDataviewCodebox = (() => {
|
|
|
683
812
|
highlightToken = 0;
|
|
684
813
|
copiedResetTimeout = null;
|
|
685
814
|
diffRows = [];
|
|
815
|
+
diffDocument = null;
|
|
686
816
|
diffHighlightCache = new Map();
|
|
687
817
|
autoDiffResizeObserver = null;
|
|
688
818
|
async connectedCallback() {
|
|
@@ -741,13 +871,22 @@ let DeesDataviewCodebox = (() => {
|
|
|
741
871
|
if (changedProperties.has('codeToDisplay')
|
|
742
872
|
|| changedProperties.has('codeBefore')
|
|
743
873
|
|| changedProperties.has('unifiedDiff')
|
|
874
|
+
|| changedProperties.has('unifiedDiffTruncated')
|
|
744
875
|
|| changedProperties.has('diffView')) {
|
|
745
876
|
if (this.isDiffActive) {
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
877
|
+
if (this.unifiedDiff) {
|
|
878
|
+
this.diffDocument = parseUnifiedDiffDocument(this.unifiedDiff, {
|
|
879
|
+
truncated: this.unifiedDiffTruncated,
|
|
880
|
+
});
|
|
881
|
+
this.diffRows = this.diffDocument.files.flatMap((file) => file.rows);
|
|
882
|
+
}
|
|
883
|
+
else {
|
|
884
|
+
this.diffDocument = null;
|
|
885
|
+
this.diffRows = computeLineDiff(this.codeBefore, this.codeToDisplay);
|
|
886
|
+
}
|
|
749
887
|
}
|
|
750
888
|
else {
|
|
889
|
+
this.diffDocument = null;
|
|
751
890
|
this.diffRows = [];
|
|
752
891
|
}
|
|
753
892
|
this.diffHighlightCache.clear();
|
|
@@ -758,25 +897,34 @@ let DeesDataviewCodebox = (() => {
|
|
|
758
897
|
this.diffHighlightCache.clear();
|
|
759
898
|
}
|
|
760
899
|
}
|
|
761
|
-
|
|
762
|
-
const
|
|
763
|
-
|
|
900
|
+
displaySectionsWithFolds() {
|
|
901
|
+
const files = this.diffDocument?.files ?? [{
|
|
902
|
+
metadata: [],
|
|
903
|
+
rows: this.diffRows,
|
|
904
|
+
binary: false,
|
|
905
|
+
}];
|
|
764
906
|
let foldOrdinal = 0;
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
907
|
+
return files.map((file) => {
|
|
908
|
+
const result = [];
|
|
909
|
+
for (const row of foldContextRows(file.rows)) {
|
|
910
|
+
if (row.kind === 'fold') {
|
|
911
|
+
if (this.expandedFolds.has(foldOrdinal)) {
|
|
912
|
+
result.push(...row.rows);
|
|
913
|
+
}
|
|
914
|
+
else {
|
|
915
|
+
result.push({ ...row, ordinal: foldOrdinal });
|
|
916
|
+
}
|
|
917
|
+
foldOrdinal++;
|
|
769
918
|
}
|
|
770
919
|
else {
|
|
771
|
-
result.push(
|
|
920
|
+
result.push(row);
|
|
772
921
|
}
|
|
773
|
-
foldOrdinal++;
|
|
774
|
-
}
|
|
775
|
-
else {
|
|
776
|
-
result.push(row);
|
|
777
922
|
}
|
|
778
|
-
|
|
779
|
-
|
|
923
|
+
return { file, rows: result };
|
|
924
|
+
});
|
|
925
|
+
}
|
|
926
|
+
displayRowsWithFolds() {
|
|
927
|
+
return this.displaySectionsWithFolds().flatMap((section) => section.rows);
|
|
780
928
|
}
|
|
781
929
|
async updated(changedProperties) {
|
|
782
930
|
super.updated(changedProperties);
|
|
@@ -794,6 +942,7 @@ let DeesDataviewCodebox = (() => {
|
|
|
794
942
|
if (changedProperties.has('codeToDisplay')
|
|
795
943
|
|| changedProperties.has('codeBefore')
|
|
796
944
|
|| changedProperties.has('unifiedDiff')
|
|
945
|
+
|| changedProperties.has('unifiedDiffTruncated')
|
|
797
946
|
|| changedProperties.has('diffView')
|
|
798
947
|
|| changedProperties.has('expandedFolds')
|
|
799
948
|
|| changedProperties.has('progLang')) {
|
|
@@ -865,6 +1014,9 @@ let DeesDataviewCodebox = (() => {
|
|
|
865
1014
|
}
|
|
866
1015
|
}
|
|
867
1016
|
copyCode = async () => {
|
|
1017
|
+
if (this.unifiedDiff) {
|
|
1018
|
+
return;
|
|
1019
|
+
}
|
|
868
1020
|
// in diff mode the copy button yields the after-state text
|
|
869
1021
|
const textToCopy = this.isDiffActive
|
|
870
1022
|
? this.diffRows
|
|
@@ -916,4 +1068,4 @@ let DeesDataviewCodebox = (() => {
|
|
|
916
1068
|
return DeesDataviewCodebox = _classThis;
|
|
917
1069
|
})();
|
|
918
1070
|
export { DeesDataviewCodebox };
|
|
919
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1kYXRhdmlldy1jb2RlYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZGF0YXZpZXcvZGVlcy1kYXRhdmlldy1jb2RlYm94L2RlZXMtZGF0YXZpZXctY29kZWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxzRUFBc0UsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkzRSxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULGVBQWUsRUFDZixnQkFBZ0IsRUFDaEIsYUFBYSxHQUtkLE1BQU0sbUJBQW1CLENBQUM7SUFnQmQsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsdUJBQXVCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FBbkIsU0FBUSxXQUFXOzs7O29DQUlqRCxRQUFR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
|
|
1071
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1kYXRhdmlldy1jb2RlYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdHNfd2ViL2VsZW1lbnRzLzAwZ3JvdXAtZGF0YXZpZXcvZGVlcy1kYXRhdmlldy1jb2RlYm94L2RlZXMtZGF0YXZpZXctY29kZWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxzRUFBc0UsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCxJQUFJLEVBQ0osR0FBRyxFQUNILGFBQWEsRUFFYixRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixVQUFVLEdBQ1gsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUkzRSxPQUFPLEtBQUssV0FBVyxNQUFNLHlCQUF5QixDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sOENBQThDLENBQUM7QUFDdEQsT0FBTyxFQUNMLGNBQWMsRUFDZCxlQUFlLEVBQ2YsU0FBUyxFQUNULGVBQWUsRUFDZix3QkFBd0IsRUFDeEIsYUFBYSxHQVFkLE1BQU0sbUJBQW1CLENBQUM7SUFnQmQsbUJBQW1COzRCQUQvQixhQUFhLENBQUMsdUJBQXVCLENBQUM7Ozs7c0JBQ0UsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttQ0FBbkIsU0FBUSxXQUFXOzs7O29DQUlqRCxR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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@design.estate/dees-catalog",
|
|
3
|
-
"version": "13.
|
|
3
|
+
"version": "13.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.",
|
|
6
6
|
"main": "dist_ts_web/index.js",
|
package/readme.md
CHANGED
|
@@ -1681,6 +1681,20 @@ Code display component with syntax highlighting and line numbers.
|
|
|
1681
1681
|
|
|
1682
1682
|
Diff rendering includes word-level intraline change highlighting, unchanged-context folding with expandable "N unchanged lines" rows, `+added −removed` stats in the footer, and a "Copy Unified Diff" context-menu action. The app bar switches between inline and split layouts and emits the bubbling, composed `diff-view-change` event with `IDiffViewChangeDetail` (`{ diffView: TDiffView }`). The exported `TDiffView` type is `'inline' | 'split'`. Split mode keeps a fixed center divider and gives each side an independent horizontal scroll position while the containing surface owns their shared vertical movement. Set `showDiffLineNumbers` to `false` when snippet inputs do not carry trustworthy source positions. The copy button yields the after-state text. The dependency-free engine (`computeLineDiff`, `parseUnifiedDiff`, `foldContextRows`, `buildSplitRows`, `diffStats`, `toUnifiedDiff`) is exported for programmatic use.
|
|
1683
1683
|
|
|
1684
|
+
Unified patches retain their ordered file boundaries. Each file heading shows its
|
|
1685
|
+
before/after path and typed Git metadata such as new, deleted, renamed, copied,
|
|
1686
|
+
mode-only, and binary changes. Set `unifiedDiffTruncated` when the producer bounded
|
|
1687
|
+
the patch: the footer then labels it as partial and counts only complete hunks.
|
|
1688
|
+
Binary and unparseable inputs never appear as `+0 −0`. The after-state copy action
|
|
1689
|
+
is available for full before/after inputs; unified patches retain the exact source
|
|
1690
|
+
through the **Copy Unified Diff** context action.
|
|
1691
|
+
|
|
1692
|
+
Use `parseUnifiedDiffDocument(patch, { truncated? })` when a caller needs the same
|
|
1693
|
+
structured view. It returns ordered `IUnifiedDiffFileSection` entries with typed
|
|
1694
|
+
metadata, text rows, and binary state, plus a `TUnifiedDiffDocumentSummary` that
|
|
1695
|
+
separately reports completeness, trustworthy text stats, and the binary-file count.
|
|
1696
|
+
`parseUnifiedDiff(patch)` remains the compatibility view that flattens text rows.
|
|
1697
|
+
|
|
1684
1698
|
Use `summarizeUnifiedDiff(patch, { truncated? })` when counts must state their confidence. It returns `TUnifiedDiffSummary`: `{ type: 'exact', stats }` after validating every hunk, `{ type: 'partial', stats? }` for an explicitly incomplete input, `{ type: 'binary' }` for a binary patch, or `{ type: 'unparseable' }`. `stats` is `IDiffStats` (`{ added, removed }`). The helper never presents an invalid, non-text, or truncated patch as `+0 −0`.
|
|
1685
1699
|
|
|
1686
1700
|
`diffView="auto"` uses inline rows below 640px of codebox width and split rows at 640px or wider. Resizing preserves expanded context and does not emit `diff-view-change`. Clicking either layout button fixes that choice, including when it already matches the automatic layout; set `diffView` back to `'auto'` to resume adaptation. The exported `TDiffViewRequest` adds `'auto'` to `TDiffView`, while event details and saved manual choices remain `'inline' | 'split'`. The default empty `diffView` and explicit layouts retain their existing behavior.
|
|
@@ -2169,6 +2183,11 @@ readings in the selected window. An unavailable statistic is displayed as `—`.
|
|
|
2169
2183
|
With `realtimeMode=true` and `rollingWindow=3_600_000`, the time axis follows
|
|
2170
2184
|
the last hour even while the latest reading is unavailable.
|
|
2171
2185
|
|
|
2186
|
+
Set `compact` when the chart is embedded in a popover or another component that
|
|
2187
|
+
already owns its heading and frame. Compact mode dedicates the bounded component
|
|
2188
|
+
height to the plot and omits the nested tile chrome, chart heading, full-page
|
|
2189
|
+
action, and legend. The default framed presentation is unchanged.
|
|
2190
|
+
|
|
2172
2191
|
```typescript
|
|
2173
2192
|
<dees-chart-area
|
|
2174
2193
|
label="System Usage"
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@design.estate/dees-catalog',
|
|
6
|
-
version: '13.
|
|
6
|
+
version: '13.2.0',
|
|
7
7
|
description: 'A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript.'
|
|
8
8
|
}
|
|
@@ -126,6 +126,10 @@ export class DeesChartArea extends DeesElement {
|
|
|
126
126
|
@property({ type: Boolean })
|
|
127
127
|
accessor hideLegend: boolean = false;
|
|
128
128
|
|
|
129
|
+
/** Embed only the plot: no nested tile chrome, heading, expand action, or legend. */
|
|
130
|
+
@property({ type: Boolean, reflect: true })
|
|
131
|
+
accessor compact: boolean = false;
|
|
132
|
+
|
|
129
133
|
/**
|
|
130
134
|
* Which reference lines are drawn on the chart per series. The 'max' line
|
|
131
135
|
* keeps its existing rule of only appearing when max exceeds avg by >10%.
|
|
@@ -8,6 +8,9 @@ export const chartAreaStyles = [
|
|
|
8
8
|
chartFrameStyles,
|
|
9
9
|
css`
|
|
10
10
|
.chartContainer { margin: 12px 16px 8px; }
|
|
11
|
+
:host([compact]) dees-tile::part(outer) { border: 0; border-radius: 0; }
|
|
12
|
+
:host([compact]) dees-tile::part(content) { border: 0; }
|
|
13
|
+
:host([compact]) .chartContainer { margin: 4px 0 0; }
|
|
11
14
|
.rangeSelectionOverlay {
|
|
12
15
|
position: absolute;
|
|
13
16
|
display: none;
|
|
@@ -5,18 +5,22 @@ import '../../00group-utility/dees-icon/dees-icon.js';
|
|
|
5
5
|
export const renderChartArea = (component: DeesChartArea): TemplateResult => {
|
|
6
6
|
return html`
|
|
7
7
|
<dees-tile>
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
${component.compact
|
|
9
|
+
? html`<span slot="header" hidden></span>`
|
|
10
|
+
: html`
|
|
11
|
+
<div slot="header" class="chartHeader">
|
|
12
|
+
<h2 class="chartLabel">${component.label}</h2>
|
|
13
|
+
<button type="button" aria-label=${component.isFullPage ? 'Exit full page' : 'Expand chart'} class="expandBtn" @click=${() => component.toggleFullPage()} title="${component.isFullPage ? 'Exit full page' : 'Full page'}">
|
|
14
|
+
<dees-icon .icon=${component.isFullPage ? 'lucide:Minimize2' : 'lucide:Maximize2'} .iconSize=${14}></dees-icon>
|
|
15
|
+
</button>
|
|
16
|
+
</div>
|
|
17
|
+
`}
|
|
14
18
|
<div class="chartContainer">
|
|
15
19
|
<div class="rangeSelectionOverlay" aria-hidden="true"></div>
|
|
16
20
|
</div>
|
|
17
21
|
${!component.chartSeries.some(series => series.data.some(point => point.y !== null))
|
|
18
22
|
? html`<div class="chartState" role="status">No data for this period</div>` : ''}
|
|
19
|
-
${component.seriesStats.length > 0 && !component.hideLegend ? html`
|
|
23
|
+
${component.seriesStats.length > 0 && !component.hideLegend && !component.compact ? html`
|
|
20
24
|
<div slot="footer" class="statsBar">
|
|
21
25
|
${component.seriesStats.map(s => html`
|
|
22
26
|
<div class="statsSeries">
|