gramene-search 1.7.20 → 1.7.22

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.
Binary file
Binary file
@@ -1,2 +1,2 @@
1
- 285609760
2
- 1776859947179819000
1
+ 286784860
2
+ 1776867797447609000
package/dist/index.css CHANGED
@@ -2558,11 +2558,43 @@ code.fasta {
2558
2558
  text-overflow: ellipsis;
2559
2559
  white-space: nowrap;
2560
2560
  border: 1px solid #e5e7ea;
2561
- max-width: 280px;
2561
+ max-width: 420px;
2562
2562
  padding: .2rem .5rem;
2563
2563
  overflow: hidden;
2564
2564
  }
2565
2565
 
2566
+ .exporter-preview-tsv th {
2567
+ position: relative;
2568
+ }
2569
+
2570
+ .exporter-preview-col-resizer {
2571
+ cursor: col-resize;
2572
+ user-select: none;
2573
+ z-index: 2;
2574
+ width: 6px;
2575
+ height: 100%;
2576
+ position: absolute;
2577
+ top: 0;
2578
+ right: -3px;
2579
+ }
2580
+
2581
+ .exporter-preview-col-resizer:after {
2582
+ content: "";
2583
+ background: none;
2584
+ width: 1px;
2585
+ transition: background .15s;
2586
+ position: absolute;
2587
+ top: 0;
2588
+ bottom: 0;
2589
+ left: 50%;
2590
+ transform: translateX(-50%);
2591
+ }
2592
+
2593
+ .exporter-preview-col-resizer:hover:after, .exporter-preview-col-resizer:active:after {
2594
+ background: #7a8aa0;
2595
+ width: 2px;
2596
+ }
2597
+
2566
2598
  .exporter-preview-tsv th {
2567
2599
  text-align: left;
2568
2600
  z-index: 1;
@@ -1 +1 @@
1
- {"mappings":"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","sources":["b17bddada667de42","src/components/styles.css","src/components/results/genes.css","node_modules/gramene-genetree-vis/src/styles/msa.less","node_modules/gramene-genetree-vis/src/styles/tree.less","node_modules/react-simple-tree-menu/src/sass/main.scss","src/components/results/details/tree-view.css","src/components/results/details/VEP.css","src/components/results/details/sequences.css","node_modules/gramene-search-vis/styles/main.less","src/components/results/expression.css","src/components/exporter/styles.css"],"sourcesContent":["@import \"5abb1db407612521\";\n@import \"1caf78728b2f5137\";\n@import \"2166a150e9f31214\";\n@import \"938d6be3f57789df\";\n@import \"aa165d1be5d1c755\";\n@import \"996096824b9f7d5a\";\n@import \"41a1dcf3bc8b5377\";\n@import \"c52016833805a9f9\";\n@import \"6f643ac0480217ea\";\n@import \"c6576577b854e1eb\";\n@import \"b02f188cedfc7aaa\";\n","/* ── Main search layout: sidebar + content ──────────────────────────────── */\n.search-views-layout {\n display: flex;\n align-items: flex-start;\n}\n\n.search-views-content {\n flex: 1 1 0;\n min-width: 0; /* prevent flex children from overflowing */\n}\n\n.gramene-sidebar,\n.sorghumbase-sidebar {\n flex: 0 0 250px;\n position: sticky;\n top: 0;\n max-height: 100vh;\n overflow-y: auto;\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 8px;\n}\n\n.gramene-sidebar {\n background-color: #557b74;\n}\n.sorghumbase-sidebar {\n background-color: #a03e34;\n}\n\n/* ── Mobile: stack sidebar above content ────────────────────────────────── */\n@media (max-width: 767px) {\n .search-views-layout {\n flex-direction: column;\n }\n .gramene-sidebar,\n .sorghumbase-sidebar {\n flex: 0 0 auto;\n position: static;\n width: 100%;\n max-height: none;\n overflow-y: visible;\n }\n .search-views-content {\n width: 100%;\n }\n}\n.gramene-auth-container,\n.sorghumbase-auth-container,\n.gramene-filter-container,\n.sorghumbase-filter-container {\n}\n.gramene-filter {\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n background-color: white;\n font-size: 0.875rem; /* ~14px — explicit instead of 'small' keyword */\n}\n.gramene-filter span:hover {\n font-weight:bolder;\n}\n.gramene-filter-AND {\n background-color: #ffcd82;\n}\n.gramene-filter-OR {\n background-color: #c5eeb9;\n}\n.gramene-filter-NOT {\n border-left-color: #ff5354;\n border-left-style: inset;\n border-left-width: 4px;\n padding-left: 4px;\n}\n.gramene-filter-operation {\n text-align: center;\n font-style: italic;\n}\n.gramene-filter-marked {\n font-weight: bolder;\n /*background-color: #feff96;*/\n}\n.gramene-filter-menu ul {\n border-top-style: solid;\n border-top-width: 2px;\n padding-left: 0;\n}\n.gramene-filter-menu li {\n display: block;\n cursor: pointer;\n padding: 8px 8px 8px 15px; /* vertical padding makes tap targets ~36px+ */\n}\n.gramene-filter-menu li:hover {\n background-color: #feff96;\n}\n\n.gramene-view-header {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-evenly;\n font-size: larger;\n font-weight: bold;\n background-color: #fff3a96e;\n border-top: solid;\n border-top-color: #557b74;\n color: #a03e34;\n}\n\n.gramene-view-container {\n}\n.gramene-view {\n padding-left: 0px;\n padding-right: 10px;\n margin-bottom: 0;\n background-color: white;\n}\n.gramene-view-span-on {\n padding-left: 5px;\n cursor: pointer;\n vertical-align: text-bottom;\n color: #a03e34;\n}\n.gramene-view-span-off {\n padding-left: 5px;\n cursor: pointer;\n vertical-align: text-bottom;\n color: darkgray;\n}\n.gramene-view li {\n display: block;\n cursor: pointer;\n padding-left: 5px;\n border-left-style: inset;\n border-left-width: 8px;\n margin-bottom: 2px;\n}\n\n.gramene-view-on {\n border-left-color: #40a0ff;\n font-weight: bold;\n}\n.gramene-view-off {\n border-left-color: #ff6d68;\n color: grey;\n}\n.gramene-view-disabled {\n color: darkgray;\n border-left-color: #efefef;\n cursor: default!important;\n}\n#gramene-suggestion button {\n border-radius: .6rem;\n line-height: 1;\n}\n#gramene-suggestion button:focus {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n/* ── Collapsible sidebar sections ─────────────────────────────────────── */\n.sidebar-section {\n margin-bottom: 4px;\n}\n\n.sidebar-section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n padding: 2px 4px 2px 6px;\n color: cornsilk;\n user-select: none;\n border-top: 3px solid;\n}\n\n/* Dark background + matching top border per site */\n.gramene-sidebar .sidebar-section-header {\n background-color: #557b74;\n border-top-color: #3d5b55;\n}\n.sorghumbase-sidebar .sidebar-section-header {\n background-color: #a03e34;\n border-top-color: #7a2f27;\n}\n\n.sidebar-section-header:hover {\n background: rgba(255,255,255,0.1);\n}\n.gramene-sidebar .sidebar-section-header:hover {\n background-color: #4a6d66;\n}\n.sorghumbase-sidebar .sidebar-section-header:hover {\n background-color: #8c352d;\n}\n\n.sidebar-section-actions {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: cornsilk;\n}\n\n.sidebar-section-toggle {\n font-size: 0.85rem;\n font-weight: bold;\n}\n.sidebar-section-toggle svg {\n stroke: currentColor;\n stroke-width: 2;\n}\n\n.sidebar-section-body {\n background-color: #fff3a9;\n padding: 4px;\n}\n\n/* ── Mobile: compact sidebar when stacked at top ─────────────────────── */\n@media (max-width: 767px) {\n /* Tighten sidebar padding */\n .gramene-sidebar,\n .sorghumbase-sidebar {\n padding: 4px 8px;\n }\n\n /* Views: display as a compact inline flow */\n .gramene-view {\n display: flex;\n flex-wrap: wrap;\n gap: 2px 8px;\n padding: 2px 4px;\n }\n .gramene-view li {\n display: inline-flex;\n align-items: center;\n padding-left: 4px;\n margin-bottom: 0;\n font-size: 0.8rem;\n border-left-width: 4px;\n }\n\n /* View header: smaller */\n .gramene-view-header {\n font-size: small;\n padding: 2px 0;\n }\n\n /* Filters: compact */\n .gramene-filter {\n font-size: 0.8rem;\n padding: 2px 4px;\n }\n .gramene-filter-menu li {\n padding: 4px 4px 4px 10px;\n }\n\n /* Suggestion buttons: reasonable tap area */\n #gramene-suggestion button {\n padding: 0.35rem 0.6rem;\n margin-bottom: 2px;\n font-size: 0.8rem;\n }\n\n /* Prevent iOS zoom-on-focus (requires >= 16px) without forcing extra height */\n #search-input {\n font-size: 1rem;\n }\n}\n\n/* ── Taxonomy modal tree ─────────────────────────────────────────────────── */\n.tax-tree { margin-top: 8px; font-size: 14px; }\n.tax-node { border-radius: 2px; }\n.tax-row { display: flex; align-items: center; gap: 4px; padding: 2px 4px; }\n.tax-chevron { cursor: pointer; width: 14px; display: inline-flex; align-items: center; }\n.tax-chevron-spacer { display: inline-block; width: 14px; }\n.tax-label { }\n.tax-label-internal { font-weight: 600; }\n.tax-sep { color: #888; font-weight: normal; }\n.tax-count { color: #555; font-size: 12px; margin-left: 4px; }\n.tax-self-leaf { margin-left: 8px; font-size: 12px; color: #444; display: inline-flex; align-items: center; gap: 2px; }\n\n.tax-ellipsis { cursor: help; color: #666; }\n.tax-ellipsis-full { display: none; }\n.tax-ellipsis:hover .tax-ellipsis-short { display: none; }\n.tax-ellipsis:hover .tax-ellipsis-full { display: inline; color: #333; }\n\n.tax-search { position: relative; margin: 8px 0; }\n.tax-search-input { width: 100%; padding: 4px 8px; font-size: 14px;\n border: 1px solid #bbb; border-radius: 3px; }\n.tax-search-results { position: absolute; left: 0; right: 0; top: 100%;\n max-height: 280px; overflow-y: auto; z-index: 10;\n background: white; border: 1px solid #bbb;\n border-top: none; border-radius: 0 0 3px 3px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n.tax-search-hit { padding: 4px 8px; cursor: pointer; font-size: 13px; }\n.tax-search-hit:hover,\n.tax-search-hit-active { background: #e3ecff; }\n.tax-search-name { font-weight: 600; }\n.tax-search-syn { color: #777; font-style: italic; }\n.tax-search-rank { color: #0366d6; font-size: 11px; text-transform: uppercase;\n margin-left: 4px; }\n.tax-search-count { color: #555; font-size: 12px; }\n.tax-search-empty { padding: 6px 8px; color: #777; font-style: italic; font-size: 13px; }\n\n.tax-node-highlight { outline: 2px solid #ffc107;\n animation: taxFlash 1.6s ease-out; }\n@keyframes taxFlash {\n 0% { background-color: #fff3cd; }\n 100% { background-color: transparent; }\n}\n\n\n",".visible-detail {\n border: 1px solid #557B74;\n padding: 6px 12px;\n}\n.detail {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.table {\n width: 100%;\n max-width: 100%;\n}\n.xrefs {\n border-collapse: collapse;\n border-spacing: 0;\n border-color: grey;\n table-layout: auto;\n width: 100%;\n}\n/* Col 1 (PubMed link) and col 2 (Curation source): shrink to content */\ntable.xrefs th:nth-child(1),\ntable.xrefs td:nth-child(1),\ntable.xrefs th:nth-child(2),\ntable.xrefs td:nth-child(2) {\n width: 1%;\n white-space: nowrap;\n}\n/* Col 3 (Title/Description): fill remaining space */\ntable.xrefs th:nth-child(3),\ntable.xrefs td:nth-child(3) {\n width: 100%;\n}\n/* Legacy column-width classes — kept for other tables that use them */\n.xref-name-col { white-space: nowrap; }\n.xref-value-col { }\n.xref-80-col { }\n.xref-70-col { }\n.xref-10-col { white-space: nowrap; }\n.xref-id-list {\n padding-left: 0;\n list-style: none;\n}\n.result-gene {\n padding: 0.2em;\n border: 5px solid white;\n}\n.result-gene:hover {\n border-color: antiquewhite;\n}\n.gene-title {\n /*padding-top:0.5em;*/\n}\n.gene-id {\n /*white-space: nowrap;*/\n color: black;\n}\n.gene-name {\n color: #557B74;\n margin-bottom: 0;\n}\n.gene-description {\n margin-bottom: 0;\n}\n.gene-species {\n white-space: nowrap;\n font-style: italic;\n font-size:small;\n font-weight: bold;\n}\n.gene-synonyms {\n font-size: small;\n}\n.gene-extras {\n border: dashed 1px blue;\n}\n.gene-panlink {\n float: right;\n margin-left: 0.5rem;\n margin-bottom: 0.25rem;\n}\n.gene-panlink img {\n height: 60px;\n width: auto;\n max-width: 100%;\n vertical-align: top;\n}\n.suggestion-panlink img {\n height: 60px;\n width: auto;\n max-width: 100%;\n}\n@media (max-width: 1200px) {\n .gene-panlink img,\n .suggestion-panlink img {\n height: 30px;\n }\n}\n@media (max-width: 767px) {\n /* Allow the ortholog/TAIR box to stack below the gene title on mobile.\n It stays inside .result-gene-summary, so it still appears above .gene-detail-tabs. */\n .result-gene-summary {\n flex-wrap: wrap;\n }\n .result-gene-title-body {\n flex: 1 1 100%;\n }\n .model-ortholog,\n .closest-ortholog,\n .gene-summary-tair {\n flex: 1 1 100%;\n max-width: 100%;\n width: auto;\n margin-left: 0;\n margin-top: 8px;\n }\n /* Stack ortholog box contents vertically on narrow screens */\n .model-ortholog,\n .closest-ortholog {\n grid-template-columns: 1fr;\n }\n .model-ortholog h3.gene-id,\n .closest-ortholog h3.gene-id {\n grid-column: 1;\n grid-row: 2;\n }\n .model-ortholog .gene-species,\n .closest-ortholog .gene-species {\n grid-column: 1;\n grid-row: 3;\n text-align: left;\n }\n .model-ortholog .rep-identity,\n .closest-ortholog .rep-identity {\n grid-column: 1;\n grid-row: 4;\n text-align: left;\n }\n .model-ortholog p,\n .closest-ortholog p {\n grid-row: 5;\n }\n /* Show descriptions on mobile (no hover available) */\n .model-ortholog p,\n .closest-ortholog p {\n display: block;\n }\n /* PanLink: stop floating, display inline next to gene title */\n .gene-panlink {\n float: none;\n display: inline;\n margin-left: 0.25rem;\n margin-bottom: 0;\n vertical-align: middle;\n }\n /* Papers table only: hide \"Curation source\" column on small screens */\n table.xrefs-pubs th:nth-child(2),\n table.xrefs-pubs td:nth-child(2) {\n display: none;\n }\n}\n.gene-curation {\n flex-shrink: 0;\n margin-top: 20px;\n border: 1px solid grey;\n}\n.gene-curation span {\n width: 20px;\n display: inline-block;\n color: white;\n text-align: center;\n}\n.gene-curation .okay {\n background-color: #0c00f3;\n}\n.gene-curation .flagged {\n background-color: darkorange;\n}\n.gene-detail-tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n}\n/* Tab items: 4-per-row by default, overrides Bootstrap col-md-1 (8.33%) */\n.gene-detail-tabs > div {\n flex: 0 0 25%;\n width: 25%;\n max-width: 25%;\n box-sizing: border-box;\n padding: 6px 4px;\n min-height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n/* At wide viewports, all 8 fit comfortably in one row */\n@media (min-width: 992px) {\n .gene-detail-tabs > div {\n flex: 0 0 12.5%;\n width: 12.5%;\n max-width: 12.5%;\n }\n}\n.gene-detail-tab-closed {\n color: darkgreen;\n cursor: pointer;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-disabled {\n /*color: white;*/\n /*background-color: lightgray;*/\n color: lightgray;\n cursor: not-allowed;\n}\n.gene-detail-tab-empty {\n color: darkgreen;\n cursor: pointer;\n font-style: oblique;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-empty::before {\n content: \"Add \";\n}\n.gene-detail-tab-expanded {\n color: white;\n background-color: #557B74;\n cursor: pointer;\n}\n.result-gene-summary {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: flex-start;\n}\n.result-gene-summary .species-name {\n white-space: nowrap;\n font-style: italic;\n}\n.result-gene-title-body {\n flex: 1 1 auto;\n max-width: 1036px;\n width: 100%;\n}\n.model-ortholog, .closest-ortholog, .gene-summary-tair {\n cursor: pointer;\n flex: 0 0 auto;\n max-width: 380px;\n width: 380px;\n font-size: smaller;\n margin-top: 10px;\n padding: 0.25rem 0.5rem 0.5rem;\n margin-left: 1rem;\n border: 1px solid darkorange;\n}\n\n/* Ortholog boxes: grid — title row, then gene name left / species+identity right */\n.model-ortholog, .closest-ortholog {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 0 0.5rem;\n align-items: center;\n}\n\n/* Gene name: left column, smaller font to fit alongside species */\n.model-ortholog h3.gene-id,\n.closest-ortholog h3.gene-id {\n grid-column: 1;\n grid-row: 2;\n margin: 0;\n font-size: 1.5em;\n overflow-wrap: break-word;\n word-break: break-all;\n min-width: 0;\n}\n\n/* Species: right column, top of the pair */\n.model-ortholog .gene-species,\n.closest-ortholog .gene-species {\n grid-column: 2;\n grid-row: 2;\n text-align: right;\n align-self: end;\n}\n\n/* Identity: right column, below species (same row group as gene name) */\n.model-ortholog .rep-identity,\n.closest-ortholog .rep-identity {\n grid-column: 2;\n grid-row: 3;\n text-align: right;\n margin-left: 0;\n padding-right: 0;\n padding-top: 0;\n align-self: start;\n}\n\n/* Description: hidden by default; show on hover/focus */\n.model-ortholog p,\n.closest-ortholog p {\n grid-column: 1 / -1;\n grid-row: 4;\n display: none;\n margin: 0.25rem 0 0;\n}\n.model-ortholog:hover p,\n.model-ortholog:focus p,\n.closest-ortholog:hover p,\n.closest-ortholog:focus p {\n display: block;\n}\n\n.model-ortholog {\n border: 1px dotted darkorange;\n}\n.closest-ortholog {\n border: 1px dotted darkgreen;\n}\n\n.gene-summary-tair {\n border: 1px dotted darkblue;\n}\n.gene-summary-tair .rest {\n display: none;\n}\n\n.gene-summary-tair:hover .rest {\n display: inline;\n}\n.gene-summary-tair:focus .rest {\n display: inline;\n}\n.gene-summary-tair:hover .ellipsis {\n display: none;\n}\n.gene-summary-tair:focus .ellipsis {\n display: none;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.closest-ortholog::before,\n.model-ortholog::before,\n.gene-summary-tair::before {\n display: block;\n grid-column: 1 / -1;\n grid-row: 1;\n text-align: center;\n border: dotted 1px;\n padding: 0 0.5rem;\n margin: -0.25rem -0.5rem 0.25rem; /* bleed to box edges */\n background: #fff;\n}\n\n.model-ortholog::before {\n content: \"Model Species Homolog\";\n color: orange;\n}\n.closest-ortholog::before {\n content: \"Closest Annotated Homolog\";\n color: darkgreen;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.gene-summary-tair::before {\n content: \"TAIR Curated Description\";\n color: darkblue;\n}\n\n.rep-identity {\n margin-left: auto;\n padding-right: 10px;\n padding-top: 5px;\n font-style: italic;\n}\n.rep-identity::after {\n content: \"% identity\";\n}\n.eFP::before {\n content: url(\"../../static/images/BAR-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.eFP::after {\n content: 'New!';\n color: red;\n padding-left:2px;\n font-weight: bold;\n font-style: italic;\n font-size: x-small;\n line-height: normal;\n vertical-align: super;\n}\n.gxa::before {\n content: url(\"../../static/images/expression-atlas-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.gene-search-pic-sugg {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/suggestions.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-results {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/results.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-genetree {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/genetree.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n",".MSAlignments-wrapper {\n overflow-x: scroll;\n overflow-y: hidden;\n}\n.clustal {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.clustal .A,\n.clustal .I,\n.clustal .L,\n.clustal .M,\n.clustal .F,\n.clustal .W,\n.clustal .V {\n background-color: #80a0f0;\n}\n.clustal .R,\n.clustal .K {\n background-color: #f01505;\n color: #fcff89;\n}\n.clustal .N,\n.clustal .Q,\n.clustal .S,\n.clustal .T {\n background-color: #00ff00;\n}\n.clustal .D,\n.clustal .E {\n background-color: #c048c0;\n color: #fcff89;\n}\n.clustal .C {\n background-color: #f08080;\n}\n.clustal .G {\n background-color: #f09048;\n}\n.clustal .Y\n.clustal .H {\n background-color: #15a4a4;\n}\n.clustal .P {\n background-color: #ffff00;\n}\n.clustal .B,\n.clustal .X,\n.clustal .Z {\n background-color: #ffffff;\n}\n.clustal .gap {\n color: #ccc;\n}\n.zappo {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.zappo .A,\n.zappo .I,\n.zappo .L,\n.zappo .M,\n.zappo .V {\n background-color: #ffafaf;\n}\n.zappo .R,\n.zappo .H,\n.zappo .K {\n background-color: #6464ff;\n color: #fcff89;\n}\n.zappo .N,\n.zappo .Q,\n.zappo .S,\n.zappo .T {\n background-color: #00ff00;\n}\n.zappo .D,\n.zappo .E {\n background-color: #ff0000;\n}\n.zappo .C {\n background-color: #ffff00;\n}\n.zappo .G,\n.zappo .P {\n background-color: #ff00ff;\n color: #fcff89;\n}\n.zappo .F,\n.zappo .W,\n.zappo .Y {\n background-color: #ffc800;\n}\n.zappo .B,\n.zappo .X,\n.zappo .Z {\n background-color: #ffffff;\n}\n.zappo .gap {\n color: #ccc;\n}\n.taylor {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.taylor .A {\n background-color: #ccff00;\n}\n.taylor .R {\n background-color: #0000ff;\n color: #fcff89;\n}\n.taylor .N {\n background-color: #cc00ff;\n color: #fcff89;\n}\n.taylor .D {\n background-color: #ff0000;\n color: #fcff89;\n}\n.taylor .C {\n background-color: #ffff00;\n}\n.taylor .Q {\n background-color: #ff00cc;\n}\n.taylor .E {\n background-color: #ff0066;\n color: #fcff89;\n}\n.taylor .G {\n background-color: #ff9900;\n}\n.taylor .H {\n background-color: #0066ff;\n color: #fcff89;\n}\n.taylor .I {\n background-color: #66ff00;\n}\n.taylor .L {\n background-color: #33ff00;\n}\n.taylor .K {\n background-color: #6600ff;\n color: #fcff89;\n}\n.taylor .M {\n background-color: #00ff00;\n}\n.taylor .F {\n background-color: #00ff66;\n}\n.taylor .P {\n background-color: #ffcc00;\n}\n.taylor .S {\n background-color: #ff3300;\n color: #fcff89;\n}\n.taylor .T {\n background-color: #ff6600;\n}\n.taylor .W {\n background-color: #00ccff;\n}\n.taylor .Y {\n background-color: #00ffcc;\n}\n.taylor .V {\n background-color: #99ff00;\n}\n.taylor .B,\n.taylor .X,\n.taylor .Z {\n background-color: #ffffff;\n}\n.taylor .gap {\n color: #ccc;\n}\n.hydrophobicity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n color: #fcff89;\n}\n.hydrophobicity .A {\n background-color: #ad0052;\n}\n.hydrophobicity .R,\n.hydrophobicity .K {\n background-color: #0000ff;\n}\n.hydrophobicity .N,\n.hydrophobicity .D,\n.hydrophobicity .Q,\n.hydrophobicity .E,\n.hydrophobicity .B,\n.hydrophobicity .Z {\n background-color: #0c00f3;\n}\n.hydrophobicity .C {\n background-color: #c2003d;\n}\n.hydrophobicity .G {\n background-color: #6a0095;\n}\n.hydrophobicity .H {\n background-color: #1500ea;\n}\n.hydrophobicity .L {\n background-color: #ea0015;\n}\n.hydrophobicity .M {\n background-color: #b0004f;\n}\n.hydrophobicity .F {\n background-color: #cb0034;\n}\n.hydrophobicity .P {\n background-color: #4600b9;\n}\n.hydrophobicity .S {\n background-color: #5e00a1;\n}\n.hydrophobicity .T {\n background-color: #61009e;\n}\n.hydrophobicity .W {\n background-color: #5b00a4;\n}\n.hydrophobicity .Y {\n background-color: #4f00b0;\n}\n.hydrophobicity .V {\n background-color: #f60009;\n}\n.hydrophobicity .X {\n background-color: #680097;\n}\n.hydrophobicity .gap {\n color: #ccc;\n}\n.helix_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.helix_propensity .A {\n background-color: #e718e7;\n}\n.helix_propensity .R {\n background-color: #6f906f;\n}\n.helix_propensity .N {\n background-color: #1be41b;\n}\n.helix_propensity .D {\n background-color: #778877;\n}\n.helix_propensity .C {\n background-color: #23dc23;\n}\n.helix_propensity .Q {\n background-color: #926d92;\n}\n.helix_propensity .E {\n background-color: #ff00ff;\n}\n.helix_propensity .G {\n background-color: #00ff00;\n}\n.helix_propensity .H {\n background-color: #758a75;\n}\n.helix_propensity .I {\n background-color: #8a758a;\n}\n.helix_propensity .L {\n background-color: #ae51ae;\n}\n.helix_propensity .K {\n background-color: #a05fa0;\n}\n.helix_propensity .M {\n background-color: #ef10ef;\n}\n.helix_propensity .F {\n background-color: #986798;\n}\n.helix_propensity .P {\n background-color: #00ff00;\n}\n.helix_propensity .S {\n background-color: #36c936;\n}\n.helix_propensity .T {\n background-color: #47b847;\n}\n.helix_propensity .W {\n background-color: #8a758a;\n}\n.helix_propensity .Y {\n background-color: #21de21;\n}\n.helix_propensity .V {\n background-color: #857a85;\n}\n.helix_propensity .B {\n background-color: #49b649;\n}\n.helix_propensity .X {\n background-color: #758a75;\n}\n.helix_propensity .Z {\n background-color: #c936c9;\n}\n.helix_propensity .gap {\n color: #ccc;\n}\n.strand_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.strand_propensity .A {\n background-color: #5858a7;\n}\n.strand_propensity .R {\n background-color: #6b6b94;\n}\n.strand_propensity .N {\n background-color: #64649b;\n}\n.strand_propensity .D {\n background-color: #2121de;\n}\n.strand_propensity .C {\n background-color: #9d9d62;\n}\n.strand_propensity .Q {\n background-color: #8c8c73;\n}\n.strand_propensity .E {\n background-color: #0000ff;\n}\n.strand_propensity .G {\n background-color: #4949b6;\n}\n.strand_propensity .H {\n background-color: #60609f;\n}\n.strand_propensity .I {\n background-color: #ecec13;\n}\n.strand_propensity .L {\n background-color: #b2b24d;\n}\n.strand_propensity .K {\n background-color: #4747b8;\n}\n.strand_propensity .M {\n background-color: #82827d;\n}\n.strand_propensity .F {\n background-color: #c2c23d;\n}\n.strand_propensity .P {\n background-color: #2323dc;\n}\n.strand_propensity .S {\n background-color: #4949b6;\n}\n.strand_propensity .T {\n background-color: #9d9d62;\n}\n.strand_propensity .W {\n background-color: #c0c03f;\n}\n.strand_propensity .Y {\n background-color: #d3d32c;\n}\n.strand_propensity .V {\n background-color: #ffff00;\n}\n.strand_propensity .B {\n background-color: #4343bc;\n}\n.strand_propensity .X {\n background-color: #797986;\n}\n.strand_propensity .Z {\n background-color: #4747b8;\n}\n.strand_propensity .A,\n.strand_propensity .R,\n.strand_propensity .N,\n.strand_propensity .D,\n.strand_propensity .E,\n.strand_propensity .G,\n.strand_propensity .H,\n.strand_propensity .K,\n.strand_propensity .P,\n.strand_propensity .S,\n.strand_propensity .B,\n.strand_propensity .Z {\n color: #fcff89;\n}\n.strand_propensity .gap {\n color: #ccc;\n}\n.turn_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.turn_propensity .gap {\n color: #ccc;\n}\n.turn_propensity .A {\n background-color: #2cd3d3;\n}\n.turn_propensity .R {\n background-color: #708f8f;\n}\n.turn_propensity .N {\n background-color: #ff0000;\n}\n.turn_propensity .D {\n background-color: #e81717;\n}\n.turn_propensity .C {\n background-color: #a85757;\n}\n.turn_propensity .Q {\n background-color: #3fc0c0;\n}\n.turn_propensity .E {\n background-color: #778888;\n}\n.turn_propensity .G {\n background-color: #ff0000;\n}\n.turn_propensity .H {\n background-color: #708f8f;\n}\n.turn_propensity .I {\n background-color: #00ffff;\n}\n.turn_propensity .L {\n background-color: #1ce3e3;\n}\n.turn_propensity .K {\n background-color: #7e8181;\n}\n.turn_propensity .M {\n background-color: #1ee1e1;\n}\n.turn_propensity .F {\n background-color: #1ee1e1;\n}\n.turn_propensity .P {\n background-color: #f60909;\n}\n.turn_propensity .S {\n background-color: #e11e1e;\n}\n.turn_propensity .T {\n background-color: #738c8c;\n}\n.turn_propensity .W {\n background-color: #738c8c;\n}\n.turn_propensity .Y {\n background-color: #9d6262;\n}\n.turn_propensity .V {\n background-color: #07f8f8;\n}\n.turn_propensity .B {\n background-color: #f30c0c;\n}\n.turn_propensity .X {\n background-color: #7c8383;\n}\n.turn_propensity .Z {\n background-color: #5ba4a4;\n}\n.turn_propensity .N,\n.turn_propensity .D,\n.turn_propensity .G,\n.turn_propensity .P,\n.turn_propensity .S,\n.turn_propensity .B {\n color: #fcff89;\n}\n.buried_index {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.buried_index .gap {\n color: #ccc;\n}\n.buried_index .A {\n background-color: #00a35c;\n}\n.buried_index .R {\n background-color: #00fc03;\n}\n.buried_index .N {\n background-color: #00eb14;\n}\n.buried_index .D {\n background-color: #00eb14;\n}\n.buried_index .C {\n background-color: #0000ff;\n}\n.buried_index .Q {\n background-color: #00f10e;\n}\n.buried_index .E {\n background-color: #00f10e;\n}\n.buried_index .G {\n background-color: #009d62;\n}\n.buried_index .H {\n background-color: #00d52a;\n}\n.buried_index .I {\n background-color: #0054ab;\n}\n.buried_index .L {\n background-color: #007b84;\n}\n.buried_index .K {\n background-color: #00ff00;\n}\n.buried_index .M {\n background-color: #009768;\n}\n.buried_index .F {\n background-color: #008778;\n}\n.buried_index .P {\n background-color: #00e01f;\n}\n.buried_index .S {\n background-color: #00d52a;\n}\n.buried_index .T {\n background-color: #00db24;\n}\n.buried_index .W {\n background-color: #00a857;\n}\n.buried_index .Y {\n background-color: #00e619;\n}\n.buried_index .V {\n background-color: #005fa0;\n}\n.buried_index .B {\n background-color: #00eb14;\n}\n.buried_index .X {\n background-color: #00b649;\n}\n.buried_index .Z {\n background-color: #00f10e;\n}\n.buried_index .C,\n.buried_index .I,\n.buried_index .V {\n color: #fcff89;\n}\n","@transition_time: 20ms;\n\n/* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n@hover_scale_factor: 2;\n@hover_stroke_width: 2;\n@collapsed_node_stroke_width: 1;\n\n@default_node_fill: #fff;\n@default_node_stroke: #777;\n\n@ortholog_stroke_color: orange;\n@paralog_stroke_color: green;\n@representative_fill_color: @ortholog_stroke_color;\n@self_color: red;\n\n@speciation_color: #000080;\n@duplication_color: #cd0000;\n\n@font_size: 11px;\n@font_weight_highlight: bolder;\n\n@invisible: 0;\n@visible: 1;\n\n.display-mode {\n .btn-toolbar {\n position: absolute;\n padding-left: 10px\n }\n}\n.tooltip-inner {\n max-width : 400px;\n}\n.genetree-vis {\n .node, .edge {\n cursor: pointer;\n }\n\n .tree-wrapper {\n /* transitions for mouse hover, etc, interactions */\n * {\n transition: all @transition_time ease-in-out;\n }\n\n /* transitions for expanding/contracting clades */\n .clade {\n transition: transform @transition_time ease-in-out;\n\n .edge-rect {\n transition: scaleY @transition_time ease-in-out, scaleX @transition_time ease-in-out, transform @transition_time ease-in-out;\n }\n }\n }\n\n .interaction-helper {\n opacity: @invisible;\n }\n\n .node circle {\n stroke: @default_node_stroke;\n fill: @default_node_fill;\n }\n\n .speciation rect {\n fill: @speciation_color;\n }\n\n .duplication rect {\n fill: @duplication_color;\n }\n\n .node:hover, .edge:hover {\n .internal,\n .gene circle,\n ~ .clade .node rect,\n + .node rect {\n transform: scale(@hover_scale_factor);\n }\n\n ~ .clade .interaction-rect {\n opacity: @visible;\n fill-opacity: @visible;\n }\n\n ~ .clade circle,\n + .node circle,\n .collapsed path,\n ~ .clade .collapsed path,\n + .node .collapsed path {\n stroke-width: @hover_stroke_width;\n }\n\n ~ .clade text, text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .node {\n .gene.ortholog_one2one circle,\n .gene.ortholog_one2many circle,\n .gene.ortholog_many2many circle {\n stroke: @ortholog_stroke_color;\n }\n\n .gene.within_species_paralog circle {\n stroke: @paralog_stroke_color;\n }\n\n .gene.self {\n circle {\n stroke: @self_color;\n fill: @self_color;\n }\n text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .gene.representative circle {\n stroke: @ortholog_stroke_color;\n fill: @representative_fill_color;\n }\n\n text {\n font-size: @font_size;\n fill-opacity: @visible;\n text-anchor: start;\n }\n }\n\n .collapsed {\n path {\n stroke-width: @collapsed_node_stroke_width;\n }\n }\n\n .domains rect {\n cursor: pointer;\n stroke-opacity: 0\n }\n\n .domains rect:hover {\n cursor: pointer;\n stroke-opacity: 1.0\n }\n @transition_time: 20ms;\n\n /* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n @hover_scale_factor: 2;\n @hover_stroke_width: 2;\n @collapsed_node_stroke_width: 1;\n\n @default_node_fill: #fff;\n @default_node_stroke: #777;\n\n @ortholog_stroke_color: orange;\n @paralog_stroke_color: green;\n @representative_fill_color: @ortholog_stroke_color;\n @self_color: red;\n\n @speciation_color: #000080;\n @duplication_color: #cd0000;\n\n @font_size: 11px;\n @font_weight_highlight: bolder;\n\n @invisible: 0;\n @visible: 1;\n\n}\n\n.popover-title .tooltip-title-button {\n margin-top: -4px !important;\n margin-right: 4px !important;\n}\n\n.msa-slider {\n position: relative;\n padding-top: 10px;\n padding-bottom: 0px;\n margin-bottom: -10px;\n}\n\n.resize-drag {\n background: rgba(0, 0, 0, 0.0);\n border: 4px solid #7c8383;\n color: red;\n font-size: 1px;\n font-family: sans-serif;\n border-radius: 8px;\n\n /* This makes things *much* easier */\n box-sizing: border-box;\n}\n\n.resize-container {\n width: 100%;\n height: 100%;\n}\n",null,"/* ===== Pathways layout ===== */\n\n.pathways-layout {\n display: flex;\n align-items: stretch;\n}\n\n.pathways-tree-toggle {\n flex: 0 0 auto;\n width: 24px;\n border: 1px solid #ccc;\n border-right: none;\n background: #f5f5f5;\n cursor: pointer;\n font-size: 12px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #666;\n border-radius: 4px 0 0 4px;\n}\n.pathways-tree-toggle:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.pathways-tree-panel {\n flex: 0 0 250px;\n width: 250px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n border: 1px solid #ccc;\n border-right: none;\n}\n\n.pathways-diagram-panel {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.pathways-resize-handle {\n height: 6px;\n background: #e0e0e0;\n border: 1px solid #ccc;\n border-top: none;\n cursor: ns-resize;\n transition: background 0.15s;\n}\n.pathways-resize-handle:hover {\n background: #179ed3;\n}\n\n/* ===== Compact tree items (react-simple-tree-menu overrides) ===== */\n\n.pathways-tree-panel .rstm-tree-item-group {\n border-top: none;\n}\n\n.pathways-tree-panel .rstm-tree-item {\n padding: 0.2rem 0.4rem;\n font-size: 0.8rem;\n line-height: 1.3;\n border-bottom: 1px solid #eee;\n}\n/* Override inline padding-left set by react-simple-tree-menu.\n The library uses: 0.75 + iconSize*(hasNodes?0:1) + level*1.75 rem\n We shrink the per-level indent from 1.75rem to 0.75rem */\n.pathways-tree-panel .rstm-tree-item-level0 { padding-left: 0.4rem !important; }\n.pathways-tree-panel .rstm-tree-item-level0 > .rstm-toggle-icon { margin-left: 0; }\n.pathways-tree-panel .rstm-tree-item-level1 { padding-left: 1.15rem !important; }\n.pathways-tree-panel .rstm-tree-item-level2 { padding-left: 1.9rem !important; }\n.pathways-tree-panel .rstm-tree-item-level3 { padding-left: 2.65rem !important; }\n.pathways-tree-panel .rstm-tree-item-level4 { padding-left: 3.4rem !important; }\n.pathways-tree-panel .rstm-tree-item-level5 { padding-left: 4.15rem !important; }\n.pathways-tree-panel .rstm-tree-item-level6 { padding-left: 4.9rem !important; }\n.pathways-tree-panel .rstm-tree-item-level7 { padding-left: 5.65rem !important; }\n\n.pathways-tree-panel .rstm-tree-item--active {\n color: white;\n background: #179ed3;\n border-bottom-color: #127aa8;\n}\n\n.pathways-tree-panel .rstm-toggle-icon-symbol {\n width: 1rem;\n height: 1rem;\n line-height: 1rem;\n font-size: 0.7rem;\n}\n\n/* ===== Legacy tree-view classes ===== */\n\n.tree-view-root {}\n\n.tree-view-node {\n margin-left: 8px;\n}\n\n.tree-view-node-collapse-toggle.collapse-spacer {\n width: 12px;\n display: inline-block;\n}\n\n.tree-view-node-collapse-toggle {\n margin-right: 2px;\n width: 12px;\n}\n\n.tree-view-node-label {\n font-size: smaller;\n margin-left: 2px;\n padding: 1px;\n border: 1px solid #fff;\n}\n\n.tree-view-node-label.selected {\n border: 1px solid #003f81;\n border-radius: 3px;\n background-color: #808080;\n}\n\n.tree-view-node-checkbox {}\n.tree-view-node-children {}\n\n",".button-like-link {\n display: inline-block;\n padding: 0;\n background-color: #fff0;\n color: #007bff;\n text-decoration: underline;\n border: none;\n cursor: pointer;\n}\n","/* styles.css */\n.fasta-container {\n position: relative;\n padding: 2ch;\n background-color: #fcfffd;\n border-color: #557b74;\n border-style: dashed;\n line-height: 0.925em;\n /*margin: auto; !* Center the container *!*/\n}\n.styled-span {\n display: flex;\n align-items: center;\n text-align: center;\n}\n.vertical-line {\n flex-grow: 1;\n height: 20px;\n background-color: black;\n}\n.horizontal-line {\n width: 60px;\n min-width: 15px;\n height: 3px;\n background-color: black;\n margin: 0;\n}\ncode.fasta {\n white-space: pre-wrap;\n color: #595959;\n}\n.header {\n color: black;\n}\n.upstream {\n color: #80a0a0;\n}\n.downstream {\n color: #80a0a0;\n}\n.intron {\n color: #aaaaaa;\n}\n.utr5 {\n background-color: #aaccaf;\n}\n.utr5-other {\n background-color: #cfe1d2;\n}\n.cds {\n background-color: #a7b4d3;\n}\n.cds-other {\n background-color: #d0d8e6;\n}\n.utr3 {\n background-color: #c5a3bf;\n}\n.utr3-other {\n background-color: #dcc9d9;\n}\n.square-utr5 {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #aaccaf 0%, #aaccaf 50%, #cfe1d2 50%, #cfe1d2 100%);\n}\n.square-cds {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #a7b4d3 0%, #a7b4d3 50%, #d0d8e6 50%, #d0d8e6 100%);\n}\n.square-utr3 {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #c5a3bf 0%, #c5a3bf 50%, #dcc9d9 50%, #dcc9d9 100%);\n}\n\n.flanking-guide {\n display: grid;\n grid-template-columns: auto 60px auto 60px auto;\n align-items: center;\n row-gap: 2px;\n column-gap: 0;\n width: fit-content;\n}\n/* Row 1 */\n.flanking-label-left {\n text-align: right;\n padding-right: 0.5rem;\n}\n.flanking-center-label {\n text-align: center;\n white-space: nowrap;\n padding: 0 0.25rem;\n}\n.flanking-guide > .horizontal-line {\n height: 3px;\n background-color: black;\n align-self: center;\n}\n.flanking-label-right {\n text-align: left;\n padding-left: 0.5rem;\n}\n/* Row 2 */\n.flanking-value-left {\n text-align: right;\n min-width: 5ch;\n padding-right: 0.5rem;\n}\n.flanking-value-right {\n text-align: left;\n min-width: 5ch;\n padding-left: 0.5rem;\n}\n\n.reverse-slide {\n direction: rtl;\n}\n.fasta-key {\n position: absolute;\n top: 9px;\n right: 40px;\n background: none;\n border: none;\n cursor: default;\n font-family: monospace;\n font-size: 11pt;\n color: #555;\n}\n.copy-button {\n position: absolute;\n top: 3px;\n right: -5px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1.5rem;\n color: #555;\n}\n.notification {\n position: absolute;\n top: 0;\n right: 0;\n background-color: #050505;\n color: #fff;\n padding: 5px;\n z-index: 999;\n font-weight: bold;\n font-style: italic;\n font-size: smaller;\n}\n",".taxogenomic-vis {\n @import 'taxonomy';\n}",".accordion-button {\n padding:0.4rem!important;\n}\n.accordion-button:hover {\n background-color: #dbe8f3;\n}",".exporter-view {\n display: grid;\n grid-template-columns: 1fr 8px 1fr;\n gap: 0;\n padding: 0.75rem;\n min-height: 400px;\n}\n\n.exporter-view > .exporter-pane:first-child {\n margin-right: 0.5rem;\n}\n\n.exporter-view > .exporter-pane.exporter-right-pane {\n margin-left: 0.5rem;\n}\n\n.exporter-divider {\n cursor: col-resize;\n background: transparent;\n position: relative;\n align-self: stretch;\n}\n\n.exporter-divider::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n background: #d0d4da;\n border-radius: 1px;\n transition: background 0.15s;\n}\n\n.exporter-divider:hover::before,\n.exporter-divider.dragging::before {\n background: #7a8aa0;\n width: 3px;\n}\n\n.exporter-pane {\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n background: #fff;\n display: flex;\n flex-direction: column;\n max-height: 70vh;\n overflow: hidden;\n}\n\n.exporter-pane-header {\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n font-size: 0.9rem;\n}\n\n.exporter-pane-header-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.exporter-field-search-inline {\n margin-left: auto;\n margin-bottom: 0;\n max-width: 220px;\n height: 1.75rem;\n font-size: 0.85rem;\n padding: 0.15rem 0.5rem;\n}\n\n.exporter-pane-body {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n}\n\n.exporter-panel-empty {\n padding: 1rem;\n color: #888;\n text-align: center;\n font-size: 0.9rem;\n}\n\n/* --- FieldTree --- */\n\n.exporter-field-tree {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-field-search {\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.exporter-field-tree-body {\n flex: 1;\n overflow-y: auto;\n}\n\n.exporter-group {\n margin-bottom: 0.25rem;\n}\n\n.exporter-group-header {\n cursor: pointer;\n padding: 0.25rem 0.5rem;\n background: #eef1f4;\n border-radius: 3px;\n display: flex;\n align-items: center;\n gap: 0.4rem;\n user-select: none;\n font-size: 0.9rem;\n}\n\n.exporter-group-header:hover {\n background: #e3e7ec;\n}\n\n.exporter-group-chevron {\n display: inline-flex;\n align-items: center;\n color: #666;\n}\n\n.exporter-group-count {\n font-size: 0.75rem;\n color: #666;\n background: #fff;\n padding: 0 0.4rem;\n border-radius: 10px;\n border: 1px solid #ddd;\n}\n\n.exporter-group-actions {\n margin-left: auto;\n display: inline-flex;\n gap: 0.25rem;\n}\n\n.exporter-group-action {\n font-size: 0.7rem;\n padding: 0.05rem 0.4rem;\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 3px;\n color: #333;\n cursor: pointer;\n line-height: 1.4;\n}\n\n.exporter-group-action:hover:not(:disabled) {\n background: #f0f4f8;\n border-color: #88a;\n}\n\n.exporter-group-action:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.exporter-group-fields {\n list-style: none;\n margin: 0.25rem 0 0.5rem 1.25rem;\n padding: 0;\n}\n\n.exporter-group-fields li {\n padding: 0.1rem 0.25rem;\n font-size: 0.85rem;\n}\n\n.exporter-group-fields label {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 0.35rem;\n margin: 0;\n padding: 0.1rem 0.25rem;\n border-radius: 2px;\n width: 100%;\n}\n\n.exporter-group-fields label:hover {\n background: #f0f4f8;\n}\n\n.exporter-field-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-field-badge {\n font-size: 0.7rem;\n color: #888;\n font-family: monospace;\n}\n\n.exporter-group-truncated {\n color: #888;\n font-size: 0.8rem;\n padding-left: 0.5rem;\n}\n\n/* --- SelectedFields --- */\n\n.exporter-selected {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-selected-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.25rem 0;\n margin-bottom: 0.5rem;\n border-bottom: 1px solid #eee;\n}\n\n.exporter-selected-count {\n font-size: 0.75rem;\n color: #666;\n background: #eef1f4;\n padding: 0 0.5rem;\n border-radius: 10px;\n}\n\n.exporter-clear-btn {\n margin-left: auto;\n font-size: 0.8rem;\n padding: 0;\n}\n\n.exporter-selected-list {\n list-style: none;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n flex: 1;\n}\n\n.exporter-selected-list li {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n padding: 0.25rem 0.35rem;\n border-bottom: 1px solid #f0f0f0;\n font-size: 0.85rem;\n}\n\n.exporter-selected-index {\n font-family: monospace;\n color: #888;\n min-width: 1.75rem;\n}\n\n.exporter-selected-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-selected-group {\n color: #888;\n}\n\n.exporter-selected-actions {\n display: flex;\n gap: 0.15rem;\n}\n\n.exporter-selected-actions button {\n padding: 0.1rem 0.35rem;\n line-height: 1;\n}\n\n/* --- Right pane (selected + preview) --- */\n\n.exporter-right-pane {\n max-height: 70vh;\n}\n\n.exporter-right-split {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.exporter-selected-section {\n flex: 0 0 auto;\n max-height: 35%;\n overflow-y: auto;\n padding: 0.5rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.exporter-preview-section {\n flex: 1;\n overflow: hidden;\n padding: 0.5rem;\n display: flex;\n flex-direction: column;\n}\n\n/* --- Preview --- */\n\n.exporter-preview {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-preview-toolbar {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding-bottom: 0.35rem;\n margin-bottom: 0.35rem;\n border-bottom: 1px solid #eee;\n font-size: 0.85rem;\n}\n\n.exporter-preview-format label {\n margin-right: 0.5rem;\n cursor: pointer;\n}\n\n.exporter-preview-format input {\n margin-right: 0.25rem;\n}\n\n.exporter-preview-status {\n margin-left: auto;\n color: #888;\n}\n\n.exporter-cutoffs-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.1rem 0.5rem;\n font-size: 0.8rem;\n}\n\n.exporter-modal-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.35);\n z-index: 1050;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.exporter-modal {\n background: #fff;\n border-radius: 6px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n width: min(420px, 90vw);\n display: flex;\n flex-direction: column;\n}\n\n.exporter-modal-header {\n display: flex;\n align-items: center;\n padding: 0.6rem 0.9rem;\n border-bottom: 1px solid #eee;\n}\n\n.exporter-modal-close {\n margin-left: auto;\n background: transparent;\n border: 0;\n font-size: 1.25rem;\n line-height: 1;\n color: #666;\n cursor: pointer;\n padding: 0 0.25rem;\n}\n\n.exporter-modal-body {\n padding: 0.9rem;\n display: flex;\n flex-direction: column;\n gap: 0.85rem;\n}\n\n.exporter-modal-field label {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.exporter-modal-field input {\n font: inherit;\n padding: 0.25rem 0.5rem;\n border: 1px solid #c0c4ca;\n border-radius: 3px;\n}\n\n.exporter-modal-field small {\n color: #777;\n font-size: 0.75rem;\n margin-top: 0.15rem;\n}\n\n.exporter-modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 0.6rem 0.9rem;\n border-top: 1px solid #eee;\n}\n\n.exporter-preview-status.error {\n color: #c33;\n}\n\n.exporter-preview-body {\n flex: 1;\n overflow: auto;\n background: #fafbfc;\n border: 1px solid #eee;\n border-radius: 3px;\n}\n\n.exporter-preview-empty {\n padding: 1rem;\n color: #888;\n text-align: center;\n}\n\n.exporter-preview-tsv-scroll {\n overflow: auto;\n max-width: 100%;\n}\n\n.exporter-preview-tsv {\n border-collapse: collapse;\n font-size: 0.8rem;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n width: auto;\n}\n\n.exporter-preview-tsv th,\n.exporter-preview-tsv td {\n padding: 0.2rem 0.5rem;\n border: 1px solid #e5e7ea;\n max-width: 280px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-preview-tsv th {\n background: #f0f3f6;\n text-align: left;\n position: sticky;\n top: 0;\n z-index: 1;\n padding: 0.15rem 0.25rem;\n}\n\n.exporter-preview-th-inner {\n display: flex;\n align-items: center;\n gap: 0.15rem;\n min-width: 0;\n}\n\n.exporter-preview-th-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-preview-reorder-btn {\n flex: 0 0 auto;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 3px;\n padding: 0;\n line-height: 1;\n color: #555;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n}\n\n.exporter-preview-reorder-btn:hover:not(:disabled) {\n background: #fff;\n border-color: #bbb;\n color: #111;\n}\n\n.exporter-preview-reorder-btn:disabled {\n opacity: 0.25;\n cursor: default;\n}\n\n.exporter-preview-fields-count {\n color: #666;\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n}\n\n.exporter-preview-tsv tr:hover td {\n background: #f4f7fa;\n}\n\n.exporter-preview-empty-row {\n text-align: center;\n color: #888;\n padding: 1rem !important;\n}\n\n.exporter-preview-json {\n margin: 0;\n padding: 0.5rem;\n font-size: 0.75rem;\n line-height: 1.4;\n}\n\n/* --- Export footer --- */\n\n.exporter-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 0.5rem 0.75rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n flex: 0 0 auto;\n}\n\n.exporter-footer-summary {\n color: #555;\n}\n"],"names":[],"version":3,"file":"index.css.map"}
1
+ {"mappings":"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","sources":["b17bddada667de42","src/components/styles.css","src/components/results/genes.css","node_modules/gramene-genetree-vis/src/styles/msa.less","node_modules/gramene-genetree-vis/src/styles/tree.less","node_modules/react-simple-tree-menu/src/sass/main.scss","src/components/results/details/tree-view.css","src/components/results/details/VEP.css","src/components/results/details/sequences.css","node_modules/gramene-search-vis/styles/main.less","src/components/results/expression.css","src/components/exporter/styles.css"],"sourcesContent":["@import \"5abb1db407612521\";\n@import \"1caf78728b2f5137\";\n@import \"2166a150e9f31214\";\n@import \"938d6be3f57789df\";\n@import \"aa165d1be5d1c755\";\n@import \"996096824b9f7d5a\";\n@import \"41a1dcf3bc8b5377\";\n@import \"c52016833805a9f9\";\n@import \"6f643ac0480217ea\";\n@import \"c6576577b854e1eb\";\n@import \"b02f188cedfc7aaa\";\n","/* ── Main search layout: sidebar + content ──────────────────────────────── */\n.search-views-layout {\n display: flex;\n align-items: flex-start;\n}\n\n.search-views-content {\n flex: 1 1 0;\n min-width: 0; /* prevent flex children from overflowing */\n}\n\n.gramene-sidebar,\n.sorghumbase-sidebar {\n flex: 0 0 250px;\n position: sticky;\n top: 0;\n max-height: 100vh;\n overflow-y: auto;\n padding-left: 8px;\n padding-right: 8px;\n padding-bottom: 8px;\n}\n\n.gramene-sidebar {\n background-color: #557b74;\n}\n.sorghumbase-sidebar {\n background-color: #a03e34;\n}\n\n/* ── Mobile: stack sidebar above content ────────────────────────────────── */\n@media (max-width: 767px) {\n .search-views-layout {\n flex-direction: column;\n }\n .gramene-sidebar,\n .sorghumbase-sidebar {\n flex: 0 0 auto;\n position: static;\n width: 100%;\n max-height: none;\n overflow-y: visible;\n }\n .search-views-content {\n width: 100%;\n }\n}\n.gramene-auth-container,\n.sorghumbase-auth-container,\n.gramene-filter-container,\n.sorghumbase-filter-container {\n}\n.gramene-filter {\n padding-left: 4px;\n padding-right: 4px;\n padding-bottom: 4px;\n background-color: white;\n font-size: 0.875rem; /* ~14px — explicit instead of 'small' keyword */\n}\n.gramene-filter span:hover {\n font-weight:bolder;\n}\n.gramene-filter-AND {\n background-color: #ffcd82;\n}\n.gramene-filter-OR {\n background-color: #c5eeb9;\n}\n.gramene-filter-NOT {\n border-left-color: #ff5354;\n border-left-style: inset;\n border-left-width: 4px;\n padding-left: 4px;\n}\n.gramene-filter-operation {\n text-align: center;\n font-style: italic;\n}\n.gramene-filter-marked {\n font-weight: bolder;\n /*background-color: #feff96;*/\n}\n.gramene-filter-menu ul {\n border-top-style: solid;\n border-top-width: 2px;\n padding-left: 0;\n}\n.gramene-filter-menu li {\n display: block;\n cursor: pointer;\n padding: 8px 8px 8px 15px; /* vertical padding makes tap targets ~36px+ */\n}\n.gramene-filter-menu li:hover {\n background-color: #feff96;\n}\n\n.gramene-view-header {\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-evenly;\n font-size: larger;\n font-weight: bold;\n background-color: #fff3a96e;\n border-top: solid;\n border-top-color: #557b74;\n color: #a03e34;\n}\n\n.gramene-view-container {\n}\n.gramene-view {\n padding-left: 0px;\n padding-right: 10px;\n margin-bottom: 0;\n background-color: white;\n}\n.gramene-view-span-on {\n padding-left: 5px;\n cursor: pointer;\n vertical-align: text-bottom;\n color: #a03e34;\n}\n.gramene-view-span-off {\n padding-left: 5px;\n cursor: pointer;\n vertical-align: text-bottom;\n color: darkgray;\n}\n.gramene-view li {\n display: block;\n cursor: pointer;\n padding-left: 5px;\n border-left-style: inset;\n border-left-width: 8px;\n margin-bottom: 2px;\n}\n\n.gramene-view-on {\n border-left-color: #40a0ff;\n font-weight: bold;\n}\n.gramene-view-off {\n border-left-color: #ff6d68;\n color: grey;\n}\n.gramene-view-disabled {\n color: darkgray;\n border-left-color: #efefef;\n cursor: default!important;\n}\n#gramene-suggestion button {\n border-radius: .6rem;\n line-height: 1;\n}\n#gramene-suggestion button:focus {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n/* ── Collapsible sidebar sections ─────────────────────────────────────── */\n.sidebar-section {\n margin-bottom: 4px;\n}\n\n.sidebar-section-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n padding: 2px 4px 2px 6px;\n color: cornsilk;\n user-select: none;\n border-top: 3px solid;\n}\n\n/* Dark background + matching top border per site */\n.gramene-sidebar .sidebar-section-header {\n background-color: #557b74;\n border-top-color: #3d5b55;\n}\n.sorghumbase-sidebar .sidebar-section-header {\n background-color: #a03e34;\n border-top-color: #7a2f27;\n}\n\n.sidebar-section-header:hover {\n background: rgba(255,255,255,0.1);\n}\n.gramene-sidebar .sidebar-section-header:hover {\n background-color: #4a6d66;\n}\n.sorghumbase-sidebar .sidebar-section-header:hover {\n background-color: #8c352d;\n}\n\n.sidebar-section-actions {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n color: cornsilk;\n}\n\n.sidebar-section-toggle {\n font-size: 0.85rem;\n font-weight: bold;\n}\n.sidebar-section-toggle svg {\n stroke: currentColor;\n stroke-width: 2;\n}\n\n.sidebar-section-body {\n background-color: #fff3a9;\n padding: 4px;\n}\n\n/* ── Mobile: compact sidebar when stacked at top ─────────────────────── */\n@media (max-width: 767px) {\n /* Tighten sidebar padding */\n .gramene-sidebar,\n .sorghumbase-sidebar {\n padding: 4px 8px;\n }\n\n /* Views: display as a compact inline flow */\n .gramene-view {\n display: flex;\n flex-wrap: wrap;\n gap: 2px 8px;\n padding: 2px 4px;\n }\n .gramene-view li {\n display: inline-flex;\n align-items: center;\n padding-left: 4px;\n margin-bottom: 0;\n font-size: 0.8rem;\n border-left-width: 4px;\n }\n\n /* View header: smaller */\n .gramene-view-header {\n font-size: small;\n padding: 2px 0;\n }\n\n /* Filters: compact */\n .gramene-filter {\n font-size: 0.8rem;\n padding: 2px 4px;\n }\n .gramene-filter-menu li {\n padding: 4px 4px 4px 10px;\n }\n\n /* Suggestion buttons: reasonable tap area */\n #gramene-suggestion button {\n padding: 0.35rem 0.6rem;\n margin-bottom: 2px;\n font-size: 0.8rem;\n }\n\n /* Prevent iOS zoom-on-focus (requires >= 16px) without forcing extra height */\n #search-input {\n font-size: 1rem;\n }\n}\n\n/* ── Taxonomy modal tree ─────────────────────────────────────────────────── */\n.tax-tree { margin-top: 8px; font-size: 14px; }\n.tax-node { border-radius: 2px; }\n.tax-row { display: flex; align-items: center; gap: 4px; padding: 2px 4px; }\n.tax-chevron { cursor: pointer; width: 14px; display: inline-flex; align-items: center; }\n.tax-chevron-spacer { display: inline-block; width: 14px; }\n.tax-label { }\n.tax-label-internal { font-weight: 600; }\n.tax-sep { color: #888; font-weight: normal; }\n.tax-count { color: #555; font-size: 12px; margin-left: 4px; }\n.tax-self-leaf { margin-left: 8px; font-size: 12px; color: #444; display: inline-flex; align-items: center; gap: 2px; }\n\n.tax-ellipsis { cursor: help; color: #666; }\n.tax-ellipsis-full { display: none; }\n.tax-ellipsis:hover .tax-ellipsis-short { display: none; }\n.tax-ellipsis:hover .tax-ellipsis-full { display: inline; color: #333; }\n\n.tax-search { position: relative; margin: 8px 0; }\n.tax-search-input { width: 100%; padding: 4px 8px; font-size: 14px;\n border: 1px solid #bbb; border-radius: 3px; }\n.tax-search-results { position: absolute; left: 0; right: 0; top: 100%;\n max-height: 280px; overflow-y: auto; z-index: 10;\n background: white; border: 1px solid #bbb;\n border-top: none; border-radius: 0 0 3px 3px;\n box-shadow: 0 2px 8px rgba(0,0,0,0.1); }\n.tax-search-hit { padding: 4px 8px; cursor: pointer; font-size: 13px; }\n.tax-search-hit:hover,\n.tax-search-hit-active { background: #e3ecff; }\n.tax-search-name { font-weight: 600; }\n.tax-search-syn { color: #777; font-style: italic; }\n.tax-search-rank { color: #0366d6; font-size: 11px; text-transform: uppercase;\n margin-left: 4px; }\n.tax-search-count { color: #555; font-size: 12px; }\n.tax-search-empty { padding: 6px 8px; color: #777; font-style: italic; font-size: 13px; }\n\n.tax-node-highlight { outline: 2px solid #ffc107;\n animation: taxFlash 1.6s ease-out; }\n@keyframes taxFlash {\n 0% { background-color: #fff3cd; }\n 100% { background-color: transparent; }\n}\n\n\n",".visible-detail {\n border: 1px solid #557B74;\n padding: 6px 12px;\n}\n.detail {\n margin-right: auto;\n margin-left: auto;\n padding-left: 15px;\n padding-right: 15px;\n}\n.table {\n width: 100%;\n max-width: 100%;\n}\n.xrefs {\n border-collapse: collapse;\n border-spacing: 0;\n border-color: grey;\n table-layout: auto;\n width: 100%;\n}\n/* Col 1 (PubMed link) and col 2 (Curation source): shrink to content */\ntable.xrefs th:nth-child(1),\ntable.xrefs td:nth-child(1),\ntable.xrefs th:nth-child(2),\ntable.xrefs td:nth-child(2) {\n width: 1%;\n white-space: nowrap;\n}\n/* Col 3 (Title/Description): fill remaining space */\ntable.xrefs th:nth-child(3),\ntable.xrefs td:nth-child(3) {\n width: 100%;\n}\n/* Legacy column-width classes — kept for other tables that use them */\n.xref-name-col { white-space: nowrap; }\n.xref-value-col { }\n.xref-80-col { }\n.xref-70-col { }\n.xref-10-col { white-space: nowrap; }\n.xref-id-list {\n padding-left: 0;\n list-style: none;\n}\n.result-gene {\n padding: 0.2em;\n border: 5px solid white;\n}\n.result-gene:hover {\n border-color: antiquewhite;\n}\n.gene-title {\n /*padding-top:0.5em;*/\n}\n.gene-id {\n /*white-space: nowrap;*/\n color: black;\n}\n.gene-name {\n color: #557B74;\n margin-bottom: 0;\n}\n.gene-description {\n margin-bottom: 0;\n}\n.gene-species {\n white-space: nowrap;\n font-style: italic;\n font-size:small;\n font-weight: bold;\n}\n.gene-synonyms {\n font-size: small;\n}\n.gene-extras {\n border: dashed 1px blue;\n}\n.gene-panlink {\n float: right;\n margin-left: 0.5rem;\n margin-bottom: 0.25rem;\n}\n.gene-panlink img {\n height: 60px;\n width: auto;\n max-width: 100%;\n vertical-align: top;\n}\n.suggestion-panlink img {\n height: 60px;\n width: auto;\n max-width: 100%;\n}\n@media (max-width: 1200px) {\n .gene-panlink img,\n .suggestion-panlink img {\n height: 30px;\n }\n}\n@media (max-width: 767px) {\n /* Allow the ortholog/TAIR box to stack below the gene title on mobile.\n It stays inside .result-gene-summary, so it still appears above .gene-detail-tabs. */\n .result-gene-summary {\n flex-wrap: wrap;\n }\n .result-gene-title-body {\n flex: 1 1 100%;\n }\n .model-ortholog,\n .closest-ortholog,\n .gene-summary-tair {\n flex: 1 1 100%;\n max-width: 100%;\n width: auto;\n margin-left: 0;\n margin-top: 8px;\n }\n /* Stack ortholog box contents vertically on narrow screens */\n .model-ortholog,\n .closest-ortholog {\n grid-template-columns: 1fr;\n }\n .model-ortholog h3.gene-id,\n .closest-ortholog h3.gene-id {\n grid-column: 1;\n grid-row: 2;\n }\n .model-ortholog .gene-species,\n .closest-ortholog .gene-species {\n grid-column: 1;\n grid-row: 3;\n text-align: left;\n }\n .model-ortholog .rep-identity,\n .closest-ortholog .rep-identity {\n grid-column: 1;\n grid-row: 4;\n text-align: left;\n }\n .model-ortholog p,\n .closest-ortholog p {\n grid-row: 5;\n }\n /* Show descriptions on mobile (no hover available) */\n .model-ortholog p,\n .closest-ortholog p {\n display: block;\n }\n /* PanLink: stop floating, display inline next to gene title */\n .gene-panlink {\n float: none;\n display: inline;\n margin-left: 0.25rem;\n margin-bottom: 0;\n vertical-align: middle;\n }\n /* Papers table only: hide \"Curation source\" column on small screens */\n table.xrefs-pubs th:nth-child(2),\n table.xrefs-pubs td:nth-child(2) {\n display: none;\n }\n}\n.gene-curation {\n flex-shrink: 0;\n margin-top: 20px;\n border: 1px solid grey;\n}\n.gene-curation span {\n width: 20px;\n display: inline-block;\n color: white;\n text-align: center;\n}\n.gene-curation .okay {\n background-color: #0c00f3;\n}\n.gene-curation .flagged {\n background-color: darkorange;\n}\n.gene-detail-tabs {\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n}\n/* Tab items: 4-per-row by default, overrides Bootstrap col-md-1 (8.33%) */\n.gene-detail-tabs > div {\n flex: 0 0 25%;\n width: 25%;\n max-width: 25%;\n box-sizing: border-box;\n padding: 6px 4px;\n min-height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n/* At wide viewports, all 8 fit comfortably in one row */\n@media (min-width: 992px) {\n .gene-detail-tabs > div {\n flex: 0 0 12.5%;\n width: 12.5%;\n max-width: 12.5%;\n }\n}\n.gene-detail-tab-closed {\n color: darkgreen;\n cursor: pointer;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-disabled {\n /*color: white;*/\n /*background-color: lightgray;*/\n color: lightgray;\n cursor: not-allowed;\n}\n.gene-detail-tab-empty {\n color: darkgreen;\n cursor: pointer;\n font-style: oblique;\n /*background-color: lightgray;*/\n}\n.gene-detail-tab-empty::before {\n content: \"Add \";\n}\n.gene-detail-tab-expanded {\n color: white;\n background-color: #557B74;\n cursor: pointer;\n}\n.result-gene-summary {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n align-items: flex-start;\n}\n.result-gene-summary .species-name {\n white-space: nowrap;\n font-style: italic;\n}\n.result-gene-title-body {\n flex: 1 1 auto;\n max-width: 1036px;\n width: 100%;\n}\n.model-ortholog, .closest-ortholog, .gene-summary-tair {\n cursor: pointer;\n flex: 0 0 auto;\n max-width: 380px;\n width: 380px;\n font-size: smaller;\n margin-top: 10px;\n padding: 0.25rem 0.5rem 0.5rem;\n margin-left: 1rem;\n border: 1px solid darkorange;\n}\n\n/* Ortholog boxes: grid — title row, then gene name left / species+identity right */\n.model-ortholog, .closest-ortholog {\n display: grid;\n grid-template-columns: 1fr auto;\n gap: 0 0.5rem;\n align-items: center;\n}\n\n/* Gene name: left column, smaller font to fit alongside species */\n.model-ortholog h3.gene-id,\n.closest-ortholog h3.gene-id {\n grid-column: 1;\n grid-row: 2;\n margin: 0;\n font-size: 1.5em;\n overflow-wrap: break-word;\n word-break: break-all;\n min-width: 0;\n}\n\n/* Species: right column, top of the pair */\n.model-ortholog .gene-species,\n.closest-ortholog .gene-species {\n grid-column: 2;\n grid-row: 2;\n text-align: right;\n align-self: end;\n}\n\n/* Identity: right column, below species (same row group as gene name) */\n.model-ortholog .rep-identity,\n.closest-ortholog .rep-identity {\n grid-column: 2;\n grid-row: 3;\n text-align: right;\n margin-left: 0;\n padding-right: 0;\n padding-top: 0;\n align-self: start;\n}\n\n/* Description: hidden by default; show on hover/focus */\n.model-ortholog p,\n.closest-ortholog p {\n grid-column: 1 / -1;\n grid-row: 4;\n display: none;\n margin: 0.25rem 0 0;\n}\n.model-ortholog:hover p,\n.model-ortholog:focus p,\n.closest-ortholog:hover p,\n.closest-ortholog:focus p {\n display: block;\n}\n\n.model-ortholog {\n border: 1px dotted darkorange;\n}\n.closest-ortholog {\n border: 1px dotted darkgreen;\n}\n\n.gene-summary-tair {\n border: 1px dotted darkblue;\n}\n.gene-summary-tair .rest {\n display: none;\n}\n\n.gene-summary-tair:hover .rest {\n display: inline;\n}\n.gene-summary-tair:focus .rest {\n display: inline;\n}\n.gene-summary-tair:hover .ellipsis {\n display: none;\n}\n.gene-summary-tair:focus .ellipsis {\n display: none;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.closest-ortholog::before,\n.model-ortholog::before,\n.gene-summary-tair::before {\n display: block;\n grid-column: 1 / -1;\n grid-row: 1;\n text-align: center;\n border: dotted 1px;\n padding: 0 0.5rem;\n margin: -0.25rem -0.5rem 0.25rem; /* bleed to box edges */\n background: #fff;\n}\n\n.model-ortholog::before {\n content: \"Model Species Homolog\";\n color: orange;\n}\n.closest-ortholog::before {\n content: \"Closest Annotated Homolog\";\n color: darkgreen;\n}\n\n/* this is the \"title\" of the closest ortholog box */\n.gene-summary-tair::before {\n content: \"TAIR Curated Description\";\n color: darkblue;\n}\n\n.rep-identity {\n margin-left: auto;\n padding-right: 10px;\n padding-top: 5px;\n font-style: italic;\n}\n.rep-identity::after {\n content: \"% identity\";\n}\n.eFP::before {\n content: url(\"../../static/images/BAR-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.eFP::after {\n content: 'New!';\n color: red;\n padding-left:2px;\n font-weight: bold;\n font-style: italic;\n font-size: x-small;\n line-height: normal;\n vertical-align: super;\n}\n.gxa::before {\n content: url(\"../../static/images/expression-atlas-logo.png\");\n padding-right:5px;\n position: relative;\n top: 5px;\n}\n.gene-search-pic-sugg {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/suggestions.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-results {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/results.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n.gene-search-pic-genetree {\n width: 100%;\n height: 200px;\n background: url(\"../../static/images/genetree.png\");\n background-size: contain;\n background-repeat: no-repeat;\n}\n",".MSAlignments-wrapper {\n overflow-x: scroll;\n overflow-y: hidden;\n}\n.clustal {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.clustal .A,\n.clustal .I,\n.clustal .L,\n.clustal .M,\n.clustal .F,\n.clustal .W,\n.clustal .V {\n background-color: #80a0f0;\n}\n.clustal .R,\n.clustal .K {\n background-color: #f01505;\n color: #fcff89;\n}\n.clustal .N,\n.clustal .Q,\n.clustal .S,\n.clustal .T {\n background-color: #00ff00;\n}\n.clustal .D,\n.clustal .E {\n background-color: #c048c0;\n color: #fcff89;\n}\n.clustal .C {\n background-color: #f08080;\n}\n.clustal .G {\n background-color: #f09048;\n}\n.clustal .Y\n.clustal .H {\n background-color: #15a4a4;\n}\n.clustal .P {\n background-color: #ffff00;\n}\n.clustal .B,\n.clustal .X,\n.clustal .Z {\n background-color: #ffffff;\n}\n.clustal .gap {\n color: #ccc;\n}\n.zappo {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.zappo .A,\n.zappo .I,\n.zappo .L,\n.zappo .M,\n.zappo .V {\n background-color: #ffafaf;\n}\n.zappo .R,\n.zappo .H,\n.zappo .K {\n background-color: #6464ff;\n color: #fcff89;\n}\n.zappo .N,\n.zappo .Q,\n.zappo .S,\n.zappo .T {\n background-color: #00ff00;\n}\n.zappo .D,\n.zappo .E {\n background-color: #ff0000;\n}\n.zappo .C {\n background-color: #ffff00;\n}\n.zappo .G,\n.zappo .P {\n background-color: #ff00ff;\n color: #fcff89;\n}\n.zappo .F,\n.zappo .W,\n.zappo .Y {\n background-color: #ffc800;\n}\n.zappo .B,\n.zappo .X,\n.zappo .Z {\n background-color: #ffffff;\n}\n.zappo .gap {\n color: #ccc;\n}\n.taylor {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.taylor .A {\n background-color: #ccff00;\n}\n.taylor .R {\n background-color: #0000ff;\n color: #fcff89;\n}\n.taylor .N {\n background-color: #cc00ff;\n color: #fcff89;\n}\n.taylor .D {\n background-color: #ff0000;\n color: #fcff89;\n}\n.taylor .C {\n background-color: #ffff00;\n}\n.taylor .Q {\n background-color: #ff00cc;\n}\n.taylor .E {\n background-color: #ff0066;\n color: #fcff89;\n}\n.taylor .G {\n background-color: #ff9900;\n}\n.taylor .H {\n background-color: #0066ff;\n color: #fcff89;\n}\n.taylor .I {\n background-color: #66ff00;\n}\n.taylor .L {\n background-color: #33ff00;\n}\n.taylor .K {\n background-color: #6600ff;\n color: #fcff89;\n}\n.taylor .M {\n background-color: #00ff00;\n}\n.taylor .F {\n background-color: #00ff66;\n}\n.taylor .P {\n background-color: #ffcc00;\n}\n.taylor .S {\n background-color: #ff3300;\n color: #fcff89;\n}\n.taylor .T {\n background-color: #ff6600;\n}\n.taylor .W {\n background-color: #00ccff;\n}\n.taylor .Y {\n background-color: #00ffcc;\n}\n.taylor .V {\n background-color: #99ff00;\n}\n.taylor .B,\n.taylor .X,\n.taylor .Z {\n background-color: #ffffff;\n}\n.taylor .gap {\n color: #ccc;\n}\n.hydrophobicity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n color: #fcff89;\n}\n.hydrophobicity .A {\n background-color: #ad0052;\n}\n.hydrophobicity .R,\n.hydrophobicity .K {\n background-color: #0000ff;\n}\n.hydrophobicity .N,\n.hydrophobicity .D,\n.hydrophobicity .Q,\n.hydrophobicity .E,\n.hydrophobicity .B,\n.hydrophobicity .Z {\n background-color: #0c00f3;\n}\n.hydrophobicity .C {\n background-color: #c2003d;\n}\n.hydrophobicity .G {\n background-color: #6a0095;\n}\n.hydrophobicity .H {\n background-color: #1500ea;\n}\n.hydrophobicity .L {\n background-color: #ea0015;\n}\n.hydrophobicity .M {\n background-color: #b0004f;\n}\n.hydrophobicity .F {\n background-color: #cb0034;\n}\n.hydrophobicity .P {\n background-color: #4600b9;\n}\n.hydrophobicity .S {\n background-color: #5e00a1;\n}\n.hydrophobicity .T {\n background-color: #61009e;\n}\n.hydrophobicity .W {\n background-color: #5b00a4;\n}\n.hydrophobicity .Y {\n background-color: #4f00b0;\n}\n.hydrophobicity .V {\n background-color: #f60009;\n}\n.hydrophobicity .X {\n background-color: #680097;\n}\n.hydrophobicity .gap {\n color: #ccc;\n}\n.helix_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.helix_propensity .A {\n background-color: #e718e7;\n}\n.helix_propensity .R {\n background-color: #6f906f;\n}\n.helix_propensity .N {\n background-color: #1be41b;\n}\n.helix_propensity .D {\n background-color: #778877;\n}\n.helix_propensity .C {\n background-color: #23dc23;\n}\n.helix_propensity .Q {\n background-color: #926d92;\n}\n.helix_propensity .E {\n background-color: #ff00ff;\n}\n.helix_propensity .G {\n background-color: #00ff00;\n}\n.helix_propensity .H {\n background-color: #758a75;\n}\n.helix_propensity .I {\n background-color: #8a758a;\n}\n.helix_propensity .L {\n background-color: #ae51ae;\n}\n.helix_propensity .K {\n background-color: #a05fa0;\n}\n.helix_propensity .M {\n background-color: #ef10ef;\n}\n.helix_propensity .F {\n background-color: #986798;\n}\n.helix_propensity .P {\n background-color: #00ff00;\n}\n.helix_propensity .S {\n background-color: #36c936;\n}\n.helix_propensity .T {\n background-color: #47b847;\n}\n.helix_propensity .W {\n background-color: #8a758a;\n}\n.helix_propensity .Y {\n background-color: #21de21;\n}\n.helix_propensity .V {\n background-color: #857a85;\n}\n.helix_propensity .B {\n background-color: #49b649;\n}\n.helix_propensity .X {\n background-color: #758a75;\n}\n.helix_propensity .Z {\n background-color: #c936c9;\n}\n.helix_propensity .gap {\n color: #ccc;\n}\n.strand_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.strand_propensity .A {\n background-color: #5858a7;\n}\n.strand_propensity .R {\n background-color: #6b6b94;\n}\n.strand_propensity .N {\n background-color: #64649b;\n}\n.strand_propensity .D {\n background-color: #2121de;\n}\n.strand_propensity .C {\n background-color: #9d9d62;\n}\n.strand_propensity .Q {\n background-color: #8c8c73;\n}\n.strand_propensity .E {\n background-color: #0000ff;\n}\n.strand_propensity .G {\n background-color: #4949b6;\n}\n.strand_propensity .H {\n background-color: #60609f;\n}\n.strand_propensity .I {\n background-color: #ecec13;\n}\n.strand_propensity .L {\n background-color: #b2b24d;\n}\n.strand_propensity .K {\n background-color: #4747b8;\n}\n.strand_propensity .M {\n background-color: #82827d;\n}\n.strand_propensity .F {\n background-color: #c2c23d;\n}\n.strand_propensity .P {\n background-color: #2323dc;\n}\n.strand_propensity .S {\n background-color: #4949b6;\n}\n.strand_propensity .T {\n background-color: #9d9d62;\n}\n.strand_propensity .W {\n background-color: #c0c03f;\n}\n.strand_propensity .Y {\n background-color: #d3d32c;\n}\n.strand_propensity .V {\n background-color: #ffff00;\n}\n.strand_propensity .B {\n background-color: #4343bc;\n}\n.strand_propensity .X {\n background-color: #797986;\n}\n.strand_propensity .Z {\n background-color: #4747b8;\n}\n.strand_propensity .A,\n.strand_propensity .R,\n.strand_propensity .N,\n.strand_propensity .D,\n.strand_propensity .E,\n.strand_propensity .G,\n.strand_propensity .H,\n.strand_propensity .K,\n.strand_propensity .P,\n.strand_propensity .S,\n.strand_propensity .B,\n.strand_propensity .Z {\n color: #fcff89;\n}\n.strand_propensity .gap {\n color: #ccc;\n}\n.turn_propensity {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.turn_propensity .gap {\n color: #ccc;\n}\n.turn_propensity .A {\n background-color: #2cd3d3;\n}\n.turn_propensity .R {\n background-color: #708f8f;\n}\n.turn_propensity .N {\n background-color: #ff0000;\n}\n.turn_propensity .D {\n background-color: #e81717;\n}\n.turn_propensity .C {\n background-color: #a85757;\n}\n.turn_propensity .Q {\n background-color: #3fc0c0;\n}\n.turn_propensity .E {\n background-color: #778888;\n}\n.turn_propensity .G {\n background-color: #ff0000;\n}\n.turn_propensity .H {\n background-color: #708f8f;\n}\n.turn_propensity .I {\n background-color: #00ffff;\n}\n.turn_propensity .L {\n background-color: #1ce3e3;\n}\n.turn_propensity .K {\n background-color: #7e8181;\n}\n.turn_propensity .M {\n background-color: #1ee1e1;\n}\n.turn_propensity .F {\n background-color: #1ee1e1;\n}\n.turn_propensity .P {\n background-color: #f60909;\n}\n.turn_propensity .S {\n background-color: #e11e1e;\n}\n.turn_propensity .T {\n background-color: #738c8c;\n}\n.turn_propensity .W {\n background-color: #738c8c;\n}\n.turn_propensity .Y {\n background-color: #9d6262;\n}\n.turn_propensity .V {\n background-color: #07f8f8;\n}\n.turn_propensity .B {\n background-color: #f30c0c;\n}\n.turn_propensity .X {\n background-color: #7c8383;\n}\n.turn_propensity .Z {\n background-color: #5ba4a4;\n}\n.turn_propensity .N,\n.turn_propensity .D,\n.turn_propensity .G,\n.turn_propensity .P,\n.turn_propensity .S,\n.turn_propensity .B {\n color: #fcff89;\n}\n.buried_index {\n white-space: nowrap;\n font-family: monospace;\n height: 18px;\n font-size: 12px;\n}\n.buried_index .gap {\n color: #ccc;\n}\n.buried_index .A {\n background-color: #00a35c;\n}\n.buried_index .R {\n background-color: #00fc03;\n}\n.buried_index .N {\n background-color: #00eb14;\n}\n.buried_index .D {\n background-color: #00eb14;\n}\n.buried_index .C {\n background-color: #0000ff;\n}\n.buried_index .Q {\n background-color: #00f10e;\n}\n.buried_index .E {\n background-color: #00f10e;\n}\n.buried_index .G {\n background-color: #009d62;\n}\n.buried_index .H {\n background-color: #00d52a;\n}\n.buried_index .I {\n background-color: #0054ab;\n}\n.buried_index .L {\n background-color: #007b84;\n}\n.buried_index .K {\n background-color: #00ff00;\n}\n.buried_index .M {\n background-color: #009768;\n}\n.buried_index .F {\n background-color: #008778;\n}\n.buried_index .P {\n background-color: #00e01f;\n}\n.buried_index .S {\n background-color: #00d52a;\n}\n.buried_index .T {\n background-color: #00db24;\n}\n.buried_index .W {\n background-color: #00a857;\n}\n.buried_index .Y {\n background-color: #00e619;\n}\n.buried_index .V {\n background-color: #005fa0;\n}\n.buried_index .B {\n background-color: #00eb14;\n}\n.buried_index .X {\n background-color: #00b649;\n}\n.buried_index .Z {\n background-color: #00f10e;\n}\n.buried_index .C,\n.buried_index .I,\n.buried_index .V {\n color: #fcff89;\n}\n","@transition_time: 20ms;\n\n/* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n@hover_scale_factor: 2;\n@hover_stroke_width: 2;\n@collapsed_node_stroke_width: 1;\n\n@default_node_fill: #fff;\n@default_node_stroke: #777;\n\n@ortholog_stroke_color: orange;\n@paralog_stroke_color: green;\n@representative_fill_color: @ortholog_stroke_color;\n@self_color: red;\n\n@speciation_color: #000080;\n@duplication_color: #cd0000;\n\n@font_size: 11px;\n@font_weight_highlight: bolder;\n\n@invisible: 0;\n@visible: 1;\n\n.display-mode {\n .btn-toolbar {\n position: absolute;\n padding-left: 10px\n }\n}\n.tooltip-inner {\n max-width : 400px;\n}\n.genetree-vis {\n .node, .edge {\n cursor: pointer;\n }\n\n .tree-wrapper {\n /* transitions for mouse hover, etc, interactions */\n * {\n transition: all @transition_time ease-in-out;\n }\n\n /* transitions for expanding/contracting clades */\n .clade {\n transition: transform @transition_time ease-in-out;\n\n .edge-rect {\n transition: scaleY @transition_time ease-in-out, scaleX @transition_time ease-in-out, transform @transition_time ease-in-out;\n }\n }\n }\n\n .interaction-helper {\n opacity: @invisible;\n }\n\n .node circle {\n stroke: @default_node_stroke;\n fill: @default_node_fill;\n }\n\n .speciation rect {\n fill: @speciation_color;\n }\n\n .duplication rect {\n fill: @duplication_color;\n }\n\n .node:hover, .edge:hover {\n .internal,\n .gene circle,\n ~ .clade .node rect,\n + .node rect {\n transform: scale(@hover_scale_factor);\n }\n\n ~ .clade .interaction-rect {\n opacity: @visible;\n fill-opacity: @visible;\n }\n\n ~ .clade circle,\n + .node circle,\n .collapsed path,\n ~ .clade .collapsed path,\n + .node .collapsed path {\n stroke-width: @hover_stroke_width;\n }\n\n ~ .clade text, text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .node {\n .gene.ortholog_one2one circle,\n .gene.ortholog_one2many circle,\n .gene.ortholog_many2many circle {\n stroke: @ortholog_stroke_color;\n }\n\n .gene.within_species_paralog circle {\n stroke: @paralog_stroke_color;\n }\n\n .gene.self {\n circle {\n stroke: @self_color;\n fill: @self_color;\n }\n text {\n font-weight: @font_weight_highlight;\n }\n }\n\n .gene.representative circle {\n stroke: @ortholog_stroke_color;\n fill: @representative_fill_color;\n }\n\n text {\n font-size: @font_size;\n fill-opacity: @visible;\n text-anchor: start;\n }\n }\n\n .collapsed {\n path {\n stroke-width: @collapsed_node_stroke_width;\n }\n }\n\n .domains rect {\n cursor: pointer;\n stroke-opacity: 0\n }\n\n .domains rect:hover {\n cursor: pointer;\n stroke-opacity: 1.0\n }\n @transition_time: 20ms;\n\n /* see src/components/Edge.js#HOVER_SCALE_FACTOR (currently line 8) */\n @hover_scale_factor: 2;\n @hover_stroke_width: 2;\n @collapsed_node_stroke_width: 1;\n\n @default_node_fill: #fff;\n @default_node_stroke: #777;\n\n @ortholog_stroke_color: orange;\n @paralog_stroke_color: green;\n @representative_fill_color: @ortholog_stroke_color;\n @self_color: red;\n\n @speciation_color: #000080;\n @duplication_color: #cd0000;\n\n @font_size: 11px;\n @font_weight_highlight: bolder;\n\n @invisible: 0;\n @visible: 1;\n\n}\n\n.popover-title .tooltip-title-button {\n margin-top: -4px !important;\n margin-right: 4px !important;\n}\n\n.msa-slider {\n position: relative;\n padding-top: 10px;\n padding-bottom: 0px;\n margin-bottom: -10px;\n}\n\n.resize-drag {\n background: rgba(0, 0, 0, 0.0);\n border: 4px solid #7c8383;\n color: red;\n font-size: 1px;\n font-family: sans-serif;\n border-radius: 8px;\n\n /* This makes things *much* easier */\n box-sizing: border-box;\n}\n\n.resize-container {\n width: 100%;\n height: 100%;\n}\n",null,"/* ===== Pathways layout ===== */\n\n.pathways-layout {\n display: flex;\n align-items: stretch;\n}\n\n.pathways-tree-toggle {\n flex: 0 0 auto;\n width: 24px;\n border: 1px solid #ccc;\n border-right: none;\n background: #f5f5f5;\n cursor: pointer;\n font-size: 12px;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #666;\n border-radius: 4px 0 0 4px;\n}\n.pathways-tree-toggle:hover {\n background: #e0e0e0;\n color: #333;\n}\n\n.pathways-tree-panel {\n flex: 0 0 250px;\n width: 250px;\n height: 100%;\n overflow-y: auto;\n overflow-x: hidden;\n border: 1px solid #ccc;\n border-right: none;\n}\n\n.pathways-diagram-panel {\n flex: 1 1 auto;\n min-width: 0;\n}\n\n.pathways-resize-handle {\n height: 6px;\n background: #e0e0e0;\n border: 1px solid #ccc;\n border-top: none;\n cursor: ns-resize;\n transition: background 0.15s;\n}\n.pathways-resize-handle:hover {\n background: #179ed3;\n}\n\n/* ===== Compact tree items (react-simple-tree-menu overrides) ===== */\n\n.pathways-tree-panel .rstm-tree-item-group {\n border-top: none;\n}\n\n.pathways-tree-panel .rstm-tree-item {\n padding: 0.2rem 0.4rem;\n font-size: 0.8rem;\n line-height: 1.3;\n border-bottom: 1px solid #eee;\n}\n/* Override inline padding-left set by react-simple-tree-menu.\n The library uses: 0.75 + iconSize*(hasNodes?0:1) + level*1.75 rem\n We shrink the per-level indent from 1.75rem to 0.75rem */\n.pathways-tree-panel .rstm-tree-item-level0 { padding-left: 0.4rem !important; }\n.pathways-tree-panel .rstm-tree-item-level0 > .rstm-toggle-icon { margin-left: 0; }\n.pathways-tree-panel .rstm-tree-item-level1 { padding-left: 1.15rem !important; }\n.pathways-tree-panel .rstm-tree-item-level2 { padding-left: 1.9rem !important; }\n.pathways-tree-panel .rstm-tree-item-level3 { padding-left: 2.65rem !important; }\n.pathways-tree-panel .rstm-tree-item-level4 { padding-left: 3.4rem !important; }\n.pathways-tree-panel .rstm-tree-item-level5 { padding-left: 4.15rem !important; }\n.pathways-tree-panel .rstm-tree-item-level6 { padding-left: 4.9rem !important; }\n.pathways-tree-panel .rstm-tree-item-level7 { padding-left: 5.65rem !important; }\n\n.pathways-tree-panel .rstm-tree-item--active {\n color: white;\n background: #179ed3;\n border-bottom-color: #127aa8;\n}\n\n.pathways-tree-panel .rstm-toggle-icon-symbol {\n width: 1rem;\n height: 1rem;\n line-height: 1rem;\n font-size: 0.7rem;\n}\n\n/* ===== Legacy tree-view classes ===== */\n\n.tree-view-root {}\n\n.tree-view-node {\n margin-left: 8px;\n}\n\n.tree-view-node-collapse-toggle.collapse-spacer {\n width: 12px;\n display: inline-block;\n}\n\n.tree-view-node-collapse-toggle {\n margin-right: 2px;\n width: 12px;\n}\n\n.tree-view-node-label {\n font-size: smaller;\n margin-left: 2px;\n padding: 1px;\n border: 1px solid #fff;\n}\n\n.tree-view-node-label.selected {\n border: 1px solid #003f81;\n border-radius: 3px;\n background-color: #808080;\n}\n\n.tree-view-node-checkbox {}\n.tree-view-node-children {}\n\n",".button-like-link {\n display: inline-block;\n padding: 0;\n background-color: #fff0;\n color: #007bff;\n text-decoration: underline;\n border: none;\n cursor: pointer;\n}\n","/* styles.css */\n.fasta-container {\n position: relative;\n padding: 2ch;\n background-color: #fcfffd;\n border-color: #557b74;\n border-style: dashed;\n line-height: 0.925em;\n /*margin: auto; !* Center the container *!*/\n}\n.styled-span {\n display: flex;\n align-items: center;\n text-align: center;\n}\n.vertical-line {\n flex-grow: 1;\n height: 20px;\n background-color: black;\n}\n.horizontal-line {\n width: 60px;\n min-width: 15px;\n height: 3px;\n background-color: black;\n margin: 0;\n}\ncode.fasta {\n white-space: pre-wrap;\n color: #595959;\n}\n.header {\n color: black;\n}\n.upstream {\n color: #80a0a0;\n}\n.downstream {\n color: #80a0a0;\n}\n.intron {\n color: #aaaaaa;\n}\n.utr5 {\n background-color: #aaccaf;\n}\n.utr5-other {\n background-color: #cfe1d2;\n}\n.cds {\n background-color: #a7b4d3;\n}\n.cds-other {\n background-color: #d0d8e6;\n}\n.utr3 {\n background-color: #c5a3bf;\n}\n.utr3-other {\n background-color: #dcc9d9;\n}\n.square-utr5 {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #aaccaf 0%, #aaccaf 50%, #cfe1d2 50%, #cfe1d2 100%);\n}\n.square-cds {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #a7b4d3 0%, #a7b4d3 50%, #d0d8e6 50%, #d0d8e6 100%);\n}\n.square-utr3 {\n width: 20px;\n height: 20px;\n background: linear-gradient(to bottom right, #c5a3bf 0%, #c5a3bf 50%, #dcc9d9 50%, #dcc9d9 100%);\n}\n\n.flanking-guide {\n display: grid;\n grid-template-columns: auto 60px auto 60px auto;\n align-items: center;\n row-gap: 2px;\n column-gap: 0;\n width: fit-content;\n}\n/* Row 1 */\n.flanking-label-left {\n text-align: right;\n padding-right: 0.5rem;\n}\n.flanking-center-label {\n text-align: center;\n white-space: nowrap;\n padding: 0 0.25rem;\n}\n.flanking-guide > .horizontal-line {\n height: 3px;\n background-color: black;\n align-self: center;\n}\n.flanking-label-right {\n text-align: left;\n padding-left: 0.5rem;\n}\n/* Row 2 */\n.flanking-value-left {\n text-align: right;\n min-width: 5ch;\n padding-right: 0.5rem;\n}\n.flanking-value-right {\n text-align: left;\n min-width: 5ch;\n padding-left: 0.5rem;\n}\n\n.reverse-slide {\n direction: rtl;\n}\n.fasta-key {\n position: absolute;\n top: 9px;\n right: 40px;\n background: none;\n border: none;\n cursor: default;\n font-family: monospace;\n font-size: 11pt;\n color: #555;\n}\n.copy-button {\n position: absolute;\n top: 3px;\n right: -5px;\n background: none;\n border: none;\n cursor: pointer;\n font-size: 1.5rem;\n color: #555;\n}\n.notification {\n position: absolute;\n top: 0;\n right: 0;\n background-color: #050505;\n color: #fff;\n padding: 5px;\n z-index: 999;\n font-weight: bold;\n font-style: italic;\n font-size: smaller;\n}\n",".taxogenomic-vis {\n @import 'taxonomy';\n}",".accordion-button {\n padding:0.4rem!important;\n}\n.accordion-button:hover {\n background-color: #dbe8f3;\n}",".exporter-view {\n display: grid;\n grid-template-columns: 1fr 8px 1fr;\n gap: 0;\n padding: 0.75rem;\n min-height: 400px;\n}\n\n.exporter-view > .exporter-pane:first-child {\n margin-right: 0.5rem;\n}\n\n.exporter-view > .exporter-pane.exporter-right-pane {\n margin-left: 0.5rem;\n}\n\n.exporter-divider {\n cursor: col-resize;\n background: transparent;\n position: relative;\n align-self: stretch;\n}\n\n.exporter-divider::before {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 2px;\n background: #d0d4da;\n border-radius: 1px;\n transition: background 0.15s;\n}\n\n.exporter-divider:hover::before,\n.exporter-divider.dragging::before {\n background: #7a8aa0;\n width: 3px;\n}\n\n.exporter-pane {\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n background: #fff;\n display: flex;\n flex-direction: column;\n max-height: 70vh;\n overflow: hidden;\n}\n\n.exporter-pane-header {\n padding: 0.5rem 0.75rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n font-size: 0.9rem;\n}\n\n.exporter-pane-header-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.exporter-field-search-inline {\n margin-left: auto;\n margin-bottom: 0;\n max-width: 220px;\n height: 1.75rem;\n font-size: 0.85rem;\n padding: 0.15rem 0.5rem;\n}\n\n.exporter-pane-body {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n}\n\n.exporter-panel-empty {\n padding: 1rem;\n color: #888;\n text-align: center;\n font-size: 0.9rem;\n}\n\n/* --- FieldTree --- */\n\n.exporter-field-tree {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-field-search {\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.exporter-field-tree-body {\n flex: 1;\n overflow-y: auto;\n}\n\n.exporter-group {\n margin-bottom: 0.25rem;\n}\n\n.exporter-group-header {\n cursor: pointer;\n padding: 0.25rem 0.5rem;\n background: #eef1f4;\n border-radius: 3px;\n display: flex;\n align-items: center;\n gap: 0.4rem;\n user-select: none;\n font-size: 0.9rem;\n}\n\n.exporter-group-header:hover {\n background: #e3e7ec;\n}\n\n.exporter-group-chevron {\n display: inline-flex;\n align-items: center;\n color: #666;\n}\n\n.exporter-group-count {\n font-size: 0.75rem;\n color: #666;\n background: #fff;\n padding: 0 0.4rem;\n border-radius: 10px;\n border: 1px solid #ddd;\n}\n\n.exporter-group-actions {\n margin-left: auto;\n display: inline-flex;\n gap: 0.25rem;\n}\n\n.exporter-group-action {\n font-size: 0.7rem;\n padding: 0.05rem 0.4rem;\n background: #fff;\n border: 1px solid #ccc;\n border-radius: 3px;\n color: #333;\n cursor: pointer;\n line-height: 1.4;\n}\n\n.exporter-group-action:hover:not(:disabled) {\n background: #f0f4f8;\n border-color: #88a;\n}\n\n.exporter-group-action:disabled {\n opacity: 0.4;\n cursor: default;\n}\n\n.exporter-group-fields {\n list-style: none;\n margin: 0.25rem 0 0.5rem 1.25rem;\n padding: 0;\n}\n\n.exporter-group-fields li {\n padding: 0.1rem 0.25rem;\n font-size: 0.85rem;\n}\n\n.exporter-group-fields label {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 0.35rem;\n margin: 0;\n padding: 0.1rem 0.25rem;\n border-radius: 2px;\n width: 100%;\n}\n\n.exporter-group-fields label:hover {\n background: #f0f4f8;\n}\n\n.exporter-field-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-field-badge {\n font-size: 0.7rem;\n color: #888;\n font-family: monospace;\n}\n\n.exporter-group-truncated {\n color: #888;\n font-size: 0.8rem;\n padding-left: 0.5rem;\n}\n\n/* --- SelectedFields --- */\n\n.exporter-selected {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-selected-header {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.25rem 0;\n margin-bottom: 0.5rem;\n border-bottom: 1px solid #eee;\n}\n\n.exporter-selected-count {\n font-size: 0.75rem;\n color: #666;\n background: #eef1f4;\n padding: 0 0.5rem;\n border-radius: 10px;\n}\n\n.exporter-clear-btn {\n margin-left: auto;\n font-size: 0.8rem;\n padding: 0;\n}\n\n.exporter-selected-list {\n list-style: none;\n margin: 0;\n padding: 0;\n overflow-y: auto;\n flex: 1;\n}\n\n.exporter-selected-list li {\n display: flex;\n align-items: center;\n gap: 0.4rem;\n padding: 0.25rem 0.35rem;\n border-bottom: 1px solid #f0f0f0;\n font-size: 0.85rem;\n}\n\n.exporter-selected-index {\n font-family: monospace;\n color: #888;\n min-width: 1.75rem;\n}\n\n.exporter-selected-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-selected-group {\n color: #888;\n}\n\n.exporter-selected-actions {\n display: flex;\n gap: 0.15rem;\n}\n\n.exporter-selected-actions button {\n padding: 0.1rem 0.35rem;\n line-height: 1;\n}\n\n/* --- Right pane (selected + preview) --- */\n\n.exporter-right-pane {\n max-height: 70vh;\n}\n\n.exporter-right-split {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n\n.exporter-selected-section {\n flex: 0 0 auto;\n max-height: 35%;\n overflow-y: auto;\n padding: 0.5rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.exporter-preview-section {\n flex: 1;\n overflow: hidden;\n padding: 0.5rem;\n display: flex;\n flex-direction: column;\n}\n\n/* --- Preview --- */\n\n.exporter-preview {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.exporter-preview-toolbar {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding-bottom: 0.35rem;\n margin-bottom: 0.35rem;\n border-bottom: 1px solid #eee;\n font-size: 0.85rem;\n}\n\n.exporter-preview-format label {\n margin-right: 0.5rem;\n cursor: pointer;\n}\n\n.exporter-preview-format input {\n margin-right: 0.25rem;\n}\n\n.exporter-preview-status {\n margin-left: auto;\n color: #888;\n}\n\n.exporter-cutoffs-btn {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.1rem 0.5rem;\n font-size: 0.8rem;\n}\n\n.exporter-modal-backdrop {\n position: fixed;\n inset: 0;\n background: rgba(0, 0, 0, 0.35);\n z-index: 1050;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.exporter-modal {\n background: #fff;\n border-radius: 6px;\n box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);\n width: min(420px, 90vw);\n display: flex;\n flex-direction: column;\n}\n\n.exporter-modal-header {\n display: flex;\n align-items: center;\n padding: 0.6rem 0.9rem;\n border-bottom: 1px solid #eee;\n}\n\n.exporter-modal-close {\n margin-left: auto;\n background: transparent;\n border: 0;\n font-size: 1.25rem;\n line-height: 1;\n color: #666;\n cursor: pointer;\n padding: 0 0.25rem;\n}\n\n.exporter-modal-body {\n padding: 0.9rem;\n display: flex;\n flex-direction: column;\n gap: 0.85rem;\n}\n\n.exporter-modal-field label {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n font-size: 0.85rem;\n font-weight: 500;\n}\n\n.exporter-modal-field input {\n font: inherit;\n padding: 0.25rem 0.5rem;\n border: 1px solid #c0c4ca;\n border-radius: 3px;\n}\n\n.exporter-modal-field small {\n color: #777;\n font-size: 0.75rem;\n margin-top: 0.15rem;\n}\n\n.exporter-modal-footer {\n display: flex;\n justify-content: flex-end;\n gap: 0.5rem;\n padding: 0.6rem 0.9rem;\n border-top: 1px solid #eee;\n}\n\n.exporter-preview-status.error {\n color: #c33;\n}\n\n.exporter-preview-body {\n flex: 1;\n overflow: auto;\n background: #fafbfc;\n border: 1px solid #eee;\n border-radius: 3px;\n}\n\n.exporter-preview-empty {\n padding: 1rem;\n color: #888;\n text-align: center;\n}\n\n.exporter-preview-tsv-scroll {\n overflow: auto;\n max-width: 100%;\n}\n\n.exporter-preview-tsv {\n border-collapse: collapse;\n font-size: 0.8rem;\n font-family: -apple-system, BlinkMacSystemFont, sans-serif;\n width: auto;\n}\n\n.exporter-preview-tsv th,\n.exporter-preview-tsv td {\n padding: 0.2rem 0.5rem;\n border: 1px solid #e5e7ea;\n max-width: 420px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-preview-tsv th {\n position: relative;\n}\n\n.exporter-preview-col-resizer {\n position: absolute;\n top: 0;\n right: -3px;\n width: 6px;\n height: 100%;\n cursor: col-resize;\n user-select: none;\n z-index: 2;\n}\n\n.exporter-preview-col-resizer::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 1px;\n background: transparent;\n transition: background 0.15s;\n}\n\n.exporter-preview-col-resizer:hover::after,\n.exporter-preview-col-resizer:active::after {\n background: #7a8aa0;\n width: 2px;\n}\n\n.exporter-preview-tsv th {\n background: #f0f3f6;\n text-align: left;\n position: sticky;\n top: 0;\n z-index: 1;\n padding: 0.15rem 0.25rem;\n}\n\n.exporter-preview-th-inner {\n display: flex;\n align-items: center;\n gap: 0.15rem;\n min-width: 0;\n}\n\n.exporter-preview-th-label {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.exporter-preview-reorder-btn {\n flex: 0 0 auto;\n background: transparent;\n border: 1px solid transparent;\n border-radius: 3px;\n padding: 0;\n line-height: 1;\n color: #555;\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n}\n\n.exporter-preview-reorder-btn:hover:not(:disabled) {\n background: #fff;\n border-color: #bbb;\n color: #111;\n}\n\n.exporter-preview-reorder-btn:disabled {\n opacity: 0.25;\n cursor: default;\n}\n\n.exporter-preview-fields-count {\n color: #666;\n display: inline-flex;\n align-items: center;\n gap: 0.35rem;\n}\n\n.exporter-preview-tsv tr:hover td {\n background: #f4f7fa;\n}\n\n.exporter-preview-empty-row {\n text-align: center;\n color: #888;\n padding: 1rem !important;\n}\n\n.exporter-preview-json {\n margin: 0;\n padding: 0.5rem;\n font-size: 0.75rem;\n line-height: 1.4;\n}\n\n/* --- Export footer --- */\n\n.exporter-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n padding: 0.5rem 0.75rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n flex: 0 0 auto;\n}\n\n.exporter-footer-summary {\n color: #555;\n}\n"],"names":[],"version":3,"file":"index.css.map"}
package/dist/index.js CHANGED
@@ -2020,7 +2020,7 @@ var $0d54502f6cafe273$export$2e2bcd8739ae039 = $0d54502f6cafe273$var$grameneGeno
2020
2020
 
2021
2021
 
2022
2022
  var $65709bd8598fce20$exports = {};
2023
- $65709bd8598fce20$exports = JSON.parse('{"groups":{"core":{"label":"Core identifiers","order":0},"location":{"label":"Genomic location","order":1},"structure":{"label":"Gene structure","order":2},"homology":{"label":"Homology","order":3},"expression":{"label":"Gene expression","order":4},"differential":{"label":"Differential expression","order":5},"hierarchical":{"label":"Hierarchical annotations","order":6},"pathways":{"label":"Pathways","order":7},"GO":{"label":"Gene Ontology","order":7},"PO":{"label":"Plant Ontology","order":8},"lof":{"label":"Loss of function alleles","order":9},"MAKER":{"label":"MAKER transcript metrics","order":10},"xrefs":{"label":"External references","order":11},"other":{"label":"Other","order":99}},"patterns":[{"id":"homology","match":"^homology__(.+)$","group":"homology","multiValued":true,"labelTemplate":"Homology: $1"},{"id":"pathways","match":"^pathways__(.+)$","group":"pathways","multiValued":true,"labelTemplate":"Pathway: $1"},{"id":"maker","match":"^MAKER__(.+)__attr_([a-z])$","group":"MAKER","labelTemplate":"MAKER: $1"},{"id":"xrefs","match":"^(.+)__xrefs$","group":"xrefs","multiValued":true,"labelTemplate":"$1 (xrefs)"},{"id":"expr","match":"^(E[-_][A-Za-z0-9_-]+?)_g(\\\\d+)__expr$","group":"expression","expression":true,"labelTemplate":"$1 \xb7 g$2"},{"id":"diffexpr","match":"^(E[-_][A-Za-z0-9_-]+?)_g(\\\\d+)_g(\\\\d+)_(pval|logfc|l2fc)_attr_([a-z])$","group":"differential","diffExpression":true,"labelTemplate":"$1 \xb7 g$2 vs g$3 \xb7 $4"},{"id":"bins","match":"^(fixed|uniform)_([0-9a-zA-Z]+)__bin$","group":"bins","is_hidden":true,"labelTemplate":"$1 bin ($2)"},{"id":"neighbors","match":".*neighbors_[0-9]+$","group":"neighbors","is_hidden":true,"labelTemplate":"neighbors"},{"id":"vep_merged","match":"^VEP__merged__(NAT|EMS)__attr_ss$","group":"lof","multiValued":true,"labelTemplate":"Merged $1 accessions"},{"id":"vep_detail","match":"^VEP__(.+?)__(homo|het)__(.+?)__(\\\\d+)__attr_ss$","group":"lof","multiValued":true,"labelTemplate":"$1 ($2) $3/$4"},{"id":"generic_attr","match":"^(.+)__attr_([a-z])$","group":"other","labelTemplate":"$1"}],"fields":{"id":{"group":"core","label":"Gene ID","order":1},"name":{"group":"core","label":"Name","order":2},"description":{"group":"core","label":"Description","order":4},"summary":{"group":"core","label":"Summary","order":5},"synonyms":{"group":"core","label":"Synonyms","multiValued":true,"order":3},"biotype":{"group":"core","label":"Biotype","order":6},"taxon_id":{"group":"core","label":"Taxon ID","order":8},"system_name":{"group":"core","label":"System name","order":7},"db_type":{"group":"core","label":"DB type","order":9},"closest_rep_id":{"group":"homology","label":"Closest representative ID","order":1},"closest_rep_name":{"group":"homology","label":"Closest representative name","order":2},"closest_rep_identity":{"group":"homology","label":"Closest representative identity","order":3},"closest_rep_taxon_id":{"group":"homology","label":"Closest representative taxon","order":4},"closest_rep_description":{"group":"homology","label":"Closest representative description","order":5},"model_rep_id":{"group":"homology","label":"Model representative ID","order":6},"model_rep_name":{"group":"homology","label":"Model representative name","order":7},"model_rep_identity":{"group":"homology","label":"Model representative identity","order":8},"model_rep_taxon_id":{"group":"homology","label":"Model representative taxon","order":9},"model_rep_description":{"group":"homology","label":"Model representative description","order":10},"gene_tree":{"group":"homology","label":"Gene tree ID","order":11},"pan_tree":{"group":"homology","label":"Pan-gene tree ID","order":14},"capabilities":{"group":"other","label":"Capabilities","multiValued":true},"map":{"group":"location","label":"Map","order":1},"region":{"group":"location","label":"Region","order":2},"start":{"group":"location","label":"Start","order":3},"end":{"group":"location","label":"End","order":4},"strand":{"group":"location","label":"Strand","order":5},"GO__ancestors":{"group":"hierarchical","label":"GO terms","multiValued":true,"order":1},"PO__ancestors":{"group":"hierarchical","label":"PO terms","multiValued":true,"order":2},"TO__ancestors":{"group":"hierarchical","label":"TO terms","multiValued":true,"order":3},"QTL_TO__ancestors":{"group":"hierarchical","label":"QTL traits (TO)","multiValued":true,"order":7},"domains__ancestors":{"group":"hierarchical","label":"Domains","multiValued":true,"order":4},"taxonomy__ancestors":{"group":"hierarchical","label":"Taxonomy","multiValued":true,"order":6},"supertree_attr_s":{"group":"homology","label":"Supertree","order":13},"gene_tree_root_taxon_id":{"group":"homology","label":"Gene tree root taxon","order":12},"protein__length":{"group":"structure","label":"Protein length"},"transcript__count":{"group":"structure","label":"Transcript count"},"transcript__exons":{"group":"structure","label":"Exon count"},"transcript__length":{"group":"structure","label":"Transcript length"},"expressed_in_gxa_attr_ss":{"group":"expression","label":"Expressed in GXA","multiValued":true},"MAKER__AED__attr_f":{"group":"MAKER","label":"AED","description":"Annotation Edit Distance"},"MAKER__QI1__attr_i":{"group":"MAKER","label":"Length of the 5\' UTR"},"MAKER__QI2__attr_f":{"group":"MAKER","label":"Fraction of splice sites confirmed by EST"},"MAKER__QI3__attr_f":{"group":"MAKER","label":"Fraction of exons overlapping an EST"},"MAKER__QI4__attr_f":{"group":"MAKER","label":"Fraction of exons overlapping EST or protein"},"MAKER__QI7__attr_i":{"group":"MAKER","label":"Number of exons in the mRNA"},"MAKER__QI8__attr_i":{"group":"MAKER","label":"Length of the 3\' UTR"},"MAKER__QI9__attr_i":{"group":"MAKER","label":"Length of the protein sequence"},"homology__all_orthologs":{"group":"homology","label":"All orthologs","multiValued":true,"order":15},"homology__ortholog_one2one":{"group":"homology","label":"1:1 orthologs","multiValued":true,"order":16},"homology__ortholog_one2many":{"group":"homology","label":"1:many orthologs","multiValued":true,"order":17},"homology__ortholog_many2many":{"group":"homology","label":"Many:many orthologs","multiValued":true,"order":18},"homology__syntenic_ortholog_one2one":{"group":"homology","label":"Syntenic 1:1 orthologs","multiValued":true,"order":19},"homology__within_species_paralog":{"group":"homology","label":"Within-species paralogs","multiValued":true,"order":20},"pathways__ancestors":{"group":"hierarchical","label":"Pathways","multiValued":true,"order":5},"canonical_transcript__attr_s":{"group":"structure","label":"Canonical transcript ID"}},"hidden":["_version_","_terms","score","gene_idx","gene_idx_multi","species_idx","compara_idx","compara_idx_multi","_id","annotations","bins","gene_structure","homology","location","xrefs","domain_roots","familyRoot__ancestors"]}');
2023
+ $65709bd8598fce20$exports = JSON.parse('{"groups":{"core":{"label":"Core identifiers","order":0},"location":{"label":"Genomic location","order":1},"structure":{"label":"Gene structure","order":2},"homology":{"label":"Homology","order":3},"expression":{"label":"Gene expression","order":4},"differential":{"label":"Differential expression","order":5},"hierarchical":{"label":"Hierarchical annotations","order":6},"pathways":{"label":"Pathways","order":7},"GO":{"label":"Gene Ontology","order":7},"PO":{"label":"Plant Ontology","order":8},"lof":{"label":"Loss of function alleles","order":9},"MAKER":{"label":"MAKER transcript metrics","order":10},"xrefs":{"label":"External references","order":11},"other":{"label":"Other","order":99}},"patterns":[{"id":"homology","match":"^homology__(.+)$","group":"homology","multiValued":true,"labelTemplate":"Homology: $1"},{"id":"pathways","match":"^pathways__(.+)$","group":"pathways","multiValued":true,"labelTemplate":"Pathway: $1"},{"id":"maker","match":"^MAKER__(.+)__attr_([a-z])$","group":"MAKER","labelTemplate":"MAKER: $1"},{"id":"xrefs","match":"^(.+)__xrefs$","group":"xrefs","multiValued":true,"labelTemplate":"$1 (xrefs)"},{"id":"expr","match":"^(E[-_][A-Za-z0-9_-]+?)_g(\\\\d+)__expr$","group":"expression","expression":true,"labelTemplate":"$1 \xb7 g$2"},{"id":"diffexpr","match":"^(E[-_][A-Za-z0-9_-]+?)_g(\\\\d+)_g(\\\\d+)_(pval|logfc|l2fc)_attr_([a-z])$","group":"differential","diffExpression":true,"labelTemplate":"$1 \xb7 g$2 vs g$3 \xb7 $4"},{"id":"bins","match":"^(fixed|uniform)_([0-9a-zA-Z]+)__bin$","group":"bins","is_hidden":true,"labelTemplate":"$1 bin ($2)"},{"id":"neighbors","match":".*neighbors_[0-9]+$","group":"neighbors","is_hidden":true,"labelTemplate":"neighbors"},{"id":"vep_merged","match":"^VEP__merged__(NAT|EMS)__attr_ss$","group":"lof","multiValued":true,"labelTemplate":"Merged $1 accessions"},{"id":"vep_detail","match":"^VEP__(.+?)__(homo|het)__(.+?)__(\\\\d+)__attr_ss$","group":"lof","multiValued":true,"labelTemplate":"$1 ($2) $3/$4"},{"id":"generic_attr","match":"^(.+)__attr_([a-z])$","group":"other","labelTemplate":"$1"}],"fields":{"id":{"group":"core","label":"Gene ID","order":1},"name":{"group":"core","label":"Name","order":2},"description":{"group":"core","label":"Description","order":4},"summary":{"group":"core","label":"Summary","order":5},"synonyms":{"group":"core","label":"Synonyms","multiValued":true,"order":3},"biotype":{"group":"core","label":"Biotype","order":6},"taxon_id":{"group":"core","label":"Taxon ID","order":8},"system_name":{"group":"core","label":"System name","order":7},"db_type":{"group":"core","label":"DB type","order":9},"closest_rep_id":{"group":"homology","label":"Closest representative ID","order":1},"closest_rep_name":{"group":"homology","label":"Closest representative name","order":2},"closest_rep_identity":{"group":"homology","label":"Closest representative identity","order":3},"closest_rep_taxon_id":{"group":"homology","label":"Closest representative taxon","order":4},"closest_rep_description":{"group":"homology","label":"Closest representative description","order":5},"model_rep_id":{"group":"homology","label":"Model representative ID","order":6},"model_rep_name":{"group":"homology","label":"Model representative name","order":7},"model_rep_identity":{"group":"homology","label":"Model representative identity","order":8},"model_rep_taxon_id":{"group":"homology","label":"Model representative taxon","order":9},"model_rep_description":{"group":"homology","label":"Model representative description","order":10},"gene_tree":{"group":"homology","label":"Gene tree ID","order":11},"pan_tree":{"group":"homology","label":"Pan-gene tree ID","order":14},"capabilities":{"group":"other","label":"Capabilities","multiValued":true},"map":{"group":"location","label":"Map","order":1},"region":{"group":"location","label":"Region","order":2},"start":{"group":"location","label":"Start","order":3},"end":{"group":"location","label":"End","order":4},"strand":{"group":"location","label":"Strand","order":5},"GO__ancestors":{"group":"hierarchical","label":"GO terms","multiValued":true,"order":1},"PO__ancestors":{"group":"hierarchical","label":"PO terms","multiValued":true,"order":2},"TO__ancestors":{"group":"hierarchical","label":"TO terms","multiValued":true,"order":3},"QTL_TO__ancestors":{"group":"hierarchical","label":"QTL traits (TO)","multiValued":true,"order":7},"domains__ancestors":{"group":"hierarchical","label":"Domains","multiValued":true,"order":4},"taxonomy__ancestors":{"group":"hierarchical","label":"Taxonomy","multiValued":true,"order":6},"supertree_attr_s":{"group":"homology","label":"Supertree","order":13},"gene_tree_root_taxon_id":{"group":"homology","label":"Gene tree root taxon","order":12},"protein__length":{"group":"structure","label":"Protein length"},"transcript__count":{"group":"structure","label":"Transcript count"},"transcript__exons":{"group":"structure","label":"Exon count"},"transcript__length":{"group":"structure","label":"Transcript length"},"expressed_in_gxa_attr_ss":{"group":"expression","label":"Expressed in GXA","multiValued":true},"MAKER__AED__attr_f":{"group":"MAKER","label":"AED","description":"Annotation Edit Distance"},"MAKER__QI1__attr_i":{"group":"MAKER","label":"Length of the 5\' UTR"},"MAKER__QI2__attr_f":{"group":"MAKER","label":"Fraction of splice sites confirmed by EST"},"MAKER__QI3__attr_f":{"group":"MAKER","label":"Fraction of exons overlapping an EST"},"MAKER__QI4__attr_f":{"group":"MAKER","label":"Fraction of exons overlapping EST or protein"},"MAKER__QI7__attr_i":{"group":"MAKER","label":"Number of exons in the mRNA"},"MAKER__QI8__attr_i":{"group":"MAKER","label":"Length of the 3\' UTR"},"MAKER__QI9__attr_i":{"group":"MAKER","label":"Length of the protein sequence"},"homology__all_orthologs":{"group":"homology","label":"All orthologs","multiValued":true,"order":15},"homology__ortholog_one2one":{"group":"homology","label":"1:1 orthologs","multiValued":true,"order":16},"homology__ortholog_one2many":{"group":"homology","label":"1:many orthologs","multiValued":true,"order":17},"homology__ortholog_many2many":{"group":"homology","label":"Many:many orthologs","multiValued":true,"order":18},"homology__syntenic_ortholog_one2one":{"group":"homology","label":"Syntenic 1:1 orthologs","multiValued":true,"order":19},"homology__within_species_paralog":{"group":"homology","label":"Within-species paralogs","multiValued":true,"order":20},"pathways__ancestors":{"group":"hierarchical","label":"Pathways","multiValued":true,"order":5},"canonical_transcript__attr_s":{"group":"structure","label":"Canonical transcript ID"}},"hidden":["_version_","_terms","score","gene_idx","gene_idx_multi","species_idx","compara_idx","compara_idx_multi","_id","annotations","bins","gene_structure","homology","location","xrefs","domain_roots","familyRoot__ancestors","taxonomy__ancestors","capabilities"]}');
2024
2024
 
2025
2025
 
2026
2026
  const $49d5cbca2ec74b2f$export$428c2f647a2a7545 = {
@@ -2264,8 +2264,8 @@ function $0f839422d0d8c772$var$buildCatalog(swagger, sampleDocs) {
2264
2264
  const $0f839422d0d8c772$var$grameneFieldCatalog = (0, $gXNCa$reduxbundler.createAsyncResourceBundle)({
2265
2265
  name: 'grameneFieldCatalog',
2266
2266
  actionBaseType: 'GRAMENE_FIELD_CATALOG',
2267
- persist: false,
2268
- staleAfter: 0,
2267
+ persist: true,
2268
+ staleAfter: 300000,
2269
2269
  getPromise: ({ store: store })=>{
2270
2270
  const api = store.selectGrameneAPI();
2271
2271
  const swaggerUrl = typeof store.selectGrameneSwaggerURL === 'function' ? store.selectGrameneSwaggerURL() : `${api}/swagger`;
@@ -7864,7 +7864,7 @@ function $76e15aea9236bd47$var$compressChain(node, tax, maps) {
7864
7864
  ];
7865
7865
  let cur = node;
7866
7866
  while(true){
7867
- const kids = (cur.children || []).map((cid)=>tax[cid]).filter((c)=>c && c.leafIds.length > 0);
7867
+ const kids = (cur.children || []).map((cid)=>tax[cid]).filter((c)=>c && c.leafIds && c.leafIds.length > 0);
7868
7868
  if (kids.length !== 1) break;
7869
7869
  if (maps[cur._id]) break;
7870
7870
  cur = kids[0];
@@ -9455,9 +9455,37 @@ const $b07037ce9e6c6d78$var$PreviewCmp = (props)=>{
9455
9455
  ]
9456
9456
  });
9457
9457
  };
9458
+ const $b07037ce9e6c6d78$var$MIN_COL_WIDTH = 40;
9458
9459
  const $b07037ce9e6c6d78$var$TSVTable = ({ docs: docs, fields: fields, catalog: catalog, resolverCtx: resolverCtx, onMoveField: onMoveField })=>{
9459
9460
  const { header: header, headerKeys: headerKeys, rows: rows } = (0, $11024d65ffe77884$export$4600c165c3a455ee)(docs, fields, catalog, resolverCtx);
9460
9461
  const reorderableCount = fields.length;
9462
+ const [colWidths, setColWidths] = (0, $gXNCa$react.useState)({});
9463
+ const thRefs = (0, $gXNCa$react.useRef)({});
9464
+ const startResize = (key)=>(e)=>{
9465
+ e.preventDefault();
9466
+ e.stopPropagation();
9467
+ const th = thRefs.current[key];
9468
+ const startWidth = th && th.getBoundingClientRect().width || 100;
9469
+ const startX = e.clientX;
9470
+ const onMove = (ev)=>{
9471
+ const delta = ev.clientX - startX;
9472
+ const next = Math.max($b07037ce9e6c6d78$var$MIN_COL_WIDTH, startWidth + delta);
9473
+ setColWidths((prev)=>({
9474
+ ...prev,
9475
+ [key]: next
9476
+ }));
9477
+ };
9478
+ const onUp = ()=>{
9479
+ window.removeEventListener('pointermove', onMove);
9480
+ window.removeEventListener('pointerup', onUp);
9481
+ window.removeEventListener('pointercancel', onUp);
9482
+ document.body.style.userSelect = '';
9483
+ };
9484
+ document.body.style.userSelect = 'none';
9485
+ window.addEventListener('pointermove', onMove);
9486
+ window.addEventListener('pointerup', onUp);
9487
+ window.addEventListener('pointercancel', onUp);
9488
+ };
9461
9489
  return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("div", {
9462
9490
  className: "exporter-preview-tsv-scroll",
9463
9491
  children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("table", {
@@ -9469,33 +9497,57 @@ const $b07037ce9e6c6d78$var$TSVTable = ({ docs: docs, fields: fields, catalog: c
9469
9497
  const key = headerKeys[i];
9470
9498
  const fieldIdx = fields.indexOf(key);
9471
9499
  const reorderable = fieldIdx !== -1;
9472
- return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("th", {
9500
+ const w = colWidths[key];
9501
+ const thStyle = w ? {
9502
+ width: `${w}px`,
9503
+ maxWidth: `${w}px`,
9504
+ minWidth: `${w}px`
9505
+ } : undefined;
9506
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("th", {
9473
9507
  title: key,
9474
- children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("div", {
9475
- className: "exporter-preview-th-inner",
9476
- children: [
9477
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("button", {
9478
- type: "button",
9479
- className: "exporter-preview-reorder-btn",
9480
- disabled: !reorderable || fieldIdx === 0,
9481
- onClick: ()=>onMoveField(key, -1),
9482
- title: "Move left",
9483
- children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reacticonsbs.BsArrowLeftShort), {})
9484
- }),
9485
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
9486
- className: "exporter-preview-th-label",
9487
- children: h
9488
- }),
9489
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("button", {
9490
- type: "button",
9491
- className: "exporter-preview-reorder-btn",
9492
- disabled: !reorderable || fieldIdx === reorderableCount - 1,
9493
- onClick: ()=>onMoveField(key, 1),
9494
- title: "Move right",
9495
- children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reacticonsbs.BsArrowRightShort), {})
9496
- })
9497
- ]
9498
- })
9508
+ style: thStyle,
9509
+ ref: (el)=>{
9510
+ thRefs.current[key] = el;
9511
+ },
9512
+ children: [
9513
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("div", {
9514
+ className: "exporter-preview-th-inner",
9515
+ children: [
9516
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("button", {
9517
+ type: "button",
9518
+ className: "exporter-preview-reorder-btn",
9519
+ disabled: !reorderable || fieldIdx === 0,
9520
+ onClick: ()=>onMoveField(key, -1),
9521
+ title: "Move left",
9522
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reacticonsbs.BsArrowLeftShort), {})
9523
+ }),
9524
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
9525
+ className: "exporter-preview-th-label",
9526
+ children: h
9527
+ }),
9528
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("button", {
9529
+ type: "button",
9530
+ className: "exporter-preview-reorder-btn",
9531
+ disabled: !reorderable || fieldIdx === reorderableCount - 1,
9532
+ onClick: ()=>onMoveField(key, 1),
9533
+ title: "Move right",
9534
+ children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reacticonsbs.BsArrowRightShort), {})
9535
+ })
9536
+ ]
9537
+ }),
9538
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
9539
+ className: "exporter-preview-col-resizer",
9540
+ onPointerDown: startResize(key),
9541
+ onDoubleClick: ()=>setColWidths((prev)=>{
9542
+ const n = {
9543
+ ...prev
9544
+ };
9545
+ delete n[key];
9546
+ return n;
9547
+ }),
9548
+ title: "Drag to resize \xb7 double-click to reset"
9549
+ })
9550
+ ]
9499
9551
  }, key);
9500
9552
  })
9501
9553
  })
@@ -9503,10 +9555,20 @@ const $b07037ce9e6c6d78$var$TSVTable = ({ docs: docs, fields: fields, catalog: c
9503
9555
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("tbody", {
9504
9556
  children: [
9505
9557
  rows.map((row, r)=>/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("tr", {
9506
- children: row.map((c, i)=>/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("td", {
9558
+ children: row.map((c, i)=>{
9559
+ const key = headerKeys[i];
9560
+ const w = colWidths[key];
9561
+ const tdStyle = w ? {
9562
+ width: `${w}px`,
9563
+ maxWidth: `${w}px`,
9564
+ minWidth: `${w}px`
9565
+ } : undefined;
9566
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("td", {
9507
9567
  title: c,
9568
+ style: tdStyle,
9508
9569
  children: c
9509
- }, headerKeys[i]))
9570
+ }, key);
9571
+ })
9510
9572
  }, r)),
9511
9573
  rows.length === 0 && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("tr", {
9512
9574
  children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("td", {