wuepgg3-track 3.0.3 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/{SharedSystems-Czb8QUFv.mjs → SharedSystems-CQUTbUIx.mjs} +675 -433
  2. package/dist/{WebGLRenderer-Bd4vvqtJ.mjs → WebGLRenderer-zlVosyby.mjs} +417 -382
  3. package/dist/{WebGPURenderer-CVU5sf4P.mjs → WebGPURenderer-OAybUJeH.mjs} +277 -258
  4. package/dist/{browserAll-CZ03TD2_.mjs → browserAll-Byje74wY.mjs} +2 -2
  5. package/dist/{colorToUniform-BwrjBKZW.mjs → colorToUniform-COOzkdM9.mjs} +9 -8
  6. package/dist/components/GenomeView/TrackComponents/BamComponents/BamAnnotation.d.ts +1 -1
  7. package/dist/components/GenomeView/TrackComponents/CategoricalComponents/CategoricalAnnotation.d.ts +1 -1
  8. package/dist/components/GenomeView/TrackComponents/DynseqComponents/DynseqTrackComponents.d.ts +2 -3
  9. package/dist/components/GenomeView/TrackComponents/GenomeAlignComponents/GenomeAlignComponents.d.ts +3 -1
  10. package/dist/components/GenomeView/TrackComponents/GenomeAlignComponents/HorizontalFragment.d.ts +1 -0
  11. package/dist/components/GenomeView/TrackComponents/GenomeAlignComponents/MultiAlignmentViewCalculator.d.ts +1 -0
  12. package/dist/components/GenomeView/TrackComponents/GroupedTrackManager.d.ts +3 -0
  13. package/dist/components/GenomeView/TrackComponents/InteractionComponents/InteractionTrackComponent.d.ts +4 -15
  14. package/dist/components/GenomeView/TrackComponents/MethylcComponents/MethylCTrackComputation.d.ts +5 -13
  15. package/dist/components/GenomeView/TrackComponents/QBedComponents/QBedTrackComponents.d.ts +9 -26
  16. package/dist/components/GenomeView/TrackComponents/RulerComponents/Ruler.d.ts +1 -1
  17. package/dist/components/GenomeView/TrackComponents/VcfComponents/Vcf.d.ts +1 -0
  18. package/dist/components/GenomeView/TrackComponents/VcfComponents/VcfTrack.d.ts +5 -24
  19. package/dist/components/GenomeView/TrackComponents/bedComponents/FiberTrackComponent.d.ts +5 -39
  20. package/dist/components/GenomeView/TrackComponents/commonComponents/HoverToolTips/HoverToolTip.d.ts +5 -0
  21. package/dist/components/GenomeView/TrackComponents/commonComponents/OutsideClickDetector.d.ts +1 -1
  22. package/dist/components/GenomeView/TrackComponents/commonComponents/TrackLegend.d.ts +1 -1
  23. package/dist/components/GenomeView/TrackComponents/commonComponents/annotation/AnnotationArrows.d.ts +1 -1
  24. package/dist/components/GenomeView/TrackComponents/commonComponents/numerical/NumericalAggregator.d.ts +2 -1
  25. package/dist/components/GenomeView/TrackComponents/commonComponents/numerical/NumericalTrack.d.ts +3 -1
  26. package/dist/components/GenomeView/TrackComponents/commonComponents/stats/BoxplotTrackComponents.d.ts +3 -37
  27. package/dist/components/GenomeView/TrackComponents/displayModeComponentMap.d.ts +1 -1
  28. package/dist/components/GenomeView/TrackComponents/geneAnnotationTrackComponents/BackgroundedText.d.ts +1 -1
  29. package/dist/components/GenomeView/TrackComponents/geneAnnotationTrackComponents/GeneDetail.d.ts +2 -2
  30. package/dist/components/GenomeView/genomeNavigator/Ruler.d.ts +1 -1
  31. package/dist/components/GenomeView/genomeNavigator/SelectableGenomeArea.d.ts +1 -1
  32. package/dist/components/GenomeView/genomeNavigator/SelectedRegionBox.d.ts +1 -1
  33. package/dist/genome-hub/GenomeSerializer.d.ts +1 -1
  34. package/dist/genome-hub/genome-schema.d.ts +1 -2
  35. package/dist/getLocalData/LocalBigSource.d.ts +47 -0
  36. package/dist/getRemoteData/BigSourceWorker.d.ts +47 -0
  37. package/dist/getRemoteData/BigSourceWorkerGmod.d.ts +14 -5
  38. package/dist/getRemoteData/VcfSource.d.ts +9 -0
  39. package/dist/getRemoteData/hicSource.d.ts +1 -1
  40. package/dist/getRemoteData/io/remoteFile.d.ts +1 -1
  41. package/dist/getRemoteData/tabixSource.d.ts +18 -0
  42. package/dist/getRemoteData/vendor/bbi-js/main/bigwig.d.ts +1 -0
  43. package/dist/getRemoteData/vendor/bbi-js/utils/bin.d.ts +20 -0
  44. package/dist/getRemoteData/vendor/bbi-js/utils/das.d.ts +6 -0
  45. package/dist/getRemoteData/vendor/bbi-js/utils/jszlib.d.ts +1 -0
  46. package/dist/getRemoteData/vendor/bbi-js/utils/sha1.d.ts +1 -0
  47. package/dist/getRemoteData/vendor/bbi-js/utils/spans.d.ts +13 -0
  48. package/dist/{index-lRQCOP9E.mjs → index-BRD1ij9p.mjs} +64989 -66773
  49. package/dist/index.es.js +11 -11
  50. package/dist/index.umd.js +239 -228
  51. package/dist/{init-Bk9eSswv.mjs → init-DVJ9vOmS.mjs} +370 -355
  52. package/dist/models/AlignmentSegment.d.ts +1 -1
  53. package/dist/models/AlignmentStringUtils.d.ts +1 -1
  54. package/dist/models/BamAlignment.d.ts +1 -1
  55. package/dist/models/BedRecord.d.ts +1 -1
  56. package/dist/models/Chromosome.d.ts +1 -1
  57. package/dist/models/ChromosomeInterval.d.ts +1 -1
  58. package/dist/models/DisplayedRegionModel.d.ts +1 -1
  59. package/dist/models/Feature.d.ts +2 -2
  60. package/dist/models/FeatureAggregator.d.ts +4 -5
  61. package/dist/models/FeatureArranger.d.ts +7 -1
  62. package/dist/models/NavigationContext.d.ts +2 -1
  63. package/dist/models/OpenInterval.d.ts +1 -1
  64. package/dist/models/Snp.d.ts +1 -1
  65. package/dist/models/TrackModel.d.ts +3 -1
  66. package/dist/models/genomes/allGenomes.d.ts +20 -0
  67. package/dist/models/genomes/mCalJa1.2.pat.X/mCalJa1.2.pat.X.d.ts +17 -0
  68. package/dist/models/getXSpan/FeaturePlacer.d.ts +2 -9
  69. package/dist/models/trackModels/trackProps.d.ts +1 -0
  70. package/dist/style.css +1 -1
  71. package/dist/trackConfigs/config-menu-components.tsx/ColorConfig.d.ts +2 -1
  72. package/dist/trackConfigs/config-menu-components.tsx/DownsamplingConfig.d.ts +8 -0
  73. package/dist/trackConfigs/config-menu-components.tsx/NumberConfig.d.ts +1 -1
  74. package/dist/types/track-container.d.ts +1 -0
  75. package/dist/webworkerAll-I0QzCLqb.mjs +2 -0
  76. package/package.json +2 -4
  77. package/dist/components/GenomeView/TrackComponents/CommonTrackStateChangeFunctions.tsx/createNewTrackState.d.ts +0 -18
  78. package/dist/components/GenomeView/TrackComponents/CommonTrackStateChangeFunctions.tsx/getDataAfterConfigChange.d.ts +0 -11
  79. package/dist/components/GenomeView/TrackComponents/bedComponents/BedcolorTrack.d.ts +0 -6
  80. package/dist/components/GenomeView/TrackComponents/commonComponents/annotation/AnnotationTrack.d.ts +0 -25
  81. package/dist/components/GenomeView/TrackComponents/commonComponents/annotation/FullDisplayMode.d.ts +0 -45
  82. package/dist/components/testCustomGenome.d.ts +0 -505
  83. package/dist/getRemoteData/JasparSource.d.ts +0 -8
  84. package/dist/webworkerAll-D7VsNxkY.mjs +0 -2
@@ -5,7 +5,7 @@ import ChromosomeInterval from "./ChromosomeInterval";
5
5
  /**
6
6
  * A segment of an alignment record. Has methods that get parts of the attached record's sequences and loci.
7
7
  *
8
- * @author Silas Hsu
8
+ * @author Chanrung(Chad) Seng, Silas Hsu
9
9
  */
