initial commit

This commit is contained in:
skywt2003 2022-09-02 17:44:10 +08:00
commit f0bba2f701
302 changed files with 122981 additions and 0 deletions

26
.gitignore vendored Normal file
View File

@ -0,0 +1,26 @@
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

41
404.html Normal file
View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Not Found</title>
<script type="text/javascript">
// Single Page Apps for GitHub Pages
// https://github.com/rafgraph/spa-github-pages
// Copyright (c) 2016 Rafael Pedicini, licensed under the MIT License
// ----------------------------------------------------------------------
// This script takes the current url and converts the path and query
// string into just a query string, and then redirects the browser
// to the new url with only a query string and hash fragment,
// e.g. https://www.foo.tld/one/two?a=b&c=d#qwe, becomes
// https://www.foo.tld/?p=/one/two&q=a=b~and~c=d#qwe
// Note: this 404.html file must be at least 512 bytes for it to work
// with Internet Explorer (it is currently > 512 bytes)
// If you're creating a Project Pages site and NOT using a custom domain,
// then set segmentCount to 1 (enterprise users may need to set it to > 1).
// This way the code will only replace the route part of the path, and not
// the real directory in which the app resides, for example:
// https://username.github.io/repo-name/one/two?a=b&c=d#qwe becomes
// https://username.github.io/repo-name/?p=/one/two&q=a=b~and~c=d#qwe
// Otherwise, leave segmentCount as 0.
var segmentCount = 0;
var l = window.location;
l.replace(
l.protocol + '//' + l.hostname + (l.port ? ':' + l.port : '') +
l.pathname.split('/').slice(0, 1 + segmentCount).join('/') + '/?p=/' +
l.pathname.slice(1).split('/').slice(segmentCount).join('/').replace(/&/g, '~and~') +
(l.search ? '&q=' + l.search.slice(1).replace(/&/g, '~and~') : '') +
l.hash
);
</script>
</head>
<body>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 536 KiB

28
index.html Normal file

File diff suppressed because one or more lines are too long

70
static/css/animation.css Normal file
View File

@ -0,0 +1,70 @@
/* make keyframes that tell the start state and the end state of our object */
@-webkit-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-moz-keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.fade-in {
opacity: 0; /* make things invisible upon start */
-webkit-animation: fadein ease-in 1; /* call our keyframe named fadeIn, use animattion ease-in and repeat it only 1 time */
-moz-animation: fadein ease-in 1;
animation: fadeIn ease-in 1;
-webkit-animation-fill-mode: forwards; /* this makes sure that after animation is done we remain at the last keyframe value (opacity: 1) */
-moz-animation-fill-mode: forwards;
animation-fill-mode: forwards;
-webkit-animation-duration: 1s;
-moz-animation-duration: 1s;
animation-duration: 1s;
}
.faster-fade-in {
-webkit-animation-duration: 0.3s;
-moz-animation-duration: 0.3s;
animation-duration: 0.3s;
}
/* page transition */
.fade-enter {
opacity: 0;
}
.fade-enter.fade-enter-active {
opacity: 1;
transition: opacity 500ms ease-in;
}
.fade-exit {
opacity: 1;
}
.fade-exit.fade-exit-active {
opacity: 0;
transition: opacity 300ms ease-in;
}

349
static/css/codemirror.min.css vendored Normal file
View File

@ -0,0 +1,349 @@
/* BASICS */
.CodeMirror {
/* Set height, width, borders, and global font properties here */
font-family: monospace;
color: black;
direction: ltr;
}
/* PADDING */
.CodeMirror-lines {
padding: 4px 0; /* Vertical padding around content */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
padding: 0 4px; /* Horizontal padding of content */
}
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
background-color: white; /* The little square between H and V scrollbars */
}
/* GUTTER */
.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
padding: 0 3px 0 5px;
min-width: 20px;
text-align: right;
color: #999;
white-space: nowrap;
}
.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }
/* CURSOR */
.CodeMirror-cursor {
border-left: 1px solid black;
border-right: none;
width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror div.CodeMirror-secondarycursor {
border-left: 1px solid silver;
}
.cm-fat-cursor .CodeMirror-cursor {
width: auto;
border: 0 !important;
background: #7e7;
}
.cm-fat-cursor div.CodeMirror-cursors {
z-index: 1;
}
.cm-fat-cursor-mark {
background-color: rgba(20, 255, 20, 0.5);
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
}
.cm-animate-fat-cursor {
width: auto;
border: 0;
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
background-color: #7e7;
}
@-moz-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@-webkit-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror-overwrite .CodeMirror-cursor {}
.cm-tab { display: inline-block; text-decoration: inherit; }
.CodeMirror-rulers {
position: absolute;
left: 0; right: 0; top: -50px; bottom: 0;
overflow: hidden;
}
.CodeMirror-ruler {
border-left: 1px solid #ccc;
top: 0; bottom: 0;
position: absolute;
}
/* DEFAULT THEME */
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}
.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3, .cm-s-default .cm-type {color: #085;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}
.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}
.CodeMirror-composing { border-bottom: 2px solid; }
/* Default styles for common addons */
div.CodeMirror span.CodeMirror-matchingbracket {color: #0b0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #a22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}
/* STOP */
/* The rest of this file contains styles related to the mechanics of
the editor. You probably shouldn't touch them. */
.CodeMirror {
position: relative;
overflow: hidden;
background: white;
}
.CodeMirror-scroll {
overflow: scroll !important; /* Things will break if this is overridden */
/* 50px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror */
margin-bottom: -50px; margin-right: -50px;
padding-bottom: 50px;
height: 100%;
outline: none; /* Prevent dragging from highlighting the element */
position: relative;
}
.CodeMirror-sizer {
position: relative;
border-right: 50px solid transparent;
}
/* The fake, visible scrollbars. Used to force redraw during scrolling
before actual scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
position: absolute;
z-index: 6;
display: none;
outline: none;
}
.CodeMirror-vscrollbar {
right: 0; top: 0;
overflow-x: hidden;
overflow-y: scroll;
}
.CodeMirror-hscrollbar {
bottom: 0; left: 0;
overflow-y: hidden;
overflow-x: scroll;
}
.CodeMirror-scrollbar-filler {
right: 0; bottom: 0;
}
.CodeMirror-gutter-filler {
left: 0; bottom: 0;
}
.CodeMirror-gutters {
position: absolute; left: 0; top: 0;
min-height: 100%;
z-index: 3;
}
.CodeMirror-gutter {
white-space: normal;
height: 100%;
display: inline-block;
vertical-align: top;
margin-bottom: -50px;
}
.CodeMirror-gutter-wrapper {
position: absolute;
z-index: 4;
background: none !important;
border: none !important;
}
.CodeMirror-gutter-background {
position: absolute;
top: 0; bottom: 0;
z-index: 4;
}
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4;
}
.CodeMirror-gutter-wrapper ::selection { background-color: transparent }
.CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
.CodeMirror-lines {
cursor: text;
min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre.CodeMirror-line,
.CodeMirror pre.CodeMirror-line-like {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
font-size: inherit;
margin: 0;
white-space: pre;
word-wrap: normal;
line-height: inherit;
color: inherit;
z-index: 2;
position: relative;
overflow: visible;
-webkit-tap-highlight-color: transparent;
-webkit-font-variant-ligatures: contextual;
font-variant-ligatures: contextual;
}
.CodeMirror-wrap pre.CodeMirror-line,
.CodeMirror-wrap pre.CodeMirror-line-like {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-linebackground {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
z-index: 0;
}
.CodeMirror-linewidget {
position: relative;
z-index: 2;
padding: 0.1px; /* Force widget margins to stay inside of the container */
}
.CodeMirror-widget {}
.CodeMirror-rtl pre { direction: rtl; }
.CodeMirror-code {
outline: none;
}
/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.CodeMirror-measure {
position: absolute;
width: 100%;
height: 0;
overflow: hidden;
visibility: hidden;
}
.CodeMirror-cursor {
position: absolute;
pointer-events: none;
}
.CodeMirror-measure pre { position: static; }
div.CodeMirror-cursors {
visibility: hidden;
position: relative;
z-index: 3;
}
div.CodeMirror-dragcursors {
visibility: visible;
}
.CodeMirror-focused div.CodeMirror-cursors {
visibility: visible;
}
.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
.cm-searching {
background-color: #ffa;
background-color: rgba(255, 255, 0, .4);
}
/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }
@media print {
/* Hide the cursor when printing */
.CodeMirror div.CodeMirror-cursors {
visibility: hidden;
}
}
/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }
/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }

