getFileExtensions();
+
+
+ /**
+ * Get the name of the file.
+ * @return the name of the file
+ */
+ public String getName();
+
+
+ /**
+ * Get the audio stream for the file
+ * @return the audio input stream.
+ */
+ public AudioInputStream getAudioStream(File soundFile);
+
+ /**
+ * Load a section of audio data.
+ * @param dataBlock - the data block.
+ * @param offlineFileServer - the offline file server.
+ * @param offlineDataLoadInfo - the offline data load info.
+ * @return true if the file has been loaded
+ */
+ boolean loadAudioData(OfflineFileServer offlineFileServer, PamDataBlock dataBlock,
+ OfflineDataLoadInfo offlineDataLoadInfo, ViewLoadObserver loadObserver);
+
+
+}
diff --git a/src/Acquisition/pamAudio/PamAudioFileFilter.java b/src/Acquisition/pamAudio/PamAudioFileFilter.java
new file mode 100644
index 00000000..2616c2b8
--- /dev/null
+++ b/src/Acquisition/pamAudio/PamAudioFileFilter.java
@@ -0,0 +1,87 @@
+package Acquisition.pamAudio;
+
+import java.io.File;
+
+import org.apache.commons.io.FilenameUtils;
+
+import PamUtils.PamFileFilter;
+
+/**
+ * The file filter for audio files compatible with PAMGuard.
+ *
+ * All file extensions from all PamAudioFileLoaders in PamAudioManager are
+ * accepted by the file filter. The file filter will aslo discard compressed
+ * audio files if there exists a raw audio file of the same name.
+ *
+ * @author Jamie Macaulay
+ *
+ */
+public class PamAudioFileFilter extends PamFileFilter {
+
+ private PamAudioFileManager pamAudioFileManager;
+
+ public PamAudioFileFilter(PamAudioFileManager pamAudioFileManager) {
+
+ /**
+ * PamfileFilter converts everything to lower case, so no need to have upper and lower versions of
+ * each ending.
+ */
+ super("Audio Files", ".wav");
+
+ this.pamAudioFileManager = pamAudioFileManager;
+
+ //add all the file types.
+ for (int i=0; i getFileExtensions();
+
+
+ /**
+ * Get the name of the file.
+ * @return the name of the file
+ */
+ public String getName();
+
+
+ /**
+ * Get the audio stream for the file
+ * @return the audio input stream.
+ */
+ public AudioInputStream getAudioStream(File soundFile);
+
+ /**
+ * Load a section of audio data.
+ * @param dataBlock - the data block.
+ * @param offlineFileServer - the offline file server.
+ * @param offlineDataLoadInfo - the offline data load info.
+ * @return true if the file has been loaded
+ */
+ public boolean loadAudioData(OfflineFileServer offlineFileServer, PamDataBlock dataBlock,
+ OfflineDataLoadInfo offlineDataLoadInfo, ViewLoadObserver loadObserver);
+
+
+}
diff --git a/src/Acquisition/pamAudio/PamAudioFileManager.java b/src/Acquisition/pamAudio/PamAudioFileManager.java
new file mode 100644
index 00000000..18188b9e
--- /dev/null
+++ b/src/Acquisition/pamAudio/PamAudioFileManager.java
@@ -0,0 +1,173 @@
+package Acquisition.pamAudio;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
+import org.codehaus.plexus.util.FileUtils;
+
+/**
+ * Central class for opening sound files.
+ *
+ * PamAudioFieManager holds a list of PamAudioFile classes. Each PamAudioFile
+ * can open a certain type of sound file e.g. flac or raw wav files.
+ * PamAudioFieManager provides fucntions around the list to open files, provide
+ * file filters etc.
+ *
+ * @author Jamie Macaulay
+ *
+ */
+public class PamAudioFileManager {
+
+ /**
+ * Instance of the PamAudioFieManager.
+ */
+ private static PamAudioFileManager pamAudioFileManager;
+
+ /**
+ * The pam audio file types.
+ */
+ private ArrayList pamAudioFileTypes;
+
+ /**
+ * The default file loader for raw files. A reference to this is kept so that
+ * file loaders can preferentially select raw files over compressed file if they
+ * have the same name e.g. if using a folder of uncompressed SoundTrap data that
+ * contains both .sud and .wav files then only .wav files should be read.
+ */
+ private WavAudioFile rawFileLoader;
+
+ public PamAudioFileManager() {
+ pamAudioFileTypes = new ArrayList();
+
+ /***** Add new audio file types here *****/
+ pamAudioFileTypes.add(rawFileLoader = new WavAudioFile());
+ pamAudioFileTypes.add(new FlacAudioFile());
+ pamAudioFileTypes.add(new SudAudioFile());
+
+ }
+
+ /**
+ * Get the audio file loader for a file.
+ *
+ * @param soundFile - the sound file
+ * @return the audio file loader.
+ */
+ public PamAudioFileLoader getAudioLoader(File soundFile) {
+ for (int i = 0; i < pamAudioFileTypes.size(); i++) {
+ if (isExtension(soundFile, pamAudioFileTypes.get(i))) {
+ return pamAudioFileTypes.get(i);
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Check if a file has an extension supported by a PamAudioFile.
+ *
+ * @param file
+ * @param pamAudioFile
+ */
+ public boolean isExtension(File file, PamAudioFileLoader pamAudioFile) {
+ for (int i = 0; i < pamAudioFile.getFileExtensions().size(); i++) {
+ if (isSoundFile(file, pamAudioFile.getFileExtensions().get(i))) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public boolean isSoundFile(File soundFile, String soundExtension) {
+ String extension = FileUtils.getExtension(soundFile.getName());
+
+ //System.out.println("Sound Extension: " + soundExtension + " File extension: " + extension);
+ return (soundExtension.equals(extension) || soundExtension.equals("." + extension));
+ }
+
+ /**
+ * Open an audio input stream. If the file is a Wav file, then it will attempt
+ * to read the file with PAMGuards bespoke audio stream reader. This includes
+ * support for wav files which are > 2GByte in size and also works for floating
+ * point 32 bit files (which the Java one doesn't). If that fails, or if its not
+ * a wav file, then the standard java AudioInputStream is used.
+ *
+ * @param file file to open
+ * @return a new audio input stream
+ * @throws UnsupportedAudioFileException thrown if it can't understand the audio
+ * format.
+ * @throws IOException
+ */
+ public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException {
+ // if (file != null && isWavFile(file) && file.length() > largeFileSize) {
+ if (file.exists() == false) {
+ System.err.println("PamAudioFileManager: the input file was null");
+ return null;
+ }
+
+ AudioInputStream stream = null;
+ for (int i = 0; i < pamAudioFileTypes.size(); i++) {
+ System.out.println(file.getName() + " " + pamAudioFileTypes.get(i).getName());
+ if (isExtension(file, pamAudioFileTypes.get(i))) {
+ //System.out.println("Get stream for: " +pamAudioFileTypes.get(i).getName());
+ stream = pamAudioFileTypes.get(i).getAudioStream(file);
+ if (pamAudioFileTypes != null) {
+ break;
+ }
+ }
+ }
+
+ if (stream == null) {
+ // have a punt at opening as a default audiostream
+ //System.out.println("Try default stream for: " +file.getName() );
+
+ stream = new WavAudioFile().getAudioStream(file);
+ }
+
+ if (stream == null) {
+ System.err.println("PamAudioFileManager: unable to open an AudioStream for " + file.getName());
+ }
+
+ return stream;
+
+ }
+
+ /**
+ * Get the instance of the PamAudioManager
+ */
+ public static PamAudioFileManager getInstance() {
+ if (pamAudioFileManager == null) {
+ pamAudioFileManager = new PamAudioFileManager();
+ }
+ return pamAudioFileManager;
+ }
+
+ /**
+ * Get the audio file filter
+ *
+ * @return the audio file filter.
+ */
+ public PamAudioFileFilter getAudioFileFilter() {
+ return new PamAudioFileFilter(this);
+ }
+
+ /**
+ * Get the current audio file
+ *
+ * @return a list oif the current audio loaders.
+ */
+ public ArrayList getAudioFileLoaders() {
+ return this.pamAudioFileTypes;
+ }
+
+ /**
+ * Get the default file loader for raw files.
+ * @return the default file loader for raw files.
+ */
+ public WavAudioFile getRawFileLoader() {
+ return rawFileLoader;
+ }
+
+}
diff --git a/src/Acquisition/pamAudio/PamAudioSystem.java b/src/Acquisition/pamAudio/PamAudioSystem.java
index e63b19bd..ae50726f 100644
--- a/src/Acquisition/pamAudio/PamAudioSystem.java
+++ b/src/Acquisition/pamAudio/PamAudioSystem.java
@@ -10,7 +10,13 @@ import javax.sound.sampled.UnsupportedAudioFileException;
//import org.kc7bfi.jflac.sound.spi.FlacAudioFileReader;
import org.jflac.sound.spi.FlacAudioFileReader;
-
+/**
+ * Now replaced with PamAudioFileManager.
+ *
+ * @author Jamie Macaulay
+ *
+ */
+@Deprecated
public class PamAudioSystem {
private static final long largeFileSize = 01L<<31;
@@ -42,7 +48,7 @@ public class PamAudioSystem {
return new FlacAudioFileReader().getAudioInputStream(file);
}
catch (UnsupportedAudioFileException e) {
-
+
}
}
else if (file != null && isSudFile(file)) {
@@ -50,14 +56,15 @@ public class PamAudioSystem {
return new SudAudioFileReader().getAudioInputStream(file);
}
catch (UnsupportedAudioFileException e) {
-
+ //e.printStackTrace();
}
}
try {
- return AudioSystem.getAudioInputStream(file);
+ return AudioSystem.getAudioInputStream(file);
}
catch (Exception e) {
System.out.println("Error in audio file " + file.getName() + ": " + e.getMessage());
+ e.printStackTrace();
return null;
}
}
@@ -93,10 +100,10 @@ public class PamAudioSystem {
*/
private static boolean isSudFile(File file) {
String name = file.getName();
- if (name.length() < 5) {
+ if (name.length() < 4) {
return false;
}
- String end = name.substring(name.length()-5).toLowerCase();
+ String end = name.substring(name.length()-4).toLowerCase();
return (end.equals(".sud"));
}
diff --git a/src/Acquisition/pamAudio/SudAudioFile.java b/src/Acquisition/pamAudio/SudAudioFile.java
new file mode 100644
index 00000000..b496301d
--- /dev/null
+++ b/src/Acquisition/pamAudio/SudAudioFile.java
@@ -0,0 +1,63 @@
+package Acquisition.pamAudio;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
+/**
+ * Opens a .sud audio file.
+ *
+ * Sud files contain X3 compressed audio data. The sud
+ * file reader opens files, creating a map of the file and saving
+ * the map as a.sudx file so it can be read more rapidly when the file
+ * is next accessed.
+ *
+ * The SudioAudioInput stream fully implements AudioInputStream and so
+ * sud files can be accessed using much of the same code as .wav files.
+ *
+ * @author Jamie Macaulay
+ *
+ */
+public class SudAudioFile extends WavAudioFile {
+
+
+ public SudAudioFile() {
+ super();
+ fileExtensions = new ArrayList(Arrays.asList(new String[]{".sud"}));
+ }
+
+ @Override
+ public String getName() {
+ return "SUD";
+ }
+
+
+ @Override
+ public AudioInputStream getAudioStream(File soundFile) {
+ if (soundFile.exists() == false) {
+ System.err.println("The sud file does not exist: " + soundFile);
+ return null;
+ }
+ if (soundFile != null) {
+ try {
+ return new SudAudioFileReader().getAudioInputStream(soundFile);
+ }
+ // don't do anything and it will try the built in Audiosystem
+ catch (UnsupportedAudioFileException e) {
+ System.err.println("Could not open sud file: not a supported file " + soundFile.getName());
+
+ e.printStackTrace();
+ } catch (IOException e) {
+ System.err.println("Could not open sud file: IO Exception: " + soundFile.getName());
+
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/Acquisition/pamAudio/SudAudioFileReader.java b/src/Acquisition/pamAudio/SudAudioFileReader.java
index 0a88149e..ba407e54 100644
--- a/src/Acquisition/pamAudio/SudAudioFileReader.java
+++ b/src/Acquisition/pamAudio/SudAudioFileReader.java
@@ -2,6 +2,7 @@ package Acquisition.pamAudio;
import java.io.File;
import java.io.IOException;
+import org.pamguard.x3.sud.*;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.UnsupportedAudioFileException;
@@ -13,11 +14,41 @@ import javax.sound.sampled.UnsupportedAudioFileException;
*
*/
public class SudAudioFileReader {
-
+ /**
+ * The current sud audio input stream
+ */
+ SudAudioInputStream sudAudioInputStream;
+
+ /**
+ * Parameters for opening .sud files.
+ */
+ SudParams sudParams;
+
+
+ public SudAudioFileReader() {
+ sudParams = new SudParams();
+ //set up the sud params for default. i.e. just read files and
+ //don't save any decompressed or meta data.
+ sudParams.saveWav = false;
+ sudParams.saveMeta = false;
+ sudParams.zeroPad = true;
+ }
+
+ /**
+ * Get the audio input streamn.
+ * @param file - the .sud file to open.
+ * @return the sud AudioStream.
+ * @throws UnsupportedAudioFileException
+ * @throws IOException
+ */
public AudioInputStream getAudioInputStream(File file) throws UnsupportedAudioFileException, IOException {
- // TODO Auto-generated method stub
- return null;
+ try {
+ sudAudioInputStream = SudAudioInputStream.openInputStream(file, sudParams, false);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return sudAudioInputStream;
}
}
diff --git a/src/Acquisition/pamAudio/WavAudioFile.java b/src/Acquisition/pamAudio/WavAudioFile.java
new file mode 100644
index 00000000..bf0ec6d0
--- /dev/null
+++ b/src/Acquisition/pamAudio/WavAudioFile.java
@@ -0,0 +1,250 @@
+package Acquisition.pamAudio;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+
+import javax.sound.sampled.AudioFormat;
+import javax.sound.sampled.AudioInputStream;
+import javax.sound.sampled.AudioSystem;
+import javax.sound.sampled.UnsupportedAudioFileException;
+
+import org.codehaus.plexus.util.FileUtils;
+import Acquisition.offlineFuncs.AquisitionLoadPoint;
+import PamDetection.RawDataUnit;
+import PamguardMVC.PamDataBlock;
+import PamguardMVC.dataOffline.OfflineDataLoadInfo;
+import dataMap.OfflineDataMap;
+import dataMap.filemaps.FileDataMapPoint;
+import dataMap.filemaps.OfflineFileServer;
+import pamScrollSystem.ViewLoadObserver;
+import wavFiles.ByteConverter;
+
+/**
+ * Wav audio file - opens any raw audio file.
+ *
+ * This should be used a standard class for opening audio files
+ *
+ * @author Jamie Macaulay, Doug Gillepsie
+ *
+ */
+public class WavAudioFile implements PamAudioFileLoader {
+
+ /**
+ * The audio input stream of the last loaded file.
+ */
+ private AudioInputStream audioInputStream;
+
+ /**
+ * The audioformat of the last laoded file.
+ */
+ private AudioFormat audioFormat;
+
+ /**
+ * Get the file extensions associated with loading these data.
+ */
+ protected ArrayList fileExtensions;
+
+ public WavAudioFile() {
+ fileExtensions = new ArrayList(Arrays.asList(new String[]{".wav", ".aif", ".aiff"}));
+ }
+
+ @Override
+ public ArrayList getFileExtensions() {
+ return fileExtensions;
+ }
+
+ @Override
+ public String getName() {
+ return "WAV";
+ }
+
+ @Override
+ public boolean loadAudioData(OfflineFileServer offlineFileServer, PamDataBlock dataBlock, OfflineDataLoadInfo offlineDataLoadInfo, ViewLoadObserver loadObserver) {
+
+ // Debug.out.println("OfflineFileServer: Load Wav Data: " + offlineDataLoadInfo.getCurrentObserver().getObserverName() );
+ OfflineDataMap dataMap = offlineFileServer.getDataMap();
+ Iterator mapIt = dataMap.getListIterator();
+ FileDataMapPoint mapPoint = offlineFileServer.findFirstMapPoint(mapIt, offlineDataLoadInfo.getStartMillis(), offlineDataLoadInfo.getEndMillis());
+
+ if (openSoundFile(mapPoint.getSoundFile()) == false) {
+ System.out.println("Could not open .wav sound file " + mapPoint.getSoundFile().getAbsolutePath());
+ return false;
+ }
+ File soundFile;
+
+ ByteConverter byteConverter = ByteConverter.createByteConverter(audioFormat);
+ long currentTime = mapPoint.getStartTime();
+ long prevFileEnd = mapPoint.getEndTime();
+ boolean fileGap = false;
+ int newSamples;
+ double[][] doubleData;
+ int nChannels = audioFormat.getChannels();
+ int blockSamples = Math.max((int) audioFormat.getSampleRate() / 10, 1000);
+ int frameSize = audioFormat.getFrameSize();
+ if (frameSize < 0) {
+ frameSize = audioFormat.getChannels()*audioFormat.getSampleSizeInBits()/8;
+ }
+ if (frameSize <= 0) {
+ System.out.println("The frame size is less than zero " + mapPoint.getSoundFile().getAbsolutePath());
+ return false;
+ }
+ byte[] inputBuffer = new byte[blockSamples * frameSize];
+ int bytesRead = 0;
+ long totalSamples = 0;
+ // long fileSamples = 0;
+ long millisecondsGaps = 0;
+ long ms;
+
+ RawDataUnit newDataUnit;
+ long skipped = 0;
+ if (currentTime < offlineDataLoadInfo.getStartMillis()) {
+ // need to fast forward in current file.
+ long skipBytes = (long) (((offlineDataLoadInfo.getStartMillis()-currentTime)*audioFormat.getSampleRate()*audioFormat.getFrameSize())/1000.);
+ try {
+
+ //System.out.println("Skipped " + skipped+ " " + skipBytes + " " + audioInputStream.available());
+ skipped = audioInputStream.skip(skipBytes);
+ //System.out.println("Offline " + (offlineDataLoadInfo.getStartMillis()-currentTime) + " ms : frame size: " + audioFormat.getFrameSize());
+
+ } catch (IOException e) {
+ /**
+ * The datamap point may be longer than the actual file here ? In any case, with the
+ * NEMO data which is 5 mins per hour, this get's hit for the file before the
+ * file we want every time !
+ */
+ // System.out.println("End of audio file " + mapPoint.getSoundFile().getName());
+ e.printStackTrace();
+ }
+ currentTime = offlineDataLoadInfo.getStartMillis();
+ }
+ ms = currentTime;
+ while (ms < offlineDataLoadInfo.getEndMillis() && currentTime < offlineDataLoadInfo.getEndMillis()) {
+ if (offlineDataLoadInfo.cancel) {
+ //add the position we got to
+ offlineDataLoadInfo.setLastLoadInfo(new AquisitionLoadPoint(ms, bytesRead));
+
+
+ break;
+ }
+ try {
+ if (inputBuffer.length 1000;
+ // if (fileGap) {
+ // System.out.println(String.format("Sound file gap %3.3fs from %s to %s",
+ // (double) (mapPoint.getStartTime()-prevFileEnd) / 1000.,
+ // PamCalendar.formatTime(prevFileEnd), PamCalendar.formatTime(mapPoint.getStartTime())));
+ // }
+ prevFileEnd = mapPoint.getEndTime();
+ if (!fileGap) { // don't carry on if there is a file gap
+ if (openSoundFile(mapPoint.getSoundFile()) == false) {
+ break;
+ }
+ // try again to read data.
+ try {
+ bytesRead = audioInputStream.read(inputBuffer);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ if (bytesRead <= 0) {
+ break;
+ }
+ }
+ }
+ newSamples = bytesRead / frameSize;
+ doubleData = new double[nChannels][newSamples];
+ int convertedSamples = byteConverter.bytesToDouble(inputBuffer, doubleData, bytesRead);
+ ms = offlineFileServer.getOfflineRawDataStore().getParentProcess().absSamplesToMilliseconds(totalSamples);
+ ms = currentTime + (long)(totalSamples * 1000 / (double) audioFormat.getSampleRate());
+
+ for (int ichan = 0; ichan < nChannels; ichan++) {
+
+ newDataUnit = new RawDataUnit(ms, 1 << ichan, totalSamples, newSamples);
+ newDataUnit.setFileSamples(totalSamples + skipped / frameSize); //set the number samples into the wav file.
+ newDataUnit.setRawData(doubleData[ichan], true);
+
+ //System.out.println("New wav data: " + PamCalendar.formatDateTime(newDataUnit.getTimeMilliseconds()));
+ offlineFileServer.getRawDataBlock().addPamData(newDataUnit);
+ }
+ if (fileGap) {
+ currentTime = mapPoint.getStartTime();
+ totalSamples = 0;
+ // fileSamples = 0;
+ }
+
+ totalSamples += newSamples;
+ // fileSamples += newSamples;
+ }
+
+ // System.out.println("Finished loading wav: " + offlineDataLoadInfo.getCurrentObserver().getObserverName() );
+
+ return false;
+ }
+
+
+ /**
+ * Open a sound file.
+ * @param soundFile
+ * @return
+ */
+ private boolean openSoundFile(File soundFile) {
+
+ audioInputStream = getAudioStream(soundFile);
+ if (audioInputStream == null) return false;
+ audioFormat = audioInputStream.getFormat();
+
+ return true;
+ }
+
+
+ @Override
+ public AudioInputStream getAudioStream(File soundFile) {
+ if (soundFile.exists() == false) return null;
+ if (soundFile != null && isSoundFile(soundFile)) {
+ try {
+ return WavFileInputStream.openInputStream(soundFile);
+ }
+ catch (UnsupportedAudioFileException | IOException e) {
+ e.printStackTrace();
+ // don't do anything and it will try the built in Audiosystem
+ System.err.println("Could not open wav file: trying default audio stream: " + soundFile.getName());
+ }
+ }
+ try {
+ return AudioSystem.getAudioInputStream(soundFile);
+ }
+ catch (Exception e) {
+ System.out.println("Error in audio file " + soundFile.getName() + ": " + e.getMessage());
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+
+ public boolean isSoundFile(File soundFile) {
+ String extension = FileUtils.getExtension(soundFile.getName());
+ return (extension.equals(".wav"));
+ }
+
+
+}
diff --git a/src/IshmaelDetector/MatchFiltParamsDialog.java b/src/IshmaelDetector/MatchFiltParamsDialog.java
index 4442a2c6..28aa086b 100644
--- a/src/IshmaelDetector/MatchFiltParamsDialog.java
+++ b/src/IshmaelDetector/MatchFiltParamsDialog.java
@@ -33,8 +33,8 @@ import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
+import Acquisition.pamAudio.PamAudioFileFilter;
import PamDetection.RawDataUnit;
-import PamUtils.PamAudioFileFilter;
import PamUtils.PamFileChooser;
diff --git a/src/Localiser/algorithms/timeDelayLocalisers/bearingLoc/DelayOptionsPaneFX.java b/src/Localiser/algorithms/timeDelayLocalisers/bearingLoc/DelayOptionsPaneFX.java
new file mode 100644
index 00000000..fa81ad92
--- /dev/null
+++ b/src/Localiser/algorithms/timeDelayLocalisers/bearingLoc/DelayOptionsPaneFX.java
@@ -0,0 +1,221 @@
+package Localiser.algorithms.timeDelayLocalisers.bearingLoc;
+
+
+import Localiser.DelayMeasurementParams;
+import PamController.SettingsPane;
+import fftFilter.FFTFilterParams;
+import javafx.scene.Node;
+import javafx.scene.control.CheckBox;
+import javafx.scene.control.Label;
+import javafx.scene.control.TextField;
+import javafx.scene.control.Tooltip;
+import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.Pane;
+import pamViewFX.fxNodes.PamButton;
+import pamViewFX.fxNodes.PamGridPane;
+import pamViewFX.fxNodes.PamSpinner;
+import pamViewFX.fxNodes.pamDialogFX.PamDialogFX;
+import pamViewFX.fxNodes.utilityPanes.SimpleFilterPaneFX;
+
+public class DelayOptionsPaneFX extends SettingsPane {
+
+
+ private CheckBox filterBearings, envelopeBearings, useLeadingEdge, upSample;
+ private PamButton filterSettings;
+ private Label filterDescription;
+
+ /**
+ * The current delay measurement parameters.
+ */
+ private DelayMeasurementParams delayMeasurementParams;
+
+
+ /**
+ * Check box for restricting samples.
+ */
+ private CheckBox restrictSamples;
+
+ /**
+ * Restrict the number of samples.
+ */
+ private TextField restrictSamplesField;
+
+ private PamSpinner upSampleSpinner;
+
+
+ private SimpleFilterPaneFX simpleFilterPane = new SimpleFilterPaneFX();
+
+ public DelayOptionsPaneFX() {
+ super(null);
+ // TODO Auto-generated constructor stub
+ }
+
+
+ public Pane createDelayOptionsPane() {
+ int gridy=0;
+
+ PamGridPane mainPanel = new PamGridPane();
+// mainPanel.setBorder(new TitledBorder("Delay measurement options"));
+ mainPanel.add(filterBearings = new CheckBox("Filter data before measurement"), 0,gridy);
+ PamGridPane.setColumnSpan(filterBearings, 2);
+ filterBearings.setOnAction((action)->{
+ enableControls();
+ });
+ gridy++;
+
+ mainPanel.add(filterSettings = new PamButton("Settings"), 0,gridy);
+ filterSettings.setOnAction((action)->{
+ FFTFilterParams newParams = simpleFilterPane.getParams(delayMeasurementParams.delayFilterParams);
+ if (newParams != null) {
+ delayMeasurementParams.delayFilterParams = newParams.clone();
+ describeFilter();
+ }
+ });
+ gridy++;
+
+ mainPanel.add(filterDescription = new Label(" "), 0,gridy);
+ gridy++;
+ mainPanel.add(upSample = new CheckBox("Up sample data x2"), 0,gridy);
+ upSample.setTooltip(new Tooltip("Up sampling data to a higher frequency can improve timing accuracy for narrow band clicks (i.e. harbour porpoise)"));
+ gridy++;
+
+
+ //SpinnerListModel spinnerModel = new SpinnerListModel(Arrays.asList(new Integer[] {2,3,4})); //restrict the spinenr options.
+
+ mainPanel.add(upSampleSpinner = new PamSpinner(2,4,2,1), 0,gridy);
+ upSampleSpinner.valueProperty().addListener((obsval, oldVa, newVal)->{
+ upSample.setText("Up sample data x" + this.upSampleSpinner.getValue());
+ });
+ gridy++;
+
+ mainPanel.add(envelopeBearings = new CheckBox("Use waveform envelope"), 0, gridy);
+ gridy++;
+
+
+ mainPanel.add(new Label(" "), 0, gridy);
+ gridy++;
+
+ mainPanel.add(new Label(" "), 0, gridy);
+ gridy++;
+
+
+ mainPanel.add(useLeadingEdge = new CheckBox("Use envelope leading edge only"), 0, gridy);
+ gridy++;
+ PamGridPane.setColumnSpan(useLeadingEdge, 2);
+ envelopeBearings.setOnAction((action)->{
+ enableControls();
+ });
+ envelopeBearings.setOnAction((action)->{
+ enableControls();
+ });
+ PamGridPane.setColumnSpan(envelopeBearings, 2);
+
+
+ //restrict
+ mainPanel.add(restrictSamples = new CheckBox("Restrict length"), 0, gridy);
+ gridy++;
+ PamGridPane.setColumnSpan(restrictSamples, 2);
+ restrictSamples.setOnAction((action)->{
+ enableControls();
+ });
+ mainPanel.add(restrictSamplesField = new TextField(), 2, gridy);
+
+
+ restrictSamples.setTooltip(new Tooltip("In environments where echoes are an issue restricting inital samples of detections "
+ + "(e.g. click snippets) is a simple but effective way to increase the accuracy of time delay calculations. "
+ + "WARNING: Remember that this must cover the potential time delay in grouped detections "));
+ filterBearings.setTooltip(new Tooltip("Filter data prior to bearing measurement to imporve accuracy"));
+ filterSettings.setTooltip(new Tooltip("Setup filter options"));
+ envelopeBearings.setTooltip(new Tooltip("Using the envelope can provide more accurate bearings for some narrowband pulses"));
+ filterDescription.setTooltip(new Tooltip("Current filter settings"));
+ useLeadingEdge.setTooltip(new Tooltip("For long pulses, or where there are echoes, restrict the calculation to the leading edge of the envelope"));
+
+ BorderPane pane = new BorderPane();
+ pane.setCenter(mainPanel);
+
+ return pane;
+ }
+
+
+ private void enableControls() {
+ filterSettings.setDisable(!filterBearings.isSelected());
+ filterDescription.setDisable(!filterBearings.isSelected());
+ useLeadingEdge.setDisable(!envelopeBearings.isSelected());
+ restrictSamplesField.setDisable(!restrictSamples.isSelected());
+ if (!envelopeBearings.isSelected()) {
+// useLeadingEdge.setSelected(false);
+ }
+ }
+
+ private void describeFilter() {
+ if (delayMeasurementParams == null || delayMeasurementParams.delayFilterParams == null) {
+ filterDescription.setText("No filter");
+ return;
+ }
+ filterDescription.setText(delayMeasurementParams.delayFilterParams.toString());
+ }
+
+ @Override
+ public void setParams(DelayMeasurementParams delayMeasurementParams) {
+ this.delayMeasurementParams = delayMeasurementParams;
+ filterBearings.setSelected(delayMeasurementParams.filterBearings);
+ upSample.setSelected(delayMeasurementParams.getUpSample() > 1);
+ envelopeBearings.setSelected(delayMeasurementParams.envelopeBearings);
+ useLeadingEdge.setSelected(delayMeasurementParams.useLeadingEdge);
+ restrictSamples.setSelected(delayMeasurementParams.useRestrictedBins);
+ restrictSamplesField.setText(String.format("%d", delayMeasurementParams.restrictedBins));
+
+ upSample.setText("Up sample data x" + this.upSampleSpinner.getValue());
+
+ enableControls();
+ describeFilter();
+ }
+
+ @Override
+ public DelayMeasurementParams getParams(DelayMeasurementParams delayMeasurementParams) {
+ delayMeasurementParams.delayFilterParams = this.delayMeasurementParams.delayFilterParams;
+ delayMeasurementParams.filterBearings = filterBearings.isSelected();
+ delayMeasurementParams.setUpSample(upSample.isSelected() ? ((Integer) this.upSampleSpinner.getValue()).intValue() : 1);
+ delayMeasurementParams.envelopeBearings = envelopeBearings.isSelected();
+ delayMeasurementParams.useLeadingEdge = useLeadingEdge.isSelected() && delayMeasurementParams.envelopeBearings;
+
+ delayMeasurementParams.useRestrictedBins=this.restrictSamples.isSelected();
+
+ try {
+ delayMeasurementParams.restrictedBins=Integer.valueOf(this.restrictSamplesField.getText());
+ }
+ catch(Exception e) {
+ PamDialogFX.showWarning(null, "Delay measurement settings", "The entry in the samples text field is invalid.");
+ return null;
+ }
+
+ if (delayMeasurementParams.useRestrictedBins && delayMeasurementParams.restrictedBins<10) {
+ PamDialogFX.showWarning(null, "Delay measurement settings", "The entry in the samples text field is invalid. It must be >= 10");
+ return null;
+ }
+
+ if (delayMeasurementParams.filterBearings && delayMeasurementParams.delayFilterParams == null) {
+ PamDialogFX.showWarning(null, "Delay measurement settings", "Filter parameters have not been set");
+ return null;
+ }
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return "Delay Measurment Params";
+ }
+
+ @Override
+ public Node getContentNode() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void paneInitialized() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
diff --git a/src/PamController/PamSettingManager.java b/src/PamController/PamSettingManager.java
index 782c1a05..e9119294 100644
--- a/src/PamController/PamSettingManager.java
+++ b/src/PamController/PamSettingManager.java
@@ -1,19 +1,19 @@
/* PAMGUARD - Passive Acoustic Monitoring GUARDianship.
- * To assist in the Detection Classification and Localisation
+ * To assist in the Detection Classification and Localisation
* of marine mammals (cetaceans).
- *
- * Copyright (C) 2006
- *
+ *
+ * Copyright (C) 2006
+ *
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 3
* of the License, or (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
@@ -100,10 +100,10 @@ import amplifier.AmpParameters;
/**
* @author Doug Gillespie
- *
+ *
* Singleton class for managing Pam settings - where and how they are stored in
* a persistent way between runs.
- *
+ *
* Any class that wants is settings saved should register with the
* PamSettingsManager.
*
@@ -122,8 +122,8 @@ import amplifier.AmpParameters;
* type and settings version. Once one is found, it is given the reference to
* the settings data which t is responsible for casting into whatever class it
* requires.
- *
- *
+ *
+ *
*/
public class PamSettingManager {
@@ -135,34 +135,34 @@ public class PamSettingManager {
/**
* List of modules that have / want PAMGUARD Settings
- * which get stored in the psf file and / or the database store.
+ * which get stored in the psf file and / or the database store.
*/
private ArrayList owners;
/**
* List of modules that specifically use settings from the database
- * storage.
+ * storage.
*/
private ArrayList databaseOwners;
/**
* List of modules that are stored globally on the PC
- * with a single common psf type file.
+ * with a single common psf type file.
*/
private ArrayList globalOwners;
private ArrayList globalSettings;
/**
- * List of settings used by 'normal' modules.
+ * List of settings used by 'normal' modules.
*/
private ArrayList initialSettingsList;
/**
- * List of settings used specifically by databases.
+ * List of settings used specifically by databases.
* This list never get's stored anywhere, but is just held
- * in memory so that the database identified at startup in
- * viewer and mixed modes gets reloaded later on .
+ * in memory so that the database identified at startup in
+ * viewer and mixed modes gets reloaded later on .
*/
private ArrayList databaseSettingsList;
@@ -172,7 +172,7 @@ public class PamSettingManager {
static public final String fileEndx = "psfx";
static public final String fileEndXML = "psfxml";
private static boolean saveAsPSFX = true;
-
+
static public String getCurrentSettingsFileEnd() {
if (saveAsPSFX) {
return fileEndx;
@@ -183,7 +183,7 @@ public class PamSettingManager {
}
/**
- * Name of the file that contains a list of recent psf files.
+ * Name of the file that contains a list of recent psf files.
*/
transient private final String settingsListFileName = "PamSettingsFilesUID";
@@ -206,13 +206,13 @@ public class PamSettingManager {
public static final int LIST_UNITS = 0x1;
/**
- * Identifier for modules which are part of the database system.
+ * Identifier for modules which are part of the database system.
*/
public static final int LIST_DATABASESTUFF = 0x2;
/**
- * Stuff which is global to the computer system (at the user level).
- * Invented for colour settings, might extend to other things too.
+ * Stuff which is global to the computer system (at the user level).
+ * Invented for colour settings, might extend to other things too.
*/
public static final int LIST_SYSTEMGLOBAL = 0x4;
@@ -221,7 +221,7 @@ public class PamSettingManager {
*/
static private final int SAVE_PSF = 0x1;
/**
- * Save settings to database tables (if available).
+ * Save settings to database tables (if available).
*/
static private final int SAVE_DATABASE = 0x2;
@@ -243,7 +243,7 @@ public class PamSettingManager {
private boolean programStart = true;
private SettingsFileData settingsFileData;
-
+
private PamSettingManager() {
owners = new ArrayList();
@@ -274,9 +274,9 @@ public class PamSettingManager {
* Flag to indicate that initialisation of PAMGUARD has completed.
*/
private boolean initializationComplete = false;
-
+
/**
- * Called everytime anything in the model changes.
+ * Called everytime anything in the model changes.
* @param changeType type of change
*/
public void notifyModelChanged(int changeType) {
@@ -286,14 +286,14 @@ public class PamSettingManager {
}
/**
- * Register a PAMGAURD module that wants to store settings in a
+ * Register a PAMGAURD module that wants to store settings in a
* serialised file (.psf file) and / or have those settings stored
- * in the database settings table.
- * Normally, all modules will
+ * in the database settings table.
+ *
Normally, all modules will
* call this for at least one set of settings. Often the PamSettings
- * is implemented by the class that extends PamControlledunit, but
+ * is implemented by the class that extends PamControlledunit, but
* it's also possible to have multiple sub modules, processes or displays
- * implemnt PamSettings so that different settings for different bits of
+ * implemnt PamSettings so that different settings for different bits of
* a PamControlledUnit are stored separately.
* @see PamSettings
* @see PamControlledUnit
@@ -306,15 +306,15 @@ public class PamSettingManager {
}
/**
- * Register modules that have settings information that
- * should be stored in serialised form in
- * psf files and database Pamguard_Settings tables.
+ * Register modules that have settings information that
+ * should be stored in serialised form in
+ * psf files and database Pamguard_Settings tables.
* @param pamUnit Unit containing the settings
* @param whichLists which lists to store the settings in.
- * N.B. These are internal lists and not the external storage. Basically
+ * N.B. These are internal lists and not the external storage. Basically
* any database modules connected with settings should to in LIST_DATABASESTUFF
- * everything else (including the normal database) should go to LISTS_UNITS
- * @return true if settings registered sucessfully.
+ * everything else (including the normal database) should go to LISTS_UNITS
+ * @return true if settings registered sucessfully.
*/
public boolean registerSettings(PamSettings pamUnit, int whichLists) {
@@ -342,10 +342,10 @@ public class PamSettingManager {
}
/**
- * Find settings for a particular user in one or more lists.
- * @param user PamSettings user.
- * @param whichLists lists to search
- * @return settings object.
+ * Find settings for a particular user in one or more lists.
+ * @param user PamSettings user.
+ * @param whichLists lists to search
+ * @return settings object.
*/
private PamControlledUnitSettings findSettings(PamSettings user, int whichLists) {
PamControlledUnitSettings settings = null;
@@ -373,18 +373,18 @@ public class PamSettingManager {
}
/**
* Find settings in a list of settings, ignoring settings which have
- * already been used by a module.
+ * already been used by a module.
* @param settingsList settings list
- * @param usedSettings list of settings that have already been used.
- * @param user module that uses the settings.
- * @return Settings object.
+ * @param usedSettings list of settings that have already been used.
+ * @param user module that uses the settings.
+ * @return Settings object.
*/
- private PamControlledUnitSettings findSettings(ArrayList settingsList,
+ private PamControlledUnitSettings findSettings(ArrayList settingsList,
boolean[] usedSettings, PamSettings user) {
if (settingsList == null) return null;
// go through the list and see if any match this module. Avoid repeats.
for (int i = 0; i < settingsList.size(); i++) {
- if (usedSettings != null && usedSettings[i]) continue;
+ if (usedSettings != null && usedSettings[i]) continue;
if (isSettingsUnit(user, settingsList.get(i))) {
if (usedSettings != null) {
usedSettings[i] = true;
@@ -393,10 +393,10 @@ public class PamSettingManager {
}
}
/*
- * To improve complex module loading where settings may be saved by multiple sub-modules, in
+ * To improve complex module loading where settings may be saved by multiple sub-modules, in
* July 2015 many modules which had fixed settings had their settings names and types changed !
* Therefore these modules won't have found their settings on the first go, so need to also check
- * against the alternate names defined for each class.
+ * against the alternate names defined for each class.
* It should be possible to work out from the settingsUser.Class what changes may have been made !
*/
SettingsNameChange otherName = SettingsNameChanger.getInstance().findNameChange(user);
@@ -404,7 +404,7 @@ public class PamSettingManager {
return null;
}
for (int i = 0; i < settingsList.size(); i++) {
- if (usedSettings != null && usedSettings[i]) continue;
+ if (usedSettings != null && usedSettings[i]) continue;
if (isSettingsUnit(otherName, settingsList.get(i))) {
if (usedSettings != null) {
usedSettings[i] = true;
@@ -419,7 +419,7 @@ public class PamSettingManager {
/**
* Searches a list of settings for settings with a
- * specific type.
+ * specific type.
* @param unitType
* @return PamControlledUnitSettings or null if none found
* @see PamControlledUnitSettings
@@ -437,8 +437,8 @@ public class PamSettingManager {
}
/**
- * Find settings in a list of settings by name and by type.
- * @param settingsList settings list to search
+ * Find settings in a list of settings by name and by type.
+ * @param settingsList settings list to search
* @param unitType unit name
* @param unitName unit type
* @return settings object
@@ -468,11 +468,11 @@ public class PamSettingManager {
}
/**
- * Find a settings owner for a type, name and class.
+ * Find a settings owner for a type, name and class.
* @param unitType unit Type
* @param unitName unit Name
* @param unitClass unit Class
- * @return Settings owner or null.
+ * @return Settings owner or null.
*/
public PamSettings findSettingsOwner(String unitType, String unitName, String unitClassName) {
for (PamSettings owner:owners) {
@@ -491,8 +491,8 @@ public class PamSettingManager {
/**
* Call just before PAMGUARD exits to save the settings
- * either to psf and / or database tables.
- * @return true if settings saved sucessfully.
+ * either to psf and / or database tables.
+ * @return true if settings saved sucessfully.
*/
public boolean saveFinalSettings() {
int runMode = PamController.getInstance().getRunMode();
@@ -511,9 +511,9 @@ public class PamSettingManager {
}
/**
- * Save settings to a psf file and / or the database tables.
+ * Save settings to a psf file and / or the database tables.
* @param saveWhere
- * @return true if sucessful
+ * @return true if sucessful
*/
public boolean saveSettings(int saveWhere) {
@@ -541,7 +541,7 @@ public class PamSettingManager {
}
/**
* Always save the settings file data (list of recent files) since it includes
- * static information such as whether to show day tips.
+ * static information such as whether to show day tips.
*/
saveSettingsFileData();
@@ -559,8 +559,8 @@ public class PamSettingManager {
}
/**
- * Save configuration settings to the default (most recently used) psf file.
- * @return true if successful.
+ * Save configuration settings to the default (most recently used) psf file.
+ * @return true if successful.
*/
public boolean saveSettingsToFile(String fileName) {
if (saveAsPSFX) {
@@ -586,7 +586,7 @@ public class PamSettingManager {
ObjectOutputStream outStream = openOutputFile(setFile.getAbsolutePath());
for (PamSettings gs:globalOwners) {
- PamControlledUnitSettings pus = new PamControlledUnitSettings(gs.getUnitType(),
+ PamControlledUnitSettings pus = new PamControlledUnitSettings(gs.getUnitType(),
gs.getUnitName(), gs.getClass().getName(), gs.getSettingsVersion(), gs.getSettingsReference());
try {
outStream.writeObject(pus);
@@ -604,7 +604,7 @@ public class PamSettingManager {
ObjectInputStream ois = null;
boolean ok= true;
try {
- ois = new ObjectInputStream(new FileInputStream(setFile));
+ ois = new ObjectInputStream(new FileInputStream(setFile));
}
catch (IOException e) {
ok = false;
@@ -636,8 +636,8 @@ public class PamSettingManager {
}
/**
- * Save configuration settings to the default (most recently used) psf file.
- * @return true if successful.
+ * Save configuration settings to the default (most recently used) psf file.
+ * @return true if successful.
*/
public boolean saveSettingsToPSFFile(String fileName) {
@@ -650,9 +650,9 @@ public class PamSettingManager {
for (int i = 0; i < owners.size(); i++) {
pamSettingsList
.add(new PamControlledUnitSettings(owners.get(i)
- .getUnitType(), owners.get(i).getUnitName(),
+ .getUnitType(), owners.get(i).getUnitName(),
owners.get(i).getClass().getName(),
- owners.get(i).getSettingsVersion(),
+ owners.get(i).getSettingsVersion(),
owners.get(i).getSettingsReference()));
}
int nUsed = pamSettingsList.size();
@@ -666,14 +666,14 @@ public class PamSettingManager {
if (initialSettingsList != null) {
for (int i = 0; i < initialSettingsList.size(); i++) {
if (settingsUsed != null && settingsUsed.length > i && settingsUsed[i]) continue;
-
+
// if this is a duplicate of something already in the list, warn the user and find out if they want to remove it
if (thisIsADuplicate(pamSettingsList, initialSettingsList.get(i))) {
if (firstDuplicateFound) {
firstDuplicateFound = false;
String msg = "Duplicate settings have been found in the psf file. Please select whether to keep them in the psf, or to" +
" delete them. Duplicate settings will not cause Pamguard to crash, however they will enlarge the psf file over time.";
- int ans;
+ int ans;
if (PamGUIManager.getGUIType()==PamGUIManager.FX) ans = WarnOnce.showWarningFX(PamController.getInstance().getGuiManagerFX().getMainScene().getOwner(),
"Duplicate settings encountered", PamUtilsFX.htmlToNormal(msg), AlertType.WARNING, null, null, "Keep Duplicates", "Delete Duplicates");
else ans = WarnOnce.showWarning(null, "Duplicate settings encountered", msg, WarnOnce.OK_CANCEL_OPTION, null, null,"Keep Duplicates", "Delete Duplicates");
@@ -684,7 +684,7 @@ public class PamSettingManager {
if (purgeDuplicates) continue;
pamSettingsList.add(initialSettingsList.get(i));
}
-
+
// if this is not a duplicate, go ahead and add it to the list
else {
pamSettingsList.add(initialSettingsList.get(i));
@@ -713,7 +713,7 @@ public class PamSettingManager {
return false;
}
- // try { // experimenting with xml output.
+ // try { // experimenting with xml output.
// FileOutputStream fos = new FileOutputStream("pamguard.xml");
// XMLEncoder xe = new XMLEncoder(fos);
// for (int i = 0; i < nUsed; i++) {
@@ -737,7 +737,7 @@ public class PamSettingManager {
/**
* Checks if the PamControlledSettings object is already in the settings ArrayList. Comparison is done by
- * checking the unit type and unit name.
+ * checking the unit type and unit name.
* @param pamSettingsList the ArrayList containing the PamControlledUnitSettings
* @param settingToCheck the PamControlledUnitSettings to check
* @return true if it is in the list, false if not
@@ -755,7 +755,7 @@ public class PamSettingManager {
}
/**
- * Save configuration settings to a PSFX file (XML).
+ * Save configuration settings to a PSFX file (XML).
* @return true if successful.
*/
public boolean saveSettingsToXMLFile(File file) {
@@ -770,9 +770,9 @@ public class PamSettingManager {
for (int i = 0; i < owners.size(); i++) {
pamSettingsList
.add(new PamControlledUnitSettings(owners.get(i)
- .getUnitType(), owners.get(i).getUnitName(),
- owners.get(i).getClass().getName(),
- owners.get(i).getSettingsVersion(),
+ .getUnitType(), owners.get(i).getUnitName(),
+ owners.get(i).getClass().getName(),
+ owners.get(i).getSettingsVersion(),
owners.get(i).getSettingsReference()));
}
int nUsed = pamSettingsList.size();
@@ -823,16 +823,16 @@ public class PamSettingManager {
// e.printStackTrace();
// }
// System.out.println("done!");
- //
+ //
// }
System.out.println("The code for objectToXMLFile(Object serialisableObject, File file) has been commented out!!");
}
/**
- * Load the PAMGAURD settings either from psf file or from
- * a database, depending on the run mode and type of settings required.
+ * Load the PAMGAURD settings either from psf file or from
+ * a database, depending on the run mode and type of settings required.
* @param runMode
- * @return OK if load was successful.
+ * @return OK if load was successful.
*/
public int loadPAMSettings(int runMode) {
int ans = LOAD_SETTINGS_OK;
@@ -856,7 +856,7 @@ public class PamSettingManager {
ans = loadNormalSettings();
break;
default:
- return LOAD_SETTINGS_CANCEL;
+ return LOAD_SETTINGS_CANCEL;
}
if (ans == LOAD_SETTINGS_OK) {
initialiseRegisteredModules();
@@ -865,36 +865,36 @@ public class PamSettingManager {
}
/**
- * Load settings perfectly 'normally' from a psf file.
- * @return OK whether or not any settings were loaded.
+ * Load settings perfectly 'normally' from a psf file.
+ * @return OK whether or not any settings were loaded.
*/
private int loadNormalSettings() {
return loadPSFSettings();
}
/**
- * Load settings for viewer mode. These must come from
- * an old PAMGUARD database containing settings information.
- * @return true if settings loaded sucessfully.
+ * Load settings for viewer mode. These must come from
+ * an old PAMGUARD database containing settings information.
+ * @return true if settings loaded sucessfully.
*/
private int loadViewerSettings() {
return loadDBSettings();
}
/**
- * Load settings for mixed mode. These must come from
- * an old PAMGUARD database containing settings information.
- * @return true if settings loaded sucessfully.
+ * Load settings for mixed mode. These must come from
+ * an old PAMGUARD database containing settings information.
+ * @return true if settings loaded sucessfully.
*/
private int loadMixedModeSettings() {
return loadDBSettings();
}
/**
- * Some modules may have already registered before the
+ * Some modules may have already registered before the
* settings were loaded, so this function is called
- * as soon as they are loaded which sends settings to
- * all modules in the list.
+ * as soon as they are loaded which sends settings to
+ * all modules in the list.
*/
private void initialiseRegisteredModules() {
if (owners == null) {
@@ -919,9 +919,9 @@ public class PamSettingManager {
/**
* Open the file that contains a list of files and optionally open a dialog
- * giving the list of recent files.
+ * giving the list of recent files.
*
- * Unfortunately, as soon as this gets called the first time, it tries to
+ * Unfortunately, as soon as this gets called the first time, it tries to
* open a database to get more settings information and different database
* plug ins all start trying to get more settings and it goes round and round and
* round. Need to ensure that these loop around only get given the general settings
@@ -935,14 +935,14 @@ public class PamSettingManager {
}
if (loadingLocalSettings) return LOAD_SETTINGS_OK;
if (
- // settingsFileData.showFileList &&
+ // settingsFileData.showFileList &&
programStart) {
SettingsFileData newData = showSettingsDailog(settingsFileData);
if (newData != null) {
settingsFileData = newData.clone();
/*
* Save the settings file data immediately so that if we crash, this file
- * is still at the top of the list next time we run.
+ * is still at the top of the list next time we run.
*/
saveSettingsFileData();
}
@@ -953,19 +953,19 @@ public class PamSettingManager {
}
File ff = settingsFileData.getFirstFile();
}
-
+
// if we are running a psf remotely, add it to the SettingsFileData list
else {
setDefaultFile(PamSettingManager.remote_psf);
}
initialSettingsList = loadSettingsFromFile();
- //XMLSettings
+ //XMLSettings
// initialSettingsList = loadSettingsFromXMLFile();
/*TODO FIXME -implement this properly (see also PamGui-line 478) to enable saving menu item
* so far it works for some settings- one it doesn't work for is File Folder Acquisition
- *
+ *
* output from loading XML
* ------------------------------------
PAMGUARD Version 1.11.02j branch SMRU
@@ -979,7 +979,7 @@ public class PamSettingManager {
os.version 6.1
java.library.path lib
For further information and bug reporting visit www.pamguard.org
- If possible, bug reports and support requests should
+ If possible, bug reports and support requests should
contain a copy of the full text displayed in this window.
(Windows users right click on window title bar for edit / copy options)
@@ -1004,7 +1004,7 @@ public class PamSettingManager {
* -------------------------------------
* Looks like not ALL information has been stored correctly-might be best to contact XStream about resolution
- *
+ *
*/
@@ -1016,7 +1016,7 @@ public class PamSettingManager {
* Load data from settings files.
*
* This is just the general data - the list of recently used
- * psf files and recent database files.
+ * psf files and recent database files.
*/
public boolean loadLocalSettings() {
@@ -1027,25 +1027,25 @@ public class PamSettingManager {
if (PamSettingManager.RUN_REMOTE == false) {
if (settingsFileData != null) {
TipOfTheDayManager.getInstance().setShowAtStart(settingsFileData.showTipAtStartup);
- if (settingsFileData.showTipAtStartup) {
+ if (settingsFileData.showTipAtStartup) {
if (PamGUIManager.isSwing()) {
TipOfTheDayManager.getInstance().showTip(null, null);
}
}
}
}
-
+
// if the scaling factor = 0 (happens on first load), set it to 1. Then scale the display
if (settingsFileData.getScalingFactor()==0.0) {
settingsFileData.setScalingFactor(1.0);
}
scaleDisplay(settingsFileData.getScalingFactor());
-
-
- boolean ok = true; // always ok if non - database settings are used.
+
+
+ boolean ok = true; // always ok if non - database settings are used.
//
// if (PamController.getInstance().getRunMode() != PamController.RUN_NORMAL) {
- // ok = loadDBSettings();
+ // ok = loadDBSettings();
// }
loadingLocalSettings = false;
@@ -1058,9 +1058,9 @@ public class PamSettingManager {
* Adjust the size of the text by the scaleFactor variable. This was added in response to the issue of PAMGuard not
* scaling properly on 4K monitors. Things that aren't affected by this code: buttons and icons, the window title font,
* the time font, and the html in the help files.
- *
+ *
* In order to finish this off, put more work into scaling the button images.
- *
+ *
* @param scalingFactor
*/
private void scaleDisplay(double scalingFactor) {
@@ -1103,14 +1103,14 @@ public class PamSettingManager {
"Tree.font",
"Viewport.font"
};
- //TODO - does work with NIMBUS look and feel.
+ //TODO - does work with NIMBUS look and feel.
for (int i=0; i ownersList, String unitType, String unitName) {
PamSettings owner;
@@ -1233,8 +1233,8 @@ public class PamSettingManager {
}
/**
- * Load PAMGUARD settings from a psf OR a psfx file.
- * @return Array list of settings.
+ * Load PAMGUARD settings from a psf OR a psfx file.
+ * @return Array list of settings.
*/
private ArrayList loadSettingsFromFile() {
String inputFile = getSettingsFileName();
@@ -1256,13 +1256,13 @@ public class PamSettingManager {
return null;
}
/**
- * Load PAMGUARD settings from a psf file.
- * @return Array list of settings.
+ * Load PAMGUARD settings from a psf file.
+ * @return Array list of settings.
*/
private ArrayList loadSettingsFromPSFFile() {
- ArrayList newSettingsList =
+ ArrayList newSettingsList =
new ArrayList();
PamControlledUnitSettings newSetting;
@@ -1299,9 +1299,9 @@ public class PamSettingManager {
catch (IOException io){
System.out.println(io.getMessage());
/**
- * DG 10/8/2015 There is a break here, basically if I change the
+ * DG 10/8/2015 There is a break here, basically if I change the
* serialVerionUID of any class it will get stuck in an infinite loop
- * unless I break - so don't ever change serialVersionUID's !!!!!
+ * unless I break - so don't ever change serialVersionUID's !!!!!
*/
break;
}
@@ -1377,8 +1377,8 @@ public class PamSettingManager {
//XMLSettings
// /**
- // * Load PAMGUARD settings from a psf file.
- // * @return Array list of settings.
+ // * Load PAMGUARD settings from a psf file.
+ // * @return Array list of settings.
// */
// private ArrayList loadSettingsFromXMLFile() {
//
@@ -1419,24 +1419,24 @@ public class PamSettingManager {
/**
- * Quick print list of all settings to work out wtf is going on.
+ * Quick print list of all settings to work out wtf is going on.
* @param newSettingsList
*/
private void listSettings(
ArrayList newSettingsList) {
int iSet = 0;
for (PamControlledUnitSettings set:newSettingsList) {
- System.out.printf("%02d Type %s Name %s Class %s\n", iSet++, set.getUnitType(),
+ System.out.printf("%02d Type %s Name %s Class %s\n", iSet++, set.getUnitType(),
set.getUnitName(), set.getSettings().getClass().toString());
}
}
-
+
/**
* Similar to listSettings, but instead of listing all modules only list them once but with a note if
* there are duplicates
- *
+ *
* @param newSettingsList
*/
private boolean summarizeSettings(ArrayList newSettingsList) {
@@ -1456,19 +1456,19 @@ public class PamSettingManager {
alreadySeen[j] = true;
}
}
-// System.out.printf("Type: %s; Name: %s; Class: %s; is found in psf settings %d time(s)\n", set.getUnitType(),
+// System.out.printf("Type: %s; Name: %s; Class: %s; is found in psf settings %d time(s)\n", set.getUnitType(),
// set.getUnitName(), set.getSettings().getClass().toString(), count);
if (count>1) duplicatesFound=true;
}
return duplicatesFound;
}
-
+
/**
* See if a particular PamControlledUnitSettings object is the right one
- * for a particular module that wants some settings.
+ * for a particular module that wants some settings.
* @param settingsUser User of settings
- * @param settings Settings object.
- * @return true if matched.
+ * @param settings Settings object.
+ * @return true if matched.
*/
public boolean isSettingsUnit(PamSettings settingsUser, PamControlledUnitSettings settings) {
if (settings.getUnitName() == null || settingsUser.getUnitName() == null) return false;
@@ -1476,10 +1476,10 @@ public class PamSettingManager {
if (settings.getUnitName().equals(settingsUser.getUnitName())
- && settings.getUnitType().equals(settingsUser.getUnitType())
+ && settings.getUnitType().equals(settingsUser.getUnitType())
&& settings.versionNo == settingsUser.getSettingsVersion()){
return true;
- }
+ }
return false;
}
@@ -1487,10 +1487,10 @@ public class PamSettingManager {
/**
* Name check used when the initial setting search failed but it's been found that there has been a type
- * name change within the settings user.
+ * name change within the settings user.
* @param otherName alternate name information
- * @param settings PAm Settings.
- * @return true if seem to be the same.
+ * @param settings PAm Settings.
+ * @return true if seem to be the same.
*/
private boolean isSettingsUnit(SettingsNameChange otherName, PamControlledUnitSettings settings) {
if (otherName.getModuleClass().getName().equals(settings.getOwnerClassName())) {
@@ -1506,8 +1506,8 @@ public class PamSettingManager {
}
/**
- * Open psf file for settings serialised output.
- * @return stream handle.
+ * Open psf file for settings serialised output.
+ * @return stream handle.
*/
public ObjectOutputStream openOutputFile(String outputFile) {
try {
@@ -1521,7 +1521,7 @@ public class PamSettingManager {
/**
* Open psf file for settings input.
does no work with psfx files
- * @return stream handle.
+ * @return stream handle.
*/
private ObjectInputStream openInputFile() {
// System.out.println("Loading settings from " + getSettingsFileName());
@@ -1543,7 +1543,7 @@ public class PamSettingManager {
// +"\nThis is expected on first use."
// ,
// "PamSettingManager",
- // JOptionPane.WARNING_MESSAGE);
+ // JOptionPane.WARNING_MESSAGE);
// userNotifiedAbsentSettingsFile= true;
// }
String msg = "You are opening new configuration file: " + getSettingsFileName();
@@ -1560,13 +1560,13 @@ public class PamSettingManager {
// /**
// * Returns total gobbledygook - need to improve the way
- // * PAMGAURD creates new psf files.
- // * @return lies.
+ // * PAMGAURD creates new psf files.
+ // * @return lies.
// */
// private ObjectInputStream openInputFileResource() {
// try {
// return new ObjectInputStream( //new FileInputStream(
- // ClassLoader.getSystemResourceAsStream("DefaultPamguardSettings.psf"));
+ // ClassLoader.getSystemResourceAsStream("DefaultPamguardSettings.psf"));
// } catch (Exception Ex) {
//// //Ex.printStackTrace();
//// System.out.println("Serialized default settings file not found!");
@@ -1582,8 +1582,8 @@ public class PamSettingManager {
// }
/**
- * The settings list file is a file containing a list of recently
- * used psf files.
+ * The settings list file is a file containing a list of recently
+ * used psf files.
* @return The settings list file
*/
private File getSettingsListFile() {
@@ -1603,7 +1603,7 @@ public class PamSettingManager {
/**
* Get a file for global settings
- * @return File for global settings storage.
+ * @return File for global settings storage.
*/
private File getGlobalSettingsFile() {
String fileName = pamguard.Pamguard.getSettingsFolder() + File.separator + gloablListfileName + settingsListFileEnd;
@@ -1611,7 +1611,7 @@ public class PamSettingManager {
}
/**
- * Get a list of recently used databases.
+ * Get a list of recently used databases.
* @return list of recently used databases
*/
private File getDatabaseListFile() {
@@ -1620,13 +1620,13 @@ public class PamSettingManager {
}
/**
- * Get the settings folder name and if necessary,
- * create the folder since it may not exist.
- *
+ * Get the settings folder name and if necessary,
+ * create the folder since it may not exist.
+ *
* 2019/10/02 mo
* MOVED TO pamguard.Pamguard AS A STATIC FUNCTION, SO THAT WE CAN ACCESS
* IT FOR THE LOG FILE WHEN PAMGUARD FIRST STARTS
- *
+ *
* @return folder name string, (with no file separator on the end)
*/
// private String getSettingsFolder() {
@@ -1637,24 +1637,24 @@ public class PamSettingManager {
// if (f.exists() == false) {
// f.mkdirs();
// }
-// // default folder doesn't work for psf since it saves the settings file back into the wrong place.
+// // default folder doesn't work for psf since it saves the settings file back into the wrong place.
//// String defFolder = PamFolders.getDefaultProjectFolder();
// return settingsFolder;
// }
/**
* Now that the database is becoming much more fundamental to settings
- * storage and retrieval, the latest database settings should go into
+ * storage and retrieval, the latest database settings should go into
* the main settings file. This contains a list of recent databases. The trouble is,
- * the settings are spread amongst several different settings object (e.g. one that
- * tells us what type of database, another that tells us a list of recent databases
- * for a specific database type, etc.
+ * the settings are spread amongst several different settings object (e.g. one that
+ * tells us what type of database, another that tells us a list of recent databases
+ * for a specific database type, etc.
*
* We therefore need some modules (i.e. database ones) to also store their settings
* in a general settings list so that they can be read in before any other settings
* are read in. So each unit when it registers, says whether it should be included in
- * the general list as well as the specific data file.
- *
+ * the general list as well as the specific data file.
+ *
*/
public boolean loadSettingsFileData() {
ObjectInputStream is = null;
@@ -1698,25 +1698,25 @@ public class PamSettingManager {
* will do is copy all psf files from the installed directory
* over into the settingsFolder and then populate the list
* in a settings list file so that users get a reasonably
- * coherent startup experience.
+ * coherent startup experience.
*/
private void createSettingsListFile() {
/**
- * List all psf files in the program folder.
- * I think that we should already be working in that folder,
- * so can just list the files.
+ * List all psf files in the program folder.
+ * I think that we should already be working in that folder,
+ * so can just list the files.
*/
settingsFileData = new SettingsFileData();
PamFileFilter psfFilter = new PamFileFilter("psf files", ".psf");
-
- // if we're running the beta version, also add in psfx files. To test for beta, check if
+
+ // if we're running the beta version, also add in psfx files. To test for beta, check if
// the version number starts with anything besides a 1
if (!PamguardVersionInfo.version.startsWith("1")) {
psfFilter.addFileType(".psfx");
}
psfFilter.setAcceptFolders(false);
String settingsFolder = pamguard.Pamguard.getSettingsFolder() + File.separator;
- // list files in the current folder.
+ // list files in the current folder.
String userDir = System.getProperty("user.dir");
File folder = new File(userDir);
File[] psfFiles = folder.listFiles(psfFilter);
@@ -1728,7 +1728,7 @@ public class PamSettingManager {
File newFile = new File(settingsFolder + File.separator + aFile.getName());
// aFile.renameTo(newFile);
copyFile(aFile, newFile);
- // then add it to the list.
+ // then add it to the list.
settingsFileData.setFirstFile(newFile);
}
}
@@ -1762,7 +1762,7 @@ public class PamSettingManager {
}
/**
- * Save the list of recently used settings files.
+ * Save the list of recently used settings files.
* @return true if write OK.
*/
private boolean saveSettingsFileData() {
@@ -1793,9 +1793,9 @@ public class PamSettingManager {
}
/**
- * Loads the details of the last database to be opened. This will
+ * Loads the details of the last database to be opened. This will
* probably be in the form of multiple serialised objects since
- * the database information is spread amongst several plug in sub-modules.
+ * the database information is spread amongst several plug in sub-modules.
* @return true if settings data loaded ok
*/
private boolean loadDatabaseFileData() {
@@ -1840,8 +1840,8 @@ public class PamSettingManager {
return true;
}
/**
- * Save the details of the most recently used database.
- * @return true if successful.
+ * Save the details of the most recently used database.
+ * @return true if successful.
*/
private boolean saveDatabaseFileData() {
@@ -1857,7 +1857,7 @@ public class PamSettingManager {
for (int i = 0; i < databaseOwners.size(); i++) {
dbOwner = databaseOwners.get(i);
aSet = new PamControlledUnitSettings(dbOwner.getUnitType(),
- dbOwner.getUnitName(), dbOwner.getClass().getName(),
+ dbOwner.getUnitName(), dbOwner.getClass().getName(),
dbOwner.getSettingsVersion(), dbOwner.getSettingsReference());
databaseSettingsList.add(aSet);
}
@@ -1869,15 +1869,15 @@ public class PamSettingManager {
return false;
}
- // write out the settings for all units in the general owners list.
+ // write out the settings for all units in the general owners list.
ArrayList generalSettingsList;
generalSettingsList = new ArrayList();
for (int i = 0; i < databaseOwners.size(); i++) {
generalSettingsList
.add(new PamControlledUnitSettings(databaseOwners.get(i)
- .getUnitType(), databaseOwners.get(i).getUnitName(),
- databaseOwners.get(i).getClass().getName(),
- databaseOwners.get(i).getSettingsVersion(),
+ .getUnitType(), databaseOwners.get(i).getUnitName(),
+ databaseOwners.get(i).getClass().getName(),
+ databaseOwners.get(i).getSettingsVersion(),
databaseOwners.get(i).getSettingsReference()));
}
try {
@@ -1903,13 +1903,13 @@ public class PamSettingManager {
* Get the most recently used settings file name. We have added a switch in here
* to allow for the direct setting of the psf used from the command line. This
* can be used in remote on non remote deployments.
- * @return File name string.
+ * @return File name string.
*/
public String getSettingsFileName() {
if (PamSettingManager.remote_psf != null) {
// System.out.println("Automatically loading settings from " + remote_psf);
return remote_psf;
- }
+ }
else {
if (settingsFileData == null || settingsFileData.getFirstFile() == null) {
return null;
@@ -1937,7 +1937,7 @@ public class PamSettingManager {
}
/**
- * Save settings to a new psf file.
+ * Save settings to a new psf file.
* @param frame parent frame for dialog.
*/
public void saveSettingsAs(JFrame frame) {
@@ -1981,7 +1981,7 @@ public class PamSettingManager {
}
// /**
- // * Save settings to a new psf file.
+ // * Save settings to a new psf file.
// * @param frame parent frame for dialog.
// */
// public void saveSettingsAsXML(JFrame frame) {
@@ -2017,15 +2017,15 @@ public class PamSettingManager {
/**
- * Set the default (first) file in the settings file data.
- * @param defaultFile File name string.
+ * Set the default (first) file in the settings file data.
+ * @param defaultFile File name string.
*/
public void setDefaultFile(String defaultFile) {
/**
- * If saving from viewer or mixed mode, then the
+ * If saving from viewer or mixed mode, then the
* settingsFileData may not have been loaded, in which case
- * load it now so that old psf names remain in the list.
+ * load it now so that old psf names remain in the list.
*/
if (settingsFileData == null) {
// System.out.println("Must load settings file first");
@@ -2043,7 +2043,7 @@ public class PamSettingManager {
* Pop up the dialog that's shown at start up to show
* a list of recent settings file and give the opportunity
* for browsing for more. IF the new settings file is
- * different from the current one, then send a command off
+ * different from the current one, then send a command off
* to the Controller to re-do the entire Pamguard system model
* @param frame parent frame for dialog (can be null)
*/
@@ -2054,7 +2054,7 @@ public class PamSettingManager {
if (settingsFileData != null) {
currentFile = settingsFileData.getFirstFile();
}
- SettingsFileData newData = showSettingsDailog(settingsFileData);
+ SettingsFileData newData = showSettingsDailog(settingsFileData);
if (newData == null) {
return;
}
@@ -2062,7 +2062,7 @@ public class PamSettingManager {
if (settingsFileData.getFirstFile() != currentFile) {
settingsFileData.setFirstFile(currentFile);
saveSettingsFileData();
- // rebuild the entire model.
+ // rebuild the entire model.
PamControllerInterface pamController = PamController.getInstance();
if (pamController == null) return;
pamController.totalModelRebuild();
@@ -2071,7 +2071,7 @@ public class PamSettingManager {
}
/**
- * Import a configuration during viewer mode operation.
+ * Import a configuration during viewer mode operation.
* @param frame
*/
public void importSettings(JFrame frame) {
@@ -2082,22 +2082,22 @@ public class PamSettingManager {
if (settingsFileData != null) {
currentFile = settingsFileData.getFirstFile();
}
-
-
+
+
SettingsFileData newData = showSettingsDailog(settingsFileData);
if (newData == null) {
return;
}
-
+
ArrayList settings = loadSettingsFromFile();
if (settings == null) {
String msg = "Unable to load settings from " + getSettingsFileName();
WarnOnce.showWarning(frame, "Settings Import", msg, WarnOnce.OK_OPTION);
return;
}
-
+
/*
- * Should now have a valid settings file. Import the data from it.
+ * Should now have a valid settings file. Import the data from it.
*/
PamSettingsGroup pamSettingsGroup = new PamSettingsGroup(System.currentTimeMillis());
for (PamControlledUnitSettings pus:settings) {
@@ -2112,10 +2112,10 @@ public class PamSettingManager {
* Load a settings file and return the contents in a settings group
* object. Give the time of the settings group as the time the file
* was modified. the settings load code is a bit of a mess - this function
- * has been written mainly so that it can be called from Matlab and r
- * so that those languages can load PAMGuard settings.
- * @param psfFile psf file object.
- * @return loaded settings from the file.
+ * has been written mainly so that it can be called from Matlab and r
+ * so that those languages can load PAMGuard settings.
+ * @param psfFile psf file object.
+ * @return loaded settings from the file.
*/
public PamSettingsGroup loadSettings(File psfFile) {
if (psfFile == null) {
@@ -2150,7 +2150,7 @@ public class PamSettingManager {
catch (ClassNotFoundException Ex){
// print and continue - there may be othere things we can deal with.
Ex.printStackTrace();
-
+
}
catch (Exception Ex) {
Ex.printStackTrace();
@@ -2178,8 +2178,8 @@ public class PamSettingManager {
}
/**
- *
- * @return everything about every set of settings currently loaded.
+ *
+ * @return everything about every set of settings currently loaded.
*/
public PamSettingsGroup getCurrentSettingsGroup() {
PamSettingsGroup psg = new PamSettingsGroup(PamCalendar.getTimeInMillis());
@@ -2187,7 +2187,7 @@ public class PamSettingManager {
PamSettings ps;
for (int i = 0; i < owners.size(); i++) {
ps = owners.get(i);
- pcus = new PamControlledUnitSettings(ps.getUnitType(), ps.getUnitName(),
+ pcus = new PamControlledUnitSettings(ps.getUnitType(), ps.getUnitName(),
ps.getClass().getName(),
ps.getSettingsVersion(), ps.getSettingsReference());
psg.addSettings(pcus);
@@ -2198,9 +2198,9 @@ public class PamSettingManager {
/**
* Load some old settings into all modules.
* Currently used in viewer mode to load reloaded settings
- * from binary files and the database.
+ * from binary files and the database.
* @param settingsGroup settings group to load.
- * @param send these new settings round to all existing modules.
+ * @param send these new settings round to all existing modules.
*/
public void loadSettingsGroup(PamSettingsGroup settingsGroup, boolean notifyExisting) {
ArrayList tempSettingsList = settingsGroup.getUnitSettings();
@@ -2208,7 +2208,7 @@ public class PamSettingManager {
/////////////deleteDBsettings
/* TODO FIXME -better way? TEMPORARY - GW
- * delete DB settings so when old settings psf is restored over current settings
+ * delete DB settings so when old settings psf is restored over current settings
* the current DB will not be changed!!
*/
ArrayList DBsettingTypes = new ArrayList();
@@ -2251,13 +2251,13 @@ public class PamSettingManager {
}
return null;
}
-
+
/**
- * Find a list of unit settings by type and name. If both are specified, then it's going to
- * (hopefully only return one setting. Otherwise, with null or wildcard names we may get many.
+ * Find a list of unit settings by type and name. If both are specified, then it's going to
+ * (hopefully only return one setting. Otherwise, with null or wildcard names we may get many.
* @param unitType unit type, can be wildcard * or null
* @param unitName unit name, can be wildcard * or null
- * @return Array list of settings.
+ * @return Array list of settings.
*/
public ArrayList findPamSettings(String unitType, String unitName) {
if (owners == null) {
@@ -2279,19 +2279,19 @@ public class PamSettingManager {
}
foundSettings.add(owner);
}
-
+
return foundSettings;
}
-
-
+
+
/**
- * Show a dialog to allow the user to select a .psf file path.
- * @param settingsFileData
- * @return the settings file data.
+ * Show a dialog to allow the user to select a .psf file path.
+ * @param settingsFileData
+ * @return the settings file data.
*/
private SettingsFileData showSettingsDailog(SettingsFileData settingsFileData) {
SettingsFileData newData;
- int flag=PamGUIManager.getGUIType();
+ int flag=PamGUIManager.getGUIType();
switch (flag) {
case PamGUIManager.SWING:
newData = SettingsFileDialog.showDialog(null, settingsFileData);
@@ -2312,10 +2312,10 @@ public class PamSettingManager {
public ArrayList getInitialSettingsList() {
return initialSettingsList;
}
-
+
/**
* Get the current scaling factor
- *
+ *
* @return
*/
public double getCurrentDisplayScaling() {
@@ -2330,11 +2330,11 @@ public class PamSettingManager {
if (newScalingFactor != 0 && newScalingFactor != settingsFileData.getScalingFactor()) {
// scaleDisplay(newScalingFactor);
settingsFileData.setScalingFactor(newScalingFactor);
-
+
String message = "You have changed PAMGuard's display scaling. Please restart PAMGuard in order to update your display.";
int ans = WarnOnce.showWarning(frame, "New Display Scaling", message, WarnOnce.OK_OPTION);
}
-
+
}
}
diff --git a/src/PamModel/PamModel.java b/src/PamModel/PamModel.java
index 4a70c05e..153fa2eb 100644
--- a/src/PamModel/PamModel.java
+++ b/src/PamModel/PamModel.java
@@ -765,6 +765,7 @@ final public class PamModel implements PamModelInterface, PamSettings {
mi.addDependency(new PamDependency(ClickDetection.class, "clickDetector.ClickControl"));
mi.setToolTipText("Classifies clicks based on an ideal template to match and a template to reject. "
+ "An example of this is to classify beaked whale clicks in an environment with dolphin clicks");
+ mi.addGUICompatabilityFlag(PamGUIManager.FX);
mi.setModulesMenuGroup(classifierGroup);
diff --git a/src/PamUtils/PamAudioFileFilter.java b/src/PamUtils/PamAudioFileFilter.java
index 1ed40470..b903cbf7 100644
--- a/src/PamUtils/PamAudioFileFilter.java
+++ b/src/PamUtils/PamAudioFileFilter.java
@@ -1,5 +1,7 @@
package PamUtils;
+import PamUtils.PamFileFilter;
+
public class PamAudioFileFilter extends PamFileFilter {
public PamAudioFileFilter() {
diff --git a/src/PamUtils/PamFileFilter.java b/src/PamUtils/PamFileFilter.java
index 564e08b6..4ad318f5 100644
--- a/src/PamUtils/PamFileFilter.java
+++ b/src/PamUtils/PamFileFilter.java
@@ -33,7 +33,7 @@ public class PamFileFilter extends javax.swing.filechooser.FileFilter implements
private String prefix = null;
- private boolean acceptFolders = true;
+ protected boolean acceptFolders = true;
public PamFileFilter(String description, String defExtension) {
diff --git a/src/PamUtils/worker/filelist/WavFileType.java b/src/PamUtils/worker/filelist/WavFileType.java
index 6861f82c..a00aa420 100644
--- a/src/PamUtils/worker/filelist/WavFileType.java
+++ b/src/PamUtils/worker/filelist/WavFileType.java
@@ -6,6 +6,7 @@ import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
+import Acquisition.pamAudio.PamAudioFileManager;
import Acquisition.pamAudio.PamAudioSystem;
import PamController.PamGUIManager;
import javafx.beans.property.BooleanProperty;
@@ -64,7 +65,7 @@ public class WavFileType extends File {
*/
private AudioFormat getAudioFormat(File file) {
try {
- AudioInputStream audioStream = PamAudioSystem.getAudioInputStream(file);
+ AudioInputStream audioStream = PamAudioFileManager.getInstance().getAudioInputStream(file);
AudioFormat audioFormat = audioStream.getFormat();
diff --git a/src/PamUtils/worker/filelist/WavListWorker.java b/src/PamUtils/worker/filelist/WavListWorker.java
index 9c320297..5c0d233a 100644
--- a/src/PamUtils/worker/filelist/WavListWorker.java
+++ b/src/PamUtils/worker/filelist/WavListWorker.java
@@ -2,7 +2,7 @@ package PamUtils.worker.filelist;
import java.io.File;
-import PamUtils.PamAudioFileFilter;
+import Acquisition.pamAudio.PamAudioFileFilter;
/**
* Worker which extracts acoustic files from a folder.
diff --git a/src/PamguardMVC/uid/binaryUIDFunctions.java b/src/PamguardMVC/uid/binaryUIDFunctions.java
index d5d89d30..f8959935 100644
--- a/src/PamguardMVC/uid/binaryUIDFunctions.java
+++ b/src/PamguardMVC/uid/binaryUIDFunctions.java
@@ -120,8 +120,8 @@ public class binaryUIDFunctions {
}
}
} catch (Exception e) {
- System.out.println("Error reading binary UID data from log file");
- e.printStackTrace();
+ System.out.println("Error reading binary UID data from log file" + logFileData);
+// e.printStackTrace();
}
// try (BufferedReader br = new BufferedReader(new FileReader(logFileData))) {
@@ -531,10 +531,12 @@ public class binaryUIDFunctions {
out.close();
}
} catch (TransformerException e) {
- e.printStackTrace();
+ System.err.println(e.getMessage());
+// e.printStackTrace();
return false;
} catch (IOException e) {
- e.printStackTrace();
+ System.err.println(e.getMessage());
+// e.printStackTrace();
return false;
}
return true;
diff --git a/src/Resources/css/nord-dark.css b/src/Resources/css/nord-dark.css
new file mode 100644
index 00000000..132db4d3
--- /dev/null
+++ b/src/Resources/css/nord-dark.css
@@ -0,0 +1,3664 @@
+.root {
+ -color-dark: #232730;
+ -color-light: #fdfdfe;
+ -color-base-0: #ECEFF4;
+ -color-base-1: #E5E9F0;
+ -color-base-2: #D8DEE9;
+ -color-base-3: #c7ceda;
+ -color-base-4: #b7becb;
+ -color-base-5: #979fae;
+ -color-base-6: #788192;
+ -color-base-7: #4C566A;
+ -color-base-8: #3B4252;
+ -color-base-9: #2E3440;
+ -color-accent-0: #d2dce8;
+ -color-accent-1: #bccadc;
+ -color-accent-2: #98aeca;
+ -color-accent-3: #859fc0;
+ -color-accent-4: #7190b6;
+ -color-accent-5: #5E81AC;
+ -color-accent-6: #537297;
+ -color-accent-7: #476283;
+ -color-accent-8: #3c536e;
+ -color-accent-9: #314359;
+ -color-success-0: #d1e5e5;
+ -color-success-1: #aacfce;
+ -color-success-2: #82b8b8;
+ -color-success-3: #6fadac;
+ -color-success-4: #5ba2a1;
+ -color-success-5: #508f8e;
+ -color-success-6: #457b7a;
+ -color-success-7: #3a6867;
+ -color-success-8: #2f5454;
+ -color-success-9: #244140;
+ -color-warning-0: #f1dcd5;
+ -color-warning-1: #e9c7bc;
+ -color-warning-2: #e1b1a2;
+ -color-warning-3: #daa08d;
+ -color-warning-4: #d5937e;
+ -color-warning-5: #bb7a65;
+ -color-warning-6: #a66c5a;
+ -color-warning-7: #925f4e;
+ -color-warning-8: #7d5143;
+ -color-warning-9: #684438;
+ -color-danger-0: #eacacd;
+ -color-danger-1: #dfb1b5;
+ -color-danger-2: #d29097;
+ -color-danger-3: #c57179;
+ -color-danger-4: #bf616a;
+ -color-danger-5: #ac575f;
+ -color-danger-6: #994e55;
+ -color-danger-7: #86444a;
+ -color-danger-8: #733a40;
+ -color-danger-9: #603135;
+ -color-fg-default: #ECEFF4;
+ -color-fg-muted: #979fae;
+ -color-fg-subtle: #788192;
+ -color-fg-emphasis: #fdfdfe;
+ -color-bg-default: #2E3440;
+ -color-bg-overlay: #2E3440;
+ -color-bg-subtle: #3B4252;
+ -color-bg-inset: #232730;
+ -color-border-default: rgba(120, 129, 146, 0.65);
+ -color-border-muted: #4C566A;
+ -color-border-subtle: #3B4252;
+ -color-shadow-default: #232730;
+ -color-neutral-emphasis-plus: #788192;
+ -color-neutral-emphasis: #4C566A;
+ -color-neutral-muted: rgba(76, 86, 106, 0.4);
+ -color-neutral-subtle: rgba(76, 86, 106, 0.2);
+ -color-accent-fg: #98aeca;
+ -color-accent-emphasis: #5E81AC;
+ -color-accent-muted: rgba(113, 144, 182, 0.4);
+ -color-accent-subtle: rgba(113, 144, 182, 0.1);
+ -color-warning-fg: #e1b1a2;
+ -color-warning-emphasis: #bb7a65;
+ -color-warning-muted: rgba(213, 147, 126, 0.4);
+ -color-warning-subtle: rgba(213, 147, 126, 0.1);
+ -color-success-fg: #82b8b8;
+ -color-success-emphasis: #508f8e;
+ -color-success-muted: rgba(91, 162, 161, 0.4);
+ -color-success-subtle: rgba(91, 162, 161, 0.1);
+ -color-danger-fg: #d29097;
+ -color-danger-emphasis: #bf616a;
+ -color-danger-muted: rgba(191, 97, 106, 0.4);
+ -color-danger-subtle: rgba(191, 97, 106, 0.1);
+ -color-chart-1: #f3622d;
+ -color-chart-2: #fba71b;
+ -color-chart-3: #57b757;
+ -color-chart-4: #41a9c9;
+ -color-chart-5: #4258c9;
+ -color-chart-6: #9a42c8;
+ -color-chart-7: #c84164;
+ -color-chart-8: #888888;
+ -color-chart-1-alpha70: rgba(243, 98, 45, 0.7);
+ -color-chart-2-alpha70: rgba(251, 167, 27, 0.7);
+ -color-chart-3-alpha70: rgba(87, 183, 87, 0.7);
+ -color-chart-4-alpha70: rgba(65, 169, 201, 0.7);
+ -color-chart-5-alpha70: rgba(66, 88, 201, 0.7);
+ -color-chart-6-alpha70: rgba(154, 66, 200, 0.7);
+ -color-chart-7-alpha70: rgba(200, 65, 100, 0.7);
+ -color-chart-8-alpha70: rgba(136, 136, 136, 0.7);
+ -color-chart-1-alpha20: rgba(243, 98, 45, 0.2);
+ -color-chart-2-alpha20: rgba(251, 167, 27, 0.2);
+ -color-chart-3-alpha20: rgba(87, 183, 87, 0.2);
+ -color-chart-4-alpha20: rgba(65, 169, 201, 0.2);
+ -color-chart-5-alpha20: rgba(66, 88, 201, 0.2);
+ -color-chart-6-alpha20: rgba(154, 66, 200, 0.2);
+ -color-chart-7-alpha20: rgba(200, 65, 100, 0.2);
+ -color-chart-8-alpha20: rgba(136, 136, 136, 0.2);
+ -fx-background-color: -color-bg-default;
+ -fx-font-size: 14px;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: inherit;
+}
+.root.popup {
+ -fx-background-color: transparent;
+}
+
+.ikonli-font-icon {
+ -fx-icon-color: -color-fg-default;
+ -fx-fill: -color-fg-default;
+ -fx-icon-size: 18px;
+}
+
+.mnemonic-underline {
+ -fx-stroke: transparent;
+}
+
+.text {
+ -fx-font-smoothing-type: lcd;
+ -fx-bounds-type: logical_vertical_center;
+}
+
+Text {
+ -fx-fill: -color-fg-default;
+}
+
+.title-1 {
+ -fx-font-size: 2em;
+ -fx-font-weight: bolder;
+}
+
+.title-2 {
+ -fx-font-size: 1.75em;
+ -fx-font-weight: bolder;
+}
+
+.title-3 {
+ -fx-font-size: 1.5em;
+ -fx-font-weight: bolder;
+}
+
+.title-4 {
+ -fx-font-size: 1.25em;
+ -fx-font-weight: normal;
+}
+
+.text-caption {
+ -fx-font-size: 1em;
+ -fx-font-weight: bold;
+}
+
+.text-small {
+ -fx-font-size: 0.8em;
+}
+
+.text.accent {
+ -fx-fill: -color-accent-fg;
+}
+
+.label.accent {
+ -fx-text-fill: -color-accent-fg;
+}
+
+.text.success {
+ -fx-fill: -color-success-fg;
+}
+
+.label.success {
+ -fx-text-fill: -color-success-fg;
+}
+
+.text.warning {
+ -fx-fill: -color-warning-fg;
+}
+
+.label.warning {
+ -fx-text-fill: -color-warning-fg;
+}
+
+.text.danger {
+ -fx-fill: -color-danger-fg;
+}
+
+.label.danger {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.text-bold {
+ -fx-font-weight: bold;
+}
+
+.text-bolder {
+ -fx-font-weight: bolder;
+}
+
+.text-normal {
+ -fx-font-weight: normal;
+}
+
+.text-lighter {
+ -fx-font-weight: lighter;
+}
+
+.text-italic {
+ -fx-font-style: italic;
+}
+
+.text-oblique {
+ -fx-font-style: oblique;
+}
+
+.text-underlined {
+ -fx-underline: true;
+}
+
+.text-strikethrough {
+ -fx-strikethrough: true;
+}
+
+.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+
+.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+
+.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+
+.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-7;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.button .font-icon, .button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.button:disabled {
+ -fx-opacity: 0.55;
+}
+.button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.button.button-icon {
+ -fx-padding: 8px;
+}
+.button.button-icon > .text {
+ visibility: hidden;
+}
+.button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.button.button-circle .text {
+ visibility: hidden;
+}
+.button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.button.left-pill:hover, .button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.button.center-pill:hover, .button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.button.right-pill:hover, .button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-text-fill: -color-button-fg-hover;
+ -fx-opacity: 0.9;
+}
+.button:hover:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-hover;
+}
+.button:hover .font-icon, .button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+ -fx-text-fill: -color-button-fg-focused;
+}
+.button:focused .font-icon, .button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.button:armed, .button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.button:armed .font-icon, .button:armed .ikonli-font-icon, .button:focused:armed .font-icon, .button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.button:default, .button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button:default.button-outlined, .button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button:default.flat, .button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+.button.flat:hover {
+ -fx-underline: true;
+}
+.button.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.button.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.button.rounded {
+ -fx-background-radius: 10em;
+}
+
+.combo-box-base {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+}
+.combo-box-base:disabled {
+ -fx-opacity: 0.55;
+}
+.combo-box-base:success, .combo-box-base:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.combo-box-base:danger, .combo-box-base:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.combo-box-base:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.combo-box-base.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.combo-box-base.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.combo-box-base.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.combo-box-base.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.combo-box-base > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.combo-box-base > .text-field {
+ -fx-background-insets: 0, 1 0 1 1;
+ -fx-background-radius: 1 0 0 1;
+}
+.combo-box-base:success > .arrow-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.combo-box-base:danger > .arrow-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.combo-box-base.alt-icon > .arrow-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.combo-box > .list-cell {
+ -fx-background-color: transparent;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box:success > .list-cell {
+ -fx-text-fill: -color-success-fg;
+}
+.combo-box:danger > .list-cell {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.combo-box-popup > .list-view {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+ -fx-cell-size: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover {
+ -fx-background-color: -color-base-8;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected, .combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+ -fx-background-color: -color-base-7;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.choice-box {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.choice-box:disabled {
+ -fx-opacity: 0.55;
+}
+.choice-box:success, .choice-box:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.choice-box:danger, .choice-box:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.choice-box:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.choice-box.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.choice-box.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.choice-box.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.choice-box.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.choice-box > .open-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.choice-box:success > .label {
+ -fx-text-fill: -color-success-fg;
+}
+.choice-box:success > .open-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.choice-box:danger > .label {
+ -fx-text-fill: -color-danger-fg;
+}
+.choice-box:danger > .open-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.choice-box.alt-icon > .open-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected {
+ -color-cell-fg: -color-cell-fg-selected;
+ -fx-background-color: -color-cell-border, -color-cell-bg-selected;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background-color: -color-cell-bg-selected;
+ -fx-background-insets: 0 0 2 0;
+}
+
+.cell .text-input {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.cell .check-box {
+ -fx-padding: 0 6px 0 0;
+}
+.cell .choice-box {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 12px 0 0;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+}
+.cell .combo-box {
+ -fx-background-color: transparent;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+ -fx-background-radius: 0;
+}
+.cell .combo-box .cell.list-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+}
+
+.list-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-7;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.list-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.55;
+}
+.list-view > .virtual-flow:disabled {
+ -fx-opacity: 0.55;
+}
+.list-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.list-view .list-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-cell-size: 2.8em;
+ -fx-border-width: 0 0 1 0;
+ -fx-border-color: transparent;
+}
+.list-view.bordered .list-cell {
+ -fx-border-color: -color-cell-border;
+}
+.list-view.dense .list-cell {
+ -fx-cell-size: 2em;
+}
+.list-view.striped .list-cell {
+ -fx-border-width: 0;
+}
+.list-view.striped .list-cell:odd {
+ -fx-background-color: -color-cell-bg-odd;
+}
+
+.table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-7;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.55;
+}
+.table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.55;
+}
+.table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.table-view.bordered .table-row-cell > .table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.table-view.bordered .table-row-cell > .table-cell:empty {
+ -fx-border-color: transparent;
+}
+.table-view.dense .table-row-cell {
+ -fx-cell-size: 2em;
+}
+.table-view.striped .table-row-cell {
+ -fx-background-insets: 0;
+}
+.table-view.striped.bordered .table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view.striped .table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.table-view .table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+}
+.table-view .table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.table-view .table-row-cell:empty > .table-cell {
+ -fx-border-color: transparent;
+}
+.table-view .table-row-cell > .table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+ -fx-border-color: transparent;
+}
+
+.table-view .table-row-cell > .table-cell.check-box-table-cell,
+.table-view .table-row-cell > .table-cell.font-icon-table-cell,
+.tree-table-view .tree-table-row-cell > .tree-table-cell.check-box-tree-table-cell {
+ -fx-alignment: CENTER_LEFT;
+}
+
+.tree-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-7;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.tree-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.55;
+}
+.tree-view > .virtual-flow:disabled {
+ -fx-opacity: 0.55;
+}
+.tree-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-view.dense .tree-cell {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.tree-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0.5em 0 0.5em 0;
+ -fx-indent: 1em;
+}
+.tree-cell > .tree-disclosure-node {
+ -fx-padding: 5px 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-cell-fg;
+ -fx-padding: 0.333333em 0.229em 0.333333em 0.229em;
+}
+
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+
+.tree-table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-7;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.tree-table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.55;
+}
+.tree-table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.55;
+}
+.tree-table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.tree-table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.tree-table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.tree-table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.tree-table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.tree-table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.tree-table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.tree-table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.tree-table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell:empty {
+ -fx-border-color: transparent;
+}
+.tree-table-view.dense .tree-table-row-cell {
+ -fx-cell-size: 2em;
+}
+.tree-table-view.dense .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 0.6em 0.5em 0 0.5em;
+}
+.tree-table-view.striped .tree-table-row-cell {
+ -fx-background-insets: 0;
+}
+.tree-table-view.striped.bordered .tree-table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view.striped .tree-table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.tree-table-view .tree-table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+ -fx-indent: 1em;
+}
+.tree-table-view .tree-table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.tree-table-view .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 1em 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.menu-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0 0 0 0, 0 0 1 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0 0 1px 0;
+ -fx-background-radius: 0;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-bar > .container > .menu-button > .label {
+ -fx-padding: 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-bar > .container > .menu-button > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+ -fx-padding: 0;
+ -fx-background-color: transparent;
+}
+.menu-bar > .container > .menu-button:hover, .menu-bar > .container > .menu-button:focused, .menu-bar > .container > .menu-button:showing {
+ -fx-background-color: -color-base-7, -color-base-7;
+}
+
+.menu {
+ -fx-background-color: transparent;
+}
+.menu > .right-container > .arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+
+.menu-up-arrow {
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-down-arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-item {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0 6px 0 0;
+}
+.menu-item > .label {
+ -fx-padding: 0 1em 0 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-item > .left-container {
+ -fx-padding: 0 1em 0 0;
+}
+.menu-item > .right-container {
+ -fx-padding: 0 0 0 0.5em;
+}
+.menu-item:focused {
+ -fx-background-color: -color-base-7, -color-base-7;
+}
+.menu-item:disabled {
+ -fx-opacity: 0.55;
+ -fx-background-color: -color-bg-default;
+}
+
+.radio-menu-item:checked > .left-container > .radio,
+.check-menu-item:checked > .left-container > .check {
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-min-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-max-width: 0.75em;
+}
+
+.caption-menu-item {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.caption-menu-item:hover, .caption-menu-item:focused, .caption-menu-item:pressed {
+ -fx-background-color: transparent;
+}
+.caption-menu-item > .label > .text {
+ -fx-font-weight: bold;
+}
+
+.context-menu {
+ -fx-background-color: -color-border-muted, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 2px 2px 2px 2px;
+ -fx-background-radius: 1;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
+.context-menu > .scroll-arrow {
+ -fx-padding: 0.5em;
+ -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+ -fx-background-color: -color-base-7;
+ -fx-text-fill: -color-fg-default;
+}
+.context-menu .separator:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.context-menu .separator:horizontal .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0.5em 0 0.5em;
+}
+
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item > .label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.pagination {
+ -fx-padding: 0;
+ -fx-arrow-button-gap: 4;
+ -fx-arrows-visible: true;
+ -fx-tooltip-visible: false;
+ -fx-page-information-visible: true;
+ -fx-page-information-alignment: bottom;
+}
+.pagination > .page {
+ -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+ -fx-background-color: transparent;
+ -fx-font-size: 1em;
+}
+.pagination > .pagination-control > .control-box {
+ -fx-padding: 2em 0 0 0;
+ -fx-spacing: 2;
+ -fx-alignment: CENTER;
+}
+.pagination > .pagination-control > .control-box .number-button {
+ -fx-padding: 0;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button > .left-arrow {
+ -fx-shape: "M14 7l-5 5 5 5V7z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button > .right-arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .page-information {
+ -fx-padding: 0.5em 0 0 0;
+}
+.pagination.bullet > .pagination-control > .control-box {
+ -fx-spacing: 0;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 1;
+ -fx-padding: 0 0.25em 0 0.083em;
+}
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 1;
+ -fx-padding: 0 0.083em 0 0.25em;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button {
+ -fx-background-radius: 0, 1, 1;
+ -fx-background-color: transparent, -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 5, 6;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button:selected {
+ -fx-background-color: transparent, -color-accent-emphasis;
+}
+
+.slider {
+ -color-slider-thumb: -color-fg-default;
+ -color-slider-thumb-border: -color-fg-default;
+ -color-slider-track: -color-border-muted;
+ -color-slider-track-progress: -color-accent-emphasis;
+ -color-slider-tick: -color-fg-muted;
+}
+.slider.large {
+ -color-slider-thumb: -color-fg-default;
+ -color-slider-thumb-border: -color-fg-default;
+}
+.slider > .thumb {
+ -fx-background-color: -color-slider-thumb-border, -color-slider-thumb;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 1;
+}
+.slider > .track {
+ -fx-background-color: transparent, -color-slider-track;
+ -fx-background-radius: 1;
+}
+.slider > .progress {
+ -fx-background-color: transparent, -color-slider-track-progress;
+}
+.slider > .axis {
+ -fx-tick-label-fill: -color-slider-tick;
+ -fx-tick-length: 5px;
+ -fx-minor-tick-length: 3px;
+}
+.slider > .axis > .axis-tick-mark,
+.slider > .axis > .axis-minor-tick-mark {
+ -fx-stroke: -color-slider-tick;
+}
+.slider:disabled {
+ -fx-opacity: 0.55;
+}
+.slider:horizontal > .thumb {
+ -fx-padding: 10px 4px 10px 4px;
+}
+.slider:horizontal > .track {
+ -fx-padding: 10px 0 10px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider:horizontal > .progress {
+ -fx-background-radius: 1;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .thumb {
+ -fx-padding: 8px 4px 8px 4px;
+}
+.slider.small:horizontal > .track {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.large:horizontal > .thumb {
+ -fx-padding: 14px 4px 14px;
+}
+.slider.large:horizontal > .track {
+ -fx-padding: 14px 0 14px 0;
+ -fx-background-insets: 0, 2px 0 2px 0;
+}
+.slider.large:horizontal > .progress {
+ -fx-padding: 14px 0 14px 0;
+ -fx-background-insets: 0, 2px 0 2px 0;
+}
+.slider:vertical > .thumb {
+ -fx-padding: 4px 10px 4px 10px;
+}
+.slider:vertical > .track {
+ -fx-padding: 0 10px 0 10px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider:vertical > .progress {
+ -fx-background-radius: 1 1 1 1;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .thumb {
+ -fx-padding: 4px 8px 4px 8px;
+}
+.slider.small:vertical > .track {
+ -fx-padding: 0 8px 0 8px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.large:vertical > .thumb {
+ -fx-padding: 4px 14px 4px 14px;
+}
+.slider.large:vertical > .track {
+ -fx-padding: 0 14px 0 14px;
+ -fx-background-insets: 0, 0 2px 0 2px;
+}
+.slider.large:vertical > .progress {
+ -fx-padding: 0 14px 0 14px;
+ -fx-background-insets: 0, 0 2px 0 2px;
+}
+
+.tool-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0, 0 0 1px 0;
+ -fx-padding: 4px 0.3em 4px 0.3em;
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tool-bar > .container > .button,
+.tool-bar > .container > .menu-button,
+.tool-bar > .container > .split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container .toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-bg-selected: -color-base-7;
+ -color-button-fg-selected: -color-fg-default;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container > .separator {
+ -fx-orientation: vertical;
+}
+.tool-bar > .tool-bar-overflow-button {
+ -fx-padding: 0 0.3em 0 4px;
+}
+.tool-bar > .tool-bar-overflow-button > .arrow {
+ -fx-shape: "M5.06 5 4 6.06 7.94 10 4 13.94 5.06 15l5-5z M11 5 9.94 6.06 13.88 10l-3.94 3.94L11 15l5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tool-bar:vertical {
+ -fx-background-insets: 0, 0 1px 0 0;
+ -fx-padding: 0.3em 4px 0.3em 4px;
+ -fx-alignment: TOP_LEFT;
+}
+.tool-bar:vertical > .container > .separator {
+ -fx-orientation: horizontal;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+ -fx-padding: 4px 0 0.3em 0;
+}
+.tool-bar:vertical.right {
+ -fx-background-insets: 0, 0 0 0 1px;
+}
+.tool-bar.bottom {
+ -fx-background-insets: 0, 1px 0 0 0;
+}
+
+.toggle-switch {
+ -fx-thumb-move-animation-time: 200;
+}
+.toggle-switch > .label-container > .label {
+ -fx-font-size: 1em;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 2px 6px 2px 0;
+}
+.toggle-switch > .thumb {
+ -fx-background-color: -color-border-default, -color-fg-emphasis;
+ -fx-background-insets: 0, 3px;
+ -fx-background-radius: 1;
+ -fx-padding: 0.8em;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-opacity: 0.8;
+}
+.toggle-switch > .thumb-area {
+ -fx-background-radius: 1;
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 0.8em 1.6em 0.8em 1.6em;
+}
+.toggle-switch:selected > .thumb {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.toggle-switch:selected > .thumb-area {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-background-insets: 0;
+}
+.toggle-switch:disabled {
+ -fx-opacity: 0.55;
+}
+
+.accordion > .titled-pane.first-titled-pane > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1 1 0 0;
+}
+.accordion > .titled-pane > .title {
+ -fx-background-insets: 0, 0 1px 1px 1px;
+ -fx-background-radius: 0;
+}
+
+.bread-crumb-bar > .button.flat {
+ -fx-padding: 8px 2px 8px 9px;
+ -fx-content-display: RIGHT;
+}
+.bread-crumb-bar > .button.flat.first {
+ -fx-padding: 8px 2px 8px 12px;
+}
+.bread-crumb-bar > .button.flat.last {
+ -fx-padding: 8px 12px 8px 9px;
+}
+.bread-crumb-bar > .button.flat.last .font-icon, .bread-crumb-bar > .button.flat.last .ikonli-font-icon {
+ -fx-min-width: 0;
+ -fx-pref-width: 0;
+ -fx-max-width: 0;
+ visibility: hidden;
+}
+
+.chart {
+ -fx-padding: 4px;
+}
+.chart > .chart-title {
+ -fx-font-size: 1.25em;
+}
+.chart > .chart-content {
+ -fx-padding: 10px;
+}
+.chart > .chart-content > .chart-plot-background {
+ -fx-background-color: -color-bg-default;
+}
+.chart:disabled > .chart-content {
+ -fx-opacity: 0.55;
+}
+.chart:disabled > .chart-content .label {
+ -fx-opacity: 1;
+}
+.chart > .chart-legend {
+ -fx-padding: 6px;
+}
+.chart .axis {
+ -fx-axis-color: -color-border-default;
+ -fx-tick-label-font-size: 0.8em;
+ -fx-tick-label-fill: -color-fg-default;
+}
+.chart .axis:top {
+ -fx-border-color: transparent transparent -fx-axis-color transparent;
+}
+.chart .axis:right {
+ -fx-border-color: transparent transparent transparent -fx-axis-color;
+}
+.chart .axis:bottom {
+ -fx-border-color: -fx-axis-color transparent transparent transparent;
+}
+.chart .axis:left {
+ -fx-border-color: transparent -fx-axis-color transparent transparent;
+}
+.chart .axis:top > .axis-label, .chart .axis:left > .axis-label {
+ -fx-padding: 0 0 4px 0;
+}
+.chart .axis:bottom > .axis-label, .chart .axis:right > .axis-label {
+ -fx-padding: 4px 0 0 0;
+}
+.chart .axis > .axis-tick-mark,
+.chart .axis > .axis-minor-tick-mark {
+ -fx-fill: none;
+ -fx-stroke: -fx-axis-color;
+}
+.chart .chart-horizontal-grid-lines,
+.chart .chart-vertical-grid-lines {
+ -fx-stroke: -color-border-muted;
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart .chart-alternative-row-fill,
+.chart .chart-alternative-column-fill {
+ -fx-fill: none;
+ -fx-stroke: none;
+}
+.chart .chart-vertical-zero-line,
+.chart .chart-horizontal-zero-line {
+ -fx-stroke: -color-fg-default;
+}
+
+.chart-symbol {
+ -fx-background-color: -color-chart-1;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color1.chart-symbol {
+ -fx-background-color: -color-chart-2;
+ -fx-background-radius: 0;
+}
+
+.default-color2.chart-symbol {
+ -fx-background-color: -color-chart-3;
+ -fx-background-radius: 0;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.default-color3.chart-symbol {
+ -fx-background-color: -color-chart-4;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+
+.default-color4.chart-symbol {
+ -fx-background-color: -color-chart-5;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+
+.default-color5.chart-symbol {
+ -fx-background-color: -color-chart-6, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color6.chart-symbol {
+ -fx-background-color: -color-chart-7, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 0;
+}
+
+.default-color7.chart-symbol {
+ -fx-background-color: -color-chart-8, white;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 2.5;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.chart-series-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 3px;
+}
+
+.default-color0.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-line-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-line-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-line-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-line-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-line-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-line-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-line-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.default-color0.chart-series-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px;
+}
+
+.default-color0.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-area-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-area-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-area-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-area-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-area-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-area-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-area-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 1px;
+}
+
+.default-color0.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-area-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-area-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-area-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-area-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-area-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-area-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-area-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-series-area-fill {
+ -fx-stroke: none;
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color0.chart-series-area-fill {
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color1.chart-series-area-fill {
+ -fx-fill: -color-chart-2-alpha20;
+}
+
+.default-color2.chart-series-area-fill {
+ -fx-fill: -color-chart-3-alpha20;
+}
+
+.default-color3.chart-series-area-fill {
+ -fx-fill: -color-chart-4-alpha20;
+}
+
+.default-color4.chart-series-area-fill {
+ -fx-fill: -color-chart-5-alpha20;
+}
+
+.default-color5.chart-series-area-fill {
+ -fx-fill: -color-chart-6-alpha20;
+}
+
+.default-color6.chart-series-area-fill {
+ -fx-fill: -color-chart-7-alpha20;
+}
+
+.default-color7.chart-series-area-fill {
+ -fx-fill: -color-chart-8-alpha20;
+}
+
+.area-legend-symbol {
+ -fx-padding: 6px;
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0, 3;
+}
+
+.bubble-legend-symbol {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+}
+
+.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+ -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill, 20%), derive(-fx-bubble-fill, -30%));
+}
+
+.default-color0.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+}
+
+.default-color1.chart-bubble {
+ -fx-bubble-fill: -color-chart-2-alpha70;
+}
+
+.default-color2.chart-bubble {
+ -fx-bubble-fill: -color-chart-3-alpha70;
+}
+
+.default-color3.chart-bubble {
+ -fx-bubble-fill: -color-chart-4-alpha70;
+}
+
+.default-color4.chart-bubble {
+ -fx-bubble-fill: -color-chart-5-alpha70;
+}
+
+.default-color5.chart-bubble {
+ -fx-bubble-fill: -color-chart-6-alpha70;
+}
+
+.default-color6.chart-bubble {
+ -fx-bubble-fill: -color-chart-7-alpha70;
+}
+
+.default-color7.chart-bubble {
+ -fx-bubble-fill: -color-chart-8-alpha70;
+}
+
+.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+ -fx-background-color: linear-gradient(to right, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+ -fx-background-insets: 0;
+}
+
+.chart-bar.danger {
+ -fx-background-insets: 1 0 0 0;
+}
+
+.bar-chart:horizontal .chart-bar {
+ -fx-background-insets: 0 0 0 1;
+}
+
+.bar-chart:horizontal .chart-bar,
+.stacked-bar-chart:horizontal .chart-bar {
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+}
+
+.default-color0.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+}
+
+.default-color1.chart-bar {
+ -fx-bar-fill: -color-chart-2;
+}
+
+.default-color2.chart-bar {
+ -fx-bar-fill: -color-chart-3;
+}
+
+.default-color3.chart-bar {
+ -fx-bar-fill: -color-chart-4;
+}
+
+.default-color4.chart-bar {
+ -fx-bar-fill: -color-chart-5;
+}
+
+.default-color5.chart-bar {
+ -fx-bar-fill: -color-chart-6;
+}
+
+.default-color6.chart-bar {
+ -fx-bar-fill: -color-chart-7;
+}
+
+.default-color7.chart-bar {
+ -fx-bar-fill: -color-chart-8;
+}
+
+.bar-legend-symbol {
+ -fx-padding: 8px;
+}
+
+.chart-pie {
+ -fx-pie-color: -color-chart-1;
+ -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color, 20%), derive(-fx-pie-color, -10%));
+ -fx-background-insets: 1;
+ -fx-border-color: -color-bg-default;
+}
+
+.chart-pie-label {
+ -fx-padding: 3px;
+ -fx-fill: -color-fg-default;
+}
+
+.chart-pie-label-line {
+ -fx-stroke: derive(-color-bg-default, -20%);
+}
+
+.default-color0.chart-pie {
+ -fx-pie-color: -color-chart-1;
+}
+
+.default-color1.chart-pie {
+ -fx-pie-color: -color-chart-2;
+}
+
+.default-color2.chart-pie {
+ -fx-pie-color: -color-chart-3;
+}
+
+.default-color3.chart-pie {
+ -fx-pie-color: -color-chart-4;
+}
+
+.default-color4.chart-pie {
+ -fx-pie-color: -color-chart-5;
+}
+
+.default-color5.chart-pie {
+ -fx-pie-color: -color-chart-6;
+}
+
+.default-color6.chart-pie {
+ -fx-pie-color: -color-chart-7;
+}
+
+.default-color7.chart-pie {
+ -fx-pie-color: -color-chart-8;
+}
+
+.danger.chart-pie {
+ -fx-pie-color: transparent;
+ -fx-background-color: white;
+}
+
+.pie-legend-symbol.chart-pie {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+ -fx-border-color: none;
+}
+
+.check-box {
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.check-box > .box {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-alignment: CENTER;
+}
+.check-box > .box > .mark {
+ -fx-background-color: -color-bg-default;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.check-box:indeterminate > .box > .mark {
+ -fx-background-color: -color-fg-muted;
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.check-box:disabled {
+ -fx-opacity: 0.55;
+}
+.check-box:disabled > .box {
+ -fx-opacity: 0.55;
+}
+.check-box:selected > .box {
+ -fx-background-color: -color-accent-emphasis, -color-accent-emphasis;
+}
+.check-box:selected > .box > .mark {
+ -fx-background-color: -color-fg-emphasis;
+}
+.check-box:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.color-picker > .color-picker-label {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.color-picker > .color-picker-label > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: -color-border-default;
+}
+.color-picker.button > .color-picker-label {
+ -fx-padding: 0;
+}
+
+.color-palette {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-spacing: 10px;
+ -fx-padding: 1em;
+}
+.color-palette > .color-picker-grid {
+ -fx-padding: 0.5px;
+ -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+ -fx-background-color: transparent;
+ -fx-padding: 0.5px;
+}
+
+.color-palette-region {
+ -fx-effect: dropshadow(gaussian, transparent, 12, 0, 0, 8);
+}
+.color-palette-region > .color-square.hover-square {
+ -fx-background-color: -color-accent-fg, -color-bg-default;
+ -fx-background-insets: -2, -1;
+ -fx-background-radius: 5, 0;
+ -fx-scale-x: 1.5;
+ -fx-scale-y: 1.5;
+ -fx-border-color: -color-accent-fg;
+ -fx-border-insets: -1, -1;
+}
+
+.custom-color-dialog {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 1.25em;
+ -fx-spacing: 1.25em;
+}
+.custom-color-dialog > .color-rect-pane {
+ -fx-spacing: 1em;
+ -fx-pref-height: 16em;
+ -fx-alignment: TOP-LEFT;
+ -fx-fill-height: true;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect {
+ -fx-min-width: 16em;
+ -fx-min-height: 16em;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect .color-rect-border {
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect #color-rect-indicator {
+ -fx-background-color: none;
+ -fx-border-color: white;
+ -fx-border-radius: 0.4166667em;
+ -fx-pref-width: 0.833333em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.4166667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .color-rect-pane > .color-bar {
+ -fx-min-width: 1.666667em;
+ -fx-min-height: 16.666667em;
+ -fx-max-width: 1.666667em;
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-bar #color-bar-indicator {
+ -fx-border-radius: 0.333333em;
+ -fx-border-color: white;
+ -fx-pref-width: 2em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.1666667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .label {
+ -fx-padding: 0 0 0 2px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #current-new-color-border {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 1px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .color-rect {
+ -fx-min-width: 10em;
+ -fx-pref-width: 10em;
+ -fx-min-height: 1.75em;
+ -fx-pref-height: 1.75em;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer1 {
+ -fx-min-height: 5px;
+ -fx-pref-height: 5px;
+ -fx-max-height: 5px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer2 {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+ -fx-max-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane {
+ -fx-hgap: 6px;
+ -fx-vgap: 6px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .customcolor-controls-background {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 13px 0 5px 0, 14px 1px 6px 1px;
+ -fx-background-radius: 1;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-label {
+ -fx-min-width: 5.75em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-unit {
+ -fx-min-width: 1.5em;
+ -fx-pref-width: 1.5em;
+ -fx-max-width: 1.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .slider {
+ -fx-pref-width: 10em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .color-input-field {
+ -fx-max-width: 4em;
+ -fx-pref-width: 4em;
+ -fx-min-width: 4em;
+ -fx-pref-column-count: 3;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-side {
+ -fx-min-width: 0.5em;
+ -fx-pref-width: 0.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-bottom {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .web-field {
+ -fx-pref-column-count: 6;
+ -fx-pref-width: 8em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .webcolor-field:dir(rtl) > .text-field:dir(ltr) {
+ -fx-alignment: BASELINE_RIGHT;
+}
+.custom-color-dialog > .controls-pane > #buttons-hbox {
+ -fx-spacing: 10px;
+ -fx-padding: 1em 0 0 0;
+ -fx-alignment: BOTTOM_RIGHT;
+}
+.custom-color-dialog > .controls-pane .transparent-pattern {
+ -fx-background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCOTBEQkE1RjJFMjA2ODExOUExMUM5NDhFOTUyQzM3MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRkE3MDZERThFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRkE3MDZERDhFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk4MDExNzQwNzIwNjgxMTg3MUZDMUExNDFCMTYwNzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjkwREJBNUYyRTIwNjgxMTlBMTFDOTQ4RTk1MkMzNzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz71FDCdAAAAKElEQVR42mI8c+YMAwwYGxvD2UwMOADpEoz///+Hc86ePUsLOwACDABC1ghwV8TLOQAAAABJRU5ErkJggg==");
+ -fx-background-repeat: repeat;
+ -fx-background-size: auto;
+}
+
+.custom-text-field:left-node-visible {
+ -fx-padding: 8px 12px 8px 0;
+}
+.custom-text-field:left-node-visible .left-pane {
+ -fx-padding: 0 4px 0 6px;
+}
+.custom-text-field:right-node-visible {
+ -fx-padding: 8px 0 8px 12px;
+}
+.custom-text-field:right-node-visible .right-pane {
+ -fx-padding: 0 6px 0 4px;
+}
+.custom-text-field:left-node-visible:right-node-visible {
+ -fx-padding: 8px 0 8px 0;
+}
+.custom-text-field:success .font-icon, .custom-text-field:success .ikonli-font-icon {
+ -fx-icon-color: -color-success-fg;
+ -fx-fill: -color-success-fg;
+}
+.custom-text-field:danger .font-icon, .custom-text-field:danger .ikonli-font-icon {
+ -fx-icon-color: -color-danger-fg;
+ -fx-fill: -color-danger-fg;
+}
+
+.combo-box-base.date-picker > .arrow-button {
+ -fx-cursor: hand;
+}
+.combo-box-base.date-picker > .arrow-button > .arrow {
+ -fx-shape: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V10h16v11zm0-13H4V5h16v3z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 0.416667em;
+}
+
+.date-picker-popup {
+ -color-date-bg: -color-bg-default;
+ -color-date-border: -color-border-default;
+ -color-date-month-year-bg: -color-bg-default;
+ -color-date-month-year-fg: -color-fg-default;
+ -color-date-day-bg: -color-bg-default;
+ -color-date-day-bg-hover: -color-bg-subtle;
+ -color-date-day-bg-selected: -color-accent-emphasis;
+ -color-date-day-fg: -color-fg-default;
+ -color-date-day-fg-hover: -color-fg-default;
+ -color-date-day-fg-selected: -color-fg-emphasis;
+ -color-date-week-bg: -color-bg-default;
+ -color-date-week-fg: -color-accent-fg;
+ -color-date-today-bg: -color-accent-subtle;
+ -color-date-today-fg: -color-accent-fg;
+ -color-date-other-month-fg: -color-fg-muted;
+ -color-date-chrono-fg: -color-success-fg;
+ -fx-background-color: -color-date-border, -color-date-bg;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+ -fx-spacing: 0;
+ -fx-padding: 1px;
+}
+.date-picker-popup > .month-year-pane {
+ -fx-padding: 8px 8px 8px 8px;
+ -fx-background-color: -color-date-month-year-bg;
+ -fx-background-insets: 0;
+}
+.date-picker-popup > .month-year-pane > .spinner {
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER;
+ -fx-fill-height: false;
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-font-size: 1.1em;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+ -fx-alignment: BASELINE_CENTER;
+ -fx-padding: 0.5em 0 0 0;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .calendar-grid {
+ -fx-background-color: -color-date-bg;
+ -fx-padding: 8px;
+}
+.date-picker-popup > .calendar-grid > .date-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_CENTER;
+ -fx-opacity: 1;
+ -fx-text-fill: -color-date-day-fg;
+}
+.date-picker-popup > .calendar-grid > .week-number-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-week-bg;
+ -fx-text-fill: -color-date-week-fg;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .day-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-day-bg;
+}
+.date-picker-popup > .calendar-grid > .day-cell > .secondary-text {
+ -fx-fill: -color-date-chrono-fg;
+}
+.date-picker-popup > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 0.55;
+}
+.date-picker-popup > .calendar-grid .day-name-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .hijrah-day-cell {
+ -fx-alignment: TOP_LEFT;
+ -fx-padding: 0.083333em 4px 0.083333em 0.333333em;
+ -fx-cell-size: 2.75em;
+}
+.date-picker-popup > .calendar-grid > .today {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+ -fx-font-weight: bold;
+}
+
+.inline-date-picker {
+ -fx-effect: none;
+}
+.inline-date-picker > .top-node,
+.inline-date-picker > .bottom-node {
+ -fx-padding: 8px 16px 8px 16px;
+}
+.inline-date-picker > .month-year-pane {
+ -fx-padding: 8px 16px 8px 16px;
+ -fx-alignment: CENTER_LEFT;
+ -fx-spacing: 6px;
+}
+.inline-date-picker > .month-year-pane > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.inline-date-picker > .month-year-pane > .back-button {
+ -fx-padding: 0 1em 0 0;
+}
+.inline-date-picker > .month-year-pane > .back-button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .forward-button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .label {
+ -fx-text-fill: -color-date-month-year-fg;
+ -fx-font-size: 1.1em;
+}
+.inline-date-picker:disabled > .calendar-grid {
+ -fx-opacity: 0.55;
+}
+.inline-date-picker:disabled > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 1;
+}
+
+.date-picker-popup > .calendar-grid > .selected,
+.date-picker-popup > .calendar-grid > .selected > .secondary-text,
+.date-picker-popup > .calendar-grid > .previous-month.selected,
+.date-picker-popup > .calendar-grid > .previous-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.selected {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+ -fx-font-weight: normal;
+}
+
+.date-picker-popup > .calendar-grid > .day-cell:hover {
+ -fx-background-color: -color-date-day-bg-hover;
+}
+
+.date-picker-popup > .calendar-grid > .today:hover {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+}
+
+.date-picker-popup > .calendar-grid > .selected:hover {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+}
+
+.date-picker-popup > .calendar-grid > .previous-month,
+.date-picker-popup > .calendar-grid > .next-month,
+.date-picker-popup > .calendar-grid > .previous-month.today,
+.date-picker-popup > .calendar-grid > .next-month.today,
+.date-picker-popup > .calendar-grid > .previous-month > .secondary-text,
+.date-picker-popup > .calendar-grid > .next-month > .secondary-text {
+ -fx-text-fill: -color-date-other-month-fg;
+ -fx-fill: -color-date-other-month-fg;
+ -fx-font-weight: normal;
+}
+
+.dialog-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 0;
+ -fx-max-width: 600px;
+}
+.dialog-pane > .expandable-content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container {
+ -fx-padding: 2em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container > .details-button {
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_LEFT;
+ -fx-focus-traversable: false;
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane > .button-bar > .container > .details-button:hover {
+ -fx-underline: true;
+}
+.dialog-pane > .content {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane > .content.label {
+ -fx-alignment: TOP_LEFT;
+}
+.dialog-pane:header > .header-panel {
+ -fx-padding: 1em 1em 1em 1em;
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.dialog-pane:header > .header-panel > .label {
+ -fx-wrap-text: true;
+}
+.dialog-pane:header > .header-panel > .graphic-container {
+ -fx-padding: 0 0 0 1em;
+}
+.dialog-pane:no-header > .content {
+ -fx-padding: 1em 1em 0 0;
+}
+.dialog-pane:no-header > * > .graphic-container {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane.information > .header-panel {
+ -fx-background-color: -color-accent-fg, -color-bg-subtle;
+}
+.dialog-pane.information > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.warning > .header-panel {
+ -fx-background-color: -color-warning-fg, -color-bg-subtle;
+}
+.dialog-pane.warning > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.error > .header-panel {
+ -fx-background-color: -color-danger-fg, -color-bg-subtle;
+}
+.dialog-pane.error > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+
+.alert.information.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.warning.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.error.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.confirmation.dialog-pane,
+.text-input-dialog.dialog-pane,
+.choice-dialog.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.html-editor {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 2px;
+}
+.html-editor:contains-focus {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.html-editor .tool-bar {
+ -fx-padding: 4px;
+}
+.html-editor .button,
+.html-editor .toggle-button {
+ -fx-background-insets: 0;
+}
+.html-editor .toggle-button {
+ -color-button-bg-selected: -color-base-6;
+ -color-button-border-focused: transparent;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-background {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect, .color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: none;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Text-Color.png");
+}
+
+.color-picker.html-editor-background {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Background-Color.png");
+}
+
+.html-editor-cut {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Cut.png");
+}
+
+.html-editor-copy {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Copy.png");
+}
+
+.html-editor-paste {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Paste.png");
+}
+
+.html-editor-align-left {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Left.png");
+}
+
+.html-editor-align-center {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Center.png");
+}
+
+.html-editor-align-right {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Right.png");
+}
+
+.html-editor-align-justify {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Justify.png");
+}
+
+.html-editor-outdent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent.png");
+}
+
+.html-editor-outdent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent-rtl.png");
+}
+
+.html-editor-indent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent.png");
+}
+
+.html-editor-indent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent-rtl.png");
+}
+
+.html-editor-bullets {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets.png");
+}
+
+.html-editor-bullets:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets-rtl.png");
+}
+
+.html-editor-numbers {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered.png");
+}
+
+.html-editor-numbers:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered-rtl.png");
+}
+
+.html-editor-bold {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bold.png");
+}
+
+.html-editor-italic {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Italic.png");
+}
+
+.html-editor-underline {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Underline.png");
+}
+
+.html-editor-strike {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Strikethrough.png");
+}
+
+.html-editor-hr {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Break.png");
+}
+
+.hyperlink {
+ -color-link-fg: -color-accent-fg;
+ -color-link-fg-visited: -color-fg-default;
+ -color-link-fg-armed: -color-fg-default;
+ -fx-cursor: hand;
+ -fx-underline: true;
+ -fx-text-fill: -color-link-fg;
+}
+.hyperlink:visited {
+ -fx-text-fill: -color-link-fg-visited;
+}
+.hyperlink:armed {
+ -fx-text-fill: -color-link-fg-armed;
+ -fx-underline: false;
+}
+.hyperlink:disabled {
+ -fx-opacity: 0.55;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+.label {
+ -fx-text-fill: -color-fg-default;
+}
+.label:disabled {
+ -fx-opacity: 0.55;
+}
+.label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-button,
+.split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-7;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 0;
+ -fx-alignment: CENTER_LEFT;
+}
+.menu-button .font-icon, .menu-button .ikonli-font-icon,
+.split-menu-button .font-icon,
+.split-menu-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.menu-button:disabled,
+.split-menu-button:disabled {
+ -fx-opacity: 0.55;
+}
+.menu-button:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 8px;
+}
+.menu-button.button-icon > .text,
+.split-menu-button.button-icon > .text {
+ visibility: hidden;
+}
+.menu-button.button-circle,
+.split-menu-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.menu-button.button-circle .text,
+.split-menu-button.button-circle .text {
+ visibility: hidden;
+}
+.menu-button.left-pill,
+.split-menu-button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.menu-button.left-pill:hover, .menu-button.left-pill:focused,
+.split-menu-button.left-pill:hover,
+.split-menu-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.center-pill,
+.split-menu-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.menu-button.center-pill:hover, .menu-button.center-pill:focused,
+.split-menu-button.center-pill:hover,
+.split-menu-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.right-pill,
+.split-menu-button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.menu-button.right-pill:hover, .menu-button.right-pill:focused,
+.split-menu-button.right-pill:hover,
+.split-menu-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button > .label,
+.split-menu-button > .label {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-text-fill: -color-button-fg;
+}
+.menu-button > .arrow-button,
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 0;
+}
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-button-fg;
+ -fx-min-width: 0.5em;
+}
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.menu-button:show-mnemonics > .label > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .label > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 0;
+}
+.menu-button:hover,
+.split-menu-button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-opacity: 0.9;
+}
+.menu-button:hover > .label,
+.split-menu-button:hover > .label {
+ -fx-text-fill: -color-button-fg-hover;
+}
+.menu-button:hover > .arrow-button > .arrow,
+.split-menu-button:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-hover;
+}
+.menu-button:hover .font-icon, .menu-button:hover .ikonli-font-icon,
+.split-menu-button:hover .font-icon,
+.split-menu-button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.menu-button:focused,
+.split-menu-button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+}
+.menu-button:focused > .label,
+.split-menu-button:focused > .label {
+ -fx-text-fill: -color-button-fg-focused;
+}
+.menu-button:focused > .arrow-button > .arrow,
+.split-menu-button:focused > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-focused;
+}
+.menu-button:focused .font-icon, .menu-button:focused .ikonli-font-icon,
+.split-menu-button:focused .font-icon,
+.split-menu-button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.menu-button:armed, .menu-button:focused:armed,
+.split-menu-button:armed,
+.split-menu-button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .label, .menu-button:focused:armed > .label,
+.split-menu-button:armed > .label,
+.split-menu-button:focused:armed > .label {
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .arrow-button > .arrow, .menu-button:focused:armed > .arrow-button > .arrow,
+.split-menu-button:armed > .arrow-button > .arrow,
+.split-menu-button:focused:armed > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-pressed;
+}
+.menu-button:armed .font-icon, .menu-button:armed .ikonli-font-icon, .menu-button:focused:armed .font-icon, .menu-button:focused:armed .ikonli-font-icon,
+.split-menu-button:armed .font-icon,
+.split-menu-button:armed .ikonli-font-icon,
+.split-menu-button:focused:armed .font-icon,
+.split-menu-button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.menu-button.accent,
+.split-menu-button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.accent.button-outlined,
+.split-menu-button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.accent.flat,
+.split-menu-button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.menu-button.success,
+.split-menu-button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.success.button-outlined,
+.split-menu-button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.success.flat,
+.split-menu-button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.menu-button.danger,
+.split-menu-button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.danger.button-outlined,
+.split-menu-button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.danger.flat,
+.split-menu-button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.menu-button.flat,
+.split-menu-button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+
+.menu-button.no-arrow > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-button.no-arrow > .arrow-button > .arrow {
+ -fx-shape: none;
+ -fx-scale-shape: false;
+ -fx-min-width: -1;
+}
+
+.split-menu-button > .label {
+ -fx-padding: 8px 6px 8px 12px;
+}
+.split-menu-button:hover > .arrow-button, .split-menu-button:focused:hover > .arrow-button {
+ -fx-background-color: -color-neutral-emphasis-plus;
+ -fx-background-insets: 1px;
+ -fx-background-radius: 1;
+ -fx-border-color: transparent;
+ -fx-opacity: 0.75;
+}
+.split-menu-button:hover > .arrow-button > .arrow, .split-menu-button:focused:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.split-menu-button:default:hover > .arrow-button, .split-menu-button.accent:hover > .arrow-button, .split-menu-button.success:hover > .arrow-button, .split-menu-button.danger:hover > .arrow-button {
+ -fx-background-color: -color-fg-emphasis;
+}
+.split-menu-button:default:hover > .arrow-button > .arrow, .split-menu-button.accent:hover > .arrow-button > .arrow, .split-menu-button.success:hover > .arrow-button > .arrow, .split-menu-button.danger:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-bg-hover;
+}
+.split-menu-button.button-outlined:hover > .arrow-button, .split-menu-button.button-outlined:focused > .arrow-button {
+ -color-button-fg: -color-fg-emphasis;
+}
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-background-radius: 0 1 1 0;
+ -fx-border-color: -color-button-fg;
+ -fx-border-width: 0 0 0 0.75px;
+ -fx-border-insets: 7px 0 7px 0;
+}
+
+.popover {
+ -fx-background-color: -color-bg-overlay;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
+.popover > .border {
+ -fx-stroke: -color-border-default;
+ -fx-stroke-width: 1px;
+}
+.popover > .content {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.popover > .content > .title {
+ -fx-padding: 0 0 1em 0;
+}
+.popover > .content > .title > .text {
+ -fx-text-fill: -color-fg-default;
+ -fx-font-size: 1.25em;
+ -fx-alignment: CENTER_LEFT;
+}
+.popover > .content > .title > .icon > .graphics > .circle {
+ -fx-fill: transparent;
+}
+.popover > .content > .title > .icon > .graphics > .line {
+ -fx-stroke: -color-fg-default;
+ -fx-stroke-width: 1px;
+}
+
+.progress-bar {
+ -color-progress-bar-track: -color-bg-subtle;
+ -color-progress-bar-fill: -color-accent-emphasis;
+ -fx-indeterminate-bar-length: 60;
+ -fx-indeterminate-bar-escape: true;
+ -fx-indeterminate-bar-flip: true;
+ -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .track {
+ -fx-background-color: -color-progress-bar-track;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+}
+.progress-bar > .bar {
+ -fx-background-color: -color-progress-bar-fill;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+ -fx-padding: 0.4em;
+}
+.progress-bar.small > .bar {
+ -fx-padding: 2px;
+}
+.progress-bar.medium > .bar {
+ -fx-padding: 0.4em;
+}
+.progress-bar.large > .bar {
+ -fx-padding: 0.8em;
+}
+.progress-bar:disabled {
+ -fx-opacity: 0.55;
+}
+
+.progress-indicator {
+ -fx-indeterminate-segment-count: 12;
+ -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+}
+.progress-indicator > .determinate-indicator > .progress {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0.6em;
+}
+.progress-indicator > .determinate-indicator > .tick {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-background-insets: 0;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+}
+.progress-indicator > .determinate-indicator > .percentage {
+ -fx-font-size: 0.8em;
+ -fx-fill: -color-fg-default;
+}
+.progress-indicator > .determinate-indicator:disabled {
+ -fx-opacity: 0.55;
+}
+.progress-indicator:indeterminate > .spinner {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-border-color: transparent;
+ -fx-border-width: 0;
+ -fx-border-radius: 0;
+ -fx-padding: 0;
+}
+.progress-indicator:indeterminate .segment {
+ -fx-background-color: -color-accent-emphasis;
+}
+.progress-indicator:indeterminate .segment0 {
+ -fx-shape: "M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+ -fx-shape: "M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+ -fx-shape: "M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+ -fx-shape: "M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+ -fx-shape: "M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+ -fx-shape: "M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+ -fx-shape: "M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+ -fx-shape: "M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+ -fx-shape: "M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+ -fx-shape: "M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+ -fx-shape: "M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+ -fx-shape: "M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+.radio-button {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.radio-button > .radio {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-padding: 3px;
+ -fx-alignment: CENTER;
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent, transparent;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.radio-button:disabled {
+ -fx-opacity: 0.55;
+}
+.radio-button:disabled > .radio {
+ -fx-opacity: 0.55;
+}
+.radio-button:selected > .radio {
+ -fx-background-color: -color-accent-emphasis;
+}
+.radio-button:selected > .radio > .dot {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+}
+.radio-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.scroll-bar {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-bar > .thumb {
+ -fx-background-color: -color-fg-muted;
+ -fx-background-radius: 1;
+}
+.scroll-bar > .track {
+ -fx-background-color: transparent;
+ -fx-border-radius: 0;
+}
+.scroll-bar > .increment-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .increment-button > .increment-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar > .decrement-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .decrement-button > .decrement-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar:horizontal {
+ -fx-pref-height: 8px;
+}
+.scroll-bar:vertical {
+ -fx-pref-width: 8px;
+}
+.scroll-bar:hover, .scroll-bar:pressed, .scroll-bar:focused {
+ -fx-opacity: 1;
+}
+
+.scroll-pane {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.scroll-pane > .viewport {
+ -fx-background-color: transparent;
+}
+.scroll-pane > .corner {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-pane:disabled > .scroll-bar {
+ -fx-opacity: 0.25;
+}
+
+.separator:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator:horizontal > .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0 0 0;
+}
+.separator:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator:vertical > .line {
+ -fx-border-color: transparent transparent transparent -color-border-muted;
+ -fx-border-insets: 0 0 0 1px;
+}
+.separator.small:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.separator.small:vertical {
+ -fx-padding: 0 0.25em 0 0.25em;
+}
+.separator.medium:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator.medium:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator.large:horizontal {
+ -fx-padding: 1.5em 0 1.5em 0;
+}
+.separator.large:vertical {
+ -fx-padding: 0 1.5em 0 1.5em;
+}
+
+.spinner {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default;
+ -fx-border-radius: 1;
+ -fx-border-width: 1px;
+}
+.spinner > .text-field {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+ -fx-padding: 7px 11px 7px 11px;
+}
+.spinner > .increment-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0 1 0 0;
+ -fx-padding: 10px;
+}
+.spinner > .increment-arrow-button:hover {
+ -fx-background-color: -color-base-6;
+}
+.spinner > .increment-arrow-button > .increment-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: false;
+}
+.spinner > .decrement-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: -1 0 0 0;
+ -fx-background-radius: 0 0 1 0;
+ -fx-padding: 10px;
+}
+.spinner > .decrement-arrow-button:hover {
+ -fx-background-color: -color-base-6;
+}
+.spinner > .decrement-arrow-button > .decrement-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.spinner:disabled {
+ -fx-opacity: 0.55;
+}
+.spinner:focused:focused, .spinner:contains-focus:focused {
+ -fx-border-color: -color-accent-emphasis;
+}
+.spinner.arrows-on-left-vertical > .text-field {
+ -fx-background-radius: 0 1 1 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-vertical > .increment-arrow-button {
+ -fx-background-radius: 1 0 0 0;
+}
+.spinner.arrows-on-left-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 0 1;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .text-field {
+ -fx-background-radius: 0 1 1 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0 -1 0 0;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-vertical > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button {
+ -fx-background-radius: 1 1 0 0;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 1 1;
+ -fx-background-insets: 0 0 -1 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.split-pane {
+ -color-split-divider: -color-border-subtle;
+ -color-split-divider-pressed: -color-accent-emphasis;
+ -color-split-grabber: -color-fg-muted;
+ -color-split-grabber-pressed: -color-accent-emphasis;
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.split-pane > .split-pane-divider {
+ -fx-background-color: -color-split-divider;
+ -fx-padding: 0 2px 0 2px;
+ -fx-opacity: 0.5;
+}
+.split-pane > .split-pane-divider > .horizontal-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 10px 2px 10px 2px;
+}
+.split-pane > .split-pane-divider > .vertical-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 2px 10px 2px 10px;
+}
+.split-pane > .split-pane-divider:pressed {
+ -fx-background-color: -color-split-divider-pressed;
+}
+.split-pane > .split-pane-divider:pressed > .horizontal-grabber,
+.split-pane > .split-pane-divider:pressed > .vertical-grabber {
+ -fx-background-color: -color-split-grabber-pressed;
+}
+.split-pane > .split-pane-divider:hover {
+ -fx-opacity: 1;
+}
+.split-pane > .split-pane-divider:disabled {
+ -fx-opacity: 0.25;
+}
+
+.tab-pane > .tab-header-area {
+ -fx-background-insets: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-alignment: CENTER;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: transparent, transparent;
+ -fx-padding: 0.3em 0.6em 0.3em 0.6em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 0.4em 0.4em 0.4em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+ -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+ -fx-scale-shape: false;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label {
+ -fx-fill: -color-fg-default;
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label > *, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled > .tab-container {
+ -fx-opacity: 0.55;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right > .tab-container > .tab-label {
+ -fx-padding: 0.2em 0.4em 0.2em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected {
+ -fx-background-color: -color-border-default, -color-base-7;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:disabled, .tab-pane > .tab-header-area > .headers-region > .tab:right:disabled {
+ -fx-background-color: transparent;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-padding: 1em;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:disabled {
+ -fx-opacity: 0.55;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane.floating > .tab-header-area {
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0;
+ -fx-background-color: transparent;
+ -fx-padding: 0.3em 0 0.3em 3px;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+ -fx-border-radius: 1;
+ -fx-border-width: 1px, 0 3px 0 0;
+ -fx-border-color: transparent, transparent;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-padding: 0.55em 0.55em 0.55em 0.55em;
+ -fx-min-width: 150px;
+ -fx-pref-width: 150px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab:hover > .tab-container, .tab-pane.floating > .tab-header-area > .headers-region > .tab:selected > .tab-container {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default, transparent;
+}
+
+.text-input {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-fg-default;
+ -color-input-border: -color-border-default;
+ -color-input-bg-focused: -color-bg-default;
+ -color-input-border-focused: -color-accent-emphasis;
+ -color-input-bg-highlight: -color-accent-subtle;
+ -color-input-fg-highlight: -color-fg-default;
+ -fx-background-color: -color-input-border, -color-input-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-input-fg;
+ -fx-highlight-fill: -color-input-bg-highlight;
+ -fx-highlight-text-fill: -color-input-fg-highlight;
+ -fx-prompt-text-fill: -color-fg-subtle;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-cursor: text;
+}
+.text-input:focused {
+ -fx-background-color: -color-input-border-focused, -color-input-bg-focused;
+ -fx-prompt-text-fill: transparent;
+}
+.text-input:disabled {
+ -fx-opacity: 0.55;
+}
+.text-input:disabled > .scroll-pane {
+ -fx-opacity: 1;
+}
+.text-input:success {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-success-fg;
+ -color-input-border: -color-success-emphasis;
+ -color-input-border-focused: -color-success-emphasis;
+}
+.text-input:danger {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-danger-fg;
+ -color-input-border: -color-danger-emphasis;
+ -color-input-border-focused: -color-danger-emphasis;
+}
+.text-input.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.text-input.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.text-input.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.text-input.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.text-field.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.text-field.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.text-field.rounded {
+ -fx-background-radius: 10em;
+}
+
+.text-area {
+ -fx-padding: 2px;
+ -fx-cursor: default;
+}
+.text-area .content {
+ -fx-cursor: text;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+.password-field {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.titled-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-effect: none;
+}
+.titled-pane.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+.titled-pane.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+.titled-pane.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+.titled-pane > .title {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-padding: 10px 20px 10px 20px;
+}
+.titled-pane > .title > .text {
+ -fx-font-size: 1.25em;
+}
+.titled-pane > .title > .arrow-button {
+ -fx-background-color: none;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 10px 0 0;
+}
+.titled-pane > .title > .arrow-button > .arrow {
+ -fx-shape: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 4px 5px 4px 5px;
+}
+.titled-pane > .content {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 0 1px 1px 1px;
+ -fx-border-radius: 0 0 1 1;
+ -fx-background-radius: 0 0 1 1;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 20px 20px 10px 20px;
+ -fx-alignment: TOP_LEFT;
+}
+.titled-pane:disabled > .title > *,
+.titled-pane:disabled > .content > * {
+ -fx-opacity: 0.55;
+}
+.titled-pane:expanded > .title {
+ -fx-background-radius: 1 1 0 0;
+ -fx-background-insets: 0, 1px 1px 0 1px;
+}
+.titled-pane:collapsed > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+}
+.titled-pane.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-7;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -color-button-bg-selected: -color-accent-emphasis;
+ -color-button-fg-selected: -color-fg-emphasis;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.toggle-button .font-icon, .toggle-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.toggle-button:disabled {
+ -fx-opacity: 0.55;
+}
+.toggle-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.toggle-button.button-icon {
+ -fx-padding: 8px;
+}
+.toggle-button.button-icon > .text {
+ visibility: hidden;
+}
+.toggle-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.toggle-button.button-circle .text {
+ visibility: hidden;
+}
+.toggle-button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.toggle-button.left-pill:hover, .toggle-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.toggle-button.center-pill:hover, .toggle-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.toggle-button.right-pill:hover, .toggle-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected, .toggle-button:selected:focused {
+ -fx-background-color: -color-button-bg-selected;
+ -fx-text-fill: -color-button-fg-selected;
+ -fx-background-insets: 0;
+}
+.toggle-button:selected .font-icon, .toggle-button:selected .ikonli-font-icon, .toggle-button:selected:focused .font-icon, .toggle-button:selected:focused .ikonli-font-icon {
+ -fx-fill: -color-button-fg-selected;
+ -fx-icon-color: -color-button-fg-selected;
+}
+.toggle-button:show-mnemonics:selected > .mnemonic-underline {
+ -fx-stroke: -color-button-fg-selected;
+}
+.toggle-button:selected.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.tooltip {
+ -fx-background-color: -color-border-default, -color-bg-overlay;
+ -fx-background-insets: 0, 1px;
+ -fx-text-fill: -color-fg-default;
+ -fx-background-radius: 1;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-opacity: 0.85;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
diff --git a/src/Resources/css/nord-light.css b/src/Resources/css/nord-light.css
new file mode 100644
index 00000000..07f94df1
--- /dev/null
+++ b/src/Resources/css/nord-light.css
@@ -0,0 +1,3664 @@
+.root {
+ -color-dark: #232730;
+ -color-light: #fafafc;
+ -color-base-0: #eef1f5;
+ -color-base-1: #E5E9F0;
+ -color-base-2: #D8DEE9;
+ -color-base-3: #c7ceda;
+ -color-base-4: #b7becb;
+ -color-base-5: #979fae;
+ -color-base-6: #788192;
+ -color-base-7: #4C566A;
+ -color-base-8: #3B4252;
+ -color-base-9: #2E3440;
+ -color-accent-0: #d2dce8;
+ -color-accent-1: #bccadc;
+ -color-accent-2: #98aeca;
+ -color-accent-3: #859fc0;
+ -color-accent-4: #7190b6;
+ -color-accent-5: #5E81AC;
+ -color-accent-6: #537297;
+ -color-accent-7: #476283;
+ -color-accent-8: #3c536e;
+ -color-accent-9: #314359;
+ -color-success-0: #d1e5e5;
+ -color-success-1: #aacfce;
+ -color-success-2: #82b8b8;
+ -color-success-3: #6fadac;
+ -color-success-4: #5ba2a1;
+ -color-success-5: #508f8e;
+ -color-success-6: #457b7a;
+ -color-success-7: #3a6867;
+ -color-success-8: #2f5454;
+ -color-success-9: #244140;
+ -color-warning-0: #f1dcd5;
+ -color-warning-1: #e9c7bc;
+ -color-warning-2: #e1b1a2;
+ -color-warning-3: #daa08d;
+ -color-warning-4: #d5937e;
+ -color-warning-5: #bb7a65;
+ -color-warning-6: #a66c5a;
+ -color-warning-7: #925f4e;
+ -color-warning-8: #7d5143;
+ -color-warning-9: #684438;
+ -color-danger-0: #eacacd;
+ -color-danger-1: #dfb1b5;
+ -color-danger-2: #d29097;
+ -color-danger-3: #c57179;
+ -color-danger-4: #bf616a;
+ -color-danger-5: #ac575f;
+ -color-danger-6: #994e55;
+ -color-danger-7: #86444a;
+ -color-danger-8: #733a40;
+ -color-danger-9: #603135;
+ -color-fg-default: #2E3440;
+ -color-fg-muted: rgba(76, 86, 106, 0.88);
+ -color-fg-subtle: #788192;
+ -color-fg-emphasis: #fafafc;
+ -color-bg-default: #fafafc;
+ -color-bg-overlay: #fafafc;
+ -color-bg-subtle: #eef1f5;
+ -color-bg-inset: #E5E9F0;
+ -color-border-default: #c7ceda;
+ -color-border-muted: #c7ceda;
+ -color-border-subtle: rgba(35, 39, 48, 0.15);
+ -color-shadow-default: #c7ceda;
+ -color-neutral-emphasis-plus: #3B4252;
+ -color-neutral-emphasis: #4C566A;
+ -color-neutral-muted: rgba(151, 159, 174, 0.4);
+ -color-neutral-subtle: rgba(151, 159, 174, 0.1);
+ -color-accent-fg: #537297;
+ -color-accent-emphasis: #476283;
+ -color-accent-muted: rgba(113, 144, 182, 0.4);
+ -color-accent-subtle: rgba(113, 144, 182, 0.1);
+ -color-warning-fg: #925f4e;
+ -color-warning-emphasis: #a66c5a;
+ -color-warning-muted: rgba(213, 147, 126, 0.4);
+ -color-warning-subtle: rgba(213, 147, 126, 0.1);
+ -color-success-fg: #3a6867;
+ -color-success-emphasis: #457b7a;
+ -color-success-muted: rgba(91, 162, 161, 0.4);
+ -color-success-subtle: rgba(91, 162, 161, 0.1);
+ -color-danger-fg: #994e55;
+ -color-danger-emphasis: #ac575f;
+ -color-danger-muted: rgba(191, 97, 106, 0.4);
+ -color-danger-subtle: rgba(191, 97, 106, 0.15);
+ -color-chart-1: #f3622d;
+ -color-chart-2: #fba71b;
+ -color-chart-3: #57b757;
+ -color-chart-4: #41a9c9;
+ -color-chart-5: #4258c9;
+ -color-chart-6: #9a42c8;
+ -color-chart-7: #c84164;
+ -color-chart-8: #888888;
+ -color-chart-1-alpha70: rgba(243, 98, 45, 0.7);
+ -color-chart-2-alpha70: rgba(251, 167, 27, 0.7);
+ -color-chart-3-alpha70: rgba(87, 183, 87, 0.7);
+ -color-chart-4-alpha70: rgba(65, 169, 201, 0.7);
+ -color-chart-5-alpha70: rgba(66, 88, 201, 0.7);
+ -color-chart-6-alpha70: rgba(154, 66, 200, 0.7);
+ -color-chart-7-alpha70: rgba(200, 65, 100, 0.7);
+ -color-chart-8-alpha70: rgba(136, 136, 136, 0.7);
+ -color-chart-1-alpha20: rgba(243, 98, 45, 0.2);
+ -color-chart-2-alpha20: rgba(251, 167, 27, 0.2);
+ -color-chart-3-alpha20: rgba(87, 183, 87, 0.2);
+ -color-chart-4-alpha20: rgba(65, 169, 201, 0.2);
+ -color-chart-5-alpha20: rgba(66, 88, 201, 0.2);
+ -color-chart-6-alpha20: rgba(154, 66, 200, 0.2);
+ -color-chart-7-alpha20: rgba(200, 65, 100, 0.2);
+ -color-chart-8-alpha20: rgba(136, 136, 136, 0.2);
+ -fx-background-color: -color-bg-default;
+ -fx-font-size: 14px;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: inherit;
+}
+.root.popup {
+ -fx-background-color: transparent;
+}
+
+.ikonli-font-icon {
+ -fx-icon-color: -color-fg-default;
+ -fx-fill: -color-fg-default;
+ -fx-icon-size: 18px;
+}
+
+.mnemonic-underline {
+ -fx-stroke: transparent;
+}
+
+.text {
+ -fx-font-smoothing-type: lcd;
+ -fx-bounds-type: logical_vertical_center;
+}
+
+Text {
+ -fx-fill: -color-fg-default;
+}
+
+.title-1 {
+ -fx-font-size: 2em;
+ -fx-font-weight: bolder;
+}
+
+.title-2 {
+ -fx-font-size: 1.75em;
+ -fx-font-weight: bolder;
+}
+
+.title-3 {
+ -fx-font-size: 1.5em;
+ -fx-font-weight: bolder;
+}
+
+.title-4 {
+ -fx-font-size: 1.25em;
+ -fx-font-weight: normal;
+}
+
+.text-caption {
+ -fx-font-size: 1em;
+ -fx-font-weight: bold;
+}
+
+.text-small {
+ -fx-font-size: 0.8em;
+}
+
+.text.accent {
+ -fx-fill: -color-accent-fg;
+}
+
+.label.accent {
+ -fx-text-fill: -color-accent-fg;
+}
+
+.text.success {
+ -fx-fill: -color-success-fg;
+}
+
+.label.success {
+ -fx-text-fill: -color-success-fg;
+}
+
+.text.warning {
+ -fx-fill: -color-warning-fg;
+}
+
+.label.warning {
+ -fx-text-fill: -color-warning-fg;
+}
+
+.text.danger {
+ -fx-fill: -color-danger-fg;
+}
+
+.label.danger {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.text-bold {
+ -fx-font-weight: bold;
+}
+
+.text-bolder {
+ -fx-font-weight: bolder;
+}
+
+.text-normal {
+ -fx-font-weight: normal;
+}
+
+.text-lighter {
+ -fx-font-weight: lighter;
+}
+
+.text-italic {
+ -fx-font-style: italic;
+}
+
+.text-oblique {
+ -fx-font-style: oblique;
+}
+
+.text-underlined {
+ -fx-underline: true;
+}
+
+.text-strikethrough {
+ -fx-strikethrough: true;
+}
+
+.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+
+.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+
+.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+
+.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.pagination {
+ -fx-padding: 0;
+ -fx-arrow-button-gap: 4;
+ -fx-arrows-visible: true;
+ -fx-tooltip-visible: false;
+ -fx-page-information-visible: true;
+ -fx-page-information-alignment: bottom;
+}
+.pagination > .page {
+ -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+ -fx-background-color: transparent;
+ -fx-font-size: 1em;
+}
+.pagination > .pagination-control > .control-box {
+ -fx-padding: 2em 0 0 0;
+ -fx-spacing: 2;
+ -fx-alignment: CENTER;
+}
+.pagination > .pagination-control > .control-box .number-button {
+ -fx-padding: 0;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button > .left-arrow {
+ -fx-shape: "M14 7l-5 5 5 5V7z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button > .right-arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .page-information {
+ -fx-padding: 0.5em 0 0 0;
+}
+.pagination.bullet > .pagination-control > .control-box {
+ -fx-spacing: 0;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 1;
+ -fx-padding: 0 0.25em 0 0.083em;
+}
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 1;
+ -fx-padding: 0 0.083em 0 0.25em;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button {
+ -fx-background-radius: 0, 1, 1;
+ -fx-background-color: transparent, -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 5, 6;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button:selected {
+ -fx-background-color: transparent, -color-accent-emphasis;
+}
+
+.slider {
+ -color-slider-thumb: -color-accent-emphasis;
+ -color-slider-thumb-border: -color-accent-emphasis;
+ -color-slider-track: -color-border-muted;
+ -color-slider-track-progress: -color-accent-emphasis;
+ -color-slider-tick: -color-fg-muted;
+}
+.slider.large {
+ -color-slider-thumb: -color-accent-emphasis;
+ -color-slider-thumb-border: -color-accent-emphasis;
+}
+.slider > .thumb {
+ -fx-background-color: -color-slider-thumb-border, -color-slider-thumb;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 0;
+}
+.slider > .track {
+ -fx-background-color: transparent, -color-slider-track;
+ -fx-background-radius: 0;
+}
+.slider > .progress {
+ -fx-background-color: transparent, -color-slider-track-progress;
+}
+.slider > .axis {
+ -fx-tick-label-fill: -color-slider-tick;
+ -fx-tick-length: 5px;
+ -fx-minor-tick-length: 3px;
+}
+.slider > .axis > .axis-tick-mark,
+.slider > .axis > .axis-minor-tick-mark {
+ -fx-stroke: -color-slider-tick;
+}
+.slider:disabled {
+ -fx-opacity: 0.6;
+}
+.slider:horizontal > .thumb {
+ -fx-padding: 10px 4px 10px 4px;
+}
+.slider:horizontal > .track {
+ -fx-padding: 10px 0 10px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider:horizontal > .progress {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .thumb {
+ -fx-padding: 8px 4px 8px 4px;
+}
+.slider.small:horizontal > .track {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.large:horizontal > .thumb {
+ -fx-padding: 14px 4px 14px;
+}
+.slider.large:horizontal > .track {
+ -fx-padding: 14px 0 14px 0;
+ -fx-background-insets: 0, 2px 0 2px 0;
+}
+.slider.large:horizontal > .progress {
+ -fx-padding: 14px 0 14px 0;
+ -fx-background-insets: 0, 2px 0 2px 0;
+}
+.slider:vertical > .thumb {
+ -fx-padding: 4px 10px 4px 10px;
+}
+.slider:vertical > .track {
+ -fx-padding: 0 10px 0 10px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider:vertical > .progress {
+ -fx-background-radius: 0 0 0 0;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .thumb {
+ -fx-padding: 4px 8px 4px 8px;
+}
+.slider.small:vertical > .track {
+ -fx-padding: 0 8px 0 8px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.large:vertical > .thumb {
+ -fx-padding: 4px 14px 4px 14px;
+}
+.slider.large:vertical > .track {
+ -fx-padding: 0 14px 0 14px;
+ -fx-background-insets: 0, 0 2px 0 2px;
+}
+.slider.large:vertical > .progress {
+ -fx-padding: 0 14px 0 14px;
+ -fx-background-insets: 0, 0 2px 0 2px;
+}
+
+.toggle-switch {
+ -fx-thumb-move-animation-time: 200;
+}
+.toggle-switch > .label-container > .label {
+ -fx-font-size: 1em;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 2px 6px 2px 0;
+}
+.toggle-switch > .thumb {
+ -fx-background-color: -color-border-default, -color-fg-emphasis;
+ -fx-background-insets: 0, 3px;
+ -fx-background-radius: 1px;
+ -fx-padding: 0.8em;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-opacity: 0.6;
+}
+.toggle-switch > .thumb-area {
+ -fx-background-radius: 1px;
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 0.8em 1.6em 0.8em 1.6em;
+}
+.toggle-switch:selected > .thumb {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.toggle-switch:selected > .thumb-area {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-background-insets: 0;
+}
+.toggle-switch:disabled {
+ -fx-opacity: 0.6;
+}
+
+.accordion > .titled-pane.first-titled-pane > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1 1 0 0;
+}
+.accordion > .titled-pane > .title {
+ -fx-background-insets: 0, 0 1px 1px 1px;
+ -fx-background-radius: 0;
+}
+
+.bread-crumb-bar > .button.flat {
+ -fx-padding: 8px 2px 8px 9px;
+ -fx-content-display: RIGHT;
+}
+.bread-crumb-bar > .button.flat.first {
+ -fx-padding: 8px 2px 8px 12px;
+}
+.bread-crumb-bar > .button.flat.last {
+ -fx-padding: 8px 12px 8px 9px;
+}
+.bread-crumb-bar > .button.flat.last .font-icon, .bread-crumb-bar > .button.flat.last .ikonli-font-icon {
+ -fx-min-width: 0;
+ -fx-pref-width: 0;
+ -fx-max-width: 0;
+ visibility: hidden;
+}
+
+.button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.button .font-icon, .button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.button:disabled {
+ -fx-opacity: 0.6;
+}
+.button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.button.button-icon {
+ -fx-padding: 8px;
+}
+.button.button-icon > .text {
+ visibility: hidden;
+}
+.button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.button.button-circle .text {
+ visibility: hidden;
+}
+.button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.button.left-pill:hover, .button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.button.center-pill:hover, .button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.button.right-pill:hover, .button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-text-fill: -color-button-fg-hover;
+ -fx-opacity: 0.9;
+}
+.button:hover:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-hover;
+}
+.button:hover .font-icon, .button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+ -fx-text-fill: -color-button-fg-focused;
+}
+.button:focused .font-icon, .button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.button:armed, .button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.button:armed .font-icon, .button:armed .ikonli-font-icon, .button:focused:armed .font-icon, .button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.button:default, .button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button:default.button-outlined, .button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button:default.flat, .button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-5;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+.button.flat:hover {
+ -fx-underline: true;
+}
+.button.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.button.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.button.rounded {
+ -fx-background-radius: 10em;
+}
+
+.chart {
+ -fx-padding: 4px;
+}
+.chart > .chart-title {
+ -fx-font-size: 1.25em;
+}
+.chart > .chart-content {
+ -fx-padding: 10px;
+}
+.chart > .chart-content > .chart-plot-background {
+ -fx-background-color: -color-bg-default;
+}
+.chart:disabled > .chart-content {
+ -fx-opacity: 0.6;
+}
+.chart:disabled > .chart-content .label {
+ -fx-opacity: 1;
+}
+.chart > .chart-legend {
+ -fx-padding: 6px;
+}
+.chart .axis {
+ -fx-axis-color: -color-border-default;
+ -fx-tick-label-font-size: 0.8em;
+ -fx-tick-label-fill: -color-fg-default;
+}
+.chart .axis:top {
+ -fx-border-color: transparent transparent -fx-axis-color transparent;
+}
+.chart .axis:right {
+ -fx-border-color: transparent transparent transparent -fx-axis-color;
+}
+.chart .axis:bottom {
+ -fx-border-color: -fx-axis-color transparent transparent transparent;
+}
+.chart .axis:left {
+ -fx-border-color: transparent -fx-axis-color transparent transparent;
+}
+.chart .axis:top > .axis-label, .chart .axis:left > .axis-label {
+ -fx-padding: 0 0 4px 0;
+}
+.chart .axis:bottom > .axis-label, .chart .axis:right > .axis-label {
+ -fx-padding: 4px 0 0 0;
+}
+.chart .axis > .axis-tick-mark,
+.chart .axis > .axis-minor-tick-mark {
+ -fx-fill: none;
+ -fx-stroke: -fx-axis-color;
+}
+.chart .chart-horizontal-grid-lines,
+.chart .chart-vertical-grid-lines {
+ -fx-stroke: -color-border-muted;
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart .chart-alternative-row-fill,
+.chart .chart-alternative-column-fill {
+ -fx-fill: none;
+ -fx-stroke: none;
+}
+.chart .chart-vertical-zero-line,
+.chart .chart-horizontal-zero-line {
+ -fx-stroke: -color-fg-default;
+}
+
+.chart-symbol {
+ -fx-background-color: -color-chart-1;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color1.chart-symbol {
+ -fx-background-color: -color-chart-2;
+ -fx-background-radius: 0;
+}
+
+.default-color2.chart-symbol {
+ -fx-background-color: -color-chart-3;
+ -fx-background-radius: 0;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.default-color3.chart-symbol {
+ -fx-background-color: -color-chart-4;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+
+.default-color4.chart-symbol {
+ -fx-background-color: -color-chart-5;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+
+.default-color5.chart-symbol {
+ -fx-background-color: -color-chart-6, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color6.chart-symbol {
+ -fx-background-color: -color-chart-7, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 0;
+}
+
+.default-color7.chart-symbol {
+ -fx-background-color: -color-chart-8, white;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 2.5;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.chart-series-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 3px;
+}
+
+.default-color0.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-line-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-line-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-line-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-line-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-line-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-line-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-line-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.default-color0.chart-series-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px;
+}
+
+.default-color0.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-area-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-area-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-area-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-area-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-area-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-area-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-area-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 1px;
+}
+
+.default-color0.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-area-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-area-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-area-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-area-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-area-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-area-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-area-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-series-area-fill {
+ -fx-stroke: none;
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color0.chart-series-area-fill {
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color1.chart-series-area-fill {
+ -fx-fill: -color-chart-2-alpha20;
+}
+
+.default-color2.chart-series-area-fill {
+ -fx-fill: -color-chart-3-alpha20;
+}
+
+.default-color3.chart-series-area-fill {
+ -fx-fill: -color-chart-4-alpha20;
+}
+
+.default-color4.chart-series-area-fill {
+ -fx-fill: -color-chart-5-alpha20;
+}
+
+.default-color5.chart-series-area-fill {
+ -fx-fill: -color-chart-6-alpha20;
+}
+
+.default-color6.chart-series-area-fill {
+ -fx-fill: -color-chart-7-alpha20;
+}
+
+.default-color7.chart-series-area-fill {
+ -fx-fill: -color-chart-8-alpha20;
+}
+
+.area-legend-symbol {
+ -fx-padding: 6px;
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0, 3;
+}
+
+.bubble-legend-symbol {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+}
+
+.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+ -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill, 20%), derive(-fx-bubble-fill, -30%));
+}
+
+.default-color0.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+}
+
+.default-color1.chart-bubble {
+ -fx-bubble-fill: -color-chart-2-alpha70;
+}
+
+.default-color2.chart-bubble {
+ -fx-bubble-fill: -color-chart-3-alpha70;
+}
+
+.default-color3.chart-bubble {
+ -fx-bubble-fill: -color-chart-4-alpha70;
+}
+
+.default-color4.chart-bubble {
+ -fx-bubble-fill: -color-chart-5-alpha70;
+}
+
+.default-color5.chart-bubble {
+ -fx-bubble-fill: -color-chart-6-alpha70;
+}
+
+.default-color6.chart-bubble {
+ -fx-bubble-fill: -color-chart-7-alpha70;
+}
+
+.default-color7.chart-bubble {
+ -fx-bubble-fill: -color-chart-8-alpha70;
+}
+
+.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+ -fx-background-color: linear-gradient(to right, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+ -fx-background-insets: 0;
+}
+
+.chart-bar.danger {
+ -fx-background-insets: 1 0 0 0;
+}
+
+.bar-chart:horizontal .chart-bar {
+ -fx-background-insets: 0 0 0 1;
+}
+
+.bar-chart:horizontal .chart-bar,
+.stacked-bar-chart:horizontal .chart-bar {
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+}
+
+.default-color0.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+}
+
+.default-color1.chart-bar {
+ -fx-bar-fill: -color-chart-2;
+}
+
+.default-color2.chart-bar {
+ -fx-bar-fill: -color-chart-3;
+}
+
+.default-color3.chart-bar {
+ -fx-bar-fill: -color-chart-4;
+}
+
+.default-color4.chart-bar {
+ -fx-bar-fill: -color-chart-5;
+}
+
+.default-color5.chart-bar {
+ -fx-bar-fill: -color-chart-6;
+}
+
+.default-color6.chart-bar {
+ -fx-bar-fill: -color-chart-7;
+}
+
+.default-color7.chart-bar {
+ -fx-bar-fill: -color-chart-8;
+}
+
+.bar-legend-symbol {
+ -fx-padding: 8px;
+}
+
+.chart-pie {
+ -fx-pie-color: -color-chart-1;
+ -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color, 20%), derive(-fx-pie-color, -10%));
+ -fx-background-insets: 1;
+ -fx-border-color: -color-bg-default;
+}
+
+.chart-pie-label {
+ -fx-padding: 3px;
+ -fx-fill: -color-fg-default;
+}
+
+.chart-pie-label-line {
+ -fx-stroke: derive(-color-bg-default, -20%);
+}
+
+.default-color0.chart-pie {
+ -fx-pie-color: -color-chart-1;
+}
+
+.default-color1.chart-pie {
+ -fx-pie-color: -color-chart-2;
+}
+
+.default-color2.chart-pie {
+ -fx-pie-color: -color-chart-3;
+}
+
+.default-color3.chart-pie {
+ -fx-pie-color: -color-chart-4;
+}
+
+.default-color4.chart-pie {
+ -fx-pie-color: -color-chart-5;
+}
+
+.default-color5.chart-pie {
+ -fx-pie-color: -color-chart-6;
+}
+
+.default-color6.chart-pie {
+ -fx-pie-color: -color-chart-7;
+}
+
+.default-color7.chart-pie {
+ -fx-pie-color: -color-chart-8;
+}
+
+.danger.chart-pie {
+ -fx-pie-color: transparent;
+ -fx-background-color: white;
+}
+
+.pie-legend-symbol.chart-pie {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+ -fx-border-color: none;
+}
+
+.check-box {
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.check-box > .box {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-alignment: CENTER;
+}
+.check-box > .box > .mark {
+ -fx-background-color: -color-bg-default;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.check-box:indeterminate > .box > .mark {
+ -fx-background-color: -color-fg-muted;
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.check-box:disabled {
+ -fx-opacity: 0.6;
+}
+.check-box:disabled > .box {
+ -fx-opacity: 0.6;
+}
+.check-box:selected > .box {
+ -fx-background-color: -color-accent-emphasis, -color-accent-emphasis;
+}
+.check-box:selected > .box > .mark {
+ -fx-background-color: -color-fg-emphasis;
+}
+.check-box:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.color-picker > .color-picker-label {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.color-picker > .color-picker-label > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: -color-border-default;
+}
+.color-picker.button > .color-picker-label {
+ -fx-padding: 0;
+}
+
+.color-palette {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-spacing: 10px;
+ -fx-padding: 1em;
+}
+.color-palette > .color-picker-grid {
+ -fx-padding: 0.5px;
+ -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+ -fx-background-color: transparent;
+ -fx-padding: 0.5px;
+}
+
+.color-palette-region {
+ -fx-effect: dropshadow(gaussian, transparent, 12, 0, 0, 8);
+}
+.color-palette-region > .color-square.hover-square {
+ -fx-background-color: -color-accent-fg, -color-bg-default;
+ -fx-background-insets: -2, -1;
+ -fx-background-radius: 5, 0;
+ -fx-scale-x: 1.5;
+ -fx-scale-y: 1.5;
+ -fx-border-color: -color-accent-fg;
+ -fx-border-insets: -1, -1;
+}
+
+.custom-color-dialog {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 1.25em;
+ -fx-spacing: 1.25em;
+}
+.custom-color-dialog > .color-rect-pane {
+ -fx-spacing: 1em;
+ -fx-pref-height: 16em;
+ -fx-alignment: TOP-LEFT;
+ -fx-fill-height: true;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect {
+ -fx-min-width: 16em;
+ -fx-min-height: 16em;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect .color-rect-border {
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect #color-rect-indicator {
+ -fx-background-color: none;
+ -fx-border-color: white;
+ -fx-border-radius: 0.4166667em;
+ -fx-pref-width: 0.833333em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.4166667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .color-rect-pane > .color-bar {
+ -fx-min-width: 1.666667em;
+ -fx-min-height: 16.666667em;
+ -fx-max-width: 1.666667em;
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-bar #color-bar-indicator {
+ -fx-border-radius: 0.333333em;
+ -fx-border-color: white;
+ -fx-pref-width: 2em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.1666667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .label {
+ -fx-padding: 0 0 0 2px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #current-new-color-border {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 1px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .color-rect {
+ -fx-min-width: 10em;
+ -fx-pref-width: 10em;
+ -fx-min-height: 1.75em;
+ -fx-pref-height: 1.75em;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer1 {
+ -fx-min-height: 5px;
+ -fx-pref-height: 5px;
+ -fx-max-height: 5px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer2 {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+ -fx-max-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane {
+ -fx-hgap: 6px;
+ -fx-vgap: 6px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .customcolor-controls-background {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 13px 0 5px 0, 14px 1px 6px 1px;
+ -fx-background-radius: 1;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-label {
+ -fx-min-width: 5.75em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-unit {
+ -fx-min-width: 1.5em;
+ -fx-pref-width: 1.5em;
+ -fx-max-width: 1.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .slider {
+ -fx-pref-width: 10em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .color-input-field {
+ -fx-max-width: 4em;
+ -fx-pref-width: 4em;
+ -fx-min-width: 4em;
+ -fx-pref-column-count: 3;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-side {
+ -fx-min-width: 0.5em;
+ -fx-pref-width: 0.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-bottom {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .web-field {
+ -fx-pref-column-count: 6;
+ -fx-pref-width: 8em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .webcolor-field:dir(rtl) > .text-field:dir(ltr) {
+ -fx-alignment: BASELINE_RIGHT;
+}
+.custom-color-dialog > .controls-pane > #buttons-hbox {
+ -fx-spacing: 10px;
+ -fx-padding: 1em 0 0 0;
+ -fx-alignment: BOTTOM_RIGHT;
+}
+.custom-color-dialog > .controls-pane .transparent-pattern {
+ -fx-background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCOTBEQkE1RjJFMjA2ODExOUExMUM5NDhFOTUyQzM3MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRkE3MDZERThFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRkE3MDZERDhFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk4MDExNzQwNzIwNjgxMTg3MUZDMUExNDFCMTYwNzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjkwREJBNUYyRTIwNjgxMTlBMTFDOTQ4RTk1MkMzNzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz71FDCdAAAAKElEQVR42mI8c+YMAwwYGxvD2UwMOADpEoz///+Hc86ePUsLOwACDABC1ghwV8TLOQAAAABJRU5ErkJggg==");
+ -fx-background-repeat: repeat;
+ -fx-background-size: auto;
+}
+
+.combo-box-base {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+}
+.combo-box-base:disabled {
+ -fx-opacity: 0.6;
+}
+.combo-box-base:success, .combo-box-base:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.combo-box-base:danger, .combo-box-base:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.combo-box-base:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.combo-box-base.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.combo-box-base.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.combo-box-base.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.combo-box-base.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.combo-box-base > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.combo-box-base > .text-field {
+ -fx-background-insets: 0, 1 0 1 1;
+ -fx-background-radius: 1 0 0 1;
+}
+.combo-box-base:success > .arrow-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.combo-box-base:danger > .arrow-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.combo-box-base.alt-icon > .arrow-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.combo-box > .list-cell {
+ -fx-background-color: transparent;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box:success > .list-cell {
+ -fx-text-fill: -color-success-fg;
+}
+.combo-box:danger > .list-cell {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.combo-box-popup > .list-view {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+ -fx-cell-size: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover {
+ -fx-background-color: -color-base-1;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected, .combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+ -fx-background-color: -color-base-2;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.choice-box {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.choice-box:disabled {
+ -fx-opacity: 0.6;
+}
+.choice-box:success, .choice-box:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.choice-box:danger, .choice-box:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.choice-box:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.choice-box.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.choice-box.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.choice-box.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.choice-box.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.choice-box > .open-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.choice-box:success > .label {
+ -fx-text-fill: -color-success-fg;
+}
+.choice-box:success > .open-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.choice-box:danger > .label {
+ -fx-text-fill: -color-danger-fg;
+}
+.choice-box:danger > .open-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.choice-box.alt-icon > .open-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.custom-text-field:left-node-visible {
+ -fx-padding: 8px 12px 8px 0;
+}
+.custom-text-field:left-node-visible .left-pane {
+ -fx-padding: 0 4px 0 6px;
+}
+.custom-text-field:right-node-visible {
+ -fx-padding: 8px 0 8px 12px;
+}
+.custom-text-field:right-node-visible .right-pane {
+ -fx-padding: 0 6px 0 4px;
+}
+.custom-text-field:left-node-visible:right-node-visible {
+ -fx-padding: 8px 0 8px 0;
+}
+.custom-text-field:success .font-icon, .custom-text-field:success .ikonli-font-icon {
+ -fx-icon-color: -color-success-fg;
+ -fx-fill: -color-success-fg;
+}
+.custom-text-field:danger .font-icon, .custom-text-field:danger .ikonli-font-icon {
+ -fx-icon-color: -color-danger-fg;
+ -fx-fill: -color-danger-fg;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected {
+ -color-cell-fg: -color-cell-fg-selected;
+ -fx-background-color: -color-cell-border, -color-cell-bg-selected;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background-color: -color-cell-bg-selected;
+ -fx-background-insets: 0 0 2 0;
+}
+
+.cell .text-input {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.cell .check-box {
+ -fx-padding: 0 6px 0 0;
+}
+.cell .choice-box {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 12px 0 0;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+}
+.cell .combo-box {
+ -fx-background-color: transparent;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+ -fx-background-radius: 0;
+}
+.cell .combo-box .cell.list-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+}
+
+.list-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.list-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.6;
+}
+.list-view > .virtual-flow:disabled {
+ -fx-opacity: 0.6;
+}
+.list-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.list-view .list-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-cell-size: 2.8em;
+ -fx-border-width: 0 0 1 0;
+ -fx-border-color: transparent;
+}
+.list-view.bordered .list-cell {
+ -fx-border-color: -color-cell-border;
+}
+.list-view.dense .list-cell {
+ -fx-cell-size: 2em;
+}
+.list-view.striped .list-cell {
+ -fx-border-width: 0;
+}
+.list-view.striped .list-cell:odd {
+ -fx-background-color: -color-cell-bg-odd;
+}
+
+.table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.6;
+}
+.table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.6;
+}
+.table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.table-view.bordered .table-row-cell > .table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.table-view.bordered .table-row-cell > .table-cell:empty {
+ -fx-border-color: transparent;
+}
+.table-view.dense .table-row-cell {
+ -fx-cell-size: 2em;
+}
+.table-view.striped .table-row-cell {
+ -fx-background-insets: 0;
+}
+.table-view.striped.bordered .table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view.striped .table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.table-view .table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+}
+.table-view .table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.table-view .table-row-cell:empty > .table-cell {
+ -fx-border-color: transparent;
+}
+.table-view .table-row-cell > .table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+ -fx-border-color: transparent;
+}
+
+.table-view .table-row-cell > .table-cell.check-box-table-cell,
+.table-view .table-row-cell > .table-cell.font-icon-table-cell,
+.tree-table-view .tree-table-row-cell > .tree-table-cell.check-box-tree-table-cell {
+ -fx-alignment: CENTER_LEFT;
+}
+
+.tree-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.tree-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.6;
+}
+.tree-view > .virtual-flow:disabled {
+ -fx-opacity: 0.6;
+}
+.tree-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-view.dense .tree-cell {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.tree-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0.5em 0 0.5em 0;
+ -fx-indent: 1em;
+}
+.tree-cell > .tree-disclosure-node {
+ -fx-padding: 5px 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-cell-fg;
+ -fx-padding: 0.333333em 0.229em 0.333333em 0.229em;
+}
+
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+
+.tree-table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.tree-table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.6;
+}
+.tree-table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.6;
+}
+.tree-table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.tree-table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.tree-table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.tree-table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.tree-table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.tree-table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.tree-table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.tree-table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.tree-table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell:empty {
+ -fx-border-color: transparent;
+}
+.tree-table-view.dense .tree-table-row-cell {
+ -fx-cell-size: 2em;
+}
+.tree-table-view.dense .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 0.6em 0.5em 0 0.5em;
+}
+.tree-table-view.striped .tree-table-row-cell {
+ -fx-background-insets: 0;
+}
+.tree-table-view.striped.bordered .tree-table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view.striped .tree-table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.tree-table-view .tree-table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+ -fx-indent: 1em;
+}
+.tree-table-view .tree-table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.tree-table-view .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 1em 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.combo-box-base.date-picker > .arrow-button {
+ -fx-cursor: hand;
+}
+.combo-box-base.date-picker > .arrow-button > .arrow {
+ -fx-shape: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V10h16v11zm0-13H4V5h16v3z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 0.416667em;
+}
+
+.date-picker-popup {
+ -color-date-bg: -color-bg-default;
+ -color-date-border: -color-border-default;
+ -color-date-month-year-bg: -color-bg-default;
+ -color-date-month-year-fg: -color-fg-default;
+ -color-date-day-bg: -color-bg-default;
+ -color-date-day-bg-hover: -color-bg-subtle;
+ -color-date-day-bg-selected: -color-accent-emphasis;
+ -color-date-day-fg: -color-fg-default;
+ -color-date-day-fg-hover: -color-fg-default;
+ -color-date-day-fg-selected: -color-fg-emphasis;
+ -color-date-week-bg: -color-bg-default;
+ -color-date-week-fg: -color-accent-fg;
+ -color-date-today-bg: -color-accent-subtle;
+ -color-date-today-fg: -color-accent-fg;
+ -color-date-other-month-fg: -color-fg-muted;
+ -color-date-chrono-fg: -color-success-fg;
+ -fx-background-color: -color-date-border, -color-date-bg;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+ -fx-spacing: 0;
+ -fx-padding: 1px;
+}
+.date-picker-popup > .month-year-pane {
+ -fx-padding: 8px 8px 8px 8px;
+ -fx-background-color: -color-date-month-year-bg;
+ -fx-background-insets: 0;
+}
+.date-picker-popup > .month-year-pane > .spinner {
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER;
+ -fx-fill-height: false;
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-font-size: 1.1em;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+ -fx-alignment: BASELINE_CENTER;
+ -fx-padding: 0.5em 0 0 0;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .calendar-grid {
+ -fx-background-color: -color-date-bg;
+ -fx-padding: 8px;
+}
+.date-picker-popup > .calendar-grid > .date-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_CENTER;
+ -fx-opacity: 1;
+ -fx-text-fill: -color-date-day-fg;
+}
+.date-picker-popup > .calendar-grid > .week-number-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-week-bg;
+ -fx-text-fill: -color-date-week-fg;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .day-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-day-bg;
+}
+.date-picker-popup > .calendar-grid > .day-cell > .secondary-text {
+ -fx-fill: -color-date-chrono-fg;
+}
+.date-picker-popup > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 0.6;
+}
+.date-picker-popup > .calendar-grid .day-name-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .hijrah-day-cell {
+ -fx-alignment: TOP_LEFT;
+ -fx-padding: 0.083333em 4px 0.083333em 0.333333em;
+ -fx-cell-size: 2.75em;
+}
+.date-picker-popup > .calendar-grid > .today {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+ -fx-font-weight: bold;
+}
+
+.inline-date-picker {
+ -fx-effect: none;
+}
+.inline-date-picker > .top-node,
+.inline-date-picker > .bottom-node {
+ -fx-padding: 8px 16px 8px 16px;
+}
+.inline-date-picker > .month-year-pane {
+ -fx-padding: 8px 16px 8px 16px;
+ -fx-alignment: CENTER_LEFT;
+ -fx-spacing: 6px;
+}
+.inline-date-picker > .month-year-pane > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.inline-date-picker > .month-year-pane > .back-button {
+ -fx-padding: 0 1em 0 0;
+}
+.inline-date-picker > .month-year-pane > .back-button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .forward-button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .label {
+ -fx-text-fill: -color-date-month-year-fg;
+ -fx-font-size: 1.1em;
+}
+.inline-date-picker:disabled > .calendar-grid {
+ -fx-opacity: 0.6;
+}
+.inline-date-picker:disabled > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 1;
+}
+
+.date-picker-popup > .calendar-grid > .selected,
+.date-picker-popup > .calendar-grid > .selected > .secondary-text,
+.date-picker-popup > .calendar-grid > .previous-month.selected,
+.date-picker-popup > .calendar-grid > .previous-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.selected {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+ -fx-font-weight: normal;
+}
+
+.date-picker-popup > .calendar-grid > .day-cell:hover {
+ -fx-background-color: -color-date-day-bg-hover;
+}
+
+.date-picker-popup > .calendar-grid > .today:hover {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+}
+
+.date-picker-popup > .calendar-grid > .selected:hover {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+}
+
+.date-picker-popup > .calendar-grid > .previous-month,
+.date-picker-popup > .calendar-grid > .next-month,
+.date-picker-popup > .calendar-grid > .previous-month.today,
+.date-picker-popup > .calendar-grid > .next-month.today,
+.date-picker-popup > .calendar-grid > .previous-month > .secondary-text,
+.date-picker-popup > .calendar-grid > .next-month > .secondary-text {
+ -fx-text-fill: -color-date-other-month-fg;
+ -fx-fill: -color-date-other-month-fg;
+ -fx-font-weight: normal;
+}
+
+.dialog-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 0;
+ -fx-max-width: 600px;
+}
+.dialog-pane > .expandable-content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container {
+ -fx-padding: 2em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container > .details-button {
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_LEFT;
+ -fx-focus-traversable: false;
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane > .button-bar > .container > .details-button:hover {
+ -fx-underline: true;
+}
+.dialog-pane > .content {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane > .content.label {
+ -fx-alignment: TOP_LEFT;
+}
+.dialog-pane:header > .header-panel {
+ -fx-padding: 1em 1em 1em 1em;
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.dialog-pane:header > .header-panel > .label {
+ -fx-wrap-text: true;
+}
+.dialog-pane:header > .header-panel > .graphic-container {
+ -fx-padding: 0 0 0 1em;
+}
+.dialog-pane:no-header > .content {
+ -fx-padding: 1em 1em 0 0;
+}
+.dialog-pane:no-header > * > .graphic-container {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane.information > .header-panel {
+ -fx-background-color: -color-accent-fg, -color-bg-subtle;
+}
+.dialog-pane.information > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.warning > .header-panel {
+ -fx-background-color: -color-warning-fg, -color-bg-subtle;
+}
+.dialog-pane.warning > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.error > .header-panel {
+ -fx-background-color: -color-danger-fg, -color-bg-subtle;
+}
+.dialog-pane.error > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+
+.alert.information.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.warning.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.error.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAKQWlDQ1BJQ0MgUHJvZmlsZQAASA2dlndUU9kWh8+9N73QEiIgJfQaegkg0jtIFQRRiUmAUAKGhCZ2RAVGFBEpVmRUwAFHhyJjRRQLg4Ji1wnyEFDGwVFEReXdjGsJ7601896a/cdZ39nnt9fZZ+9917oAUPyCBMJ0WAGANKFYFO7rwVwSE8vE9wIYEAEOWAHA4WZmBEf4RALU/L09mZmoSMaz9u4ugGS72yy/UCZz1v9/kSI3QyQGAApF1TY8fiYX5QKUU7PFGTL/BMr0lSkyhjEyFqEJoqwi48SvbPan5iu7yZiXJuShGlnOGbw0noy7UN6aJeGjjAShXJgl4GejfAdlvVRJmgDl9yjT0/icTAAwFJlfzOcmoWyJMkUUGe6J8gIACJTEObxyDov5OWieAHimZ+SKBIlJYqYR15hp5ejIZvrxs1P5YjErlMNN4Yh4TM/0tAyOMBeAr2+WRQElWW2ZaJHtrRzt7VnW5mj5v9nfHn5T/T3IevtV8Sbsz55BjJ5Z32zsrC+9FgD2JFqbHbO+lVUAtG0GQOXhrE/vIADyBQC03pzzHoZsXpLE4gwnC4vs7GxzAZ9rLivoN/ufgm/Kv4Y595nL7vtWO6YXP4EjSRUzZUXlpqemS0TMzAwOl89k/fcQ/+PAOWnNycMsnJ/AF/GF6FVR6JQJhIlou4U8gViQLmQKhH/V4X8YNicHGX6daxRodV8AfYU5ULhJB8hvPQBDIwMkbj96An3rWxAxCsi+vGitka9zjzJ6/uf6Hwtcim7hTEEiU+b2DI9kciWiLBmj34RswQISkAd0oAo0gS4wAixgDRyAM3AD3iAAhIBIEAOWAy5IAmlABLJBPtgACkEx2AF2g2pwANSBetAEToI2cAZcBFfADXALDIBHQAqGwUswAd6BaQiC8BAVokGqkBakD5lC1hAbWgh5Q0FQOBQDxUOJkBCSQPnQJqgYKoOqoUNQPfQjdBq6CF2D+qAH0CA0Bv0BfYQRmALTYQ3YALaA2bA7HAhHwsvgRHgVnAcXwNvhSrgWPg63whfhG/AALIVfwpMIQMgIA9FGWAgb8URCkFgkAREha5EipAKpRZqQDqQbuY1IkXHkAwaHoWGYGBbGGeOHWYzhYlZh1mJKMNWYY5hWTBfmNmYQM4H5gqVi1bGmWCesP3YJNhGbjS3EVmCPYFuwl7ED2GHsOxwOx8AZ4hxwfrgYXDJuNa4Etw/XjLuA68MN4SbxeLwq3hTvgg/Bc/BifCG+Cn8cfx7fjx/GvyeQCVoEa4IPIZYgJGwkVBAaCOcI/YQRwjRRgahPdCKGEHnEXGIpsY7YQbxJHCZOkxRJhiQXUiQpmbSBVElqIl0mPSa9IZPJOmRHchhZQF5PriSfIF8lD5I/UJQoJhRPShxFQtlOOUq5QHlAeUOlUg2obtRYqpi6nVpPvUR9Sn0vR5Mzl/OX48mtk6uRa5Xrl3slT5TXl3eXXy6fJ18hf0r+pvy4AlHBQMFTgaOwVqFG4bTCPYVJRZqilWKIYppiiWKD4jXFUSW8koGStxJPqUDpsNIlpSEaQtOledK4tE20Otpl2jAdRzek+9OT6cX0H+i99AllJWVb5SjlHOUa5bPKUgbCMGD4M1IZpYyTjLuMj/M05rnP48/bNq9pXv+8KZX5Km4qfJUilWaVAZWPqkxVb9UU1Z2qbapP1DBqJmphatlq+9Uuq43Pp893ns+dXzT/5PyH6rC6iXq4+mr1w+o96pMamhq+GhkaVRqXNMY1GZpumsma5ZrnNMe0aFoLtQRa5VrntV4wlZnuzFRmJbOLOaGtru2nLdE+pN2rPa1jqLNYZ6NOs84TXZIuWzdBt1y3U3dCT0svWC9fr1HvoT5Rn62fpL9Hv1t/ysDQINpgi0GbwaihiqG/YZ5ho+FjI6qRq9Eqo1qjO8Y4Y7ZxivE+41smsImdSZJJjclNU9jU3lRgus+0zwxr5mgmNKs1u8eisNxZWaxG1qA5wzzIfKN5m/krCz2LWIudFt0WXyztLFMt6ywfWSlZBVhttOqw+sPaxJprXWN9x4Zq42Ozzqbd5rWtqS3fdr/tfTuaXbDdFrtOu8/2DvYi+yb7MQc9h3iHvQ732HR2KLuEfdUR6+jhuM7xjOMHJ3snsdNJp9+dWc4pzg3OowsMF/AX1C0YctFx4bgccpEuZC6MX3hwodRV25XjWuv6zE3Xjed2xG3E3dg92f24+ysPSw+RR4vHlKeT5xrPC16Il69XkVevt5L3Yu9q76c+Oj6JPo0+E752vqt9L/hh/QL9dvrd89fw5/rX+08EOASsCegKpARGBFYHPgsyCRIFdQTDwQHBu4IfL9JfJFzUFgJC/EN2hTwJNQxdFfpzGC4sNKwm7Hm4VXh+eHcELWJFREPEu0iPyNLIR4uNFksWd0bJR8VF1UdNRXtFl0VLl1gsWbPkRoxajCCmPRYfGxV7JHZyqffS3UuH4+ziCuPuLjNclrPs2nK15anLz66QX8FZcSoeGx8d3xD/iRPCqeVMrvRfuXflBNeTu4f7kufGK+eN8V34ZfyRBJeEsoTRRJfEXYljSa5JFUnjAk9BteB1sl/ygeSplJCUoykzqdGpzWmEtPi000IlYYqwK10zPSe9L8M0ozBDuspp1e5VE6JA0ZFMKHNZZruYjv5M9UiMJJslg1kLs2qy3mdHZZ/KUcwR5vTkmuRuyx3J88n7fjVmNXd1Z752/ob8wTXuaw6thdauXNu5Tnddwbrh9b7rj20gbUjZ8MtGy41lG99uit7UUaBRsL5gaLPv5sZCuUJR4b0tzlsObMVsFWzt3WazrWrblyJe0fViy+KK4k8l3JLr31l9V/ndzPaE7b2l9qX7d+B2CHfc3em681iZYlle2dCu4F2t5czyovK3u1fsvlZhW3FgD2mPZI+0MqiyvUqvakfVp+qk6oEaj5rmvep7t+2d2sfb17/fbX/TAY0DxQc+HhQcvH/I91BrrUFtxWHc4azDz+ui6rq/Z39ff0TtSPGRz0eFR6XHwo911TvU1zeoN5Q2wo2SxrHjccdv/eD1Q3sTq+lQM6O5+AQ4ITnx4sf4H++eDDzZeYp9qukn/Z/2ttBailqh1tzWibakNml7THvf6YDTnR3OHS0/m/989Iz2mZqzymdLz5HOFZybOZ93fvJCxoXxi4kXhzpXdD66tOTSna6wrt7LgZevXvG5cqnbvfv8VZerZ645XTt9nX297Yb9jdYeu56WX+x+aem172296XCz/ZbjrY6+BX3n+l37L972un3ljv+dGwOLBvruLr57/17cPel93v3RB6kPXj/Mejj9aP1j7OOiJwpPKp6qP6391fjXZqm99Oyg12DPs4hnj4a4Qy//lfmvT8MFz6nPK0a0RupHrUfPjPmM3Xqx9MXwy4yX0+OFvyn+tveV0auffnf7vWdiycTwa9HrmT9K3qi+OfrW9m3nZOjk03dp76anit6rvj/2gf2h+2P0x5Hp7E/4T5WfjT93fAn88ngmbWbm3/eE8/syOll+AAAJdklEQVRoBe1ZTWxcVxU+82eb1IkTe+zEonX6Q4tiHFAhLCAr8rOMhAQSEotC3EYsg9ggpXFiO1WR2HWTBUkdxAIJCSSkrKB2UCIhAbVkW7GiqEnbxE4Jtmec2Pnx2OOZ6fedc++b917GY1st0EXuaN6999xzz/m+c8+97808kaflaQQ+UwQS9WZfu3atp1QqHYPOkUQi0Yl2E+p6Uz6XsWQyWahUKndh7GIqlTrX3d09uZbhmmgwOTM5OfkOJvV2dHSkt23blmpoaBAYXsvO5yovl8uysrIii4uLpbm5uVXgGerp6TmO4BXjjp4gQPBXr14d2bJly7e7urqaMplMfM7/tF8sFmVqaqrw+PHj9/fu3XuwFokIIIA/e/PmzSUQ+UIVYpqYmDgbAYtOZAWY82A8umfPnsZw5BeuTcqdP/9JHnx4Q5bn5+M2gr7uj0pFbJ9UTSMSkImgUo/sr1UaW1tl60svy7Pf/4G0dPcEalyJ69evL6fT6X3hPZEONNCA0rGdO3emw+Cn/vgHufX738H52k6TwcZOSIL7xKl60MmkkakoCT9IQk/aZICW5/8p+dF/yfM/fk26fvgjhUhM3I8zMzM8VI573PFdeaSlpSXlBxn5euAZaYLnJ5lIapt9AvbyFAiZBq9iepCZvo15f+Ga5OibGHzhYYL2Ed9nHSGASZ08bXxh2tSKkk4MAScRT0JrmCVwglSS2k5IypMkYZ1BQpiBb61C38TgS2NjI5udvs86kkI4vprCRyVzPl7oKkFgWptzgvZ921bIeX7CuNAhIMoqrg2KyLaKkqlIWTMvHrAwBmLjvSiMKUIgPjm+YX2kLOKWDjRmYAmY6KpydUSRy3WOKwkMlDkPqcYzXydpCNiK7os4Bm9LbeMSIeCF9WpNCyj4WlcDwBjsMEHaMCkAOeCEpiQAkqlTAXjaIeiyUrI5cZC0tVbZMAECtLx1YAkPQgJh0RrHDLskpYWRd+MGjVKApRitsh+DHolwNWid4rJbNbUTusTJxTdxSLXaZNTCkfYbj85avv4NaWrvUMd2+tj+oA5zlsD4tU2t8LTf+p3vSvqZZxxgg0E/PiB+Nasoarc2RABBgyOLoRkmEJHtr35TvvLLE/LK6UFpyLYrMI540KTCtsF2cpDKHj4sL/z8F/LVvn7JKImwbWvXhlvdT348QsALw7VFHxC4rigG0PqNbe2SSKelsaNDXukfcCQ8aNsnuhK6Cpwp0nbosDz3+jG1l966VVJbvqRtXVVPlb64YTZQ1iWgp4ZhD0jQLuHkLw3L9PlzerI0II1eOnVKWJOsrgKiTT2e/6wJ/su9r+v48uys3BgYkGJuXsc8Vh8oJeSC5sdq1esS0LhpCqEFg+EvDc6PDMsn754PSLzQ14eVyBoBQNMUQgBaDx2Szt5enb8C8B8NDshqPoc+ghHYZWBYVKit+GXTm1gjol5gKnwyoO0dz4+MyL+H3nUk2uX5kycl05bVyJLAjoOHZNfRowH4j88MSjGf1/HgxFLYDj4rptAG0iiyAnF2MGHFG2OkIOFVibHH1YH83sgl+c+FC0oi094uXSdP6EpsP3hAOn76kwD8rbfeklU8sFlgaJ53bbMJobeuTe1SpU7ZwH3AIk0bNO8LOak7enGrcQ8rQdlORJsknkOkk804KqFTnJ2T6bffRtrkLbJuNRkMe4jARLWDewBuFDZMa9FlsDs3xK7UXQEfZRpjW426sNha0IpzAF/UuX/pbzJ74bfQrUhqa7OBB2iCL+aQNpzvdD2IoFYfPjUDad1GhEBc01KKBm1EawDjR4FrG00OQBSkoJ8QN8hZnONtcA4+QTAgpy0brzG5hqguAdO3yNPoE7d370wBKQfZfuB7Qc6XHjxQMJm2Nnn2zROSamuNQmBgHAkOoGlF5UbUi3xNHOESIRDPLypqtP0K+L46xViFT5Kmw/YObFjmP9OER+Wtk30y4zZ2A/bEbpxOKZDRCNOGRtxqD0xrYuQqOr/qZI1LhEAtHXNmrL0TGlY5JtiIyA6e80er5zxPm5VcDveJEbk7NKT6JMH7RKY96+a7KNOeOvdXJ/fGQ8ACDE4WIRAfpI5uOl0HWAunjFtKztlx4GBwh2XkPz5zBud8Diln50v8PvFi36kgnTQQPHX0Y4HxeCmLlzjGCIG4Mvt+AmvuAZpUZ4gaAeqzzRv2bMPHgw8H+xH5OX00JnwjUZH88LDcCd2xXz49IOlWpBPtaaqg5e2zxrdWsYBWR9YlQFUFrgbNqO+3vPot6QrAz8iN/tOyjLRR4ASP53sS8N/88Htyxz072QPgoGSy3BOYAdMWIA/c11WwbMWJbYiATnR5TzDaB8D7E2OyMD4my7Mz8kH/KVnJz0FqwOlIP6y1bQBnh/8qU+d/o7Li4oIUHz2CHleVtF3L6aujdS6RO3GtU8jPVxDYA1xtkuAP8vJqUT749a8kg8fi1Xv39TcuBnXfJBwI6msseXGpMvveX2RlcVEWJsZldemRrpTRhW23H7zfeB1fgQiBuHK8b9HnLyzc/kkCD2rl4oqs3HPPNooUs1AznqSr+e3kGgRtV2T+H3/XtDHgpmAr5ZTjzl3/MxGgDSNBaACnHwtswgHjJuMIi4JHRP3pZavHMUsW6nDVqcd9wD2w2bKpFfDGvZsSnBJwkgJND9RoE56eFkwjjjlgCpQKKuIJ5UKgc1S86UtkE8eXh3+01irU40poHF27pCdORUiKENnn1yDaNX4q6XxoqC1HMu4vjiGOMUIAkwvhjcx/iesVGjPAIZiaClXgjLIno1Il7PRdu56PMAZiw8oWwvoRAvgb5O7S0lIwzr+4NRUCSe0GQTKK5XJJI05SfkX8Svkoq56SNBK1LZqUvonBF2KDjK+eghIhgIhezOVyJT/K/+f5F/dGSHAOU0fzGoSCj4K1FTEy3nr9mj7pO/yOIJ/Pl4gxPDOyifFC7fz09PTPdu3alXL/BOv/8y3dX9vQC46wYbbj+Rofr9Vf6wXH8vKy3L59e5Uv/WrNC2RXrlw5Oz4+/oV7xURMxBYAdY1IClGGl3vHFxYW3h8bGyuQ9f+7EAOxEBOxxfH40zsiHx0dzTx8+PAd5GHv7t2709lsNtXU1CRYvojef6uDdwBSKBSE+5Fpg1Qcam5uPr5v3771X7OGQV2+fHkvJr8BIkdQd+IYC14ucJMxx1nXKn6M9WYLTsMC7N7F3It4N3Zu//791fdMmzX2VP9pBOpH4FN/okTWoDWjjQAAAABJRU5ErkJggg==");
+}
+
+.alert.confirmation.dialog-pane,
+.text-input-dialog.dialog-pane,
+.choice-dialog.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.html-editor {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 2px;
+}
+.html-editor:contains-focus {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.html-editor .tool-bar {
+ -fx-padding: 4px;
+}
+.html-editor .button,
+.html-editor .toggle-button {
+ -fx-background-insets: 0;
+}
+.html-editor .toggle-button {
+ -color-button-bg-selected: -color-base-1;
+ -color-button-border-focused: transparent;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-background {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect, .color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: none;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Text-Color.png");
+}
+
+.color-picker.html-editor-background {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Background-Color.png");
+}
+
+.html-editor-cut {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Cut.png");
+}
+
+.html-editor-copy {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Copy.png");
+}
+
+.html-editor-paste {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Paste.png");
+}
+
+.html-editor-align-left {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Left.png");
+}
+
+.html-editor-align-center {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Center.png");
+}
+
+.html-editor-align-right {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Right.png");
+}
+
+.html-editor-align-justify {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Justify.png");
+}
+
+.html-editor-outdent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent.png");
+}
+
+.html-editor-outdent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent-rtl.png");
+}
+
+.html-editor-indent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent.png");
+}
+
+.html-editor-indent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent-rtl.png");
+}
+
+.html-editor-bullets {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets.png");
+}
+
+.html-editor-bullets:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets-rtl.png");
+}
+
+.html-editor-numbers {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered.png");
+}
+
+.html-editor-numbers:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered-rtl.png");
+}
+
+.html-editor-bold {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bold.png");
+}
+
+.html-editor-italic {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Italic.png");
+}
+
+.html-editor-underline {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Underline.png");
+}
+
+.html-editor-strike {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Strikethrough.png");
+}
+
+.html-editor-hr {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Break.png");
+}
+
+.hyperlink {
+ -color-link-fg: -color-accent-fg;
+ -color-link-fg-visited: -color-fg-default;
+ -color-link-fg-armed: -color-fg-default;
+ -fx-cursor: hand;
+ -fx-underline: true;
+ -fx-text-fill: -color-link-fg;
+}
+.hyperlink:visited {
+ -fx-text-fill: -color-link-fg-visited;
+}
+.hyperlink:armed {
+ -fx-text-fill: -color-link-fg-armed;
+ -fx-underline: false;
+}
+.hyperlink:disabled {
+ -fx-opacity: 0.6;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+.label {
+ -fx-text-fill: -color-fg-default;
+}
+.label:disabled {
+ -fx-opacity: 0.6;
+}
+.label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0 0 0 0, 0 0 1 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0 0 1px 0;
+ -fx-background-radius: 0;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-bar > .container > .menu-button > .label {
+ -fx-padding: 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-bar > .container > .menu-button > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+ -fx-padding: 0;
+ -fx-background-color: transparent;
+}
+.menu-bar > .container > .menu-button:hover, .menu-bar > .container > .menu-button:focused, .menu-bar > .container > .menu-button:showing {
+ -fx-background-color: -color-base-1, -color-base-1;
+}
+
+.menu {
+ -fx-background-color: transparent;
+}
+.menu > .right-container > .arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+
+.menu-up-arrow {
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-down-arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-item {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0 6px 0 0;
+}
+.menu-item > .label {
+ -fx-padding: 0 1em 0 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-item > .left-container {
+ -fx-padding: 0 1em 0 0;
+}
+.menu-item > .right-container {
+ -fx-padding: 0 0 0 0.5em;
+}
+.menu-item:focused {
+ -fx-background-color: -color-base-1, -color-base-1;
+}
+.menu-item:disabled {
+ -fx-opacity: 0.6;
+ -fx-background-color: -color-bg-default;
+}
+
+.radio-menu-item:checked > .left-container > .radio,
+.check-menu-item:checked > .left-container > .check {
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-min-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-max-width: 0.75em;
+}
+
+.caption-menu-item {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.caption-menu-item:hover, .caption-menu-item:focused, .caption-menu-item:pressed {
+ -fx-background-color: transparent;
+}
+.caption-menu-item > .label > .text {
+ -fx-font-weight: bold;
+}
+
+.context-menu {
+ -fx-background-color: -color-border-muted, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 2px 2px 2px 2px;
+ -fx-background-radius: 1;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
+.context-menu > .scroll-arrow {
+ -fx-padding: 0.5em;
+ -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+ -fx-background-color: -color-base-1;
+ -fx-text-fill: -color-fg-default;
+}
+.context-menu .separator:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.context-menu .separator:horizontal .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0.5em 0 0.5em;
+}
+
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item > .label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-button,
+.split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 0;
+ -fx-alignment: CENTER_LEFT;
+}
+.menu-button .font-icon, .menu-button .ikonli-font-icon,
+.split-menu-button .font-icon,
+.split-menu-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.menu-button:disabled,
+.split-menu-button:disabled {
+ -fx-opacity: 0.6;
+}
+.menu-button:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 8px;
+}
+.menu-button.button-icon > .text,
+.split-menu-button.button-icon > .text {
+ visibility: hidden;
+}
+.menu-button.button-circle,
+.split-menu-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.menu-button.button-circle .text,
+.split-menu-button.button-circle .text {
+ visibility: hidden;
+}
+.menu-button.left-pill,
+.split-menu-button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.menu-button.left-pill:hover, .menu-button.left-pill:focused,
+.split-menu-button.left-pill:hover,
+.split-menu-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.center-pill,
+.split-menu-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.menu-button.center-pill:hover, .menu-button.center-pill:focused,
+.split-menu-button.center-pill:hover,
+.split-menu-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.right-pill,
+.split-menu-button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.menu-button.right-pill:hover, .menu-button.right-pill:focused,
+.split-menu-button.right-pill:hover,
+.split-menu-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button > .label,
+.split-menu-button > .label {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-text-fill: -color-button-fg;
+}
+.menu-button > .arrow-button,
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 0;
+}
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-button-fg;
+ -fx-min-width: 0.5em;
+}
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.menu-button:show-mnemonics > .label > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .label > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 0;
+}
+.menu-button:hover,
+.split-menu-button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-opacity: 0.9;
+}
+.menu-button:hover > .label,
+.split-menu-button:hover > .label {
+ -fx-text-fill: -color-button-fg-hover;
+}
+.menu-button:hover > .arrow-button > .arrow,
+.split-menu-button:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-hover;
+}
+.menu-button:hover .font-icon, .menu-button:hover .ikonli-font-icon,
+.split-menu-button:hover .font-icon,
+.split-menu-button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.menu-button:focused,
+.split-menu-button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+}
+.menu-button:focused > .label,
+.split-menu-button:focused > .label {
+ -fx-text-fill: -color-button-fg-focused;
+}
+.menu-button:focused > .arrow-button > .arrow,
+.split-menu-button:focused > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-focused;
+}
+.menu-button:focused .font-icon, .menu-button:focused .ikonli-font-icon,
+.split-menu-button:focused .font-icon,
+.split-menu-button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.menu-button:armed, .menu-button:focused:armed,
+.split-menu-button:armed,
+.split-menu-button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .label, .menu-button:focused:armed > .label,
+.split-menu-button:armed > .label,
+.split-menu-button:focused:armed > .label {
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .arrow-button > .arrow, .menu-button:focused:armed > .arrow-button > .arrow,
+.split-menu-button:armed > .arrow-button > .arrow,
+.split-menu-button:focused:armed > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-pressed;
+}
+.menu-button:armed .font-icon, .menu-button:armed .ikonli-font-icon, .menu-button:focused:armed .font-icon, .menu-button:focused:armed .ikonli-font-icon,
+.split-menu-button:armed .font-icon,
+.split-menu-button:armed .ikonli-font-icon,
+.split-menu-button:focused:armed .font-icon,
+.split-menu-button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.menu-button.accent,
+.split-menu-button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.accent.button-outlined,
+.split-menu-button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.accent.flat,
+.split-menu-button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.menu-button.success,
+.split-menu-button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-5;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.success.button-outlined,
+.split-menu-button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.success.flat,
+.split-menu-button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.menu-button.danger,
+.split-menu-button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.danger.button-outlined,
+.split-menu-button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.danger.flat,
+.split-menu-button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.menu-button.flat,
+.split-menu-button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+
+.menu-button.no-arrow > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-button.no-arrow > .arrow-button > .arrow {
+ -fx-shape: none;
+ -fx-scale-shape: false;
+ -fx-min-width: -1;
+}
+
+.split-menu-button > .label {
+ -fx-padding: 8px 6px 8px 12px;
+}
+.split-menu-button:hover > .arrow-button, .split-menu-button:focused:hover > .arrow-button {
+ -fx-background-color: -color-neutral-emphasis-plus;
+ -fx-background-insets: 1px;
+ -fx-background-radius: 1;
+ -fx-border-color: transparent;
+ -fx-opacity: 0.75;
+}
+.split-menu-button:hover > .arrow-button > .arrow, .split-menu-button:focused:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.split-menu-button:default:hover > .arrow-button, .split-menu-button.accent:hover > .arrow-button, .split-menu-button.success:hover > .arrow-button, .split-menu-button.danger:hover > .arrow-button {
+ -fx-background-color: -color-fg-emphasis;
+}
+.split-menu-button:default:hover > .arrow-button > .arrow, .split-menu-button.accent:hover > .arrow-button > .arrow, .split-menu-button.success:hover > .arrow-button > .arrow, .split-menu-button.danger:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-bg-hover;
+}
+.split-menu-button.button-outlined:hover > .arrow-button, .split-menu-button.button-outlined:focused > .arrow-button {
+ -color-button-fg: -color-fg-emphasis;
+}
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-background-radius: 0 1 1 0;
+ -fx-border-color: -color-button-fg;
+ -fx-border-width: 0 0 0 0.75px;
+ -fx-border-insets: 7px 0 7px 0;
+}
+
+.popover {
+ -fx-background-color: -color-bg-overlay;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
+.popover > .border {
+ -fx-stroke: -color-border-default;
+ -fx-stroke-width: 1px;
+}
+.popover > .content {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.popover > .content > .title {
+ -fx-padding: 0 0 1em 0;
+}
+.popover > .content > .title > .text {
+ -fx-text-fill: -color-fg-default;
+ -fx-font-size: 1.25em;
+ -fx-alignment: CENTER_LEFT;
+}
+.popover > .content > .title > .icon > .graphics > .circle {
+ -fx-fill: transparent;
+}
+.popover > .content > .title > .icon > .graphics > .line {
+ -fx-stroke: -color-fg-default;
+ -fx-stroke-width: 1px;
+}
+
+.progress-bar {
+ -color-progress-bar-track: -color-bg-subtle;
+ -color-progress-bar-fill: -color-accent-emphasis;
+ -fx-indeterminate-bar-length: 60;
+ -fx-indeterminate-bar-escape: true;
+ -fx-indeterminate-bar-flip: true;
+ -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .track {
+ -fx-background-color: -color-progress-bar-track;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+}
+.progress-bar > .bar {
+ -fx-background-color: -color-progress-bar-fill;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+ -fx-padding: 0.4em;
+}
+.progress-bar.small > .bar {
+ -fx-padding: 2px;
+}
+.progress-bar.medium > .bar {
+ -fx-padding: 0.4em;
+}
+.progress-bar.large > .bar {
+ -fx-padding: 0.8em;
+}
+.progress-bar:disabled {
+ -fx-opacity: 0.6;
+}
+
+.progress-indicator {
+ -fx-indeterminate-segment-count: 12;
+ -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+}
+.progress-indicator > .determinate-indicator > .progress {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0.6em;
+}
+.progress-indicator > .determinate-indicator > .tick {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-background-insets: 0;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+}
+.progress-indicator > .determinate-indicator > .percentage {
+ -fx-font-size: 0.8em;
+ -fx-fill: -color-fg-default;
+}
+.progress-indicator > .determinate-indicator:disabled {
+ -fx-opacity: 0.6;
+}
+.progress-indicator:indeterminate > .spinner {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-border-color: transparent;
+ -fx-border-width: 0;
+ -fx-border-radius: 0;
+ -fx-padding: 0;
+}
+.progress-indicator:indeterminate .segment {
+ -fx-background-color: -color-accent-emphasis;
+}
+.progress-indicator:indeterminate .segment0 {
+ -fx-shape: "M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+ -fx-shape: "M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+ -fx-shape: "M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+ -fx-shape: "M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+ -fx-shape: "M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+ -fx-shape: "M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+ -fx-shape: "M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+ -fx-shape: "M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+ -fx-shape: "M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+ -fx-shape: "M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+ -fx-shape: "M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+ -fx-shape: "M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+.radio-button {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.radio-button > .radio {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-padding: 3px;
+ -fx-alignment: CENTER;
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent, transparent;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.radio-button:disabled {
+ -fx-opacity: 0.6;
+}
+.radio-button:disabled > .radio {
+ -fx-opacity: 0.6;
+}
+.radio-button:selected > .radio {
+ -fx-background-color: -color-accent-emphasis;
+}
+.radio-button:selected > .radio > .dot {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+}
+.radio-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.scroll-bar {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-bar > .thumb {
+ -fx-background-color: -color-fg-muted;
+ -fx-background-radius: 1;
+}
+.scroll-bar > .track {
+ -fx-background-color: transparent;
+ -fx-border-radius: 0;
+}
+.scroll-bar > .increment-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .increment-button > .increment-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar > .decrement-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .decrement-button > .decrement-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar:horizontal {
+ -fx-pref-height: 8px;
+}
+.scroll-bar:vertical {
+ -fx-pref-width: 8px;
+}
+.scroll-bar:hover, .scroll-bar:pressed, .scroll-bar:focused {
+ -fx-opacity: 1;
+}
+
+.scroll-pane {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.scroll-pane > .viewport {
+ -fx-background-color: transparent;
+}
+.scroll-pane > .corner {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-pane:disabled > .scroll-bar {
+ -fx-opacity: 0.25;
+}
+
+.separator:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator:horizontal > .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0 0 0;
+}
+.separator:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator:vertical > .line {
+ -fx-border-color: transparent transparent transparent -color-border-muted;
+ -fx-border-insets: 0 0 0 1px;
+}
+.separator.small:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.separator.small:vertical {
+ -fx-padding: 0 0.25em 0 0.25em;
+}
+.separator.medium:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator.medium:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator.large:horizontal {
+ -fx-padding: 1.5em 0 1.5em 0;
+}
+.separator.large:vertical {
+ -fx-padding: 0 1.5em 0 1.5em;
+}
+
+.spinner {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default;
+ -fx-border-radius: 1;
+ -fx-border-width: 1px;
+}
+.spinner > .text-field {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+ -fx-padding: 7px 11px 7px 11px;
+}
+.spinner > .increment-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0 1 0 0;
+ -fx-padding: 10px;
+}
+.spinner > .increment-arrow-button:hover {
+ -fx-background-color: -color-base-2;
+}
+.spinner > .increment-arrow-button > .increment-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: false;
+}
+.spinner > .decrement-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: -1 0 0 0;
+ -fx-background-radius: 0 0 1 0;
+ -fx-padding: 10px;
+}
+.spinner > .decrement-arrow-button:hover {
+ -fx-background-color: -color-base-2;
+}
+.spinner > .decrement-arrow-button > .decrement-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.spinner:disabled {
+ -fx-opacity: 0.6;
+}
+.spinner:focused:focused, .spinner:contains-focus:focused {
+ -fx-border-color: -color-accent-emphasis;
+}
+.spinner.arrows-on-left-vertical > .text-field {
+ -fx-background-radius: 0 1 1 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-vertical > .increment-arrow-button {
+ -fx-background-radius: 1 0 0 0;
+}
+.spinner.arrows-on-left-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 0 1;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .text-field {
+ -fx-background-radius: 0 1 1 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0 -1 0 0;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-vertical > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button {
+ -fx-background-radius: 1 1 0 0;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 1 1;
+ -fx-background-insets: 0 0 -1 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.split-pane {
+ -color-split-divider: -color-border-subtle;
+ -color-split-divider-pressed: -color-accent-emphasis;
+ -color-split-grabber: -color-fg-muted;
+ -color-split-grabber-pressed: -color-accent-emphasis;
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.split-pane > .split-pane-divider {
+ -fx-background-color: -color-split-divider;
+ -fx-padding: 0 2px 0 2px;
+ -fx-opacity: 0.5;
+}
+.split-pane > .split-pane-divider > .horizontal-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 10px 2px 10px 2px;
+}
+.split-pane > .split-pane-divider > .vertical-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 2px 10px 2px 10px;
+}
+.split-pane > .split-pane-divider:pressed {
+ -fx-background-color: -color-split-divider-pressed;
+}
+.split-pane > .split-pane-divider:pressed > .horizontal-grabber,
+.split-pane > .split-pane-divider:pressed > .vertical-grabber {
+ -fx-background-color: -color-split-grabber-pressed;
+}
+.split-pane > .split-pane-divider:hover {
+ -fx-opacity: 1;
+}
+.split-pane > .split-pane-divider:disabled {
+ -fx-opacity: 0.25;
+}
+
+.tab-pane > .tab-header-area {
+ -fx-background-insets: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-alignment: CENTER;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: transparent, transparent;
+ -fx-padding: 0.3em 0.6em 0.3em 0.6em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 0.4em 0.4em 0.4em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+ -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+ -fx-scale-shape: false;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label {
+ -fx-fill: -color-fg-default;
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label > *, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled > .tab-container {
+ -fx-opacity: 0.6;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right > .tab-container > .tab-label {
+ -fx-padding: 0.2em 0.4em 0.2em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected {
+ -fx-background-color: -color-border-default, -color-base-1;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:disabled, .tab-pane > .tab-header-area > .headers-region > .tab:right:disabled {
+ -fx-background-color: transparent;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-padding: 1em;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:disabled {
+ -fx-opacity: 0.6;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane.floating > .tab-header-area {
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0;
+ -fx-background-color: transparent;
+ -fx-padding: 0.3em 0 0.3em 3px;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 1;
+ -fx-border-radius: 1;
+ -fx-border-width: 1px, 0 3px 0 0;
+ -fx-border-color: transparent, transparent;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-padding: 0.55em 0.55em 0.55em 0.55em;
+ -fx-min-width: 150px;
+ -fx-pref-width: 150px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab:hover > .tab-container, .tab-pane.floating > .tab-header-area > .headers-region > .tab:selected > .tab-container {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default, transparent;
+}
+
+.text-input {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-fg-default;
+ -color-input-border: -color-border-default;
+ -color-input-bg-focused: -color-bg-default;
+ -color-input-border-focused: -color-accent-emphasis;
+ -color-input-bg-highlight: -color-accent-subtle;
+ -color-input-fg-highlight: -color-fg-default;
+ -fx-background-color: -color-input-border, -color-input-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-text-fill: -color-input-fg;
+ -fx-highlight-fill: -color-input-bg-highlight;
+ -fx-highlight-text-fill: -color-input-fg-highlight;
+ -fx-prompt-text-fill: -color-fg-subtle;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-cursor: text;
+}
+.text-input:focused {
+ -fx-background-color: -color-input-border-focused, -color-input-bg-focused;
+ -fx-prompt-text-fill: transparent;
+}
+.text-input:disabled {
+ -fx-opacity: 0.6;
+}
+.text-input:disabled > .scroll-pane {
+ -fx-opacity: 1;
+}
+.text-input:success {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-success-fg;
+ -color-input-border: -color-success-emphasis;
+ -color-input-border-focused: -color-success-emphasis;
+}
+.text-input:danger {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-danger-fg;
+ -color-input-border: -color-danger-emphasis;
+ -color-input-border-focused: -color-danger-emphasis;
+}
+.text-input.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.text-input.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.text-input.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.text-input.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.text-field.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.text-field.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.text-field.rounded {
+ -fx-background-radius: 10em;
+}
+
+.text-area {
+ -fx-padding: 2px;
+ -fx-cursor: default;
+}
+.text-area .content {
+ -fx-cursor: text;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+.password-field {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.titled-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-effect: none;
+}
+.titled-pane.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+.titled-pane.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+.titled-pane.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+.titled-pane > .title {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-padding: 10px 20px 10px 20px;
+}
+.titled-pane > .title > .text {
+ -fx-font-size: 1.25em;
+}
+.titled-pane > .title > .arrow-button {
+ -fx-background-color: none;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 10px 0 0;
+}
+.titled-pane > .title > .arrow-button > .arrow {
+ -fx-shape: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 4px 5px 4px 5px;
+}
+.titled-pane > .content {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 0 1px 1px 1px;
+ -fx-border-radius: 0 0 1 1;
+ -fx-background-radius: 0 0 1 1;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 20px 20px 10px 20px;
+ -fx-alignment: TOP_LEFT;
+}
+.titled-pane:disabled > .title > *,
+.titled-pane:disabled > .content > * {
+ -fx-opacity: 0.6;
+}
+.titled-pane:expanded > .title {
+ -fx-background-radius: 1 1 0 0;
+ -fx-background-insets: 0, 1px 1px 0 1px;
+}
+.titled-pane:collapsed > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+}
+.titled-pane.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -color-button-bg-selected: -color-accent-emphasis;
+ -color-button-fg-selected: -color-fg-emphasis;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.toggle-button .font-icon, .toggle-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.toggle-button:disabled {
+ -fx-opacity: 0.6;
+}
+.toggle-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.toggle-button.button-icon {
+ -fx-padding: 8px;
+}
+.toggle-button.button-icon > .text {
+ visibility: hidden;
+}
+.toggle-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.toggle-button.button-circle .text {
+ visibility: hidden;
+}
+.toggle-button.left-pill {
+ -fx-background-radius: 1 0 0 1;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.toggle-button.left-pill:hover, .toggle-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.toggle-button.center-pill:hover, .toggle-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.right-pill {
+ -fx-background-radius: 0 1 1 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.toggle-button.right-pill:hover, .toggle-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected, .toggle-button:selected:focused {
+ -fx-background-color: -color-button-bg-selected;
+ -fx-text-fill: -color-button-fg-selected;
+ -fx-background-insets: 0;
+}
+.toggle-button:selected .font-icon, .toggle-button:selected .ikonli-font-icon, .toggle-button:selected:focused .font-icon, .toggle-button:selected:focused .ikonli-font-icon {
+ -fx-fill: -color-button-fg-selected;
+ -fx-icon-color: -color-button-fg-selected;
+}
+.toggle-button:show-mnemonics:selected > .mnemonic-underline {
+ -fx-stroke: -color-button-fg-selected;
+}
+.toggle-button:selected.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.tool-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0, 0 0 1px 0;
+ -fx-padding: 4px 0.3em 4px 0.3em;
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tool-bar > .container > .button,
+.tool-bar > .container > .menu-button,
+.tool-bar > .container > .split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container .toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-bg-selected: -color-base-2;
+ -color-button-fg-selected: -color-fg-default;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container > .separator {
+ -fx-orientation: vertical;
+}
+.tool-bar > .tool-bar-overflow-button {
+ -fx-padding: 0 0.3em 0 4px;
+}
+.tool-bar > .tool-bar-overflow-button > .arrow {
+ -fx-shape: "M5.06 5 4 6.06 7.94 10 4 13.94 5.06 15l5-5z M11 5 9.94 6.06 13.88 10l-3.94 3.94L11 15l5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tool-bar:vertical {
+ -fx-background-insets: 0, 0 1px 0 0;
+ -fx-padding: 0.3em 4px 0.3em 4px;
+ -fx-alignment: TOP_LEFT;
+}
+.tool-bar:vertical > .container > .separator {
+ -fx-orientation: horizontal;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+ -fx-padding: 4px 0 0.3em 0;
+}
+.tool-bar:vertical.right {
+ -fx-background-insets: 0, 0 0 0 1px;
+}
+.tool-bar.bottom {
+ -fx-background-insets: 0, 1px 0 0 0;
+}
+
+.tooltip {
+ -fx-background-color: -color-border-default, -color-bg-overlay;
+ -fx-background-insets: 0, 1px;
+ -fx-text-fill: -color-fg-default;
+ -fx-background-radius: 1;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-opacity: 0.85;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
diff --git a/src/Resources/css/pamDefaultDialogCSS.css b/src/Resources/css/pamDefaultDialogCSS.css
index bc43fa64..a237c4c9 100644
--- a/src/Resources/css/pamDefaultDialogCSS.css
+++ b/src/Resources/css/pamDefaultDialogCSS.css
@@ -561,3 +561,15 @@
-fx-icon-color: black;
}
+
+/********************************************
+* *
+* Spinner *
+* *
+*********************************************/
+
+
+.spinner {
+ -fx-pref-width: 100px;
+}
+
diff --git a/src/Resources/css/pamSettingsCSS.css b/src/Resources/css/pamSettingsCSS.css
index d635ea5b..66d99081 100644
--- a/src/Resources/css/pamSettingsCSS.css
+++ b/src/Resources/css/pamSettingsCSS.css
@@ -977,4 +977,13 @@
-fx-icon-color: black;
}
+/********************************************
+* *
+* Spinner *
+* *
+*********************************************/
+
+.spinner {
+ -fx-pref-width: 100px;
+}
diff --git a/src/Resources/css/primer-dark.css b/src/Resources/css/primer-dark.css
new file mode 100644
index 00000000..ca9a4708
--- /dev/null
+++ b/src/Resources/css/primer-dark.css
@@ -0,0 +1,3706 @@
+.root {
+ -color-dark: #010409;
+ -color-light: #ffffff;
+ -color-base-0: #f0f6fc;
+ -color-base-1: #c9d1d9;
+ -color-base-2: #b1bac4;
+ -color-base-3: #8b949e;
+ -color-base-4: #6e7681;
+ -color-base-5: #484f58;
+ -color-base-6: #30363d;
+ -color-base-7: #21262d;
+ -color-base-8: #161b22;
+ -color-base-9: #0d1117;
+ -color-accent-0: #cae8ff;
+ -color-accent-1: #a5d6ff;
+ -color-accent-2: #79c0ff;
+ -color-accent-3: #58a6ff;
+ -color-accent-4: #388bfd;
+ -color-accent-5: #1f6feb;
+ -color-accent-6: #1158c7;
+ -color-accent-7: #0d419d;
+ -color-accent-8: #0c2d6b;
+ -color-accent-9: #051d4d;
+ -color-success-0: #aff5b4;
+ -color-success-1: #7ee787;
+ -color-success-2: #56d364;
+ -color-success-3: #3fb950;
+ -color-success-4: #2ea043;
+ -color-success-5: #238636;
+ -color-success-6: #196c2e;
+ -color-success-7: #0f5323;
+ -color-success-8: #033a16;
+ -color-success-9: #04260f;
+ -color-warning-0: #f8e3a1;
+ -color-warning-1: #f2cc60;
+ -color-warning-2: #e3b341;
+ -color-warning-3: #d29922;
+ -color-warning-4: #bb8009;
+ -color-warning-5: #9e6a03;
+ -color-warning-6: #845306;
+ -color-warning-7: #693e00;
+ -color-warning-8: #4b2900;
+ -color-warning-9: #341a00;
+ -color-danger-0: #ffdcd7;
+ -color-danger-1: #ffc1ba;
+ -color-danger-2: #ffa198;
+ -color-danger-3: #ff7b72;
+ -color-danger-4: #f85149;
+ -color-danger-5: #da3633;
+ -color-danger-6: #b62324;
+ -color-danger-7: #8e1519;
+ -color-danger-8: #67060c;
+ -color-danger-9: #490202;
+ -color-fg-default: #c9d1d9;
+ -color-fg-muted: #8b949e;
+ -color-fg-subtle: #6e7681;
+ -color-fg-emphasis: #ffffff;
+ -color-bg-default: #0d1117;
+ -color-bg-overlay: #0d1117;
+ -color-bg-subtle: #161b22;
+ -color-bg-inset: #010409;
+ -color-border-default: #30363d;
+ -color-border-muted: #21262d;
+ -color-border-subtle: rgba(240, 246, 252, 0.1);
+ -color-shadow-default: #010409;
+ -color-neutral-emphasis-plus: #6e7681;
+ -color-neutral-emphasis: #6e7681;
+ -color-neutral-muted: rgba(110, 118, 129, 0.4);
+ -color-neutral-subtle: rgba(110, 118, 129, 0.1);
+ -color-accent-fg: #58a6ff;
+ -color-accent-emphasis: #1f6feb;
+ -color-accent-muted: rgba(56, 139, 253, 0.4);
+ -color-accent-subtle: rgba(56, 139, 253, 0.15);
+ -color-warning-fg: #d29922;
+ -color-warning-emphasis: #9e6a03;
+ -color-warning-muted: rgba(187, 128, 9, 0.4);
+ -color-warning-subtle: rgba(187, 128, 9, 0.15);
+ -color-success-fg: #3fb950;
+ -color-success-emphasis: #238636;
+ -color-success-muted: rgba(46, 160, 67, 0.4);
+ -color-success-subtle: rgba(46, 160, 67, 0.15);
+ -color-danger-fg: #f85149;
+ -color-danger-emphasis: #da3633;
+ -color-danger-muted: rgba(248, 81, 73, 0.4);
+ -color-danger-subtle: rgba(248, 81, 73, 0.15);
+ -color-chart-1: #f3622d;
+ -color-chart-2: #fba71b;
+ -color-chart-3: #57b757;
+ -color-chart-4: #41a9c9;
+ -color-chart-5: #4258c9;
+ -color-chart-6: #9a42c8;
+ -color-chart-7: #c84164;
+ -color-chart-8: #888888;
+ -color-chart-1-alpha70: rgba(243, 98, 45, 0.7);
+ -color-chart-2-alpha70: rgba(251, 167, 27, 0.7);
+ -color-chart-3-alpha70: rgba(87, 183, 87, 0.7);
+ -color-chart-4-alpha70: rgba(65, 169, 201, 0.7);
+ -color-chart-5-alpha70: rgba(66, 88, 201, 0.7);
+ -color-chart-6-alpha70: rgba(154, 66, 200, 0.7);
+ -color-chart-7-alpha70: rgba(200, 65, 100, 0.7);
+ -color-chart-8-alpha70: rgba(136, 136, 136, 0.7);
+ -color-chart-1-alpha20: rgba(243, 98, 45, 0.2);
+ -color-chart-2-alpha20: rgba(251, 167, 27, 0.2);
+ -color-chart-3-alpha20: rgba(87, 183, 87, 0.2);
+ -color-chart-4-alpha20: rgba(65, 169, 201, 0.2);
+ -color-chart-5-alpha20: rgba(66, 88, 201, 0.2);
+ -color-chart-6-alpha20: rgba(154, 66, 200, 0.2);
+ -color-chart-7-alpha20: rgba(200, 65, 100, 0.2);
+ -color-chart-8-alpha20: rgba(136, 136, 136, 0.2);
+ -fx-background-color: -color-bg-default;
+ -fx-font-size: 14px;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: inherit;
+}
+
+.root.popup {
+ -fx-background-color: transparent;
+}
+
+.ikonli-font-icon {
+ -fx-icon-color: -color-fg-default;
+ -fx-fill: -color-fg-default;
+ -fx-icon-size: 18px;
+}
+
+.mnemonic-underline {
+ -fx-stroke: transparent;
+}
+
+.text {
+ -fx-font-smoothing-type: lcd;
+ -fx-bounds-type: logical_vertical_center;
+}
+
+Text {
+ -fx-fill: -color-fg-default;
+}
+
+.title-1 {
+ -fx-font-size: 2em;
+ -fx-font-weight: bolder;
+}
+
+.title-2 {
+ -fx-font-size: 1.75em;
+ -fx-font-weight: bolder;
+}
+
+.title-3 {
+ -fx-font-size: 1.5em;
+ -fx-font-weight: bolder;
+}
+
+.title-4 {
+ -fx-font-size: 1.25em;
+ -fx-font-weight: normal;
+}
+
+.text-caption {
+ -fx-font-size: 1em;
+ -fx-font-weight: bold;
+}
+
+.text-small {
+ -fx-font-size: 0.8em;
+}
+
+.text.accent {
+ -fx-fill: -color-accent-fg;
+}
+
+.label.accent {
+ -fx-text-fill: -color-accent-fg;
+}
+
+.text.success {
+ -fx-fill: -color-success-fg;
+}
+
+.label.success {
+ -fx-text-fill: -color-success-fg;
+}
+
+.text.warning {
+ -fx-fill: -color-warning-fg;
+}
+
+.label.warning {
+ -fx-text-fill: -color-warning-fg;
+}
+
+.text.danger {
+ -fx-fill: -color-danger-fg;
+}
+
+.label.danger {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.text-bold {
+ -fx-font-weight: bold;
+}
+
+.text-bolder {
+ -fx-font-weight: bolder;
+}
+
+.text-normal {
+ -fx-font-weight: normal;
+}
+
+.text-lighter {
+ -fx-font-weight: lighter;
+}
+
+.text-italic {
+ -fx-font-style: italic;
+}
+
+.text-oblique {
+ -fx-font-style: oblique;
+}
+
+.text-underlined {
+ -fx-underline: true;
+}
+
+.text-strikethrough {
+ -fx-strikethrough: true;
+}
+
+.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+
+.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+
+.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+
+.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.accordion > .titled-pane.first-titled-pane > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px 4px 0 0;
+}
+.accordion > .titled-pane > .title {
+ -fx-background-insets: 0, 0 1px 1px 1px;
+ -fx-background-radius: 0;
+}
+
+.bread-crumb-bar > .button.flat {
+ -fx-padding: 8px 2px 8px 9px;
+ -fx-content-display: RIGHT;
+}
+.bread-crumb-bar > .button.flat.first {
+ -fx-padding: 8px 2px 8px 12px;
+}
+.bread-crumb-bar > .button.flat.last {
+ -fx-padding: 8px 12px 8px 9px;
+}
+.bread-crumb-bar > .button.flat.last .font-icon, .bread-crumb-bar > .button.flat.last .ikonli-font-icon {
+ -fx-min-width: 0;
+ -fx-pref-width: 0;
+ -fx-max-width: 0;
+ visibility: hidden;
+}
+
+.button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.button .font-icon, .button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.button:disabled {
+ -fx-opacity: 0.4;
+}
+.button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.button.button-icon {
+ -fx-padding: 8px;
+}
+.button.button-icon > .text {
+ visibility: hidden;
+}
+.button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.button.button-circle .text {
+ visibility: hidden;
+}
+.button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.button.left-pill:hover, .button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.button.center-pill:hover, .button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.button.right-pill:hover, .button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-text-fill: -color-button-fg-hover;
+ -fx-opacity: 0.9;
+}
+.button:hover:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-hover;
+}
+.button:hover .font-icon, .button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+ -fx-text-fill: -color-button-fg-focused;
+}
+.button:focused .font-icon, .button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.button:armed, .button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.button:armed .font-icon, .button:armed .ikonli-font-icon, .button:focused:armed .font-icon, .button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.button:default, .button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button:default.button-outlined, .button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button:default.flat, .button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+.button.flat:hover {
+ -fx-underline: true;
+}
+.button.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.button.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.button.rounded {
+ -fx-background-radius: 10em;
+}
+
+.chart {
+ -fx-padding: 4px;
+}
+.chart > .chart-title {
+ -fx-font-size: 1.25em;
+}
+.chart > .chart-content {
+ -fx-padding: 10px;
+}
+.chart > .chart-content > .chart-plot-background {
+ -fx-background-color: -color-bg-default;
+}
+.chart:disabled > .chart-content {
+ -fx-opacity: 0.4;
+}
+.chart:disabled > .chart-content .label {
+ -fx-opacity: 1;
+}
+.chart > .chart-legend {
+ -fx-padding: 6px;
+}
+.chart .axis {
+ -fx-axis-color: -color-border-default;
+ -fx-tick-label-font-size: 0.8em;
+ -fx-tick-label-fill: -color-fg-default;
+}
+.chart .axis:top {
+ -fx-border-color: transparent transparent -fx-axis-color transparent;
+}
+.chart .axis:right {
+ -fx-border-color: transparent transparent transparent -fx-axis-color;
+}
+.chart .axis:bottom {
+ -fx-border-color: -fx-axis-color transparent transparent transparent;
+}
+.chart .axis:left {
+ -fx-border-color: transparent -fx-axis-color transparent transparent;
+}
+.chart .axis:top > .axis-label, .chart .axis:left > .axis-label {
+ -fx-padding: 0 0 4px 0;
+}
+.chart .axis:bottom > .axis-label, .chart .axis:right > .axis-label {
+ -fx-padding: 4px 0 0 0;
+}
+.chart .axis > .axis-tick-mark,
+.chart .axis > .axis-minor-tick-mark {
+ -fx-fill: none;
+ -fx-stroke: -fx-axis-color;
+}
+.chart .chart-horizontal-grid-lines,
+.chart .chart-vertical-grid-lines {
+ -fx-stroke: -color-border-muted;
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart .chart-alternative-row-fill,
+.chart .chart-alternative-column-fill {
+ -fx-fill: none;
+ -fx-stroke: none;
+}
+.chart .chart-vertical-zero-line,
+.chart .chart-horizontal-zero-line {
+ -fx-stroke: -color-fg-default;
+}
+
+.chart-symbol {
+ -fx-background-color: -color-chart-1;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color1.chart-symbol {
+ -fx-background-color: -color-chart-2;
+ -fx-background-radius: 0;
+}
+
+.default-color2.chart-symbol {
+ -fx-background-color: -color-chart-3;
+ -fx-background-radius: 0;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.default-color3.chart-symbol {
+ -fx-background-color: -color-chart-4;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+
+.default-color4.chart-symbol {
+ -fx-background-color: -color-chart-5;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+
+.default-color5.chart-symbol {
+ -fx-background-color: -color-chart-6, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color6.chart-symbol {
+ -fx-background-color: -color-chart-7, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 0;
+}
+
+.default-color7.chart-symbol {
+ -fx-background-color: -color-chart-8, white;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 2.5;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.chart-series-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 3px;
+}
+
+.default-color0.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-line-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-line-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-line-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-line-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-line-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-line-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-line-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.default-color0.chart-series-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px;
+}
+
+.default-color0.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-area-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-area-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-area-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-area-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-area-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-area-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-area-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 1px;
+}
+
+.default-color0.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-area-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-area-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-area-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-area-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-area-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-area-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-area-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-series-area-fill {
+ -fx-stroke: none;
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color0.chart-series-area-fill {
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color1.chart-series-area-fill {
+ -fx-fill: -color-chart-2-alpha20;
+}
+
+.default-color2.chart-series-area-fill {
+ -fx-fill: -color-chart-3-alpha20;
+}
+
+.default-color3.chart-series-area-fill {
+ -fx-fill: -color-chart-4-alpha20;
+}
+
+.default-color4.chart-series-area-fill {
+ -fx-fill: -color-chart-5-alpha20;
+}
+
+.default-color5.chart-series-area-fill {
+ -fx-fill: -color-chart-6-alpha20;
+}
+
+.default-color6.chart-series-area-fill {
+ -fx-fill: -color-chart-7-alpha20;
+}
+
+.default-color7.chart-series-area-fill {
+ -fx-fill: -color-chart-8-alpha20;
+}
+
+.area-legend-symbol {
+ -fx-padding: 6px;
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0, 3;
+}
+
+.bubble-legend-symbol {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+}
+
+.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+ -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill, 20%), derive(-fx-bubble-fill, -30%));
+}
+
+.default-color0.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+}
+
+.default-color1.chart-bubble {
+ -fx-bubble-fill: -color-chart-2-alpha70;
+}
+
+.default-color2.chart-bubble {
+ -fx-bubble-fill: -color-chart-3-alpha70;
+}
+
+.default-color3.chart-bubble {
+ -fx-bubble-fill: -color-chart-4-alpha70;
+}
+
+.default-color4.chart-bubble {
+ -fx-bubble-fill: -color-chart-5-alpha70;
+}
+
+.default-color5.chart-bubble {
+ -fx-bubble-fill: -color-chart-6-alpha70;
+}
+
+.default-color6.chart-bubble {
+ -fx-bubble-fill: -color-chart-7-alpha70;
+}
+
+.default-color7.chart-bubble {
+ -fx-bubble-fill: -color-chart-8-alpha70;
+}
+
+.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+ -fx-background-color: linear-gradient(to right, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+ -fx-background-insets: 0;
+}
+
+.chart-bar.danger {
+ -fx-background-insets: 1 0 0 0;
+}
+
+.bar-chart:horizontal .chart-bar {
+ -fx-background-insets: 0 0 0 1;
+}
+
+.bar-chart:horizontal .chart-bar,
+.stacked-bar-chart:horizontal .chart-bar {
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+}
+
+.default-color0.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+}
+
+.default-color1.chart-bar {
+ -fx-bar-fill: -color-chart-2;
+}
+
+.default-color2.chart-bar {
+ -fx-bar-fill: -color-chart-3;
+}
+
+.default-color3.chart-bar {
+ -fx-bar-fill: -color-chart-4;
+}
+
+.default-color4.chart-bar {
+ -fx-bar-fill: -color-chart-5;
+}
+
+.default-color5.chart-bar {
+ -fx-bar-fill: -color-chart-6;
+}
+
+.default-color6.chart-bar {
+ -fx-bar-fill: -color-chart-7;
+}
+
+.default-color7.chart-bar {
+ -fx-bar-fill: -color-chart-8;
+}
+
+.bar-legend-symbol {
+ -fx-padding: 8px;
+}
+
+.chart-pie {
+ -fx-pie-color: -color-chart-1;
+ -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color, 20%), derive(-fx-pie-color, -10%));
+ -fx-background-insets: 1;
+ -fx-border-color: -color-bg-default;
+}
+
+.chart-pie-label {
+ -fx-padding: 3px;
+ -fx-fill: -color-fg-default;
+}
+
+.chart-pie-label-line {
+ -fx-stroke: derive(-color-bg-default, -20%);
+}
+
+.default-color0.chart-pie {
+ -fx-pie-color: -color-chart-1;
+}
+
+.default-color1.chart-pie {
+ -fx-pie-color: -color-chart-2;
+}
+
+.default-color2.chart-pie {
+ -fx-pie-color: -color-chart-3;
+}
+
+.default-color3.chart-pie {
+ -fx-pie-color: -color-chart-4;
+}
+
+.default-color4.chart-pie {
+ -fx-pie-color: -color-chart-5;
+}
+
+.default-color5.chart-pie {
+ -fx-pie-color: -color-chart-6;
+}
+
+.default-color6.chart-pie {
+ -fx-pie-color: -color-chart-7;
+}
+
+.default-color7.chart-pie {
+ -fx-pie-color: -color-chart-8;
+}
+
+.danger.chart-pie {
+ -fx-pie-color: transparent;
+ -fx-background-color: white;
+}
+
+.pie-legend-symbol.chart-pie {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+ -fx-border-color: none;
+}
+
+.check-box {
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.check-box > .box {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-alignment: CENTER;
+}
+.check-box > .box > .mark {
+ -fx-background-color: -color-bg-default;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.check-box:indeterminate > .box > .mark {
+ -fx-background-color: -color-fg-muted;
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.check-box:disabled {
+ -fx-opacity: 0.4;
+}
+.check-box:disabled > .box {
+ -fx-opacity: 0.4;
+}
+.check-box:selected > .box {
+ -fx-background-color: -color-accent-emphasis, -color-accent-emphasis;
+}
+.check-box:selected > .box > .mark {
+ -fx-background-color: -color-fg-emphasis;
+}
+.check-box:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.color-picker > .color-picker-label {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.color-picker > .color-picker-label > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: -color-border-default;
+}
+.color-picker.button > .color-picker-label {
+ -fx-padding: 0;
+}
+
+.color-palette {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-spacing: 10px;
+ -fx-padding: 1em;
+}
+.color-palette > .color-picker-grid {
+ -fx-padding: 0.5px;
+ -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+ -fx-background-color: transparent;
+ -fx-padding: 0.5px;
+}
+
+.color-palette-region {
+ -fx-effect: dropshadow(gaussian, transparent, 12, 0, 0, 8);
+}
+.color-palette-region > .color-square.hover-square {
+ -fx-background-color: -color-accent-fg, -color-bg-default;
+ -fx-background-insets: -2, -1;
+ -fx-background-radius: 5, 0;
+ -fx-scale-x: 1.5;
+ -fx-scale-y: 1.5;
+ -fx-border-color: -color-accent-fg;
+ -fx-border-insets: -1, -1;
+}
+
+.custom-color-dialog {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 1.25em;
+ -fx-spacing: 1.25em;
+}
+.custom-color-dialog > .color-rect-pane {
+ -fx-spacing: 1em;
+ -fx-pref-height: 16em;
+ -fx-alignment: TOP-LEFT;
+ -fx-fill-height: true;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect {
+ -fx-min-width: 16em;
+ -fx-min-height: 16em;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect .color-rect-border {
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect #color-rect-indicator {
+ -fx-background-color: none;
+ -fx-border-color: white;
+ -fx-border-radius: 0.4166667em;
+ -fx-pref-width: 0.833333em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.4166667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .color-rect-pane > .color-bar {
+ -fx-min-width: 1.666667em;
+ -fx-min-height: 16.666667em;
+ -fx-max-width: 1.666667em;
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-bar #color-bar-indicator {
+ -fx-border-radius: 0.333333em;
+ -fx-border-color: white;
+ -fx-pref-width: 2em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.1666667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .label {
+ -fx-padding: 0 0 0 2px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #current-new-color-border {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 1px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .color-rect {
+ -fx-min-width: 10em;
+ -fx-pref-width: 10em;
+ -fx-min-height: 1.75em;
+ -fx-pref-height: 1.75em;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer1 {
+ -fx-min-height: 5px;
+ -fx-pref-height: 5px;
+ -fx-max-height: 5px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer2 {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+ -fx-max-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane {
+ -fx-hgap: 6px;
+ -fx-vgap: 6px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .customcolor-controls-background {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 13px 0 5px 0, 14px 1px 6px 1px;
+ -fx-background-radius: 4px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-label {
+ -fx-min-width: 5.75em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-unit {
+ -fx-min-width: 1.5em;
+ -fx-pref-width: 1.5em;
+ -fx-max-width: 1.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .slider {
+ -fx-pref-width: 10em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .color-input-field {
+ -fx-max-width: 4em;
+ -fx-pref-width: 4em;
+ -fx-min-width: 4em;
+ -fx-pref-column-count: 3;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-side {
+ -fx-min-width: 0.5em;
+ -fx-pref-width: 0.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-bottom {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .web-field {
+ -fx-pref-column-count: 6;
+ -fx-pref-width: 8em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .webcolor-field:dir(rtl) > .text-field:dir(ltr) {
+ -fx-alignment: BASELINE_RIGHT;
+}
+.custom-color-dialog > .controls-pane > #buttons-hbox {
+ -fx-spacing: 10px;
+ -fx-padding: 1em 0 0 0;
+ -fx-alignment: BOTTOM_RIGHT;
+}
+.custom-color-dialog > .controls-pane .transparent-pattern {
+ -fx-background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCOTBEQkE1RjJFMjA2ODExOUExMUM5NDhFOTUyQzM3MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRkE3MDZERThFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRkE3MDZERDhFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk4MDExNzQwNzIwNjgxMTg3MUZDMUExNDFCMTYwNzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjkwREJBNUYyRTIwNjgxMTlBMTFDOTQ4RTk1MkMzNzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz71FDCdAAAAKElEQVR42mI8c+YMAwwYGxvD2UwMOADpEoz///+Hc86ePUsLOwACDABC1ghwV8TLOQAAAABJRU5ErkJggg==");
+ -fx-background-repeat: repeat;
+ -fx-background-size: auto;
+}
+
+.combo-box-base {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+}
+.combo-box-base:disabled {
+ -fx-opacity: 0.4;
+}
+.combo-box-base:success, .combo-box-base:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.combo-box-base:danger, .combo-box-base:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.combo-box-base:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.combo-box-base.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.combo-box-base.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.combo-box-base.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.combo-box-base.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.combo-box-base > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.combo-box-base > .text-field {
+ -fx-background-insets: 0, 1 0 1 1;
+ -fx-background-radius: 4px 0 0 4px;
+}
+.combo-box-base:success > .arrow-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.combo-box-base:danger > .arrow-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.combo-box-base.alt-icon > .arrow-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.combo-box > .list-cell {
+ -fx-background-color: transparent;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box:success > .list-cell {
+ -fx-text-fill: -color-success-fg;
+}
+.combo-box:danger > .list-cell {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.combo-box-popup > .list-view {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+ -fx-cell-size: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover {
+ -fx-background-color: -color-base-7;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected, .combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+ -fx-background-color: -color-base-6;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.choice-box {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.choice-box:disabled {
+ -fx-opacity: 0.4;
+}
+.choice-box:success, .choice-box:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.choice-box:danger, .choice-box:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.choice-box:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.choice-box.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.choice-box.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.choice-box.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.choice-box.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.choice-box > .open-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.choice-box:success > .label {
+ -fx-text-fill: -color-success-fg;
+}
+.choice-box:success > .open-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.choice-box:danger > .label {
+ -fx-text-fill: -color-danger-fg;
+}
+.choice-box:danger > .open-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.choice-box.alt-icon > .open-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.custom-text-field:left-node-visible {
+ -fx-padding: 8px 12px 8px 0;
+}
+.custom-text-field:left-node-visible .left-pane {
+ -fx-padding: 0 4px 0 6px;
+}
+.custom-text-field:right-node-visible {
+ -fx-padding: 8px 0 8px 12px;
+}
+.custom-text-field:right-node-visible .right-pane {
+ -fx-padding: 0 6px 0 4px;
+}
+.custom-text-field:left-node-visible:right-node-visible {
+ -fx-padding: 8px 0 8px 0;
+}
+.custom-text-field:success .font-icon, .custom-text-field:success .ikonli-font-icon {
+ -fx-icon-color: -color-success-fg;
+ -fx-fill: -color-success-fg;
+}
+.custom-text-field:danger .font-icon, .custom-text-field:danger .ikonli-font-icon {
+ -fx-icon-color: -color-danger-fg;
+ -fx-fill: -color-danger-fg;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected {
+ -color-cell-fg: -color-cell-fg-selected;
+ -fx-background-color: -color-cell-border, -color-cell-bg-selected;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background-color: -color-cell-bg-selected;
+ -fx-background-insets: 0 0 2 0;
+}
+
+.cell .text-input {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.cell .check-box {
+ -fx-padding: 0 6px 0 0;
+}
+.cell .choice-box {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 12px 0 0;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+}
+.cell .combo-box {
+ -fx-background-color: transparent;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+ -fx-background-radius: 0;
+}
+.cell .combo-box .cell.list-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+}
+
+.list-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.list-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.list-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.list-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.list-view .list-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-cell-size: 2.8em;
+ -fx-border-width: 0 0 1 0;
+ -fx-border-color: transparent;
+}
+.list-view.bordered .list-cell {
+ -fx-border-color: -color-cell-border;
+}
+.list-view.dense .list-cell {
+ -fx-cell-size: 2em;
+}
+.list-view.striped .list-cell {
+ -fx-border-width: 0;
+}
+.list-view.striped .list-cell:odd {
+ -fx-background-color: -color-cell-bg-odd;
+}
+
+.table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.table-view.bordered .table-row-cell > .table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.table-view.bordered .table-row-cell > .table-cell:empty {
+ -fx-border-color: transparent;
+}
+.table-view.dense .table-row-cell {
+ -fx-cell-size: 2em;
+}
+.table-view.striped .table-row-cell {
+ -fx-background-insets: 0;
+}
+.table-view.striped.bordered .table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view.striped .table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.table-view .table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+}
+.table-view .table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.table-view .table-row-cell:empty > .table-cell {
+ -fx-border-color: transparent;
+}
+.table-view .table-row-cell > .table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+ -fx-border-color: transparent;
+}
+
+.table-view .table-row-cell > .table-cell.check-box-table-cell,
+.table-view .table-row-cell > .table-cell.font-icon-table-cell,
+.tree-table-view .tree-table-row-cell > .tree-table-cell.check-box-tree-table-cell {
+ -fx-alignment: CENTER_LEFT;
+}
+
+.tree-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.tree-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.tree-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.tree-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-view.dense .tree-cell {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.tree-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0.5em 0 0.5em 0;
+ -fx-indent: 1em;
+}
+.tree-cell > .tree-disclosure-node {
+ -fx-padding: 5px 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-cell-fg;
+ -fx-padding: 0.333333em 0.229em 0.333333em 0.229em;
+}
+
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+
+.tree-table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.tree-table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.tree-table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.tree-table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.tree-table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.tree-table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.tree-table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.tree-table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.tree-table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.tree-table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.tree-table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.tree-table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell:empty {
+ -fx-border-color: transparent;
+}
+.tree-table-view.dense .tree-table-row-cell {
+ -fx-cell-size: 2em;
+}
+.tree-table-view.dense .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 0.6em 0.5em 0 0.5em;
+}
+.tree-table-view.striped .tree-table-row-cell {
+ -fx-background-insets: 0;
+}
+.tree-table-view.striped.bordered .tree-table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view.striped .tree-table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.tree-table-view .tree-table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+ -fx-indent: 1em;
+}
+.tree-table-view .tree-table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.tree-table-view .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 1em 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.combo-box-base.date-picker > .arrow-button {
+ -fx-cursor: hand;
+}
+.combo-box-base.date-picker > .arrow-button > .arrow {
+ -fx-shape: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V10h16v11zm0-13H4V5h16v3z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 0.416667em;
+}
+
+.date-picker-popup {
+ -color-date-bg: -color-bg-default;
+ -color-date-border: -color-border-default;
+ -color-date-month-year-bg: -color-bg-default;
+ -color-date-month-year-fg: -color-fg-default;
+ -color-date-day-bg: -color-bg-default;
+ -color-date-day-bg-hover: -color-bg-subtle;
+ -color-date-day-bg-selected: -color-accent-emphasis;
+ -color-date-day-fg: -color-fg-default;
+ -color-date-day-fg-hover: -color-fg-default;
+ -color-date-day-fg-selected: -color-fg-emphasis;
+ -color-date-week-bg: -color-bg-default;
+ -color-date-week-fg: -color-accent-fg;
+ -color-date-today-bg: -color-accent-subtle;
+ -color-date-today-fg: -color-accent-fg;
+ -color-date-other-month-fg: -color-fg-muted;
+ -color-date-chrono-fg: -color-success-fg;
+ -fx-background-color: -color-date-border, -color-date-bg;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+ -fx-spacing: 0;
+ -fx-padding: 1px;
+}
+.date-picker-popup > .month-year-pane {
+ -fx-padding: 8px 8px 8px 8px;
+ -fx-background-color: -color-date-month-year-bg;
+ -fx-background-insets: 0;
+}
+.date-picker-popup > .month-year-pane > .spinner {
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER;
+ -fx-fill-height: false;
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-font-size: 1.1em;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+ -fx-alignment: BASELINE_CENTER;
+ -fx-padding: 0.5em 0 0 0;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .calendar-grid {
+ -fx-background-color: -color-date-bg;
+ -fx-padding: 8px;
+}
+.date-picker-popup > .calendar-grid > .date-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_CENTER;
+ -fx-opacity: 1;
+ -fx-text-fill: -color-date-day-fg;
+}
+.date-picker-popup > .calendar-grid > .week-number-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-week-bg;
+ -fx-text-fill: -color-date-week-fg;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .day-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-day-bg;
+}
+.date-picker-popup > .calendar-grid > .day-cell > .secondary-text {
+ -fx-fill: -color-date-chrono-fg;
+}
+.date-picker-popup > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 0.4;
+}
+.date-picker-popup > .calendar-grid .day-name-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .hijrah-day-cell {
+ -fx-alignment: TOP_LEFT;
+ -fx-padding: 0.083333em 4px 0.083333em 0.333333em;
+ -fx-cell-size: 2.75em;
+}
+.date-picker-popup > .calendar-grid > .today {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+ -fx-font-weight: bold;
+}
+
+.inline-date-picker {
+ -fx-effect: none;
+}
+.inline-date-picker > .top-node,
+.inline-date-picker > .bottom-node {
+ -fx-padding: 8px 16px 8px 16px;
+}
+.inline-date-picker > .month-year-pane {
+ -fx-padding: 8px 16px 8px 16px;
+ -fx-alignment: CENTER_LEFT;
+ -fx-spacing: 6px;
+}
+.inline-date-picker > .month-year-pane > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.inline-date-picker > .month-year-pane > .back-button {
+ -fx-padding: 0 1em 0 0;
+}
+.inline-date-picker > .month-year-pane > .back-button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .forward-button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .label {
+ -fx-text-fill: -color-date-month-year-fg;
+ -fx-font-size: 1.1em;
+}
+.inline-date-picker:disabled > .calendar-grid {
+ -fx-opacity: 0.4;
+}
+.inline-date-picker:disabled > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 1;
+}
+
+.date-picker-popup > .calendar-grid > .selected,
+.date-picker-popup > .calendar-grid > .selected > .secondary-text,
+.date-picker-popup > .calendar-grid > .previous-month.selected,
+.date-picker-popup > .calendar-grid > .previous-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.selected {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+ -fx-font-weight: normal;
+}
+
+.date-picker-popup > .calendar-grid > .day-cell:hover {
+ -fx-background-color: -color-date-day-bg-hover;
+}
+
+.date-picker-popup > .calendar-grid > .today:hover {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+}
+
+.date-picker-popup > .calendar-grid > .selected:hover {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+}
+
+.date-picker-popup > .calendar-grid > .previous-month,
+.date-picker-popup > .calendar-grid > .next-month,
+.date-picker-popup > .calendar-grid > .previous-month.today,
+.date-picker-popup > .calendar-grid > .next-month.today,
+.date-picker-popup > .calendar-grid > .previous-month > .secondary-text,
+.date-picker-popup > .calendar-grid > .next-month > .secondary-text {
+ -fx-text-fill: -color-date-other-month-fg;
+ -fx-fill: -color-date-other-month-fg;
+ -fx-font-weight: normal;
+}
+
+.dialog-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 0;
+ -fx-max-width: 600px;
+}
+.dialog-pane > .expandable-content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container {
+ -fx-padding: 2em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container > .details-button {
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_LEFT;
+ -fx-focus-traversable: false;
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane > .button-bar > .container > .details-button:hover {
+ -fx-underline: true;
+}
+.dialog-pane > .content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane > .content.label {
+ -fx-alignment: TOP_LEFT;
+}
+.dialog-pane:header > .header-panel {
+ -fx-padding: 1em 1em 1em 1em;
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.dialog-pane:header > .header-panel > .label {
+ -fx-wrap-text: true;
+}
+.dialog-pane:header > .header-panel > .graphic-container {
+ -fx-padding: 0 0 0 1em;
+}
+.dialog-pane:no-header > .content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane:no-header > * > .graphic-container {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane.information > .header-panel {
+ -fx-background-color: -color-accent-fg, -color-bg-subtle;
+}
+.dialog-pane.information > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.warning > .header-panel {
+ -fx-background-color: -color-warning-fg, -color-bg-subtle;
+}
+.dialog-pane.warning > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.error > .header-panel {
+ -fx-background-color: -color-danger-fg, -color-bg-subtle;
+}
+.dialog-pane.error > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+
+.alert.information.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.warning.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.error.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.confirmation.dialog-pane,
+.text-input-dialog.dialog-pane,
+.choice-dialog.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.html-editor {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 2px;
+}
+.html-editor:contains-focus {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.html-editor .tool-bar {
+ -fx-padding: 4px;
+}
+.html-editor .button,
+.html-editor .toggle-button {
+ -fx-background-insets: 0;
+}
+.html-editor .toggle-button {
+ -color-button-bg-selected: -color-base-6;
+ -color-button-border-focused: transparent;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-background {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect, .color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: none;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Text-Color.png");
+}
+
+.color-picker.html-editor-background {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Background-Color.png");
+}
+
+.html-editor-cut {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Cut.png");
+}
+
+.html-editor-copy {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Copy.png");
+}
+
+.html-editor-paste {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Paste.png");
+}
+
+.html-editor-align-left {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Left.png");
+}
+
+.html-editor-align-center {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Center.png");
+}
+
+.html-editor-align-right {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Right.png");
+}
+
+.html-editor-align-justify {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Justify.png");
+}
+
+.html-editor-outdent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent.png");
+}
+
+.html-editor-outdent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent-rtl.png");
+}
+
+.html-editor-indent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent.png");
+}
+
+.html-editor-indent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent-rtl.png");
+}
+
+.html-editor-bullets {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets.png");
+}
+
+.html-editor-bullets:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets-rtl.png");
+}
+
+.html-editor-numbers {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered.png");
+}
+
+.html-editor-numbers:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered-rtl.png");
+}
+
+.html-editor-bold {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bold.png");
+}
+
+.html-editor-italic {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Italic.png");
+}
+
+.html-editor-underline {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Underline.png");
+}
+
+.html-editor-strike {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Strikethrough.png");
+}
+
+.html-editor-hr {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Break.png");
+}
+
+.hyperlink {
+ -color-link-fg: -color-accent-fg;
+ -color-link-fg-visited: -color-fg-default;
+ -color-link-fg-armed: -color-fg-default;
+ -fx-cursor: hand;
+ -fx-underline: true;
+ -fx-text-fill: -color-link-fg;
+}
+.hyperlink:visited {
+ -fx-text-fill: -color-link-fg-visited;
+}
+.hyperlink:armed {
+ -fx-text-fill: -color-link-fg-armed;
+ -fx-underline: false;
+}
+.hyperlink:disabled {
+ -fx-opacity: 0.4;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+.label {
+ -fx-text-fill: -color-fg-default;
+}
+.label:disabled {
+ -fx-opacity: 0.4;
+}
+.label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0 0 0 0, 0 0 1 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0 0 1px 0;
+ -fx-background-radius: 0;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-bar > .container > .menu-button > .label {
+ -fx-padding: 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-bar > .container > .menu-button > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+ -fx-padding: 0;
+ -fx-background-color: transparent;
+}
+.menu-bar > .container > .menu-button:hover, .menu-bar > .container > .menu-button:focused, .menu-bar > .container > .menu-button:showing {
+ -fx-background-color: -color-base-6, -color-base-6;
+}
+
+.menu {
+ -fx-background-color: transparent;
+}
+.menu > .right-container > .arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+
+.menu-up-arrow {
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-down-arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-item {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0 6px 0 0;
+}
+.menu-item > .label {
+ -fx-padding: 0 1em 0 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-item > .left-container {
+ -fx-padding: 0 1em 0 0;
+}
+.menu-item > .right-container {
+ -fx-padding: 0 0 0 0.5em;
+}
+.menu-item:focused {
+ -fx-background-color: -color-base-7, -color-base-7;
+}
+.menu-item:disabled {
+ -fx-opacity: 0.4;
+ -fx-background-color: -color-bg-default;
+}
+
+.radio-menu-item:checked > .left-container > .radio,
+.check-menu-item:checked > .left-container > .check {
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-min-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-max-width: 0.75em;
+}
+
+.caption-menu-item {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.caption-menu-item:hover, .caption-menu-item:focused, .caption-menu-item:pressed {
+ -fx-background-color: transparent;
+}
+.caption-menu-item > .label > .text {
+ -fx-font-weight: bold;
+}
+
+.context-menu {
+ -fx-background-color: -color-border-muted, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 2px 2px 2px 2px;
+ -fx-background-radius: 4px;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
+.context-menu > .scroll-arrow {
+ -fx-padding: 0.5em;
+ -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+ -fx-background-color: -color-base-7;
+ -fx-text-fill: -color-fg-default;
+}
+.context-menu .separator:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.context-menu .separator:horizontal .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0.5em 0 0.5em;
+}
+
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item > .label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-button,
+.split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 0;
+ -fx-alignment: CENTER_LEFT;
+}
+.menu-button .font-icon, .menu-button .ikonli-font-icon,
+.split-menu-button .font-icon,
+.split-menu-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.menu-button:disabled,
+.split-menu-button:disabled {
+ -fx-opacity: 0.4;
+}
+.menu-button:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 8px;
+}
+.menu-button.button-icon > .text,
+.split-menu-button.button-icon > .text {
+ visibility: hidden;
+}
+.menu-button.button-circle,
+.split-menu-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.menu-button.button-circle .text,
+.split-menu-button.button-circle .text {
+ visibility: hidden;
+}
+.menu-button.left-pill,
+.split-menu-button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.menu-button.left-pill:hover, .menu-button.left-pill:focused,
+.split-menu-button.left-pill:hover,
+.split-menu-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.center-pill,
+.split-menu-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.menu-button.center-pill:hover, .menu-button.center-pill:focused,
+.split-menu-button.center-pill:hover,
+.split-menu-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.right-pill,
+.split-menu-button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.menu-button.right-pill:hover, .menu-button.right-pill:focused,
+.split-menu-button.right-pill:hover,
+.split-menu-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button > .label,
+.split-menu-button > .label {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-text-fill: -color-button-fg;
+}
+.menu-button > .arrow-button,
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 0;
+}
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-button-fg;
+ -fx-min-width: 0.5em;
+}
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.menu-button:show-mnemonics > .label > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .label > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 0;
+}
+.menu-button:hover,
+.split-menu-button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-opacity: 0.9;
+}
+.menu-button:hover > .label,
+.split-menu-button:hover > .label {
+ -fx-text-fill: -color-button-fg-hover;
+}
+.menu-button:hover > .arrow-button > .arrow,
+.split-menu-button:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-hover;
+}
+.menu-button:hover .font-icon, .menu-button:hover .ikonli-font-icon,
+.split-menu-button:hover .font-icon,
+.split-menu-button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.menu-button:focused,
+.split-menu-button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+}
+.menu-button:focused > .label,
+.split-menu-button:focused > .label {
+ -fx-text-fill: -color-button-fg-focused;
+}
+.menu-button:focused > .arrow-button > .arrow,
+.split-menu-button:focused > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-focused;
+}
+.menu-button:focused .font-icon, .menu-button:focused .ikonli-font-icon,
+.split-menu-button:focused .font-icon,
+.split-menu-button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.menu-button:armed, .menu-button:focused:armed,
+.split-menu-button:armed,
+.split-menu-button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .label, .menu-button:focused:armed > .label,
+.split-menu-button:armed > .label,
+.split-menu-button:focused:armed > .label {
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .arrow-button > .arrow, .menu-button:focused:armed > .arrow-button > .arrow,
+.split-menu-button:armed > .arrow-button > .arrow,
+.split-menu-button:focused:armed > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-pressed;
+}
+.menu-button:armed .font-icon, .menu-button:armed .ikonli-font-icon, .menu-button:focused:armed .font-icon, .menu-button:focused:armed .ikonli-font-icon,
+.split-menu-button:armed .font-icon,
+.split-menu-button:armed .ikonli-font-icon,
+.split-menu-button:focused:armed .font-icon,
+.split-menu-button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.menu-button.accent,
+.split-menu-button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.accent.button-outlined,
+.split-menu-button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.accent.flat,
+.split-menu-button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.menu-button.success,
+.split-menu-button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.success.button-outlined,
+.split-menu-button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.success.flat,
+.split-menu-button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.menu-button.danger,
+.split-menu-button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.danger.button-outlined,
+.split-menu-button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.danger.flat,
+.split-menu-button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.menu-button.flat,
+.split-menu-button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+
+.menu-button.no-arrow > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-button.no-arrow > .arrow-button > .arrow {
+ -fx-shape: none;
+ -fx-scale-shape: false;
+ -fx-min-width: -1;
+}
+
+.split-menu-button > .label {
+ -fx-padding: 8px 6px 8px 12px;
+}
+.split-menu-button:hover > .arrow-button, .split-menu-button:focused:hover > .arrow-button {
+ -fx-background-color: -color-neutral-emphasis-plus;
+ -fx-background-insets: 1px;
+ -fx-background-radius: 4px;
+ -fx-border-color: transparent;
+ -fx-opacity: 0.75;
+}
+.split-menu-button:hover > .arrow-button > .arrow, .split-menu-button:focused:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.split-menu-button:default:hover > .arrow-button, .split-menu-button.accent:hover > .arrow-button, .split-menu-button.success:hover > .arrow-button, .split-menu-button.danger:hover > .arrow-button {
+ -fx-background-color: -color-fg-emphasis;
+}
+.split-menu-button:default:hover > .arrow-button > .arrow, .split-menu-button.accent:hover > .arrow-button > .arrow, .split-menu-button.success:hover > .arrow-button > .arrow, .split-menu-button.danger:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-bg-hover;
+}
+.split-menu-button.button-outlined:hover > .arrow-button, .split-menu-button.button-outlined:focused > .arrow-button {
+ -color-button-fg: -color-fg-emphasis;
+}
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-border-color: -color-button-fg;
+ -fx-border-width: 0 0 0 0.75px;
+ -fx-border-insets: 7px 0 7px 0;
+}
+
+.pagination {
+ -fx-padding: 0;
+ -fx-arrow-button-gap: 4;
+ -fx-arrows-visible: true;
+ -fx-tooltip-visible: false;
+ -fx-page-information-visible: true;
+ -fx-page-information-alignment: bottom;
+}
+.pagination > .page {
+ -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+ -fx-background-color: transparent;
+ -fx-font-size: 1em;
+}
+.pagination > .pagination-control > .control-box {
+ -fx-padding: 2em 0 0 0;
+ -fx-spacing: 2;
+ -fx-alignment: CENTER;
+}
+.pagination > .pagination-control > .control-box .number-button {
+ -fx-padding: 0;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button > .left-arrow {
+ -fx-shape: "M14 7l-5 5 5 5V7z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button > .right-arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .page-information {
+ -fx-padding: 0.5em 0 0 0;
+}
+.pagination.bullet > .pagination-control > .control-box {
+ -fx-spacing: 0;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 10em;
+ -fx-padding: 0 0.25em 0 0.083em;
+}
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 10em;
+ -fx-padding: 0 0.083em 0 0.25em;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button {
+ -fx-background-radius: 0, 10em, 10em;
+ -fx-background-color: transparent, -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 5, 6;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button:selected {
+ -fx-background-color: transparent, -color-accent-emphasis;
+}
+
+.popover {
+ -fx-background-color: -color-bg-overlay;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
+.popover > .border {
+ -fx-stroke: -color-border-default;
+ -fx-stroke-width: 1px;
+}
+.popover > .content {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.popover > .content > .title {
+ -fx-padding: 0 0 1em 0;
+}
+.popover > .content > .title > .text {
+ -fx-text-fill: -color-fg-default;
+ -fx-font-size: 1.25em;
+ -fx-alignment: CENTER_LEFT;
+}
+.popover > .content > .title > .icon > .graphics > .circle {
+ -fx-fill: transparent;
+}
+.popover > .content > .title > .icon > .graphics > .line {
+ -fx-stroke: -color-fg-default;
+ -fx-stroke-width: 1px;
+}
+
+.progress-bar {
+ -color-progress-bar-track: -color-bg-subtle;
+ -color-progress-bar-fill: -color-accent-emphasis;
+ -fx-indeterminate-bar-length: 60;
+ -fx-indeterminate-bar-escape: true;
+ -fx-indeterminate-bar-flip: true;
+ -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .track {
+ -fx-background-color: -color-progress-bar-track;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+}
+.progress-bar > .bar {
+ -fx-background-color: -color-progress-bar-fill;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+ -fx-padding: 0.4em;
+}
+.progress-bar.small > .bar {
+ -fx-padding: 2px;
+}
+.progress-bar.medium > .bar {
+ -fx-padding: 0.4em;
+}
+.progress-bar.large > .bar {
+ -fx-padding: 0.8em;
+}
+.progress-bar:disabled {
+ -fx-opacity: 0.4;
+}
+
+.progress-indicator {
+ -fx-indeterminate-segment-count: 12;
+ -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+}
+.progress-indicator > .determinate-indicator > .progress {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0.6em;
+}
+.progress-indicator > .determinate-indicator > .tick {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-background-insets: 0;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+}
+.progress-indicator > .determinate-indicator > .percentage {
+ -fx-font-size: 0.8em;
+ -fx-fill: -color-fg-default;
+}
+.progress-indicator > .determinate-indicator:disabled {
+ -fx-opacity: 0.4;
+}
+.progress-indicator:indeterminate > .spinner {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-border-color: transparent;
+ -fx-border-width: 0;
+ -fx-border-radius: 0;
+ -fx-padding: 0;
+}
+.progress-indicator:indeterminate .segment {
+ -fx-background-color: -color-accent-emphasis;
+}
+.progress-indicator:indeterminate .segment0 {
+ -fx-shape: "M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+ -fx-shape: "M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+ -fx-shape: "M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+ -fx-shape: "M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+ -fx-shape: "M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+ -fx-shape: "M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+ -fx-shape: "M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+ -fx-shape: "M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+ -fx-shape: "M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+ -fx-shape: "M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+ -fx-shape: "M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+ -fx-shape: "M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+.radio-button {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.radio-button > .radio {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-padding: 3px;
+ -fx-alignment: CENTER;
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent, transparent;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.radio-button:disabled {
+ -fx-opacity: 0.4;
+}
+.radio-button:disabled > .radio {
+ -fx-opacity: 0.4;
+}
+.radio-button:selected > .radio {
+ -fx-background-color: -color-accent-emphasis;
+}
+.radio-button:selected > .radio > .dot {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+}
+.radio-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.scroll-bar {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-bar > .thumb {
+ -fx-background-color: -color-fg-muted;
+ -fx-background-radius: 4px;
+}
+.scroll-bar > .track {
+ -fx-background-color: transparent;
+ -fx-border-radius: 0;
+}
+.scroll-bar > .increment-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .increment-button > .increment-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar > .decrement-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .decrement-button > .decrement-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar:horizontal {
+ -fx-pref-height: 8px;
+}
+.scroll-bar:vertical {
+ -fx-pref-width: 8px;
+}
+.scroll-bar:hover, .scroll-bar:pressed, .scroll-bar:focused {
+ -fx-opacity: 1;
+}
+
+.scroll-pane {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.scroll-pane > .viewport {
+ -fx-background-color: transparent;
+}
+.scroll-pane > .corner {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-pane:disabled > .scroll-bar {
+ -fx-opacity: 0.25;
+}
+
+.separator:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator:horizontal > .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0 0 0;
+}
+.separator:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator:vertical > .line {
+ -fx-border-color: transparent transparent transparent -color-border-muted;
+ -fx-border-insets: 0 0 0 1px;
+}
+.separator.small:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.separator.small:vertical {
+ -fx-padding: 0 0.25em 0 0.25em;
+}
+.separator.medium:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator.medium:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator.large:horizontal {
+ -fx-padding: 1.5em 0 1.5em 0;
+}
+.separator.large:vertical {
+ -fx-padding: 0 1.5em 0 1.5em;
+}
+
+.slider {
+ -color-slider-thumb: -color-fg-default;
+ -color-slider-thumb-border: -color-fg-default;
+ -color-slider-track: -color-border-muted;
+ -color-slider-track-progress: -color-accent-emphasis;
+ -color-slider-tick: -color-fg-muted;
+}
+.slider.large {
+ -color-slider-thumb: -color-fg-default;
+ -color-slider-thumb-border: -color-fg-default;
+}
+.slider > .thumb {
+ -fx-background-color: -color-slider-thumb-border, -color-slider-thumb;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 10em;
+}
+.slider > .track {
+ -fx-background-color: transparent, -color-slider-track;
+ -fx-background-radius: 4px;
+}
+.slider > .progress {
+ -fx-background-color: transparent, -color-slider-track-progress;
+}
+.slider > .axis {
+ -fx-tick-label-fill: -color-slider-tick;
+ -fx-tick-length: 5px;
+ -fx-minor-tick-length: 3px;
+}
+.slider > .axis > .axis-tick-mark,
+.slider > .axis > .axis-minor-tick-mark {
+ -fx-stroke: -color-slider-tick;
+}
+.slider:disabled {
+ -fx-opacity: 0.4;
+}
+.slider:horizontal > .thumb {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.slider:horizontal > .track {
+ -fx-padding: 10px 0 10px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider:horizontal > .progress {
+ -fx-background-radius: 4px;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .thumb {
+ -fx-padding: 8px 8px 8px 8px;
+}
+.slider.small:horizontal > .track {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.large:horizontal > .thumb {
+ -fx-padding: 12px 12px 12px;
+}
+.slider.large:horizontal > .track {
+ -fx-padding: 12px 0 12px 0;
+ -fx-background-insets: 0, 0px 0 0px 0;
+}
+.slider.large:horizontal > .progress {
+ -fx-padding: 12px 0 12px 0;
+ -fx-background-insets: 0, 0px 0 0px 0;
+}
+.slider:vertical > .thumb {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.slider:vertical > .track {
+ -fx-padding: 0 10px 0 10px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider:vertical > .progress {
+ -fx-background-radius: 10em 10em 4px 4px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .thumb {
+ -fx-padding: 8px 8px 8px 8px;
+}
+.slider.small:vertical > .track {
+ -fx-padding: 0 8px 0 8px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.large:vertical > .thumb {
+ -fx-padding: 12px 12px 12px 12px;
+}
+.slider.large:vertical > .track {
+ -fx-padding: 0 12px 0 12px;
+ -fx-background-insets: 0, 0 0px 0 0px;
+}
+.slider.large:vertical > .progress {
+ -fx-padding: 0 12px 0 12px;
+ -fx-background-insets: 0, 0 0px 0 0px;
+}
+
+.spinner {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default;
+ -fx-border-radius: 4px;
+ -fx-border-width: 1px;
+}
+.spinner > .text-field {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+ -fx-padding: 7px 11px 7px 11px;
+}
+.spinner > .increment-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0 4px 0 0;
+ -fx-padding: 10px;
+}
+.spinner > .increment-arrow-button:hover {
+ -fx-background-color: -color-base-6;
+}
+.spinner > .increment-arrow-button > .increment-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: false;
+}
+.spinner > .decrement-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: -1 0 0 0;
+ -fx-background-radius: 0 0 4px 0;
+ -fx-padding: 10px;
+}
+.spinner > .decrement-arrow-button:hover {
+ -fx-background-color: -color-base-6;
+}
+.spinner > .decrement-arrow-button > .decrement-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.spinner:disabled {
+ -fx-opacity: 0.4;
+}
+.spinner:focused:focused, .spinner:contains-focus:focused {
+ -fx-border-color: -color-accent-emphasis;
+}
+.spinner.arrows-on-left-vertical > .text-field {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-vertical > .increment-arrow-button {
+ -fx-background-radius: 4px 0 0 0;
+}
+.spinner.arrows-on-left-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 0 4px;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .text-field {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0 -1 0 0;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-vertical > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button {
+ -fx-background-radius: 4px 4px 0 0;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 4px 4px;
+ -fx-background-insets: 0 0 -1 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.split-pane {
+ -color-split-divider: -color-border-subtle;
+ -color-split-divider-pressed: -color-accent-emphasis;
+ -color-split-grabber: -color-fg-muted;
+ -color-split-grabber-pressed: -color-accent-emphasis;
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.split-pane > .split-pane-divider {
+ -fx-background-color: -color-split-divider;
+ -fx-padding: 0 2px 0 2px;
+ -fx-opacity: 0.5;
+}
+.split-pane > .split-pane-divider > .horizontal-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 10px 2px 10px 2px;
+}
+.split-pane > .split-pane-divider > .vertical-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 2px 10px 2px 10px;
+}
+.split-pane > .split-pane-divider:pressed {
+ -fx-background-color: -color-split-divider-pressed;
+}
+.split-pane > .split-pane-divider:pressed > .horizontal-grabber,
+.split-pane > .split-pane-divider:pressed > .vertical-grabber {
+ -fx-background-color: -color-split-grabber-pressed;
+}
+.split-pane > .split-pane-divider:hover {
+ -fx-opacity: 1;
+}
+.split-pane > .split-pane-divider:disabled {
+ -fx-opacity: 0.25;
+}
+
+.tab-pane > .tab-header-area {
+ -fx-background-insets: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-alignment: CENTER;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: transparent, transparent;
+ -fx-padding: 0.3em 0.6em 0.3em 0.6em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 0.4em 0.4em 0.4em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+ -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+ -fx-scale-shape: false;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label {
+ -fx-fill: -color-fg-default;
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label > *, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled > .tab-container {
+ -fx-opacity: 0.4;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right > .tab-container > .tab-label {
+ -fx-padding: 0.2em 0.4em 0.2em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected {
+ -fx-background-color: -color-border-default, -color-base-7;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:disabled, .tab-pane > .tab-header-area > .headers-region > .tab:right:disabled {
+ -fx-background-color: transparent;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-padding: 1em;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:disabled {
+ -fx-opacity: 0.4;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane.floating > .tab-header-area {
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0;
+ -fx-background-color: transparent;
+ -fx-padding: 0.3em 0 0.3em 3px;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+ -fx-border-radius: 4px;
+ -fx-border-width: 1px, 0 3px 0 0;
+ -fx-border-color: transparent, transparent;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-padding: 0.55em 0.55em 0.55em 0.55em;
+ -fx-min-width: 150px;
+ -fx-pref-width: 150px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab:hover > .tab-container, .tab-pane.floating > .tab-header-area > .headers-region > .tab:selected > .tab-container {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default, transparent;
+}
+
+.text-input {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-fg-default;
+ -color-input-border: -color-border-default;
+ -color-input-bg-focused: -color-bg-default;
+ -color-input-border-focused: -color-accent-emphasis;
+ -color-input-bg-highlight: -color-accent-subtle;
+ -color-input-fg-highlight: -color-fg-default;
+ -fx-background-color: -color-input-border, -color-input-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-input-fg;
+ -fx-highlight-fill: -color-input-bg-highlight;
+ -fx-highlight-text-fill: -color-input-fg-highlight;
+ -fx-prompt-text-fill: -color-fg-subtle;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-cursor: text;
+}
+.text-input:focused {
+ -fx-background-color: -color-input-border-focused, -color-input-bg-focused;
+ -fx-prompt-text-fill: transparent;
+}
+.text-input:disabled {
+ -fx-opacity: 0.4;
+}
+.text-input:disabled > .scroll-pane {
+ -fx-opacity: 1;
+}
+.text-input:success {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-success-fg;
+ -color-input-border: -color-success-emphasis;
+ -color-input-border-focused: -color-success-emphasis;
+}
+.text-input:danger {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-danger-fg;
+ -color-input-border: -color-danger-emphasis;
+ -color-input-border-focused: -color-danger-emphasis;
+}
+.text-input.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.text-input.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.text-input.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.text-input.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.text-field.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.text-field.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.text-field.rounded {
+ -fx-background-radius: 10em;
+}
+
+.text-area {
+ -fx-padding: 2px;
+ -fx-cursor: default;
+}
+.text-area .content {
+ -fx-cursor: text;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+.password-field {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.titled-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-effect: none;
+}
+.titled-pane.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+.titled-pane.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+.titled-pane.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+.titled-pane > .title {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-padding: 10px 20px 10px 20px;
+}
+.titled-pane > .title > .text {
+ -fx-font-size: 1.25em;
+}
+.titled-pane > .title > .arrow-button {
+ -fx-background-color: none;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 10px 0 0;
+}
+.titled-pane > .title > .arrow-button > .arrow {
+ -fx-shape: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 4px 5px 4px 5px;
+}
+.titled-pane > .content {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 0 1px 1px 1px;
+ -fx-border-radius: 0 0 4px 4px;
+ -fx-background-radius: 0 0 4px 4px;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 20px 20px 10px 20px;
+ -fx-alignment: TOP_LEFT;
+}
+.titled-pane:disabled > .title > *,
+.titled-pane:disabled > .content > * {
+ -fx-opacity: 0.4;
+}
+.titled-pane:expanded > .title {
+ -fx-background-radius: 4px 4px 0 0;
+ -fx-background-insets: 0, 1px 1px 0 1px;
+}
+.titled-pane:collapsed > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+}
+.titled-pane.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -color-button-bg-selected: -color-accent-emphasis;
+ -color-button-fg-selected: -color-fg-emphasis;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.toggle-button .font-icon, .toggle-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.toggle-button:disabled {
+ -fx-opacity: 0.4;
+}
+.toggle-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.toggle-button.button-icon {
+ -fx-padding: 8px;
+}
+.toggle-button.button-icon > .text {
+ visibility: hidden;
+}
+.toggle-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.toggle-button.button-circle .text {
+ visibility: hidden;
+}
+.toggle-button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.toggle-button.left-pill:hover, .toggle-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.toggle-button.center-pill:hover, .toggle-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.toggle-button.right-pill:hover, .toggle-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected, .toggle-button:selected:focused {
+ -fx-background-color: -color-button-bg-selected;
+ -fx-text-fill: -color-button-fg-selected;
+ -fx-background-insets: 0;
+}
+.toggle-button:selected .font-icon, .toggle-button:selected .ikonli-font-icon, .toggle-button:selected:focused .font-icon, .toggle-button:selected:focused .ikonli-font-icon {
+ -fx-fill: -color-button-fg-selected;
+ -fx-icon-color: -color-button-fg-selected;
+}
+.toggle-button:show-mnemonics:selected > .mnemonic-underline {
+ -fx-stroke: -color-button-fg-selected;
+}
+.toggle-button:selected.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.toggle-switch {
+ -fx-thumb-move-animation-time: 200;
+}
+.toggle-switch > .label-container > .label {
+ -fx-font-size: 1em;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 2px 6px 2px 0;
+}
+.toggle-switch > .thumb {
+ -fx-background-color: -color-border-default, -color-fg-emphasis;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 10em;
+ -fx-padding: 0.85em;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-opacity: 0.8;
+}
+.toggle-switch > .thumb-area {
+ -fx-background-radius: 1em;
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 0.85em 1.4em 0.85em 1.4em;
+}
+.toggle-switch:selected > .thumb {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.toggle-switch:selected > .thumb-area {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-background-insets: 0;
+}
+.toggle-switch:disabled {
+ -fx-opacity: 0.4;
+}
+
+.tool-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0, 0 0 1px 0;
+ -fx-padding: 4px 0.3em 4px 0.3em;
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tool-bar > .container > .button,
+.tool-bar > .container > .menu-button,
+.tool-bar > .container > .split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container .toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-bg-selected: -color-base-6;
+ -color-button-fg-selected: -color-fg-default;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container > .separator {
+ -fx-orientation: vertical;
+}
+.tool-bar > .tool-bar-overflow-button {
+ -fx-padding: 0 0.3em 0 4px;
+}
+.tool-bar > .tool-bar-overflow-button > .arrow {
+ -fx-shape: "M5.06 5 4 6.06 7.94 10 4 13.94 5.06 15l5-5z M11 5 9.94 6.06 13.88 10l-3.94 3.94L11 15l5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tool-bar:vertical {
+ -fx-background-insets: 0, 0 1px 0 0;
+ -fx-padding: 0.3em 4px 0.3em 4px;
+ -fx-alignment: TOP_LEFT;
+}
+.tool-bar:vertical > .container > .separator {
+ -fx-orientation: horizontal;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+ -fx-padding: 4px 0 0.3em 0;
+}
+.tool-bar:vertical.right {
+ -fx-background-insets: 0, 0 0 0 1px;
+}
+.tool-bar.bottom {
+ -fx-background-insets: 0, 1px 0 0 0;
+}
+
+.tooltip {
+ -fx-background-color: -color-border-default, -color-bg-overlay;
+ -fx-background-insets: 0, 1px;
+ -fx-text-fill: -color-fg-default;
+ -fx-background-radius: 4px;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-opacity: 0.85;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.6, 0, 2);
+}
+
+
+/********************************************
+* *
+* Spinner *
+* *
+*********************************************/
+
+
+.spinner {
+ -fx-pref-width: 120px;
+}
+
+
+/********************************************
+* *
+* Chart *
+* *
+*********************************************/
+
+
+
+.thin-chart .chart-series-line {
+ -fx-stroke-width: 1px;
+}
+
+
+/*******************************************************************************
+ * *
+ * Label *
+ * *
+ ******************************************************************************/
+
+
+#label-title1 {
+ -fx-font: bold 16pt -fx-font-family;
+}
+
+#label-title2 {
+ -fx-font: bold 13pt -fx-font-family;
+}
diff --git a/src/Resources/css/primer-light.css b/src/Resources/css/primer-light.css
new file mode 100644
index 00000000..f887da2c
--- /dev/null
+++ b/src/Resources/css/primer-light.css
@@ -0,0 +1,3664 @@
+.root {
+ -color-dark: #1b1f24;
+ -color-light: #ffffff;
+ -color-base-0: #f6f8fa;
+ -color-base-1: #eaeef2;
+ -color-base-2: #d0d7de;
+ -color-base-3: #afb8c1;
+ -color-base-4: #8c959f;
+ -color-base-5: #6e7781;
+ -color-base-6: #57606a;
+ -color-base-7: #424a53;
+ -color-base-8: #32383f;
+ -color-base-9: #24292f;
+ -color-accent-0: #ddf4ff;
+ -color-accent-1: #b6e3ff;
+ -color-accent-2: #80ccff;
+ -color-accent-3: #54aeff;
+ -color-accent-4: #218bff;
+ -color-accent-5: #0969da;
+ -color-accent-6: #0550ae;
+ -color-accent-7: #033d8b;
+ -color-accent-8: #0a3069;
+ -color-accent-9: #002155;
+ -color-success-0: #dafbe1;
+ -color-success-1: #aceebb;
+ -color-success-2: #6fdd8b;
+ -color-success-3: #4ac26b;
+ -color-success-4: #2da44e;
+ -color-success-5: #1a7f37;
+ -color-success-6: #116329;
+ -color-success-7: #044f1e;
+ -color-success-8: #003d16;
+ -color-success-9: #002d11;
+ -color-warning-0: #fff8c5;
+ -color-warning-1: #fae17d;
+ -color-warning-2: #eac54f;
+ -color-warning-3: #d4a72c;
+ -color-warning-4: #bf8700;
+ -color-warning-5: #9a6700;
+ -color-warning-6: #7d4e00;
+ -color-warning-7: #633c01;
+ -color-warning-8: #4d2d00;
+ -color-warning-9: #3b2300;
+ -color-danger-0: #ffebe9;
+ -color-danger-1: #ffcecb;
+ -color-danger-2: #ffaba8;
+ -color-danger-3: #ff8182;
+ -color-danger-4: #fa4549;
+ -color-danger-5: #cf222e;
+ -color-danger-6: #a40e26;
+ -color-danger-7: #82071e;
+ -color-danger-8: #660018;
+ -color-danger-9: #4c0014;
+ -color-fg-default: #24292f;
+ -color-fg-muted: #57606a;
+ -color-fg-subtle: #6e7781;
+ -color-fg-emphasis: #ffffff;
+ -color-bg-default: #ffffff;
+ -color-bg-overlay: #ffffff;
+ -color-bg-subtle: #f6f8fa;
+ -color-bg-inset: #f6f8fa;
+ -color-border-default: #d0d7de;
+ -color-border-muted: #d0d7de;
+ -color-border-subtle: rgba(27, 31, 36, 0.15);
+ -color-shadow-default: #d0d7de;
+ -color-neutral-emphasis-plus: #24292f;
+ -color-neutral-emphasis: #6e7781;
+ -color-neutral-muted: rgba(175, 184, 193, 0.2);
+ -color-neutral-subtle: rgba(234, 238, 242, 0.5);
+ -color-accent-fg: #0969da;
+ -color-accent-emphasis: #0969da;
+ -color-accent-muted: rgba(84, 174, 255, 0.4);
+ -color-accent-subtle: #ddf4ff;
+ -color-warning-fg: #9a6700;
+ -color-warning-emphasis: #bf8700;
+ -color-warning-muted: rgba(212, 167, 44, 0.4);
+ -color-warning-subtle: #fff8c5;
+ -color-success-fg: #1a7f37;
+ -color-success-emphasis: #2da44e;
+ -color-success-muted: rgba(74, 194, 107, 0.4);
+ -color-success-subtle: #dafbe1;
+ -color-danger-fg: #cf222e;
+ -color-danger-emphasis: #cf222e;
+ -color-danger-muted: rgba(255, 129, 130, 0.4);
+ -color-danger-subtle: #ffebe9;
+ -color-chart-1: #f3622d;
+ -color-chart-2: #fba71b;
+ -color-chart-3: #57b757;
+ -color-chart-4: #41a9c9;
+ -color-chart-5: #4258c9;
+ -color-chart-6: #9a42c8;
+ -color-chart-7: #c84164;
+ -color-chart-8: #888888;
+ -color-chart-1-alpha70: rgba(243, 98, 45, 0.7);
+ -color-chart-2-alpha70: rgba(251, 167, 27, 0.7);
+ -color-chart-3-alpha70: rgba(87, 183, 87, 0.7);
+ -color-chart-4-alpha70: rgba(65, 169, 201, 0.7);
+ -color-chart-5-alpha70: rgba(66, 88, 201, 0.7);
+ -color-chart-6-alpha70: rgba(154, 66, 200, 0.7);
+ -color-chart-7-alpha70: rgba(200, 65, 100, 0.7);
+ -color-chart-8-alpha70: rgba(136, 136, 136, 0.7);
+ -color-chart-1-alpha20: rgba(243, 98, 45, 0.2);
+ -color-chart-2-alpha20: rgba(251, 167, 27, 0.2);
+ -color-chart-3-alpha20: rgba(87, 183, 87, 0.2);
+ -color-chart-4-alpha20: rgba(65, 169, 201, 0.2);
+ -color-chart-5-alpha20: rgba(66, 88, 201, 0.2);
+ -color-chart-6-alpha20: rgba(154, 66, 200, 0.2);
+ -color-chart-7-alpha20: rgba(200, 65, 100, 0.2);
+ -color-chart-8-alpha20: rgba(136, 136, 136, 0.2);
+ -fx-background-color: -color-bg-default;
+ -fx-font-size: 14px;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: inherit;
+}
+.root.popup {
+ -fx-background-color: transparent;
+}
+
+.ikonli-font-icon {
+ -fx-icon-color: -color-fg-default;
+ -fx-fill: -color-fg-default;
+ -fx-icon-size: 18px;
+}
+
+.mnemonic-underline {
+ -fx-stroke: transparent;
+}
+
+.text {
+ -fx-font-smoothing-type: lcd;
+ -fx-bounds-type: logical_vertical_center;
+}
+
+Text {
+ -fx-fill: -color-fg-default;
+}
+
+.title-1 {
+ -fx-font-size: 2em;
+ -fx-font-weight: bolder;
+}
+
+.title-2 {
+ -fx-font-size: 1.75em;
+ -fx-font-weight: bolder;
+}
+
+.title-3 {
+ -fx-font-size: 1.5em;
+ -fx-font-weight: bolder;
+}
+
+.title-4 {
+ -fx-font-size: 1.25em;
+ -fx-font-weight: normal;
+}
+
+.text-caption {
+ -fx-font-size: 1em;
+ -fx-font-weight: bold;
+}
+
+.text-small {
+ -fx-font-size: 0.8em;
+}
+
+.text.accent {
+ -fx-fill: -color-accent-fg;
+}
+
+.label.accent {
+ -fx-text-fill: -color-accent-fg;
+}
+
+.text.success {
+ -fx-fill: -color-success-fg;
+}
+
+.label.success {
+ -fx-text-fill: -color-success-fg;
+}
+
+.text.warning {
+ -fx-fill: -color-warning-fg;
+}
+
+.label.warning {
+ -fx-text-fill: -color-warning-fg;
+}
+
+.text.danger {
+ -fx-fill: -color-danger-fg;
+}
+
+.label.danger {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.text-bold {
+ -fx-font-weight: bold;
+}
+
+.text-bolder {
+ -fx-font-weight: bolder;
+}
+
+.text-normal {
+ -fx-font-weight: normal;
+}
+
+.text-lighter {
+ -fx-font-weight: lighter;
+}
+
+.text-italic {
+ -fx-font-style: italic;
+}
+
+.text-oblique {
+ -fx-font-style: oblique;
+}
+
+.text-underlined {
+ -fx-underline: true;
+}
+
+.text-strikethrough {
+ -fx-strikethrough: true;
+}
+
+.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+
+.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+
+.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+
+.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+
+.accordion > .titled-pane.first-titled-pane > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px 4px 0 0;
+}
+.accordion > .titled-pane > .title {
+ -fx-background-insets: 0, 0 1px 1px 1px;
+ -fx-background-radius: 0;
+}
+
+.bread-crumb-bar > .button.flat {
+ -fx-padding: 8px 2px 8px 9px;
+ -fx-content-display: RIGHT;
+}
+.bread-crumb-bar > .button.flat.first {
+ -fx-padding: 8px 2px 8px 12px;
+}
+.bread-crumb-bar > .button.flat.last {
+ -fx-padding: 8px 12px 8px 9px;
+}
+.bread-crumb-bar > .button.flat.last .font-icon, .bread-crumb-bar > .button.flat.last .ikonli-font-icon {
+ -fx-min-width: 0;
+ -fx-pref-width: 0;
+ -fx-max-width: 0;
+ visibility: hidden;
+}
+
+.button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.button .font-icon, .button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.button:disabled {
+ -fx-opacity: 0.4;
+}
+.button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.button.button-icon {
+ -fx-padding: 8px;
+}
+.button.button-icon > .text {
+ visibility: hidden;
+}
+.button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.button.button-circle .text {
+ visibility: hidden;
+}
+.button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.button.left-pill:hover, .button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.button.center-pill:hover, .button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.button.right-pill:hover, .button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-text-fill: -color-button-fg-hover;
+ -fx-opacity: 0.9;
+}
+.button:hover:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-hover;
+}
+.button:hover .font-icon, .button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+ -fx-text-fill: -color-button-fg-focused;
+}
+.button:focused .font-icon, .button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.button:armed, .button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.button:armed .font-icon, .button:armed .ikonli-font-icon, .button:focused:armed .font-icon, .button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.button:default, .button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button:default.button-outlined, .button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button:default.flat, .button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-5;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+.button.flat:hover {
+ -fx-underline: true;
+}
+.button.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.button.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.button.rounded {
+ -fx-background-radius: 10em;
+}
+
+.chart {
+ -fx-padding: 4px;
+}
+.chart > .chart-title {
+ -fx-font-size: 1.25em;
+}
+.chart > .chart-content {
+ -fx-padding: 10px;
+}
+.chart > .chart-content > .chart-plot-background {
+ -fx-background-color: -color-bg-default;
+}
+.chart:disabled > .chart-content {
+ -fx-opacity: 0.4;
+}
+.chart:disabled > .chart-content .label {
+ -fx-opacity: 1;
+}
+.chart > .chart-legend {
+ -fx-padding: 6px;
+}
+.chart .axis {
+ -fx-axis-color: -color-border-default;
+ -fx-tick-label-font-size: 0.8em;
+ -fx-tick-label-fill: -color-fg-default;
+}
+.chart .axis:top {
+ -fx-border-color: transparent transparent -fx-axis-color transparent;
+}
+.chart .axis:right {
+ -fx-border-color: transparent transparent transparent -fx-axis-color;
+}
+.chart .axis:bottom {
+ -fx-border-color: -fx-axis-color transparent transparent transparent;
+}
+.chart .axis:left {
+ -fx-border-color: transparent -fx-axis-color transparent transparent;
+}
+.chart .axis:top > .axis-label, .chart .axis:left > .axis-label {
+ -fx-padding: 0 0 4px 0;
+}
+.chart .axis:bottom > .axis-label, .chart .axis:right > .axis-label {
+ -fx-padding: 4px 0 0 0;
+}
+.chart .axis > .axis-tick-mark,
+.chart .axis > .axis-minor-tick-mark {
+ -fx-fill: none;
+ -fx-stroke: -fx-axis-color;
+}
+.chart .chart-horizontal-grid-lines,
+.chart .chart-vertical-grid-lines {
+ -fx-stroke: -color-border-muted;
+ -fx-stroke-dash-array: 0.25em, 0.25em;
+}
+.chart .chart-alternative-row-fill,
+.chart .chart-alternative-column-fill {
+ -fx-fill: none;
+ -fx-stroke: none;
+}
+.chart .chart-vertical-zero-line,
+.chart .chart-horizontal-zero-line {
+ -fx-stroke: -color-fg-default;
+}
+
+.chart-symbol {
+ -fx-background-color: -color-chart-1;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color1.chart-symbol {
+ -fx-background-color: -color-chart-2;
+ -fx-background-radius: 0;
+}
+
+.default-color2.chart-symbol {
+ -fx-background-color: -color-chart-3;
+ -fx-background-radius: 0;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.default-color3.chart-symbol {
+ -fx-background-color: -color-chart-4;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M2,0 L5,4 L8,0 L10,0 L10,2 L6,5 L10,8 L10,10 L8,10 L5,6 L2,10 L0,10 L0,8 L4,5 L0,2 L0,0 Z";
+}
+
+.default-color4.chart-symbol {
+ -fx-background-color: -color-chart-5;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+ -fx-shape: "M5,0 L10,8 L0,8 Z";
+}
+
+.default-color5.chart-symbol {
+ -fx-background-color: -color-chart-6, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.default-color6.chart-symbol {
+ -fx-background-color: -color-chart-7, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 0;
+}
+
+.default-color7.chart-symbol {
+ -fx-background-color: -color-chart-8, white;
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 2.5;
+ -fx-padding: 7px 5px 7px 5px;
+ -fx-shape: "M5,0 L10,9 L5,18 L0,9 Z";
+}
+
+.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 2;
+ -fx-background-radius: 5px;
+ -fx-padding: 5px;
+}
+
+.chart-series-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 3px;
+}
+
+.default-color0.chart-line-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-line-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-line-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-line-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-line-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-line-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-line-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-line-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.default-color0.chart-series-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px;
+}
+
+.default-color0.chart-area-symbol {
+ -fx-background-color: -color-chart-1, white;
+}
+
+.default-color1.chart-area-symbol {
+ -fx-background-color: -color-chart-2, white;
+}
+
+.default-color2.chart-area-symbol {
+ -fx-background-color: -color-chart-3, white;
+}
+
+.default-color3.chart-area-symbol {
+ -fx-background-color: -color-chart-4, white;
+}
+
+.default-color4.chart-area-symbol {
+ -fx-background-color: -color-chart-5, white;
+}
+
+.default-color5.chart-area-symbol {
+ -fx-background-color: -color-chart-6, white;
+}
+
+.default-color6.chart-area-symbol {
+ -fx-background-color: -color-chart-7, white;
+}
+
+.default-color7.chart-area-symbol {
+ -fx-background-color: -color-chart-8, white;
+}
+
+.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+ -fx-stroke-width: 1px;
+}
+
+.default-color0.chart-series-area-line {
+ -fx-stroke: -color-chart-1;
+}
+
+.default-color1.chart-series-area-line {
+ -fx-stroke: -color-chart-2;
+}
+
+.default-color2.chart-series-area-line {
+ -fx-stroke: -color-chart-3;
+}
+
+.default-color3.chart-series-area-line {
+ -fx-stroke: -color-chart-4;
+}
+
+.default-color4.chart-series-area-line {
+ -fx-stroke: -color-chart-5;
+}
+
+.default-color5.chart-series-area-line {
+ -fx-stroke: -color-chart-6;
+}
+
+.default-color6.chart-series-area-line {
+ -fx-stroke: -color-chart-7;
+}
+
+.default-color7.chart-series-area-line {
+ -fx-stroke: -color-chart-8;
+}
+
+.chart-series-area-fill {
+ -fx-stroke: none;
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color0.chart-series-area-fill {
+ -fx-fill: -color-chart-1-alpha20;
+}
+
+.default-color1.chart-series-area-fill {
+ -fx-fill: -color-chart-2-alpha20;
+}
+
+.default-color2.chart-series-area-fill {
+ -fx-fill: -color-chart-3-alpha20;
+}
+
+.default-color3.chart-series-area-fill {
+ -fx-fill: -color-chart-4-alpha20;
+}
+
+.default-color4.chart-series-area-fill {
+ -fx-fill: -color-chart-5-alpha20;
+}
+
+.default-color5.chart-series-area-fill {
+ -fx-fill: -color-chart-6-alpha20;
+}
+
+.default-color6.chart-series-area-fill {
+ -fx-fill: -color-chart-7-alpha20;
+}
+
+.default-color7.chart-series-area-fill {
+ -fx-fill: -color-chart-8-alpha20;
+}
+
+.area-legend-symbol {
+ -fx-padding: 6px;
+ -fx-background-radius: 6px;
+ -fx-background-insets: 0, 3;
+}
+
+.bubble-legend-symbol {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+}
+
+.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+ -fx-background-color: radial-gradient(center 50% 50%, radius 80%, derive(-fx-bubble-fill, 20%), derive(-fx-bubble-fill, -30%));
+}
+
+.default-color0.chart-bubble {
+ -fx-bubble-fill: -color-chart-1-alpha70;
+}
+
+.default-color1.chart-bubble {
+ -fx-bubble-fill: -color-chart-2-alpha70;
+}
+
+.default-color2.chart-bubble {
+ -fx-bubble-fill: -color-chart-3-alpha70;
+}
+
+.default-color3.chart-bubble {
+ -fx-bubble-fill: -color-chart-4-alpha70;
+}
+
+.default-color4.chart-bubble {
+ -fx-bubble-fill: -color-chart-5-alpha70;
+}
+
+.default-color5.chart-bubble {
+ -fx-bubble-fill: -color-chart-6-alpha70;
+}
+
+.default-color6.chart-bubble {
+ -fx-bubble-fill: -color-chart-7-alpha70;
+}
+
+.default-color7.chart-bubble {
+ -fx-bubble-fill: -color-chart-8-alpha70;
+}
+
+.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+ -fx-background-color: linear-gradient(to right, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+ -fx-background-insets: 0;
+}
+
+.chart-bar.danger {
+ -fx-background-insets: 1 0 0 0;
+}
+
+.bar-chart:horizontal .chart-bar {
+ -fx-background-insets: 0 0 0 1;
+}
+
+.bar-chart:horizontal .chart-bar,
+.stacked-bar-chart:horizontal .chart-bar {
+ -fx-background-color: linear-gradient(to bottom, derive(-fx-bar-fill, -4%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, 0%), derive(-fx-bar-fill, -1%), derive(-fx-bar-fill, -6%));
+}
+
+.default-color0.chart-bar {
+ -fx-bar-fill: -color-chart-1;
+}
+
+.default-color1.chart-bar {
+ -fx-bar-fill: -color-chart-2;
+}
+
+.default-color2.chart-bar {
+ -fx-bar-fill: -color-chart-3;
+}
+
+.default-color3.chart-bar {
+ -fx-bar-fill: -color-chart-4;
+}
+
+.default-color4.chart-bar {
+ -fx-bar-fill: -color-chart-5;
+}
+
+.default-color5.chart-bar {
+ -fx-bar-fill: -color-chart-6;
+}
+
+.default-color6.chart-bar {
+ -fx-bar-fill: -color-chart-7;
+}
+
+.default-color7.chart-bar {
+ -fx-bar-fill: -color-chart-8;
+}
+
+.bar-legend-symbol {
+ -fx-padding: 8px;
+}
+
+.chart-pie {
+ -fx-pie-color: -color-chart-1;
+ -fx-background-color: radial-gradient(radius 100%, derive(-fx-pie-color, 20%), derive(-fx-pie-color, -10%));
+ -fx-background-insets: 1;
+ -fx-border-color: -color-bg-default;
+}
+
+.chart-pie-label {
+ -fx-padding: 3px;
+ -fx-fill: -color-fg-default;
+}
+
+.chart-pie-label-line {
+ -fx-stroke: derive(-color-bg-default, -20%);
+}
+
+.default-color0.chart-pie {
+ -fx-pie-color: -color-chart-1;
+}
+
+.default-color1.chart-pie {
+ -fx-pie-color: -color-chart-2;
+}
+
+.default-color2.chart-pie {
+ -fx-pie-color: -color-chart-3;
+}
+
+.default-color3.chart-pie {
+ -fx-pie-color: -color-chart-4;
+}
+
+.default-color4.chart-pie {
+ -fx-pie-color: -color-chart-5;
+}
+
+.default-color5.chart-pie {
+ -fx-pie-color: -color-chart-6;
+}
+
+.default-color6.chart-pie {
+ -fx-pie-color: -color-chart-7;
+}
+
+.default-color7.chart-pie {
+ -fx-pie-color: -color-chart-8;
+}
+
+.danger.chart-pie {
+ -fx-pie-color: transparent;
+ -fx-background-color: white;
+}
+
+.pie-legend-symbol.chart-pie {
+ -fx-background-radius: 8px;
+ -fx-padding: 8px;
+ -fx-border-color: none;
+}
+
+.check-box {
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.check-box > .box {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-alignment: CENTER;
+}
+.check-box > .box > .mark {
+ -fx-background-color: -color-bg-default;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.check-box:indeterminate > .box > .mark {
+ -fx-background-color: -color-fg-muted;
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.check-box:disabled {
+ -fx-opacity: 0.4;
+}
+.check-box:disabled > .box {
+ -fx-opacity: 0.4;
+}
+.check-box:selected > .box {
+ -fx-background-color: -color-accent-emphasis, -color-accent-emphasis;
+}
+.check-box:selected > .box > .mark {
+ -fx-background-color: -color-fg-emphasis;
+}
+.check-box:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.color-picker > .color-picker-label {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.color-picker > .color-picker-label > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.color-picker > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: -color-border-default;
+}
+.color-picker.button > .color-picker-label {
+ -fx-padding: 0;
+}
+
+.color-palette {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-spacing: 10px;
+ -fx-padding: 1em;
+}
+.color-palette > .color-picker-grid {
+ -fx-padding: 0.5px;
+ -fx-snap-to-pixel: false;
+}
+.color-palette > .color-picker-grid > .color-square {
+ -fx-background-color: transparent;
+ -fx-padding: 0.5px;
+}
+
+.color-palette-region {
+ -fx-effect: dropshadow(gaussian, transparent, 12, 0, 0, 8);
+}
+.color-palette-region > .color-square.hover-square {
+ -fx-background-color: -color-accent-fg, -color-bg-default;
+ -fx-background-insets: -2, -1;
+ -fx-background-radius: 5, 0;
+ -fx-scale-x: 1.5;
+ -fx-scale-y: 1.5;
+ -fx-border-color: -color-accent-fg;
+ -fx-border-insets: -1, -1;
+}
+
+.custom-color-dialog {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 1.25em;
+ -fx-spacing: 1.25em;
+}
+.custom-color-dialog > .color-rect-pane {
+ -fx-spacing: 1em;
+ -fx-pref-height: 16em;
+ -fx-alignment: TOP-LEFT;
+ -fx-fill-height: true;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect {
+ -fx-min-width: 16em;
+ -fx-min-height: 16em;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect .color-rect-border {
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-rect #color-rect-indicator {
+ -fx-background-color: none;
+ -fx-border-color: white;
+ -fx-border-radius: 0.4166667em;
+ -fx-pref-width: 0.833333em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.4166667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .color-rect-pane > .color-bar {
+ -fx-min-width: 1.666667em;
+ -fx-min-height: 16.666667em;
+ -fx-max-width: 1.666667em;
+ -fx-border-color: -color-border-default;
+}
+.custom-color-dialog > .color-rect-pane > .color-bar #color-bar-indicator {
+ -fx-border-radius: 0.333333em;
+ -fx-border-color: white;
+ -fx-pref-width: 2em;
+ -fx-pref-height: 0.833333em;
+ -fx-translate-x: -0.1666667em;
+ -fx-translate-y: -0.4166667em;
+ -fx-effect: dropshadow(three-pass-box, black, 2, 0, 0, 1);
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .label {
+ -fx-padding: 0 0 0 2px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #current-new-color-border {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 1px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > .color-rect {
+ -fx-min-width: 10em;
+ -fx-pref-width: 10em;
+ -fx-min-height: 1.75em;
+ -fx-pref-height: 1.75em;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer1 {
+ -fx-min-height: 5px;
+ -fx-pref-height: 5px;
+ -fx-max-height: 5px;
+}
+.custom-color-dialog > .controls-pane > .current-new-color-grid > #spacer2 {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+ -fx-max-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane {
+ -fx-hgap: 6px;
+ -fx-vgap: 6px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .customcolor-controls-background {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 13px 0 5px 0, 14px 1px 6px 1px;
+ -fx-background-radius: 4px;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-label {
+ -fx-min-width: 5.75em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .settings-unit {
+ -fx-min-width: 1.5em;
+ -fx-pref-width: 1.5em;
+ -fx-max-width: 1.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .slider {
+ -fx-pref-width: 10em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .color-input-field {
+ -fx-max-width: 4em;
+ -fx-pref-width: 4em;
+ -fx-min-width: 4em;
+ -fx-pref-column-count: 3;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-side {
+ -fx-min-width: 0.5em;
+ -fx-pref-width: 0.5em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > #spacer-bottom {
+ -fx-min-height: 1em;
+ -fx-pref-height: 1em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .web-field {
+ -fx-pref-column-count: 6;
+ -fx-pref-width: 8em;
+}
+.custom-color-dialog > .controls-pane #settings-pane > .webcolor-field:dir(rtl) > .text-field:dir(ltr) {
+ -fx-alignment: BASELINE_RIGHT;
+}
+.custom-color-dialog > .controls-pane > #buttons-hbox {
+ -fx-spacing: 10px;
+ -fx-padding: 1em 0 0 0;
+ -fx-alignment: BOTTOM_RIGHT;
+}
+.custom-color-dialog > .controls-pane .transparent-pattern {
+ -fx-background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAIAAABLbSncAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCOTBEQkE1RjJFMjA2ODExOUExMUM5NDhFOTUyQzM3MCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpGRkE3MDZERThFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpGRkE3MDZERDhFNUYxMUUxQjU5RUNFQTE3OTA1RDFFMSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1LjEgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDk4MDExNzQwNzIwNjgxMTg3MUZDMUExNDFCMTYwNzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjkwREJBNUYyRTIwNjgxMTlBMTFDOTQ4RTk1MkMzNzAiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz71FDCdAAAAKElEQVR42mI8c+YMAwwYGxvD2UwMOADpEoz///+Hc86ePUsLOwACDABC1ghwV8TLOQAAAABJRU5ErkJggg==");
+ -fx-background-repeat: repeat;
+ -fx-background-size: auto;
+}
+
+.combo-box-base {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+}
+.combo-box-base:disabled {
+ -fx-opacity: 0.4;
+}
+.combo-box-base:success, .combo-box-base:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.combo-box-base:danger, .combo-box-base:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.combo-box-base:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.combo-box-base.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.combo-box-base.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.combo-box-base.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.combo-box-base.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.combo-box-base > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.combo-box-base > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.combo-box-base > .text-field {
+ -fx-background-insets: 0, 1 0 1 1;
+ -fx-background-radius: 4px 0 0 4px;
+}
+.combo-box-base:success > .arrow-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.combo-box-base:danger > .arrow-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.combo-box-base.alt-icon > .arrow-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.combo-box > .list-cell {
+ -fx-background-color: transparent;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box:success > .list-cell {
+ -fx-text-fill: -color-success-fg;
+}
+.combo-box:danger > .list-cell {
+ -fx-text-fill: -color-danger-fg;
+}
+
+.combo-box-popup > .list-view {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell {
+ -fx-cell-size: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-graphic-text-gap: 6px;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:hover {
+ -fx-background-color: -color-base-1;
+}
+.combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected, .combo-box-popup > .list-view > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected:hover {
+ -fx-background-color: -color-base-2;
+}
+.combo-box-popup > .list-view > .placeholder > .label {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.choice-box {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-fg-default;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.choice-box:disabled {
+ -fx-opacity: 0.4;
+}
+.choice-box:success, .choice-box:success:focused {
+ -fx-background-color: -color-success-emphasis, -color-bg-default;
+}
+.choice-box:danger, .choice-box:danger:focused {
+ -fx-background-color: -color-danger-emphasis, -color-bg-default;
+}
+.choice-box:focused {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.choice-box.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.choice-box.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.choice-box.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.choice-box.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.choice-box > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.choice-box > .open-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+.choice-box:success > .label {
+ -fx-text-fill: -color-success-fg;
+}
+.choice-box:success > .open-button > .arrow {
+ -fx-background-color: -color-success-fg;
+}
+.choice-box:danger > .label {
+ -fx-text-fill: -color-danger-fg;
+}
+.choice-box:danger > .open-button > .arrow {
+ -fx-background-color: -color-danger-fg;
+}
+.choice-box.alt-icon > .open-button > .arrow {
+ -fx-shape: "M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z";
+ -fx-scale-shape: false;
+}
+
+.custom-text-field:left-node-visible {
+ -fx-padding: 8px 12px 8px 0;
+}
+.custom-text-field:left-node-visible .left-pane {
+ -fx-padding: 0 4px 0 6px;
+}
+.custom-text-field:right-node-visible {
+ -fx-padding: 8px 0 8px 12px;
+}
+.custom-text-field:right-node-visible .right-pane {
+ -fx-padding: 0 6px 0 4px;
+}
+.custom-text-field:left-node-visible:right-node-visible {
+ -fx-padding: 8px 0 8px 0;
+}
+.custom-text-field:success .font-icon, .custom-text-field:success .ikonli-font-icon {
+ -fx-icon-color: -color-success-fg;
+ -fx-fill: -color-success-fg;
+}
+.custom-text-field:danger .font-icon, .custom-text-field:danger .ikonli-font-icon {
+ -fx-icon-color: -color-danger-fg;
+ -fx-fill: -color-danger-fg;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected {
+ -color-cell-fg: -color-cell-fg-selected;
+ -fx-background-color: -color-cell-border, -color-cell-bg-selected;
+}
+
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell .table-cell:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell .tree-table-cell:selected {
+ -fx-background-color: -color-cell-bg-selected;
+ -fx-background-insets: 0 0 2 0;
+}
+
+.cell .text-input {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.cell .check-box {
+ -fx-padding: 0 6px 0 0;
+}
+.cell .choice-box {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 12px 0 0;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+}
+.cell .combo-box {
+ -fx-background-color: transparent;
+ -fx-alignment: CENTER_LEFT;
+ -fx-content-display: LEFT;
+ -fx-background-radius: 0;
+}
+.cell .combo-box .cell.list-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+}
+
+.list-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.list-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.list-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.list-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.list-view .list-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-cell-size: 2.8em;
+ -fx-border-width: 0 0 1 0;
+ -fx-border-color: transparent;
+}
+.list-view.bordered .list-cell {
+ -fx-border-color: -color-cell-border;
+}
+.list-view.dense .list-cell {
+ -fx-cell-size: 2em;
+}
+.list-view.striped .list-cell {
+ -fx-border-width: 0;
+}
+.list-view.striped .list-cell:odd {
+ -fx-background-color: -color-cell-bg-odd;
+}
+
+.table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.table-view.bordered .table-row-cell > .table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.table-view.bordered .table-row-cell > .table-cell:empty {
+ -fx-border-color: transparent;
+}
+.table-view.dense .table-row-cell {
+ -fx-cell-size: 2em;
+}
+.table-view.striped .table-row-cell {
+ -fx-background-insets: 0;
+}
+.table-view.striped.bordered .table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.table-view.striped .table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.table-view .table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+}
+.table-view .table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.table-view .table-row-cell:empty > .table-cell {
+ -fx-border-color: transparent;
+}
+.table-view .table-row-cell > .table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.table-view .table-row-cell > .table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .table-row-cell > .table-cell:last-visible,
+.tree-table-view:constrained-resize > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell > .tree-table-cell:last-visible {
+ -fx-border-color: transparent;
+}
+
+.table-view .table-row-cell > .table-cell.check-box-table-cell,
+.table-view .table-row-cell > .table-cell.font-icon-table-cell,
+.tree-table-view .tree-table-row-cell > .tree-table-cell.check-box-tree-table-cell {
+ -fx-alignment: CENTER_LEFT;
+}
+
+.tree-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+.tree-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.tree-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.tree-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-view.dense .tree-cell {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.tree-cell {
+ -fx-background-color: -color-cell-bg;
+ -fx-text-fill: -color-cell-fg;
+ -fx-padding: 0.5em 0 0.5em 0;
+ -fx-indent: 1em;
+}
+.tree-cell > .tree-disclosure-node {
+ -fx-padding: 5px 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+
+.tree-cell > .tree-disclosure-node > .arrow,
+.tree-table-row-cell > .tree-disclosure-node > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-cell-fg;
+ -fx-padding: 0.333333em 0.229em 0.333333em 0.229em;
+}
+
+.tree-cell:expanded > .tree-disclosure-node > .arrow,
+.tree-table-row-cell:expanded > .tree-disclosure-node > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+
+.tree-table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-1;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+.tree-table-view > .virtual-flow > .corner {
+ -fx-background-color: -color-cell-border;
+ -fx-opacity: 0.4;
+}
+.tree-table-view > .virtual-flow:disabled {
+ -fx-opacity: 0.4;
+}
+.tree-table-view.edge-to-edge {
+ -fx-border-width: 0;
+}
+.tree-table-view.bordered > .column-header-background .column-header {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 1 0 0;
+}
+.tree-table-view > .column-header-background {
+ -fx-background-color: -color-cell-border, -color-header-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view > .column-header-background .column-header {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-size: 2.2em;
+ -fx-padding: 0;
+ -fx-font-weight: bold;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 1 1 0;
+}
+.tree-table-view > .column-header-background .column-header .label {
+ -fx-text-fill: -color-header-fg;
+ -fx-alignment: CENTER_LEFT;
+ -fx-padding: 0 0.5em 0 0.5em;
+}
+.tree-table-view > .column-header-background .column-header GridPane {
+ -fx-padding: 0 4px 0 0;
+}
+.tree-table-view > .column-header-background .column-header .arrow {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 3px 4px 3px 4px;
+ -fx-shape: "M 0 0 h 7 l -3.5 4 z";
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container {
+ -fx-padding: 2px 0 2px 0;
+}
+.tree-table-view > .column-header-background .column-header .sort-order-dots-container > .sort-order-dot {
+ -fx-background-color: -color-header-fg;
+ -fx-padding: 0.115em;
+ -fx-background-radius: 0.115em;
+}
+.tree-table-view > .column-header-background .column-header .sort-order {
+ -fx-padding: 0 0 0 2px;
+}
+.tree-table-view > .column-header-background > .filler {
+ -fx-background-color: transparent;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button {
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 0 0 1 0;
+ -fx-cursor: hand;
+}
+.tree-table-view > .column-header-background > .show-hide-columns-button > .show-hide-column-image {
+ -fx-background-color: -color-header-fg;
+ -fx-shape: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z";
+ -fx-scale-shape: true;
+ -fx-padding: 0.4em 0.115em 0.4em 0.115em;
+}
+.tree-table-view .column-resize-line {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0 1 0 1;
+}
+.tree-table-view .column-drag-header {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .column-overlay {
+ -fx-background-color: -color-accent-muted;
+}
+.tree-table-view .placeholder > .label {
+ -fx-font-size: 1.25em;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell {
+ -fx-border-color: transparent -color-cell-border transparent transparent;
+}
+.tree-table-view.bordered .tree-table-row-cell > .tree-table-cell:empty {
+ -fx-border-color: transparent;
+}
+.tree-table-view.dense .tree-table-row-cell {
+ -fx-cell-size: 2em;
+}
+.tree-table-view.dense .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 0.6em 0.5em 0 0.5em;
+}
+.tree-table-view.striped .tree-table-row-cell {
+ -fx-background-insets: 0;
+}
+.tree-table-view.striped.bordered .tree-table-row-cell {
+ -fx-background-insets: 0, 0 0 1 0;
+}
+.tree-table-view.striped .tree-table-row-cell:filled:odd {
+ -fx-background-color: -color-cell-border, -color-cell-bg-odd;
+}
+.tree-table-view .tree-table-row-cell {
+ -fx-background-color: -color-cell-border, -color-cell-bg;
+ -fx-background-insets: 0, 0 0 1 0;
+ -fx-padding: 0;
+ -fx-cell-size: 2.8em;
+ -fx-indent: 1em;
+}
+.tree-table-view .tree-table-row-cell:empty {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+}
+.tree-table-view .tree-table-row-cell > .tree-disclosure-node {
+ -fx-padding: 1em 0.5em 0 0.5em;
+ -fx-background-color: transparent;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell {
+ -fx-padding: 0 0.5em 0 0.5em;
+ -fx-text-fill: -color-cell-fg;
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-left {
+ -fx-alignment: CENTER_LEFT;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-center {
+ -fx-alignment: CENTER;
+}
+.tree-table-view .tree-table-row-cell > .tree-table-cell.table-column.align-right {
+ -fx-alignment: CENTER-RIGHT;
+}
+
+.combo-box-base.date-picker > .arrow-button {
+ -fx-cursor: hand;
+}
+.combo-box-base.date-picker > .arrow-button > .arrow {
+ -fx-shape: "M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V10h16v11zm0-13H4V5h16v3z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 0.416667em;
+}
+
+.date-picker-popup {
+ -color-date-bg: -color-bg-default;
+ -color-date-border: -color-border-default;
+ -color-date-month-year-bg: -color-bg-default;
+ -color-date-month-year-fg: -color-fg-default;
+ -color-date-day-bg: -color-bg-default;
+ -color-date-day-bg-hover: -color-bg-subtle;
+ -color-date-day-bg-selected: -color-accent-emphasis;
+ -color-date-day-fg: -color-fg-default;
+ -color-date-day-fg-hover: -color-fg-default;
+ -color-date-day-fg-selected: -color-fg-emphasis;
+ -color-date-week-bg: -color-bg-default;
+ -color-date-week-fg: -color-accent-fg;
+ -color-date-today-bg: -color-accent-subtle;
+ -color-date-today-fg: -color-accent-fg;
+ -color-date-other-month-fg: -color-fg-muted;
+ -color-date-chrono-fg: -color-success-fg;
+ -fx-background-color: -color-date-border, -color-date-bg;
+ -fx-background-insets: 0, 1;
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+ -fx-spacing: 0;
+ -fx-padding: 1px;
+}
+.date-picker-popup > .month-year-pane {
+ -fx-padding: 8px 8px 8px 8px;
+ -fx-background-color: -color-date-month-year-bg;
+ -fx-background-insets: 0;
+}
+.date-picker-popup > .month-year-pane > .spinner {
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER;
+ -fx-fill-height: false;
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-font-size: 1.1em;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .spinner > .label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .month-year-pane > .secondary-label {
+ -fx-alignment: BASELINE_CENTER;
+ -fx-padding: 0.5em 0 0 0;
+ -fx-text-fill: -color-date-month-year-fg;
+}
+.date-picker-popup > .calendar-grid {
+ -fx-background-color: -color-date-bg;
+ -fx-padding: 8px;
+}
+.date-picker-popup > .calendar-grid > .date-cell {
+ -fx-background-color: transparent;
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_CENTER;
+ -fx-opacity: 1;
+ -fx-text-fill: -color-date-day-fg;
+}
+.date-picker-popup > .calendar-grid > .week-number-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-week-bg;
+ -fx-text-fill: -color-date-week-fg;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .day-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-background-color: -color-date-day-bg;
+}
+.date-picker-popup > .calendar-grid > .day-cell > .secondary-text {
+ -fx-fill: -color-date-chrono-fg;
+}
+.date-picker-popup > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 0.4;
+}
+.date-picker-popup > .calendar-grid .day-name-cell {
+ -fx-padding: 8px 4px 8px 4px;
+ -fx-font-size: 0.9em;
+}
+.date-picker-popup > .calendar-grid > .hijrah-day-cell {
+ -fx-alignment: TOP_LEFT;
+ -fx-padding: 0.083333em 4px 0.083333em 0.333333em;
+ -fx-cell-size: 2.75em;
+}
+.date-picker-popup > .calendar-grid > .today {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+ -fx-font-weight: bold;
+}
+
+.inline-date-picker {
+ -fx-effect: none;
+}
+.inline-date-picker > .top-node,
+.inline-date-picker > .bottom-node {
+ -fx-padding: 8px 16px 8px 16px;
+}
+.inline-date-picker > .month-year-pane {
+ -fx-padding: 8px 16px 8px 16px;
+ -fx-alignment: CENTER_LEFT;
+ -fx-spacing: 6px;
+}
+.inline-date-picker > .month-year-pane > .button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-cursor: hand;
+}
+.inline-date-picker > .month-year-pane > .back-button {
+ -fx-padding: 0 1em 0 0;
+}
+.inline-date-picker > .month-year-pane > .back-button > .left-arrow {
+ -fx-shape: "M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .forward-button > .right-arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-date-month-year-fg;
+}
+.inline-date-picker > .month-year-pane > .label {
+ -fx-text-fill: -color-date-month-year-fg;
+ -fx-font-size: 1.1em;
+}
+.inline-date-picker:disabled > .calendar-grid {
+ -fx-opacity: 0.4;
+}
+.inline-date-picker:disabled > .calendar-grid > .day-cell:disabled {
+ -fx-opacity: 1;
+}
+
+.date-picker-popup > .calendar-grid > .selected,
+.date-picker-popup > .calendar-grid > .selected > .secondary-text,
+.date-picker-popup > .calendar-grid > .previous-month.selected,
+.date-picker-popup > .calendar-grid > .previous-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.today.selected,
+.date-picker-popup > .calendar-grid > .next-month.selected {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+ -fx-font-weight: normal;
+}
+
+.date-picker-popup > .calendar-grid > .day-cell:hover {
+ -fx-background-color: -color-date-day-bg-hover;
+}
+
+.date-picker-popup > .calendar-grid > .today:hover {
+ -fx-background-color: -color-date-today-bg;
+ -fx-text-fill: -color-date-today-fg;
+}
+
+.date-picker-popup > .calendar-grid > .selected:hover {
+ -fx-background-color: -color-date-day-bg-selected;
+ -fx-text-fill: -color-date-day-fg-selected;
+ -fx-fill: -color-date-day-fg-selected;
+}
+
+.date-picker-popup > .calendar-grid > .previous-month,
+.date-picker-popup > .calendar-grid > .next-month,
+.date-picker-popup > .calendar-grid > .previous-month.today,
+.date-picker-popup > .calendar-grid > .next-month.today,
+.date-picker-popup > .calendar-grid > .previous-month > .secondary-text,
+.date-picker-popup > .calendar-grid > .next-month > .secondary-text {
+ -fx-text-fill: -color-date-other-month-fg;
+ -fx-fill: -color-date-other-month-fg;
+ -fx-font-weight: normal;
+}
+
+.dialog-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 0;
+ -fx-max-width: 600px;
+}
+.dialog-pane > .expandable-content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container {
+ -fx-padding: 2em 1em 1em 1em;
+}
+.dialog-pane > .button-bar > .container > .details-button {
+ -fx-padding: 0;
+ -fx-alignment: BASELINE_LEFT;
+ -fx-focus-traversable: false;
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane > .button-bar > .container > .details-button:hover {
+ -fx-underline: true;
+}
+.dialog-pane > .content {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane > .content.label {
+ -fx-alignment: TOP_LEFT;
+}
+.dialog-pane:header > .header-panel {
+ -fx-padding: 1em 1em 1em 1em;
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.dialog-pane:header > .header-panel > .label {
+ -fx-wrap-text: true;
+}
+.dialog-pane:header > .header-panel > .graphic-container {
+ -fx-padding: 0 0 0 1em;
+}
+.dialog-pane:no-header > .content {
+ -fx-padding: 1em 1em 0 0;
+}
+.dialog-pane:no-header > * > .graphic-container {
+ -fx-padding: 1em 1em 0 1em;
+}
+.dialog-pane.information > .header-panel {
+ -fx-background-color: -color-accent-fg, -color-bg-subtle;
+}
+.dialog-pane.information > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.warning > .header-panel {
+ -fx-background-color: -color-warning-fg, -color-bg-subtle;
+}
+.dialog-pane.warning > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+.dialog-pane.error > .header-panel {
+ -fx-background-color: -color-danger-fg, -color-bg-subtle;
+}
+.dialog-pane.error > .header-panel > .label {
+ -fx-text-fill: -color-fg-default;
+}
+
+.alert.information.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.warning.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.error.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.alert.confirmation.dialog-pane,
+.text-input-dialog.dialog-pane,
+.choice-dialog.dialog-pane {
+ -fx-graphic: url("data:image/png;base64,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");
+}
+
+.html-editor {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 2px;
+}
+.html-editor:contains-focus {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.html-editor .tool-bar {
+ -fx-padding: 4px;
+}
+.html-editor .button,
+.html-editor .toggle-button {
+ -fx-background-insets: 0;
+}
+.html-editor .toggle-button {
+ -color-button-bg-selected: -color-base-1;
+ -color-button-border-focused: transparent;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-background {
+ -fx-color-rect-x: 0;
+ -fx-color-rect-y: -4px;
+ -fx-color-rect-width: 8px;
+ -fx-color-rect-height: 8px;
+ -fx-color-label-visible: false;
+}
+.color-picker.html-editor-foreground > .color-picker-label > .picker-color > .picker-color-rect, .color-picker.html-editor-background > .color-picker-label > .picker-color > .picker-color-rect {
+ -fx-stroke: none;
+}
+
+.color-picker.html-editor-foreground {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Text-Color.png");
+}
+
+.color-picker.html-editor-background {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Background-Color.png");
+}
+
+.html-editor-cut {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Cut.png");
+}
+
+.html-editor-copy {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Copy.png");
+}
+
+.html-editor-paste {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Paste.png");
+}
+
+.html-editor-align-left {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Left.png");
+}
+
+.html-editor-align-center {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Center.png");
+}
+
+.html-editor-align-right {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Right.png");
+}
+
+.html-editor-align-justify {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Justify.png");
+}
+
+.html-editor-outdent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent.png");
+}
+
+.html-editor-outdent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Outdent-rtl.png");
+}
+
+.html-editor-indent {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent.png");
+}
+
+.html-editor-indent:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Indent-rtl.png");
+}
+
+.html-editor-bullets {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets.png");
+}
+
+.html-editor-bullets:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bullets-rtl.png");
+}
+
+.html-editor-numbers {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered.png");
+}
+
+.html-editor-numbers:dir(rtl) {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Numbered-rtl.png");
+}
+
+.html-editor-bold {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Bold.png");
+}
+
+.html-editor-italic {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Italic.png");
+}
+
+.html-editor-underline {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Underline.png");
+}
+
+.html-editor-strike {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Strikethrough.png");
+}
+
+.html-editor-hr {
+ -fx-graphic: url("/com/sun/javafx/scene/control/skin/modena/HTMLEditor-Break.png");
+}
+
+.hyperlink {
+ -color-link-fg: -color-accent-fg;
+ -color-link-fg-visited: -color-fg-default;
+ -color-link-fg-armed: -color-fg-default;
+ -fx-cursor: hand;
+ -fx-underline: true;
+ -fx-text-fill: -color-link-fg;
+}
+.hyperlink:visited {
+ -fx-text-fill: -color-link-fg-visited;
+}
+.hyperlink:armed {
+ -fx-text-fill: -color-link-fg-armed;
+ -fx-underline: false;
+}
+.hyperlink:disabled {
+ -fx-opacity: 0.4;
+}
+.hyperlink:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -fx-text-fill;
+}
+
+.label {
+ -fx-text-fill: -color-fg-default;
+}
+.label:disabled {
+ -fx-opacity: 0.4;
+}
+.label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0 0 0 0, 0 0 1 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0 0 1px 0;
+ -fx-background-radius: 0;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-bar > .container > .menu-button > .label {
+ -fx-padding: 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-bar > .container > .menu-button > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-bar > .container > .menu-button > .arrow-button > .arrow {
+ -fx-padding: 0;
+ -fx-background-color: transparent;
+}
+.menu-bar > .container > .menu-button:hover, .menu-bar > .container > .menu-button:focused, .menu-bar > .container > .menu-button:showing {
+ -fx-background-color: -color-base-1, -color-base-1;
+}
+
+.menu {
+ -fx-background-color: transparent;
+}
+.menu > .right-container > .arrow {
+ -fx-shape: "M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-muted;
+}
+
+.menu-up-arrow {
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-down-arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-padding: 3px 4px 3px 4px;
+}
+
+.menu-item {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0 6px 0 0;
+}
+.menu-item > .label {
+ -fx-padding: 0 1em 0 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-item > .left-container {
+ -fx-padding: 0 1em 0 0;
+}
+.menu-item > .right-container {
+ -fx-padding: 0 0 0 0.5em;
+}
+.menu-item:focused {
+ -fx-background-color: -color-base-1, -color-base-1;
+}
+.menu-item:disabled {
+ -fx-opacity: 0.4;
+ -fx-background-color: -color-bg-default;
+}
+
+.radio-menu-item:checked > .left-container > .radio,
+.check-menu-item:checked > .left-container > .check {
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+ -fx-background-color: -color-fg-muted;
+ -fx-min-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-max-width: 0.75em;
+}
+
+.caption-menu-item {
+ -fx-padding: 8px 12px 8px 12px;
+}
+.caption-menu-item:hover, .caption-menu-item:focused, .caption-menu-item:pressed {
+ -fx-background-color: transparent;
+}
+.caption-menu-item > .label > .text {
+ -fx-font-weight: bold;
+}
+
+.context-menu {
+ -fx-background-color: -color-border-muted, -color-bg-default;
+ -fx-background-insets: 0, 1;
+ -fx-padding: 2px 2px 2px 2px;
+ -fx-background-radius: 4px;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
+.context-menu > .scroll-arrow {
+ -fx-padding: 0.5em;
+ -fx-background-color: transparent;
+}
+.context-menu > .scroll-arrow:hover {
+ -fx-background-color: -color-base-1;
+ -fx-text-fill: -color-fg-default;
+}
+.context-menu .separator:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.context-menu .separator:horizontal .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0.5em 0 0.5em;
+}
+
+.context-menu:show-mnemonics > .mnemonic-underline,
+.menu:show-mnemonics > .mnemonic-underline,
+.menu-bar:show-mnemonics > .mnemonic-underline,
+.menu-item > .label:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.menu-button,
+.split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 0;
+ -fx-alignment: CENTER_LEFT;
+}
+.menu-button .font-icon, .menu-button .ikonli-font-icon,
+.split-menu-button .font-icon,
+.split-menu-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.menu-button:disabled,
+.split-menu-button:disabled {
+ -fx-opacity: 0.4;
+}
+.menu-button:show-mnemonics > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 8px;
+}
+.menu-button.button-icon > .text,
+.split-menu-button.button-icon > .text {
+ visibility: hidden;
+}
+.menu-button.button-circle,
+.split-menu-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.menu-button.button-circle .text,
+.split-menu-button.button-circle .text {
+ visibility: hidden;
+}
+.menu-button.left-pill,
+.split-menu-button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.menu-button.left-pill:hover, .menu-button.left-pill:focused,
+.split-menu-button.left-pill:hover,
+.split-menu-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.center-pill,
+.split-menu-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.menu-button.center-pill:hover, .menu-button.center-pill:focused,
+.split-menu-button.center-pill:hover,
+.split-menu-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button.right-pill,
+.split-menu-button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.menu-button.right-pill:hover, .menu-button.right-pill:focused,
+.split-menu-button.right-pill:hover,
+.split-menu-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.menu-button > .label,
+.split-menu-button > .label {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-text-fill: -color-button-fg;
+}
+.menu-button > .arrow-button,
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 0;
+}
+.menu-button > .arrow-button > .arrow,
+.split-menu-button > .arrow-button > .arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-button-fg;
+ -fx-min-width: 0.5em;
+}
+.menu-button:openvertically > .arrow-button > .arrow,
+.split-menu-button:openvertically > .arrow-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.menu-button:show-mnemonics > .label > .mnemonic-underline,
+.split-menu-button:show-mnemonics > .label > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.menu-button.button-icon,
+.split-menu-button.button-icon {
+ -fx-padding: 0;
+}
+.menu-button:hover,
+.split-menu-button:hover {
+ -fx-background-color: -color-button-border-hover, -color-button-bg-hover;
+ -fx-opacity: 0.9;
+}
+.menu-button:hover > .label,
+.split-menu-button:hover > .label {
+ -fx-text-fill: -color-button-fg-hover;
+}
+.menu-button:hover > .arrow-button > .arrow,
+.split-menu-button:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-hover;
+}
+.menu-button:hover .font-icon, .menu-button:hover .ikonli-font-icon,
+.split-menu-button:hover .font-icon,
+.split-menu-button:hover .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-hover;
+ -fx-fill: -color-button-fg-hover;
+}
+.menu-button:focused,
+.split-menu-button:focused {
+ -fx-background-color: -color-button-border-focused, -color-button-bg-focused;
+}
+.menu-button:focused > .label,
+.split-menu-button:focused > .label {
+ -fx-text-fill: -color-button-fg-focused;
+}
+.menu-button:focused > .arrow-button > .arrow,
+.split-menu-button:focused > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-focused;
+}
+.menu-button:focused .font-icon, .menu-button:focused .ikonli-font-icon,
+.split-menu-button:focused .font-icon,
+.split-menu-button:focused .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-focused;
+ -fx-fill: -color-button-fg-focused;
+}
+.menu-button:armed, .menu-button:focused:armed,
+.split-menu-button:armed,
+.split-menu-button:focused:armed {
+ -fx-background-color: -color-button-border-pressed, -color-button-bg-pressed;
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .label, .menu-button:focused:armed > .label,
+.split-menu-button:armed > .label,
+.split-menu-button:focused:armed > .label {
+ -fx-text-fill: -color-button-fg-pressed;
+}
+.menu-button:armed > .arrow-button > .arrow, .menu-button:focused:armed > .arrow-button > .arrow,
+.split-menu-button:armed > .arrow-button > .arrow,
+.split-menu-button:focused:armed > .arrow-button > .arrow {
+ -fx-background-color: -color-button-fg-pressed;
+}
+.menu-button:armed .font-icon, .menu-button:armed .ikonli-font-icon, .menu-button:focused:armed .font-icon, .menu-button:focused:armed .ikonli-font-icon,
+.split-menu-button:armed .font-icon,
+.split-menu-button:armed .ikonli-font-icon,
+.split-menu-button:focused:armed .font-icon,
+.split-menu-button:focused:armed .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg-pressed;
+ -fx-fill: -color-button-fg-pressed;
+}
+.menu-button.accent,
+.split-menu-button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.accent.button-outlined,
+.split-menu-button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.accent.flat,
+.split-menu-button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.menu-button.success,
+.split-menu-button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-5;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.success.button-outlined,
+.split-menu-button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.success.flat,
+.split-menu-button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.menu-button.danger,
+.split-menu-button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.danger.button-outlined,
+.split-menu-button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.danger.flat,
+.split-menu-button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.menu-button.flat,
+.split-menu-button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+
+.menu-button.no-arrow > .arrow-button {
+ -fx-padding: 0;
+}
+.menu-button.no-arrow > .arrow-button > .arrow {
+ -fx-shape: none;
+ -fx-scale-shape: false;
+ -fx-min-width: -1;
+}
+
+.split-menu-button > .label {
+ -fx-padding: 8px 6px 8px 12px;
+}
+.split-menu-button:hover > .arrow-button, .split-menu-button:focused:hover > .arrow-button {
+ -fx-background-color: -color-neutral-emphasis-plus;
+ -fx-background-insets: 1px;
+ -fx-background-radius: 4px;
+ -fx-border-color: transparent;
+ -fx-opacity: 0.75;
+}
+.split-menu-button:hover > .arrow-button > .arrow, .split-menu-button:focused:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.split-menu-button:default:hover > .arrow-button, .split-menu-button.accent:hover > .arrow-button, .split-menu-button.success:hover > .arrow-button, .split-menu-button.danger:hover > .arrow-button {
+ -fx-background-color: -color-fg-emphasis;
+}
+.split-menu-button:default:hover > .arrow-button > .arrow, .split-menu-button.accent:hover > .arrow-button > .arrow, .split-menu-button.success:hover > .arrow-button > .arrow, .split-menu-button.danger:hover > .arrow-button > .arrow {
+ -fx-background-color: -color-button-bg-hover;
+}
+.split-menu-button.button-outlined:hover > .arrow-button, .split-menu-button.button-outlined:focused > .arrow-button {
+ -color-button-fg: -color-fg-emphasis;
+}
+.split-menu-button > .arrow-button {
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-border-color: -color-button-fg;
+ -fx-border-width: 0 0 0 0.75px;
+ -fx-border-insets: 7px 0 7px 0;
+}
+
+.pagination {
+ -fx-padding: 0;
+ -fx-arrow-button-gap: 4;
+ -fx-arrows-visible: true;
+ -fx-tooltip-visible: false;
+ -fx-page-information-visible: true;
+ -fx-page-information-alignment: bottom;
+}
+.pagination > .page {
+ -fx-background-color: transparent;
+}
+.pagination > .pagination-control {
+ -fx-background-color: transparent;
+ -fx-font-size: 1em;
+}
+.pagination > .pagination-control > .control-box {
+ -fx-padding: 2em 0 0 0;
+ -fx-spacing: 2;
+ -fx-alignment: CENTER;
+}
+.pagination > .pagination-control > .control-box .number-button {
+ -fx-padding: 0;
+}
+.pagination > .pagination-control > .control-box > .left-arrow-button > .left-arrow {
+ -fx-shape: "M14 7l-5 5 5 5V7z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .control-box > .right-arrow-button > .right-arrow {
+ -fx-shape: "M10 17l5-5-5-5v10z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.pagination > .pagination-control > .page-information {
+ -fx-padding: 0.5em 0 0 0;
+}
+.pagination.bullet > .pagination-control > .control-box {
+ -fx-spacing: 0;
+}
+.pagination.bullet > .pagination-control > .control-box > .left-arrow-button {
+ -fx-background-radius: 10em;
+ -fx-padding: 0 0.25em 0 0.083em;
+}
+.pagination.bullet > .pagination-control > .control-box > .right-arrow-button {
+ -fx-background-radius: 10em;
+ -fx-padding: 0 0.083em 0 0.25em;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button {
+ -fx-background-radius: 0, 10em, 10em;
+ -fx-background-color: transparent, -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 5, 6;
+}
+.pagination.bullet > .pagination-control > .control-box > .bullet-button:selected {
+ -fx-background-color: transparent, -color-accent-emphasis;
+}
+
+.popover {
+ -fx-background-color: -color-bg-overlay;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
+.popover > .border {
+ -fx-stroke: -color-border-default;
+ -fx-stroke-width: 1px;
+}
+.popover > .content {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.popover > .content > .title {
+ -fx-padding: 0 0 1em 0;
+}
+.popover > .content > .title > .text {
+ -fx-text-fill: -color-fg-default;
+ -fx-font-size: 1.25em;
+ -fx-alignment: CENTER_LEFT;
+}
+.popover > .content > .title > .icon > .graphics > .circle {
+ -fx-fill: transparent;
+}
+.popover > .content > .title > .icon > .graphics > .line {
+ -fx-stroke: -color-fg-default;
+ -fx-stroke-width: 1px;
+}
+
+.progress-bar {
+ -color-progress-bar-track: -color-bg-subtle;
+ -color-progress-bar-fill: -color-accent-emphasis;
+ -fx-indeterminate-bar-length: 60;
+ -fx-indeterminate-bar-escape: true;
+ -fx-indeterminate-bar-flip: true;
+ -fx-indeterminate-bar-animation-time: 2;
+}
+.progress-bar > .track {
+ -fx-background-color: -color-progress-bar-track;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+}
+.progress-bar > .bar {
+ -fx-background-color: -color-progress-bar-fill;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+ -fx-padding: 0.4em;
+}
+.progress-bar.small > .bar {
+ -fx-padding: 2px;
+}
+.progress-bar.medium > .bar {
+ -fx-padding: 0.4em;
+}
+.progress-bar.large > .bar {
+ -fx-padding: 0.8em;
+}
+.progress-bar:disabled {
+ -fx-opacity: 0.4;
+}
+
+.progress-indicator {
+ -fx-indeterminate-segment-count: 12;
+ -fx-spin-enabled: true;
+}
+.progress-indicator > .determinate-indicator > .indicator {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-background-insets: 0, 1;
+}
+.progress-indicator > .determinate-indicator > .progress {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-padding: 0.6em;
+}
+.progress-indicator > .determinate-indicator > .tick {
+ -fx-background-color: -color-fg-emphasis;
+ -fx-background-insets: 0;
+ -fx-shape: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z";
+ -fx-scale-shape: true;
+}
+.progress-indicator > .determinate-indicator > .percentage {
+ -fx-font-size: 0.8em;
+ -fx-fill: -color-fg-default;
+}
+.progress-indicator > .determinate-indicator:disabled {
+ -fx-opacity: 0.4;
+}
+.progress-indicator:indeterminate > .spinner {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-border-color: transparent;
+ -fx-border-width: 0;
+ -fx-border-radius: 0;
+ -fx-padding: 0;
+}
+.progress-indicator:indeterminate .segment {
+ -fx-background-color: -color-accent-emphasis;
+}
+.progress-indicator:indeterminate .segment0 {
+ -fx-shape: "M41.98 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment1 {
+ -fx-shape: "M33.75 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment2 {
+ -fx-shape: "M22.49 3.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment3 {
+ -fx-shape: "M11.24 6.51 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment4 {
+ -fx-shape: "M3.01 14.74 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment5 {
+ -fx-shape: "M0.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment6 {
+ -fx-shape: "M3.01 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment7 {
+ -fx-shape: "M11.25 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment8 {
+ -fx-shape: "M22.5 48.5 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment9 {
+ -fx-shape: "M33.75 45.48 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment10 {
+ -fx-shape: "M41.98 37.25 a3.5,3.5 0 1,1 0,1 Z";
+}
+.progress-indicator:indeterminate .segment11 {
+ -fx-shape: "M45.0 26.0 a3.5,3.5 0 1,1 0,1 Z";
+}
+
+.radio-button {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-label-padding: 2px 2px 0 6px;
+}
+.radio-button > .radio {
+ -fx-background-color: -color-fg-default, -color-bg-default;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-padding: 3px;
+ -fx-alignment: CENTER;
+}
+.radio-button > .radio > .dot {
+ -fx-background-color: transparent, transparent;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 1em;
+ -fx-min-height: 0.75em;
+ -fx-max-height: 0.75em;
+ -fx-min-width: 0.75em;
+ -fx-max-width: 0.75em;
+}
+.radio-button:disabled {
+ -fx-opacity: 0.4;
+}
+.radio-button:disabled > .radio {
+ -fx-opacity: 0.4;
+}
+.radio-button:selected > .radio {
+ -fx-background-color: -color-accent-emphasis;
+}
+.radio-button:selected > .radio > .dot {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+}
+.radio-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.scroll-bar {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-bar > .thumb {
+ -fx-background-color: -color-fg-muted;
+ -fx-background-radius: 4px;
+}
+.scroll-bar > .track {
+ -fx-background-color: transparent;
+ -fx-border-radius: 0;
+}
+.scroll-bar > .increment-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .increment-button > .increment-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar > .decrement-button {
+ visibility: hidden;
+ -fx-managed: false;
+}
+.scroll-bar > .decrement-button > .decrement-arrow {
+ -fx-shape: " ";
+ -fx-padding: 0;
+}
+.scroll-bar:horizontal {
+ -fx-pref-height: 8px;
+}
+.scroll-bar:vertical {
+ -fx-pref-width: 8px;
+}
+.scroll-bar:hover, .scroll-bar:pressed, .scroll-bar:focused {
+ -fx-opacity: 1;
+}
+
+.scroll-pane {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0;
+}
+.scroll-pane > .viewport {
+ -fx-background-color: transparent;
+}
+.scroll-pane > .corner {
+ -fx-background-color: -color-border-subtle;
+ -fx-opacity: 0.5;
+}
+.scroll-pane:disabled > .scroll-bar {
+ -fx-opacity: 0.25;
+}
+
+.separator:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator:horizontal > .line {
+ -fx-border-color: -color-border-muted transparent transparent transparent;
+ -fx-border-insets: 1px 0 0 0;
+}
+.separator:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator:vertical > .line {
+ -fx-border-color: transparent transparent transparent -color-border-muted;
+ -fx-border-insets: 0 0 0 1px;
+}
+.separator.small:horizontal {
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.separator.small:vertical {
+ -fx-padding: 0 0.25em 0 0.25em;
+}
+.separator.medium:horizontal {
+ -fx-padding: 0.75em 0 0.75em 0;
+}
+.separator.medium:vertical {
+ -fx-padding: 0 0.75em 0 0.75em;
+}
+.separator.large:horizontal {
+ -fx-padding: 1.5em 0 1.5em 0;
+}
+.separator.large:vertical {
+ -fx-padding: 0 1.5em 0 1.5em;
+}
+
+.slider {
+ -color-slider-thumb: -color-accent-emphasis;
+ -color-slider-thumb-border: -color-accent-emphasis;
+ -color-slider-track: -color-border-muted;
+ -color-slider-track-progress: -color-accent-emphasis;
+ -color-slider-tick: -color-fg-muted;
+}
+.slider.large {
+ -color-slider-thumb: -color-fg-emphasis;
+ -color-slider-thumb-border: -color-accent-emphasis;
+}
+.slider > .thumb {
+ -fx-background-color: -color-slider-thumb-border, -color-slider-thumb;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 10em;
+}
+.slider > .track {
+ -fx-background-color: transparent, -color-slider-track;
+ -fx-background-radius: 4px;
+}
+.slider > .progress {
+ -fx-background-color: transparent, -color-slider-track-progress;
+}
+.slider > .axis {
+ -fx-tick-label-fill: -color-slider-tick;
+ -fx-tick-length: 5px;
+ -fx-minor-tick-length: 3px;
+}
+.slider > .axis > .axis-tick-mark,
+.slider > .axis > .axis-minor-tick-mark {
+ -fx-stroke: -color-slider-tick;
+}
+.slider:disabled {
+ -fx-opacity: 0.4;
+}
+.slider:horizontal > .thumb {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.slider:horizontal > .track {
+ -fx-padding: 10px 0 10px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider:horizontal > .progress {
+ -fx-background-radius: 4px;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .thumb {
+ -fx-padding: 8px 8px 8px 8px;
+}
+.slider.small:horizontal > .track {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.small:horizontal > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 6px 0 6px 0;
+}
+.slider.large:horizontal > .thumb {
+ -fx-padding: 12px 12px 12px;
+}
+.slider.large:horizontal > .track {
+ -fx-padding: 12px 0 12px 0;
+ -fx-background-insets: 0, 0px 0 0px 0;
+}
+.slider.large:horizontal > .progress {
+ -fx-padding: 12px 0 12px 0;
+ -fx-background-insets: 0, 0px 0 0px 0;
+}
+.slider:vertical > .thumb {
+ -fx-padding: 10px 10px 10px 10px;
+}
+.slider:vertical > .track {
+ -fx-padding: 0 10px 0 10px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider:vertical > .progress {
+ -fx-background-radius: 10em 10em 4px 4px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .thumb {
+ -fx-padding: 8px 8px 8px 8px;
+}
+.slider.small:vertical > .track {
+ -fx-padding: 0 8px 0 8px;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.small:vertical > .progress {
+ -fx-padding: 8px 0 8px 0;
+ -fx-background-insets: 0, 0 6px 0 6px;
+}
+.slider.large:vertical > .thumb {
+ -fx-padding: 12px 12px 12px 12px;
+}
+.slider.large:vertical > .track {
+ -fx-padding: 0 12px 0 12px;
+ -fx-background-insets: 0, 0 0px 0 0px;
+}
+.slider.large:vertical > .progress {
+ -fx-padding: 0 12px 0 12px;
+ -fx-background-insets: 0, 0 0px 0 0px;
+}
+
+.spinner {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default;
+ -fx-border-radius: 4px;
+ -fx-border-width: 1px;
+}
+.spinner > .text-field {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+ -fx-padding: 7px 11px 7px 11px;
+}
+.spinner > .increment-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0 4px 0 0;
+ -fx-padding: 10px;
+}
+.spinner > .increment-arrow-button:hover {
+ -fx-background-color: -color-base-2;
+}
+.spinner > .increment-arrow-button > .increment-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 14l5-5 5 5z";
+ -fx-scale-shape: false;
+}
+.spinner > .decrement-arrow-button {
+ -fx-background-color: -color-bg-subtle;
+ -fx-background-insets: -1 0 0 0;
+ -fx-background-radius: 0 0 4px 0;
+ -fx-padding: 10px;
+}
+.spinner > .decrement-arrow-button:hover {
+ -fx-background-color: -color-base-2;
+}
+.spinner > .decrement-arrow-button > .decrement-arrow {
+ -fx-background-color: -color-fg-default;
+ -fx-background-insets: 0;
+ -fx-padding: 0 0.25em 0 0.25em;
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+}
+.spinner:disabled {
+ -fx-opacity: 0.4;
+}
+.spinner:focused:focused, .spinner:contains-focus:focused {
+ -fx-border-color: -color-accent-emphasis;
+}
+.spinner.arrows-on-left-vertical > .text-field {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-vertical > .increment-arrow-button {
+ -fx-background-radius: 4px 0 0 0;
+}
+.spinner.arrows-on-left-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 0 4px;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-right-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .text-field {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-alignment: CENTER_RIGHT;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+}
+.spinner.arrows-on-left-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0 -1 0 0;
+}
+.spinner.split-arrows-horizontal > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-horizontal > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+}
+.spinner.split-arrows-vertical > .text-field {
+ -fx-background-radius: 0;
+ -fx-alignment: CENTER;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button {
+ -fx-background-radius: 4px 4px 0 0;
+ -fx-background-insets: 0;
+}
+.spinner.split-arrows-vertical > .increment-arrow-button > .increment-arrow {
+ -fx-shape: "M 18,12.857142 H 12.857142 V 18 H 11.142858 V 12.857142 H 6 v -1.714284 h 5.142858 V 6 h 1.714284 v 5.142858 H 18 Z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button {
+ -fx-background-radius: 0 0 4px 4px;
+ -fx-background-insets: 0 0 -1 0;
+}
+.spinner.split-arrows-vertical > .decrement-arrow-button > .decrement-arrow {
+ -fx-shape: "M 17,13 H 7 v -2 h 10 z";
+ -fx-scale-shape: false;
+ -fx-padding: 0.25em 0 0.25em 0;
+}
+
+.split-pane {
+ -color-split-divider: -color-border-subtle;
+ -color-split-divider-pressed: -color-accent-emphasis;
+ -color-split-grabber: -color-fg-muted;
+ -color-split-grabber-pressed: -color-accent-emphasis;
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-padding: 0;
+}
+.split-pane > .split-pane-divider {
+ -fx-background-color: -color-split-divider;
+ -fx-padding: 0 2px 0 2px;
+ -fx-opacity: 0.5;
+}
+.split-pane > .split-pane-divider > .horizontal-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 10px 2px 10px 2px;
+}
+.split-pane > .split-pane-divider > .vertical-grabber {
+ -fx-background-color: -color-split-grabber;
+ -fx-padding: 2px 10px 2px 10px;
+}
+.split-pane > .split-pane-divider:pressed {
+ -fx-background-color: -color-split-divider-pressed;
+}
+.split-pane > .split-pane-divider:pressed > .horizontal-grabber,
+.split-pane > .split-pane-divider:pressed > .vertical-grabber {
+ -fx-background-color: -color-split-grabber-pressed;
+}
+.split-pane > .split-pane-divider:hover {
+ -fx-opacity: 1;
+}
+.split-pane > .split-pane-divider:disabled {
+ -fx-opacity: 0.25;
+}
+
+.tab-pane > .tab-header-area {
+ -fx-background-insets: 0;
+ -fx-background-color: -color-bg-default;
+ -fx-alignment: CENTER;
+}
+.tab-pane > .tab-header-area > .tab-header-background {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0 0 0 0, 0 0 2px 0;
+ -fx-background-color: transparent, transparent;
+ -fx-padding: 0.3em 0.6em 0.3em 0.6em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-alignment: CENTER;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 0.4em 0.4em 0.4em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+ -fx-shape: "M 0,0 H1 L 4,3 7,0 H8 V1 L 5,4 8,7 V8 H7 L 4,5 1,8 H0 V7 L 3,4 0,1 Z";
+ -fx-scale-shape: false;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected {
+ -fx-background-color: -color-accent-emphasis, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label {
+ -fx-fill: -color-fg-default;
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-label > *, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-label > * {
+ -fx-fill: -color-fg-default;
+ -fx-icon-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:top:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:bottom:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled {
+ -fx-background-color: -color-border-default, -color-bg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:disabled > .tab-container {
+ -fx-opacity: 0.4;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right > .tab-container > .tab-label {
+ -fx-padding: 0.2em 0.4em 0.2em 0.4em;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover {
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:hover > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:hover > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected {
+ -fx-background-color: -color-border-default, -color-base-1;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-label, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-label {
+ -fx-text-fill: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:selected > .tab-container > .tab-close-button, .tab-pane > .tab-header-area > .headers-region > .tab:right:selected > .tab-container > .tab-close-button {
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane > .tab-header-area > .headers-region > .tab:left:disabled, .tab-pane > .tab-header-area > .headers-region > .tab:right:disabled {
+ -fx-background-color: transparent;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button {
+ -fx-padding: 1em;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button:disabled {
+ -fx-opacity: 0.4;
+}
+.tab-pane > .tab-header-area > .control-buttons-tab > .container > .tab-down-button > .arrow {
+ -fx-shape: "M7 10l5 5 5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tab-pane.floating > .tab-header-area {
+ -fx-background-color: -color-border-default, -color-bg-inset;
+ -fx-background-insets: 0, 0 0 1px 0;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab {
+ -fx-background-insets: 0;
+ -fx-background-color: transparent;
+ -fx-padding: 0.3em 0 0.3em 3px;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container {
+ -fx-background-color: transparent;
+ -fx-background-insets: 0;
+ -fx-background-radius: 4px;
+ -fx-border-radius: 4px;
+ -fx-border-width: 1px, 0 3px 0 0;
+ -fx-border-color: transparent, transparent;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab > .tab-container > .tab-label {
+ -fx-padding: 0.55em 0.55em 0.55em 0.55em;
+ -fx-min-width: 150px;
+ -fx-pref-width: 150px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tab-pane.floating > .tab-header-area > .headers-region > .tab:hover > .tab-container, .tab-pane.floating > .tab-header-area > .headers-region > .tab:selected > .tab-container {
+ -fx-background-color: -color-bg-default;
+ -fx-border-color: -color-border-default, transparent;
+}
+
+.text-input {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-fg-default;
+ -color-input-border: -color-border-default;
+ -color-input-bg-focused: -color-bg-default;
+ -color-input-border-focused: -color-accent-emphasis;
+ -color-input-bg-highlight: -color-accent-subtle;
+ -color-input-fg-highlight: -color-fg-default;
+ -fx-background-color: -color-input-border, -color-input-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-text-fill: -color-input-fg;
+ -fx-highlight-fill: -color-input-bg-highlight;
+ -fx-highlight-text-fill: -color-input-fg-highlight;
+ -fx-prompt-text-fill: -color-fg-subtle;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-cursor: text;
+}
+.text-input:focused {
+ -fx-background-color: -color-input-border-focused, -color-input-bg-focused;
+ -fx-prompt-text-fill: transparent;
+}
+.text-input:disabled {
+ -fx-opacity: 0.4;
+}
+.text-input:disabled > .scroll-pane {
+ -fx-opacity: 1;
+}
+.text-input:success {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-success-fg;
+ -color-input-border: -color-success-emphasis;
+ -color-input-border-focused: -color-success-emphasis;
+}
+.text-input:danger {
+ -color-input-bg: -color-bg-default;
+ -color-input-fg: -color-danger-fg;
+ -color-input-border: -color-danger-emphasis;
+ -color-input-border-focused: -color-danger-emphasis;
+}
+.text-input.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.text-input.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.text-input.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.text-input.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.text-input.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.text-field.small {
+ -fx-padding: 5.7142857143px 8.5714285714px 5.7142857143px 8.5714285714px;
+ -fx-font-size: 0.8em;
+}
+.text-field.large {
+ -fx-padding: 11.2px 16.8px 11.2px 16.8px;
+ -fx-font-size: 1.25em;
+}
+.text-field.rounded {
+ -fx-background-radius: 10em;
+}
+
+.text-area {
+ -fx-padding: 2px;
+ -fx-cursor: default;
+}
+.text-area .content {
+ -fx-cursor: text;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+.password-field {
+ -fx-text-fill: -color-fg-muted;
+}
+
+.titled-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-effect: none;
+}
+.titled-pane.elevated-1 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 2px, 0.5, 0, 2);
+}
+.titled-pane.elevated-2 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane.elevated-3 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 16px, 0.5, 0, 2);
+}
+.titled-pane.elevated-4 {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 20px, 0.5, 0, 2);
+}
+.titled-pane > .title {
+ -fx-background-color: -color-border-default, -color-bg-default;
+ -fx-padding: 10px 20px 10px 20px;
+}
+.titled-pane > .title > .text {
+ -fx-font-size: 1.25em;
+}
+.titled-pane > .title > .arrow-button {
+ -fx-background-color: none;
+ -fx-background-insets: 0;
+ -fx-background-radius: 0;
+ -fx-padding: 0 10px 0 0;
+}
+.titled-pane > .title > .arrow-button > .arrow {
+ -fx-shape: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+ -fx-padding: 4px 5px 4px 5px;
+}
+.titled-pane > .content {
+ -fx-border-color: -color-border-default;
+ -fx-border-width: 0 1px 1px 1px;
+ -fx-border-radius: 0 0 4px 4px;
+ -fx-background-radius: 0 0 4px 4px;
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 20px 20px 10px 20px;
+ -fx-alignment: TOP_LEFT;
+}
+.titled-pane:disabled > .title > *,
+.titled-pane:disabled > .content > * {
+ -fx-opacity: 0.4;
+}
+.titled-pane:expanded > .title {
+ -fx-background-radius: 4px 4px 0 0;
+ -fx-background-insets: 0, 1px 1px 0 1px;
+}
+.titled-pane:collapsed > .title {
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+}
+.titled-pane.interactive:hover {
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 8px, 0.5, 0, 2);
+}
+.titled-pane:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-fg-default;
+}
+
+.toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-1;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -color-button-bg-selected: -color-accent-emphasis;
+ -color-button-fg-selected: -color-fg-emphasis;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.toggle-button .font-icon, .toggle-button .ikonli-font-icon {
+ -fx-icon-color: -color-button-fg;
+ -fx-fill: -color-button-fg;
+}
+.toggle-button:disabled {
+ -fx-opacity: 0.4;
+}
+.toggle-button:show-mnemonics > .mnemonic-underline {
+ -fx-stroke: -color-button-fg;
+}
+.toggle-button.button-icon {
+ -fx-padding: 8px;
+}
+.toggle-button.button-icon > .text {
+ visibility: hidden;
+}
+.toggle-button.button-circle {
+ -fx-background-radius: 50;
+ -fx-padding: 6px 8px 6px 8px;
+}
+.toggle-button.button-circle .text {
+ visibility: hidden;
+}
+.toggle-button.left-pill {
+ -fx-background-radius: 4px 0 0 4px;
+ -fx-background-insets: 0, 1px 0 1px 1px;
+}
+.toggle-button.left-pill:hover, .toggle-button.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.center-pill {
+ -fx-background-radius: 0;
+ -fx-background-insets: 0, 1px 0 1px 0;
+}
+.toggle-button.center-pill:hover, .toggle-button.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button.right-pill {
+ -fx-background-radius: 0 4px 4px 0;
+ -fx-background-insets: 0, 1px 1px 1px 0;
+}
+.toggle-button.right-pill:hover, .toggle-button.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected, .toggle-button:selected:focused {
+ -fx-background-color: -color-button-bg-selected;
+ -fx-text-fill: -color-button-fg-selected;
+ -fx-background-insets: 0;
+}
+.toggle-button:selected .font-icon, .toggle-button:selected .ikonli-font-icon, .toggle-button:selected:focused .font-icon, .toggle-button:selected:focused .ikonli-font-icon {
+ -fx-fill: -color-button-fg-selected;
+ -fx-icon-color: -color-button-fg-selected;
+}
+.toggle-button:show-mnemonics:selected > .mnemonic-underline {
+ -fx-stroke: -color-button-fg-selected;
+}
+.toggle-button:selected.left-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.center-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+.toggle-button:selected.right-pill:focused {
+ -fx-background-insets: 0, 1px;
+}
+
+.toggle-switch {
+ -fx-thumb-move-animation-time: 200;
+}
+.toggle-switch > .label-container > .label {
+ -fx-font-size: 1em;
+ -fx-text-fill: -color-fg-default;
+ -fx-padding: 2px 6px 2px 0;
+}
+.toggle-switch > .thumb {
+ -fx-background-color: -color-border-default, -color-fg-emphasis;
+ -fx-background-insets: 0, 2px;
+ -fx-background-radius: 10em;
+ -fx-padding: 0.85em;
+ -fx-alignment: CENTER;
+ -fx-content-display: LEFT;
+ -fx-opacity: 0.8;
+}
+.toggle-switch > .thumb-area {
+ -fx-background-radius: 1em;
+ -fx-background-color: -color-border-default, -color-bg-subtle;
+ -fx-background-insets: 0, 1px;
+ -fx-padding: 0.85em 1.4em 0.85em 1.4em;
+}
+.toggle-switch:selected > .thumb {
+ -fx-background-color: -color-accent-emphasis, -color-fg-emphasis;
+ -fx-opacity: 1;
+}
+.toggle-switch:selected > .thumb-area {
+ -fx-background-color: -color-accent-emphasis;
+ -fx-background-insets: 0;
+}
+.toggle-switch:disabled {
+ -fx-opacity: 0.4;
+}
+
+.tool-bar {
+ -fx-background-color: -color-border-muted, -color-bg-subtle;
+ -fx-background-insets: 0, 0 0 1px 0;
+ -fx-padding: 4px 0.3em 4px 0.3em;
+ -fx-spacing: 4px;
+ -fx-alignment: CENTER_LEFT;
+}
+.tool-bar > .container > .button,
+.tool-bar > .container > .menu-button,
+.tool-bar > .container > .split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container .toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-bg-selected: -color-base-2;
+ -color-button-fg-selected: -color-fg-default;
+ -fx-background-insets: 0;
+}
+.tool-bar > .container > .separator {
+ -fx-orientation: vertical;
+}
+.tool-bar > .tool-bar-overflow-button {
+ -fx-padding: 0 0.3em 0 4px;
+}
+.tool-bar > .tool-bar-overflow-button > .arrow {
+ -fx-shape: "M5.06 5 4 6.06 7.94 10 4 13.94 5.06 15l5-5z M11 5 9.94 6.06 13.88 10l-3.94 3.94L11 15l5-5z";
+ -fx-scale-shape: false;
+ -fx-background-color: -color-fg-default;
+}
+.tool-bar:vertical {
+ -fx-background-insets: 0, 0 1px 0 0;
+ -fx-padding: 0.3em 4px 0.3em 4px;
+ -fx-alignment: TOP_LEFT;
+}
+.tool-bar:vertical > .container > .separator {
+ -fx-orientation: horizontal;
+}
+.tool-bar:vertical > .tool-bar-overflow-button {
+ -fx-padding: 4px 0 0.3em 0;
+}
+.tool-bar:vertical.right {
+ -fx-background-insets: 0, 0 0 0 1px;
+}
+.tool-bar.bottom {
+ -fx-background-insets: 0, 1px 0 0 0;
+}
+
+.tooltip {
+ -fx-background-color: -color-border-default, -color-bg-overlay;
+ -fx-background-insets: 0, 1px;
+ -fx-text-fill: -color-fg-default;
+ -fx-background-radius: 4px;
+ -fx-padding: 8px 12px 8px 12px;
+ -fx-opacity: 0.85;
+ -fx-effect: dropshadow(three-pass-box, -color-shadow-default, 6px, 0.3, 0, 2);
+}
diff --git a/src/Resources/css/primer-pamguard.css b/src/Resources/css/primer-pamguard.css
new file mode 100644
index 00000000..1e28539e
--- /dev/null
+++ b/src/Resources/css/primer-pamguard.css
@@ -0,0 +1,779 @@
+
+
+{
+ -color-dark: #010409;
+ -color-light: #ffffff;
+ -color-base-0: #f0f6fc;
+ -color-base-1: #c9d1d9;
+ -color-base-2: #b1bac4;
+ -color-base-3: #8b949e;
+ -color-base-4: #6e7681;
+ -color-base-5: #484f58;
+ -color-base-6: #30363d;
+ -color-base-7: #21262d;
+ -color-base-8: #161b22;
+ -color-base-9: #0d1117;
+ -color-accent-0: #cae8ff;
+ -color-accent-1: #a5d6ff;
+ -color-accent-2: #79c0ff;
+ -color-accent-3: #58a6ff;
+ -color-accent-4: #388bfd;
+ -color-accent-5: #1f6feb;
+ -color-accent-6: #1158c7;
+ -color-accent-7: #0d419d;
+ -color-accent-8: #0c2d6b;
+ -color-accent-9: #051d4d;
+ -color-success-0: #aff5b4;
+ -color-success-1: #7ee787;
+ -color-success-2: #56d364;
+ -color-success-3: #3fb950;
+ -color-success-4: #2ea043;
+ -color-success-5: #238636;
+ -color-success-6: #196c2e;
+ -color-success-7: #0f5323;
+ -color-success-8: #033a16;
+ -color-success-9: #04260f;
+ -color-warning-0: #f8e3a1;
+ -color-warning-1: #f2cc60;
+ -color-warning-2: #e3b341;
+ -color-warning-3: #d29922;
+ -color-warning-4: #bb8009;
+ -color-warning-5: #9e6a03;
+ -color-warning-6: #845306;
+ -color-warning-7: #693e00;
+ -color-warning-8: #4b2900;
+ -color-warning-9: #341a00;
+ -color-danger-0: #ffdcd7;
+ -color-danger-1: #ffc1ba;
+ -color-danger-2: #ffa198;
+ -color-danger-3: #ff7b72;
+ -color-danger-4: #f85149;
+ -color-danger-5: #da3633;
+ -color-danger-6: #b62324;
+ -color-danger-7: #8e1519;
+ -color-danger-8: #67060c;
+ -color-danger-9: #490202;
+ -color-fg-default: #c9d1d9;
+ -color-fg-muted: #8b949e;
+ -color-fg-subtle: #6e7681;
+ -color-fg-emphasis: #ffffff;
+ -color-bg-default: #0d1117;
+ -color-bg-overlay: #0d1117;
+ -color-bg-subtle: #161b22;
+ -color-bg-inset: #010409;
+ -color-border-default: #30363d;
+ -color-border-muted: #21262d;
+ -color-border-subtle: rgba(240, 246, 252, 0.1);
+ -color-shadow-default: #010409;
+ -color-neutral-emphasis-plus: #6e7681;
+ -color-neutral-emphasis: #6e7681;
+ -color-neutral-muted: rgba(110, 118, 129, 0.4);
+ -color-neutral-subtle: rgba(110, 118, 129, 0.1);
+ -color-accent-fg: #58a6ff;
+ -color-accent-emphasis: #1f6feb;
+ -color-accent-muted: rgba(56, 139, 253, 0.4);
+ -color-accent-subtle: rgba(56, 139, 253, 0.15);
+ -color-warning-fg: #d29922;
+ -color-warning-emphasis: #9e6a03;
+ -color-warning-muted: rgba(187, 128, 9, 0.4);
+ -color-warning-subtle: rgba(187, 128, 9, 0.15);
+ -color-success-fg: #3fb950;
+ -color-success-emphasis: #238636;
+ -color-success-muted: rgba(46, 160, 67, 0.4);
+ -color-success-subtle: rgba(46, 160, 67, 0.15);
+ -color-danger-fg: #f85149;
+ -color-danger-emphasis: #da3633;
+ -color-danger-muted: rgba(248, 81, 73, 0.4);
+ -color-danger-subtle: rgba(248, 81, 73, 0.15);
+ -color-chart-1: #f3622d;
+ -color-chart-2: #fba71b;
+ -color-chart-3: #57b757;
+ -color-chart-4: #41a9c9;
+ -color-chart-5: #4258c9;
+ -color-chart-6: #9a42c8;
+ -color-chart-7: #c84164;
+ -color-chart-8: #888888;
+ -color-chart-1-alpha70: rgba(243, 98, 45, 0.7);
+ -color-chart-2-alpha70: rgba(251, 167, 27, 0.7);
+ -color-chart-3-alpha70: rgba(87, 183, 87, 0.7);
+ -color-chart-4-alpha70: rgba(65, 169, 201, 0.7);
+ -color-chart-5-alpha70: rgba(66, 88, 201, 0.7);
+ -color-chart-6-alpha70: rgba(154, 66, 200, 0.7);
+ -color-chart-7-alpha70: rgba(200, 65, 100, 0.7);
+ -color-chart-8-alpha70: rgba(136, 136, 136, 0.7);
+ -color-chart-1-alpha20: rgba(243, 98, 45, 0.2);
+ -color-chart-2-alpha20: rgba(251, 167, 27, 0.2);
+ -color-chart-3-alpha20: rgba(87, 183, 87, 0.2);
+ -color-chart-4-alpha20: rgba(65, 169, 201, 0.2);
+ -color-chart-5-alpha20: rgba(66, 88, 201, 0.2);
+ -color-chart-6-alpha20: rgba(154, 66, 200, 0.2);
+ -color-chart-7-alpha20: rgba(200, 65, 100, 0.2);
+ -color-chart-8-alpha20: rgba(136, 136, 136, 0.2);
+
+ -fx-pambackground: rgba(238,238,238);
+ -fx-darkbackground: -color-bg-default;
+ -fx-darkbackground-trans: rgba(13, 17, 23,0.90);
+ -fx-highlight: -color-base-6;
+ -fx-highlight_border: -color-button-fg;
+ -fx-text: -color-fg-default;
+ -fx-border_col: -color-border-default;
+ -fx-icon_col: -color-fg-default;
+}
+
+.root {
+ -fx-background-color:-fx-darkbackground;
+ -fx-font-size: 12px;
+ -fx-background-radius: inherit;
+ -fx-background-insets: inherit;
+ -fx-padding: 5px 5px 5px 5px;
+}
+
+/*******************************************************************************
+ * *
+ * Panes *
+ * *
+ ******************************************************************************/
+
+.pane {
+ -fx-background-color: -fx-darkbackground;
+}
+
+.pane-trans{
+ -fx-background-color: -fx-darkbackground-trans;
+}
+
+.pane-opaque {
+ -fx-background-color: -fx-pambackground;
+}
+
+/*for plot panes*/
+.pane-plot {
+ -fx-background-color: -fx-plotbackground;
+}
+
+
+.button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+.menu-button,
+.split-menu-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -fx-padding: 0;
+ -fx-alignment: CENTER_LEFT;
+}
+
+.menu-button.accent,
+.split-menu-button.accent {
+ -color-button-bg: -color-accent-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-accent-emphasis;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-accent-emphasis;
+ -color-button-bg-focused: -color-accent-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-accent-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.accent.button-outlined,
+.split-menu-button.accent.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.accent.flat,
+.split-menu-button.accent.flat {
+ -color-button-fg: -color-accent-fg;
+ -color-button-bg-hover: -color-accent-subtle;
+}
+.menu-button.success,
+.split-menu-button.success {
+ -color-button-bg: -color-success-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-success-emphasis;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-success-emphasis;
+ -color-button-bg-focused: -color-success-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-success-emphasis;
+ -color-button-bg-pressed: -color-success-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.success.button-outlined,
+.split-menu-button.success.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.success.flat,
+.split-menu-button.success.flat {
+ -color-button-fg: -color-success-fg;
+ -color-button-bg-hover: -color-success-subtle;
+}
+.menu-button.danger,
+.split-menu-button.danger {
+ -color-button-bg: -color-danger-emphasis;
+ -color-button-fg: -color-fg-emphasis;
+ -color-button-border: -color-danger-emphasis;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+ -color-button-border-hover: -color-danger-emphasis;
+ -color-button-bg-focused: -color-danger-6;
+ -color-button-fg-focused: -color-fg-emphasis;
+ -color-button-border-focused: -color-danger-emphasis;
+ -color-button-bg-pressed: -color-danger-emphasis;
+ -color-button-fg-pressed: -color-fg-emphasis;
+ -color-button-border-pressed: transparent;
+}
+.menu-button.danger.button-outlined,
+.split-menu-button.danger.button-outlined {
+ -color-button-bg: -color-bg-default;
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-emphasis;
+ -color-button-fg-hover: -color-fg-emphasis;
+}
+.menu-button.danger.flat,
+.split-menu-button.danger.flat {
+ -color-button-fg: -color-danger-fg;
+ -color-button-bg-hover: -color-danger-subtle;
+}
+.menu-button.flat,
+.split-menu-button.flat {
+ -color-button-bg: transparent;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: transparent;
+ -color-button-bg-hover: -color-bg-subtle;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-bg-subtle;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-button-bg;
+ -color-button-bg-pressed: -color-button-bg;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+}
+
+
+.toggle-button {
+ -color-button-bg: -color-bg-subtle;
+ -color-button-fg: -color-fg-default;
+ -color-button-border: -color-border-default;
+ -color-button-bg-hover: -color-base-6;
+ -color-button-fg-hover: -color-button-fg;
+ -color-button-border-hover: -color-button-border;
+ -color-button-bg-focused: -color-button-bg;
+ -color-button-fg-focused: -color-button-fg;
+ -color-button-border-focused: -color-accent-emphasis;
+ -color-button-bg-pressed: -color-bg-subtle;
+ -color-button-fg-pressed: -color-button-fg;
+ -color-button-border-pressed: transparent;
+ -fx-background-color: -color-button-border, -color-button-bg;
+ -fx-background-insets: 0, 1px;
+ -fx-background-radius: 4px;
+ -fx-graphic-text-gap: 6px;
+ -fx-text-fill: -color-button-fg;
+ -fx-alignment: CENTER;
+ -color-button-bg-selected: -color-accent-emphasis;
+ -color-button-fg-selected: -color-fg-emphasis;
+ -fx-padding: 8px 12px 8px 12px;
+}
+
+
+.list-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+
+.table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+
+.titled-pane > .title > .text {
+ -fx-font-size: 1em;
+}
+
+.tree-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+}
+
+.tree-table-view {
+ -color-cell-bg: -color-bg-default;
+ -color-cell-fg: -color-fg-default;
+ -color-cell-bg-selected: -color-base-6;
+ -color-cell-fg-selected: -color-fg-default;
+ -color-cell-bg-odd: -color-bg-subtle;
+ -color-cell-border: -color-border-default;
+ -fx-border-color: -color-cell-border;
+ -fx-border-width: 1px;
+ -fx-border-radius: 0;
+ -color-header-bg: -color-bg-subtle;
+ -color-header-fg: -color-fg-default;
+}
+
+.list-view:focused > .virtual-flow > .clipped-container > .sheet > .list-cell:filled:selected,
+.tree-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-cell:filled:selected,
+.table-view:focused > .virtual-flow > .clipped-container > .sheet > .table-row-cell:filled:selected,
+.tree-table-view:focused > .virtual-flow > .clipped-container > .sheet > .tree-table-row-cell:filled:selected {
+ -color-cell-fg: -color-cell-fg-selected;
+ -fx-background-color: -color-cell-border, -color-cell-bg-selected;
+}
+
+/*******************************************************************************
+ * *
+ * ikonli icons *
+ * *
+ ******************************************************************************/
+
+#module-pane .ikonli-font-icon {
+ -fx-icon-color: black;
+}
+
+
+.titled-pane {
+ -fx-background-color: -color-bg-default;
+ -fx-text-fill: -color-fg-default;
+ -fx-effect: none;
+}
+
+
+/****************************************************************
+
+ ScrollPane
+
+****************************************************************/
+.scroll-pane {
+ -fx-background: #0d1117;
+ -fx-background-color: transparent;
+}
+
+.scroll-pane > .viewport {
+ -fx-background-color: transparent;
+}
+
+.scroll-pane-dark {
+ -fx-background: -fx-darkbackground;
+ -fx-background-color: -fx-darkbackground;
+}
+
+
+/*******************************************************************************
+ * *
+ * Hiding Tab *
+ * *
+ ******************************************************************************/
+ #hide-tab {
+ -fx-background-color: transparent;
+ -fx-border-radius: 5 5 0 0;
+ -fx-background-radius: 5 5 0 0;
+ -fx-border-color: -fx-border_col;
+}
+
+ #show-tab {
+ -fx-background-color: transparent;
+ -fx-border-radius: 5 5 0 0;
+ -fx-background-radius: 5 5 0 0;
+ -fx-border-color: -fx-border_col;
+}
+
+ #hide-tab-highlight {
+ -fx-background-color: -fx-highlight;
+ -fx-border-radius: 5 5 0 0;
+ -fx-background-radius: 5 5 0 0;
+ -fx-border-color: -fx-highlight_border;
+}
+
+
+
+/*******************************************************************************
+ * *
+ * Button *
+ * *
+ ******************************************************************************/
+
+/*.button{
+ -fx-text-fill: white;
+ -fx-background-color: -fx-darkbackground;
+ -fx-border-color: -fx-border_col;
+ -fx-border-radius: 5;
+ -fx-background-radius:6;
+ -fx-padding: 3 6 6 6;
+}*/
+
+/*.button:hover{
+ -fx-background-color: -fx-highlight;
+ -fx-border-color: -fx-highlight_border;
+}
+
+.button:selected{
+ -fx-border-color: -fx-highlight;
+}
+*/
+/**
+ * Button for closing a hiding panel. Right indicates bottoms points towards the right, closing a hiding panel
+ * on the right hand side of the screen. These buttons have a transparent background and rounded corners.
+ */
+ /** top-left, top-right, bottom-right, and bottom-left corners, in that order. */
+.close-button-right{
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 10 10 0;
+ -fx-border-color: transparent;
+ -fx-border-radius: 0 10 10 0;
+}
+
+
+.close-button-left{
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 0 0 10;
+ -fx-border-color: transparent;
+ -fx-border-radius: 10 0 0 10;
+}
+
+
+.close-button-top{
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 10 0 0;
+-fx-border-color: transparent;
+ -fx-border-radius: 10 10 0 0;
+}
+
+
+.close-button-bottom{
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 0 10 10;
+ -fx-border-color: transparent;
+ -fx-border-radius: 0 0 10 10;
+}
+
+
+.close-button-bottom-trans{
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 0 10 10;
+ -fx-border-radius: 0 0 10 10;
+}
+
+.close-button-left-trans{
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 0 0 10;
+ -fx-border-radius: 10 0 0 10;
+}
+
+.close-button-right-trans{
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 10 10 0;
+ -fx-border-radius: 0 10 10 0;
+}
+
+.square-button{
+ -fx-background-radius: 0 0 0 0;
+ -fx-border-radius: 0 0 0 0;
+}
+
+.square-button-trans{
+ -fx-background-color: transparent;
+ -fx-border-color: transparent;
+ -fx-background-radius: 0 0 0 0;
+ -fx-border-radius: 0 0 0 0;
+}
+
+.module-hide-top{
+ -fx-border-color: transparent;
+ -fx-background-radius: 5 5 0 0;
+ -fx-border-radius: 5 5 0 0;
+}
+
+.module-hide-bottom{
+ -fx-border-color: transparent;
+ -fx-background-radius: 0 0 5 5;
+ -fx-border-radius: 0 0 5 5;
+}
+
+.delete-button:hover{
+ -fx-background-color: rgba(1,0,0,0.7);
+}
+
+
+/*******************************************************************************
+ * *
+ * Pop over *
+ * *
+ ******************************************************************************/
+
+.popover {
+ -fx-background-color: -fx-darkbackground;
+ -fx-background-radius: 5;
+ -fx-border-radius: 5;
+}
+
+.popover > .content {
+ -fx-background-color: -fx-darkbackground;
+ -fx-background-radius: 5;
+ -fx-border-radius: 5;
+}
+
+.popover > .arrow {
+ -fx-background-color: -fx-darkbackground;
+ -fx-background-radius: 5;
+ -fx-border-radius: 5;
+}
+
+/*weird way to do it but need this to colour the arrow*/
+.popover > .border {
+ /*-fx-stroke: linear-gradient(to bottom, rgba(0,0,0, .3), rgba(0, 0, 0, .7)) ;*/
+ -fx-stroke-width: 0.5;
+ -fx-fill: -fx-darkbackground; /* instead -fx-background-color */
+}
+
+/*******************************************************************************
+ * *
+ * SplitMenuButton *
+ * *
+ ******************************************************************************/
+
+.split-menu-button{
+ -fx-text-fill: -fx-text;
+ -fx-background-color: -fx-darkbackground;
+ -fx-border-color: -fx-border_col;
+ -fx-border-radius: 5;
+}
+
+
+.split-menu-button:hover{
+ /*-fx-border-color: -fx-highlight_border;*/
+}
+
+
+.split-menu-button .label {
+ -fx-text-fill: white;
+ -fx-background-color: -fx-darkbackground;
+ -fx-border-radius: 5;
+}
+
+
+.split-menu-button .label:hover {
+ -fx-background-color: -fx-highlight;
+}
+
+
+.split-menu-button .arrow-button {
+ -fx-text-fill: -fx-text;
+ -fx-background-color: -fx-darkbackground;
+ -fx-border-radius: 5;
+}
+
+
+.split-menu-button .arrow-button:hover {
+ -fx-background-color: -fx-highlight;
+}
+
+
+/**********/
+
+
+.menu-item {
+ -fx-background-color: -color-bg-default;
+ -fx-padding: 8px 12px 8px 12px;
+}
+.menu-item > .graphic-container {
+ -fx-padding: 0 6px 0 0;
+}
+.menu-item > .label {
+ -fx-padding: 0 1em 0 0;
+ -fx-text-fill: -color-fg-default;
+}
+.menu-item > .left-container {
+ -fx-padding: 0 1em 0 0;
+}
+.menu-item > .right-container {
+ -fx-padding: 0 0 0 0.5em;
+}
+.menu-item:focused {
+ -fx-background-color: -color-base-7, -color-base-7;
+}
+.menu-item:disabled {
+ -fx-opacity: 0.4;
+ -fx-background-color: -color-bg-default;
+}
+
+
+
+/********************************************
+* *
+* Spinner *
+* *
+*********************************************/
+
+
+.spinner {
+ -fx-pref-width: 120px;
+}
+
+.dialog-pane > .content {
+ -fx-padding: 1em 1em 1em 1em;
+}
+
+
+
+/*******************************************************************************
+ * *
+ * Hiding Pane *
+ * *
+ ******************************************************************************/
+
+
+/**
+ * Button for closing a hiding panel. Right indicates bottoms points towards the right, closing a hiding panel
+ * on the right hand side of the screen. These buttons have a transparent background and rounded corners.
+ */
+ /** top-left, top-right, bottom-right, and bottom-left corners, in that order. */
+.close-button-right{
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 10 10 0;
+ -fx-border-radius: 0 10 10 0;
+}
+
+.close-button-right:hover {
+ -fx-background-color: -fx-highlight;
+}
+
+
+.close-button-left{
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 0 0 10;
+ -fx-border-radius: 10 0 0 10;
+}
+
+.close-button-left:hover {
+ -fx-background-color: -fx-highlight;
+}
+
+
+.close-button-top{
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 10 0 0;
+ -fx-border-radius: 10 10 0 0;
+}
+
+
+.close-button-bottom {
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 0 10 10;
+ -fx-border-radius: 0 0 10 10;
+}
+
+.close-button-bottom:hover {
+ -fx-background-color: -fx-highlight;
+}
+
+
+.close-button-bottom-grey{
+-fx-border-color: transparent;
+ -fx-background-radius: 0 0 10 10;
+ -fx-border-radius: 0 0 10 10;
+}
+
+.close-button-left-trans{
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 0 0 10;
+ -fx-border-radius: 10 0 0 10;
+}
+
+.close-button-left-trans:focused {
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 10 0 0 10;
+ -fx-border-radius: 10 0 0 10;
+}
+
+.close-button-right-trans{
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 10 10 0;
+ -fx-border-radius: 0 10 10 0;
+}
+
+.close-button-right-trans:focused {
+ -fx-border-color: transparent;
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 10 10 0;
+ -fx-border-radius: 0 10 10 0;
+}
+
+
+.menu-square-button {
+-fx-border-color: -fx_border_col;
+ -fx-background-color: transparent;
+ -fx-background-radius: 0 0 0 0;
+ -fx-border-radius: 0 0 0 0;
+}
+
diff --git a/src/audioMoth/AudioMothControl.java b/src/audioMoth/AudioMothControl.java
new file mode 100644
index 00000000..793616e3
--- /dev/null
+++ b/src/audioMoth/AudioMothControl.java
@@ -0,0 +1,12 @@
+package audioMoth;
+
+import PamController.PamControlledUnit;
+
+public class AudioMothControl extends PamControlledUnit {
+
+ public AudioMothControl(String unitType, String unitName) {
+ super(unitType, unitName);
+ // TODO Auto-generated constructor stub
+ }
+
+}
diff --git a/src/backupmanager/stream/TestFileDates.java b/src/backupmanager/stream/TestFileDates.java
index 0eacf04d..1043cd34 100644
--- a/src/backupmanager/stream/TestFileDates.java
+++ b/src/backupmanager/stream/TestFileDates.java
@@ -6,7 +6,7 @@ import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.attribute.BasicFileAttributes;
-import PamUtils.PamAudioFileFilter;
+import Acquisition.pamAudio.PamAudioFileFilter;
import PamUtils.PamCalendar;
public class TestFileDates {
diff --git a/src/clickDetector/BTDisplayParameters.java b/src/clickDetector/BTDisplayParameters.java
index ff1cf50b..143b3eab 100644
--- a/src/clickDetector/BTDisplayParameters.java
+++ b/src/clickDetector/BTDisplayParameters.java
@@ -28,11 +28,11 @@ public class BTDisplayParameters implements Serializable, Cloneable, ManagedPara
public static final String[] angleTypeNames = {"Relative to array", "Relative to vessel", "Relative to north"};
/**
- * Rotation options for angles.
+ * Rotation options for angles. These should match the above angleTypeNames.
*/
static public final int ROTATE_TOARRAY = 0; // no rotation, raw angles relative to the array
- static public final int ROTATE_PITCHROLL = 1; // fix pitch and roll, but leave the heading relative to the array
- static public final int ROTATE_HEADPITCHROLL = 2; // rotate by heading pitch and roll.
+ static public final int ROTATE_TOVESSEL = 1; // fix pitch and roll, but leave the heading relative to the array
+ static public final int ROTATE_TONORTH = 2; // rotate by heading pitch and roll.
// main BT display
diff --git a/src/clickDetector/ClickBTDisplay.java b/src/clickDetector/ClickBTDisplay.java
index 9d12e744..b56104e2 100644
--- a/src/clickDetector/ClickBTDisplay.java
+++ b/src/clickDetector/ClickBTDisplay.java
@@ -1642,16 +1642,26 @@ public class ClickBTDisplay extends ClickDisplay implements PamObserver, PamSett
double[] rotAngles = new double[3];
rotAngles[1] = Math.toRadians(oll.getPitch());
rotAngles[2] = Math.toRadians(oll.getRoll());
- if (rType == BTDisplayParameters.ROTATE_HEADPITCHROLL) {
+ if (rType == BTDisplayParameters.ROTATE_TOVESSEL) {
// use head as well as pitch and roll.
- rotAngles[0] = Math.toRadians(oll.getHeading());
+ PamVector[] vr = loc.getWorldVectors();
+ if (vr != null && vr.length > 0) {
+ return vr[0];
+ }
+// rotAngles[0] = Math.toRadians(oll.getHeading());
}
- if (rotAngles[0] == 0 && rotAngles[1] == 0 && rotAngles[2] == 0) {
- return v;
+ else if (rType == BTDisplayParameters.ROTATE_TONORTH) {
+ PamVector[] vr = loc.getRealWorldVectors();
+ if (vr != null && vr.length > 0) {
+ return vr[0];
+ }
}
- PamQuaternion pq = new PamQuaternion(rotAngles[0], rotAngles[1], rotAngles[2]);
- PamVector v2 = PamVector.rotateVector(v, pq);
- return v2;
+// if (rotAngles[0] == 0 && rotAngles[1] == 0 && rotAngles[2] == 0) {
+// return v;
+// }
+// PamQuaternion pq = new PamQuaternion(rotAngles[0], rotAngles[1], rotAngles[2]);
+// PamVector v2 = PamVector.rotateVector(v, pq);
+ return v;
}
private double angleFromYPos(int yPos) {
diff --git a/src/clickDetector/ClickClassifiers/basicSweep/SweepClassifier.java b/src/clickDetector/ClickClassifiers/basicSweep/SweepClassifier.java
index dfb742d1..5b814962 100644
--- a/src/clickDetector/ClickClassifiers/basicSweep/SweepClassifier.java
+++ b/src/clickDetector/ClickClassifiers/basicSweep/SweepClassifier.java
@@ -226,7 +226,7 @@ public class SweepClassifier implements ClickIdentifier , PamSettings {
return clickDetector;
}
- protected int getNextFreeCode(int currCode) {
+ public int getNextFreeCode(int currCode) {
int newCode = currCode;
while (codeTaken(++newCode));
return newCode;
@@ -277,7 +277,7 @@ public class SweepClassifier implements ClickIdentifier , PamSettings {
* Set the params for the sweep classifier.
* @params the sweep classifier params to set.
*/
- public void setSeepClassifierParams(SweepClassifierParameters sweepClassifierParameters) {
+ public void setSweepClassifierParams(SweepClassifierParameters sweepClassifierParameters) {
this.sweepClassifierParameters=sweepClassifierParameters;
}
diff --git a/src/clickDetector/ClickParameters.java b/src/clickDetector/ClickParameters.java
index 369f950d..3146b0e4 100644
--- a/src/clickDetector/ClickParameters.java
+++ b/src/clickDetector/ClickParameters.java
@@ -106,7 +106,10 @@ public class ClickParameters implements Serializable, Cloneable, ManagedParamete
*/
public int backgroundIntervalMillis = 5000;
- public int clickClassifierType = ClickClassifierManager.CLASSIFY_BASIC;
+ /**
+ * The type of classifier to use - CLASSIFY_SWEEP is the default.
+ */
+ public int clickClassifierType = ClickClassifierManager.CLASSIFY_BETTER;
public boolean runEchoOnline = false;
diff --git a/src/clickDetector/layoutFX/ClickSettingsPane.java b/src/clickDetector/layoutFX/ClickSettingsPane.java
index f50da155..197bd958 100644
--- a/src/clickDetector/layoutFX/ClickSettingsPane.java
+++ b/src/clickDetector/layoutFX/ClickSettingsPane.java
@@ -6,6 +6,7 @@ import java.text.ParseException;
import clickDetector.ClickControl;
import clickDetector.ClickParameters;
import clickDetector.layoutFX.clickClassifiers.ClickClassifyPaneFX;
+import javafx.geometry.HPos;
import javafx.geometry.Orientation;
import javafx.geometry.Pos;
import javafx.scene.Node;
@@ -14,12 +15,14 @@ import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
+import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.Priority;
import javafx.scene.paint.Color;
import javafx.scene.shape.Line;
import javafx.util.StringConverter;
+import net.synedra.validatorfx.Validator;
import PamController.PamController;
import PamController.SettingsPane;
import PamDetection.RawDataUnit;
@@ -43,8 +46,8 @@ import pamViewFX.fxNodes.utilityPanes.GroupedSourcePaneFX;
* @author Jamie Macaulay
*/
public class ClickSettingsPane extends SettingsPane{
-
- public static double PREF_SPINNER_WIDTH = 100;
+
+ public static double PREF_SPINNER_WIDTH = 140;
/**
* Group source pane for the click settings pane.
@@ -160,25 +163,35 @@ public class ClickSettingsPane extends SettingsPane{
private Tab tdoaTab;
/**
- * The default pane width
+ * The main holder pane.
*/
- public static double paneWidth=500;
+ private PamBorderPane mainPane;
/**
* The default pane height.
*/
- public static double paneHeigt=800;
+ public static double PREF_PANE_HEIGHT=850;
/**
- * The main holder pane.
+ * The default pane width
*/
- private PamBorderPane mainPane;
+ public static double PREF_PANE_WIDTH=550;
+
+
+ /**
+ * Validator which checks for errors
+ */
+ private Validator clickValidator;
+
+
public ClickSettingsPane(ClickControl clickControl){
super(null);
this.clickControl=clickControl;
mainPane= new PamBorderPane();
+ clickValidator = new Validator();
+
pamTabbedPane=new PamTabPane();
pamTabbedPane.setAddTabButton(false);
pamTabbedPane.setTabClosingPolicy(TabPane.TabClosingPolicy.UNAVAILABLE);
@@ -187,49 +200,49 @@ public class ClickSettingsPane extends SettingsPane{
PamVBox detectionPane=new PamVBox();
detectionPane.setSpacing(20);
detectionPane.getChildren().add(createClickDetectionPane());
-
-
+
+
PamHBox holder=new PamHBox();
holder.setSpacing(20);
holder.getChildren().addAll(createClickLengthPane(), createClickTriggerPane());
detectionPane.getChildren().add(holder);
-
+
detectionPane.getChildren().add(createTriggerGraph());
//add everything to tabs.
pamTabbedPane.getTabs().add(new Tab("Click Detection", detectionPane));
clickDelayPane=createDelayPane();
- pamTabbedPane.getTabs().add(tdoaTab=new Tab("Click TDOA", clickDelayPane.getContentNode()));
+ pamTabbedPane.getTabs().add(tdoaTab=new Tab("TDOA and Echoes", clickDelayPane.getContentNode()));
tdoaTab.setOnSelectionChanged((event)->{
if (pamTabbedPane.getSelectionModel().getSelectedItem()==tdoaTab){
- System.out.println("clickDelayPane: "+clickDelayPane);
+ //System.out.println("clickDelayPane: "+clickDelayPane);
//need to update the tab with a copy of the current click params.
clickDelayPane.setParams(clickClassificationPane.getParams(clickParameters.clone()));
}
});
-
-
+
+
//pre filter pane.
preFilter=new FilterPaneFX(Orientation.VERTICAL);
pamTabbedPane.getTabs().add(new Tab("Pre Filter", preFilter.getContentNode()));
-
+
//trigger pane
triggerFilter=new FilterPaneFX(Orientation.VERTICAL);
pamTabbedPane.getTabs().add(new Tab("Trigger Filter", triggerFilter.getContentNode()));
-
- //echo detection pane.
- echoDetection= new ClickEchoPane(clickControl);
- pamTabbedPane.getTabs().add(new Tab("Echo Detection", echoDetection.getContentNode()));
-
+
+ // //echo detection pane.
+ // echoDetection= new ClickEchoPane(clickControl);
+ // pamTabbedPane.getTabs().add(new Tab("Echo Detection", echoDetection.getContentNode()));
+
/***Note: FX does not implment click train detection in click detector****/
//classifiaction pane.
- pamTabbedPane.getTabs().add(new Tab("Click Classification", clickClassificationPane=new ClickClassifyPaneFX(clickControl)));
+ pamTabbedPane.getTabs().add(new Tab("Classification", clickClassificationPane=new ClickClassifyPaneFX(clickControl)));
//want a slightly bigger pane as a lot going on in this dialog.
//Note JavaFX 8u61 + has auto DPI scaling so this is really the size of a dialog on a standard HD monitor of
//reasonable size, rather than actual pixels
- mainPane.setPrefSize(paneWidth, paneHeigt);
+ mainPane.setPrefSize(PREF_PANE_WIDTH, PREF_PANE_HEIGHT);
//addTabListeners();
mainPane.setCenter(new PamBorderPane(pamTabbedPane));
@@ -267,16 +280,17 @@ public class ClickSettingsPane extends SettingsPane{
//channels, groups and trigger are all in one pane to make it easy not to make mistakes
sourcePane=createClickSourcePane(); //create the source pane.
-
-
- GridPane.setColumnSpan(sourcePane.getDataBlockBox(), 4);
+
+
+ GridPane.setColumnSpan(sourcePane.getDataBlockBox(), 2);
//now create trigger pane. The trigger pane is added to the source pane.
Label triggerLabel = new Label("Trigger Channels");
PamGuiManagerFX.titleFont2style(triggerLabel);
sourcePane.getSourcePane().add(triggerLabel,1,2);
-
+
triggerChannels=new Pane();
sourcePane.getSourcePane().add(triggerChannels,1,3);
+ GridPane.setHalignment(triggerChannels, HPos.RIGHT);
createTriggerChannels();
//sourcePane.getSourcePane().add(createClickTriggerPane(), 2, 3);
@@ -285,7 +299,18 @@ public class ClickSettingsPane extends SettingsPane{
// pamTabbedPane.getTabs().add(new Tab("Click Echoes", createEchoPane()));
// pamTabbedPane.getTabs().add(new Tab("Click Delays", createDelayPane()));
- sourcePane.setPrefWidth(paneWidth);
+ ColumnConstraints col1 = new ColumnConstraints();
+ col1.setHgrow(Priority.ALWAYS);
+
+ ColumnConstraints col2 = new ColumnConstraints();
+ col2.setHgrow(Priority.SOMETIMES);
+ col2.setHalignment(HPos.RIGHT);
+ sourcePane.getSourcePane().getColumnConstraints().addAll(col1, col2);
+
+ PamHBox.setHgrow(sourcePane.getChannelPane(), Priority.NEVER);
+
+ //sourcePane.setMinWidth(PREF_PANE_WIDTH);
+ sourcePane.getSourcePane().setPrefWidth(PREF_PANE_WIDTH);
return sourcePane;
}
@@ -317,7 +342,7 @@ public class ClickSettingsPane extends SettingsPane{
maxClickLength.setEditable(true);
maxClickLength.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
maxClickLength.setPrefWidth(PREF_SPINNER_WIDTH);
-
+
lengthPane.add(maxClickLength,1,1);
lengthPane.add(new Label("samples"),2,1);
@@ -326,7 +351,7 @@ public class ClickSettingsPane extends SettingsPane{
preSampleSpinner=new PamSpinner(0, 10000000, 100, 20);
preSampleSpinner.setEditable(true);
preSampleSpinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
- preSampleSpinner.setPrefWidth(PREF_SPINNER_WIDTH);
+ //preSampleSpinner.setPrefWidth(PREF_SPINNER_WIDTH);
lengthPane.add(preSampleSpinner,1,2);
lengthPane.add(new Label("samples"),2,2);
@@ -336,7 +361,8 @@ public class ClickSettingsPane extends SettingsPane{
postSampleSpinner=new PamSpinner(0, 10000000, 100, 20);
postSampleSpinner.setEditable(true);
postSampleSpinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
- postSampleSpinner.setPrefWidth(PREF_SPINNER_WIDTH);
+ //postSampleSpinner.setPrefWidth(PREF_SPINNER_WIDTH);
+
lengthPane.add(postSampleSpinner,1,3);
lengthPane.add(new Label("samples"),2,3);
@@ -360,13 +386,24 @@ public class ClickSettingsPane extends SettingsPane{
else selectNoChannels();
});
- //create a list of trigger boxes
+ //create a list of trigger boxesc
for (int i=0; i{
selectionChanged(n);
+ clickValidator.validate(); //make sure all nodes are resrt when one channel is ticked.
});
+ clickValidator.createCheck()
+ .dependsOn(("trigger " + n), triggerBoxes[i].selectedProperty())
+ .withMethod(c -> {
+ if (!isATriggerSelected() ) {
+ c.error("At least one trigger channel needs to be selected for the module to work");
+ }
+ })
+ .decorates(triggerBoxes[n])
+ .immediate();
+
}
populateTriggerPane();
@@ -406,7 +443,7 @@ public class ClickSettingsPane extends SettingsPane{
threshold.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
threshold.getValueFactory().valueProperty().addListener((obs, before, after)->{
clickParameters.dbThreshold=after;
- clickTriggerGraph.updateWaveformGraph(this.clickParameters);
+ clickTriggerGraph.updateGraphFilter();
});
triggerBox.add(threshold,1,0);
triggerBox.add(new Label("dB"),2,0);
@@ -420,7 +457,7 @@ public class ClickSettingsPane extends SettingsPane{
longFilter.getValueFactory().valueProperty().addListener((obs, before, after)->{
clickParameters.longFilter=after;
clickTriggerGraph.setLongFilter(clickParameters.longFilter);
- clickTriggerGraph.updateWaveformGraph(this.clickParameters);
+ clickTriggerGraph.updateGraphFilter();
});
triggerBox.add(longFilter,1,1);
longFilter.setPrefWidth(PREF_SPINNER_WIDTH);
@@ -444,11 +481,14 @@ public class ClickSettingsPane extends SettingsPane{
shortFilter.getValueFactory().valueProperty().addListener((obs, before, after)->{
clickParameters.shortFilter=after;
clickTriggerGraph.setShortFilter(clickParameters.shortFilter);
- clickTriggerGraph.updateWaveformGraph(this.clickParameters);
+ clickTriggerGraph.updateGraphFilter();
});
shortFilter.setPrefWidth(PREF_SPINNER_WIDTH);
triggerBox.add(shortFilter,1,3);
+ //forces the grid pane to be larger - grid panes can be a little funny.
+ shortFilter.setMinWidth(PREF_SPINNER_WIDTH);
+
triggerPane.add(triggerBox,0,1);
//triggerPane.setGridLinesVisible(true);
@@ -456,7 +496,7 @@ public class ClickSettingsPane extends SettingsPane{
return triggerPane;
}
-
+
private Pane createTriggerGraph() {
//trigger graph
Label graphLabel = new Label("Filter Graph");
@@ -469,9 +509,9 @@ public class ClickSettingsPane extends SettingsPane{
PamVBox triggerGraph = new PamVBox();
triggerGraph.setSpacing(5);
triggerGraph.getChildren().addAll(graphLabel, clickTriggerGraph);
-
+
return triggerGraph;
-
+
}
/**
@@ -525,7 +565,7 @@ public class ClickSettingsPane extends SettingsPane{
}
/**
- * Get the current channle bitmap.
+ * Get the current channels bitmap.
* @return integer channel bitmap
*/
private int getChannels(){
@@ -538,6 +578,32 @@ public class ClickSettingsPane extends SettingsPane{
}
return channels;
}
+
+
+ /**
+ * Get the number of selected trigger channels.
+ * @return the number of selected trigger channels.
+ */
+ private int getNSelectedTrigger() {
+ int channels=getChannels();
+ int n=0;
+ //now add correct trigger children again
+ for (int i = 0; i < Math.min(PamConstants.MAX_CHANNELS, triggerBoxes.length); i++) {
+ if ((channels & 1<0;
+ }
+
/**
* Create trigger channels
@@ -555,6 +621,8 @@ public class ClickSettingsPane extends SettingsPane{
triggerChannels.getChildren().add(selectAll);
for (int i = 0; i < Math.min(PamConstants.MAX_CHANNELS, triggerBoxes.length); i++) {
if ((channels & 1<{
return null;
}
-// clickParameters.rawDataSource = rawDataBlock.toString();
-// clickParameters.channelBitmap = sourcePane.getChannelList();
-// clickParameters.channelGroups = sourcePane.getChannelGroups();
-// clickParameters.groupingType = sourcePane.getGrouping();
-
+ // clickParameters.rawDataSource = rawDataBlock.toString();
+ // clickParameters.channelBitmap = sourcePane.getChannelList();
+ // clickParameters.channelGroups = sourcePane.getChannelGroups();
+ // clickParameters.groupingType = sourcePane.getGrouping();
+
//sets the params for source pane.
sourcePane.getParams(clickParameters.getGroupedSourceParameters());
-
+
// if (sourcePanel.getParams() == false) return false;
try {
clickParameters.dbThreshold = Double.valueOf(threshold.getValue());
@@ -669,6 +737,8 @@ public class ClickSettingsPane extends SettingsPane{
return null;
}
}
+
+ clickParameters = clickClassificationPane.getParams(clickParameters);
}
catch (Exception e){
@@ -696,12 +766,12 @@ public class ClickSettingsPane extends SettingsPane{
else {
sourcePane.setSourceIndex(0);
}
-
+
sourcePane.setParams(clickParameters.getGroupedSourceParameters());
-
-// sourcePane.setGrouping(clickParameters.groupingType);
-// sourcePane.setChannelGroups(clickParameters.channelGroups);
-// sourcePane.setChannelList(clickParameters.channelBitmap);
+
+ // sourcePane.setGrouping(clickParameters.groupingType);
+ // sourcePane.setChannelGroups(clickParameters.channelGroups);
+ // sourcePane.setChannelList(clickParameters.channelBitmap);
//click length pane
minClickSep.getValueFactory().setValue(clickParameters.minSep);
diff --git a/src/clickDetector/layoutFX/ClickTriggerGraph.java b/src/clickDetector/layoutFX/ClickTriggerGraph.java
index f1e0b5ed..2f7b0ecf 100644
--- a/src/clickDetector/layoutFX/ClickTriggerGraph.java
+++ b/src/clickDetector/layoutFX/ClickTriggerGraph.java
@@ -1,15 +1,25 @@
package clickDetector.layoutFX;
-import clickDetector.ClickParameters;
+import java.util.ArrayList;
+
+import PamUtils.PamArrayUtils;
+import javafx.concurrent.Task;
+import javafx.geometry.Pos;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.XYChart.Data;
import javafx.scene.chart.XYChart.Series;
+import javafx.scene.control.ChoiceBox;
+import javafx.scene.layout.Pane;
+import javafx.scene.layout.StackPane;
import pamViewFX.fxNodes.PamBorderPane;
+import pamViewFX.fxNodes.PamStackPane;
import pamViewFX.fxNodes.pamChart.PamLineChart;
-import simulatedAcquisition.sounds.ClickSound;
-import simulatedAcquisition.sounds.ClickSound.WINDOWTYPE;
-import simulatedAcquisition.sounds.SimSignal;
+import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSound;
+import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory;
+import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundCategory;
+import rawDeepLearningClassifier.layoutFX.exampleSounds.ExampleSoundFactory.ExampleSoundType;
+import javafx.application.Platform;
/**
* Graph which shows a click and associated trigger functions
@@ -17,28 +27,22 @@ import simulatedAcquisition.sounds.SimSignal;
*
*/
public class ClickTriggerGraph extends PamBorderPane {
-
- public final static int PORPOISE_CLICK=0;
-
- public final static int SPERM_WHALE=1;
- private int currentClick=PORPOISE_CLICK;
-
private NumberAxis xAxis;
private NumberAxis yAxis;
-
+
/**
* The long filter
*/
private double longFilter=0.00001;
-
+
/**
* The short filter
*/
private double shortFilter=0.01;
-
+
/*
* Random noise added to the click and surrounding snippet.
*/
@@ -48,48 +52,33 @@ public class ClickTriggerGraph extends PamBorderPane {
private int freq2;
+ public static final int PREF_GRAPH_WIDTH = 400;
+
+ /**
+ * The example sound factory.
+ */
+ private ExampleSoundFactory exampleSoundFactory;
+
+ private Series signalLevelSeries;
+
+ private Series noiseLevelSeries;
+
+ Task task;
+
private double[] waveform;
-
+
+
public ClickTriggerGraph(){
+ this.exampleSoundFactory = new ExampleSoundFactory();
this.setCenter(createWaveformGraph());
this.setPrefWidth(400);
//FIXME - seems to a resize bug in high DPI displays. Seems fixed in 8u60.
- this.waveform=generateClickWaveform(currentClick, noise);
+ generateClickWaveform(ExampleSoundType.PORPOISE_CLICK, noise);
}
-
- /**
- * Update graph. Delete current data series and create new one.
- */
- public void updateWaveformGraph(ClickParameters clickParameters){
-
-// System.out.println(" Graph width: xAxis: "+xAxis.widthProperty().get());
-// System.out.println(" Graph width: this: "+this.widthProperty().get());
-// System.out.println(" Graph width: plotChart: "+plotChart.widthProperty().get());
-// System.out.println(" xAxisLayout:: "+xAxis.layoutXProperty().get());
-// System.out.println(" plotLayout:: "+plotChart.layoutXProperty().get());
-
- Series waveformSeries = new Series();
- Series signalLevelSeries = new Series();
- Series noiseLevelSeries = new Series();
-
- double[] signalLevel=calcFilter(waveform, shortFilter);
- double[] noiseLevel=calcFilter(waveform, longFilter);
-
- for (int i=0; i(i, waveform[i]));
- signalLevelSeries.getData().add(new Data(i, signalLevel[i]));
- noiseLevelSeries.getData().add(new Data(i, noiseLevel[i]));
- }
-
- plotChart.getData().removeAll(plotChart.getData());
- plotChart.getData().addAll(waveformSeries,signalLevelSeries,noiseLevelSeries);
- }
-
-
public double[] calcFilter(double[] waveform, double alpha){
double[] filterVals=new double[waveform.length];
for (int i=0; inNoiseSamples && n createWaveformGraph(){
-
+
+
+ public Pane createWaveformGraph(){
+
+ StackPane stackPane = new PamStackPane();
+
+
xAxis=new NumberAxis();
xAxis.setMaxWidth(Double.MAX_VALUE);
xAxis.setLabel("Sample");
@@ -154,20 +103,39 @@ public class ClickTriggerGraph extends PamBorderPane {
yAxis=new NumberAxis(-1,1,0.2);
yAxis.setLabel("Amplitude");
yAxis.setAutoRanging(false);
-
+
plotChart=new PamLineChart(xAxis, yAxis);
plotChart.setMaxWidth(Double.MAX_VALUE);
plotChart.setAnimated(false);
plotChart.setLegendVisible(false);
plotChart.setCreateSymbols(false);
-
plotChart.getStyleClass().add("thin-chart");
//plotChart.getXAxis().setSide(Side.BOTTOM);
- return plotChart;
+
+ ChoiceBox waveformChoice = new ChoiceBox();
+ ArrayList exampleSounds = exampleSoundFactory.getExampleSoundTypes(ExampleSoundCategory.ODONTOCETES_CLICKS, ExampleSoundCategory.BAT);
+
+ for (int i=0; i{
+ generateClickWaveform(waveformChoice.getSelectionModel().getSelectedItem(), noise);
+ updateGraphWaveform() ;
+ updateGraphFilter();
+ });
+ waveformChoice.getSelectionModel().select(ExampleSoundType.PORPOISE_CLICK);
+ waveformChoice.setPrefWidth(180);
+
+ StackPane.setAlignment(waveformChoice, Pos.TOP_RIGHT);
+
+
+ stackPane.getChildren().addAll(plotChart, waveformChoice);
+
+ return stackPane;
}
-
+
public double getLongFilter() {
return longFilter;
}
@@ -176,6 +144,131 @@ public class ClickTriggerGraph extends PamBorderPane {
this.longFilter = longFilter;
}
+
+ /**
+ * Update the waveform of the species.
+ */
+ public synchronized void updateGraphWaveform() {
+ plotChart.getData().clear();
+
+
+ Series waveformSeries = new Series();
+ for (int i=0; i(i, waveform[i]));
+ }
+
+ plotChart.getData().add(waveformSeries);
+ }
+ /**
+ * Update graph. Delete current data series and create new one.
+ */
+ public synchronized void updateGraphFilter(){
+
+ if (waveform.length<500) {
+ if (task!=null) {
+ task.cancel(true);
+ }
+
+ //no need to do on separate thread.
+ plotChart.getData().remove(signalLevelSeries);
+ plotChart.getData().remove(noiseLevelSeries);
+
+ plotChart.getData().add(signalLevelSeries = calcSeries(waveform, shortFilter));
+ plotChart.getData().add(noiseLevelSeries = calcSeries(waveform, longFilter));
+ }
+ else {
+ if (task!=null) {
+ if (task.isRunning()) {
+ return;
+ }
+ }
+
+ /***
+ * FIXME
+ * This is a little ridiculous but there are two bugs in JavaFX
+ * 1) The line chart is super slow
+ * 2) If you get a freeze in the FX application thread then your trigger the spinner button multiple times.
+ *
+ * Doing this on a thread gets rid of the issue but is not a particular nice solution.
+ */
+
+ task = new Task() {
+ @Override protected Integer call() throws Exception {
+
+ Series signalLevelSeries1 = calcSeries(waveform, shortFilter);
+ Series noiseLevelSeries2 = calcSeries(waveform, longFilter);
+
+ Platform.runLater(()->{
+ // if (shortFilter!=shortFilter1 || forceChange) {
+ plotChart.getData().remove(signalLevelSeries);
+ plotChart.getData().add(signalLevelSeries1);
+ signalLevelSeries = signalLevelSeries1;
+ // }
+
+ // if (shortFilter!=shortFilter1 || forceChange) {
+ plotChart.getData().remove(noiseLevelSeries);
+ plotChart.getData().add(noiseLevelSeries2);
+ noiseLevelSeries = noiseLevelSeries2;
+ // }
+
+ });
+
+ return 0;
+ }
+ };
+
+ Thread th = new Thread(task);
+ th.setDaemon(true);
+ th.start();
+ }
+ }
+
+ private Series calcSeries(double[] waveform, double alpha){
+ Series signalLevelSeries1 = new Series();
+ double[] signalLevel=calcFilter(waveform, alpha);
+
+ for (int i=0; i(i, signalLevel[i]));
+ }
+
+ return signalLevelSeries1;
+
+ }
+
+ /**
+ * Generate a click waveform with some added noise.
+ * @param type - the type of click e.g. ClickTriggerGraph.PORPOISE_CLICK.
+ * @param noise. 0 to 1. 1 means max noise amplitude will be same as maximum click amplitude.
+ * @return click and noise waveform.
+ */
+ private void generateClickWaveform(ExampleSoundType selectedItem, double noise) {
+
+ ExampleSound sound = this.exampleSoundFactory.getExampleSound(selectedItem);
+
+ double sR = sound.getSampleRate();
+
+ //System.out.println("Waveform: " + sound.getWave().length + " " + selectedItem);
+
+ double[] clickWave = PamArrayUtils.divide( sound.getWave(), PamArrayUtils.max( sound.getWave()));
+ //now need to work out how many noise samples to add. Use the length of the click
+ int nNoiseSamples=Math.min((int) (clickWave.length), sound.getWave().length >2000? 0 : 100);
+ double[] waveform=new double[2*nNoiseSamples + clickWave.length];
+ int n=0;
+ double[] signal=clickWave;
+ for (int i=0; inNoiseSamples && n
+ * Note that this is a copy...ish of the swing frameowrk - wouldn't od things this way usually.
* @author Jamie Macaulay
*
*/
@@ -43,7 +46,7 @@ public class ClickClassifyPaneFX extends PamStackPane {
private ClickControl clickControl;
- private CheckBox runOnlineCheckBox;
+ private PamToggleSwitch runOnlineCheckBox;
private CheckBox discardClicksCheckBox;
@@ -120,16 +123,16 @@ public class ClickClassifyPaneFX extends PamStackPane {
classifierComboBox.getItems().add(clickControl.getClassifierManager().getClassifierName(i));
classifierComboBox.setOnAction((action)->{
//get the current click identifier.
- System.out.println("ClickClassifyPaneFX:setOnAction: " +classifierComboBox.getSelectionModel().getSelectedIndex());
+ //System.out.println("ClickClassifyPaneFX:setOnAction: " +classifierComboBox.getSelectionModel().getSelectedIndex());
currentClickIdentifier=clickControl.getClassifierManager().
- getClassifier(classifierComboBox.getSelectionModel().getSelectedIndex());
+ getClassifier(classifierComboBox.getSelectionModel().getSelectedIndex());
//change the centre pane to classifier specific pane
setCenterPane();
});
}
- runOnlineCheckBox=new CheckBox("Run Classifier");
- discardClicksCheckBox=new CheckBox("Discdard Classified Clicks");
+ runOnlineCheckBox=new PamToggleSwitch("Run Classifier");
+ //discardClicksCheckBox=new CheckBox("Discdard Classified Clicks");
PamHBox pamHBox=new PamHBox();
pamHBox.setAlignment(Pos.CENTER);
@@ -168,6 +171,9 @@ public class ClickClassifyPaneFX extends PamStackPane {
//System.out.println("ClickClassifyPaneFX:setParams(): " +classifierComboBox.getSelectionModel().getSelectedIndex());
classifierComboBox.getSelectionModel().select(clickParameters.clickClassifierType);
+
+ //System.out.println("ClickClassifyPaneFX: setParams: get selected classifier is: " + clickParameters.clickClassifierType);
+
//set classifier parameters
if (currentClickIdentifier!=null && currentClickIdentifier.getClassifierPane()!=null) {
this.currentClickIdentifier.getClassifierPane().setParams();
@@ -180,6 +186,8 @@ public class ClickClassifyPaneFX extends PamStackPane {
//System.out.println("ClickClassifyPaneFX:getParams(): " +classifierComboBox.getSelectionModel().getSelectedIndex());
clickParameters.clickClassifierType=classifierComboBox.getSelectionModel().getSelectedIndex();
+
+ //System.out.println("ClickClassifyPaneFX: getParams: get selected classifier is: " + clickParameters.clickClassifierType);
if (currentClickIdentifier != null && currentClickIdentifier.getClassifierPane() != null) {
currentClickIdentifier.getClassifierPane().getParams();
}
diff --git a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierPaneFX.java b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierPaneFX.java
index 44544234..e9a0979b 100644
--- a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierPaneFX.java
+++ b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierPaneFX.java
@@ -38,6 +38,14 @@ public class SweepClassifierPaneFX extends BasicIdentifierPaneFX {
@Override
public void setClassifierPane(ClickTypeProperty clickTypeProperty){
SweepClassifierSetPaneFX sweepPane=new SweepClassifierSetPaneFX(sweepClickClassifier);
+
+
+ //make it so the title of the pane is the same as the name as the classifier
+ getFlipPane().getAdvLabel().textProperty().unbind();
+ getFlipPane().getAdvLabel().textProperty().bind( sweepPane.getNameTextProperty());
+
+ sweepPane.classifierItemRow = sweepClickClassifier.getSweepClassifierParams().getSetRow((SweepClassifierSet) clickTypeProperty.getClickType());
+
sweepPane.setParams(clickTypeProperty);
super.getClickTypeHolder().setCenter(sweepPane.getContentNode());
@@ -52,14 +60,20 @@ public class SweepClassifierPaneFX extends BasicIdentifierPaneFX {
@Override
public void setParams() {
+
sweepIdParameters = sweepClickClassifier.getSweepClassifierParams().clone();
+
+
//change the table
tableDataChanged();
}
@Override
public boolean getParams() {
- sweepClickClassifier.setSeepClassifierParams(sweepIdParameters);
+// System.out.println("Sweep classifier getParams: " + sweepIdParameters);
+ if (sweepIdParameters==null) sweepIdParameters = new SweepClassifierParameters();
+
+ sweepClickClassifier.setSweepClassifierParams(sweepIdParameters);
//remove all classifiers and add whatever is in the table.
sweepClickClassifier.getSweepClassifierParams().removeAll();
diff --git a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java
index 8120c7ed..d5e1cbc8 100644
--- a/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java
+++ b/src/clickDetector/layoutFX/clickClassifiers/SweepClassifierSetPaneFX.java
@@ -3,6 +3,7 @@ package clickDetector.layoutFX.clickClassifiers;
import fftFilter.FFTFilterParams;
import fftManager.FFTLengthModeled;
+import javafx.beans.property.StringProperty;
import javafx.geometry.HPos;
import javafx.geometry.Insets;
import javafx.geometry.Orientation;
@@ -30,9 +31,13 @@ import pamViewFX.fxNodes.picker.SymbolPicker;
import pamViewFX.fxNodes.utilityPanes.FreqBandPane;
import pamViewFX.fxNodes.utilityPanes.PamToggleSwitch;
import pamViewFX.fxNodes.utilityPanes.SimpleFilterPaneFX;
+import pamViewFX.fxNodes.utilsFX.PamUtilsFX;
import pamViewFX.PamGuiManagerFX;
+import net.synedra.validatorfx.Validator;
import PamController.SettingsPane;
+import PamView.PamSymbol;
+import PamView.symbol.SymbolData;
import clickDetector.ClickClassifiers.basicSweep.CodeHost;
import clickDetector.ClickClassifiers.basicSweep.SweepClassifier;
import clickDetector.ClickClassifiers.basicSweep.SweepClassifierSet;
@@ -95,7 +100,11 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
*/
private AmplitudeBlock amplitudeBlock;
- PamBorderPane mainPane = new PamBorderPane();
+ private PamBorderPane mainPane = new PamBorderPane();
+
+ private Validator validator = new Validator();
+
+ public int classifierItemRow;
public SweepClassifierSetPaneFX(SweepClassifier sweepClassifier){
super(null);
@@ -325,6 +334,14 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
*/
private Label lengthMS;
+ private ComboBox lengthTypeBox;
+
+ private CheckBox restrictLength;
+
+ private ColorPicker lineColourPicker;
+
+ private ColorPicker fillColourPicker;
+
OptionsBox() {
super("General Options", false);
this.getHolderPane().setCenter(createOptionsPane());
@@ -334,6 +351,7 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
//create the general options
private Node createOptionsPane(){
+
PamGridPane pamGridPane=new PamGridPane();
pamGridPane.setHgap(5);
pamGridPane.setVgap(5);
@@ -343,25 +361,54 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
nameField=new TextField();
nameField.setPrefColumnCount(10);
- pamGridPane.add(nameField, 0, 0);
- PamGridPane.setColumnSpan(nameField, 2);
-
+ pamGridPane.add(nameField, 1, 0);
+ PamGridPane.setColumnSpan(nameField, 8);
+ PamGridPane.setHgrow(nameField, Priority.ALWAYS);
- pamGridPane.add(new Label("Code"), 3, 0);
+ validator.createCheck()
+ .dependsOn("speciesname", nameField.textProperty())
+ .withMethod(c -> {
+ String userName = c.get("speciesname");
+ if (userName == null || userName.length()<=0) {
+ c.error("The classifier must have a name");
+ }
+ })
+ .decorates(nameField)
+ .immediate();
+ ;
+
+
+ pamGridPane.add(new Label("Code"), 0, 1);
- codeSpinner=new PamSpinner (0, 500, 0, 1);
+ codeSpinner=new PamSpinner (1, 500, 0, 1);
codeSpinner.setEditable(true);
//codeSpinner.setPrefWidth(150);
codeSpinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
- pamGridPane.add(codeSpinner, 1, 0);
+ pamGridPane.add(codeSpinner, 1, 1);
// pamGridPane.add(new Label("Symbol"), 0,1);
//create colour picker to allow users to change symbol colour.
symbolPicker=new SymbolPicker();
- pamGridPane.add(symbolPicker, 2, 0);
+ pamGridPane.add(symbolPicker, 3,1);
- pamGridPane.add(new Label("Symbol"), 3,0);
+ pamGridPane.add(new Label("Symbol"), 2,1);
+
+ lineColourPicker = new ColorPicker();
+ lineColourPicker.setStyle("-fx-color-label-visible: false ;");
+ lineColourPicker.setOnAction((action)->{
+ symbolPicker.setLineColour(lineColourPicker.getValue());
+ });
+ pamGridPane.add(lineColourPicker, 4, 1);
+
+
+ fillColourPicker = new ColorPicker();
+ fillColourPicker.setStyle("-fx-color-label-visible: false ;");
+ fillColourPicker.setOnAction((action)->{
+ symbolPicker.setFillColour(fillColourPicker.getValue());
+ });
+ pamGridPane.add(fillColourPicker, 5, 1);
+
// //create a button to allow users to change symbol shape.
// symbolColour=new ColorPicker();
@@ -371,35 +418,46 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
// });
//channel options
- pamGridPane.add(new Label("Channels"), 0,1);
+ pamGridPane.add(new Label("Channels"), 0,2);
channelsBox = new ComboBox();
for (int i = 0; i < 3; i++) {
channelsBox.getItems().add(SweepClassifierSet.getChannelOptionsName(i));
}
- pamGridPane.add(channelsBox, 1,1);
+ pamGridPane.add(channelsBox, 1,2);
- PamGridPane.setColumnSpan(channelsBox, 7);
+ PamGridPane.setColumnSpan(channelsBox,8 );
//restrict parameter to click centre
PamHBox clickCenterBox=new PamHBox();
clickCenterBox.setSpacing(5);
- clickCenterBox.getChildren().add(new CheckBox("Analyse click "));
+ clickCenterBox.getChildren().add(restrictLength = new CheckBox("Trim click"));
clickLengthSpinner=new PamSpinner(4,102400,128,32);
clickLengthSpinner.setEditable(true);
//clickLengthSpinner.setPrefWidth(150);
clickLengthSpinner.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
+ clickLengthSpinner.valueProperty().addListener((obsVal, oldVal, newVal)->{
+ setLengthLabel();
+ });
clickCenterBox.getChildren().add(clickLengthSpinner);
- clickCenterBox.getChildren().add(new Label("samples"));
+ Label samplesLabel =new Label("samples");
+ clickCenterBox.getChildren().add(samplesLabel);
clickCenterBox.getChildren().add(lengthMS=new Label("()"));
- clickCenterBox.getChildren().add(new Label("around click center."));
+ clickCenterBox.getChildren().add(lengthTypeBox = new ComboBox());
+ lengthTypeBox.getItems().add("around click center");
+ lengthTypeBox.getItems().add("from start of click");
clickCenterBox.setAlignment(Pos.CENTER_LEFT);
- PamGridPane.setColumnSpan(clickCenterBox, 4);
- PamGridPane.setHgrow(clickCenterBox, Priority.ALWAYS);
- pamGridPane.add(clickCenterBox, 0,2);
+
+ restrictLength.setOnAction((action)->{
+ lengthTypeBox.setDisable(!restrictLength.isSelected());
+ clickLengthSpinner.setDisable(!restrictLength.isSelected());
+ samplesLabel.setDisable(!restrictLength.isSelected());
+ lengthMS.setDisable(!restrictLength.isSelected());
+ });
+
// //column constraints
// ColumnConstraints col1 = new ColumnConstraints();
@@ -414,14 +472,16 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
// col4.setPercentWidth(35);
//
// pamGridPane.getColumnConstraints().addAll(col1, col2, col3,col4);
-
- return pamGridPane;
-
+
+ PamVBox holder = new PamVBox();
+ holder.setSpacing(5);
+ holder.getChildren().addAll(pamGridPane,clickCenterBox);
+
+ return holder;
}
@Override
public int getCode() {
- // TODO Auto-generated method stub
return codeSpinner.getValue();
}
@@ -441,29 +501,99 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
float sr = sweepClassifier.getClickDetector().getSampleRate();
lengthMS.setText(String.format("(%.2f ms)", fftLength * 1000 / sr));
}
+
+ /**
+ * Set the length in seconds.
+ */
+ private void setLengthLabel() {
+ float sr = sweepClassifier.getClickDetector().getSampleRate();
+ lengthMS.setText(String.format("(%.2f ms)", clickLengthSpinner.getValue() * 1000 / sr));
+ }
@Override
protected void setParams() {
- nameField.setText(sweepClassifierSet.getName());
- codeSpinner.getValueFactory().setValue(sweepClassifierSet.getSpeciesCode());
+
+ if (sweepClassifierSet == null) {
+ //symbolViewer.setSymbol(null);
+ symbolPicker.getSelectionModel().select(0);
+ nameField.setText("");
+ setCode(sweepClassifier.getNextFreeCode(0));
+ }
+ else {
+ symbolPicker.setSymbol(sweepClassifierSet.symbol == null? null : sweepClassifierSet.symbol.getSymbol());
+ nameField.setText(sweepClassifierSet.getName());
+ setCode(sweepClassifierSet.getSpeciesCode());
+ }
+
+ if (sweepClassifierSet == null) {
+ return;
+ }
+
+ lengthTypeBox.getSelectionModel().select(sweepClassifierSet.restrictedBinstype);
+
channelsBox.getSelectionModel().select(sweepClassifierSet.channelChoices);
- clickLengthSpinner.getValueFactory().setValue(sweepClassifierSet.restrictedBins);
+ restrictLength.setSelected(sweepClassifierSet.restrictLength);
+ setFFTLength(sweepClassifierSet.restrictedBins);
+
+
+// nameField.setText(sweepClassifierSet.getName());
+// codeSpinner.getValueFactory().setValue(sweepClassifierSet.getSpeciesCode());
+// channelsBox.getSelectionModel().select(sweepClassifierSet.channelChoices);
+//
+// //length stuff
+// clickLengthSpinner.getValueFactory().setValue(sweepClassifierSet.restrictedBins);
+
}
@Override
protected boolean getParams() {
sweepClassifierSet.setName(nameField.getText());
- sweepClassifierSet.setSpeciesCode(codeSpinner.getValue());
- sweepClassifierSet.channelChoices=channelsBox.getSelectionModel().getSelectedIndex();
- sweepClassifierSet.restrictedBins=clickLengthSpinner.getValue();
+
+ if (this.symbolPicker.getValue()==null) {
+ return showWarning("You must pick a symbol");
+ }
+
+ SymbolData symbolData = new SymbolData(this.symbolPicker.getValue().getSymbol(), 10,10,true,
+ PamUtilsFX.fxToAWTColor(this.lineColourPicker.getValue()), PamUtilsFX.fxToAWTColor(this.fillColourPicker.getValue()));
+ sweepClassifierSet.symbol= new PamSymbol(symbolData);
+ if (sweepClassifierSet.getName().length() <= 0) {
+ return showWarning("You must enter a name for this type of click");
+ }
+ sweepClassifierSet.setSpeciesCode(getCode());
+ if (sweepClassifier.codeDuplicated(sweepClassifierSet, classifierItemRow) ||
+ sweepClassifierSet.getSpeciesCode() <= 0){
+ return showWarning("You must enter a unique positive integer species code");
+ }
+ if (sweepClassifierSet.symbol == null) {
+ return showWarning("You must select a symbol");
+ }
+ sweepClassifierSet.channelChoices = channelsBox.getSelectionModel().getSelectedIndex();
+ sweepClassifierSet.restrictLength = restrictLength.isSelected();
+
+ sweepClassifierSet.restrictedBinstype = lengthTypeBox.getSelectionModel().getSelectedIndex();
+
+ try {
+ sweepClassifierSet.restrictedBins = clickLengthSpinner.getValue();
+ }
+ catch (NumberFormatException e) {
+ return showWarning("Invalid Restricted length value");
+ }
return true;
+// sweepClassifierSet.setName(nameField.getText());
+// sweepClassifierSet.setSpeciesCode(codeSpinner.getValue());
+// sweepClassifierSet.channelChoices=channelsBox.getSelectionModel().getSelectedIndex();
+// sweepClassifierSet.restrictedBins=clickLengthSpinner.getValue();
}
@Override
protected void disbleControls(boolean enable) {
// TODO Auto-generated method stub
}
+
+ public TextField getNameLabel() {
+ return this.nameField;
+ }
}
@@ -1111,4 +1241,15 @@ public class SweepClassifierSetPaneFX extends SettingsPane {
}
+
+ public StringProperty getNameTextProperty() {
+ return optionBox.getNameLabel().textProperty();
+ }
+
+ private boolean showWarning(String string) {
+ PamDialogFX.showWarning(string);
+ return false;
+ }
+
+
}
diff --git a/src/clickTrainDetector/classification/standardClassifier/StandardClassifier.java b/src/clickTrainDetector/classification/standardClassifier/StandardClassifier.java
index c86c2ae4..f323855a 100644
--- a/src/clickTrainDetector/classification/standardClassifier/StandardClassifier.java
+++ b/src/clickTrainDetector/classification/standardClassifier/StandardClassifier.java
@@ -9,10 +9,7 @@ import clickTrainDetector.classification.CTClassifier;
import clickTrainDetector.classification.CTClassifierParams;
import clickTrainDetector.classification.CTClassifierType;
import clickTrainDetector.classification.bearingClassifier.BearingClassifier;
-import clickTrainDetector.classification.bearingClassifier.BearingClassifierParams;
-import clickTrainDetector.classification.idiClassifier.IDIClassification;
import clickTrainDetector.classification.idiClassifier.IDIClassifier;
-import clickTrainDetector.classification.simplechi2classifier.Chi2CTClassification;
import clickTrainDetector.classification.simplechi2classifier.Chi2ThresholdClassifier;
import clickTrainDetector.classification.templateClassifier.CTTemplateClassifier;
import clickTrainDetector.layout.classification.CTClassifierGraphics;
diff --git a/src/dataMap/filemaps/OfflineFileServer.java b/src/dataMap/filemaps/OfflineFileServer.java
index 52f4b13b..2249eb4e 100644
--- a/src/dataMap/filemaps/OfflineFileServer.java
+++ b/src/dataMap/filemaps/OfflineFileServer.java
@@ -342,7 +342,7 @@ public abstract class OfflineFileServer impl
return "Sound Files";
}
- protected TmapPoint findFirstMapPoint(Iterator mapIterator, long startMillis, long endMillis) {
+ public TmapPoint findFirstMapPoint(Iterator mapIterator, long startMillis, long endMillis) {
TmapPoint mapPoint, prevMapPoint = null;
while (mapIterator.hasNext()) {
mapPoint = mapIterator.next();
diff --git a/src/dataModelFX/DataModelModulePane.java b/src/dataModelFX/DataModelModulePane.java
index 10a0ab91..5c6d4d62 100644
--- a/src/dataModelFX/DataModelModulePane.java
+++ b/src/dataModelFX/DataModelModulePane.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import PamController.PamController;
import PamModel.PamModuleInfo;
+import atlantafx.base.theme.PrimerDark;
import dataModelFX.ConnectionNodeParams.PAMConnectionNodeType;
import dataModelFX.connectionNodes.ModuleIconFactory;
import javafx.beans.property.ObjectProperty;
@@ -12,6 +13,7 @@ import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.SnapshotParameters;
+import javafx.scene.control.Button;
import javafx.scene.control.Tooltip;
import javafx.scene.image.ImageView;
import javafx.scene.input.ClipboardContent;
@@ -72,7 +74,9 @@ public class DataModelModulePane extends PamBorderPane {
private PamScrollPane createPane(){
moduleSelectPane=new PamScrollPane();
- moduleSelectPane.getStylesheets().add(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
+
+ moduleSelectPane.getStylesheets().add(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS());
+
moduleSelectPane.setPrefWidth(250);
moduleSelectPane.getStyleClass().add("scroll-pane-dark");
diff --git a/src/dataModelFX/DataModelPaneFX.java b/src/dataModelFX/DataModelPaneFX.java
index 384c7536..91b4aa20 100644
--- a/src/dataModelFX/DataModelPaneFX.java
+++ b/src/dataModelFX/DataModelPaneFX.java
@@ -16,6 +16,7 @@ import pamViewFX.fxNodes.connectionPane.StandardConnectionNode;
import pamViewFX.fxNodes.connectionPane.StandardConnectionPlug;
import pamViewFX.fxNodes.connectionPane.structures.ConnectionGroupStructure;
import pamViewFX.fxNodes.connectionPane.structures.ConnectionStructure;
+import pamViewFX.fxStyles.PamStylesManagerFX;
import javafx.beans.property.ObjectProperty;
import javafx.geometry.Orientation;
import javafx.scene.control.SplitPane;
diff --git a/src/dataModelFX/connectionNodes/ModuleProcessDiagram.java b/src/dataModelFX/connectionNodes/ModuleProcessDiagram.java
index fde19f77..7134e542 100644
--- a/src/dataModelFX/connectionNodes/ModuleProcessDiagram.java
+++ b/src/dataModelFX/connectionNodes/ModuleProcessDiagram.java
@@ -71,7 +71,7 @@ public class ModuleProcessDiagram extends PamBorderPane {
public ModuleProcessDiagram (PamControlledUnit pamControlledUnit){
- this.getStylesheets().add(PamController.getInstance().getGuiManagerFX().getPamSettingsCSS());
+ //this.getStylesheets().add(PamController.getInstance().getGuiManagerFX().getPamSettingsCSS());
this.pamControlledUnit=pamControlledUnit;
createUpdateTimer();
createControlDataModel();
@@ -81,7 +81,7 @@ public class ModuleProcessDiagram extends PamBorderPane {
private void createControlDataModel(){
this.setMinWidth(100);
this.setPrefWidth(USE_COMPUTED_SIZE);
- this.setStyle("-fx-background-color: -fx-darkbackground");
+ //this.setStyle("-fx-background-color: -fx-darkbackground");
this.populateDataModel();
}
diff --git a/src/dataPlotsFX/layout/TDDisplayFX.java b/src/dataPlotsFX/layout/TDDisplayFX.java
index cc2da642..9c6fc66c 100644
--- a/src/dataPlotsFX/layout/TDDisplayFX.java
+++ b/src/dataPlotsFX/layout/TDDisplayFX.java
@@ -158,7 +158,7 @@ public class TDDisplayFX extends PamBorderPane {
/**
* The height of the control pane.
*/
- final static double controlPaneHeight=63;
+ final static double CONTROL_PANE_HEIGHT=80;
/**
@@ -238,7 +238,7 @@ public class TDDisplayFX extends PamBorderPane {
//create top hiding panel.
controlPane=new TDControlPaneFX(tdControl,this);
controlPane.setParams(tdParametersFX);
- controlPane.setPrefHeight(controlPaneHeight);
+ controlPane.setPrefHeight(CONTROL_PANE_HEIGHT);
hidingControlPane=new HidingPane(Side.TOP, controlPane, this, false );
hidingControlPane.showHidePane(tdParametersFX.showControl);
diff --git a/src/dataPlotsFX/layout/TDGraphFX.java b/src/dataPlotsFX/layout/TDGraphFX.java
index e1767960..661e4fc2 100644
--- a/src/dataPlotsFX/layout/TDGraphFX.java
+++ b/src/dataPlotsFX/layout/TDGraphFX.java
@@ -272,7 +272,7 @@ public class TDGraphFX extends PamBorderPane {
* blocks.
*/
tdAxisSelPane = new TDDataSelPaneFX(this);
- tdAxisSelPane.setPrefWidth(250);
+ tdAxisSelPane.setPrefWidth(280);
// put pane inside a scroll pane for graph resizing
PamScrollPane scrollPane = new PamScrollPane(tdAxisSelPane);
// scrollPane.setFitToWidth(true);
diff --git a/src/help/detectors/ClickTrainDetector/docs/ClickTrainDetector.html b/src/help/detectors/ClickTrainDetector/docs/ClickTrainDetector.html
index 6c080887..9be1f7ec 100644
--- a/src/help/detectors/ClickTrainDetector/docs/ClickTrainDetector.html
+++ b/src/help/detectors/ClickTrainDetector/docs/ClickTrainDetector.html
@@ -498,7 +498,7 @@
plotted on the time-based display by adding Click detections to the
display and then using the right
-
+
diff --git a/src/matchedTemplateClassifer/MTClassifierControl.java b/src/matchedTemplateClassifer/MTClassifierControl.java
index f93022b9..dc8ef4b8 100644
--- a/src/matchedTemplateClassifer/MTClassifierControl.java
+++ b/src/matchedTemplateClassifer/MTClassifierControl.java
@@ -7,11 +7,14 @@ import java.util.ArrayList;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import PamController.PamControlledUnit;
+import PamController.PamControlledUnitGUI;
import PamController.PamControlledUnitSettings;
import PamController.PamControllerInterface;
+import PamController.PamGUIManager;
import PamController.PamSettingManager;
import PamController.PamSettings;
import PamController.SettingsPane;
+import PamView.WrapperControlledGUISwing;
import PamView.symbol.SymbolData;
import PamguardMVC.PamDataBlock;
import clickDetector.ClickClassifiers.ClickTypeProvider;
@@ -66,6 +69,17 @@ public class MTClassifierControl extends PamControlledUnit implements PamSetting
* The offline process.
*/
private MTOfflineProcess mtOfflineProcess;
+
+ /**
+ * The JavaFX graphics
+ */
+ private MTControlGUI matchedClickGUIFX;
+
+ /**
+ * The swing graphics - in this case the graphics are JavaFX so this calls a swing wrapper
+ * to hold the JavaFX graphics.
+ */
+ private PamControlledUnitGUI matchedClickGUIGUISwing;
public MTClassifierControl(String unitName) {
@@ -379,6 +393,33 @@ public class MTClassifierControl extends PamControlledUnit implements PamSetting
return mtOfflineProcess;
}
+ public void setMTParams(MatchedTemplateParams newParams) {
+ this.matchedTemplateParams = newParams;
+
+ }
+
+ /**
+ * Get the GUI for the PAMControlled unit. This has multiple GUI options which
+ * are instantiated depending on the view type.
+ *
+ * @param flag. The GUI type flag defined in PAMGuiManager.
+ * @return the GUI for the PamControlledUnit unit.
+ */
+ public PamControlledUnitGUI getGUI(int flag) {
+ if (flag == PamGUIManager.FX) {
+ if (matchedClickGUIFX == null) {
+ matchedClickGUIFX = new MTControlGUI(this);
+ }
+ return matchedClickGUIFX;
+ }
+ if (flag == PamGUIManager.SWING) {
+ if (matchedClickGUIGUISwing == null) {
+ matchedClickGUIGUISwing = new WrapperControlledGUISwing(this);
+ }
+ return matchedClickGUIGUISwing;
+ }
+ return null;
+ }
diff --git a/src/matchedTemplateClassifer/MTControlGUI.java b/src/matchedTemplateClassifer/MTControlGUI.java
new file mode 100644
index 00000000..c1bef1ef
--- /dev/null
+++ b/src/matchedTemplateClassifer/MTControlGUI.java
@@ -0,0 +1,74 @@
+package matchedTemplateClassifer;
+
+import PamController.PamControlledUnitGUI;
+import PamController.PamController;
+import PamController.PamControllerInterface;
+import PamController.PamGUIManager;
+import PamController.SettingsPane;
+import PamView.WrapperControlledGUISwing;
+import pamViewFX.PamControlledGUIFX;
+import rawDeepLearningClassifier.DLControl;
+import rawDeepLearningClassifier.DLControlGUI;
+import rawDeepLearningClassifier.RawDLParams;
+
+/**
+ * The JavaFX GUI for the Matched click classifier control...
+ * @author Jamie Macaulay
+ *
+ */
+public class MTControlGUI extends PamControlledGUIFX {
+
+ /**
+ * The dl control.
+ */
+ private MTClassifierControl mtControl;
+
+
+ public MTControlGUI(MTClassifierControl dlcontrol) {
+ this.mtControl = dlcontrol;
+ }
+
+ /**
+ * The settings pane contains ALL possible setting for the module in one placed.
+ * Settings panes can be divided into tabs for more space etc.
+ *
+ * @param
+ * @return a Pane containing controls to change settings for module.
+ */
+ public SettingsPane> getSettingsPane(){
+ mtControl.getSettingsPane().setParams(mtControl.getMTParams());
+ return mtControl.getSettingsPane();
+ }
+
+
+ @Override
+ public void updateParams() {
+ MatchedTemplateParams newParams=mtControl.getSettingsPane().getParams(mtControl.getMTParams());
+ if (newParams!=null) {
+ mtControl.setMTParams(newParams);
+ }
+ //setup the controlled unit.
+ mtControl.setupControlledUnit();
+ }
+
+ @Override
+ public void notifyGUIChange(int changeType) {
+ switch (changeType) {
+ case PamController.INITIALIZATION_COMPLETE:
+ break;
+ case PamControllerInterface.CHANGED_PROCESS_SETTINGS:
+ //data source may have potentially changed. e.g. by a datamodelfx Need to set in params.
+ //System.out.println("FFTControl: CHANGED_PROCESS_SETTINGS : " +fftProcess.getParentDataBlock());
+ if (mtControl.getParentDataBlock()!=null){
+ mtControl.getMTParams().dataSourceName = mtControl.getParentDataBlock().getDataName();
+ }
+ else mtControl.getMTParams().dataSourceName = "";
+ break;
+ }
+ }
+
+
+
+
+}
+
diff --git a/src/matchedTemplateClassifer/MTProcess.java b/src/matchedTemplateClassifer/MTProcess.java
index 07c4316e..32c46040 100644
--- a/src/matchedTemplateClassifer/MTProcess.java
+++ b/src/matchedTemplateClassifer/MTProcess.java
@@ -4,6 +4,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import PamController.PamController;
+import PamDetection.RawDataUnit;
import PamUtils.complex.ComplexArray;
import PamView.symbol.PamSymbolManager;
import PamguardMVC.PamDataBlock;
@@ -12,8 +13,10 @@ import PamguardMVC.PamInstantProcess;
import PamguardMVC.PamObservable;
import PamguardMVC.RawDataHolder;
import Spectrogram.WindowFunction;
+import clickDetector.ClickDetection;
import clickDetector.ClickLength;
import clickDetector.ClickClassifiers.basicSweep.SweepClassifierSet;
+import clipgenerator.ClipDataUnit;
import fftManager.FastFFT;
import matchedTemplateClassifer.annotation.MatchedClickAnnotation;
import matchedTemplateClassifer.annotation.MatchedClickAnnotationType;
@@ -485,6 +488,21 @@ public class MTProcess extends PamInstantProcess {
public BeskopeClassifierManager getBespokeClassifierManager() {
return bespokeClassifierManager;
}
+
+ /**
+ * A list of data block class types which are compatible as parent data blocks
+ * for the PamProcess. This can return null, e.g. in the case of Acquisition
+ * process.
+ *
+ * @return a list of PamDataBlock sub class types which can be used as parent
+ * data blocks for the process.
+ */
+ @Override
+ public ArrayList getCompatibleDataUnits(){
+ return new ArrayList>(Arrays.asList(ClickDetection.class));
+ }
+
+
// /**
// * Get the parent click data block.
diff --git a/src/nidaqdev/networkdaq/NINetworkDaq.java b/src/nidaqdev/networkdaq/NINetworkDaq.java
index b436663f..c7c52b19 100644
--- a/src/nidaqdev/networkdaq/NINetworkDaq.java
+++ b/src/nidaqdev/networkdaq/NINetworkDaq.java
@@ -9,9 +9,10 @@ import java.net.Socket;
import javax.swing.JComponent;
import javax.swing.Timer;
-import x3.CRC16;
-import x3.X3FrameDecode;
-import x3.X3FrameHeader;
+import org.pamguard.x3.x3.CRC16;
+import org.pamguard.x3.x3.X3FrameDecode;
+import org.pamguard.x3.x3.X3FrameHeader;
+
import networkTransfer.NetworkObject;
import networkTransfer.receive.BuoyStatusDataUnit;
import networkTransfer.receive.NetworkDataUser;
diff --git a/src/pamViewFX/PamGuiManagerFX.java b/src/pamViewFX/PamGuiManagerFX.java
index 37512661..f3de8029 100644
--- a/src/pamViewFX/PamGuiManagerFX.java
+++ b/src/pamViewFX/PamGuiManagerFX.java
@@ -13,12 +13,15 @@ import pamViewFX.fxNodes.PamVBox;
import pamViewFX.fxNodes.internalNode.PamInternalPane;
import pamViewFX.fxNodes.pamDialogFX.PamDialogFX;
import pamViewFX.fxNodes.pamDialogFX.PamSettingsDialogFX;
+import pamViewFX.fxStyles.PamAtlantaStyle;
import pamViewFX.fxStyles.PamStylesManagerFX;
import pamViewFX.pamTask.PamTaskUpdate;
import userDisplayFX.UserDisplayNodeFX;
import PamModel.PamModel;
import PamModel.PamModuleInfo;
import PamView.PamViewInterface;
+import atlantafx.base.theme.PrimerDark;
+import atlantafx.base.theme.PrimerLight;
import dataMap.layoutFX.DataMapPaneFX;
import PamController.PAMControllerGUI;
import PamController.PamControlledUnit;
@@ -28,6 +31,7 @@ import PamController.PamGUIManager;
import PamController.PamSettingManager;
import PamController.PamSettings;
import dataModelFX.DataModelPaneFX;
+import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
@@ -134,11 +138,11 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
public PamGuiManagerFX(PamController pamController, Object stage) {
-
+
this.pamController=pamController;
pamGuiSettings= new PAMGuiFXSettings();
-
+
primaryStage= (Stage) stage;
primaryStage.setOnCloseRequest(e->{
@@ -159,19 +163,22 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
*/
private void start(Stage primaryStage) {
+ PamStylesManagerFX.getPamStylesManagerFX().setCurStyle(new PamAtlantaStyle());
+
//add stage
stages.add(primaryView = new PamGuiFX(primaryStage, this));
//create new data model.
dataModelFX=stages.get(0).addDataModelTab();
scene = new Scene(stages.get(0));
+ scene.getStylesheets().add(getPamCSS());
+
+// Application.setUserAgentStylesheet(new PrimerDark().getUserAgentStylesheet());
// stages.get(0).prefWidthProperty().bind(scene.widthProperty());
// stages.get(0).prefHeightProperty().bind(scene.heightProperty());
primaryStage.setScene(scene);
- // scene.getStylesheets().add(pamCSS);
- scene.getStylesheets().add(getPamCSS());
//need to add this for material design icons and fontawesome icons
// scene.getStylesheets().addAll(GlyphsStyle.DEFAULT.getStylePath());
@@ -458,7 +465,7 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
TabSelectionPane tabSelectionPane=new TabSelectionPane(stages.get(0));
PamSettingsDialogFX> settingsDialog=new PamSettingsDialogFX(tabSelectionPane);
- settingsDialog.getDialogPane().getStylesheets().add(PamController.getInstance().getGuiManagerFX().getPamSettingsCSS());
+ settingsDialog.getDialogPane().getStylesheets().add(PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getDialogCSS());
settingsDialog.initStyle(StageStyle.UNDECORATED);
// ChoiceDialog dialog = new ChoiceDialog<>(tabStrings.get(1), tabStrings);
@@ -485,7 +492,7 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
* Get CSS for PAMGUARD setting 'look and feel' for sliding dialogs
* @return the CSS for settings feels.
*/
- public String getPamSettingsCSS() {
+ public String getPamSettingsCSS() {//return new PrimerDark().getUserAgentStylesheet();
// return getClass().getResource("/Resources/css/pamSettingsCSS.css").toExternalForm();
return PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS();
}
@@ -495,6 +502,7 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
* @return the standard CSS fro PAMGUARD.
*/
public String getPamCSS() {
+ //return new PrimerLight().getUserAgentStylesheet();
// return getClass().getResource("/Resources/css/pamCSS.css").toExternalForm();
return PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getGUICSS();
}
@@ -503,8 +511,9 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
* Get CSS for PAMGUARD GUI standard 'look and feel' for regular dialogs
* @return the standard CSS fro PAMGUARD.
*/
- public String getPamDialogCSS() {
- return PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getSlidingDialogCSS();
+ public String getPamDialogCSS() {//return new PrimerDark().getUserAgentStylesheet();
+
+ return PamStylesManagerFX.getPamStylesManagerFX().getCurStyle().getDialogCSS();
}
@@ -644,7 +653,7 @@ public class PamGuiManagerFX implements PAMControllerGUI, PamSettings {
mainPane.getChildren().addAll(title, namePane);
dialog.getDialogPane().setContent(mainPane);
- dialog.getDialogPane().getStylesheets().add(PamController.getInstance().getGuiManagerFX().getPamSettingsCSS());
+ dialog.getDialogPane().getStylesheets().add(this.getPamDialogCSS());
//add listener to prevent close request if the dialog
final Button btOk = (Button) dialog.getDialogPane().lookupButton(ButtonType.OK);
diff --git a/src/pamViewFX/PamGuiTabFX.java b/src/pamViewFX/PamGuiTabFX.java
index 569d1084..cf03e5d2 100644
--- a/src/pamViewFX/PamGuiTabFX.java
+++ b/src/pamViewFX/PamGuiTabFX.java
@@ -166,6 +166,8 @@ public class PamGuiTabFX extends PamTabFX {
//create a new GUI frame.
PamGuiFX pamGUIFX=new PamGuiFX(tabPane, newStage, pamGui.getPamGuiManagerFX());
pamGUIFX.getStylesheets().add(pamGui.getPamGuiManagerFX().getPamCSS());
+
+
//need to add PamGUIFX to list in PamGUIManagerFX.
pamGui.getPamGuiManagerFX().getPamGuiFXList().add(pamGUIFX);
newStage.setOnCloseRequest(e->{
diff --git a/src/pamViewFX/fxNodes/PamSpinner.java b/src/pamViewFX/fxNodes/PamSpinner.java
index bf0b1c6c..2335237c 100644
--- a/src/pamViewFX/fxNodes/PamSpinner.java
+++ b/src/pamViewFX/fxNodes/PamSpinner.java
@@ -18,50 +18,50 @@ public class PamSpinner extends Spinner{
* Default widths are way off in JavaFX for spinners.
*/
// private static final double PAMSPINNER_PREF_WIDTH = USE_COMPUTED_SIZE;
- private static final double PAMSPINNER_PREF_WIDTH = 100;
+ //private static final double PAMSPINNER_PREF_WIDTH = 100;
public PamSpinner() {
super();
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
// TODO Auto-generated constructor stub
}
public PamSpinner(double min, double max, double initialValue, double amountToStepBy) {
super(min, max, initialValue, amountToStepBy);
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
addDefocusConverter();
}
public PamSpinner(double min, double max, double initialValue) {
super(min, max, initialValue);
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
addDefocusConverter();
}
public PamSpinner(int min, int max, int initialValue, int amountToStepBy) {
super(min, max, initialValue, amountToStepBy);
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
addDefocusConverter();
}
public PamSpinner(int min, int max, int initialValue) {
super(min, max, initialValue);
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
addDefocusConverter();
}
public PamSpinner(ObservableList arg0) {
super(arg0);
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
addDefocusConverter();
}
public PamSpinner(SpinnerValueFactory arg0) {
super(arg0);
addDefocusConverter();
- this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
+ //this.setPrefWidth(PAMSPINNER_PREF_WIDTH);
}
/**
diff --git a/src/pamViewFX/fxNodes/hidingPane/pamSettingsCSS.css b/src/pamViewFX/fxNodes/hidingPane/pamSettingsCSS.css
deleted file mode 100644
index cad4c7c4..00000000
--- a/src/pamViewFX/fxNodes/hidingPane/pamSettingsCSS.css
+++ /dev/null
@@ -1,492 +0,0 @@
-/**
-* CSS for PAMGUARD settings panels. These are dark with clean white buttons and a cyan highlight them.
-*
-* Author: Jamie Macaulay;
-**/
-/*******************************************************************************
- * *
- * Declare colour variables *
- * *
- ******************************************************************************/
-* {
- -fx-darkbackground: rgba(60,60,60,.90);
- -fx-highlight: rgba(0,204,204,.75);
- -fx-highlight_border: rgba(0,204,204,1);
- -fx-text: white;
- -fx-border_col: white;
-}
-
-/*******************************************************************************
- * *
- * Panes *
- * *
- ******************************************************************************/
-
-.root {
- -fx-background-color: -fx-darkbackground;
- -fx-padding: 10;
-}
-
-.pane {
- -fx-background-color: -fx-darkbackground;
-}
-
-.border{
- -fx-background-color: -fx-darkbackground;
-}
-
-.grid {
- -fx-background-color: -fx-darkbackground;
-}
-
-.hBox {
- -fx-background-color: -fx-darkbackground;
-}
-
-/*******************************************************************************
- * *
- * Hiding Tab *
- * *
- ******************************************************************************/
- #hide-tab {
- -fx-background-color: transparent;
- -fx-border-radius: 5 5 0 0;
- -fx-background-radius: 5 5 0 0;
- -fx-border-color: -fx-border_col;
-}
-
- #show-tab {
- -fx-background-color: transparent;
- -fx-border-radius: 5 5 0 0;
- -fx-background-radius: 5 5 0 0;
- -fx-border-color: -fx-border_col;
-}
-
- #hide-tab-highlight {
- -fx-background-color: -fx-highlight;
- -fx-border-radius: 5 5 0 0;
- -fx-background-radius: 5 5 0 0;
- -fx-border-color: -fx-highlight_border;
-}
-
-/*******************************************************************************
- * *
- * Label *
- * *
- ******************************************************************************/
-
-.label{
- -fx-text-fill: -fx-text;
-}
-
-
-/*******************************************************************************
- * *
- * Slider *
- * *
- ******************************************************************************/
-
-
- .slider .axis {
- -fx-fill: -fx-text;
- -fx-stroke: -fx-text;
- -fx-tick-label-fill: -fx-text;
- -fx-text-fill: -fx-text;
- -fx-tick-mark-stroke: -fx-text;
-}
-
-/*******************************************************************************
- * *
- * Dialog Pane *
- * *
- ******************************************************************************/
-
- .dialog-pane {
- -fx-background-color: -fx-darkbackground;
-}
-
-/*******************************************************************************
- * *
- * Button *
- * *
- ******************************************************************************/
-
-.button{
- -fx-text-fill: white;
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5;
- -fx-background-radius:6;
- -fx-padding: 3 6 6 6;
-}
-
-.button:hover{
- -fx-background-color: -fx-highlight;
- -fx-border-color: -fx-highlight_border;
-}
-
-.button:selected{
- -fx-border-color: -fx-highlight;
-}
-
-/**
- * Button for closing a hiding panel. Right indicates bottoms points towards the right, closing a hiding panel
- * on the right hand side of the screen. These buttons have a transparent background and rounded corners.
- */
- /** top-left, top-right, bottom-right, and bottom-left corners, in that order. */
-.close-button-right{
- -fx-background-color: transparent;
- -fx-background-radius: 0 10 10 0;
- -fx-border-radius: 0 10 10 0;
-}
-
-
-.close-button-left{
- -fx-background-color: transparent;
- -fx-background-radius: 10 0 0 10;
- -fx-border-radius: 10 0 0 10;
-}
-
-
-.close-button-top{
- -fx-background-color: transparent;
- -fx-background-radius: 10 10 0 0;
- -fx-border-radius: 10 10 0 0;
-}
-
-
-.close-button-bottom{
- -fx-background-color: transparent;
- -fx-background-radius: 0 0 10 10;
- -fx-border-radius: 0 0 10 10;
-}
-
-
-.close-button-bottom-grey{
--fx-border-color: transparent;
- -fx-background-radius: 0 0 10 10;
- -fx-border-radius: 0 0 10 10;
-}
-
-.close-button-left-trans{
- -fx-border-color: transparent;
- -fx-background-color: transparent;
- -fx-background-radius: 10 0 0 10;
- -fx-border-radius: 10 0 0 10;
-}
-
-.close-button-right-trans{
- -fx-border-color: transparent;
- -fx-background-color: transparent;
- -fx-background-radius: 0 10 10 0;
- -fx-border-radius: 0 10 10 0;
-}
-
-/*******************************************************************************
- * *
- * TextField *
- * *
- ******************************************************************************/
-
-.text-field {
- -fx-border-color: transparent;
- -fx-background-color: transparent;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5;
- -fx-text-fill: -fx-text;
-}
-
-.text-field:selected{
- -fx-border-color: -fx-highlight;
-}
-
-.text-field:focused{
- -fx-border-color: -fx-highlight;
-}
-
-
-/*******************************************************************************
- * *
- * MenuButton *
- * *
- ******************************************************************************/
-
-.menu-button{
- -fx-text-fill: -fx-text;
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: rgb(255, 255, 255);
- -fx-border-radius: 5;
- -fx-padding: 3 6 6 6;
-}
-
-
-/*******************************************************************************
- * *
- * SplitMenuButton *
- * *
- ******************************************************************************/
-
-.split-menu-button{
- -fx-text-fill: -fx-text;
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5;
-}
-
-
-.split-menu-button:hover{
- -fx-border-color: -fx-highlight_border;
-}
-
-
-.split-menu-button .label {
- -fx-text-fill: white;
- -fx-background-color: -fx-darkbackground;
- -fx-border-radius: 5;
-}
-
-
-.split-menu-button .label:hover {
- -fx-background-color: -fx-highlight;
-}
-
-
-.split-menu-button .arrow-button {
- -fx-text-fill: -fx-text;
- -fx-background-color: -fx-darkbackground;
- -fx-border-radius: 5;
-}
-
-
-.split-menu-button .arrow-button:hover {
- -fx-background-color: -fx-highlight;
-}
-
-
-/*******************************************************************************
- * *
- * Radio Button *
- * *
- ******************************************************************************/
-.radio-button {
- /* -fx-text-fill: rgb(255, 255, 255, 0.4);*/
- -fx-text-fill: -fx-text;
- /* -fx-effect: dropshadow(one-pass-box , rgba(0, 0, 0, 0.6), 0, 0.0 , 0 , 1 );*/
- -fx-border-width: 0px;
-}
-
-/*******************************************************************************
- * *
- * Check Box *
- * *
- ******************************************************************************/
-
- .check-box {
- /* -fx-text-fill: rgb(255, 255, 255, 0.4);*/
- -fx-text-fill: -fx-text;
- /* -fx-effect: dropshadow(one-pass-box , rgba(0, 0, 0, 0.6), 0, 0.0 , 0 , 1 );*/
- -fx-border-width: 0px;
-}
-
-/*******************************************************************************
- * *
- * ComboBox *
- * *
- ******************************************************************************/
-
-
-.combo-box-base{
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5;
- -fx-padding: 3 6 6 6;
-}
-
-.choice-box{
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5;
- -fx-padding: 3 6 6 6;
-}
-
-
-/*******************************************************************************
- * *
- * MenuItem *
- * *
- ******************************************************************************/
-
-
-.menu-item .label {
- -fx-text-fill: -fx-text;
- /*Must be transpernt so that semi transparent colour is not added to smei transparent*/
- -fx-background-color: transparent;
-}
-
-
-.menu-item:focused {
- -fx-background-color: -fx-highlight;
-}
-
-.menu-item:focused .label {
- -fx-text-fill: -fx-text;
-/*Weird fix-must make transparent for correct colour to show*/
- -fx-background-color: rgba(0,204,204,0);
-}
-
-.context-menu {
- -fx-skin: "com.sun.javafx.scene.control.skin.ContextMenuSkin";
- -fx-background-color: -fx-darkbackground;
- -fx-background-insets: 0, 1, 2;
- -fx-background-radius: 0 6 6 6, 0 5 5 5, 0 4 4 4;
-/* -fx-padding: 0.666667em 0.083333em 0.666667em 0.083333em; 8 1 8 1 */
- -fx-padding: 0.333333em 0.083333em 0.666667em 0.083333em; /* 4 1 8 1 */
-}
-
-/****************************************************************
-
- ScrollPane
-
-****************************************************************/
-.scroll-pane {
- -fx-background: transparent;
- -fx-background-color: transparent;
-}
-
-
-/****************************************************************
-
- ScrollBar
-
-****************************************************************/
-.scroll-bar {
- -fx-background-color: -fx-darkbackground;
- -fx-background-radius: 2em;
-}
-.scroll-bar:horizontal .track,
-.scroll-bar:vertical .track {
- -fx-background-color: transparent;
- -fx-border-color:transparent;
- -fx-background-radius: 2em;
-}
-.scroll-bar:vertical .track-background,
-.scroll-bar:horizontal .track-background {
- -fx-background-color: transparent;
- -fx-background-insets: 0;
- -fx-background-radius: 2em;
-}
-.scroll-bar:horizontal .thumb {
- -fx-background-color: rgb(211,211,211);
- -fx-background-insets: 4 0 4 0;
- -fx-background-radius: 2em;
-}
-.scroll-bar:vertical .thumb {
- -fx-background-color: rgb(211,211,211);
- -fx-background-insets: 0 4 0 4;
- -fx-background-radius: 2em;
-}
-.scroll-bar:horizontal .thumb:hover,
-.scroll-bar:vertical .thumb:hover {
- -fx-background-color: rgb(231,231,231);
-}
-.scroll-bar:horizontal .thumb:pressed,
-.scroll-bar:vertical .thumb:pressed {
- -fx-background-color: rgb(255,255,255);
-}
-.scroll-bar:vertical .increment-button, .scroll-bar:vertical .decrement-button {
- -fx-background-color:transparent;
- -fx-background-radius: 2em;
- -fx-padding: 5;
-}
-.scroll-bar:horizontal .increment-button, .scroll-bar:horizontal .decrement-button {
- -fx-background-color:transparent;
- -fx-background-radius: 2em;
- -fx-padding: 5;
-}
-.scroll-bar:horizontal .increment-arrow {
- -fx-shape: "M 0 0 L 4 8 L 8 0 Z";
- -fx-background-color: rgb(211,211,211);
- -fx-padding: 0.25em;
- -fx-rotate: -90;
-}
-.scroll-bar:vertical .increment-arrow {
- -fx-background-color: rgb(211,211,211);
- -fx-shape: "M 0 0 L 4 8 L 8 0 Z";
- -fx-padding: 0.25em;
- -fx-rotate: 0;
-}
-.scroll-bar:horizontal .decrement-arrow {
- -fx-background-color: rgb(211,211,211);
- -fx-shape: "M 0 0 L 4 8 L 8 0 Z";
- -fx-padding: 0.25em;
- -fx-rotate: 90;
-}
-.scroll-bar:vertical .decrement-arrow {
- -fx-background-color: rgb(211,211,211);
- -fx-shape: "M 0 0 L 4 8 L 8 0 Z";
- -fx-padding: 0.25em;
- -fx-rotate: -180;
-}
-.scroll-bar:vertical:focused,
-.scroll-bar:horizontal:focused {
- -fx-background-color: transparent,rgb(96,96,96),rgb(96,96,96);
-}
-
-/****************************************************************
-
- Spinner
-
-****************************************************************/
-
-.spinner {
- -fx-background: -fx-darkbackground;
- -fx-background-color: -fx-darkbackground;
- -fx-background-radius: 10;
- -fx-border-radius: 10;
- -fx-border-color: transparent;
-}
-
-.spinner .text-field {
- -fx-background: -fx-darkbackground;
- -fx-background-color: -fx-darkbackground;
- -fx-border-radius: 0 0 0 0;
- -fx-padding: 7 0 7 0;
- -fx-border-color: transparent;
-}
-
-.spinner .increment-arrow-button {
- -fx-text-fill: white;
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 5 5 0 0;
- -fx-padding: 7 0 7 0;
-}
-
-.spinner .increment-arrow {
- -fx-background-color: white;
-}
-
-.spinner .increment-arrow-button:hover {
- -fx-background-color: -fx-highlight;
- -fx-border-color: -fx-highlight_border;
- -fx-background-radius: 6 6 0 0;
- -fx-border-radius: 6 6 0 0;
-}
-
-.spinner .decrement-arrow-button {
- -fx-text-fill: white;
- -fx-background-color: -fx-darkbackground;
- -fx-border-color: -fx-border_col;
- -fx-border-radius: 0 0 6 6
-}
-
-.spinner .decrement-arrow {
- -fx-background-color: white;
-}
-
-.spinner .decrement-arrow-button:hover {
- -fx-background-color: -fx-highlight;
- -fx-border-color: -fx-highlight_border;
- -fx-background-radius: 0 0 6 6;
- -fx-border-radius: 0 0 6 6;
-}
\ No newline at end of file
diff --git a/src/pamViewFX/fxNodes/pamDialogFX/PamSettingsDialogFX.java b/src/pamViewFX/fxNodes/pamDialogFX/PamSettingsDialogFX.java
index 694ac9cd..57fc5839 100644
--- a/src/pamViewFX/fxNodes/pamDialogFX/PamSettingsDialogFX.java
+++ b/src/pamViewFX/fxNodes/pamDialogFX/PamSettingsDialogFX.java
@@ -2,6 +2,7 @@ package pamViewFX.fxNodes.pamDialogFX;
import java.util.Optional;
+import javafx.geometry.Insets;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
import pamViewFX.fxStyles.PamStylesManagerFX;
@@ -25,11 +26,13 @@ public class PamSettingsDialogFX extends PamDialogFX {
this.settingsPane=settingsPane;
this.setTitle(settingsPane.getName());
this.setContent(settingsPane.getContentNode());
+
+
// if (PamController.getInstance().getGuiManagerFX()!=null){
// this.getDialogPane().getStylesheets().add(PamController.getInstance().getGuiManagerFX().getPamSettingsCSS());
// }
PamStylesManagerFX stylesManager = PamStylesManagerFX.getPamStylesManagerFX();
- this.getDialogPane().getStylesheets().add(stylesManager.getCurStyle().getSlidingDialogCSS());
+ this.getDialogPane().getStylesheets().add(stylesManager.getCurStyle().getDialogCSS());
this.setOnShown((value)->{
settingsPane.paneInitialized();
});
diff --git a/src/pamViewFX/fxNodes/picker/SymbolPicker.java b/src/pamViewFX/fxNodes/picker/SymbolPicker.java
index 1daea57b..f29ada23 100644
--- a/src/pamViewFX/fxNodes/picker/SymbolPicker.java
+++ b/src/pamViewFX/fxNodes/picker/SymbolPicker.java
@@ -1,5 +1,6 @@
package pamViewFX.fxNodes.picker;
+import PamView.PamSymbol;
import PamView.PamSymbolType;
import javafx.geometry.Point2D;
import javafx.scene.canvas.Canvas;
@@ -127,7 +128,7 @@ public class SymbolPicker extends ComboBox {
/**
* Set the symbol with a symbol type.
- * @param symbol
+ * @param symbol - the symbol type.
*/
public void setValue(PamSymbolType symbol) {
for (int i=0; i {
}
}
+ /**
+ * Set the symbol with a symbol type. Note, replicates setValue for convenience.
+ * @param symbol - the symbol type.
+ */
+ public void setSymbol(PamSymbolType symbol) {
+ setValue(symbol);
+
+ }
+
+
+
}
diff --git a/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java b/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java
index ce8d7bf7..c8a3ebbe 100644
--- a/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java
+++ b/src/pamViewFX/fxNodes/utilityPanes/GroupedSourcePaneFX.java
@@ -3,13 +3,16 @@ package pamViewFX.fxNodes.utilityPanes;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
+import javafx.geometry.Pos;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.RadioButton;
import javafx.scene.control.ToggleGroup;
import javafx.scene.layout.GridPane;
+import javafx.scene.layout.Pane;
import javafx.scene.layout.Priority;
+import net.synedra.validatorfx.Validator;
import pamViewFX.PamGuiManagerFX;
import pamViewFX.fxNodes.PamGridPane;
import pamViewFX.fxNodes.PamHBox;
@@ -50,6 +53,15 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
*/
private PamGridPane sourcePane;
+ /**
+ * Holds channels and group settings.
+ */
+ private PamVBox channelPanel;
+
+ /**
+ * Validator for channels
+ */
+ private Validator channelValidator;
public GroupedSourcePaneFX(Class sourceType, boolean hasChannels, boolean includeSubClasses, boolean autoGrouping) {
@@ -64,6 +76,8 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
@Override
protected void createPanel() {
+ channelValidator = new Validator();
+
sourcePane=new PamGridPane();
sourcePane.setVgap(5);
sourcePane.setHgap(5);
@@ -90,7 +104,7 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
sourcePane.setMaxWidth(Double.MAX_VALUE);
//create pane to hold channels.
- PamVBox channelPanel=new PamVBox();
+ channelPanel=new PamVBox();
channelPanel.setSpacing(5);
Label channelLabel = new Label("Channels");
@@ -124,15 +138,39 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
selectAll.setOnAction((action)->{
if (selectAll.isSelected()) selectAllChannels();
else selectNoChannels();
+ channelValidator.validate(); //makes sure any error signs are removed
});
+
+ //create check to show at least some check boxes need to be selected.
+ channelValidator.createCheck()
+ .dependsOn(("select all"), selectAll.selectedProperty())
+ .withMethod(c -> {
+ if (!isAChannelSelected() ) {
+ c.error("At least one channel needs to be selected for the module to work");
+ }
+ })
+ .decorates(selectAll)
+ .immediate();
+ ;
//create a list of channels and combo boxes for groups.
if (isHasChannels()){
for (int i = 0; i < PamConstants.MAX_CHANNELS; i++){
channelBoxes[i] = new CheckBox("Channel " + i);
+ channelValidator.createCheck()
+ .dependsOn(("channel " + i), channelBoxes[i].selectedProperty())
+ .withMethod(c -> {
+ if (!isAChannelSelected() ) {
+ c.error("At least one channel needs to be selected for the module to work");
+ }
+ })
+ .decorates(channelBoxes[i])
+ .immediate();
+ ;
//channelPanel.getChildren().add(channelBoxes[i]);
final int n=i;
channelBoxes[i].setOnAction((action)->{
selectionChanged(n);
+ channelValidator.validate(); //makes sure any error signs are removed.
});
groupList[i]=new ComboBox();
//System.out.println("SourcePanel.java creatPanel"+i);
@@ -149,82 +187,43 @@ public class GroupedSourcePaneFX extends SourcePaneFX {
PamHBox channelGroupPane=new PamHBox();
channelGroupPane.setSpacing(15);
channelGroupPane.getChildren().addAll(channelPanel, autoGroupPane);
+ channelGroupPane.setAlignment(Pos.TOP_LEFT);
sourcePane.add(channelGroupPane,0,3);
//create source comboBox.
this.setCenter(sourcePane);
-
-// //old swing layout panels
-// panel = new JPanel();
-// JPanel sourcePanel = new JPanel();
-// sourcePanel.setLayout(new BorderLayout());
-// // add stuff to the panel.
-// if (borderTitle != null) {
-// sourcePanel.setBorder(new TitledBorder(borderTitle));
-// }
-// panel.setLayout(new BorderLayout());
-//// panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
-// sourcePanel.add(BorderLayout.CENTER, sourceList = new JComboBox());
-// panel.add(BorderLayout.NORTH, sourcePanel);
-// sourceList.addActionListener(this);
-// if (hasChannels) {
-// JPanel channelGroupPanel = new JPanel();
-// channelGroupPanel.setLayout(new BorderLayout());
-// channelGroupPanel.setBorder(new TitledBorder("Channel list and grouping"));
-// JPanel channelPanel = new JPanel();
-// JPanel autoGroupPanel = new JPanel();
-// autoGroupPanel.setLayout(new BoxLayout(autoGroupPanel, BoxLayout.Y_AXIS));
-// autoGroupPanel.add(new JLabel("Auto Grouping"));
-// autoGroupPanel.add(allSingles = new JRadioButton("No grouping"));
-// autoGroupPanel.add(allTogether = new JRadioButton("One group"));
-// autoGroupPanel.add(userGrouped = new JRadioButton("User groups"));
-// allSingles.addActionListener(new GroupAction(GROUP_SINGLES));
-// allTogether.addActionListener(new GroupAction(GROUP_ALL));
-// userGrouped.addActionListener(new GroupAction(GROUP_USER));
-// ButtonGroup bg = new ButtonGroup();
-// bg.add(allSingles);
-// bg.add(allTogether);
-// bg.add(userGrouped);
-//// channelPanel.setLayout(new BoxLayout(channelPanel, BoxLayout.Y_AXIS));
-// GridBagLayout layout;
-//// channelPanel.setBorder(new TitledBorder("Channel list and grouping"));
-// channelPanel.setLayout(layout = new GridBagLayout());
-// GridBagConstraints c = new GridBagConstraints();
-// c.gridwidth = 2;
-// c.anchor = GridBagConstraints.WEST;
-// c.gridx = c.gridy = 0;
-// addComponent(channelPanel, autoGroupPanel, c);
-//// addComponent(channelPanel, new JLabel("Channel list ..."), c);
-// c.gridwidth = 1;
-// c.insets = new Insets(0,5,0,5);
-// c.gridy++;
-// c.gridx = 0;
-// addComponent(channelPanel, new JLabel("Channel"), c);
-// c.gridx++;
-// addComponent(channelPanel, new JLabel("Group"), c);
-// groupList = new JComboBox[PamConstants.MAX_CHANNELS];
-// channelBoxes = new JCheckBox[PamConstants.MAX_CHANNELS];
-// for (int i = 0; i < PamConstants.MAX_CHANNELS; i++){
-// channelBoxes[i] = new JCheckBox("Channel " + i);
-// groupList[i] = new JComboBox();
-// c.gridy ++;
-// c.gridx = 0;
-// addComponent(channelPanel, channelBoxes[i], c);
-// c.gridx ++;
-// addComponent(channelPanel, groupList[i], c);
-//// channelPanel.add(channelBoxes[i]);
-// channelBoxes[i].setVisible(false);
-// groupList[i].setVisible(false);
-// channelBoxes[i].addActionListener(new SelectionListener(i));
-// }
-// channelGroupPanel.add(BorderLayout.WEST, autoGroupPanel);
-// channelGroupPanel.add(BorderLayout.CENTER, channelPanel);
-// panel.add(BorderLayout.CENTER, channelGroupPanel);
-// }
}
+ /**
+ * Get the validator for the channel. This can identify errors
+ * in
+ * @return
+ */
+ public Validator getChannelValidator() {
+ return channelValidator;
+ }
+
+ /**
+ * Check if
+ * @return
+ */
+ private boolean isAChannelSelected() {
+ int channels = 0;
+ PamDataBlock sb = getSource();
+ if (sb != null) {
+ // channels = sb.getChannelMap();
+ channels = sb.getSequenceMap();
+ }
+ int n=0;
+ //remove all channels from vertical box pane.
+ for (int i = 0; i < Math.min(PamConstants.MAX_CHANNELS, channelBoxes.length); i++) {
+ if ((channels & 1< {
browseButton.setOnAction((action)->{
browseFile(false);
});
+ browseButton.prefHeightProperty().bind(fileBox.heightProperty());
+
+
PamButton browseSaveButton = new PamButton();
// browseSaveButton.setGraphic(PamGlyphDude.createPamGlyph(MaterialDesignIcon.PLUS, Color.WHITE, PamGuiManagerFX.iconSize));
browseSaveButton.setGraphic(PamGlyphDude.createPamIcon("mdi2p-plus", Color.WHITE, PamGuiManagerFX.iconSize));
@@ -82,6 +85,9 @@ public class SettingsFilePane extends SettingsPane {
folderSelectPane.getChildren().addAll(fileBox, browseSaveButton, browseButton);
vBox.getChildren().add(folderSelectPane);
+ browseSaveButton.prefHeightProperty().bind(fileBox.heightProperty());
+
+
fileBox.prefHeightProperty().bind(browseButton.heightProperty());
// //option to show on start up.
diff --git a/src/pamViewFX/fxSettingsPanes/StorageOptionsPane.java b/src/pamViewFX/fxSettingsPanes/StorageOptionsPane.java
index e94a73c2..1be42eae 100644
--- a/src/pamViewFX/fxSettingsPanes/StorageOptionsPane.java
+++ b/src/pamViewFX/fxSettingsPanes/StorageOptionsPane.java
@@ -10,6 +10,7 @@ import binaryFileStorage.BinaryStore;
import pamViewFX.fxNodes.PamBorderPane;
import pamViewFX.fxNodes.PamGridPane;
import pamViewFX.fxNodes.pamDialogFX.PamDialogFX;
+import pamViewFX.fxStyles.PamStylesManagerFX;
import javafx.geometry.HPos;
import javafx.geometry.Pos;
import javafx.scene.Node;
@@ -56,6 +57,8 @@ public class StorageOptionsPane extends SettingsPane{
PamGridPane gridPane=new PamGridPane();
+
+
Label l = new Label(" Binary Store ");
l.setTextAlignment(TextAlignment.CENTER);
diff --git a/src/pamViewFX/fxStyles/PamAtlantaStyle.java b/src/pamViewFX/fxStyles/PamAtlantaStyle.java
new file mode 100644
index 00000000..d0c7182a
--- /dev/null
+++ b/src/pamViewFX/fxStyles/PamAtlantaStyle.java
@@ -0,0 +1,68 @@
+package pamViewFX.fxStyles;
+
+/*
+ * PAMGUARD - Passive Acoustic Monitoring GUARDianship.
+ * To assist in the Detection Classification and Localisation
+ * of marine mammals (cetaceans).
+ *
+ * Copyright (C) 2006
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * Class defining the default CSS Style sheets to use for JavaFX displays. This class can be extended and one or more methods overridden to
+ * specify new CSS styles. Style sheets can be specified for 3 different categories: sliding dialogs, regular dialogs, and all other components
+ * (incl. displays, etc). In addition, each category can have a style sheet to use for daytime mode and one to use for nighttime mode. The
+ * relative URI paths to the individual style sheets are specified as private fields, and accessed through public methods. The day/night switch
+ * is based on the name of the current PamColors colour scheme being used.
+ *
+ * @author Jamie Macaulay
+ *
+ */
+public class PamAtlantaStyle extends PamDefaultStyle {
+
+ /**
+ * Relative location of the CSS style sheet to be used for the Pamguard GUI (but not dialogs)
+ */
+ //private String guiCSS = "/Resources/css/pamCSS.css";
+ //private String guiCSS = new NordDark().getUserAgentStylesheet();
+ protected String primerGuiCSS = "/Resources/css/primer-light.css";
+
+
+ /**
+ * Relative location of the CSS style sheet to be used for the Pamguard standard dialogs
+ */
+ //private String dialogCSS = "/Resources/css/pamSettingsCSS.css";
+ //private String dialogCSS = new PrimerDark().getUserAgentStylesheet();
+ protected String primerDialogCSS = "/Resources/css/primer-dark.css";
+
+
+ /**
+ * Relative location of the CSS style sheet to be used for the Pamguard sliding dialogs
+ */
+ //private String slidingDialogCSS = "/Resources/css/pamCSS.css";
+ //private String slidingDialogCSS = new PrimerDark().getUserAgentStylesheet();
+ protected String primerSlidingDialogCSS = "/Resources/css/primer-pamguard.css";
+
+ public PamAtlantaStyle() {
+ super.guiCSS = primerGuiCSS;
+ super.dialogCSS = primerDialogCSS;
+ super.slidingDialogCSS = primerSlidingDialogCSS;
+
+ }
+
+
+}
diff --git a/src/pamViewFX/fxStyles/PamDefaultStyle.java b/src/pamViewFX/fxStyles/PamDefaultStyle.java
index e0b79367..d05fe023 100644
--- a/src/pamViewFX/fxStyles/PamDefaultStyle.java
+++ b/src/pamViewFX/fxStyles/PamDefaultStyle.java
@@ -42,35 +42,35 @@ public class PamDefaultStyle {
/**
* Relative location of the CSS style sheet to be used for the Pamguard GUI (but not dialogs)
*/
- private String guiCSS = "/Resources/css/pamCSS.css";
+ protected String guiCSS = "/Resources/css/pamCSS.css";
/**
* Relative location of the CSS style sheet to be used for the Pamguard GUI when in night mode. If there
* is not a style sheet specific to night mode, set it to null or point back to the guiCSS field.
*/
- private String guiCSSNightMode = guiCSS;
+ protected String guiCSSNightMode = guiCSS;
/**
* Relative location of the CSS style sheet to be used for the Pamguard standard dialogs
*/
- private String dialogCSS = "/Resources/css/pamDefaultDialogCSS.css";
+ protected String dialogCSS = "/Resources/css/pamDefaultDialogCSS.css";
/**
* Relative location of the CSS style sheet to be used for the Pamguard std dialogs when in night mode. If there
* is not a style sheet specific to night mode, set it to null or point back to the dialogCSS field.
*/
- private String dialogCSSNightMode = dialogCSS;
+ protected String dialogCSSNightMode = dialogCSS;
/**
* Relative location of the CSS style sheet to be used for the Pamguard sliding dialogs
*/
- private String slidingDialogCSS = "/Resources/css/pamSettingsCSS.css";
+ protected String slidingDialogCSS = "/Resources/css/pamSettingsCSS.css";
/**
* Relative location of the CSS style sheet to be used for the Pamguard sliding dialogs when in night mode. If there
* is not a style sheet specific to night mode, set it to null or point back to the slidingDialogCSS field.
*/
- private String slidingDialogCSSNightMode = slidingDialogCSS;
+ protected String slidingDialogCSSNightMode = slidingDialogCSS;
/**
* Return the CSS Style sheet to be used for the Pamguard GUI (displays and such) but not the dialogs.
diff --git a/src/rawDeepLearningClassifier/layoutFX/RawDLSettingsPane.java b/src/rawDeepLearningClassifier/layoutFX/RawDLSettingsPane.java
index 27ebed52..c867654d 100644
--- a/src/rawDeepLearningClassifier/layoutFX/RawDLSettingsPane.java
+++ b/src/rawDeepLearningClassifier/layoutFX/RawDLSettingsPane.java
@@ -50,7 +50,7 @@ import warnings.PamWarning;
public class RawDLSettingsPane extends SettingsPane{
- public static double MAX_WIDTH = 250;
+ public static double MAX_WIDTH = 270;
/**
* The source for the FFT data source.
@@ -181,7 +181,6 @@ public class RawDLSettingsPane extends SettingsPane{
vBox.getChildren().add(label);
windowLength = new PamSpinner(0, Integer.MAX_VALUE, 10, 10000);
- windowLength.setPrefWidth(100);
windowLength.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
windowLength.setEditable(true);
windowLength.valueProperty().addListener((obsVal, oldVal, newVal)->{
@@ -189,7 +188,6 @@ public class RawDLSettingsPane extends SettingsPane{
});
hopLength = new PamSpinner(0, Integer.MAX_VALUE, 10, 10000);
- hopLength.setPrefWidth(100);
hopLength.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
hopLength.setEditable(true);
hopLength.valueProperty().addListener((obsVal, oldVal, newVal)->{
@@ -197,7 +195,6 @@ public class RawDLSettingsPane extends SettingsPane{
});
reMergeSeg = new PamSpinner(0, Integer.MAX_VALUE, 1, 1);
- reMergeSeg.setPrefWidth(100);
reMergeSeg.getStyleClass().add(Spinner.STYLE_CLASS_SPLIT_ARROWS_HORIZONTAL);
reMergeSeg.setEditable(true);
diff --git a/src/rawDeepLearningClassifier/layoutFX/exampleSounds/ExampleSoundFactory.java b/src/rawDeepLearningClassifier/layoutFX/exampleSounds/ExampleSoundFactory.java
index 020339f5..b324bbc9 100644
--- a/src/rawDeepLearningClassifier/layoutFX/exampleSounds/ExampleSoundFactory.java
+++ b/src/rawDeepLearningClassifier/layoutFX/exampleSounds/ExampleSoundFactory.java
@@ -1,6 +1,12 @@
package rawDeepLearningClassifier.layoutFX.exampleSounds;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import simulatedAcquisition.sounds.SimSignal;
/**
* The example sound factory
@@ -9,6 +15,8 @@ import java.net.URL;
*/
public class ExampleSoundFactory {
+
+
/**
* An example sound type.
* @author Jamie macaulay
@@ -16,21 +24,32 @@ public class ExampleSoundFactory {
*/
public enum ExampleSoundType {
- BAT_CALL("Bat Call (Myotis daubentonii)"),
+ PORPOISE_CLICK("Harbour Porpoise (Phocoena phocoena)", ExampleSoundCategory.ODONTOCETES_CLICKS),
+
+ SPERM_WHALE("Sperm Whale (Physeter macrocephalus)", ExampleSoundCategory.ODONTOCETES_CLICKS),
+
+ DOLPHIN("Dolphin (Delphinid)", ExampleSoundCategory.ODONTOCETES_CLICKS),
+
+ BEAKED_WHALE("Beaked Whale (Ziphiidae)", ExampleSoundCategory.ODONTOCETES_CLICKS),
- RIGHT_WHALE("Southern Right Whale (Eubalaena australis)"),
+ BAT_CALL("Bat Call (Myotis daubentonii)", ExampleSoundCategory.BAT),
- MINKE_WHALE("Minke Whale (Balaenoptera spp.)"),
+ RIGHT_WHALE("Southern Right Whale (Eubalaena australis)", ExampleSoundCategory.MYSTICETES),
+
+ MINKE_WHALE("Minke Whale (Balaenoptera spp.)", ExampleSoundCategory.MYSTICETES),
- HUMPBACK_WHALE("Humpback whale (Megaptera novaeangliae) ");
+ HUMPBACK_WHALE("Humpback whale (Megaptera novaeangliae) ", ExampleSoundCategory.MYSTICETES);
private final String text;
+
+ private final ExampleSoundCategory soundCategory;
/**
* @param text
*/
- ExampleSoundType(final String text) {
+ ExampleSoundType(final String text, final ExampleSoundCategory soundCategory) {
this.text = text;
+ this.soundCategory = soundCategory;
}
/* (non-Javadoc)
@@ -40,8 +59,173 @@ public class ExampleSoundFactory {
public String toString() {
return text;
}
+
+ /**
+ * Get category of the example sound.
+ * @return the example sound category.
+ */
+ public ExampleSoundCategory getCategory() {
+ return soundCategory;
+ }
}
+ public enum ExampleSoundCategory {MYSTICETES, ODONTOCETES_CLICKS, OCONTOCETES_TONAL, BAT}
+
+ /**
+ * Get all the example sounds for a particular category.
+ * @param - the category of sund to extract.
+ * @return the example sounds for a category.
+ */
+ private List getAnExampleSoundTypes(ExampleSoundCategory category) {
+
+ List exampleSounds = Arrays.asList(ExampleSoundType.values());
+
+ List resultSet =
+ exampleSounds.stream()
+ .filter(c -> c.getCategory().equals(category))
+ .collect(Collectors.toList());
+
+ return resultSet;
+
+ }
+
+ /**
+ * Get all the example sounds for a set of categories.
+ * @param - the categories to use.
+ * @return the example sounds for a category.
+ */
+ public ArrayList getExampleSoundTypes(ExampleSoundCategory... cateogry) {
+
+
+ ArrayList resultSet = new ArrayList();
+
+ for (int i=0; inNoiseSamples && n exampleSounds = Arrays.asList(ExampleSoundType.values());
+
+ List resultSet =
+ exampleSounds.stream()
+ .filter(c -> c.getCategory().equals(category))
+ .collect(Collectors.toList());
+
+ return (ExampleSoundType[]) resultSet.toArray();
+
+ }
}
diff --git a/src/rawDeepLearningClassifier/layoutFX/exampleSounds/SimpleExampleSound.java b/src/rawDeepLearningClassifier/layoutFX/exampleSounds/SimpleExampleSound.java
index d9217b50..0325b747 100644
--- a/src/rawDeepLearningClassifier/layoutFX/exampleSounds/SimpleExampleSound.java
+++ b/src/rawDeepLearningClassifier/layoutFX/exampleSounds/SimpleExampleSound.java
@@ -39,6 +39,21 @@ public class SimpleExampleSound implements ExampleSound{
e.printStackTrace();
}
}
+
+
+ public SimpleExampleSound(URL path, int start, int end) {
+ try {
+ data = DLUtils.loadWavFile(path);
+ } catch (IOException | UnsupportedAudioFileException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ data = data.trim(start, end);
+ }
+
+ public SimpleExampleSound(double[] wave, float sampleRate) {
+ this.data = new AudioData(wave, sampleRate);
+ }
@Override
public double[] getWave() {
@@ -50,4 +65,5 @@ public class SimpleExampleSound implements ExampleSound{
return data.getSampleRate();
}
+
}
diff --git a/src/zipUnpacker/ZipUnpacker.java b/src/zipUnpacker/ZipUnpacker.java
index 2156e228..720b2116 100644
--- a/src/zipUnpacker/ZipUnpacker.java
+++ b/src/zipUnpacker/ZipUnpacker.java
@@ -16,8 +16,8 @@ import org.apache.commons.compress.archivers.ArchiveStreamFactory;
import org.apache.commons.compress.archivers.tar.TarArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
import org.apache.commons.compress.utils.IOUtils;
+import org.pamguard.x3.x3.X3JNIEncoder;
-import x3.X3JNIEncoder;
import PamController.PamControlledUnitSettings;
import PamController.PamController;
import PamController.PamSettingManager;
@@ -37,7 +37,7 @@ public class ZipUnpacker implements PamSettings {
private ZipSettings zipSettings = new ZipSettings();
- private x3.X3JNIEncoder x3Encoder;
+ private X3JNIEncoder x3Encoder;
public ZipUnpacker(PamController pamController) {
super();