@medemagroup/bgc-viewer-components 0.3.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.
@@ -0,0 +1 @@
1
+ .simple-table[data-v-3dcf836d]{border-collapse:collapse;font-size:12px;width:100%}.simple-table th[data-v-3dcf836d]{background:#f8f9fa;border:1px solid #dee2e6;padding:6px 8px;text-align:left;font-weight:600;color:#495057;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.simple-table th[data-v-3dcf836d]:hover{background:#e9ecef}.simple-table th.sorted[data-v-3dcf836d]{background:#e2e6ea}.sort-indicator[data-v-3dcf836d]{margin-left:4px;font-size:10px;color:#495057}.simple-table td[data-v-3dcf836d]{padding:3px 8px;border:1px solid #dee2e6;vertical-align:top}.simple-table tr[data-v-3dcf836d]:nth-child(2n){background-color:#f8f9fa}.sortable-table[data-v-b8895c87]{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.sortable-table th[data-v-b8895c87]{background:#f8f9fa;border:1px solid #dee2e6;padding:6px 8px;text-align:left;font-weight:600;color:#495057;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.sortable-table th[data-v-b8895c87]:hover{background:#e9ecef}.sortable-table th.sorted[data-v-b8895c87]{background:#e2e6ea}.sort-indicator[data-v-b8895c87]{margin-left:4px;font-size:10px;color:#495057}.sortable-table td[data-v-b8895c87]{border:1px solid #dee2e6;padding:6px 8px;vertical-align:top}.sortable-table tbody tr[data-v-b8895c87]:nth-child(2n){background-color:#f8f9fa}.feature-details[data-v-76c471aa]{border:1px solid #ddd;border-radius:6px;background:#fff;overflow:hidden;box-shadow:0 1px 4px #0000001a;display:flex;flex-direction:column}.feature-content[data-v-76c471aa]{padding:12px}.feature-header[data-v-76c471aa]{margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid #dee2e6}.feature-header h3[data-v-76c471aa]{margin:0;font-size:16px;font-weight:600;color:#212529}.info-section[data-v-76c471aa]{margin-bottom:12px}.info-section[data-v-76c471aa]:last-child{margin-bottom:0}.info-section h4[data-v-76c471aa]{margin:0 0 6px;color:#495057;font-size:14px;font-weight:600;border-bottom:1px solid #e9ecef;padding-bottom:3px}.info-row[data-v-76c471aa]{display:flex;padding:1px 0;gap:8px}.info-label[data-v-76c471aa]{font-weight:600;color:#495057;min-width:180px;flex-shrink:0}.info-value[data-v-76c471aa]{color:#212529;flex:1;word-break:break-word}.go-term[data-v-76c471aa]{padding:2px 0;color:#495057;font-size:14px}.go-term-list[data-v-76c471aa]{margin:4px 0 0;padding-left:20px;list-style:disc}.go-term-list li[data-v-76c471aa]{margin:2px 0;font-size:13px;line-height:1.4}.sequences[data-v-76c471aa]{border-top:1px solid #e9ecef;padding-top:12px;margin-top:12px}.sequence-block[data-v-76c471aa]{margin:10px 0}.sequence-header[data-v-76c471aa]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.sequence-label[data-v-76c471aa]{font-weight:600;color:#495057}.copy-button[data-v-76c471aa]{padding:4px 12px;font-size:12px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.copy-button[data-v-76c471aa]:hover{background:#0056b3}.copy-button-inline[data-v-76c471aa]{margin-left:8px}.sequence-text[data-v-76c471aa]{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:8px;font-family:Courier New,monospace;font-size:11px;line-height:1.4;color:#212529;overflow-x:auto;max-height:150px;overflow-y:auto;white-space:pre}.no-selection[data-v-76c471aa]{padding:40px 20px;text-align:center;color:#666;font-style:italic}.feature-content[data-v-76c471aa]::-webkit-scrollbar,.sequence-text[data-v-76c471aa]::-webkit-scrollbar{width:8px;height:8px}.feature-content[data-v-76c471aa]::-webkit-scrollbar-track,.sequence-text[data-v-76c471aa]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.feature-content[data-v-76c471aa]::-webkit-scrollbar-thumb,.sequence-text[data-v-76c471aa]::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.feature-content[data-v-76c471aa]::-webkit-scrollbar-thumb:hover,.sequence-text[data-v-76c471aa]::-webkit-scrollbar-thumb:hover{background:#555}.expandable-list[data-v-76c471aa]{display:inline}.expandable-list summary[data-v-76c471aa]{cursor:pointer;color:#212529}.expandable-list summary[data-v-76c471aa]:hover{color:#495057}.expandable-list[open] summary[data-v-76c471aa]{color:#212529}.expandable-list[open] summary[data-v-76c471aa]:hover{color:#495057}.expanded-content[data-v-76c471aa]{display:block;margin-left:0}.qualifier-list[data-v-76c471aa]{margin:4px 0 0;padding-left:20px;list-style:disc}.qualifier-list li[data-v-76c471aa]{margin:2px 0;font-size:13px;line-height:1.4}.qualifier-table[data-v-76c471aa]{margin:4px 0 0;border-collapse:collapse;font-size:12px;width:100%}.qualifier-table td[data-v-76c471aa]{padding:3px 8px;border:1px solid #dee2e6;vertical-align:top}.qualifier-table tr[data-v-76c471aa]:nth-child(2n){background-color:#f8f9fa}.qualifier-table td.col-domain[data-v-76c471aa],.qualifier-table td.col-name[data-v-76c471aa],.qualifier-table td.col-key[data-v-76c471aa]{font-weight:600;color:#495057}.qualifier-table td.col-e_value[data-v-76c471aa],.qualifier-table td.col-evalue[data-v-76c471aa],.qualifier-table td.col-score[data-v-76c471aa],.qualifier-table td.col-bitscore[data-v-76c471aa]{font-family:Courier New,monospace;text-align:right}.loading-text[data-v-76c471aa]{color:#666;font-style:italic;margin:4px 0}.error-text[data-v-76c471aa]{color:#dc3545;margin:4px 0}[data-v-76c471aa] .sortable-table td.pfam-id,[data-v-76c471aa] .sortable-table td.mibig-protein{font-weight:600;color:#495057}[data-v-76c471aa] .sortable-table td.mibig-protein{font-family:Courier New,monospace}[data-v-76c471aa] .sortable-table td.pfam-description,[data-v-76c471aa] .sortable-table td.mibig-description{color:#666}[data-v-76c471aa] .sortable-table td.mibig-description{max-width:200px}[data-v-76c471aa] .sortable-table td.pfam-location{font-family:Courier New,monospace;color:#495057}[data-v-76c471aa] .sortable-table td.mibig-cluster a{color:#007bff;text-decoration:none;font-family:Courier New,monospace}[data-v-76c471aa] .sortable-table td.mibig-cluster a:hover{text-decoration:underline}[data-v-76c471aa] .sortable-table td.mibig-product{color:#495057;font-size:11px}[data-v-76c471aa] .sortable-table td.pfam-score,[data-v-76c471aa] .sortable-table td.pfam-evalue,[data-v-76c471aa] .sortable-table td.mibig-percent,[data-v-76c471aa] .sortable-table td.mibig-score,[data-v-76c471aa] .sortable-table td.mibig-evalue{font-family:Courier New,monospace;text-align:right;white-space:nowrap}.simple-details[data-v-6d8f9976]{border:1px solid #ddd;border-radius:6px;background:#fff;overflow:hidden;box-shadow:0 1px 4px #0000001a;display:flex;flex-direction:column}.details-header[data-v-6d8f9976]{padding:10px 12px;background:#f8f9fa;border-bottom:1px solid #ddd}.details-header h3[data-v-6d8f9976]{margin:0;font-size:16px;font-weight:600;color:#212529}.details-content[data-v-6d8f9976]{padding:12px}.info-section[data-v-6d8f9976]{margin-bottom:12px}.info-section[data-v-6d8f9976]:last-child{margin-bottom:0}.info-row[data-v-6d8f9976]{display:flex;gap:8px;padding:1px 0}.info-label[data-v-6d8f9976]{font-weight:600;color:#495057;min-width:140px;flex-shrink:0}.info-value[data-v-6d8f9976]{color:#212529;flex:1;word-break:break-word}.no-selection[data-v-6d8f9976]{padding:40px 20px;text-align:center;color:#666;font-style:italic}.details-content[data-v-6d8f9976]::-webkit-scrollbar{width:8px}.details-content[data-v-6d8f9976]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.details-content[data-v-6d8f9976]::-webkit-scrollbar-thumb{background:#888;border-radius:4px}.details-content[data-v-6d8f9976]::-webkit-scrollbar-thumb:hover{background:#555}.candidate-chemical-hybrid path{fill:#282268}.candidate-chemical-hybrid rect{fill:#282268}.candidate-chemical-hybrid text{fill:#d3d3d3!important}.candidate-interleaved path{fill:#4b4596}.candidate-interleaved rect{fill:#4b4596}.candidate-interleaved text{fill:#d3d3d3!important}.candidate-neighbouring path{fill:#8680cc}.candidate-neighbouring rect{fill:#8680cc}.candidate-neighbouring text{fill:#ddd!important}.candidate-single path{fill:#c6c1f5}.candidate-single rect{fill:#c6c1f5}.candidate-single text{fill:#000!important}.PKS rect{fill:#f4a460;stroke:purple}.RiPP rect{fill:#4169e1;stroke:#fff}.other rect{fill:#191970;stroke:#b0c4de}.arylpolyene rect{fill:peru;stroke:#fff}.melanin rect{fill:peru;stroke:#fff}.resorcinol rect{fill:purple;stroke:#fff}.ladderane rect{fill:purple;stroke:#fff}.PUFA rect{fill:purple;stroke:#fff}.terpene rect{fill:purple;stroke:#fff}.furan rect{fill:purple;stroke:#fff}.PBDE rect{fill:purple;stroke:#fff}.betalactone rect{fill:purple;stroke:#fff}.pyrrolidine rect{fill:purple;stroke:#fff}.NRPS rect{fill:#2e8b57;stroke:#fff}.lanthipeptide-class-i rect{fill:#ff7;stroke:#00f}.lanthipeptide-class-ii rect{fill:#ff7;stroke:#00f}.lanthipeptide-class-iii rect{fill:#ff7;stroke:#00f}.lanthipeptide-class-iv rect{fill:#ff7;stroke:#00f}.lanthipeptide-class-v rect{fill:#ff7;stroke:#00f}.lipolanthine rect{fill:#ff7;stroke:#00f}.azole-containing-RiPP rect{fill:gold;stroke:#000}.thioamitides rect{fill:gold;stroke:#000}.blactam rect{fill:#f0f8ff;stroke:#000}.amglyccycl rect{fill:#9acd32;stroke:#000}.aminocoumarin rect{fill:#9acd32;stroke:#000}.NI-siderophore rect{fill:#dc143c;stroke:#fff}.NRP-metallophore rect{fill:#dc143c;stroke:#fff}.methanobactin rect{fill:#dc143c;stroke:#fff}.opine-like-metallophore rect{fill:#dc143c;stroke:#fff}.aminopolycarboxylic-acid rect{fill:#dc143c;stroke:#fff}.hydroxytropolone rect{fill:#dc143c;stroke:#fff}.ectoine rect{fill:#9acd32;stroke:#b22222}.NAGGN rect{fill:#9acd32;stroke:#b22222}.butyrolactone rect{fill:#9370db;stroke:#fff}.indole rect{fill:#ffdab9;stroke:#000}.deazapurine rect{fill:#faebd7;stroke:#000}.phosphoglycolipid rect{fill:#9acd32;stroke:#000}.oligosaccharide rect{fill:#deb887;stroke:#000}.hserlactone rect{fill:tan;stroke:#000}.acyl_amino_acids rect{fill:tan;stroke:#000}.tropodithietic-acid rect{fill:tan;stroke:#000}.phenazine rect{fill:plum;stroke:#000}.phosphonate rect{fill:#66cdaa;stroke:#000}.unknown rect{fill:#f2f2f2;stroke:#000}.saccharide rect{fill:#f2f2f2;stroke:#000}.fatty_acid rect{fill:#f2f2f2;stroke:#000}.halogenated rect{fill:#f2f2f2;stroke:#000}.hybrid rect{fill:#b0c4de;stroke:#191970}.gene-type-biosynthetic path{fill:#810e15}.gene-type-biosynthetic-additional path{fill:#f16d75}.gene-type-regulatory path{fill:#2e8b57}.gene-type-transport path{fill:#6495ed}.gene-type-other path{fill:gray}.region-viewer-wrapper[data-v-8fefd372]{display:flex;flex-direction:column;min-height:100%;overflow-y:auto}.current-record-info[data-v-8fefd372]{margin:0 0 10px;padding:10px;background:#fff;border-radius:6px;border:1px solid #e0e0e0}.file-metadata[data-v-8fefd372]{margin-top:4px;font-size:12px;color:#666}.controls[data-v-8fefd372]{margin-bottom:12px;background:#fff;padding:10px;border-radius:6px;border:1px solid #e0e0e0}.region-select[data-v-8fefd372]{margin:0 8px 0 0;padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px;min-width:200px}.no-regions-message[data-v-8fefd372]{display:inline-block;padding:6px 10px;background-color:#e8f4fd;border:1px solid #bee5eb;border-radius:4px;color:#0c5460;font-size:13px;margin-right:8px;font-style:italic}.feature-controls[data-v-8fefd372]{display:inline-flex;gap:10px;margin-left:8px}.multi-select-container[data-v-8fefd372]{position:relative;display:inline-block}.multi-select-container label[data-v-8fefd372]{display:block;margin-bottom:5px;font-size:14px;font-weight:500}.multi-select-dropdown[data-v-8fefd372]{position:relative;min-width:200px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer}.multi-select-dropdown.open[data-v-8fefd372]{border-color:#1976d2}.selected-display[data-v-8fefd372]{padding:6px 10px;display:flex;justify-content:space-between;align-items:center;font-size:13px}.dropdown-arrow[data-v-8fefd372]{transition:transform .2s ease;color:#666}.multi-select-dropdown.open .dropdown-arrow[data-v-8fefd372]{transform:rotate(180deg)}.dropdown-options[data-v-8fefd372]{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 4px #0000001a}.select-all-option[data-v-8fefd372]{padding:8px 12px;border-bottom:1px solid #eee;background-color:#f8f9fa}.select-all-option label[data-v-8fefd372]{display:flex;align-items:center;gap:8px;font-weight:600;margin:0}.option-separator[data-v-8fefd372]{height:1px;background-color:#e0e0e0}.dropdown-option[data-v-8fefd372]{padding:6px 12px}.dropdown-option[data-v-8fefd372]:hover{background-color:#f5f5f5}.dropdown-option label[data-v-8fefd372]{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;margin:0}.dropdown-option input[type=checkbox][data-v-8fefd372]{margin:0}.viewer-container[data-v-8fefd372]{width:100%;border:1px solid #e0e0e0;border-radius:6px;background:#fff;margin-bottom:8px;padding-bottom:8px;flex-shrink:0}.loading[data-v-8fefd372]{text-align:center;padding:40px;font-style:italic;color:#666}.error[data-v-8fefd372]{color:#d32f2f;background:#ffebee;padding:8px;border-radius:4px;margin:8px 0;font-size:13px}.feature-details-container[data-v-8fefd372]{margin-top:15px;flex-shrink:0;display:flex;flex-direction:column}.feature-resistance{fill:#bbb}.feature-tta-codon{fill:#444}.feature-pfam{fill:#2196f3;stroke:#1976d2}.feature-region{fill:#ff9800;stroke:#f57c00}.feature-default{fill:#757575;stroke:#424242}.track-viewer-tooltip,.track-label{font-size:14px;font-family:sans-serif}.annotation-label{font-size:13px;font-family:sans-serif;stroke:#fff;stroke-width:.5px;paint-order:stroke fill;pointer-events:none}.axis-label,.x-axis{font-size:14px;font-family:sans-serif}.loading-spinner[data-v-04186386]{width:16px;height:16px;border:3px solid;border-radius:50%;animation:spin-04186386 1s linear infinite;display:inline-block;vertical-align:middle}@keyframes spin-04186386{to{transform:rotate(360deg)}}.region-viewer-container[data-v-def37caf]{width:100%;height:100%;display:flex;flex-direction:column}.loading-container[data-v-def37caf]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:20px;background:#fff;border-radius:8px;padding:40px}.loading-text[data-v-def37caf]{color:#666;font-size:16px;font-weight:500}
package/package.json ADDED
@@ -0,0 +1,75 @@
1
+ {
2
+ "name": "@medemagroup/bgc-viewer-components",
3
+ "version": "0.3.0",
4
+ "description": "Reusable web components for visualizing biosynthetic gene clusters",
5
+ "main": "./dist/web-components/bgc-viewer-components.umd.js",
6
+ "module": "./dist/web-components/bgc-viewer-components.es.js",
7
+ "types": "./dist/web-components/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/web-components/bgc-viewer-components.es.js",
11
+ "require": "./dist/web-components/bgc-viewer-components.umd.js",
12
+ "types": "./dist/web-components/index.d.ts"
13
+ },
14
+ "./style.css": "./dist/web-components/style.css"
15
+ },
16
+ "files": [
17
+ "dist/web-components/**/*",
18
+ "README.md",
19
+ "LICENSE"
20
+ ],
21
+ "keywords": [
22
+ "bioinformatics",
23
+ "genomics",
24
+ "biosynthetic-gene-clusters",
25
+ "antismash",
26
+ "web-components",
27
+ "vue",
28
+ "visualization"
29
+ ],
30
+ "author": "Medema Group (see CITATION.cff for full citation)",
31
+ "license": "Apache-2.0",
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "git+https://github.com/medema-group/bgc-viewer.git",
35
+ "directory": "frontend"
36
+ },
37
+ "bugs": {
38
+ "url": "https://github.com/medema-group/bgc-viewer/issues"
39
+ },
40
+ "homepage": "https://github.com/medema-group/bgc-viewer#readme",
41
+ "scripts": {
42
+ "dev": "vite",
43
+ "build": "vite build",
44
+ "build:web-components": "vite build --config vite.config.webcomponents.js",
45
+ "build:all": "npm run build && npm run build:web-components",
46
+ "preview": "vite preview",
47
+ "build-python": "npm run build && python -m build",
48
+ "test": "vitest",
49
+ "test:ui": "vitest --ui",
50
+ "test:run": "vitest run",
51
+ "test:coverage": "vitest run --coverage",
52
+ "prepublishOnly": "npm run build:web-components && npm test -- --run"
53
+ },
54
+ "peerDependencies": {
55
+ "d3": "^7.0.0"
56
+ },
57
+ "devDependencies": {
58
+ "@types/d3": "^7.4.3",
59
+ "@types/node": "^24.10.1",
60
+ "@vitejs/plugin-vue": "^4.0.0",
61
+ "@vitest/coverage-v8": "^1.0.0",
62
+ "@vitest/ui": "^1.0.0",
63
+ "@vue/test-utils": "^2.4.0",
64
+ "d3": "^7.8.5",
65
+ "happy-dom": "^12.10.0",
66
+ "jsdom": "^23.0.0",
67
+ "typescript": "^5.9.3",
68
+ "vite": "^5.0.0",
69
+ "vitest": "^1.0.0"
70
+ },
71
+ "dependencies": {
72
+ "axios": "^1.6.0",
73
+ "vue": "^3.3.0"
74
+ }
75
+ }