10
10
  export declare class AlignmentSegment extends FeatureSegment {
11
11
  readonly feature: AlignmentRecord;
@@ -33,7 +33,7 @@ export declare function makeBaseNumberLookup(sequence: string, baseAtStart: numb
33
33
  /**
34
34
  * An iterator that steps along a string, skipping '-' characters. Instances start at index -1.
35
35
  *
36
- * @author Silas Hsu
36
+ * @author Chanrung(Chad) Seng, Silas Hsu
37
37
  */
38
38
  export declare class AlignmentIterator {
39
39
  sequence: string;
@@ -15,7 +15,7 @@ interface AlignmentResult {
15
15
  /**
16
16
  * A BAM record.
17
17
  *
18
- * @author Silas Hsu
18
+ * @author Chanrung(Chad) Seng, Silas Hsu
19
19
  * @author David Ayeke
20
20
  * @author Daofeng Li
21
21
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Records returned by BedSource and its worker. Each prop is a column in the bed file.
3
3
  *
4
- * @author Silas Hsu
4
+ * @author Chanrung(Chad) Seng, Silas Hsu
5
5
  */
6
6
  interface BedRecord {
7
7
  chr: string;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Simple container for chromosome info.
3
3
  *
4
- * @author Silas Hsu
4
+ * @author Chanrung(Chad) Seng, Silas Hsu
5
5
  */
6
6
  export default class Chromosome {
7
7
  private _name;
@@ -20,7 +20,7 @@ interface MergedLocus<T> {
20
20
  * Basically an OpenInterval with a chromosome's name. Expresses genomic coordinates.
21
21
  *
22
22
  * @implements {Serializable}
23
- * @author Silas Hsu
23
+ * @author Chanrung(Chad) Seng, Silas Hsu
24
24
  */
25
25
  declare class ChromosomeInterval extends OpenInterval implements IChromosomeInterval {
26
26
  chr: string;
@@ -6,7 +6,7 @@ import ChromosomeInterval from "./ChromosomeInterval";
6
6
  * Model that stores the view window/region in a larger navigation context (e.g. a genome). Internally stores the
7
7
  * region as an open interval of nav context coordinates (@see {@link NavigationContext}).
8
8
  *
9
- * @author Silas Hsu
9
+ * @author Chanrung(Chad) Seng, Silas Hsu
10
10
  */
11
11
  declare class DisplayedRegionModel {
12
12
  _navContext: NavigationContext;
@@ -16,7 +16,7 @@ export declare const REVERSE_STRAND_CHAR = "-";
16
16
  * A feature, or annotation, in the genome.
17
17
  *
18
18
  * @implements {Serializable}
19
- * @author Silas Hsu
19
+ * @author Chanrung(Chad) Seng, Silas Hsu
20
20
  */
21
21
  export declare class Feature {
22
22
  locus: ChromosomeInterval;
@@ -78,7 +78,7 @@ export declare class Feature {
78
78
  /**
79
79
  * Everything a Feature is, plus a `value` prop.
80
80
  *
81
- * @author Silas Hsu
81
+ * @author Chanrung(Chad) Seng, Silas Hsu
82
82
  */
83
83
  export declare class NumericalFeature extends Feature {
84
84
  value: number | undefined;
@@ -46,7 +46,7 @@ export declare const DefaultArrayAggregators: {
46
46
  /**
47
47
  * Aggregator of features. Includes methods to construct x-to-data maps.
48
48
  *
49
- * @author Silas Hsu
49
+ * @author Chanrung(Chad) Seng, Silas Hsu, Chanrung(Chad) Seng
50
50
  */
51
51
  export declare class FeatureAggregator {
52
52
  /**
@@ -70,10 +70,9 @@ export declare class FeatureAggregator {
70
70
  * @param {object} viewWindow - optional window defining center region {start, end} for deduplication
71
71
  * @return {[any[], any[]]} tuple of [forwardAggregated, reverseAggregated]
72
72
  */
73
- makeXMap(features: Feature[], viewRegion: DisplayedRegionModel, width: number, aggregateFunc: (features: Array<any>) => any, useCenter?: boolean, viewWindow?: {
74
- start: number;
75
- end: number;
76
- }): [any[], any[]];
73
+ makeXMap(features: Feature[], viewRegion: DisplayedRegionModel, width: number, useCenter?: boolean): {
74
+ [key: string]: Feature[];
75
+ };
77
76
  makeXWindowMap(features: Feature[], viewRegion: DisplayedRegionModel, width: number, useCenter: boolean | undefined, windowSize: number): {
78
77
  [x: number]: Feature[];
79
78
  };
@@ -13,7 +13,9 @@ export interface PlacedFeatureGroup {
13
13
  * Return value from FeatureArranger::arrange()
14
14
  */
15
15
  export interface FeaturePlacementResult {
16
- placements: PlacedFeatureGroup[] | PlacedFeature[];
16
+ placements?: PlacedFeatureGroup[] | PlacedFeature[];
17
+ placementsForward?: PlacedFeatureGroup[] | PlacedFeature[];
18
+ placementsReverse?: PlacedFeatureGroup[] | PlacedFeature[];
17
19
  numRowsAssigned?: number;
18
20
  numHidden?: number;
19
21
  }
@@ -33,6 +35,10 @@ export declare class FeatureArranger {
33
35
  * @param {number} [hiddenPixels] - hide an item when its length less than this value. Default 0.5
34
36
  * @return {FeaturePlacementResult} suggested draw location info
35
37
  */
38
+ /**
39
+ * Check if two placements have adjacent loci
40
+ */
41
+ _assignRows(groups: PlacedFeatureGroup[], padding: number | PaddingFunc, sortItems: SortItemsOptions): number;
36
42
  arrange(features: Feature[], viewRegion: DisplayedRegionModel, width: number, padding: number | PaddingFunc | undefined, hiddenPixels: number | undefined, sortItems: SortItemsOptions | undefined, viewWindow: any): FeaturePlacementResult;
37
43
  }
38
44
  export default FeatureArranger;
@@ -10,7 +10,7 @@ import { Feature } from "./Feature";
10
10
  * have non-empty, unique names. In addition to this implicit coordinate system, NavContext methods also support
11
11
  * feature coordinates, which are a feature and base number relative to the start of the feature.
12
12
  *
13
- * @author Silas Hsu
13
+ * @author Chanrung(Chad) Seng, Silas Hsu
14
14
  */
15
15
  declare class NavigationContext {
16
16
  _name: string;
@@ -134,6 +134,7 @@ declare class NavigationContext {
134
134
  /**
135
135
  * Parses a location in this navigation context. Should be formatted like "$chrName:$startBase-$endBase" OR
136
136
  * "$featureName". Supports multi-chromosome intervals like "chr7:154900269-chr8:1379003".
137
+ * Also supports whitespace-separated formats like "chr7 154900269 chr8 1379003".
137
138
  *
138
139
  * Returns an open interval of context coordinates. Throws RangeError on parse failure.
139
140
  *
@@ -10,7 +10,7 @@ export interface IOpenInterval {
10
10
  * `myFunction(...interval)` is equivalent to `myFunction(interval.start, interval.end)`
11
11
  *
12
12
  * @implements {Serializable}
13
- * @author Silas Hsu
13
+ * @author Chanrung(Chad) Seng, Silas Hsu
14
14
  */
15
15
  export default class OpenInterval implements IOpenInterval {
16
16
  readonly start: number;
@@ -2,7 +2,7 @@ import Feature from "./Feature";
2
2
  /**
3
3
  * A data container for snp.
4
4
  *
5
- * @author Daofeng Li and Silas Hsu
5
+ * @author Daofeng Li and Chanrung(Chad) Seng, Silas Hsu
6
6
  */
7
7
  declare class Snp extends Feature {
8
8
  id: string;
@@ -42,12 +42,13 @@ interface ITrackModel {
42
42
  isSelected?: any;
43
43
  tracks?: any;
44
44
  waitToUpdate?: boolean;
45
+ changeConfigInitial?: boolean;
45
46
  }
46
47
  /**
47
48
  * An object storing track metadata and state.
48
49
  *
49
50
  * @implements {Serializable}
50
- * @author Silas Hsu
51
+ * @author Chanrung(Chad) Seng, Silas Hsu
51
52
  */
52
53
  export declare class TrackModel {
53
54
  /**
@@ -78,6 +79,7 @@ export declare class TrackModel {
78
79
  legendWidth?: any;
79
80
  details?: any;
80
81
  waitToUpdate: boolean;
82
+ changeConfigInitial: boolean;
81
83
  constructor(plainObject: ITrackModel);
82
84
  serialize(): this;
83
85
  static deserialize(plainObject: any): TrackModel;
@@ -178,6 +178,26 @@ export declare const allGenomes: ({
178
178
  }[];
179
179
  };
180
180
  };
181
+ } | {
182
+ genome: import("..").Genome;
183
+ navContext: import("../NavigationContext").default;
184
+ cytobands: {};
185
+ defaultRegion: import("..").OpenInterval;
186
+ defaultTracks: import("..").TrackModel[];
187
+ twoBitURL: string;
188
+ annotationTracks: {
189
+ Ruler: {
190
+ type: string;
191
+ label: string;
192
+ name: string;
193
+ }[];
194
+ Genes: {
195
+ name: string;
196
+ label: string;
197
+ type: string;
198
+ url: string;
199
+ }[];
200
+ };
181
201
  })[];
182
202
  export declare const genomeNameToConfig: {};
183
203
  interface SpeciesConfig {
@@ -0,0 +1,17 @@
1
+ export default mCalJa1_2_pat_X;
2
+ declare namespace mCalJa1_2_pat_X {
3
+ export { genome };
4
+ export { navContext };
5
+ export const cytobands: {};
6
+ export { defaultRegion };
7
+ export { defaultTracks };
8
+ export const twoBitURL: string;
9
+ export { annotationTracks };
10
+ }
11
+ declare const genome: Genome;
12
+ declare const navContext: import("../../NavigationContext").default;
13
+ declare const defaultRegion: import("../..").OpenInterval;
14
+ declare const defaultTracks: TrackModel[];
15
+ import annotationTracks from "./annotationTracks.json";
16
+ import Genome from "../../Genome";
17
+ import TrackModel from "../../TrackModel";
@@ -5,7 +5,7 @@ import OpenInterval from "../OpenInterval";
5
5
  import NavigationContext from "../NavigationContext";
6
6
  import { FeatureSegment } from "../FeatureSegment";
7
7
  import { GenomeInteraction } from "../../getRemoteData/GenomeInteraction";
8
- import { FeaturePlacementResult } from "../FeatureArranger";
8
+ import { FeaturePlacementResult, PlacedFeatureGroup } from "../FeatureArranger";
9
9
  /**
10
10
  * Draw information for a Feature
11
11
  */
@@ -81,14 +81,7 @@ export declare class FeaturePlacer {
81
81
  * @return {FeaturePlacementResult} draw info with placements and metadata
82
82
  */
83
83
  placeFeatures(options: PlaceFeaturesOptions): FeaturePlacementResult | PlacedFeature;
84
- /**
85
- * Check if two placements have adjacent loci
86
- */
87
- private _lociAreAdjacent;
88
- /**
89
- * Finalize a group of adjacent placements and assign a row
90
- */
91
- private _finalizeGroupWithRow;
84
+ _combineAdjacent(placements: PlacedFeature[]): PlacedFeatureGroup[];
92
85
  /**
93
86
  * Gets the visible part of a feature after it has been placed in a navigation context, as well as if was placed
94
87
  * into a reversed part of the nav context.
@@ -44,4 +44,5 @@ export interface TrackProps {
44
44
  [key: string]: any;
45
45
  };
46
46
  handleRetryFetchTrack: (trackIdx: number) => void;
47
+ initialLoad: any;
47
48
  }
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .IsoformSelection{padding:0;margin:0;font-size:smaller;border-collapse:collapse;display:grid;grid-template-columns:auto}.IsoformSelection-item{border:1px solid lightgrey;display:grid;grid-template-columns:80px auto auto auto;grid-gap:5px;align-items:center}.IsoformSelection-collection{word-wrap:break-word;word-break:break-all}.IsoformSelection-item:hover{background-color:#fdbb84!important;cursor:pointer}.IsoformSelection-item td{padding:0 5px}.IsoformSelection-description{font-size:x-small;min-width:200px}.IsoformSelection-item-simple{border:1px solid lightgrey}.IsoformSelection-item-simple:hover{background-color:#fdbb84;cursor:pointer}.IsoformSelection-empty-msg{background-color:#a4ae86!important}.react-autosuggest__suggestions-container--open{border:1px solid #aaa;box-shadow:"0 2px 12px rgba(0, 0, 0, 0.1)";background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px;z-index:2;width:100%;max-height:200px;overflow-y:auto}.react-autosuggest__suggestions-list{margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion{cursor:pointer;padding:5px}.react-autosuggest__suggestion--highlighted{background-color:#ddd}div.GeneSearchBox-speech{position:absolute;right:5ch;top:10px}div.GeneSearchBox-speech button{padding:2px;margin-right:2px}.react-autosuggest__suggestions-container--open{max-height:800px;overflow:auto}.react-autosuggest__suggestions-list-222{background-color:#fff;margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestions-list-white{background-color:#222;margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion:hover{background-color:#a4ae86!important}.rc-drawer{top:0;right:0;bottom:0;left:0;position:fixed;z-index:1050;pointer-events:none}.rc-drawer-inline{position:absolute}.rc-drawer-mask{top:0;right:0;bottom:0;left:0;position:absolute;z-index:1050;background:#00000080;pointer-events:auto}.rc-drawer-content-wrapper{position:absolute;z-index:1050;overflow:hidden;transition:transform .3s}.rc-drawer-content-wrapper-hidden{display:none}.rc-drawer-left .rc-drawer-content-wrapper{top:0;bottom:0;left:0}.rc-drawer-right .rc-drawer-content-wrapper{top:0;right:0;bottom:0}.rc-drawer-content{width:100%;height:100%;overflow:auto;background:#fff;pointer-events:auto}#threed-mol-container{position:relative;width:100%;height:100%;overflow:hidden}.picture{position:relative;display:block}.side{position:relative;display:flex}.picture .box1{position:relative}.picture .box2{position:absolute;right:0;bottom:0;border:1px black solid;z-index:2}.side .box1{position:relative}.side .box2{position:relative;border-left:1px black solid}#accordion p{margin-bottom:0}#accordion ul{list-style-type:none;padding:0;margin:0}#accordion input[type=text]{width:100%}#accordion input,#accordion button,#accordion select{margin-right:1ch}#accordion select{margin-left:1ch}.thumb-control label{display:block}.toggle-model-container{display:flex;justify-content:space-between;margin-bottom:1px}.toggle-model-container:hover{border-bottom:1px solid orange}.toggle-model:hover{background-color:orange;cursor:pointer}.card-body{padding:.75rem}#accordion{display:flex}.placement-container{position:absolute;left:2px;top:2px;z-index:1}.placement-container span{display:inline-block}.card-header button{margin-bottom:0!important}.card-header{padding:0}.FrameListMenu label{margin-bottom:0}.FrameListMenu ol{list-style-type:circle}.hoverButtons button{margin:2px 0;display:block}.closeMenu-3d{font-size:36px;cursor:pointer;color:red;position:absolute;right:10px;top:-8px;z-index:5}.arrow-list input[type=number]{margin-bottom:0!important;margin-right:2px!important;width:8ch}#static-legend{position:absolute;z-index:4;left:10px;bottom:50px}.enhanced-drawer{box-shadow:0 25px 50px -12px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.enhanced-accordion{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:12px;line-height:1.5}.drawer-header{display:flex;justify-content:space-between;align-items:center}.drawer-title{margin:0;font-size:16px;font-weight:600;color:#1e293b;background:linear-gradient(135deg,#3b82f6,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-button{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .2s ease}.close-button:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626;transform:scale(1.05)}.enhanced-accordion-section{margin-bottom:8px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.enhanced-accordion-section:hover{border-color:#cbd5e1;box-shadow:0 4px 8px #00000014}.enhanced-accordion-section.open{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.enhanced-accordion-header{padding:8px;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s ease;border:none;border-bottom:1px solid #e2e8f0;border-radius:0;margin-bottom:0;box-shadow:none}.enhanced-accordion-section.open .enhanced-accordion-header{background:#f0f9ff;border-bottom-color:#3b82f6}.enhanced-accordion-header:hover{background:#f1f5f9}.enhanced-accordion-section.open .enhanced-accordion-header:hover{background:#e0f2fe}.accordion-title{margin:0;font-size:14px;font-weight:600;color:#1e293b;display:flex;justify-content:space-between;align-items:center}.accordion-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:transparent;transition:all .3s cubic-bezier(.4,0,.2,1)}.enhanced-accordion-header:hover .accordion-arrow{background:transparent;transform:scale(1.1)}.arrow-icon{color:#64748b;transition:all .3s ease;transform-origin:center}.arrow-icon.open{transform:rotate(90deg) scale(1.1)}.enhanced-accordion-content{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);background:#fff}.enhanced-accordion-section.open .enhanced-accordion-content{overflow:visible}.accordion-content-inner{padding:12px}.enhanced-accordion-section.open .enhanced-accordion-content{animation:fadeInContent .3s ease .1s both}@keyframes fadeInContent{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.section-content{display:block;padding:0}.control-group{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;transition:none;position:relative;overflow:visible;margin-bottom:8px}.control-group:not(:last-child):after{display:none}.control-group:before{display:none}.control-group:hover{border-color:transparent;box-shadow:none;transform:none;background:transparent}.control-group.primary,.control-group.secondary,.control-group.warning,.control-group.info{background:transparent;border:none}.control-group.primary .subsection-title,.control-group.secondary .subsection-title,.control-group.warning .subsection-title,.control-group.info .subsection-title{color:#1e293b}.subsection-title{color:#1e293b;font-size:12px;font-weight:600;margin:0 0 2px;padding-bottom:0;border-bottom:none;display:block;position:relative;text-transform:none;letter-spacing:0px}.subsection-title:before{display:none}.control-group .info-section{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px}.control-group .toggle-control{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px;transition:none}.control-group .toggle-control:hover{background:transparent;border-color:transparent}.control-group .input-group{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px;transition:none}.control-group .input-group:hover{background:transparent;border-color:transparent}.control-group .file-upload-group{background:transparent;border:none;border-radius:0;padding:0;text-align:left;transition:none;margin-bottom:8px}.control-group .file-upload-group:hover{border-color:transparent;background:transparent}.control-group .highlight-controls{display:flex;align-items:center;gap:8px;padding:0;background:transparent;border:none;border-radius:0}.control-group .scale-controls{background:transparent;border:none;border-radius:0;padding:0}.control-group .scale-info{background:transparent;border:none;border-radius:0;padding:0;margin:6px 0;font-size:12px;color:#1e40af;text-align:left}.control-group .scale-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.control-group .animation-controls,.control-group .sync-controls,.control-group .export-controls{background:transparent;border:none;border-radius:0;padding:0}.control-group .envelope-controls,.control-group .spin-controls{background:transparent;border:none;border-radius:0;box-shadow:none}.control-group .info-message{background:transparent;border:none;color:#1e40af;padding:0;border-radius:0;text-align:left;font-weight:300}.control-group .warning-message{background:transparent;border:none;color:#92400e;padding:0;border-radius:0;text-align:left;font-weight:300}.control-group.hidden{display:none!important}.control-label{display:block;font-weight:500;color:#374151;margin-bottom:4px}.input-label{display:block;font-size:12px;font-weight:500;color:#6b7280;margin-bottom:4px}.toggle-control{margin:8px 0}.toggle-label{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin-bottom:0}.label-text{font-weight:500;color:#374151}.toggle-wrapper{position:relative;width:48px;height:24px}.toggle-input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.3s ease;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s ease;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-input:checked+.toggle-slider{background:linear-gradient(135deg,#3b82f6,#6366f1)}.toggle-input:checked+.toggle-slider:before{transform:translate(24px)}.radio-group{display:flex;flex-direction:column;gap:4px}.radio-group.compact{gap:2px}.radio-option{display:flex;align-items:center;cursor:pointer;border-radius:8px;transition:all .2s ease;margin-bottom:0}.radio-group.compact .radio-option{padding:6px 10px}.radio-option:hover{background:#f8fafc}.radio-input{position:absolute;opacity:0;width:0;height:0}.radio-custom{width:18px;height:18px;border:2px solid #cbd5e1;border-radius:50%;margin-right:12px;position:relative;transition:all .2s ease}.radio-group.compact .radio-custom{margin-right:8px}.radio-input:checked+.radio-custom{border-color:#3b82f6;background:linear-gradient(135deg,#3b82f6,#6366f1)}.radio-input:checked+.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:#fff;border-radius:50%}.radio-label{color:#374151}.thumbnail-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.thumbnail-option{cursor:pointer;margin-bottom:0}.thumbnail-input{position:absolute;opacity:0;width:0;height:0}.thumbnail-custom{display:flex;flex-direction:column;align-items:center;padding:12px;border:2px solid #e2e8f0;border-radius:8px;transition:all .2s ease;background:#fff}.thumbnail-input:checked+.thumbnail-custom{border-color:#3b82f6;background:linear-gradient(135deg,#dbeafe,#e0e7ff)}.option-icon{font-size:12px}.option-label{font-size:12px;font-weight:500;color:#374151}.enhanced-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.enhanced-btn:not(:disabled):hover{transform:none;box-shadow:0 2px 4px #0000001a}.enhanced-btn.primary{background:#fff;color:#3b82f6;border-color:#3b82f6}.enhanced-btn.primary:hover:not(:disabled){background:#f8fafc;border-color:#2563eb;color:#2563eb}.enhanced-btn.secondary{background:#fff;color:#64748b;border-color:#64748b}.enhanced-btn.secondary:hover:not(:disabled){background:#f8fafc;border-color:#475569;color:#475569}.enhanced-btn.success{background:#fff;color:#10b981;border-color:#10b981}.enhanced-btn.success:hover:not(:disabled){background:#f0fdf4;border-color:#059669;color:#059669}.enhanced-btn.info{background:#fff;color:#06b6d4;border-color:#06b6d4}.enhanced-btn.info:hover:not(:disabled){background:#f0f9ff;border-color:#0891b2;color:#0891b2}.enhanced-btn.warning{background:#fff;color:#f59e0b;border-color:#f59e0b}.enhanced-btn.warning:hover:not(:disabled){background:#fffbeb;border-color:#d97706;color:#d97706}.enhanced-btn.danger{background:#fff;color:#ef4444;border-color:#ef4444}.enhanced-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#dc2626;color:#dc2626}.enhanced-btn.small{padding:6px 10px;font-size:11px;min-height:28px}.enhanced-btn.large{padding:10px 16px;font-size:13px;min-height:36px}.button-group{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.button-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.enhanced-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:8px 12px;font-size:12px;font-weight:500;line-height:1.3;border-radius:6px;border:1.5px solid transparent;cursor:pointer;transition:all .2s ease;text-decoration:none;background:#fff;white-space:nowrap;min-height:32px;box-sizing:border-box}.enhanced-input{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.enhanced-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.enhanced-input:hover{border-color:#9ca3af}.enhanced-input.small{width:80px}.modern-input{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.modern-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.modern-input:hover{border-color:#9ca3af}.input-group{display:flex;align-items:center;gap:6px;margin-bottom:4px}.input-group .enhanced-input{flex:1}.enhanced-select{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;background:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.enhanced-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.enhanced-select:hover{border-color:#9ca3af}.opacity-slider{width:80px;height:4px;border-radius:2px;background:#d1d5db;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0 8px}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);cursor:pointer;box-shadow:0 2px 4px #0003}.opacity-value{font-size:12px;color:#6b7280;min-width:32px;text-align:center}.file-upload-group{margin:8px 0}.file-upload-label{display:block;font-weight:500;color:#374151;margin-bottom:4px}.file-input{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.file-input:hover{border-color:#3b82f6;background:#fff}.file-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.warning-message{padding:0;background:transparent;border:none;border-radius:0;color:#92400e;font-size:13px;display:flex;align-items:center;gap:6px}.info-message{padding:0;background:transparent;border:none;border-radius:0;color:#1e40af;font-size:13px;display:flex;align-items:center;gap:6px}.envelope-controls,.spin-controls,.scale-controls{background:transparent;border:none;border-radius:0;padding:0}.color-control,.opacity-control,.select-control{display:flex;align-items:center;gap:6px}.highlight-controls{display:flex;align-items:flex-start;gap:8px}.scale-info{font-size:13px;color:#6b7280;margin:6px 0;padding:0;background:transparent;border-radius:0}.scale-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.animation-controls,.sync-controls,.export-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.help-link{color:#3b82f6;text-decoration:none;font-size:13px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;transition:all .2s ease}.help-link:hover{background:#dbeafe;text-decoration:none}.info-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}@media (max-width: 768px){.button-group-grid{grid-template-columns:1fr}.thumbnail-options{grid-template-columns:repeat(2,1fr)}.scale-inputs{grid-template-columns:1fr}}[data-theme=light] .flexlayout__layout{left:0;top:0;right:0;bottom:0;position:relative;height:100%}[data-theme=light] .flexlayout__splitter{background-color:#ddd}[data-theme=light] .flexlayout__splitter:hover{background-color:#ccc}[data-theme=light] .flexlayout__splitter_drag{border-radius:5px;background-color:#bbb;z-index:1000}[data-theme=light] .flexlayout__outline_rect{position:absolute;cursor:move;border:2px solid red;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=light] .flexlayout__outline_rect_edge{cursor:move;border:2px solid green;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=light] .flexlayout__edge_rect{position:absolute;z-index:1000;box-shadow:inset 0 0 5px #0003;background-color:#d3d3d3}[data-theme=light] .flexlayout__drag_rect{position:absolute;cursor:move;border:2px solid #aaaaaa;box-shadow:inset 0 0 60px #0000004d;border-radius:5px;z-index:1000;box-sizing:border-box;background-color:#eee;opacity:.9;text-align:center;display:flex;justify-content:center;flex-direction:column;overflow:hidden;padding:10px;word-wrap:break-word}[data-theme=light] .flexlayout__tabset{overflow:hidden;background-color:#fff;box-sizing:border-box}[data-theme=light] .flexlayout__tab{overflow:auto;position:absolute;box-sizing:border-box;background-color:#fff}[data-theme=light] .flexlayout__tab_button{cursor:pointer;padding:0 8px;box-shadow:inset 0 0 5px #00000026;border-top-left-radius:3px;border-top-right-radius:3px;float:left;vertical-align:top;box-sizing:border-box}[data-theme=light] .flexlayout__tab_button--selected{color:#000;background-color:#ddd}[data-theme=light] .flexlayout__tab_button--unselected{color:gray}[data-theme=light] .flexlayout__tab_button_leading,[data-theme=light] .flexlayout__tab_button_content{float:left;display:inline-block}[data-theme=light] .flexlayout__tab_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=light] .flexlayout__tab_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__tab_button_trailing{float:left;display:inline-block;margin-left:7px;margin-top:3px;width:12px;height:12px}[data-theme=light] .flexlayout__tab_button:hover .flexlayout__tab_button_trailing,[data-theme=light] .flexlayout__tab_button--selected .flexlayout__tab_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=light] .flexlayout__tab_button_overflow{float:left;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=light] .flexlayout__tabset_header{position:absolute;left:0;right:0;background-color:#e8e8e8;padding:3px 3px 3px 5px;box-shadow:inset 0 0 3px #8888888a;box-sizing:border-box}[data-theme=light] .flexlayout__tab_header_outer{background-color:#fff;position:absolute;left:0;right:0;overflow:hidden}[data-theme=light] .flexlayout__tab_header_inner{position:absolute;left:0;display:flex;justify-content:center;top:0;bottom:0}[data-theme=light] .flexlayout__tabset-selected{background-image:linear-gradient(#fff,#ccc)}[data-theme=light] .flexlayout__tabset-maximized{background-image:linear-gradient(#aaa,#eee)}[data-theme=light] .flexlayout__tab_toolbar{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=light] .flexlayout__tab_toolbar_button-min{width:20px;height:20px;background:transparent url('data:image/svg+xml;utf8,<svg height="100%" version="1.1" viewBox="0 0 36 36" width="100%" xmlns="http://www.w3.org/2000/svg"><path d="m 10,16 2,0 0,-4 4,0 0,-2 L 10,10 l 0,6 0,0 z"/><path d="m 20,10 0,2 4,0 0,4 2,0 L 26,10 l -6,0 0,0 z"/><path d="m 24,24 -4,0 0,2 L 26,26 l 0,-6 -2,0 0,4 0,0 z"/><path d="M 12,20 10,20 10,26 l 6,0 0,-2 -4,0 0,-4 0,0 z"/></svg>') no-repeat center/16px 16px;border:none;outline-width:0}[data-theme=light] .flexlayout__tab_toolbar_button-max{width:20px;height:20px;border:none;outline-width:0;background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 30" width="16" height="16" fill="black"><g transform="translate(7,7)"><path d="M5.5 0a.5.5 0 0 1 .5.5v4A1.5 1.5 0 0 1 4.5 6h-4a.5.5 0 0 1 0-1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 1 .5-.5m5 0a.5.5 0 0 1 .5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 1 0 1h-4A1.5 1.5 0 0 1 10 4.5v-4a.5.5 0 0 1 .5-.5M0 10.5a.5.5 0 0 1 .5-.5h4A1.5 1.5 0 0 1 6 11.5v4a.5.5 0 0 1-1 0v-4a.5.5 0 0 0-.5-.5h-4a.5.5 0 0 1-.5-.5m10 1a1.5 1.5 0 0 1 1.5-1.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 0-.5.5v4a.5.5 0 0 1-1 0z"/></g></svg>') no-repeat center/16px 16px}[data-theme=light] .flexlayout__popup_menu{font-size:12px;font-family:Arial,sans-serif}[data-theme=light] .flexlayout__popup_menu_item{padding:2px 10px}[data-theme=light] .flexlayout__popup_menu_item:hover{background-color:#d3d3d3}[data-theme=light] .flexlayout__popup_menu_container{box-shadow:inset 0 0 5px #00000026;border:1px solid lightgrey;background:#fff;border-radius:3px;position:absolute;z-index:1000}[data-theme=light] .flexlayout__border_top{background-color:#eee;border-bottom:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_bottom{background-color:#eee;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_left{background-color:#eee;border-right:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_right{background-color:#eee;border-left:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_inner_bottom{display:flex}[data-theme=light] .flexlayout__border_inner_left{position:absolute;white-space:nowrap;right:23px;transform-origin:top right;transform:rotate(-90deg)}[data-theme=light] .flexlayout__border_inner_right{position:absolute;white-space:nowrap;left:23px;transform-origin:top left;transform:rotate(90deg)}[data-theme=light] .flexlayout__border_button{display:inline-block;cursor:pointer;padding:2px 8px 3px;margin:2px;box-shadow:inset 0 0 5px #00000026;border-radius:3px;vertical-align:top;box-sizing:border-box;white-space:nowrap}[data-theme=light] .flexlayout__border_button--selected{color:#000;background-color:#ddd}[data-theme=light] .flexlayout__border_button--unselected{color:gray}[data-theme=light] .flexlayout__border_button_leading{display:inline}[data-theme=light] .flexlayout__border_button_content{display:inline-block}[data-theme=light] .flexlayout__border_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=light] .flexlayout__border_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__border_toolbar_left,[data-theme=light] .flexlayout__border_toolbar_right{position:absolute;display:flex;flex-direction:column-reverse;align-items:center;bottom:0;left:0;right:0}[data-theme=light] .flexlayout__border_toolbar_top,[data-theme=light] .flexlayout__border_toolbar_bottom{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=light] .flexlayout__border_button_overflow_top,[data-theme=light] .flexlayout__border_button_overflow_bottom,[data-theme=light] .flexlayout__border_button_overflow_right,[data-theme=light] .flexlayout__border_button_overflow_left{width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=dark] .flexlayout__layout{left:0;top:0;right:0;bottom:0;position:relative;height:100%}[data-theme=dark] .flexlayout__splitter{background-color:#000}[data-theme=dark] .flexlayout__splitter:hover{background-color:#333}[data-theme=dark] .flexlayout__splitter_drag{border-radius:5px;background-color:#444;z-index:1000}[data-theme=dark] .flexlayout__outline_rect{position:absolute;cursor:move;border:2px solid #cfe8ff;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=dark] .flexlayout__outline_rect_edge{cursor:move;border:2px solid #b7d1b5;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=dark] .flexlayout__edge_rect{position:absolute;z-index:1000;box-shadow:inset 0 0 5px #0003;background-color:#d3d3d3}[data-theme=dark] .flexlayout__drag_rect{position:absolute;cursor:move;border:2px solid #aaaaaa;box-shadow:inset 0 0 60px #0000004d;border-radius:5px;z-index:1000;box-sizing:border-box;background-color:#eee;opacity:.9;text-align:center;display:flex;justify-content:center;flex-direction:column;overflow:hidden;padding:10px;word-wrap:break-word}[data-theme=dark] .flexlayout__tabset{overflow:hidden;background-color:#222;box-sizing:border-box}[data-theme=dark] .flexlayout__tab{overflow:auto;position:absolute;box-sizing:border-box;background-color:#222;color:#fff}[data-theme=dark] .flexlayout__tab_button{cursor:pointer;padding:2px 8px 3px;margin:2px;float:left;vertical-align:top;box-sizing:border-box}[data-theme=dark] .flexlayout__tab_button--selected{color:#ddd;background-color:#222}[data-theme=dark] .flexlayout__tab_button--unselected{color:gray}[data-theme=dark] .flexlayout__tab_button_leading{float:left;display:inline-block}[data-theme=dark] .flexlayout__tab_button_content{display:inline-block}[data-theme=dark] .flexlayout__tab_button_textbox{float:left;border:none;color:#90ee90;background-color:#222}[data-theme=dark] .flexlayout__tab_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__tab_button_trailing{display:inline-block;margin-left:3px;margin-top:4px;width:15px;height:15px}[data-theme=light] .flexlayout__border_button:hover .flexlayout__border_button_trailing,[data-theme=light] .flexlayout__border_button--selected .flexlayout__border_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=dark] .flexlayout__tab_button_overflow{float:left;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;color:#d3d3d3;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=dark] .flexlayout__tabset_header{position:absolute;left:0;right:0;color:#eee;background-color:#212121;padding:3px 3px 3px 5px;box-sizing:border-box}[data-theme=dark] .flexlayout__tab_header_inner{position:absolute;left:0;top:0;bottom:0}[data-theme=dark] .flexlayout__tab_header_outer{background-color:#000;position:absolute;left:0;right:0;overflow:hidden}[data-theme=dark] .flexlayout__tabset-selected{background-image:linear-gradient(#111,#444)}[data-theme=dark] .flexlayout__tabset-maximized{background-image:linear-gradient(#666,#333)}[data-theme=dark] .flexlayout__tab_toolbar{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=dark] .flexlayout__tab_toolbar_button-min{width:20px;height:20px;border:none;outline-width:0;background:transparent url(./images/maximize.png) no-repeat center}[data-theme=dark] .flexlayout__tab_toolbar_button-max{width:20px;height:20px;border:none;outline-width:0;background:transparent url(./images/restore.png) no-repeat center}[data-theme=dark] .flexlayout__popup_menu{font-size:12px;font-family:Arial,sans-serif}[data-theme=dark] .flexlayout__popup_menu_item{padding:2px 10px;color:#ddd}[data-theme=dark] .flexlayout__popup_menu_item:hover{background-color:#444}[data-theme=dark] .flexlayout__popup_menu_container{box-shadow:inset 0 0 5px #00000026;border:1px solid #555;background:#222;border-radius:3px;position:absolute;z-index:1000}[data-theme=dark] .flexlayout__border_top{background-color:#000;border-bottom:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_bottom{background-color:#000;border-top:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_left{background-color:#000;border-right:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_right{background-color:#000;border-left:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_inner_bottom{display:flex}[data-theme=dark] .flexlayout__border_inner_left{position:absolute;white-space:nowrap;right:23px;transform-origin:top right;transform:rotate(-90deg)}[data-theme=dark] .flexlayout__border_inner_right{position:absolute;white-space:nowrap;left:23px;transform-origin:top left;transform:rotate(90deg)}[data-theme=dark] .flexlayout__border_button{background-color:#222;color:#fff;display:inline-block;white-space:nowrap;cursor:pointer;padding:2px 8px 3px;margin:2px;vertical-align:top;box-sizing:border-box}[data-theme=dark] .flexlayout__border_button--selected{color:#ddd;background-color:#222}[data-theme=dark] .flexlayout__border_button--unselected{color:gray}[data-theme=dark] .flexlayout__border_button_leading{display:inline}[data-theme=dark] .flexlayout__border_button_content{display:inline-block}[data-theme=dark] .flexlayout__border_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=dark] .flexlayout__border_button_textbox:focus{outline:none}[data-theme=dark] .flexlayout__border_button_trailing{display:inline-block;margin-left:5px;margin-top:3px;width:8px;height:8px}[data-theme=dark] .flexlayout__border_button:hover .flexlayout__border_button_trailing,[data-theme=dark] .flexlayout__border_button--selected .flexlayout__border_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=dark] .flexlayout__border_toolbar_left,[data-theme=dark] .flexlayout__border_toolbar_right{position:absolute;display:flex;flex-direction:column-reverse;align-items:center;bottom:0;left:0;right:0}[data-theme=dark] .flexlayout__border_toolbar_top,[data-theme=dark] .flexlayout__border_toolbar_bottom{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=dark] .flexlayout__border_button_overflow_top,[data-theme=dark] .flexlayout__border_button_overflow_bottom,[data-theme=dark] .flexlayout__border_button_overflow_right,[data-theme=dark] .flexlayout__border_button_overflow_left{color:#d3d3d3;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}.flexlayout__tabset-selected{background-image:none;background-color:#f5d45ed1}.msp-pligin .msp-highlight-toast-wrapper{z-index:2}.TrackLegend-wrap{display:flex;width:100%;flex-direction:column;justify-content:space-between}.TrackLegend-label{margin:0;min-height:11px;font-size:x-small;line-height:1;word-wrap:break-word;word-break:break-all;overflow:hidden}[data-theme=dark]{--font-color: var(--dark-fg-color);--bg-color: var(--dark-bg-color)}[data-theme=light]{--font-color: var(--light-fg-color);--bg-color: var(--light-bg-color)}.bg2{background-color:#fff;color:#000}.svg-text-bg2{fill:#000}.svg-line-bg2{stroke:#000}#beamLeft{position:absolute;border:1px solid rgb(128,166,255);z-index:1;display:none;top:0;height:100%;will-change:left;pointer-events:none}#beamLeftInner{background-color:#00f;opacity:.1;height:100%;width:100%;pointer-events:none}#beamRight{position:absolute;border:1px solid rgb(255,133,92);z-index:1;display:none;top:0;height:100%;will-change:left;pointer-events:none}#beamRightInner{background-color:#f53d00;opacity:.1;height:100%;width:100%;pointer-events:none}.Fragment-horizontal-line{position:absolute;pointer-events:none;border-top:2px solid}.arrow-up{position:absolute;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid}.arrow-down{position:absolute;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid}.TrackContextMenu-body{z-index:1;min-width:250px;max-width:400px;background-color:var(--bg-color);border:1px solid #b7b1f2;border-radius:.25rem;font-size:small}.TrackContextMenu-item{padding:8px 5px}.TrackContextMenu-item label{cursor:pointer}.TrackContextMenu-hoverable-item:hover{background-color:#20a0ff}.TrackContextMenu-hoverable-item-danger:hover{background-color:pink;cursor:pointer}.TrackContextMenu-hoverable-item-warn:hover{background-color:#f3ba12;cursor:pointer}.TrackContextMenu-URL{font-style:italic;word-break:break-all;overflow-wrap:break-word}.Collapsible h6{margin-bottom:0;font-weight:700;font-size:1em}.Collapsible table{margin-bottom:0}.Collapsible p{margin-bottom:3px}.Collapsible__trigger{font-weight:700;padding-left:3px;text-decoration:underline;cursor:pointer;position:relative;display:block}.Collapsible__trigger:after{content:"▼";transform:rotate(-90deg);position:absolute;top:0;right:10px;display:block;transition:transform .3s}.Collapsible__trigger.is-open:after{transform:rotate(0)}.btn-tight{padding:0}.CategoryColorConfig-table{display:grid;grid-template-columns:auto auto;margin-bottom:5px}.MethylCTrack-tooltip-strand{margin-bottom:5px}.MethylCTrack-tooltip-strand-title{text-transform:capitalize;font-weight:700}.MethylCTrack-tooltip-strand-details{display:grid;grid-template-columns:auto auto;grid-column-gap:20px;font-size:small}.ArcDisplay-emphasize-on-hover:hover{opacity:1}.MethylColorConfig-table{display:grid;grid-template-columns:auto auto auto;margin-bottom:5px}.MethylColorConfig-header{font-weight:700}.popover-root{display:inline-block;position:relative}.popover-btn:active{border-color:#4a4a4a;outline:0}.loader{width:10px;aspect-ratio:1;border-radius:50%;animation:l5 1s infinite linear alternate;margin-top:.4em}@keyframes l5{0%{box-shadow:20px 0 #000,-20px 0 #0002;background:#000}33%{box-shadow:20px 0 #000,-20px 0 #0002;background:#0002}66%{box-shadow:20px 0 #0002,-20px 0 #000;background:#0002}to{box-shadow:20px 0 #0002,-20px 0 #000;background:#000}}.popover-btn{gap:.8em;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#ffffffb3;border-radius:0 0 .2em;border-right:1px solid #dbdbdb;border-top:1px solid #dbdbdb;box-shadow:none;box-sizing:border-box;color:#363636;cursor:pointer;display:inline-flex;font-family:BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.8rem;height:16px;justify-content:center;line-height:1.5;padding:calc(.5em - 1px) .5em;position:relative;text-align:center;user-select:none;-webkit-user-select:none;touch-action:manipulation;vertical-align:top;white-space:nowrap}.popover-btn:hover{border-color:#b5b5b5}.popover-btn:focus{border-color:#485fc7;outline:0}.popover-btn:focus:not(:active){box-shadow:#485fc740 0 0 0 .125em}.popover-arrow{margin-left:.3em;border:solid black;border-width:0 1.5px 1.5px 0;display:inline-block;padding:2px;transform:rotate(-45deg);transition:transform .25s ease,border-color .2s}.popover-arrow.open{transform:rotate(45deg)}.popover-panel{top:120%;left:0;min-width:200px;background:#fff;border-radius:10px;box-shadow:0 8px 32px #3c3c782e;border:1px solid #e5e7eb;padding:1.2em 1em;opacity:0;pointer-events:none;transform:translateY(-10px) scale(.98);transition:opacity .25s cubic-bezier(.4,2,.6,1),transform .25s cubic-bezier(.4,2,.6,1);z-index:100}.popover-panel.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.Tooltip{border-radius:5px;background-color:#add8e6f2;padding:3px 6px;z-index:2}.Tooltip-major-text{font-size:1.2em}.Tooltip-minor-text{font-size:.8em;color:#696969}.Tooltip-highlight-text{font-size:1em;background-color:coral;display:inline-block}.Tooltip-monospace-text{font-family:monospace;text-align:center;font-size:16px;color:#696969;display:inline-block}.Tooltip-monospace-seq{font-family:monospace;font-size:16px;display:inline}.Tooltip-monospace-central-seq{font-family:monospace;font-size:16px;background-color:coral;display:inline}.SelectableArea-box{position:absolute;border:1px solid blue;background-color:#0000991a;z-index:1;pointer-events:none;display:flex;justify-content:center;align-items:center}.SelectableArea-box-invalid{border:1px solid red;background-color:#ff00001a;color:red}.SelectableArea-box-text-container{padding:0 5px;text-align:center;color:#000;background-color:#ffffffb3}.SelectableArea-box-secondary-text{font-size:x-small;white-space:nowrap}.MainPane{width:100%}.MainPane-opaque{opacity:.5}.MainPane-opaque:hover{opacity:1}.MetadataSelectionMenu ul{list-style-type:none}.MetadataSelectionMenu{position:absolute;background:var(--bg-color);padding:5px;min-width:240px;z-index:9}.MetadataSelectionMenu button{padding:0 4px}.MetadataSelectionMenu input{border:#409393 1px solid;padding:2px;margin-right:4px;border-radius:4px}.MetadataHeader-container{width:auto;display:flex;justify-content:flex-end;flex-grow:1}.MetadataHeader-terms{list-style-type:none;margin:0;padding:0;background-color:var(--bg-color);writing-mode:vertical-lr;text-align:right;vertical-align:middle}.MetadataHeader-button{margin-top:auto;margin-bottom:auto;position:relative}:root{--dark-fg-color: white;--dark-bg-color: black;--dark-container-color: #2c2c2c;--light-fg-color: black;--light-bg-color: white;--light-container-color: white}.loader{width:4px;aspect-ratio:1;border-radius:50%;animation:l5 1s infinite linear alternate}@keyframes l5{0%{box-shadow:9px 0 #000,-9px 0 #0002;background:#000}33%{box-shadow:9px 0 #000,-9px 0 #0002;background:#0002}66%{box-shadow:9px 0 #0002,-9px 0 #000;background:#0002}to{box-shadow:9px 0 #0002,-9px 0 #000;background:#000}}@keyframes borderPulse{0%{border-bottom:1px solid #f89581}50%{border-bottom:1px solid #feaa9a}to{border-bottom:1px solid #feded8}}.animatedBorder{animation:borderPulse 3s infinite}.App{margin-bottom:30px}.nav-link{user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;cursor:hand;cursor:pointer}.tab-link,.nav-tabs a.nav-link:hover{color:red}.nav-tabs .nav-link.active{background-color:#f5f5f5}.nav-tabs .nav-link.active:hover{color:red;background-color:#f5f5f5}.horizontal-line,.vertical-line{position:absolute;will-change:transform}.horizontal-line{position:absolute;width:100%;height:1px;z-index:3;pointer-events:none;border-top:1px dotted grey}.vertical-line{position:absolute;height:100%;width:1px;top:0;border-left:1px dotted grey;z-index:3;pointer-events:none}.btn-dense{margin-right:2px!important;margin-bottom:0!important}[data-theme=dark]{--font-color: var(--dark-fg-color);--bg-color: var(--dark-bg-color);--bg-container-color: var(--dark-container-color)}[data-theme=light]{--font-color: var(--light-fg-color);--bg-color: var(--light-bg-color);--bg-container-color: var(--light-container-color)}.bg{background-color:var(--bg-color);color:var(--font-color)}.svg-text-bg{fill:var(--font-color)}.svg-line-bg{stroke:var(--font-color)}.darkToggleBox{vertical-align:middle;margin-left:1ch}[data-theme=light] hr{border-top:1px solid rgb(80 80 80 / 30%)}[data-theme=dark] hr{border-top:1px solid rgb(223 220 220 / 30%)}[data-theme=light] .MuiCard-root{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}[data-theme=dark] .MuiCard-root{box-shadow:0 2px 1px -1px #fff3,0 1px 1px #ffffff24,0 1px 3px #ffffff1f}[data-theme=light] .MuiListItem-button:hover{background-color:#0000001a}[data-theme=dark] .MuiListItem-button:hover{background-color:#ffffff1a}[data-theme=light] .MuiAppBar-colorDefault{color:#000000de;background-color:#f5f5f5}[data-theme=dark] .MuiAppBar-colorDefault{color:#ffffffde;background-color:#222}[data-theme=light] .MuiTab-textColorPrimary{color:#000000b3}[data-theme=light] .MuiTab-textColorPrimary.Mui-selected{color:#3f51b5}[data-theme=dark] .MuiTab-textColorPrimary{color:#fffefeb3}[data-theme=dark] .MuiTab-textColorPrimary.Mui-selected{color:#6e84ff}[data-theme=light] .MuiIconButton-root{color:#0000008a}[data-theme=dark] .MuiIconButton-root{color:#ffffffb3}[data-theme=dark] .btn-outline-secondary{color:#dfe4e8;border-color:#dfe4e8}[data-theme=light] .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}[data-theme=light] .btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}[data-theme=dark] .btn-light{color:#fff;background-color:transparent;border-color:#dfe4e8}[data-theme=dark] .btn-light.disabled,.btn-light:disabled{border-color:#f8f9fa}.ReactTable .-pagination .-btn{color:unset!important}.ReactTable .-pagination .-btn[disabled]{opacity:1}.ReactTable .rt-expander:after{border-top:7px solid rgba(152,152,152,.8)!important}#shareUI .MuiTab-textColorSecondary{color:unset}
1
+ .IsoformSelection{padding:0;margin:0;font-size:smaller;border-collapse:collapse;display:grid;grid-template-columns:auto}.IsoformSelection-item{border:1px solid lightgrey;display:grid;grid-template-columns:80px auto auto auto;grid-gap:5px;align-items:center}.IsoformSelection-collection{word-wrap:break-word;word-break:break-all}.IsoformSelection-item:hover{background-color:#fdbb84!important;cursor:pointer}.IsoformSelection-item td{padding:0 5px}.IsoformSelection-description{font-size:x-small;min-width:200px}.IsoformSelection-item-simple{border:1px solid lightgrey}.IsoformSelection-item-simple:hover{background-color:#fdbb84;cursor:pointer}.IsoformSelection-empty-msg{background-color:#a4ae86!important}.react-autosuggest__suggestions-container--open{border:1px solid #aaa;box-shadow:"0 2px 12px rgba(0, 0, 0, 0.1)";background-color:#fff;border-bottom-left-radius:4px;border-bottom-right-radius:4px;z-index:2;width:100%;max-height:200px;overflow-y:auto}.react-autosuggest__suggestions-list{margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion{cursor:pointer;padding:5px}.react-autosuggest__suggestion--highlighted{background-color:#ddd}div.GeneSearchBox-speech{position:absolute;right:5ch;top:10px}div.GeneSearchBox-speech button{padding:2px;margin-right:2px}.react-autosuggest__suggestions-container--open{max-height:800px;overflow:auto}.react-autosuggest__suggestions-list-222{background-color:#fff;margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestions-list-white{background-color:#222;margin:0;padding:0;list-style-type:none}.react-autosuggest__suggestion:hover{background-color:#a4ae86!important}.rc-drawer{top:0;right:0;bottom:0;left:0;position:fixed;z-index:1050;pointer-events:none}.rc-drawer-inline{position:absolute}.rc-drawer-mask{top:0;right:0;bottom:0;left:0;position:absolute;z-index:1050;background:#00000080;pointer-events:auto}.rc-drawer-content-wrapper{position:absolute;z-index:1050;overflow:hidden;transition:transform .3s}.rc-drawer-content-wrapper-hidden{display:none}.rc-drawer-left .rc-drawer-content-wrapper{top:0;bottom:0;left:0}.rc-drawer-right .rc-drawer-content-wrapper{top:0;right:0;bottom:0}.rc-drawer-content{width:100%;height:100%;overflow:auto;background:#fff;pointer-events:auto}#threed-mol-container{position:relative;width:100%;height:100%;overflow:hidden}.picture{position:relative;display:block}.side{position:relative;display:flex}.picture .box1{position:relative}.picture .box2{position:absolute;right:0;bottom:0;border:1px black solid;z-index:2}.side .box1{position:relative}.side .box2{position:relative;border-left:1px black solid}#accordion p{margin-bottom:0}#accordion ul{list-style-type:none;padding:0;margin:0}#accordion input[type=text]{width:100%}#accordion input,#accordion button,#accordion select{margin-right:1ch}#accordion select{margin-left:1ch}.thumb-control label{display:block}.toggle-model-container{display:flex;justify-content:space-between;margin-bottom:1px}.toggle-model-container:hover{border-bottom:1px solid orange}.toggle-model:hover{background-color:orange;cursor:pointer}.card-body{padding:.75rem}#accordion{display:flex}.placement-container{position:absolute;left:2px;top:2px;z-index:1}.placement-container span{display:inline-block}.card-header button{margin-bottom:0!important}.card-header{padding:0}.FrameListMenu label{margin-bottom:0}.FrameListMenu ol{list-style-type:circle}.hoverButtons button{margin:2px 0;display:block}.closeMenu-3d{font-size:36px;cursor:pointer;color:red;position:absolute;right:10px;top:-8px;z-index:5}.arrow-list input[type=number]{margin-bottom:0!important;margin-right:2px!important;width:8ch}#static-legend{position:absolute;z-index:4;left:10px;bottom:50px}.enhanced-drawer{box-shadow:0 25px 50px -12px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.enhanced-accordion{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:12px;line-height:1.5}.drawer-header{display:flex;justify-content:space-between;align-items:center}.drawer-title{margin:0;font-size:16px;font-weight:600;color:#1e293b;background:linear-gradient(135deg,#3b82f6,#6366f1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.close-button{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#64748b;transition:all .2s ease}.close-button:hover{background:#fee2e2;border-color:#fecaca;color:#dc2626;transform:scale(1.05)}.enhanced-accordion-section{margin-bottom:8px;background:#fff;border-radius:8px;border:1px solid #e2e8f0;overflow:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}.enhanced-accordion-section:hover{border-color:#cbd5e1;box-shadow:0 4px 8px #00000014}.enhanced-accordion-section.open{border-color:#3b82f6;box-shadow:0 4px 12px #3b82f626}.enhanced-accordion-header{padding:8px;background:#f8fafc;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s ease;border:none;border-bottom:1px solid #e2e8f0;border-radius:0;margin-bottom:0;box-shadow:none}.enhanced-accordion-section.open .enhanced-accordion-header{background:#f0f9ff;border-bottom-color:#3b82f6}.enhanced-accordion-header:hover{background:#f1f5f9}.enhanced-accordion-section.open .enhanced-accordion-header:hover{background:#e0f2fe}.accordion-title{margin:0;font-size:14px;font-weight:600;color:#1e293b;display:flex;justify-content:space-between;align-items:center}.accordion-arrow{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:transparent;transition:all .3s cubic-bezier(.4,0,.2,1)}.enhanced-accordion-header:hover .accordion-arrow{background:transparent;transform:scale(1.1)}.arrow-icon{color:#64748b;transition:all .3s ease;transform-origin:center}.arrow-icon.open{transform:rotate(90deg) scale(1.1)}.enhanced-accordion-content{max-height:0;overflow:hidden;transition:max-height .3s cubic-bezier(.4,0,.2,1);background:#fff}.enhanced-accordion-section.open .enhanced-accordion-content{overflow:visible}.accordion-content-inner{padding:12px}.enhanced-accordion-section.open .enhanced-accordion-content{animation:fadeInContent .3s ease .1s both}@keyframes fadeInContent{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.section-content{display:block;padding:0}.control-group{background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;transition:none;position:relative;overflow:visible;margin-bottom:8px}.control-group:not(:last-child):after{display:none}.control-group:before{display:none}.control-group:hover{border-color:transparent;box-shadow:none;transform:none;background:transparent}.control-group.primary,.control-group.secondary,.control-group.warning,.control-group.info{background:transparent;border:none}.control-group.primary .subsection-title,.control-group.secondary .subsection-title,.control-group.warning .subsection-title,.control-group.info .subsection-title{color:#1e293b}.subsection-title{color:#1e293b;font-size:12px;font-weight:600;margin:0 0 2px;padding-bottom:0;border-bottom:none;display:block;position:relative;text-transform:none;letter-spacing:0px}.subsection-title:before{display:none}.control-group .info-section{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px}.control-group .toggle-control{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px;transition:none}.control-group .toggle-control:hover{background:transparent;border-color:transparent}.control-group .input-group{background:transparent;border:none;border-radius:0;padding:0;margin-bottom:8px;transition:none}.control-group .input-group:hover{background:transparent;border-color:transparent}.control-group .file-upload-group{background:transparent;border:none;border-radius:0;padding:0;text-align:left;transition:none;margin-bottom:8px}.control-group .file-upload-group:hover{border-color:transparent;background:transparent}.control-group .highlight-controls{display:flex;align-items:center;gap:8px;padding:0;background:transparent;border:none;border-radius:0}.control-group .scale-controls{background:transparent;border:none;border-radius:0;padding:0}.control-group .scale-info{background:transparent;border:none;border-radius:0;padding:0;margin:6px 0;font-size:12px;color:#1e40af;text-align:left}.control-group .scale-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}.control-group .animation-controls,.control-group .sync-controls,.control-group .export-controls{background:transparent;border:none;border-radius:0;padding:0}.control-group .envelope-controls,.control-group .spin-controls{background:transparent;border:none;border-radius:0;box-shadow:none}.control-group .info-message{background:transparent;border:none;color:#1e40af;padding:0;border-radius:0;text-align:left;font-weight:300}.control-group .warning-message{background:transparent;border:none;color:#92400e;padding:0;border-radius:0;text-align:left;font-weight:300}.control-group.hidden{display:none!important}.control-label{display:block;font-weight:500;color:#374151;margin-bottom:4px}.input-label{display:block;font-size:12px;font-weight:500;color:#6b7280;margin-bottom:4px}.toggle-control{margin:8px 0}.toggle-label{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin-bottom:0}.label-text{font-weight:500;color:#374151}.toggle-wrapper{position:relative;width:48px;height:24px}.toggle-input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#cbd5e1;transition:.3s ease;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s ease;border-radius:50%;box-shadow:0 2px 4px #0003}.toggle-input:checked+.toggle-slider{background:linear-gradient(135deg,#3b82f6,#6366f1)}.toggle-input:checked+.toggle-slider:before{transform:translate(24px)}.radio-group{display:flex;flex-direction:column;gap:4px}.radio-group.compact{gap:2px}.radio-option{display:flex;align-items:center;cursor:pointer;border-radius:8px;transition:all .2s ease;margin-bottom:0}.radio-group.compact .radio-option{padding:6px 10px}.radio-option:hover{background:#f8fafc}.radio-input{position:absolute;opacity:0;width:0;height:0}.radio-custom{width:18px;height:18px;border:2px solid #cbd5e1;border-radius:50%;margin-right:12px;position:relative;transition:all .2s ease}.radio-group.compact .radio-custom{margin-right:8px}.radio-input:checked+.radio-custom{border-color:#3b82f6;background:linear-gradient(135deg,#3b82f6,#6366f1)}.radio-input:checked+.radio-custom:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:6px;height:6px;background:#fff;border-radius:50%}.radio-label{color:#374151}.thumbnail-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}.thumbnail-option{cursor:pointer;margin-bottom:0}.thumbnail-input{position:absolute;opacity:0;width:0;height:0}.thumbnail-custom{display:flex;flex-direction:column;align-items:center;padding:12px;border:2px solid #e2e8f0;border-radius:8px;transition:all .2s ease;background:#fff}.thumbnail-input:checked+.thumbnail-custom{border-color:#3b82f6;background:linear-gradient(135deg,#dbeafe,#e0e7ff)}.option-icon{font-size:12px}.option-label{font-size:12px;font-weight:500;color:#374151}.enhanced-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.enhanced-btn:not(:disabled):hover{transform:none;box-shadow:0 2px 4px #0000001a}.enhanced-btn.primary{background:#fff;color:#3b82f6;border-color:#3b82f6}.enhanced-btn.primary:hover:not(:disabled){background:#f8fafc;border-color:#2563eb;color:#2563eb}.enhanced-btn.secondary{background:#fff;color:#64748b;border-color:#64748b}.enhanced-btn.secondary:hover:not(:disabled){background:#f8fafc;border-color:#475569;color:#475569}.enhanced-btn.success{background:#fff;color:#10b981;border-color:#10b981}.enhanced-btn.success:hover:not(:disabled){background:#f0fdf4;border-color:#059669;color:#059669}.enhanced-btn.info{background:#fff;color:#06b6d4;border-color:#06b6d4}.enhanced-btn.info:hover:not(:disabled){background:#f0f9ff;border-color:#0891b2;color:#0891b2}.enhanced-btn.warning{background:#fff;color:#f59e0b;border-color:#f59e0b}.enhanced-btn.warning:hover:not(:disabled){background:#fffbeb;border-color:#d97706;color:#d97706}.enhanced-btn.danger{background:#fff;color:#ef4444;border-color:#ef4444}.enhanced-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#dc2626;color:#dc2626}.enhanced-btn.small{padding:6px 10px;font-size:11px;min-height:28px}.enhanced-btn.large{padding:10px 16px;font-size:13px;min-height:36px}.button-group{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.button-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.enhanced-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:8px 12px;font-size:12px;font-weight:500;line-height:1.3;border-radius:6px;border:1.5px solid transparent;cursor:pointer;transition:all .2s ease;text-decoration:none;background:#fff;white-space:nowrap;min-height:32px;box-sizing:border-box}.enhanced-input{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.enhanced-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.enhanced-input:hover{border-color:#9ca3af}.enhanced-input.small{width:80px}.modern-input{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.modern-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.modern-input:hover{border-color:#9ca3af}.input-group{display:flex;align-items:center;gap:6px;margin-bottom:4px}.input-group .enhanced-input{flex:1}.enhanced-select{width:100%;padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:12px;background:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.enhanced-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.enhanced-select:hover{border-color:#9ca3af}.opacity-slider{width:80px;height:4px;border-radius:2px;background:#d1d5db;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0 8px}.opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#3b82f6,#6366f1);cursor:pointer;box-shadow:0 2px 4px #0003}.opacity-value{font-size:12px;color:#6b7280;min-width:32px;text-align:center}.file-upload-group{margin:8px 0}.file-upload-label{display:block;font-weight:500;color:#374151;margin-bottom:4px}.file-input{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 2px #0000000d}.file-input:hover{border-color:#3b82f6;background:#fff}.file-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a,0 1px 2px #0000000d}.warning-message{padding:0;background:transparent;border:none;border-radius:0;color:#92400e;font-size:13px;display:flex;align-items:center;gap:6px}.info-message{padding:0;background:transparent;border:none;border-radius:0;color:#1e40af;font-size:13px;display:flex;align-items:center;gap:6px}.envelope-controls,.spin-controls,.scale-controls{background:transparent;border:none;border-radius:0;padding:0}.color-control,.opacity-control,.select-control{display:flex;align-items:center;gap:6px}.highlight-controls{display:flex;align-items:flex-start;gap:8px}.scale-info{font-size:13px;color:#6b7280;margin:6px 0;padding:0;background:transparent;border-radius:0}.scale-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.animation-controls,.sync-controls,.export-controls{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-start}.help-link{color:#3b82f6;text-decoration:none;font-size:13px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;transition:all .2s ease}.help-link:hover{background:#dbeafe;text-decoration:none}.info-section{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}@media (max-width: 768px){.button-group-grid{grid-template-columns:1fr}.thumbnail-options{grid-template-columns:repeat(2,1fr)}.scale-inputs{grid-template-columns:1fr}}[data-theme=light] .flexlayout__layout{left:0;top:0;right:0;bottom:0;position:relative;height:100%}[data-theme=light] .flexlayout__splitter{background-color:#ddd}[data-theme=light] .flexlayout__splitter:hover{background-color:#ccc}[data-theme=light] .flexlayout__splitter_drag{border-radius:5px;background-color:#bbb;z-index:1000}[data-theme=light] .flexlayout__outline_rect{position:absolute;cursor:move;border:2px solid red;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=light] .flexlayout__outline_rect_edge{cursor:move;border:2px solid green;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=light] .flexlayout__edge_rect{position:absolute;z-index:1000;box-shadow:inset 0 0 5px #0003;background-color:#d3d3d3}[data-theme=light] .flexlayout__drag_rect{position:absolute;cursor:move;border:2px solid #aaaaaa;box-shadow:inset 0 0 60px #0000004d;border-radius:5px;z-index:1000;box-sizing:border-box;background-color:#eee;opacity:.9;text-align:center;display:flex;justify-content:center;flex-direction:column;overflow:hidden;padding:10px;word-wrap:break-word}[data-theme=light] .flexlayout__tabset{overflow:hidden;background-color:#fff;box-sizing:border-box}[data-theme=light] .flexlayout__tab{overflow:auto;position:absolute;box-sizing:border-box;background-color:#fff}[data-theme=light] .flexlayout__tab_button{cursor:pointer;padding:0 8px;box-shadow:inset 0 0 5px #00000026;border-top-left-radius:3px;border-top-right-radius:3px;float:left;vertical-align:top;box-sizing:border-box}[data-theme=light] .flexlayout__tab_button--selected{color:#000;background-color:#ddd}[data-theme=light] .flexlayout__tab_button--unselected{color:gray}[data-theme=light] .flexlayout__tab_button_leading,[data-theme=light] .flexlayout__tab_button_content{float:left;display:inline-block}[data-theme=light] .flexlayout__tab_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=light] .flexlayout__tab_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__tab_button_trailing{float:left;display:inline-block;margin-left:7px;margin-top:3px;width:12px;height:12px}[data-theme=light] .flexlayout__tab_button:hover .flexlayout__tab_button_trailing,[data-theme=light] .flexlayout__tab_button--selected .flexlayout__tab_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=light] .flexlayout__tab_button_overflow{float:left;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=light] .flexlayout__tabset_header{position:absolute;left:0;right:0;background-color:#e8e8e8;padding:3px 3px 3px 5px;box-shadow:inset 0 0 3px #8888888a;box-sizing:border-box}[data-theme=light] .flexlayout__tab_header_outer{background-color:#fff;position:absolute;left:0;right:0;overflow:hidden}[data-theme=light] .flexlayout__tab_header_inner{position:absolute;left:0;display:flex;justify-content:center;top:0;bottom:0}[data-theme=light] .flexlayout__tabset-selected{background-image:linear-gradient(#fff,#ccc)}[data-theme=light] .flexlayout__tabset-maximized{background-image:linear-gradient(#aaa,#eee)}[data-theme=light] .flexlayout__tab_toolbar{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=light] .flexlayout__tab_toolbar_button-min{width:20px;height:20px;background:transparent url('data:image/svg+xml;utf8,<svg height="100%" version="1.1" viewBox="0 0 36 36" width="100%" xmlns="http://www.w3.org/2000/svg"><path d="m 10,16 2,0 0,-4 4,0 0,-2 L 10,10 l 0,6 0,0 z"/><path d="m 20,10 0,2 4,0 0,4 2,0 L 26,10 l -6,0 0,0 z"/><path d="m 24,24 -4,0 0,2 L 26,26 l 0,-6 -2,0 0,4 0,0 z"/><path d="M 12,20 10,20 10,26 l 6,0 0,-2 -4,0 0,-4 0,0 z"/></svg>') no-repeat center/16px 16px;border:none;outline-width:0}[data-theme=light] .flexlayout__tab_toolbar_button-max{width:20px;height:20px;border:none;outline-width:0;background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 26 30" width="16" height="16" fill="black"><g transform="translate(7,7)"><path d="M5.5 0a.5.5 0 0 1 .5.5v4A1.5 1.5 0 0 1 4.5 6h-4a.5.5 0 0 1 0-1h4a.5.5 0 0 0 .5-.5v-4a.5.5 0 0 1 .5-.5m5 0a.5.5 0 0 1 .5.5v4a.5.5 0 0 0 .5.5h4a.5.5 0 0 1 0 1h-4A1.5 1.5 0 0 1 10 4.5v-4a.5.5 0 0 1 .5-.5M0 10.5a.5.5 0 0 1 .5-.5h4A1.5 1.5 0 0 1 6 11.5v4a.5.5 0 0 1-1 0v-4a.5.5 0 0 0-.5-.5h-4a.5.5 0 0 1-.5-.5m10 1a1.5 1.5 0 0 1 1.5-1.5h4a.5.5 0 0 1 0 1h-4a.5.5 0 0 0-.5.5v4a.5.5 0 0 1-1 0z"/></g></svg>') no-repeat center/16px 16px}[data-theme=light] .flexlayout__popup_menu{font-size:12px;font-family:Arial,sans-serif}[data-theme=light] .flexlayout__popup_menu_item{padding:2px 10px}[data-theme=light] .flexlayout__popup_menu_item:hover{background-color:#d3d3d3}[data-theme=light] .flexlayout__popup_menu_container{box-shadow:inset 0 0 5px #00000026;border:1px solid lightgrey;background:#fff;border-radius:3px;position:absolute;z-index:1000}[data-theme=light] .flexlayout__border_top{background-color:#eee;border-bottom:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_bottom{background-color:#eee;border-top:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_left{background-color:#eee;border-right:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_right{background-color:#eee;border-left:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=light] .flexlayout__border_inner_bottom{display:flex}[data-theme=light] .flexlayout__border_inner_left{position:absolute;white-space:nowrap;right:23px;transform-origin:top right;transform:rotate(-90deg)}[data-theme=light] .flexlayout__border_inner_right{position:absolute;white-space:nowrap;left:23px;transform-origin:top left;transform:rotate(90deg)}[data-theme=light] .flexlayout__border_button{display:inline-block;cursor:pointer;padding:2px 8px 3px;margin:2px;box-shadow:inset 0 0 5px #00000026;border-radius:3px;vertical-align:top;box-sizing:border-box;white-space:nowrap}[data-theme=light] .flexlayout__border_button--selected{color:#000;background-color:#ddd}[data-theme=light] .flexlayout__border_button--unselected{color:gray}[data-theme=light] .flexlayout__border_button_leading{display:inline}[data-theme=light] .flexlayout__border_button_content{display:inline-block}[data-theme=light] .flexlayout__border_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=light] .flexlayout__border_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__border_toolbar_left,[data-theme=light] .flexlayout__border_toolbar_right{position:absolute;display:flex;flex-direction:column-reverse;align-items:center;bottom:0;left:0;right:0}[data-theme=light] .flexlayout__border_toolbar_top,[data-theme=light] .flexlayout__border_toolbar_bottom{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=light] .flexlayout__border_button_overflow_top,[data-theme=light] .flexlayout__border_button_overflow_bottom,[data-theme=light] .flexlayout__border_button_overflow_right,[data-theme=light] .flexlayout__border_button_overflow_left{width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=dark] .flexlayout__layout{left:0;top:0;right:0;bottom:0;position:relative;height:100%}[data-theme=dark] .flexlayout__splitter{background-color:#000}[data-theme=dark] .flexlayout__splitter:hover{background-color:#333}[data-theme=dark] .flexlayout__splitter_drag{border-radius:5px;background-color:#444;z-index:1000}[data-theme=dark] .flexlayout__outline_rect{position:absolute;cursor:move;border:2px solid #cfe8ff;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=dark] .flexlayout__outline_rect_edge{cursor:move;border:2px solid #b7d1b5;box-shadow:inset 0 0 60px #0003;border-radius:5px;z-index:1000;box-sizing:border-box}[data-theme=dark] .flexlayout__edge_rect{position:absolute;z-index:1000;box-shadow:inset 0 0 5px #0003;background-color:#d3d3d3}[data-theme=dark] .flexlayout__drag_rect{position:absolute;cursor:move;border:2px solid #aaaaaa;box-shadow:inset 0 0 60px #0000004d;border-radius:5px;z-index:1000;box-sizing:border-box;background-color:#eee;opacity:.9;text-align:center;display:flex;justify-content:center;flex-direction:column;overflow:hidden;padding:10px;word-wrap:break-word}[data-theme=dark] .flexlayout__tabset{overflow:hidden;background-color:#222;box-sizing:border-box}[data-theme=dark] .flexlayout__tab{overflow:auto;position:absolute;box-sizing:border-box;background-color:#222;color:#fff}[data-theme=dark] .flexlayout__tab_button{cursor:pointer;padding:2px 8px 3px;margin:2px;float:left;vertical-align:top;box-sizing:border-box}[data-theme=dark] .flexlayout__tab_button--selected{color:#ddd;background-color:#222}[data-theme=dark] .flexlayout__tab_button--unselected{color:gray}[data-theme=dark] .flexlayout__tab_button_leading{float:left;display:inline-block}[data-theme=dark] .flexlayout__tab_button_content{display:inline-block}[data-theme=dark] .flexlayout__tab_button_textbox{float:left;border:none;color:#90ee90;background-color:#222}[data-theme=dark] .flexlayout__tab_button_textbox:focus{outline:none}[data-theme=light] .flexlayout__tab_button_trailing{display:inline-block;margin-left:3px;margin-top:4px;width:15px;height:15px}[data-theme=light] .flexlayout__border_button:hover .flexlayout__border_button_trailing,[data-theme=light] .flexlayout__border_button--selected .flexlayout__border_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=dark] .flexlayout__tab_button_overflow{float:left;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;color:#d3d3d3;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}[data-theme=dark] .flexlayout__tabset_header{position:absolute;left:0;right:0;color:#eee;background-color:#212121;padding:3px 3px 3px 5px;box-sizing:border-box}[data-theme=dark] .flexlayout__tab_header_inner{position:absolute;left:0;top:0;bottom:0}[data-theme=dark] .flexlayout__tab_header_outer{background-color:#000;position:absolute;left:0;right:0;overflow:hidden}[data-theme=dark] .flexlayout__tabset-selected{background-image:linear-gradient(#111,#444)}[data-theme=dark] .flexlayout__tabset-maximized{background-image:linear-gradient(#666,#333)}[data-theme=dark] .flexlayout__tab_toolbar{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=dark] .flexlayout__tab_toolbar_button-min{width:20px;height:20px;border:none;outline-width:0;background:transparent url(./images/maximize.png) no-repeat center}[data-theme=dark] .flexlayout__tab_toolbar_button-max{width:20px;height:20px;border:none;outline-width:0;background:transparent url(./images/restore.png) no-repeat center}[data-theme=dark] .flexlayout__popup_menu{font-size:12px;font-family:Arial,sans-serif}[data-theme=dark] .flexlayout__popup_menu_item{padding:2px 10px;color:#ddd}[data-theme=dark] .flexlayout__popup_menu_item:hover{background-color:#444}[data-theme=dark] .flexlayout__popup_menu_container{box-shadow:inset 0 0 5px #00000026;border:1px solid #555;background:#222;border-radius:3px;position:absolute;z-index:1000}[data-theme=dark] .flexlayout__border_top{background-color:#000;border-bottom:1px solid #ddd;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_bottom{background-color:#000;border-top:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_left{background-color:#000;border-right:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_right{background-color:#000;border-left:1px solid #333;box-sizing:border-box;overflow:hidden}[data-theme=dark] .flexlayout__border_inner_bottom{display:flex}[data-theme=dark] .flexlayout__border_inner_left{position:absolute;white-space:nowrap;right:23px;transform-origin:top right;transform:rotate(-90deg)}[data-theme=dark] .flexlayout__border_inner_right{position:absolute;white-space:nowrap;left:23px;transform-origin:top left;transform:rotate(90deg)}[data-theme=dark] .flexlayout__border_button{background-color:#222;color:#fff;display:inline-block;white-space:nowrap;cursor:pointer;padding:2px 8px 3px;margin:2px;vertical-align:top;box-sizing:border-box}[data-theme=dark] .flexlayout__border_button--selected{color:#ddd;background-color:#222}[data-theme=dark] .flexlayout__border_button--unselected{color:gray}[data-theme=dark] .flexlayout__border_button_leading{display:inline}[data-theme=dark] .flexlayout__border_button_content{display:inline-block}[data-theme=dark] .flexlayout__border_button_textbox{float:left;border:none;color:green;background-color:#ddd}[data-theme=dark] .flexlayout__border_button_textbox:focus{outline:none}[data-theme=dark] .flexlayout__border_button_trailing{display:inline-block;margin-left:5px;margin-top:3px;width:8px;height:8px}[data-theme=dark] .flexlayout__border_button:hover .flexlayout__border_button_trailing,[data-theme=dark] .flexlayout__border_button--selected .flexlayout__border_button_trailing{background:transparent url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12"><line x1="2" y1="2" x2="10" y2="10" stroke="red" stroke-width="2"/><line x1="10" y1="2" x2="2" y2="10" stroke="red" stroke-width="2"/></svg>') no-repeat center/9px 9px}[data-theme=dark] .flexlayout__border_toolbar_left,[data-theme=dark] .flexlayout__border_toolbar_right{position:absolute;display:flex;flex-direction:column-reverse;align-items:center;bottom:0;left:0;right:0}[data-theme=dark] .flexlayout__border_toolbar_top,[data-theme=dark] .flexlayout__border_toolbar_bottom{position:absolute;display:flex;flex-direction:row-reverse;align-items:center;top:0;bottom:0;right:0}[data-theme=dark] .flexlayout__border_button_overflow_top,[data-theme=dark] .flexlayout__border_button_overflow_bottom,[data-theme=dark] .flexlayout__border_button_overflow_right,[data-theme=dark] .flexlayout__border_button_overflow_left{color:#d3d3d3;width:20px;height:15px;margin-top:2px;padding-left:12px;border:none;font-size:10px;font-family:Arial,sans-serif;background:transparent url(./images/more.png) no-repeat left}.flexlayout__tabset-selected{background-image:none;background-color:#f5d45ed1}.msp-pligin .msp-highlight-toast-wrapper{z-index:2}.TrackLegend-wrap{display:flex;width:100%;flex-direction:column;justify-content:space-between}.TrackLegend-label{margin:0;min-height:11px;font-size:x-small;line-height:1;word-wrap:break-word;word-break:break-all;overflow:hidden}[data-theme=dark]{--font-color: var(--dark-fg-color);--bg-color: var(--dark-bg-color)}[data-theme=light]{--font-color: var(--light-fg-color);--bg-color: var(--light-bg-color)}.bg2{background-color:#fff;color:#000}.svg-text-bg2{fill:#000}.svg-line-bg2{stroke:#000}#beamLeft{position:absolute;border:1px solid rgb(128,166,255);z-index:1;display:none;top:0;height:100%;will-change:left;pointer-events:none}#beamLeftInner{background-color:#00f;opacity:.1;height:100%;width:100%;pointer-events:none}#beamRight{position:absolute;border:1px solid rgb(255,133,92);z-index:1;display:none;top:0;height:100%;will-change:left;pointer-events:none}#beamRightInner{background-color:#f53d00;opacity:.1;height:100%;width:100%;pointer-events:none}.Fragment-horizontal-line{position:absolute;pointer-events:none;border-top:2px solid}.arrow-up{position:absolute;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid;pointer-events:none}.arrow-down{position:absolute;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid;pointer-events:none}.TrackContextMenu-body{z-index:1;min-width:250px;max-width:400px;background-color:var(--bg-color);border:1px solid #b7b1f2;border-radius:.25rem;font-size:small}.TrackContextMenu-item{padding:8px 5px}.TrackContextMenu-item label{cursor:pointer}.TrackContextMenu-hoverable-item:hover{background-color:#20a0ff}.TrackContextMenu-hoverable-item-danger:hover{background-color:pink;cursor:pointer}.TrackContextMenu-hoverable-item-warn:hover{background-color:#f3ba12;cursor:pointer}.TrackContextMenu-URL{font-style:italic;word-break:break-all;overflow-wrap:break-word}.Collapsible h6{margin-bottom:0;font-weight:700;font-size:1em}.Collapsible table{margin-bottom:0}.Collapsible p{margin-bottom:3px}.Collapsible__trigger{font-weight:700;padding-left:3px;text-decoration:underline;cursor:pointer;position:relative;display:block}.Collapsible__trigger:after{content:"▼";transform:rotate(-90deg);position:absolute;top:0;right:10px;display:block;transition:transform .3s}.Collapsible__trigger.is-open:after{transform:rotate(0)}.btn-tight{padding:0}.CategoryColorConfig-table{display:grid;grid-template-columns:auto auto;margin-bottom:5px}.MethylCTrack-tooltip-strand{margin-bottom:5px}.MethylCTrack-tooltip-strand-title{text-transform:capitalize;font-weight:700}.MethylCTrack-tooltip-strand-details{display:grid;grid-template-columns:auto auto;grid-column-gap:20px;font-size:small}.ArcDisplay-emphasize-on-hover:hover{opacity:1}.MethylColorConfig-table{display:grid;grid-template-columns:auto auto auto;margin-bottom:5px}.MethylColorConfig-header{font-weight:700}.popover-root{display:inline-block;position:relative}.popover-btn:active{border-color:#4a4a4a;outline:0}.loader{width:10px;aspect-ratio:1;border-radius:50%;animation:l5 1s infinite linear alternate;margin-top:.4em}@keyframes l5{0%{box-shadow:20px 0 #000,-20px 0 #0002;background:#000}33%{box-shadow:20px 0 #000,-20px 0 #0002;background:#0002}66%{box-shadow:20px 0 #0002,-20px 0 #000;background:#0002}to{box-shadow:20px 0 #0002,-20px 0 #000;background:#000}}.popover-btn{gap:.8em;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#ffffffb3;border-radius:0 0 .2em;border-right:1px solid #dbdbdb;border-top:1px solid #dbdbdb;box-shadow:none;box-sizing:border-box;color:#363636;cursor:pointer;display:inline-flex;font-family:BlinkMacSystemFont,-apple-system,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:.8rem;height:16px;justify-content:center;line-height:1.5;padding:calc(.5em - 1px) .5em;position:relative;text-align:center;user-select:none;-webkit-user-select:none;touch-action:manipulation;vertical-align:top;white-space:nowrap}.popover-btn:hover{border-color:#b5b5b5}.popover-btn:focus{border-color:#485fc7;outline:0}.popover-btn:focus:not(:active){box-shadow:#485fc740 0 0 0 .125em}.popover-arrow{margin-left:.3em;border:solid black;border-width:0 1.5px 1.5px 0;display:inline-block;padding:2px;transform:rotate(-45deg);transition:transform .25s ease,border-color .2s}.popover-arrow.open{transform:rotate(45deg)}.popover-panel{top:120%;left:0;min-width:200px;background:#fff;border-radius:10px;box-shadow:0 8px 32px #3c3c782e;border:1px solid #e5e7eb;padding:1.2em 1em;opacity:0;pointer-events:none;transform:translateY(-10px) scale(.98);transition:opacity .25s cubic-bezier(.4,2,.6,1),transform .25s cubic-bezier(.4,2,.6,1);z-index:100}.popover-panel.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.Tooltip{border-radius:5px;background-color:#add8e6f2;padding:3px 6px;z-index:2}.Tooltip-major-text{font-size:1.2em}.Tooltip-minor-text{font-size:.8em;color:#696969}.Tooltip-highlight-text{font-size:1em;background-color:coral;display:inline-block}.Tooltip-monospace-text{font-family:monospace;text-align:center;font-size:16px;color:#696969;display:inline-block}.Tooltip-monospace-seq{font-family:monospace;font-size:16px;display:inline}.Tooltip-monospace-central-seq{font-family:monospace;font-size:16px;background-color:coral;display:inline}.SelectableArea-box{position:absolute;border:1px solid blue;background-color:#0000991a;z-index:1;pointer-events:none;display:flex;justify-content:center;align-items:center}.SelectableArea-box-invalid{border:1px solid red;background-color:#ff00001a;color:red}.SelectableArea-box-text-container{padding:0 5px;text-align:center;color:#000;background-color:#ffffffb3}.SelectableArea-box-secondary-text{font-size:x-small;white-space:nowrap}.MainPane{width:100%}.MainPane-opaque{opacity:.5}.MainPane-opaque:hover{opacity:1}.MetadataSelectionMenu ul{list-style-type:none}.MetadataSelectionMenu{position:absolute;background:var(--bg-color);padding:5px;min-width:240px;z-index:9}.MetadataSelectionMenu button{padding:0 4px}.MetadataSelectionMenu input{border:#409393 1px solid;padding:2px;margin-right:4px;border-radius:4px}.MetadataHeader-container{width:auto;display:flex;justify-content:flex-end;flex-grow:1}.MetadataHeader-terms{list-style-type:none;margin:0;padding:0;background-color:var(--bg-color);writing-mode:vertical-lr;text-align:right;vertical-align:middle}.MetadataHeader-button{margin-top:auto;margin-bottom:auto;position:relative}:root{--dark-fg-color: white;--dark-bg-color: black;--dark-container-color: #2c2c2c;--light-fg-color: black;--light-bg-color: white;--light-container-color: white}.loader{width:4px;aspect-ratio:1;border-radius:50%;animation:l5 1s infinite linear alternate}@keyframes l5{0%{box-shadow:9px 0 #000,-9px 0 #0002;background:#000}33%{box-shadow:9px 0 #000,-9px 0 #0002;background:#0002}66%{box-shadow:9px 0 #0002,-9px 0 #000;background:#0002}to{box-shadow:9px 0 #0002,-9px 0 #000;background:#000}}@keyframes borderPulse{0%{border-bottom:1px solid #f89581}50%{border-bottom:1px solid #feaa9a}to{border-bottom:1px solid #feded8}}.animatedBorder{animation:borderPulse 3s infinite}.App{margin-bottom:30px}.nav-link{user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;cursor:hand;cursor:pointer}.tab-link,.nav-tabs a.nav-link:hover{color:red}.nav-tabs .nav-link.active{background-color:#f5f5f5}.nav-tabs .nav-link.active:hover{color:red;background-color:#f5f5f5}.horizontal-line,.vertical-line{position:absolute;will-change:transform}.horizontal-line{position:absolute;width:100%;height:1px;z-index:3;pointer-events:none;border-top:1px dotted grey}.vertical-line{position:absolute;height:100%;width:1px;top:0;border-left:1px dotted grey;z-index:3;pointer-events:none}.btn-dense{margin-right:2px!important;margin-bottom:0!important}[data-theme=dark]{--font-color: var(--dark-fg-color);--bg-color: var(--dark-bg-color);--bg-container-color: var(--dark-container-color)}[data-theme=light]{--font-color: var(--light-fg-color);--bg-color: var(--light-bg-color);--bg-container-color: var(--light-container-color)}.bg{background-color:var(--bg-color);color:var(--font-color)}.svg-text-bg{fill:var(--font-color)}.svg-line-bg{stroke:var(--font-color)}.darkToggleBox{vertical-align:middle;margin-left:1ch}[data-theme=light] hr{border-top:1px solid rgb(80 80 80 / 30%)}[data-theme=dark] hr{border-top:1px solid rgb(223 220 220 / 30%)}[data-theme=light] .MuiCard-root{box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}[data-theme=dark] .MuiCard-root{box-shadow:0 2px 1px -1px #fff3,0 1px 1px #ffffff24,0 1px 3px #ffffff1f}[data-theme=light] .MuiListItem-button:hover{background-color:#0000001a}[data-theme=dark] .MuiListItem-button:hover{background-color:#ffffff1a}[data-theme=light] .MuiAppBar-colorDefault{color:#000000de;background-color:#f5f5f5}[data-theme=dark] .MuiAppBar-colorDefault{color:#ffffffde;background-color:#222}[data-theme=light] .MuiTab-textColorPrimary{color:#000000b3}[data-theme=light] .MuiTab-textColorPrimary.Mui-selected{color:#3f51b5}[data-theme=dark] .MuiTab-textColorPrimary{color:#fffefeb3}[data-theme=dark] .MuiTab-textColorPrimary.Mui-selected{color:#6e84ff}[data-theme=light] .MuiIconButton-root{color:#0000008a}[data-theme=dark] .MuiIconButton-root{color:#ffffffb3}[data-theme=dark] .btn-outline-secondary{color:#dfe4e8;border-color:#dfe4e8}[data-theme=light] .btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}[data-theme=light] .btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}[data-theme=dark] .btn-light{color:#fff;background-color:transparent;border-color:#dfe4e8}[data-theme=dark] .btn-light.disabled,.btn-light:disabled{border-color:#f8f9fa}.ReactTable .-pagination .-btn{color:unset!important}.ReactTable .-pagination .-btn[disabled]{opacity:1}.ReactTable .rt-expander:after{border-top:7px solid rgba(152,152,152,.8)!important}#shareUI .MuiTab-textColorSecondary{color:unset}
@@ -2,7 +2,7 @@ import React from "react";
2
2
  /**
3
3
  * A context menu item that configures tracks' colors in general.
4
4
  *
5
- * @author Silas Hsu
5
+ * @author Chanrung(Chad) Seng, Silas Hsu
6
6
  */
7
7
  interface ColorConfigProps {
8
8
  color?: any;
@@ -22,6 +22,7 @@ export declare class ColorConfig extends React.PureComponent<ColorConfigProps> {
22
22
  renderColorPicker(inputValue: any, setNewValue: any): any;
23
23
  render(): any;
24
24
  }
25
+ export declare function LegendFontColorConfig(props: any): any;
25
26
  /**
26
27
  * A menu item that configures `trackModel.options.color`
27
28
  *
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A context menu item that configures track y-scale.
3
+ *
4
+ * @param {Object} props - props as specified by React
5
+ * @return {JSX.Element} element to render
6
+ */
7
+ declare function DownsamplingConfig(props: any): any;
8
+ export default DownsamplingConfig;
@@ -2,7 +2,7 @@ import React from "react";
2
2
  /**
3
3
  * A menu option that configures some integer-based property.
4
4
  *
5
- * @author Silas Hsu
5
+ * @author Chanrung(Chad) Seng, Silas Hsu
6
6
  */
7
7
  interface NumberConfigProps {
8
8
  optionsObjects: any;
@@ -78,6 +78,7 @@ export interface ITrackModel {
78
78
  id: number | string;
79
79
  isSelected: boolean;
80
80
  tracks?: ITrackModel[];
81
+ changeConfigInitial?: boolean;
81
82
  }
82
83
  export interface IHighlightInterval {
83
84
  start: number;
@@ -0,0 +1,2 @@
1
+ import "./init-DVJ9vOmS.mjs";
2
+ import "./index-BRD1ij9p.mjs";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "wuepgg3-track",
3
3
  "private": false,
4
- "version": "3.0.3",
4
+ "version": "4.0.0",
5
5
  "main": "dist/index.umd.js",
6
6
  "module": "dist/index.es.js",
7
7
  "types": "dist/index.d.ts",
@@ -47,13 +47,11 @@
47
47
  "@types/lodash": "^4.17.6",
48
48
  "@types/pako": "^2.0.3",
49
49
  "3dmol": "^2.4.0",
50
- "and": "^0.0.3",
51
50
  "array-smooth": "^1.0.0",
52
51
  "axios": "^1.10.0",
53
52
  "color-rgba": "^3.0.0",
54
53
  "d3": "^7.9.0",
55
54
  "flexlayout-react": "^0.3.11",
56
- "framer-motion": "^12.23.24",
57
55
  "generic-filehandle": "^3.1.2",
58
56
  "generic-filehandle2": "^2.0.14",
59
57
  "grommet": "^2.37.0",
@@ -75,8 +73,8 @@
75
73
  "react-compound-slider": "^3.4.0",
76
74
  "react-modal": "^3.16.1",
77
75
  "react-popper": "^2.3.0",
78
- "react-table": "^7.8.0",
79
76
  "vite-plugin-dts": "^2.1.0",
77
+ "framer-motion": "^12.12.1",
80
78
  "vite-plugin-node-polyfills": "^0.24.0"
81
79
  },
82
80
  "devDependencies": {
@@ -1,18 +0,0 @@
1
- import DisplayedRegionModel from "../../../../models/DisplayedRegionModel";
2
- import TrackModel from "../../../../models/TrackModel";
3
- import { HighlightInterval } from "../../ToolComponents/HighlightMenu";
4
- export interface TrackState {
5
- bundleId: string;
6
- customTracksPool: any[];
7
- darkTheme: boolean;
8
- genomeName: string;
9
- highlights: HighlightInterval[];
10
- isShowingNavigator: boolean;
11
- layout: any;
12
- metadataTerms: any[];
13
- regionSetView: any | null;
14
- regionSets: any[];
15
- viewRegion: DisplayedRegionModel;
16
- trackLegendWidth: number;
17
- tracks: Array<TrackModel>;
18
- }
@@ -1,11 +0,0 @@
1
- interface GetConfigChangeDataParams {
2
- fetchedDataCache: any;
3
- dataIdx: number;
4
- createSVGOrCanvas: (trackState: any, viewData: any[], isError: boolean, trackIndex: number, xvalues: any) => void;
5
- trackType: string;
6
- usePrimaryNav: boolean;
7
- signal?: any;
8
- trackState: any;
9
- }
10
- export declare function getConfigChangeData({ fetchedDataCache, dataIdx, trackState, createSVGOrCanvas, trackType, usePrimaryNav, }: GetConfigChangeDataParams): void;
11
- export {};
@@ -1,6 +0,0 @@
1
- import Bedcolor from "./Bedcolor";
2
- export declare const DEFAULT_OPTIONS: {
3
- rowHeight: number;
4
- hiddenPixels: number;
5
- };
6
- export default Bedcolor;
@@ -1,25 +0,0 @@
1
- import React from "react";
2
- export declare const DEFAULT_OPTIONS: {
3
- displayMode: string;
4
- color: string;
5
- color2: string;
6
- maxRows: number;
7
- height: number;
8
- hideMinimalItems: boolean;
9
- sortItems: boolean;
10
- };
11
- /**
12
- * A component that visualizes annotations or Features.
13
- *
14
- * @author Silas Hsu
15
- */
16
- interface AnnotationTrackProps {
17
- options: {
18
- displayMode: string;
19
- [key: string]: any;
20
- };
21
- }
22
- export declare class AnnotationTrack extends React.PureComponent<AnnotationTrackProps> {
23
- render(): any;
24
- }
25
- export default AnnotationTrack;