View File

@ -0,0 +1,160 @@
/*
Solarized theme for code-mirror
http://ethanschoonover.com/solarized
*/
/*
Solarized color palette
http://ethanschoonover.com/solarized/img/solarized-palette.png
*/
.solarized.base03 { color: #002b36; }
.solarized.base02 { color: #073642; }
.solarized.base01 { color: #586e75; }
.solarized.base00 { color: #657b83; }
.solarized.base0 { color: #839496; }
.solarized.base1 { color: #93a1a1; }
.solarized.base2 { color: #eee8d5; }
.solarized.base3 { color: #fdf6e3; }
.solarized.solar-yellow { color: #b58900; }
.solarized.solar-orange { color: #cb4b16; }
.solarized.solar-red { color: #dc322f; }
.solarized.solar-magenta { color: #d33682; }
.solarized.solar-violet { color: #6c71c4; }
.solarized.solar-blue { color: #268bd2; }
.solarized.solar-cyan { color: #2aa198; }
.solarized.solar-green { color: #859900; }
/* Color scheme for code-mirror */
.cm-s-solarized {
line-height: 1.45em;
color-profile: sRGB;
rendering-intent: auto;
}
.cm-s-solarized.cm-s-dark {
color: #839496;
background-color: #002b36;
text-shadow: #002b36 0 1px;
}
.cm-s-solarized.cm-s-light {
background-color: #fdf6e3;
color: #657b83;
text-shadow: #eee8d5 0 1px;
}
.cm-s-solarized .CodeMirror-widget {
text-shadow: none;
}
.cm-s-solarized .cm-header { color: #586e75; }
.cm-s-solarized .cm-quote { color: #93a1a1; }
.cm-s-solarized .cm-keyword { color: #cb4b16; }
.cm-s-solarized .cm-atom { color: #d33682; }
.cm-s-solarized .cm-number { color: #d33682; }
.cm-s-solarized .cm-def { color: #2aa198; }
.cm-s-solarized .cm-variable { color: #839496; }
.cm-s-solarized .cm-variable-2 { color: #b58900; }
.cm-s-solarized .cm-variable-3, .cm-s-solarized .cm-type { color: #6c71c4; }
.cm-s-solarized .cm-property { color: #2aa198; }
.cm-s-solarized .cm-operator { color: #6c71c4; }
.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
.cm-s-solarized .cm-string { color: #859900; }
.cm-s-solarized .cm-string-2 { color: #b58900; }
.cm-s-solarized .cm-meta { color: #859900; }
.cm-s-solarized .cm-qualifier { color: #b58900; }
.cm-s-solarized .cm-builtin { color: #d33682; }
.cm-s-solarized .cm-bracket { color: #cb4b16; }
.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
.cm-s-solarized .cm-tag { color: #93a1a1; }
.cm-s-solarized .cm-attribute { color: #2aa198; }
.cm-s-solarized .cm-hr {
color: transparent;
border-top: 1px solid #586e75;
display: block;
}
.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
.cm-s-solarized .cm-special { color: #6c71c4; }
.cm-s-solarized .cm-em {
color: #999;
text-decoration: underline;
text-decoration-style: dotted;
}
.cm-s-solarized .cm-error,
.cm-s-solarized .cm-invalidchar {
color: #586e75;
border-bottom: 1px dotted #dc322f;
}
.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-light .CodeMirror-line > span::-moz-selection, .cm-s-light .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
/* Editor styling */
/* Remove gutter border */
.cm-s-solarized .CodeMirror-gutters {
border-right: 0;
}
/* Gutter colors and line number styling based of color scheme (dark / light) */
/* Dark */
.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
background-color: #073642;
}
.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
color: #586e75;
text-shadow: #021014 0 -1px;
}
/* Light */
.cm-s-solarized.cm-s-light .CodeMirror-gutters {
background-color: #eee8d5;
}
.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
color: #839496;
}
/* Common */
.cm-s-solarized .CodeMirror-linenumber {
padding: 0 5px;
}
.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
color: #586e75;
}
/* Cursor */
.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
/* Fat cursor */
.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }
/* Active line */
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
background: rgba(255, 255, 255, 0.06);
}
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
background: rgba(0, 0, 0, 0.06);
}

1219
static/css/common.css Normal file

File diff suppressed because it is too large Load Diff

230
static/css/datepicker.css Normal file
View File

@ -0,0 +1,230 @@
/*----------------------------------------------------------------------------------------
Stylesheet for re-com.date Date Picker variants inline-picker & dropdown-picker
Day8 variation loosely based on:
Copyright 2013 Dan Grossman ( http://www.dangrossman.info )
Licensed under the Apache License v2.0
http://www.apache.org/licenses/LICENSE-2.0
Built for http://www.improvely.com
http://eternicode.github.io/bootstrap-datepicker
START OF DATE PICKER SECTION...
----------------------------------------------------------------------------------------*/
.noselect {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.datepicker.single .calendar {
float: none;
}
.datepicker .calendar {
display: none;
max-width: 200px;
}
.datepicker .calendar.single .calendar-date {
border: none;
}
.datepicker .calendar th, .datepicker .calendar td {
white-space: nowrap;
text-align: center;
min-width: 32px;
}
.datepicker .calendar-date {
border: 1px solid #ddd;
padding: 4px;
border-radius: 4px;
/* background: #fff; */
}
.datepicker .calendar-time {
text-align: center;
margin: 8px auto 0 auto;
line-height: 30px;
}
.datepicker {
position: absolute;
top: 100px;
left: 20px;
padding: 10px;
margin-top: 1px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
line-height: 16px;
border-radius: 4px;
background: #efefef;
}
.datepicker table {
width: 100%;
margin: 0;
border-collapse: separate;
border-spacing: 0;
background: transparent;
border: none;
}
.datepicker td, .datepicker th {
text-align: center;
width: 27px;
height: 26px;
max-width: 27px;
max-height: 26px;
min-width: 27px;
min-height: 26px;
padding: 4px;
cursor: default;
white-space: nowrap;
font-weight: normal;
}
.datepicker td.off {
padding: 4px;
color: #999;
}
.datepicker td.disabled {
color: #999;
}
.datepicker th.disabled {
color: #999;
}
.datepicker td.available:hover, .datepicker th.available:hover {
background: #357ebd;
cursor: pointer;
color: #FFF;
border-radius: 4px;
}
.datepicker td.in-range {
background: #ebf4f8;
-webkit-border-radius: 0;
-moz-border-radius: 0;
border-radius: 0;
}
.datepicker td.start-date {
-webkit-border-radius: 4px 0 0 4px;
-moz-border-radius: 4px 0 0 4px;
border-radius: 4px 0 0 4px;
}
.datepicker td.end-date {
-webkit-border-radius: 0 4px 4px 0;
-moz-border-radius: 0 4px 4px 0;
border-radius: 0 4px 4px 0;
}
.datepicker td.start-date.end-date {
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
.datepicker td.active, .datepicker td.active:hover {
background-color: #357ebd;
border-color: #3071a9;
color: #fff;
}
/* Introduced by Day8 from http://eternicode.github.io/bootstrap-datepicker */
.datepicker td.today, .datepicker td.today:hover {
background-color: #ffcd70;
border-color: #f59e00;
border-radius: 18px;
color: #fff;
}
.datepicker th.day-enabled, label.day-enabled {
font-weight: normal;
font-size: 10px;
color: #333;
}
.datepicker th.selectable {
font-weight: normal;
color: #357ebd;
}
.datepicker th.day-disabled {
font-weight: normal;
font-size: 10px;
color: #999;
}
.datepicker td.week, .datepicker th.week {
font-size: 80%;
color: #ccc;
}
.datepicker th.month {
width: auto;
font-size: 14px;
color: var(--ls-title-text-color);
}
.dropdown-button {
cursor: pointer;
height: 32px;
font-size: 13px;
font-weight: normal;
}
.dropdown-button.activator {
width: 40px;
color: #777;
/* background-color: #F7F7F7 */
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
padding: 5px;
}
.dark-theme .datepicker {
background: var(--ls-secondary-background-color);
}
.dark-theme .datepicker th.day-disabled, .dark-theme .datepicker th.disabled, .dark-theme .datepicker td.disabled, .dark-theme .datepicker td.off {
color: #666;
}
.dark-theme .datepicker th.day-enabled, .dark-theme label.day-enabled {
color: currentColor;
}
.dark-theme .datepicker td.active, .dark-theme .datepicker td.active:hover {
background-color: var(--ls-block-properties-background-color);
border-color: var(--ls-block-properties-background-color);
}
.dark-theme .datepicker th.selectable {
color: var(--ls-primary-text-color);
}
.dark-theme .datepicker td.available:hover, .dark-theme .datepicker th.available:hover {
background: var(--ls-block-properties-background-color);
}
.datepicker tr:nth-child(odd), .datepicker tr:nth-child(even), .dark-theme .datepicker tr:nth-child(odd), .dark-theme .datepicker tr:nth-child(even) {
background: transparent;
}
.datepicker th, .datepicker tr, .datepicker td, .dark-theme .datepicker th, .dark-theme .datepicker tr, .dark-theme .datepicker td {
border-bottom: none;
}
/*----------------------------------------------------------------------------------------
END OF DATE PICKER SECTION...
----------------------------------------------------------------------------------------*/

2
static/css/excalidraw.min.css vendored Normal file

File diff suppressed because one or more lines are too long

0
static/css/export.css Normal file
View File

13
static/css/fonts.css Normal file
View File

@ -0,0 +1,13 @@
/* http://www.eaglefonts.com/fg-virgil-ttf-131249.htm */
@font-face {
font-family: "Virgil";
src: url("../fonts/Virgil.woff2");
font-display: swap;
}
/* https://github.com/microsoft/cascadia-code */
@font-face {
font-family: "Cascadia";
src: url("../fonts/Cascadia.woff2");
font-display: swap;
}

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

92
static/css/highlight.css Normal file
View File

@ -0,0 +1,92 @@
/**
* Obsidian style
* ported by Alexander Marenin (http://github.com/ioncreature)
*/
.hljs {
display: block;
overflow-x: auto;
padding: 0.5em;
background: #282b2e;
}
.dark-theme .hljs {
background: transparent;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-selector-id {
color: #93c763;
}
.hljs-number {
color: #ffcd22;
}
.hljs {
color: #e0e2e4;
}
.hljs-attribute {
color: #668bb0;
}
.hljs-code,
.hljs-class .hljs-title,
.hljs-section {
color: white;
}
.hljs-regexp,
.hljs-link {
color: #d39745;
}
.hljs-meta {
color: #557182;
}
.hljs-tag,
.hljs-name,
.hljs-bullet,
.hljs-subst,
.hljs-emphasis,
.hljs-type,
.hljs-built_in,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-addition,
.hljs-variable,
.hljs-template-tag,
.hljs-template-variable {
color: #8cbbad;
}
.hljs-string,
.hljs-symbol {
color: #ec7600;
}
.hljs-comment,
.hljs-quote,
.hljs-deletion {
color: #818e96;
}
.hljs-selector-class {
color: #A082BD
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-literal,
.hljs-doctag,
.hljs-title,
.hljs-section,
.hljs-type,
.hljs-name,
.hljs-strong {
font-weight: bold;
}

200
static/css/inter.css Normal file
View File

@ -0,0 +1,200 @@
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 100;
font-display: swap;
src: url("../fonts/inter/Inter-Thin.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Thin.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 100;
font-display: swap;
src: url("../fonts/inter/Inter-ThinItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-ThinItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 200;
font-display: swap;
src: url("../fonts/inter/Inter-ExtraLight.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-ExtraLight.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 200;
font-display: swap;
src: url("../fonts/inter/Inter-ExtraLightItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-ExtraLightItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url("../fonts/inter/Inter-Light.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Light.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 300;
font-display: swap;
src: url("../fonts/inter/Inter-LightItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-LightItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url("../fonts/inter/Inter-Regular.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Regular.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 400;
font-display: swap;
src: url("../fonts/inter/Inter-Italic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Italic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url("../fonts/inter/Inter-Medium.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Medium.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 500;
font-display: swap;
src: url("../fonts/inter/Inter-MediumItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-MediumItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url("../fonts/inter/Inter-SemiBold.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-SemiBold.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 600;
font-display: swap;
src: url("../fonts/inter/Inter-SemiBoldItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-SemiBoldItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url("../fonts/inter/Inter-Bold.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Bold.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 700;
font-display: swap;
src: url("../fonts/inter/Inter-BoldItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-BoldItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url("../fonts/inter/Inter-ExtraBold.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-ExtraBold.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 800;
font-display: swap;
src: url("../fonts/inter/Inter-ExtraBoldItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-ExtraBoldItalic.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 900;
font-display: swap;
src: url("../fonts/inter/Inter-Black.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-Black.woff?v=3.15") format("woff");
}
@font-face {
font-family: 'Inter';
font-style: italic;
font-weight: 900;
font-display: swap;
src: url("../fonts/inter/Inter-BlackItalic.woff2?v=3.15") format("woff2"),
url("../fonts/inter/Inter-BlackItalic.woff?v=3.15") format("woff");
}
/* -------------------------------------------------------
Variable font.
Usage:
html { font-family: 'Inter', sans-serif; }
@supports (font-variation-settings: normal) {
html { font-family: 'Inter var', sans-serif; }
}
*/
@font-face {
font-family: 'Inter var';
font-weight: 100 900;
font-display: swap;
font-style: normal;
font-named-instance: 'Regular';
src: url("../fonts/inter/Inter-roman.var.woff2?v=3.15") format("woff2");
}
@font-face {
font-family: 'Inter var';
font-weight: 100 900;
font-display: swap;
font-style: italic;
font-named-instance: 'Italic';
src: url("../fonts/inter/Inter-italic.var.woff2?v=3.15") format("woff2");
}
/* --------------------------------------------------------------------------
[EXPERIMENTAL] Multi-axis, single variable font.
Slant axis is not yet widely supported (as of February 2019) and thus this
multi-axis single variable font is opt-in rather than the default.
When using this, you will probably need to set font-variation-settings
explicitly, e.g.
* { font-variation-settings: "slnt" 0deg }
.italic { font-variation-settings: "slnt" 10deg }
*/
@font-face {
font-family: 'Inter var experimental';
font-weight: 100 900;
font-display: swap;
font-style: oblique 0deg 10deg;
src: url("../fonts/inter/Inter.var.woff2?v=3.15") format("woff2");
}

1
static/css/katex.min.css vendored Normal file

File diff suppressed because one or more lines are too long

441
static/css/photoswipe.css Normal file
View File

@ -0,0 +1,441 @@
/*! PhotoSwipe main CSS by Dmytro Semenov | photoswipe.com */
.pswp {
--pswp-bg: #000;
--pswp-placeholder-bg: #222;
--pswp-error-text-color: #f7f7f7;
--pswp-root-z-index: 100000;
--pswp-preloader-color: rgba(79, 79, 79, 0.4);
--pswp-preloader-color-secondary: rgba(255, 255, 255, 0.9);
/* defined via js:
--pswp-transition-duration: 333ms; */
--pswp-icon-color: #fff;
--pswp-icon-color-secondary: #4f4f4f;
--pswp-icon-stroke-color: #4f4f4f;
--pswp-icon-stroke-width: 2px;
}
/*
Styles for basic PhotoSwipe (pswp) functionality (sliding area, open/close transitions)
*/
.pswp {
position: fixed;
z-index: var(--pswp-root-z-index);
display: none;
touch-action: none;
outline: 0;
opacity: 0.003;
contain: layout style size;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* Prevents focus outline on the root element,
(it may be focused initially) */
.pswp:focus {
outline: 0;
}
.pswp * {
box-sizing: border-box;
}
.pswp img {
max-width: none;
}
.pswp--open {
display: block;
}
.pswp,
.pswp__bg {
transform: translateZ(0);
will-change: opacity;
}
.pswp__bg {
opacity: 0.005;
background: var(--pswp-bg);
}
.pswp,
.pswp__scroll-wrap {
overflow: hidden;
}
.pswp,
.pswp__scroll-wrap,
.pswp__bg,
.pswp__container,
.pswp__item,
.pswp__img,
.pswp__zoom-wrap {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.pswp {
position: fixed;
}
.pswp__img,
.pswp__zoom-wrap {
width: auto;
height: auto;
}
.pswp--click-to-zoom.pswp--zoom-allowed .pswp__img {
cursor: -webkit-zoom-in;
cursor: -moz-zoom-in;
cursor: zoom-in;
}
.pswp--click-to-zoom.pswp--zoomed-in .pswp__img {
cursor: move;
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.pswp--click-to-zoom.pswp--zoomed-in .pswp__img:active {
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
/* :active to override grabbing cursor */
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img,
.pswp--no-mouse-drag.pswp--zoomed-in .pswp__img:active,
.pswp__img {
cursor: -webkit-zoom-out;
cursor: -moz-zoom-out;
cursor: zoom-out;
}
/* Prevent selection and tap highlights */
.pswp__container,
.pswp__img,
.pswp__button {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.pswp__item {
/* z-index for fade transition */
z-index: 1;
overflow: hidden;
}
.pswp__hidden {
display: none !important;
}
/*
PhotoSwipe UI
*/
/*
Error message appears when image is not loaded
(JS option errorMsg controls markup)
*/
.pswp__error-msg {
position: absolute;
top: 50%;
left: 0;
width: 100%;
padding: 0 10px;
margin-top: -0.5em;
font-size: 1em;
line-height: 1;
color: var(--pswp-error-text-color);
text-align: center;
}
.pswp__error-msg a {
color: var(--pswp-error-text-color);
text-decoration: underline;
}
/*
class pswp__hide-on-close is applied to elements that
should hide (for example fade out) when PhotoSwipe is closed
and show (for example fade in) when PhotoSwipe is opened
*/
.pswp .pswp__hide-on-close {
opacity: 0.005;
will-change: opacity;
transition: opacity var(--pswp-transition-duration) cubic-bezier(0.4, 0, 0.22, 1);
z-index: 10; /* always overlap slide content */
pointer-events: none; /* hidden elements should not be clickable */
}
/* class pswp--ui-visible is added when opening or closing transition starts */
.pswp--ui-visible .pswp__hide-on-close {
opacity: 1;
pointer-events: auto;
}
/* <button> styles, including css reset */
.pswp__button {
position: relative;
display: block;
width: 50px;
height: 60px;
padding: 0;
margin: 0;
overflow: hidden;
cursor: pointer;
background: none;
border: 0;
box-shadow: none;
opacity: 0.85;
-webkit-appearance: none;
-webkit-touch-callout: none;
}
.pswp__button:hover,
.pswp__button:active,
.pswp__button:focus {
transition: none;
padding: 0;
background: none;
border: 0;
box-shadow: none;
opacity: 1;
}
.pswp__icn {
position: absolute;
top: 14px;
left: 9px;
width: 32px;
height: 32px;
overflow: hidden;
pointer-events: none;
fill: var(--pswp-icon-color);
color: var(--pswp-icon-color-secondary);
border-radius: 50%;
}
.pswp__icn-shadow {
stroke: var(--pswp-icon-stroke-color);
stroke-width: var(--pswp-icon-stroke-width);
fill: none;
}
.pswp__icn:focus {
outline: 0;
}
/*
div element that matches size of large image,
large image loads on top of it,
used when msrc is not provided
*/
div.pswp__img--placeholder,
.pswp__img--with-bg {
background: var(--pswp-placeholder-bg);
}
.pswp__top-bar {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 60px;
display: flex;
flex-direction: row;
justify-content: flex-end;
z-index: 10;
/* allow events to pass through top bar itself */
pointer-events: none !important;
}
.pswp__top-bar > * {
pointer-events: auto;
/* this makes transition significantly more smooth,
even though inner elements are not animated */
will-change: opacity;
}
/*
Close button
*/
.pswp__button--close {
margin-right: 6px;
}
/*
Arrow buttons
*/
.pswp__button--arrow {
position: absolute;
top: 0;
width: 75px;
height: 100px;
top: 50%;
margin-top: -50px;
}
.pswp__button--arrow:disabled {
display: none;
cursor: default;
}
.pswp__button--arrow .pswp__icn {
top: 50%;
margin-top: -30px;
width: 60px;
height: 60px;
background: none;
border-radius: 0;
}
/* Display arrows only when user hovers over them */
/* .pswp--ui-visible {
.pswp__button--arrow, {
opacity: 0.75;
&:hover,
&:focus {
opacity: 1;
outline: none;
}
}
} */
.pswp--one-slide .pswp__button--arrow {
display: none;
}
/* hide arrows on touch screens */
.pswp--touch .pswp__button--arrow {
visibility: hidden;
}
/* show arrows only after mouse was used */
.pswp--has_mouse .pswp__button--arrow {
visibility: visible;
}
.pswp__button--arrow--prev {
right: auto;
left: 0px;
}
.pswp__button--arrow--next {
right: 0px;
}
.pswp__button--arrow--next .pswp__icn {
left: auto;
right: 14px;
/* flip horizontally */
transform: scale(-1, 1);
}
/*
Zoom button
*/
.pswp__button--zoom {
display: none;
}
.pswp--zoom-allowed .pswp__button--zoom {
display: block;
}
/* "+" => "-" */
.pswp--zoomed-in .pswp__zoom-icn-bar-v {
display: none;
}
/*
Loading indicator
*/
.pswp__preloader {
position: absolute;
display: none;
width: 24px;
height: 24px;
pointer-events: none;
border: 3px solid var(--pswp-preloader-color);
border-left-color: var(--pswp-preloader-color-secondary);
border-radius: 50%;
/* left:50% / top:50% styles are defined via JS,
as size of PhotoSwipe viewport might change visually
(because of UI elements like sidebar),
use !important if you want to override them */
}
.pswp__preloader--active {
display: block;
animation: pswp-fadein 333ms linear, pswp-clockwise 600ms linear infinite;
}
.pswp__preloader--hiding {
animation: pswp-clockwise 600ms linear infinite;
/* use of !important to override hide-on-close styles */
opacity: 0 !important;
}
@keyframes pswp-clockwise {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
@keyframes pswp-fadein {
0% { opacity: 0; }
100% { opacity: 1; }
}
/*
"1 of 10" counter
*/
.pswp__counter {
height: 30px;
margin: 18px 0 0 20px;
font-size: 14px;
line-height: 30px;
color: var(--pswp-icon-color);
opacity: 0.85;
margin-right: auto; /* align left */
}
.pswp--one-slide .pswp__counter {
display: none;
}

7
static/css/reveal.min.css vendored Normal file

File diff suppressed because one or more lines are too long

1
static/css/reveal_black.min.css vendored Normal file

File diff suppressed because one or more lines are too long

9
static/css/shepherd.css Normal file
View File

@ -0,0 +1,9 @@
.shepherd-button{background:#3288e6;border:0;border-radius:3px;color:hsla(0,0%,100%,.75);cursor:pointer;margin-right:.5rem;padding:.5rem 1.5rem;transition:all .5s ease}.shepherd-button:not(:disabled):hover{background:#196fcc;color:hsla(0,0%,100%,.75)}.shepherd-button.shepherd-button-secondary{background:#f1f2f3;color:rgba(0,0,0,.75)}.shepherd-button.shepherd-button-secondary:not(:disabled):hover{background:#d6d9db;color:rgba(0,0,0,.75)}.shepherd-button:disabled{cursor:not-allowed}
.shepherd-footer{border-bottom-left-radius:5px;border-bottom-right-radius:5px;display:flex;justify-content:flex-end;padding:0 .75rem .75rem}.shepherd-footer .shepherd-button:last-child{margin-right:0}
.shepherd-cancel-icon{background:transparent;border:none;color:hsla(0,0%,50%,.75);cursor:pointer;font-size:2em;font-weight:400;margin:0;padding:0;transition:color .5s ease}.shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon{color:hsla(0,0%,50%,.75)}.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover{color:rgba(0,0,0,.75)}
.shepherd-title{color:rgba(0,0,0,.75);display:flex;flex:1 0 auto;font-size:1rem;font-weight:400;margin:0;padding:0}
.shepherd-header{align-items:center;border-top-left-radius:5px;border-top-right-radius:5px;display:flex;justify-content:flex-end;line-height:2em;padding:.75rem .75rem 0}.shepherd-has-title .shepherd-content .shepherd-header{background:#e6e6e6;padding:1em}
.shepherd-text{color:rgba(0,0,0,.75);font-size:1rem;line-height:1.3em;padding:.75em}.shepherd-text p{margin-top:0}.shepherd-text p:last-child{margin-bottom:0}
.shepherd-content{border-radius:5px;outline:none;padding:0}
.shepherd-element{background:#fff;border-radius:5px;box-shadow:0 1px 4px rgba(0,0,0,.2);max-width:400px;opacity:0;outline:none;transition:opacity .3s,visibility .3s;visibility:hidden;width:100%;z-index:9999}.shepherd-enabled.shepherd-element{opacity:1;visibility:visible}.shepherd-element[data-popper-reference-hidden]:not(.shepherd-centered){opacity:0;pointer-events:none;visibility:hidden}.shepherd-element,.shepherd-element *,.shepherd-element :after,.shepherd-element :before{box-sizing:border-box}.shepherd-arrow,.shepherd-arrow:before{height:16px;position:absolute;width:16px;z-index:-1}.shepherd-arrow:before{background:#fff;content:"";transform:rotate(45deg)}.shepherd-element[data-popper-placement^=top]>.shepherd-arrow{bottom:-8px}.shepherd-element[data-popper-placement^=bottom]>.shepherd-arrow{top:-8px}.shepherd-element[data-popper-placement^=left]>.shepherd-arrow{right:-8px}.shepherd-element[data-popper-placement^=right]>.shepherd-arrow{left:-8px}.shepherd-element.shepherd-centered>.shepherd-arrow{opacity:0}.shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before{background-color:#e6e6e6}.shepherd-target-click-disabled.shepherd-enabled.shepherd-target,.shepherd-target-click-disabled.shepherd-enabled.shepherd-target *{pointer-events:none}
.shepherd-modal-overlay-container{height:0;left:0;opacity:0;overflow:hidden;pointer-events:none;position:fixed;top:0;transition:all .3s ease-out,height 0ms .3s,opacity .3s 0ms;width:100vw;z-index:9997}.shepherd-modal-overlay-container.shepherd-modal-is-visible{height:100vh;opacity:.5;transition:all .3s ease-out,height 0s 0s,opacity .3s 0s}.shepherd-modal-overlay-container.shepherd-modal-is-visible path{pointer-events:all}

26
static/css/srs_cards.css Normal file
View File

@ -0,0 +1,26 @@
/******************************************************************************/
/** Review widget *************************************************************/
/******************************************************************************/
.cards-review {
padding: 12px;
}
.cards-title {
border-radius: 4px;
background: var(--color-level-1);
padding: 4px 6px;
}
.cp__right-sidebar .cards-title, .ui__modal .cards-title {
background: var(--color-level-2);
}
/******************************************************************************/
/** Card blocks ***************************************************************/
/******************************************************************************/
div[data-refs-self*='"card"'] {
margin-bottom: 8px;
padding-top: 12px;
padding-bottom: 12px;
border-radius: 4px;
}

12
static/css/style.css Normal file

File diff suppressed because one or more lines are too long

47
static/css/table.css Normal file
View File

@ -0,0 +1,47 @@
div.table-wrapper {
overflow: auto;
}
table {
width: 100%;
border-collapse: collapse;
text-align: left;
margin: 1rem 0;
}
th {
font-size: 14px;
font-weight: 400;
color: var(--ls-primary-text-color);
border-bottom: 2px solid var(--ls-border-color);
padding: 10px 8px;
}
td {
padding: 6px 8px;
text-align: left;
}
tr:nth-child(even) {background: var(--ls-table-tr-even-background-color);}
tr:nth-child(odd) {background: var(--ls-primary-background-color);}
caption.t-above {caption-side:top}
caption.t-bottom {caption-side:bottom}
caption {margin-bottom:.3em}
figcaption{margin-top:.3em}
.org-right{text-align:right}
.org-left{text-align:left}
.org-center{text-align:center}
.dark-theme th {
color: var(--ls-primary-text-color);
}
.dark-theme tr:nth-child(even) {background: var(--ls-table-tr-even-background-color);}
.dark-theme tr:nth-child(odd) {background: var(--ls-primary-background-color);}
.dark-theme td, .dark-theme tr {
border-bottom: none;
}
.dark-theme th {
border-bottom: 2px solid var(--ls-border-color);
}

4
static/css/tabler-icons.min.css vendored Normal file

File diff suppressed because one or more lines are too long

667
static/css/tooltip.css Normal file
View File

@ -0,0 +1,667 @@
.tippy-touch {
cursor: pointer !important
}
.tippy-notransition {
transition: none !important
}
.tippy-popper {
max-width: 800px;
-webkit-perspective: 800px;
perspective: 800px;
z-index: 9999;
outline: 0;
transition-timing-function: cubic-bezier(.165, .84, .44, 1);
pointer-events: none
}
.tippy-popper.html-template {
max-width: 96%;
max-width: calc(100% - 20px)
}
.tippy-popper[x-placement^=top] [x-arrow] {
border-top: 7px solid var(--ls-quaternary-background-color);
border-right: 7px solid transparent;
border-left: 7px solid transparent;
bottom: -7px;
margin: 0 9px
}
.tippy-popper[x-placement^=top] [x-arrow].arrow-small {
border-top: 5px solid var(--ls-quaternary-background-color);
border-right: 5px solid transparent;
border-left: 5px solid transparent;
bottom: -5px
}
.tippy-popper[x-placement^=top] [x-arrow].arrow-big {
border-top: 10px solid var(--ls-quaternary-background-color);
border-right: 10px solid transparent;
border-left: 10px solid transparent;
bottom: -10px
}
.tippy-popper[x-placement^=top] [x-circle] {
-webkit-transform-origin: 0 33%;
transform-origin: 0 33%
}
.tippy-popper[x-placement^=top] [x-circle].enter {
-webkit-transform: scale(1) translate(-50%, -55%);
transform: scale(1) translate(-50%, -55%);
opacity: 1
}
.tippy-popper[x-placement^=top] [x-circle].leave {
-webkit-transform: scale(.15) translate(-50%, -50%);
transform: scale(.15) translate(-50%, -50%);
opacity: 0
}
.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-circle] {
background-color: #fff
}
.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow] {
border-top: 7px solid #fff;
border-right: 7px solid transparent;
border-left: 7px solid transparent
}
.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-small {
border-top: 5px solid #fff;
border-right: 5px solid transparent;
border-left: 5px solid transparent
}
.tippy-popper[x-placement^=top] .tippy-tooltip.light-theme [x-arrow].arrow-big {
border-top: 10px solid #fff;
border-right: 10px solid transparent;
border-left: 10px solid transparent
}
.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-circle] {
background-color: var(--ls-secondary-background-color)
}
.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow] {
border-top: 7px solid var(--ls-secondary-background-color);
border-right: 7px solid transparent;
border-left: 7px solid transparent
}
.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-small {
border-top: 5px solid var(--ls-secondary-background-color);
border-right: 5px solid transparent;
border-left: 5px solid transparent
}
.tippy-popper[x-placement^=top] .tippy-tooltip.transparent-theme [x-arrow].arrow-big {
border-top: 10px solid var(--ls-secondary-background-color);
border-right: 10px solid transparent;
border-left: 10px solid transparent
}
.tippy-popper[x-placement^=top] [data-animation=perspective] {
-webkit-transform-origin: bottom;
transform-origin: bottom
}
.tippy-popper[x-placement^=top] [data-animation=perspective].enter {
opacity: 1;
-webkit-transform: translateY(-10px) rotateX(0);
transform: translateY(-10px) rotateX(0)
}
.tippy-popper[x-placement^=top] [data-animation=perspective].leave {
opacity: 0;
-webkit-transform: translateY(0) rotateX(90deg);
transform: translateY(0) rotateX(90deg)
}
.tippy-popper[x-placement^=top] [data-animation=fade].enter {
opacity: 1;
-webkit-transform: translateY(-10px);
transform: translateY(-10px)
}
.tippy-popper[x-placement^=top] [data-animation=fade].leave {
opacity: 0;
-webkit-transform: translateY(-10px);
transform: translateY(-10px)
}
.tippy-popper[x-placement^=top] [data-animation=shift].enter {
opacity: 1;
-webkit-transform: translateY(-10px);
transform: translateY(-10px)
}
.tippy-popper[x-placement^=top] [data-animation=shift].leave {
opacity: 0;
-webkit-transform: translateY(0);
transform: translateY(0)
}
.tippy-popper[x-placement^=top] [data-animation=scale].enter {
opacity: 1;
-webkit-transform: translateY(-10px) scale(1);
transform: translateY(-10px) scale(1)
}
.tippy-popper[x-placement^=top] [data-animation=scale].leave {
opacity: 0;
-webkit-transform: translateY(0) scale(0);
transform: translateY(0) scale(0)
}
.tippy-popper[x-placement^=bottom] [x-arrow] {
border-bottom: 7px solid var(--ls-quaternary-background-color);
border-right: 7px solid transparent;
border-left: 7px solid transparent;
top: -7px;
margin: 0 9px
}
.tippy-popper[x-placement^=bottom] [x-arrow].arrow-small {
border-bottom: 5px solid var(--ls-quaternary-background-color);
border-right: 5px solid transparent;
border-left: 5px solid transparent;
top: -5px
}
.tippy-popper[x-placement^=bottom] [x-arrow].arrow-big {
border-bottom: 10px solid var(--ls-quaternary-background-color);
border-right: 10px solid transparent;
border-left: 10px solid transparent;
top: -10px
}
.tippy-popper[x-placement^=bottom] [x-circle] {
-webkit-transform-origin: 0 -50%;
transform-origin: 0 -50%
}
.tippy-popper[x-placement^=bottom] [x-circle].enter {
-webkit-transform: scale(1) translate(-50%, -45%);
transform: scale(1) translate(-50%, -45%);
opacity: 1
}
.tippy-popper[x-placement^=bottom] [x-circle].leave {
-webkit-transform: scale(.15) translate(-50%, -5%);
transform: scale(.15) translate(-50%, -5%);
opacity: 0
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-circle] {
background-color: #fff
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow] {
border-bottom: 7px solid #fff;
border-right: 7px solid transparent;
border-left: 7px solid transparent
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-small {
border-bottom: 5px solid #fff;
border-right: 5px solid transparent;
border-left: 5px solid transparent
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.light-theme [x-arrow].arrow-big {
border-bottom: 10px solid #fff;
border-right: 10px solid transparent;
border-left: 10px solid transparent
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-circle] {
background-color: var(--ls-secondary-background-color)
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow] {
border-bottom: 7px solid var(--ls-secondary-background-color);
border-right: 7px solid transparent;
border-left: 7px solid transparent
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-small {
border-bottom: 5px solid var(--ls-secondary-background-color);
border-right: 5px solid transparent;
border-left: 5px solid transparent
}
.tippy-popper[x-placement^=bottom] .tippy-tooltip.transparent-theme [x-arrow].arrow-big {
border-bottom: 10px solid var(--ls-secondary-background-color);
border-right: 10px solid transparent;
border-left: 10px solid transparent
}
.tippy-popper[x-placement^=bottom] [data-animation=perspective] {
-webkit-transform-origin: top;
transform-origin: top
}
.tippy-popper[x-placement^=bottom] [data-animation=perspective].enter {
opacity: 1;
-webkit-transform: translateY(10px) rotateX(0);
transform: translateY(10px) rotateX(0)
}
.tippy-popper[x-placement^=bottom] [data-animation=perspective].leave {
opacity: 0;
-webkit-transform: translateY(0) rotateX(-90deg);
transform: translateY(0) rotateX(-90deg)
}
.tippy-popper[x-placement^=bottom] [data-animation=fade].enter {
opacity: 1;
-webkit-transform: translateY(10px);
transform: translateY(10px)
}
.tippy-popper[x-placement^=bottom] [data-animation=fade].leave {
opacity: 0;
-webkit-transform: translateY(10px);
transform: translateY(10px)
}
.tippy-popper[x-placement^=bottom] [data-animation=shift].enter {
opacity: 1;
-webkit-transform: translateY(10px);
transform: translateY(10px)
}
.tippy-popper[x-placement^=bottom] [data-animation=shift].leave {
opacity: 0;
-webkit-transform: translateY(0);
transform: translateY(0)
}
.tippy-popper[x-placement^=bottom] [data-animation=scale].enter {
opacity: 1;
-webkit-transform: translateY(10px) scale(1);
transform: translateY(10px) scale(1)
}
.tippy-popper[x-placement^=bottom] [data-animation=scale].leave {
opacity: 0;
-webkit-transform: translateY(0) scale(0);
transform: translateY(0) scale(0)
}
.tippy-popper[x-placement^=left] [x-arrow] {
border-left: 7px solid var(--ls-quaternary-background-color);
border-top: 7px solid transparent;
border-bottom: 7px solid transparent;
right: -7px;
margin: 6px 0
}
.tippy-popper[x-placement^=left] [x-arrow].arrow-small {
border-left: 5px solid var(--ls-quaternary-background-color);
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
right: -5px
}
.tippy-popper[x-placement^=left] [x-arrow].arrow-big {
border-left: 10px solid var(--ls-quaternary-background-color);
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
right: -10px
}
.tippy-popper[x-placement^=left] [x-circle] {
-webkit-transform-origin: 50% 0;
transform-origin: 50% 0
}
.tippy-popper[x-placement^=left] [x-circle].enter {
-webkit-transform: scale(1) translate(-50%, -50%);
transform: scale(1) translate(-50%, -50%);
opacity: 1
}
.tippy-popper[x-placement^=left] [x-circle].leave {
-webkit-transform: scale(.15) translate(-50%, -50%);
transform: scale(.15) translate(-50%, -50%);
opacity: 0
}
.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-circle] {
background-color: #fff
}
.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow] {
border-left: 7px solid #fff;
border-top: 7px solid transparent;
border-bottom: 7px solid transparent
}
.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-small {
border-left: 5px solid #fff;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent
}
.tippy-popper[x-placement^=left] .tippy-tooltip.light-theme [x-arrow].arrow-big {
border-left: 10px solid #fff;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent
}
.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-circle] {
background-color: var(--ls-secondary-background-color)
}
.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow] {
border-left: 7px solid var(--ls-secondary-background-color);
border-top: 7px solid transparent;
border-bottom: 7px solid transparent
}
.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-small {
border-left: 5px solid var(--ls-secondary-background-color);
border-top: 5px solid transparent;
border-bottom: 5px solid transparent
}
.tippy-popper[x-placement^=left] .tippy-tooltip.transparent-theme [x-arrow].arrow-big {
border-left: 10px solid var(--ls-secondary-background-color);
border-top: 10px solid transparent;
border-bottom: 10px solid transparent
}
.tippy-popper[x-placement^=left] [data-animation=perspective] {
-webkit-transform-origin: right;
transform-origin: right
}
.tippy-popper[x-placement^=left] [data-animation=perspective].enter {
opacity: 1;
-webkit-transform: translateX(-10px) rotateY(0);
transform: translateX(-10px) rotateY(0)
}
.tippy-popper[x-placement^=left] [data-animation=perspective].leave {
opacity: 0;
-webkit-transform: translateX(0) rotateY(-90deg);
transform: translateX(0) rotateY(-90deg)
}
.tippy-popper[x-placement^=left] [data-animation=fade].enter {
opacity: 1;
-webkit-transform: translateX(-10px);
transform: translateX(-10px)
}
.tippy-popper[x-placement^=left] [data-animation=fade].leave {
opacity: 0;
-webkit-transform: translateX(-10px);
transform: translateX(-10px)
}
.tippy-popper[x-placement^=left] [data-animation=shift].enter {
opacity: 1;
-webkit-transform: translateX(-10px);
transform: translateX(-10px)
}
.tippy-popper[x-placement^=left] [data-animation=shift].leave {
opacity: 0;
-webkit-transform: translateX(0);
transform: translateX(0)
}
.tippy-popper[x-placement^=left] [data-animation=scale].enter {
opacity: 1;
-webkit-transform: translateX(-10px) scale(1);
transform: translateX(-10px) scale(1)
}
.tippy-popper[x-placement^=left] [data-animation=scale].leave {
opacity: 0;
-webkit-transform: translateX(0) scale(0);
transform: translateX(0) scale(0)
}
.tippy-popper[x-placement^=right] [x-arrow] {
border-right: 7px solid var(--ls-quaternary-background-color);
border-top: 7px solid transparent;
border-bottom: 7px solid transparent;
left: -7px;
margin: 6px 0
}
.tippy-popper[x-placement^=right] [x-arrow].arrow-small {
border-right: 5px solid var(--ls-quaternary-background-color);
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
left: -5px
}
.tippy-popper[x-placement^=right] [x-arrow].arrow-big {
border-right: 10px solid var(--ls-quaternary-background-color);
border-top: 10px solid transparent;
border-bottom: 10px solid transparent;
left: -10px
}
.tippy-popper[x-placement^=right] [x-circle] {
-webkit-transform-origin: -50% 0;
transform-origin: -50% 0
}
.tippy-popper[x-placement^=right] [x-circle].enter {
-webkit-transform: scale(1) translate(-50%, -50%);
transform: scale(1) translate(-50%, -50%);
opacity: 1
}
.tippy-popper[x-placement^=right] [x-circle].leave {
-webkit-transform: scale(.15) translate(-50%, -50%);
transform: scale(.15) translate(-50%, -50%);
opacity: 0
}
.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-circle] {
background-color: #fff
}
.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow] {
border-right: 7px solid #fff;
border-top: 7px solid transparent;
border-bottom: 7px solid transparent
}
.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-small {
border-right: 5px solid #fff;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent
}
.tippy-popper[x-placement^=right] .tippy-tooltip.light-theme [x-arrow].arrow-big {
border-right: 10px solid #fff;
border-top: 10px solid transparent;
border-bottom: 10px solid transparent
}
.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-circle] {
background-color: var(--ls-secondary-background-color)
}
.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow] {
border-right: 7px solid var(--ls-secondary-background-color);
border-top: 7px solid transparent;
border-bottom: 7px solid transparent
}
.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-small {
border-right: 5px solid var(--ls-secondary-background-color);
border-top: 5px solid transparent;
border-bottom: 5px solid transparent
}
.tippy-popper[x-placement^=right] .tippy-tooltip.transparent-theme [x-arrow].arrow-big {
border-right: 10px solid var(--ls-secondary-background-color);
border-top: 10px solid transparent;
border-bottom: 10px solid transparent
}
.tippy-popper[x-placement^=right] [data-animation=perspective] {
-webkit-transform-origin: left;
transform-origin: left
}
.tippy-popper[x-placement^=right] [data-animation=perspective].enter {
opacity: 1;
-webkit-transform: translateX(10px) rotateY(0);
transform: translateX(10px) rotateY(0)
}
.tippy-popper[x-placement^=right] [data-animation=perspective].leave {
opacity: 0;
-webkit-transform: translateX(0) rotateY(90deg);
transform: translateX(0) rotateY(90deg)
}
.tippy-popper[x-placement^=right] [data-animation=fade].enter {
opacity: 1;
-webkit-transform: translateX(10px);
transform: translateX(10px)
}
.tippy-popper[x-placement^=right] [data-animation=fade].leave {
opacity: 0;
-webkit-transform: translateX(10px);
transform: translateX(10px)
}
.tippy-popper[x-placement^=right] [data-animation=shift].enter {
opacity: 1;
-webkit-transform: translateX(10px);
transform: translateX(10px)
}
.tippy-popper[x-placement^=right] [data-animation=shift].leave {
opacity: 0;
-webkit-transform: translateX(0);
transform: translateX(0)
}
.tippy-popper[x-placement^=right] [data-animation=scale].enter {
opacity: 1;
-webkit-transform: translateX(10px) scale(1);
transform: translateX(10px) scale(1)
}
.tippy-popper[x-placement^=right] [data-animation=scale].leave {
opacity: 0;
-webkit-transform: translateX(0) scale(0);
transform: translateX(0) scale(0)
}
.tippy-popper .tippy-tooltip.transparent-theme {
background-color: var(--ls-secondary-background-color)
}
.tippy-popper .tippy-tooltip.transparent-theme[data-animatefill] {
background-color: transparent
}
.tippy-popper .tippy-tooltip.light-theme {
color: #26323d;
box-shadow: 0 4px 20px 4px rgba(0, 20, 60, .1), 0 4px 80px -8px rgba(0, 20, 60, .2);
background-color: #fff
}
.tippy-popper .tippy-tooltip.light-theme[data-animatefill] {
background-color: transparent
}
.tippy-tooltip {
position: relative;
color: var(--ls-primary-text-color);
border-radius: 4px;
text-align: center;
will-change: transform;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
background-color: var(--ls-quaternary-background-color);
}
.tippy-tooltip--small {
padding: .25rem .5rem;
font-size: .8rem
}
.tippy-tooltip--big {
padding: .6rem 1.2rem;
font-size: 1.2rem
}
.tippy-tooltip[data-animatefill] {
overflow: hidden;
background-color: transparent
}
.tippy-tooltip[data-interactive] {
pointer-events: auto
}
.tippy-tooltip[data-inertia] {
transition-timing-function: cubic-bezier(.53, 2, .36, .85)
}
.tippy-tooltip [x-arrow] {
position: absolute;
width: 0;
height: 0
}
.tippy-tooltip [x-circle] {
position: absolute;
will-change: transform;
background-color: var(--ls-quaternary-background-color);
border-radius: 50%;
width: 130%;
width: calc(110% + 2rem);
left: 50%;
top: 50%;
z-index: -1;
overflow: hidden;
transition: all ease
}
.tippy-tooltip [x-circle]:before {
content: "";
padding-top: 90%;
float: left
}
@media (max-width: 450px) {
.tippy-popper {
max-width: 96%;
max-width: calc(100% - 20px)
}
}
.tippy-popper .tippy-tooltip.customized-theme * {
text-align: left;
}
.tippy-wrapper {
background-color: var(--ls-quaternary-background-color);
}
.tippy-hover {
cursor: pointer;
}
.tippy-popper .tippy-tooltip.monospace-theme {
font-family: 'Fira Code', Monaco, Menlo, Consolas, 'COURIER NEW', monospace;
}

BIN
static/fonts/Cascadia.woff2 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
static/fonts/Virgil.woff2 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
static/icons/installing.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

BIN
static/icons/logseq.icns Normal file

Binary file not shown.

BIN
static/icons/logseq.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

BIN
static/icons/logseq.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
static/img/credits.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

BIN
static/img/dmg-bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

BIN
static/img/file-edn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
static/img/folder-logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
static/img/folder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
static/img/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

BIN
static/img/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Some files were not shown because too many files have changed in this diff Show More