summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-04-12 11:47:32 +0200
committerMinteck <contact@minteck.org>2022-04-12 11:47:32 +0200
commitaa03c15b186da0973a4369a97e7fea00468f16d5 (patch)
treebfc78f9985acafd6f8dcfddc15dec35ec6258e04
downloadcdn-aa03c15b186da0973a4369a97e7fea00468f16d5.tar.gz
cdn-aa03c15b186da0973a4369a97e7fea00468f16d5.tar.bz2
cdn-aa03c15b186da0973a4369a97e7fea00468f16d5.zip
Familine
-rwxr-xr-xdark.css96
-rwxr-xr-xfavicon.svg69
-rwxr-xr-xfonts/Nunito-Italic-VariableFont_wght.ttfbin0 -> 279936 bytes
-rwxr-xr-xfonts/Nunito-VariableFont_wght.ttfbin0 -> 275436 bytes
-rwxr-xr-xicons/badge-filled.pngbin0 -> 3511 bytes
-rwxr-xr-xicons/badge-symbolic.pngbin0 -> 3984 bytes
-rwxr-xr-xicons/badge.pngbin0 -> 14049 bytes
-rwxr-xr-xicons/bucks.pngbin0 -> 13123 bytes
-rwxr-xr-xicons/cinema-filled.pngbin0 -> 3315 bytes
-rwxr-xr-xicons/cinema-symbolic.pngbin0 -> 4990 bytes
-rwxr-xr-xicons/cinema.pngbin0 -> 13823 bytes
-rwxr-xr-xicons/cloud-link.pngbin0 -> 33246 bytes
-rwxr-xr-xicons/contacts-filled.pngbin0 -> 3105 bytes
-rwxr-xr-xicons/contacts-symbolic.pngbin0 -> 4038 bytes
-rwxr-xr-xicons/contacts.pngbin0 -> 10925 bytes
-rwxr-xr-xicons/famidata.pngbin0 -> 375 bytes
-rw-r--r--icons/familine-docs.svg16
-rw-r--r--icons/familine-help.svg17
-rw-r--r--icons/familine-media.svg17
-rwxr-xr-xicons/familine-movies.svg54
-rw-r--r--icons/familine-music.svg16
-rwxr-xr-xicons/familine-photos.svg54
-rw-r--r--icons/familine-planning.svg22
-rw-r--r--icons/familine-recall.svg15
-rw-r--r--icons/familine-share.svg17
-rw-r--r--icons/familine-you.svg20
-rwxr-xr-xicons/familine.svg69
-rwxr-xr-xicons/help-filled.pngbin0 -> 5251 bytes
-rwxr-xr-xicons/help-symbolic.pngbin0 -> 6677 bytes
-rwxr-xr-xicons/help.pngbin0 -> 12722 bytes
-rwxr-xr-xicons/home-filled.pngbin0 -> 2557 bytes
-rwxr-xr-xicons/home-symbolic.pngbin0 -> 2886 bytes
-rwxr-xr-xicons/home.pngbin0 -> 9893 bytes
-rwxr-xr-xicons/money-filled.pngbin0 -> 4441 bytes
-rwxr-xr-xicons/money-symbolic.pngbin0 -> 4977 bytes
-rwxr-xr-xicons/money.pngbin0 -> 9655 bytes
-rwxr-xr-xicons/music.pngbin0 -> 3450 bytes
-rwxr-xr-xicons/open-book-filled.pngbin0 -> 2493 bytes
-rwxr-xr-xicons/open-book-symbolic.pngbin0 -> 2735 bytes
-rwxr-xr-xicons/open-book.pngbin0 -> 2079 bytes
-rwxr-xr-xicons/opus.svg18
-rwxr-xr-xicons/pause-filled.pngbin0 -> 288 bytes
-rwxr-xr-xicons/pause-symbolic.pngbin0 -> 299 bytes
-rwxr-xr-xicons/pip.pngbin0 -> 974 bytes
-rwxr-xr-xicons/play-filled.pngbin0 -> 435 bytes
-rwxr-xr-xicons/play-symbolic.pngbin0 -> 580 bytes
-rwxr-xr-xicons/radio-filled.pngbin0 -> 4329 bytes
-rwxr-xr-xicons/radio-symbolic.pngbin0 -> 4514 bytes
-rwxr-xr-xicons/radio.pngbin0 -> 8243 bytes
-rwxr-xr-xicons/settings-filled.pngbin0 -> 5192 bytes
-rwxr-xr-xicons/settings-symbolic.pngbin0 -> 7419 bytes
-rwxr-xr-xicons/settings.pngbin0 -> 12301 bytes
-rwxr-xr-xicons/share-filled.pngbin0 -> 3457 bytes
-rwxr-xr-xicons/share-symbolic.pngbin0 -> 4941 bytes
-rwxr-xr-xicons/share.pngbin0 -> 11049 bytes
-rwxr-xr-xicons/solve-filled.pngbin0 -> 5225 bytes
-rwxr-xr-xicons/solve-symbolic.pngbin0 -> 6088 bytes
-rwxr-xr-xicons/solve.pngbin0 -> 16776 bytes
-rwxr-xr-xicons/speaker.pngbin0 -> 722 bytes
-rwxr-xr-xicons/window-close.pngbin0 -> 220 bytes
-rwxr-xr-xicons/window-maximize.pngbin0 -> 223 bytes
-rwxr-xr-xicons/window-minimize.pngbin0 -> 263 bytes
-rwxr-xr-xicons/window-reduce.pngbin0 -> 468 bytes
-rw-r--r--intro.jpgbin0 -> 1651222 bytes
-rw-r--r--intro.psdbin0 -> 115407900 bytes
-rwxr-xr-xjs/home.js12
-rwxr-xr-xjs/iframe.js48
-rwxr-xr-xjs/loading.js32
-rwxr-xr-xjs/navigation.js110
-rwxr-xr-xjs/statusbar.js4
-rwxr-xr-xme/index.php6
-rwxr-xr-xstatusbar.php194
-rwxr-xr-xstyles.css337
73 files changed, 1243 insertions, 0 deletions
diff --git a/dark.css b/dark.css
new file mode 100755
index 0000000..8ce19e1
--- /dev/null
+++ b/dark.css
@@ -0,0 +1,96 @@
+@media (prefers-color-scheme: dark) {
+
+ html, body {
+ background: black !important;
+ color: white !important;
+ }
+
+ #statusbar, #tabs {
+ background: #222 !important;
+ color: white !important;
+ }
+
+ .tab:not(.tab-active) img {
+ filter: invert(1) !important;
+ }
+
+ .loader {
+ background: rgba(10, 10, 10, .75) !important;
+ }
+
+ .loader img {
+ filter: invert(1) !important;
+ }
+
+ #tabs .tab.tab-active {
+ border-bottom-color: white !important;
+ }
+
+ .list-group-item {
+ background-color: #151515 !important;
+ }
+
+ .btn-light {
+ background: transparent !important;
+ color: white !important;
+ }
+
+ .dropdown-menu {
+ filter: invert(1) !important;
+ }
+
+ #panes {
+ background: black !important;
+ }
+
+ .list-group-item-action {
+ color: white !important;
+ }
+
+ .modal-content {
+ background-color: #151515 !important;
+ }
+
+ .modal-header button.close {
+ filter: invert(1) !important;
+ }
+
+ .modal-header {
+ border-bottom: 1px solid #222 !important;
+ }
+
+ .modal-footer {
+ border-top: 1px solid #222 !important;
+ }
+
+ #radio-bar {
+ background-color: whitesmoke !important;
+ color: black !important;
+ filter: invert(1) !important;
+ }
+
+ #radio-bar .badge {
+ filter: invert(1) !important;
+ }
+
+ .window-btn {
+ border-color: #333 !important;
+ }
+
+ .window-btn img {
+ filter: invert(1);
+ }
+
+ .window-btn:hover {
+ background: rgba(0, 0, 0, .25);
+ }
+
+ .window-btn:active {
+ background: rgba(0, 0, 0, .5);
+ }
+
+ hr {
+ border-top: 1px solid rgba(255, 255, 255, .1) !important;
+ }
+
+} \ No newline at end of file
diff --git a/favicon.svg b/favicon.svg
new file mode 100755
index 0000000..485c463
--- /dev/null
+++ b/favicon.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{clip-path:url(#SVGID_2_);}
+ .st2{clip-path:url(#SVGID_4_);}
+</style>
+<rect class="st0" width="24" height="24"/>
+<g>
+ <g>
+ <g>
+ <defs>
+ <path id="SVGID_1_" d="M4892.49,715.22C4892.49,321.85,5207,0,5591.41,0c384.41,0,698.93,321.85,698.93,715.22
+ s-314.52,715.22-698.93,715.22C5207,1430.45,4892.49,1108.6,4892.49,715.22z M6290.34,7152.24V5006.57H7164l-873.66-2717.85
+ c-104.84-286.09-349.46-500.66-663.98-500.66h-34.95c-314.52,0-559.14,214.57-663.98,500.66l-314.52,929.79
+ c384.41,214.57,629.03,607.94,629.03,1108.6V7188h1048.39V7152.24z M3669.37,3397.31c279.57,0,524.2-250.33,524.2-536.42
+ s-244.62-536.42-524.2-536.42s-524.2,250.33-524.2,536.42S3389.8,3397.31,3669.37,3397.31z M1223.12,1430.45
+ c384.41,0,698.93-321.85,698.93-715.22S1607.53,0,1223.12,0S524.2,321.85,524.2,715.22S838.71,1430.45,1223.12,1430.45z
+ M1922.05,7152.24V4648.96h524.2V2503.28c0-393.37-314.52-715.22-698.93-715.22H698.93C314.52,1788.06,0,2109.91,0,2503.28
+ v2145.67h524.2v2503.28H1922.05z M4193.56,7152.24V5721.79h349.46V4291.34c0-286.09-244.62-536.42-524.2-536.42H3319.9
+ c-279.57,0-524.2,250.33-524.2,536.42v1430.45h349.46v1430.45H4193.56z"/>
+ </defs>
+ <clipPath id="SVGID_2_">
+ <use xlink:href="#SVGID_1_" style="overflow:visible;"/>
+ </clipPath>
+ <g class="st1">
+ <g>
+ <g>
+ <defs>
+ <rect id="SVGID_3_" x="-1747.32" y="-1788.06" width="10658.63" height="10728.36"/>
+ </defs>
+ <clipPath id="SVGID_4_">
+ <use xlink:href="#SVGID_3_" style="overflow:visible;"/>
+ </clipPath>
+ <g class="st2">
+
+ <image style="overflow:visible;enable-background:new ;" width="67" height="67" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAlgCWAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA
+EAMCAwYAAAKNAAADPQAABNz/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX
+Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa
+JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAEMAQwMBIgACEQEDEQH/
+xAC5AAACAwEBAQAAAAAAAAAAAAAABQIDBgEEBwEAAwEBAQAAAAAAAAAAAAAAAwQFAgEAEAACAgED
+BAIBBQAAAAAAAAABAgADBBEFBhASExQhMSNBMhU1FhEAAgEBAwcGCQ0AAAAAAAAAAQIRAwAhEhAx
+QSIyEwQgUWFxkVIwoUJicqMUFUWBscHRgpKistIzg0Q1EgABAgMHAgcAAAAAAAAAAAABABEQMQIh
+QVGBEjJDYYIgcZGhIoNE/9oADAMBAAIRAxEAAAD6Ak9/zzjbpvkPQBndJlfV47l3i3RV3oDbmfyb
+xUCnH1R9KvQtrzHg0Vel+ZsACV8iteJVqErqZczbVGqhInGEXVNOKBZzQ5ba4xKrHhEh+V9g7zjB
+bqSrviZMUFYe0skHTU9AmpagMhAMD//aAAgBAgABBQAnSNYVlmQ7NRa5Mdvm1iZVWWNdBHRwe5at
+Tj0KAtQnirjD5rWVy1+2voIJZ9z/2gAIAQMAAQUAxMdbJbRV239yynIJeY+i1O3xmMBK3AulR1rs
+10ya3YnHad1kxSChTWeupl9CKsT90/W37n//2gAIAQEAAQUAm78lx8Bv9ZupfbOT15LZ24UYKWcg
+zWbG5C4NdiWpN2ymw9uJZ2RZWka2249OO5Dd05ZmBMYJESVpFSEQzjyhs2cm1bdAsRJWs0GjGEza
+sr18+cjGu5gRRFOkLxnhaFp/M2ePkuI4vEBndGeM0LTunqXeDkP9bNYTGaEwmbHi05m4eOuZ+N7e
+JbVZTYYYxhhnFtttpHTd+3X8M/H4j4Jb4u/D8XsdP//aAAgBAgIGPwBOvidI6LTWXeRgYSQLSgYS
+hPl05YeAl2LMPON+S5MkN/fD/9oACAEDAgY/ADVXtpLNiVZSKeoTAoUVWvIwpa+31gVQTLVClsGj
+aFLi98UabwYSRJygN3bNc6/Qhv8AsnD/2gAIAQEBBj8AsaFACvxIuYTCofOOnqFsUUgLtQKY8bT4
+7LR4xBRqNcKi7BPTOawNTWdtimM5+q0oqIugRJ7TYDiaYK95Lj2Gy1KbBkYSCMnEcQu2iwh5mY4F
+PyE2LMSzMZJN5JOk5Q1Vi5ChQTzKIAy1OGMlY3i8wgwe2RkTgl2qxDudGFT9J5bsfJpmOeSQMhky
+AigdGc8uk5OqxwN1Nd89+RvQXwG9nV9j3mn97ebn81k4sCabAIx5mEx2jwGbW9k3+HTg32f7t9m9
+NeWlGuCaYBYgGJw6D0W2F2cOYbPd6rVKGlhqk94Xixp1VKOtxU8p+NrKUNRcFJTcSpIYtHTAjKmL
+2SI/szjz+Rhvi3w/1tj/AJmHpx4v1W+G+utre6p83eR+C6y4Pdk/yYvs47py/wD/2Q==" transform="matrix(161.4882 0 0 165.2537 -1831.3508 -1959.8796)">
+ </image>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</g>
+</svg>
diff --git a/fonts/Nunito-Italic-VariableFont_wght.ttf b/fonts/Nunito-Italic-VariableFont_wght.ttf
new file mode 100755
index 0000000..97a40fa
--- /dev/null
+++ b/fonts/Nunito-Italic-VariableFont_wght.ttf
Binary files differ
diff --git a/fonts/Nunito-VariableFont_wght.ttf b/fonts/Nunito-VariableFont_wght.ttf
new file mode 100755
index 0000000..edc20b8
--- /dev/null
+++ b/fonts/Nunito-VariableFont_wght.ttf
Binary files differ
diff --git a/icons/badge-filled.png b/icons/badge-filled.png
new file mode 100755
index 0000000..6b29fc8
--- /dev/null
+++ b/icons/badge-filled.png
Binary files differ
diff --git a/icons/badge-symbolic.png b/icons/badge-symbolic.png
new file mode 100755
index 0000000..93d28cf
--- /dev/null
+++ b/icons/badge-symbolic.png
Binary files differ
diff --git a/icons/badge.png b/icons/badge.png
new file mode 100755
index 0000000..339b169
--- /dev/null
+++ b/icons/badge.png
Binary files differ
diff --git a/icons/bucks.png b/icons/bucks.png
new file mode 100755
index 0000000..eb81f63
--- /dev/null
+++ b/icons/bucks.png
Binary files differ
diff --git a/icons/cinema-filled.png b/icons/cinema-filled.png
new file mode 100755
index 0000000..41b13f9
--- /dev/null
+++ b/icons/cinema-filled.png
Binary files differ
diff --git a/icons/cinema-symbolic.png b/icons/cinema-symbolic.png
new file mode 100755
index 0000000..d594e70
--- /dev/null
+++ b/icons/cinema-symbolic.png
Binary files differ
diff --git a/icons/cinema.png b/icons/cinema.png
new file mode 100755
index 0000000..4ba70ec
--- /dev/null
+++ b/icons/cinema.png
Binary files differ
diff --git a/icons/cloud-link.png b/icons/cloud-link.png
new file mode 100755
index 0000000..7ab6584
--- /dev/null
+++ b/icons/cloud-link.png
Binary files differ
diff --git a/icons/contacts-filled.png b/icons/contacts-filled.png
new file mode 100755
index 0000000..0129625
--- /dev/null
+++ b/icons/contacts-filled.png
Binary files differ
diff --git a/icons/contacts-symbolic.png b/icons/contacts-symbolic.png
new file mode 100755
index 0000000..aa88c7f
--- /dev/null
+++ b/icons/contacts-symbolic.png
Binary files differ
diff --git a/icons/contacts.png b/icons/contacts.png
new file mode 100755
index 0000000..ab2c527
--- /dev/null
+++ b/icons/contacts.png
Binary files differ
diff --git a/icons/famidata.png b/icons/famidata.png
new file mode 100755
index 0000000..4709e1d
--- /dev/null
+++ b/icons/famidata.png
Binary files differ
diff --git a/icons/familine-docs.svg b/icons/familine-docs.svg
new file mode 100644
index 0000000..67e2a02
--- /dev/null
+++ b/icons/familine-docs.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h7164v7188H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="706.2429" y1="1438.0809" x2="5737.938" y2="6469.7759">
+ <stop offset="0" style="stop-color:#EF593B"/>
+ <stop offset="1" style="stop-color:#EF9E8F"/>
+</linearGradient>
+<path class="st1" d="M2388,4792h2388v599H2388V4792z M2388,3594h2388v599H2388V3594z M4179,599H1791c-328.3,0-597,269.5-597,599
+ v4792c0,329.5,268.7,599,597,599h3582c328.4,0,597-269.5,597-599V2396L4179,599z M5373,5990H1791V1198h2089.5v1497.5H5373V5990z"/>
+</svg>
diff --git a/icons/familine-help.svg b/icons/familine-help.svg
new file mode 100644
index 0000000..8499cf8
--- /dev/null
+++ b/icons/familine-help.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h7164v7188H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1066.1619" y1="6109.8384" x2="6097.8384" y2="1078.1619">
+ <stop offset="0" style="stop-color:#EF713B"/>
+ <stop offset="1" style="stop-color:#EFAC8F"/>
+</linearGradient>
+<path class="st1" d="M5373,599H1791c-328.3,0-597,269.5-597,599v4792c0,329.5,268.7,599,597,599h3582c328.4,0,597-269.5,597-599
+ V1198C5970,868.5,5701.4,599,5373,599z M2686.5,1198h597v1497.5L2985,2455.9l-298.5,239.6V1198z M5373,5990H1791V1198h298.5v2695.5
+ l895.5-688.9l895.5,688.9V1198H5373V5990z"/>
+</svg>
diff --git a/icons/familine-media.svg b/icons/familine-media.svg
new file mode 100644
index 0000000..e9b245e
--- /dev/null
+++ b/icons/familine-media.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h24v24H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="1.5875" y1="22.4125" x2="21.4125" y2="2.5875">
+ <stop offset="0" style="stop-color:#EFD03B"/>
+ <stop offset="0.5" style="stop-color:#C0FF36"/>
+ <stop offset="1" style="stop-color:#3BEF3B"/>
+</linearGradient>
+<path class="st1" d="M2,6H0v5l0,0v9c0,1.1,0.9,2,2,2h18v-2H2V6z M7,15h14l-3.5-4.5l-2.5,3L11.5,9L7,15z M22,4h-8l-2-2H6
+ C4.9,2,4,2.9,4,4v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V6C24,4.9,23.1,4,22,4z M22,16H6V4h5.2l1.4,1.4L13.2,6H22V16z"/>
+</svg>
diff --git a/icons/familine-movies.svg b/icons/familine-movies.svg
new file mode 100755
index 0000000..cdf031f
--- /dev/null
+++ b/icons/familine-movies.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+
+<svg
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ viewBox="0 0 7164 7188"
+ style="enable-background:new 0 0 7164 7188;"
+ xml:space="preserve"
+ sodipodi:docname="familine-movies.svg"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ inkscape:export-filename="D:\Projets\Familine\icns\familine-movies.png"
+ inkscape:export-xdpi="24"
+ inkscape:export-ydpi="24"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"><defs
+ id="defs11" /><sodipodi:namedview
+ id="namedview9"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.092097941"
+ inkscape:cx="1438.6858"
+ inkscape:cy="3599.429"
+ inkscape:window-width="1600"
+ inkscape:window-height="847"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="Layer_1" />
+<style
+ type="text/css"
+ id="style2">
+ .st0{fill:none;}
+ .st1{fill:#41EF3B;}
+</style>
+<path
+ class="st0"
+ d="M0,0h7164v7188H0V0z"
+ id="path4" />
+<path
+ class="st1"
+ d="M5373,898.5v599h-597v-599H2388v599h-597v-599h-597v5391h597v-599h597v599h2388v-599h597v599h597v-5391H5373z M2388,5091.5h-597v-599h597V5091.5z M2388,3893.5h-597v-599h597V3893.5z M2388,2695.5h-597v-599h597V2695.5z M4179,5690.5H2985 v-4193h1194V5690.5z M5373,5091.5h-597v-599h597V5091.5z M5373,3893.5h-597v-599h597V3893.5z M5373,2695.5h-597v-599h597V2695.5z"
+ id="path6"
+ style="fill:#efd03b;fill-opacity:1" />
+</svg>
diff --git a/icons/familine-music.svg b/icons/familine-music.svg
new file mode 100644
index 0000000..6ba92f8
--- /dev/null
+++ b/icons/familine-music.svg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:#C0FF36;}
+</style>
+<g>
+ <rect class="st0" width="24" height="24"/>
+</g>
+<g>
+ <path class="st1" d="M12,3c-5,0-9,4-9,9v7c0,1.1,0.9,2,2,2h4v-8H5v-1c0-3.9,3.1-7,7-7s7,3.1,7,7v1h-4v8h4c1.1,0,2-0.9,2-2v-7
+ C21,7,17,3,12,3z M7,15v4H5v-4H7z M19,19h-2v-4h2V19z"/>
+</g>
+</svg>
diff --git a/icons/familine-photos.svg b/icons/familine-photos.svg
new file mode 100755
index 0000000..18b52f0
--- /dev/null
+++ b/icons/familine-photos.svg
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+
+<svg
+ version="1.1"
+ id="Layer_1"
+ x="0px"
+ y="0px"
+ viewBox="0 0 7164 7188"
+ style="enable-background:new 0 0 7164 7188;"
+ xml:space="preserve"
+ sodipodi:docname="familine-photos.svg"
+ inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+ inkscape:export-filename="D:\Projets\Familine\icns\familine-photos.png"
+ inkscape:export-xdpi="13.72"
+ inkscape:export-ydpi="13.72"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"><defs
+ id="defs11" /><sodipodi:namedview
+ id="namedview9"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageshadow="2"
+ inkscape:pageopacity="0.0"
+ inkscape:pagecheckerboard="0"
+ showgrid="false"
+ inkscape:zoom="0.092097941"
+ inkscape:cx="3577.713"
+ inkscape:cy="3599.429"
+ inkscape:window-width="1600"
+ inkscape:window-height="847"
+ inkscape:window-x="-8"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="Layer_1" />
+<style
+ type="text/css"
+ id="style2">
+ .st0{fill:none;}
+ .st1{fill:#3BEF80;}
+</style>
+<path
+ class="st0"
+ d="M0,0h7164v7188H0V0z"
+ id="path4" />
+<path
+ class="st1"
+ d="M5581.95,3713.8c-89.55-59.9-179.1-89.85-268.65-119.8c89.55-29.95,179.1-59.9,268.65-119.8 c567.15-329.45,895.5-928.45,895.5-1557.4c-268.65-149.75-597-239.6-895.5-239.6s-597,89.85-895.5,239.6 c-89.55,59.9-149.25,89.85-238.8,149.75c29.85-89.85,29.85-179.7,29.85-269.55c0-658.9-358.2-1257.9-895.5-1557.4 c-537.3,299.5-895.5,898.5-895.5,1557.4c0,89.85,0,179.7,29.85,269.55c-89.55-29.95-149.25-89.85-238.8-149.75 c-268.65-149.75-597-239.6-895.5-239.6c-328.35,0-626.85,89.85-895.5,239.6c0,628.95,328.35,1227.95,895.5,1557.4 c89.55,59.9,179.1,89.85,268.65,119.8c-89.55,29.95-179.1,59.9-268.65,119.8c-567.15,329.45-895.5,928.45-895.5,1557.4 c268.65,149.75,567.15,239.6,895.5,239.6c298.5,0,626.85-89.85,895.5-239.6c89.55-59.9,149.25-119.8,238.8-149.75 c-29.85,89.85-29.85,179.7-29.85,269.55c0,658.9,358.2,1227.95,895.5,1557.4c537.3-299.5,895.5-898.5,895.5-1557.4 c0-89.85,0-179.7-29.85-299.5c59.7,59.9,149.25,119.8,238.8,149.75c268.65,149.75,597,239.6,895.5,239.6s626.85-89.85,895.5-239.6 C6477.45,4642.25,6149.1,4043.25,5581.95,3713.8z M4835.7,2545.75c59.7-59.9,119.4-89.85,149.25-119.8 c179.1-89.85,388.05-149.75,597-149.75c89.55,0,149.25,0,238.8,29.95c-89.55,269.55-268.65,509.15-537.3,658.9 c-59.7,29.95-119.4,59.9-179.1,89.85l-417.9,149.75c-59.7-149.75-119.4-269.55-208.95-359.4 C4477.5,2815.3,4835.7,2545.75,4835.7,2545.75z M3582,1018.3c179.1,209.65,298.5,479.2,298.5,778.7c0,59.9,0,119.8-29.85,179.7 l-59.7,419.3c-59.7,0-149.25,0-208.95,0s-149.25,0-208.95,29.95l-59.7-419.3c-29.85-89.85-29.85-149.75-29.85-209.65 C3283.5,1497.5,3402.9,1227.95,3582,1018.3z M1343.25,2306.15c89.55-29.95,149.25-29.95,238.8-29.95c208.95,0,417.9,59.9,597,149.75 c59.7,29.95,89.55,59.9,149.25,119.8l328.35,299.5c-89.55,119.8-149.25,239.6-208.95,359.4l-417.9-149.75 c-59.7-59.9-89.55-59.9-149.25-89.85C1611.9,2815.3,1432.8,2575.7,1343.25,2306.15z M2328.3,4642.25 c-59.7,59.9-119.4,89.85-149.25,119.8c-179.1,89.85-388.05,149.75-597,149.75c-89.55,0-149.25,0-238.8-29.95 c89.55-269.55,268.65-509.15,537.3-658.9c59.7-29.95,119.4-59.9,179.1-89.85l417.9-149.75c59.7,149.75,119.4,269.55,208.95,359.4 C2686.5,4372.7,2328.3,4642.25,2328.3,4642.25z M3582,6169.7c-179.1-209.65-298.5-509.15-298.5-778.7c0-59.9,0-119.8,29.85-179.7 l59.7-419.3c59.7,0,149.25,29.95,208.95,29.95s149.25,0,208.95-29.95l59.7,419.3c0,59.9,29.85,119.8,29.85,179.7 C3880.5,5690.5,3761.1,5960.05,3582,6169.7z M5581.95,4911.8c-208.95,0-417.9-59.9-597-149.75c-59.7-29.95-89.55-59.9-149.25-89.85 l-328.35-299.5c89.55-119.8,149.25-239.6,208.95-359.4l417.9,149.75c59.7,29.95,119.4,59.9,179.1,89.85 c268.65,149.75,447.75,389.35,537.3,658.9C5731.2,4911.8,5671.5,4911.8,5581.95,4911.8z"
+ id="path6"
+ style="fill:#3bef3b;fill-opacity:1" />
+</svg>
diff --git a/icons/familine-planning.svg b/icons/familine-planning.svg
new file mode 100644
index 0000000..57d78f6
--- /dev/null
+++ b/icons/familine-planning.svg
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1"
+ id="Layer_1" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="familine-planning.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 7164 7188"
+ style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#path6_1_);}
+</style>
+<sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="namedview9" inkscape:current-layer="Layer_1" inkscape:cx="3577.713" inkscape:cy="3599.429" inkscape:pagecheckerboard="0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="847" inkscape:window-maximized="1" inkscape:window-width="1600" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:zoom="0.092097941" pagecolor="#ffffff" showgrid="false">
+ </sodipodi:namedview>
+<path id="path4" class="st0" d="M0,0h7164v7188H0V0z"/>
+<linearGradient id="path6_1_" gradientUnits="userSpaceOnUse" x1="6111.0439" y1="1037.5441" x2="1052.9559" y2="6095.6323">
+ <stop offset="0" style="stop-color:#3BEF6F"/>
+ <stop offset="1" style="stop-color:#8FEFAB"/>
+</linearGradient>
+<path id="path6" class="st1" d="M5671.5,898.5H5373v-599h-597v599H2388v-599h-597v599h-298.5c-328.3,0-597,269.6-597,599v4193
+ c0,329.5,268.7,599,597,599h4179c328.4,0,597-269.5,597-599v-4193C6268.5,1168.1,5999.9,898.5,5671.5,898.5z M5671.5,5690.5h-4179
+ v-2995h4179V5690.5z M1492.5,2096.5v-599h4179v599H1492.5z M2089.5,3294.5h2985v599h-2985V3294.5z M2089.5,4492.5H4179v599H2089.5
+ V4492.5z"/>
+</svg>
diff --git a/icons/familine-recall.svg b/icons/familine-recall.svg
new file mode 100644
index 0000000..584c419
--- /dev/null
+++ b/icons/familine-recall.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h24v24H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="25.0221" y1="15.7655" x2="2.2279" y2="2.6053">
+ <stop offset="0" style="stop-color:#35B7FF"/>
+ <stop offset="1" style="stop-color:#99DBFF"/>
+</linearGradient>
+<path class="st1" d="M22,11V3h-7v3H9V3H2v8h7V8h2v10h4v3h7v-8h-7v3h-2V8h2v3H22z"/>
+</svg>
diff --git a/icons/familine-share.svg b/icons/familine-share.svg
new file mode 100644
index 0000000..3c5cc8e
--- /dev/null
+++ b/icons/familine-share.svg
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h7164v7188H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="298.5" y1="3594" x2="6865.5" y2="3594">
+ <stop offset="0" style="stop-color:#953BEF"/>
+ <stop offset="1" style="stop-color:#BF8FEF"/>
+</linearGradient>
+<path class="st1" d="M6268.5,898.5h-5373c-328.3,0-597,269.6-597,599v4193c0,329.5,268.7,599,597,599h5373
+ c328.4,0,597-269.5,597-599v-4193C6865.5,1168.1,6596.9,898.5,6268.5,898.5z M6268.5,5690.5h-5373v-4193h5373V5690.5z M2985,3594
+ h-597l1194-1198l1194,1198h-597v1198H2985V3594z"/>
+</svg>
diff --git a/icons/familine-you.svg b/icons/familine-you.svg
new file mode 100644
index 0000000..e95a256
--- /dev/null
+++ b/icons/familine-you.svg
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{fill:url(#SVGID_1_);}
+</style>
+<path class="st0" d="M0,0h7164v7188H0V0z"/>
+<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="6268.5" y1="3743.75" x2="895.5" y2="3743.75">
+ <stop offset="0" style="stop-color:#EF3BD4"/>
+ <stop offset="1" style="stop-color:#EF8FE1"/>
+</linearGradient>
+<path class="st1" d="M5671.5,599h-4179c-328.3,0-597,269.5-597,599v4193c0,329.5,268.7,599,597,599h1194l895.5,898.5l895.5-898.5
+ h1194c328.4,0,597-269.5,597-599V1198C6268.5,868.5,5999.9,599,5671.5,599z M5671.5,5391H4238.7l-179.1,179.7L3582,6049.9
+ l-477.6-479.2L2925.3,5391H1492.5V1198h4179V5391z M3582,3294.5c477.6,0,895.5-419.3,895.5-898.5s-417.9-898.5-895.5-898.5
+ s-895.5,389.3-895.5,898.5S3104.4,3294.5,3582,3294.5z M3582,2096.5c179.1,0,298.5,119.8,298.5,299.5s-119.4,299.5-298.5,299.5
+ s-298.5-119.8-298.5-299.5S3402.9,2096.5,3582,2096.5z M5373,4672.2c0-748.8-1194-1078.2-1791-1078.2s-1791,329.4-1791,1078.2v419.3
+ h3582V4672.2z M2537.2,4492.5C2746.2,4342.8,3193.9,4193,3582,4193s835.8,149.8,1044.8,299.5H2537.2z"/>
+</svg>
diff --git a/icons/familine.svg b/icons/familine.svg
new file mode 100755
index 0000000..485c463
--- /dev/null
+++ b/icons/familine.svg
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 25.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 7164 7188" style="enable-background:new 0 0 7164 7188;" xml:space="preserve">
+<style type="text/css">
+ .st0{fill:none;}
+ .st1{clip-path:url(#SVGID_2_);}
+ .st2{clip-path:url(#SVGID_4_);}
+</style>
+<rect class="st0" width="24" height="24"/>
+<g>
+ <g>
+ <g>
+ <defs>
+ <path id="SVGID_1_" d="M4892.49,715.22C4892.49,321.85,5207,0,5591.41,0c384.41,0,698.93,321.85,698.93,715.22
+ s-314.52,715.22-698.93,715.22C5207,1430.45,4892.49,1108.6,4892.49,715.22z M6290.34,7152.24V5006.57H7164l-873.66-2717.85
+ c-104.84-286.09-349.46-500.66-663.98-500.66h-34.95c-314.52,0-559.14,214.57-663.98,500.66l-314.52,929.79
+ c384.41,214.57,629.03,607.94,629.03,1108.6V7188h1048.39V7152.24z M3669.37,3397.31c279.57,0,524.2-250.33,524.2-536.42
+ s-244.62-536.42-524.2-536.42s-524.2,250.33-524.2,536.42S3389.8,3397.31,3669.37,3397.31z M1223.12,1430.45
+ c384.41,0,698.93-321.85,698.93-715.22S1607.53,0,1223.12,0S524.2,321.85,524.2,715.22S838.71,1430.45,1223.12,1430.45z
+ M1922.05,7152.24V4648.96h524.2V2503.28c0-393.37-314.52-715.22-698.93-715.22H698.93C314.52,1788.06,0,2109.91,0,2503.28
+ v2145.67h524.2v2503.28H1922.05z M4193.56,7152.24V5721.79h349.46V4291.34c0-286.09-244.62-536.42-524.2-536.42H3319.9
+ c-279.57,0-524.2,250.33-524.2,536.42v1430.45h349.46v1430.45H4193.56z"/>
+ </defs>
+ <clipPath id="SVGID_2_">
+ <use xlink:href="#SVGID_1_" style="overflow:visible;"/>
+ </clipPath>
+ <g class="st1">
+ <g>
+ <g>
+ <defs>
+ <rect id="SVGID_3_" x="-1747.32" y="-1788.06" width="10658.63" height="10728.36"/>
+ </defs>
+ <clipPath id="SVGID_4_">
+ <use xlink:href="#SVGID_3_" style="overflow:visible;"/>
+ </clipPath>
+ <g class="st2">
+
+ <image style="overflow:visible;enable-background:new ;" width="67" height="67" xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAlgCWAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA
+EAMCAwYAAAKNAAADPQAABNz/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX
+Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa
+JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAEMAQwMBIgACEQEDEQH/
+xAC5AAACAwEBAQAAAAAAAAAAAAAABQIDBgEEBwEAAwEBAQAAAAAAAAAAAAAAAwQFAgEAEAACAgED
+BAIBBQAAAAAAAAABAgADBBEFBhASExQhMSNBMhU1FhEAAgEBAwcGCQ0AAAAAAAAAAQIRAwAhEhAx
+QSIyEwQgUWFxkVIwoUJicqMUFUWBscHRgpKistIzg0Q1EgABAgMHAgcAAAAAAAAAAAABABEQMQIh
+QVGBEjJDYYIgcZGhIoNE/9oADAMBAAIRAxEAAAD6Ak9/zzjbpvkPQBndJlfV47l3i3RV3oDbmfyb
+xUCnH1R9KvQtrzHg0Vel+ZsACV8iteJVqErqZczbVGqhInGEXVNOKBZzQ5ba4xKrHhEh+V9g7zjB
+bqSrviZMUFYe0skHTU9AmpagMhAMD//aAAgBAgABBQAnSNYVlmQ7NRa5Mdvm1iZVWWNdBHRwe5at
+Tj0KAtQnirjD5rWVy1+2voIJZ9z/2gAIAQMAAQUAxMdbJbRV239yynIJeY+i1O3xmMBK3AulR1rs
+10ya3YnHad1kxSChTWeupl9CKsT90/W37n//2gAIAQEAAQUAm78lx8Bv9ZupfbOT15LZ24UYKWcg
+zWbG5C4NdiWpN2ymw9uJZ2RZWka2249OO5Dd05ZmBMYJESVpFSEQzjyhs2cm1bdAsRJWs0GjGEza
+sr18+cjGu5gRRFOkLxnhaFp/M2ePkuI4vEBndGeM0LTunqXeDkP9bNYTGaEwmbHi05m4eOuZ+N7e
+JbVZTYYYxhhnFtttpHTd+3X8M/H4j4Jb4u/D8XsdP//aAAgBAgIGPwBOvidI6LTWXeRgYSQLSgYS
+hPl05YeAl2LMPON+S5MkN/fD/9oACAEDAgY/ADVXtpLNiVZSKeoTAoUVWvIwpa+31gVQTLVClsGj
+aFLi98UabwYSRJygN3bNc6/Qhv8AsnD/2gAIAQEBBj8AsaFACvxIuYTCofOOnqFsUUgLtQKY8bT4
+7LR4xBRqNcKi7BPTOawNTWdtimM5+q0oqIugRJ7TYDiaYK95Lj2Gy1KbBkYSCMnEcQu2iwh5mY4F
+PyE2LMSzMZJN5JOk5Q1Vi5ChQTzKIAy1OGMlY3i8wgwe2RkTgl2qxDudGFT9J5bsfJpmOeSQMhky
+AigdGc8uk5OqxwN1Nd89+RvQXwG9nV9j3mn97ebn81k4sCabAIx5mEx2jwGbW9k3+HTg32f7t9m9
+NeWlGuCaYBYgGJw6D0W2F2cOYbPd6rVKGlhqk94Xixp1VKOtxU8p+NrKUNRcFJTcSpIYtHTAjKmL
+2SI/szjz+Rhvi3w/1tj/AJmHpx4v1W+G+utre6p83eR+C6y4Pdk/yYvs47py/wD/2Q==" transform="matrix(161.4882 0 0 165.2537 -1831.3508 -1959.8796)">
+ </image>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+ </g>
+</g>
+</svg>
diff --git a/icons/help-filled.png b/icons/help-filled.png
new file mode 100755
index 0000000..68c9bde
--- /dev/null
+++ b/icons/help-filled.png
Binary files differ
diff --git a/icons/help-symbolic.png b/icons/help-symbolic.png
new file mode 100755
index 0000000..d34d296
--- /dev/null
+++ b/icons/help-symbolic.png
Binary files differ
diff --git a/icons/help.png b/icons/help.png
new file mode 100755
index 0000000..48351c8
--- /dev/null
+++ b/icons/help.png
Binary files differ
diff --git a/icons/home-filled.png b/icons/home-filled.png
new file mode 100755
index 0000000..1b60d9c
--- /dev/null
+++ b/icons/home-filled.png
Binary files differ
diff --git a/icons/home-symbolic.png b/icons/home-symbolic.png
new file mode 100755
index 0000000..245c1ed
--- /dev/null
+++ b/icons/home-symbolic.png
Binary files differ
diff --git a/icons/home.png b/icons/home.png
new file mode 100755
index 0000000..2ea5ba9
--- /dev/null
+++ b/icons/home.png
Binary files differ
diff --git a/icons/money-filled.png b/icons/money-filled.png
new file mode 100755
index 0000000..88ffac6
--- /dev/null
+++ b/icons/money-filled.png
Binary files differ
diff --git a/icons/money-symbolic.png b/icons/money-symbolic.png
new file mode 100755
index 0000000..0cdf491
--- /dev/null
+++ b/icons/money-symbolic.png
Binary files differ
diff --git a/icons/money.png b/icons/money.png
new file mode 100755
index 0000000..f54c90f
--- /dev/null
+++ b/icons/money.png
Binary files differ
diff --git a/icons/music.png b/icons/music.png
new file mode 100755
index 0000000..c75888a
--- /dev/null
+++ b/icons/music.png
Binary files differ
diff --git a/icons/open-book-filled.png b/icons/open-book-filled.png
new file mode 100755
index 0000000..767c991
--- /dev/null
+++ b/icons/open-book-filled.png
Binary files differ
diff --git a/icons/open-book-symbolic.png b/icons/open-book-symbolic.png
new file mode 100755
index 0000000..7513aa9
--- /dev/null
+++ b/icons/open-book-symbolic.png
Binary files differ
diff --git a/icons/open-book.png b/icons/open-book.png
new file mode 100755
index 0000000..5310c50
--- /dev/null
+++ b/icons/open-book.png
Binary files differ
diff --git a/icons/opus.svg b/icons/opus.svg
new file mode 100755
index 0000000..7764b8b
--- /dev/null
+++ b/icons/opus.svg
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.1" width="3600" height="2045.1">
+ <defs>
+ <linearGradient y1="1" x2="0" id="linearGradient1">
+ <stop style="stop-color:#8e8e8e"/>
+ <stop style="stop-color:#b5b5b5" offset="1"/>
+ </linearGradient>
+ <linearGradient x2="0" y2="1" id="linearGradient2">
+ <stop style="stop-color:#484848"/>
+ <stop style="stop-color:#000" offset="1"/>
+ </linearGradient>
+ </defs>
+ <path d="m 2573.55,139.96167 c -74.12,-61.7 -188.22,-103.01 -342.02,-124.08 l -113.02,359.34 c -2.44,13.19 -6.64,28.16 -13.15,45.41 -11.54,28.82 -25.43,52.57 -41.75,71.27 -16.34,18.73 -34.63,33.34 -54.89,44 -20.28,10.58 -42.32,17.9 -66.14,21.93 -23.83,4.01 -48.47,5.26 -73.93,3.78 -25.49,-1.48 -47.17,-4.95 -65.01,-10.42 -17.86,-5.46 -34.28,-14.52 -49.26,-27.2 -11.07,-12.45 -17.51,-28.77 -19.27,-49.02 -1.77,-20.24 3.14,-45.27 14.71,-75.09 10.36,-25.91 23.46,-48.51 39.34,-67.71 15.86,-19.21 34.42,-34.11 55.65,-44.67 20.27,-10.59 42.06,-17.68 65.39,-21.25 23.27,-3.55 49.14,-4.48 77.55,-2.83 23.52,1.39 45.42,4.85 65.74,10.48 9.64,2.64 18.08,6.13 25.42,10.33 l 86.76,-275.91 c -21.41,-2.02 -43.32,-3.79 -66.09,-5.1 -219.01,-12.79 -403.08,12.51 -552.29,75.76 -149.18,63.31 -248.65,157.15 -298.33,281.55 -14.91,38.14 -22.92,74.08 -24.1,107.85 -14.35,244.68 142.95,382.45 240.07,443.73 38.97,26.09 73.62,39.01 73.62,39.01 l 44.51,-142.24 13.16,-34.96 c 58.59,11.08 123.75,18.79 195.73,22.97 220.53,12.87 405.39,-12.32 554.58,-75.64 149.16,-63.25 247.8,-156.38 295.91,-279.42 48.08,-122.96 25.16,-223.58 -68.8,-301.82" style="fill:url(#linearGradient1)"/>
+ <path d="m 2695.31,1395 c -25.1,77.18 -82.3,138.07 -171.56,182.7 -89.25,44.621 -202.22,66.942 -338.9,66.942 -134.84,0 -232.92,-22.079 -294.3,-66.258 -61.36,-44.153 -79.04,-105.282 -52.99,-183.383 l 75.31,-232.91 256.62,0 -72.52,231.511 c -9.31,28.829 -12.32,52.79 -9.06,71.829 3.25,19.07 10.45,34.171 21.62,45.332 13.94,11.129 29.5,18.8 46.72,22.988 17.19,4.191 37.87,6.293 62.06,6.293 24.18,0 47.42,-2.551 69.74,-7.692 22.31,-5.089 42.75,-13.23 61.37,-24.378 18.58,-11.161 35.09,-26.024 49.51,-44.633 14.4,-18.59 26.26,-41.86 35.57,-69.739 l 75.31,-231.511 256.63,0 -71.13,232.91" style="fill:url(#linearGradient2)"/>
+ <path d="m 607.93,1405.4437 c -9.309,29.77 -20.696,52.996 -34.168,69.738 -13.492,16.739 -30.465,31.16 -50.907,43.231 -17.679,11.16 -37.652,18.828 -59.964,23.019 -22.317,4.192 -44.629,6.27 -66.957,6.27 -26.969,0 -49.993,-2.309 -69.036,-6.969 -19.07,-4.652 -34.168,-12.562 -45.332,-23.711 -12.097,-11.16 -19.054,-26.262 -20.921,-45.328 -1.875,-19.043 1.394,-41.141 9.769,-66.25 9.293,-28.801 21.613,-52.754 36.965,-71.832 15.336,-19.039 32.293,-34.172 50.902,-45.328 21.383,-11.152 42.063,-18.82 62.067,-23.012 19.988,-4.191 42.062,-6.269 66.254,-6.269 24.16,0 46.027,2.57 65.546,7.668 19.528,5.121 34.864,13.25 46.028,24.402 11.148,11.168 17.886,26.059 20.215,44.629 2.308,18.609 -1.172,41.859 -10.461,69.742 z m 260.816,-1.402 c 25.102,-77.16 7.426,-138.071 -53.008,-182.7 -60.445,-44.628 -158.996,-66.949 -295.676,-66.949 -134.832,0 -246.855,22.098 -336.113,66.25 -89.277,44.168 -146.933,105.309 -172.953,183.399 -25.102,77.199 -7.2148,137.859 53.695,182.011 60.895,44.18 159.219,66.258 294.98,66.258 135.754,0 248.258,-22.078 337.531,-66.258 89.262,-44.152 146.434,-104.812 171.543,-182.011" style="fill:url(#linearGradient2)"/>
+ <path d="m 3101.4,1268.0727 c 29.27,-6.992 90.41,-10.461 183.39,-10.461 48.34,0 95.06,4.871 140.18,14.648 45.07,9.75 90.41,22.09 135.97,36.961 l 39.06,-118.558 c -26.98,-7.442 -66.25,-14.871 -117.86,-22.313 -51.59,-7.437 -106.7,-11.156 -165.26,-11.156 -175.75,0 -304.05,15.117 -384.94,45.328 -80.89,30.219 -128.79,68.11 -143.66,113.66 -11.15,34.41 -3.48,63.461 23.02,87.168 26.51,23.711 73.22,41.153 140.16,52.293 25.11,4.668 66.25,8.379 123.43,11.18 57.18,2.789 94.6,5.559 112.28,8.359 37.17,3.731 62.05,8.36 74.62,13.95 12.54,5.582 16.95,13.941 13.24,25.109 -4.66,13.031 -19.76,22.793 -45.33,29.281 -25.59,6.52 -63,9.762 -112.26,9.762 -7.7,0 -15.13,-0.031 -22.42,-0.07 -18.46,-1 -38.57,-2.723 -57.91,-4.75 -20.6,-2.204 -41.18,-4.864 -61.61,-7.954 -40.9,-6.199 -81.32,-14.187 -120.58,-24.398 -39.21,-10.219 -77.34,-22.66 -112.6,-38.129 -4.74,-2.082 -9.31,-4.332 -13.93,-6.543 -24.76,39.781 -59.05,74.512 -102.7,103.961 22.59,10.852 45.39,19.762 68.07,27.422 45.2,15.059 90.34,25.199 135.25,32.66 44.94,7.41 89.7,12.027 134.31,14.719 22.31,1.32 44.6,2.14 66.91,2.48 19.67,0.262 38.82,0.192 59.02,-0.449 122.16,-0.73 223.18,-15.312 302.94,-43.859 81.8,-29.293 130.62,-68.102 146.44,-116.453 11.16,-33.481 4.41,-61.368 -20.22,-83.688 -24.66,-22.312 -68.13,-38.57 -130.4,-48.82 -28.83,-3.711 -57.68,-7.18 -86.47,-10.449 -28.84,-3.25 -55.33,-6.282 -79.51,-9.071 -95.77,-6.5 -149.24,-12.551 -160.39,-18.133 -11.16,-5.578 -14.88,-13.937 -11.16,-25.109 4.65,-12.078 21.62,-21.617 50.92,-28.578" style="fill:url(#linearGradient2)"/>
+ <path d="m 1728.38,1222.0417 c -60.91,-44.149 -159.23,-66.25 -294.98,-66.25 -135.77,0 -248.26,22.101 -337.52,66.25 -89.25,44.172 -144,104.152 -169.103,181.308 l -127.976,395.391 c -52.606,176.312 175.261,246.121 175.261,246.121 l 82.358,-267.18 c 5.92,-19.832 11.92,-39.64 17.81,-59.492 l 16.86,-55.308 c 6.03,-18.321 12.06,-36.622 18.49,-54.809 l 59.72,-163.109 14.29,-37.18 c 0.51,-1.723 0.99,-3.391 1.55,-5.133 8.36,-25.09 19.53,-47.18 33.47,-66.238 13.95,-19.051 30.69,-34.172 50.21,-45.34 18.59,-11.152 38.82,-19.039 60.67,-23.711 21.83,-4.641 46.25,-6.961 73.22,-6.961 22.31,0 43.25,2.082 62.77,6.27 19.52,4.191 34.38,11.863 44.63,23.011 13.01,12.09 20.68,26.5 23.01,43.231 2.3,16.75 -1.18,39.988 -10.46,69.738 -9.31,27.902 -21.17,51.16 -35.57,69.731 -14.42,18.628 -30.91,33.48 -49.51,44.64 -18.61,11.149 -39.04,19.309 -61.36,24.41 -22.31,5.11 -45.58,7.66 -69.73,7.66 -24.2,0 -44.87,-2.082 -62.07,-6.269 -17.21,-4.191 -33.26,-11.852 -48.13,-23.02 -1.12,-1.121 -2,-2.472 -3.04,-3.66 l -36.74,106.578 c -2.06,6.141 -4.03,12.282 -6.01,18.422 34.79,7.078 75.07,11.301 121.11,12.559 136.68,0 249.65,-22.309 338.93,-66.942 89.25,-44.636 146.43,-105.519 171.54,-182.718 25.11,-77.16 7.18,-137.828 -53.7,-182" style="fill:url(#linearGradient2)"/>
+</svg> \ No newline at end of file
diff --git a/icons/pause-filled.png b/icons/pause-filled.png
new file mode 100755
index 0000000..01c3a52
--- /dev/null
+++ b/icons/pause-filled.png
Binary files differ
diff --git a/icons/pause-symbolic.png b/icons/pause-symbolic.png
new file mode 100755
index 0000000..99b9d7e
--- /dev/null
+++ b/icons/pause-symbolic.png
Binary files differ
diff --git a/icons/pip.png b/icons/pip.png
new file mode 100755
index 0000000..3f9a6bf
--- /dev/null
+++ b/icons/pip.png
Binary files differ
diff --git a/icons/play-filled.png b/icons/play-filled.png
new file mode 100755
index 0000000..823cf38
--- /dev/null
+++ b/icons/play-filled.png
Binary files differ
diff --git a/icons/play-symbolic.png b/icons/play-symbolic.png
new file mode 100755
index 0000000..289f629
--- /dev/null
+++ b/icons/play-symbolic.png
Binary files differ
diff --git a/icons/radio-filled.png b/icons/radio-filled.png
new file mode 100755
index 0000000..b952384
--- /dev/null
+++ b/icons/radio-filled.png
Binary files differ
diff --git a/icons/radio-symbolic.png b/icons/radio-symbolic.png
new file mode 100755
index 0000000..5003c35
--- /dev/null
+++ b/icons/radio-symbolic.png
Binary files differ
diff --git a/icons/radio.png b/icons/radio.png
new file mode 100755
index 0000000..6891474
--- /dev/null
+++ b/icons/radio.png
Binary files differ
diff --git a/icons/settings-filled.png b/icons/settings-filled.png
new file mode 100755
index 0000000..f9aeffe
--- /dev/null
+++ b/icons/settings-filled.png
Binary files differ
diff --git a/icons/settings-symbolic.png b/icons/settings-symbolic.png
new file mode 100755
index 0000000..fe7a7e7
--- /dev/null
+++ b/icons/settings-symbolic.png
Binary files differ
diff --git a/icons/settings.png b/icons/settings.png
new file mode 100755
index 0000000..da4dd81
--- /dev/null
+++ b/icons/settings.png
Binary files differ
diff --git a/icons/share-filled.png b/icons/share-filled.png
new file mode 100755
index 0000000..956d7d6
--- /dev/null
+++ b/icons/share-filled.png
Binary files differ
diff --git a/icons/share-symbolic.png b/icons/share-symbolic.png
new file mode 100755
index 0000000..dd273e4
--- /dev/null
+++ b/icons/share-symbolic.png
Binary files differ
diff --git a/icons/share.png b/icons/share.png
new file mode 100755
index 0000000..66b2f45
--- /dev/null
+++ b/icons/share.png
Binary files differ
diff --git a/icons/solve-filled.png b/icons/solve-filled.png
new file mode 100755
index 0000000..e5fcbbb
--- /dev/null
+++ b/icons/solve-filled.png
Binary files differ
diff --git a/icons/solve-symbolic.png b/icons/solve-symbolic.png
new file mode 100755
index 0000000..eb94636
--- /dev/null
+++ b/icons/solve-symbolic.png
Binary files differ
diff --git a/icons/solve.png b/icons/solve.png
new file mode 100755
index 0000000..e55fd0a
--- /dev/null
+++ b/icons/solve.png
Binary files differ
diff --git a/icons/speaker.png b/icons/speaker.png
new file mode 100755
index 0000000..0d297ea
--- /dev/null
+++ b/icons/speaker.png
Binary files differ
diff --git a/icons/window-close.png b/icons/window-close.png
new file mode 100755
index 0000000..648e661
--- /dev/null
+++ b/icons/window-close.png
Binary files differ
diff --git a/icons/window-maximize.png b/icons/window-maximize.png
new file mode 100755
index 0000000..da48657
--- /dev/null
+++ b/icons/window-maximize.png
Binary files differ
diff --git a/icons/window-minimize.png b/icons/window-minimize.png
new file mode 100755
index 0000000..8a4716e
--- /dev/null
+++ b/icons/window-minimize.png
Binary files differ
diff --git a/icons/window-reduce.png b/icons/window-reduce.png
new file mode 100755
index 0000000..8093d6e
--- /dev/null
+++ b/icons/window-reduce.png
Binary files differ
diff --git a/intro.jpg b/intro.jpg
new file mode 100644
index 0000000..0f13c73
--- /dev/null
+++ b/intro.jpg
Binary files differ
diff --git a/intro.psd b/intro.psd
new file mode 100644
index 0000000..f9b50ac
--- /dev/null
+++ b/intro.psd
Binary files differ
diff --git a/js/home.js b/js/home.js
new file mode 100755
index 0000000..d875860
--- /dev/null
+++ b/js/home.js
@@ -0,0 +1,12 @@
+setInterval(() => {
+ window.fetch("/app/radio/song.php").then((raw) => {
+ raw.text().then((text) => {
+ document.getElementById('radio-now').innerText = text;
+ })
+ })
+ window.fetch("/app/radio/next.php").then((raw) => {
+ raw.text().then((text) => {
+ document.getElementById('radio-next').innerText = text;
+ })
+ })
+}, 2000) \ No newline at end of file
diff --git a/js/iframe.js b/js/iframe.js
new file mode 100755
index 0000000..a031872
--- /dev/null
+++ b/js/iframe.js
@@ -0,0 +1,48 @@
+function iframeURLChange(iframe, callback) {
+ var unloadHandler = function () {
+ setTimeout(function () {
+ callback(iframe.contentWindow.location.href);
+ }, 0);
+ };
+
+ function attachUnload() {
+ iframe.contentWindow.removeEventListener("pagehide", unloadHandler);
+ iframe.contentWindow.addEventListener("pagehide", unloadHandler);
+ iframe.contentWindow.removeEventListener("unload", unloadHandler);
+ iframe.contentWindow.addEventListener("unload", unloadHandler);
+ }
+
+ iframe.addEventListener("load", attachUnload);
+ attachUnload();
+}
+
+Array.from(document.getElementsByTagName("iframe")).forEach((par) => {
+ iframeURLChange(par, function (newURL) {
+ $(".loader").fadeIn(200);
+ });
+})
+
+function unload() {
+ $(".loader").fadeIn(200);
+}
+
+Array.from(document.getElementsByTagName("iframe")).forEach((par) => {
+ par.onbeforeunload = unload
+})
+
+function loaded () {
+ $(".loader").fadeOut(200);
+
+ setTimeout(() => {
+ $(".loader").fadeOut(200);
+ }, 300)
+
+ setTimeout(() => {
+ $(".loader").fadeOut(200);
+ }, 1500);
+}
+
+Array.from(document.getElementsByTagName("iframe")).forEach((par) => {
+ par.onload = loaded;
+ par.onabort = loaded;
+}) \ No newline at end of file
diff --git a/js/loading.js b/js/loading.js
new file mode 100755
index 0000000..b3970de
--- /dev/null
+++ b/js/loading.js
@@ -0,0 +1,32 @@
+document.onreadystatechange = function(e) {
+ if (document.readyState == "interactive") {
+ var all = document.getElementsByTagName("*");
+ for (var i = 0, max = all.length; i < max; i++) {
+ set_ele(all[i]);
+ }
+ }
+}
+
+function check_element(ele) {
+ var all = document.getElementsByTagName("*");
+ var totalele = all.length;
+ var per_inc = 100 / all.length;
+
+ if ($(ele).on()) {
+ var prog_width = per_inc + Number(document.getElementById("progress_width").value);
+ document.getElementById("progress_width").value = prog_width;
+ $("#bar1").animate({
+ width: prog_width + "%"
+ }, 10, function() {
+ if (document.getElementById("bar1").style.width === "100%") {
+ $(".progress").fadeOut("slow");
+ }
+ });
+ } else {
+ set_ele(ele);
+ }
+}
+
+function set_ele(set_element) {
+ check_element(set_element);
+} \ No newline at end of file
diff --git a/js/navigation.js b/js/navigation.js
new file mode 100755
index 0000000..b4d1dbe
--- /dev/null
+++ b/js/navigation.js
@@ -0,0 +1,110 @@
+window.addEventListener('load', () => {
+ document.getElementById('loading').style.display = "none";
+})
+
+function setImageSource(image, source) {
+ if (image.src !== source) {
+ image.src = source;
+ }
+}
+
+doCheckForActiveItem = true;
+
+Array.from(document.getElementsByClassName("tab")).forEach((par) => {
+ item = par.children[0];
+ if (typeof item.getAttribute("data-image-hover") === "string") {
+ item.setAttribute("data-image-normal", item.src)
+ par.addEventListener('mouseenter', (e) => {
+ doCheckForActiveItem = false;
+
+ if (e.target.classList.contains("tab-active")) {
+ item = e.target.children[0];
+ item.style.opacity = ".75";
+ } else {
+ item = e.target.children[0];
+ setImageSource(item, item.getAttribute("data-image-hover"));
+ }
+ })
+ par.addEventListener('mouseleave', (e) => {
+ doCheckForActiveItem = true;
+
+ if (e.target.classList.contains("tab-active")) {
+ item = e.target.children[0];
+ item.style.opacity = "1";
+ } else {
+ item = e.target.children[0];
+ setImageSource(item, item.getAttribute("data-image-normal"));
+ }
+ })
+ }
+})
+
+setInterval(() => {
+ Array.from(document.getElementsByClassName("tab")).forEach((par) => {
+ if (!doCheckForActiveItem) { return; }
+ item = par.children[0];
+ if (par.classList.contains("tab-active")) {
+ setImageSource(item, item.getAttribute("data-image-active"));
+ } else {
+ setImageSource(item, item.getAttribute("data-image-normal"));
+ }
+ })
+}, 100)
+
+function openTab(tab) {
+ Array.from(document.getElementsByClassName("tab")).forEach((par) => {
+ if (par.classList.contains("tab-active")) {
+ par.classList.remove("tab-active");
+ }
+ })
+ document.getElementById('tab-' + tab).classList.add("tab-active");
+ doCheckForActiveItem = true;
+}
+
+function openPane(pane) {
+ Array.from(document.getElementsByTagName("iframe")).forEach((par) => {
+ par.src = "about:blank";
+ })
+ Array.from(document.getElementsByClassName("pane")).forEach((par) => {
+ $("#" + par.id).fadeOut(200);
+ })
+ $("#pane-" + pane).fadeIn(200);
+ $(".loader").fadeIn(200);
+ switch (pane) {
+ case "radio":
+ document.getElementById('frame-' + pane).src = "/app/radio"
+ break;
+ case "money":
+ document.getElementById('frame-' + pane).src = "/app/money"
+ break;
+ case "contacts":
+ document.getElementById('frame-' + pane).src = "/app/contacts"
+ break;
+ case "home":
+ document.getElementById('frame-' + pane).src = "/app/home"
+ break;
+ case "space":
+ if (navigator.userAgent.includes("+Familine/")) {
+ $(".loader").fadeOut(200);
+ document.getElementById('frame-' + pane).loadURL("https://chat.familine.minteck.org");
+ document.getElementById('frame-' + pane).setZoomFactor(0.9);
+ break;
+ } else {
+ document.getElementById('frame-' + pane).src = "/app/space"
+ break;
+ }
+ case "cinema":
+ document.getElementById('frame-' + pane).src = "https://cinema.familine.minteck.org"
+ break;
+ case "share":
+ document.getElementById('frame-' + pane).src = "https://share.familine.minteck.org"
+ break;
+ case "help":
+ document.getElementById('frame-' + pane).src = "/app/help"
+ break;
+ }
+}
+
+window.addEventListener('load', () => {
+ try { openPane('home'); } catch (e) {}
+}) \ No newline at end of file
diff --git a/js/statusbar.js b/js/statusbar.js
new file mode 100755
index 0000000..210653e
--- /dev/null
+++ b/js/statusbar.js
@@ -0,0 +1,4 @@
+window.addEventListener("load", () => {
+ window.fetch("/statusbar.php").then((a) => {a.text().then((b) => {document.body.innerHTML=document.body.innerHTML+b;document.getElementById("statusbar").classList.add("desktop");})});
+ $(".progress").fadeOut("slow");
+}) \ No newline at end of file
diff --git a/me/index.php b/me/index.php
new file mode 100755
index 0000000..b6d2b06
--- /dev/null
+++ b/me/index.php
@@ -0,0 +1,6 @@
+<?php
+
+require_once "/mnt/familine/app/session.php";
+
+header("Location: https://account.familine.minteck.org/hub/api/rest/avatar/$_PROFILE[id]?dpr=2&size=64");
+die(); \ No newline at end of file
diff --git a/statusbar.php b/statusbar.php
new file mode 100755
index 0000000..42cef9d
--- /dev/null
+++ b/statusbar.php
@@ -0,0 +1,194 @@
+<?php
+
+global $_CONFIG;
+$_CONFIG = json_decode(file_get_contents("/mnt/familine/private/FamilineConfig.json"), true);
+
+if (isset($_COOKIE['FL_SESSION_TOKEN'])) {
+ if (file_exists("/mnt/familine/private/tokens/" . str_replace(".", "", str_replace("/", "", $_COOKIE['FL_SESSION_TOKEN'])))) {
+ $_PROFILE = json_decode(file_get_contents("/mnt/familine/private/tokens/" . str_replace(".", "", str_replace("/", "", $_COOKIE['FL_SESSION_TOKEN']))), true);
+
+ if (isset($_PROFILE['familine'])) {
+ header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));
+ die();
+ }
+
+ $_USER = $_PROFILE['login'];
+ $_SUID = $_PROFILE['login'];
+ $_FULLNAME = $_PROFILE['name'];
+ } else {
+ header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));
+ die();
+ }
+} else {
+ header("Location: https://" . $_CONFIG["Global"]["domain"] . "/login/?r=" . urlencode("https://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));
+ die();
+}
+
+if (isset($_PROFILE["projectRoles"]) && is_array($_PROFILE["projectRoles"]) && isset($_PROFILE["projectRoles"][0]) && is_array($_PROFILE["projectRoles"][0]) && isset($_PROFILE["projectRoles"][0]["role"]) && is_array($_PROFILE["projectRoles"][0]["role"]) && isset($_PROFILE["projectRoles"][0]["role"]["key"]) && is_string($_PROFILE["projectRoles"][0]["role"]["key"]) && $_PROFILE["projectRoles"][0]["role"]["key"] === "system-admin") {
+ $_ADMIN = true;
+} else {
+ $_ADMIN = false;
+}
+
+?>
+
+<!DOCTYPE html>
+<html>
+<head>
+ <title>frame</title>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <link rel="icon" href="/favicon.svg">
+ <link rel="stylesheet" href="/styles.css">
+</head>
+
+<body>
+ <style>
+ /* Statusbar */
+ #statusbar {
+ background: whitesmoke;
+ padding: 8px 32px;
+ font-size: 14px;
+ z-index: 99;
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ color: black;
+ }
+
+ #statusbar-tag {
+ opacity: .5;
+ }
+
+ .logo:hover {
+ background: rgba(0, 0, 0, .25);
+ }
+
+ .logo:active {
+ background: rgba(0, 0, 0, .5);
+ }
+
+ .logo {
+ cursor: pointer;
+ color: black;
+ }
+
+ .account:hover {
+ background: rgba(0, 0, 0, .25);
+ }
+
+ .account:active {
+ background: rgba(0, 0, 0, .5);
+ }
+
+ .account {
+ cursor: pointer;
+ color: black;
+ }
+
+ @media (prefers-color-scheme: dark) {
+ .account {
+ color: white;
+ }
+
+ .logo {
+ color: white;
+ }
+ }
+
+ @media (max-width: 800px) {
+ #apps-desktop {
+ display: none;
+ }
+
+ #statusbar {
+ text-align: center;
+ }
+ }
+
+ @media (max-width: 1100px) {
+ #copyright, #user-name {
+ display: none;
+ }
+ }
+
+ .statusbar-drag-region {
+ -webkit-app-region: drag;
+ }
+
+ #statusbar-drag-region-01 {
+ left: 348px;
+ position: fixed;
+ top: 0;
+ /*background: rgba(255, 0, 0, 0.5);*/
+ height: 36px;
+ right: 70px;
+ }
+
+ #statusbar-drag-region-02 {
+ left: 0;
+ position: fixed;
+ top: 0;
+ /*background: rgba(255, 0, 0, 0.5);*/
+ height: 36px;
+ right: unset;
+ width: 32px;
+ }
+
+ #statusbar-drag-region-03 {
+ left: unset;
+ position: fixed;
+ top: 0;
+ /*background: rgba(255, 0, 0, 0.5);*/
+ height: 36px;
+ right: 0;
+ width: 32px;
+ }
+
+ #statusbar.desktop #statusbar-drag-region-01 {
+ left: 118px;
+ }
+
+ @media (min-width: 1101px) {
+ #statusbar-drag-region-01 {
+ right: 154px;
+ }
+ }
+ </style>
+ <div id="statusbar">
+ <div class="statusbar-drag-region" id="statusbar-drag-region-01"></div>
+ <div class="statusbar-drag-region" id="statusbar-drag-region-02"></div>
+ <div class="statusbar-drag-region" id="statusbar-drag-region-03"></div>
+ <a title="Accueil de Familine" href="https://app.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent"><span class="logo" style="display: inline-block;top: 0;position: relative;padding: 8px 7px 7px 7px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/favicon.svg" style="width: 16px;vertical-align: middle;position: relative;top: -2px;"> Familine</span></a>
+ <span id="apps-desktop" <?= $_SERVER['HTTP_REFERER'] === "https://app." . $_CONFIG["Global"]["domain"] . "/" ? "style=\"display: none;\"" : "" ?>><span style="opacity: .25;">|</span><a style="text-decoration: none;" title="Familine Pages" href="https://docs.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-docs.svg" style="width: 20px;vertical-align: middle;"></span></a><a style="text-decoration: none;" title="Familine Aide" href="https://support.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-help.svg" style="width: 20px;vertical-align: middle;"></span></a><a style="text-decoration: none;" title="Familine Média" href="https://media.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-media.svg" style="width: 20px;vertical-align: middle;"></span></a><!--<a style="text-decoration: none;" title="Familine Planning" href="https://planning.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-planning.svg" style="width: 20px;vertical-align: middle;"></span></a>--><a style="text-decoration: none;" title="Familine Généalogie" href="https://genealogy.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-recall.svg" style="width: 20px;vertical-align: middle;"></span></a><a style="text-decoration: none;" title="Familine Partage" href="https://share.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-share.svg" style="width: 20px;vertical-align: middle;"></span></a><a style="text-decoration: none;" title="Familine Discussions" href="https://chat.<?= $_CONFIG["Global"]["domain"] ?>" target="_parent">
+ <span class="logo" style="display: inline-block;top: -2px;position: relative;padding: 6px 2px 7px 2px;margin: -11px 0;"><img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/icns/familine-you.svg" style="width: 20px;vertical-align: middle;"></span></a>
+ </span>
+ <div id="user">
+ <a title="Mon compte" href="https://auth.<?= $_CONFIG["Global"]["domain"] ?>/auth/realms/Familine/account" target="_parent"><span class="account" style="display: inline-block;top: 0;position: relative;padding: 8px 7px 7px 7px;margin: -11px 0;">
+ <span id="user-name" style="position: relative;margin-left:5px;top: 2.5px;right: 5px;"><?= $_FULLNAME ?></span>
+ <img src="https://<?= $_CONFIG["Global"]["cdn"] ?>/me" alt="" style="width:24px;border-radius:999px;vertical-align: middle;position:relative;top: 2px;">
+ </span></a>
+ </div>
+ </div>
+
+ <script>
+ window.addEventListener('load', () => {
+ if (navigator.userAgent.includes("+FL4D")) {
+ console.log("Detected desktop app");
+ document.getElementsByClassName("account")[0].parentElement.onclick = (e) => {
+ e.preventDefault();
+ open(document.getElementsByClassName("account")[0].parentElement.href);
+ return false;
+ };
+ }
+ })
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/styles.css b/styles.css
new file mode 100755
index 0000000..f06d321
--- /dev/null
+++ b/styles.css
@@ -0,0 +1,337 @@
+/*
+ * MIT License
+ *
+ * Copyright (c) 2022- Minteck
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ *
+ */
+
+/* Dark Theme */
+@import "../../dark.css";
+
+@font-face {
+ font-family: "Nunito";
+ src: url("/fonts/Nunito-VariableFont_wght.ttf");
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: "Nunito";
+ src: url("/fonts/Nunito-Italic-VariableFont_wght.ttf");
+ font-weight: 125 950;
+ font-stretch: 75% 125%;
+ font-style: italic;
+}
+
+* {
+ font-family: "Nunito", sans-serif !important;
+}
+
+html, body {
+ margin: 0;
+ padding: 0;
+}
+
+#copyright {
+ float: right;
+ vertical-align: middle;
+ display: inline-block;
+ position: fixed;
+ top: 8px;
+ opacity: .5;
+ right: 32px;
+}
+
+#user {
+ float: right;
+ vertical-align: middle;
+ display: inline-block;
+ position: fixed;
+ top: 5px;
+ right: 32px;
+}
+
+/* Loader */
+#loading {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ bottom: 0;
+ z-index: 999999;
+ background: #222;
+ color: white;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+
+}
+
+.progress {
+ position: fixed;
+ left: 35%;
+ top: 65%;
+ height: 5px;
+ z-index: 99999999;
+ background-color: rgba(255, 255, 255, .25);
+ right: 35%;
+ border-radius: 1000px;
+}
+
+.bar {
+ background-color: rgba(255, 255, 255, .25);
+ width: 0%;
+ height: 5px;
+ border-radius: 1000px;
+}
+
+.percent {
+ position: absolute;
+ display: inline-block;
+ top: 3px;
+ left: 48%;
+}
+
+/* Tabs */
+#tabs {
+ background: whitesmoke;
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
+ width: 100vw;
+}
+
+#tabs img {
+ width: 36px;
+ vertical-align: middle;
+ filter: invert(0);
+ transition: width 200ms, filter 200ms;
+}
+
+#tabs .tab {
+ border-bottom: 1px solid;
+ border-bottom-color: transparent;
+ text-align: center;
+ margin: 8px 8px 0;
+ padding-bottom: 8px;
+ cursor: pointer;
+ height: 48px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ transition: border-bottom-color 200ms;
+}
+
+#tabs .tab.tab-active img {
+ width: 48px;
+}
+
+#tabs .tab.tab-active {
+ border-bottom-color: black;
+}
+
+#panes, .pane {
+ position: fixed;
+ top: 98px;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+
+.pane {
+ display: none;
+}
+
+/* IFrame */
+.loader {
+ background: rgba(255, 255, 255, .75);
+ top: 98px;
+ bottom: 0;
+ position: fixed;
+ left: 0;
+ right: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 999999;
+ cursor: wait;
+}
+
+.loader img {
+ height: 96px;
+ width: 96px;
+}
+
+.frame {
+ border: none;
+ width: 100%;
+ height: 100%;
+}
+
+/* Home */
+.home-grid {
+ display: grid;
+ grid-template-columns: 96px 1fr;
+ grid-column-gap: 10px;
+}
+
+.home-grid > * {
+ display: flex;
+ align-items: center;
+}
+
+/* Bootstrap Fixes */
+.dropdown-item {
+ cursor: pointer;
+}
+
+.list-group {
+ margin-bottom: 10px !important;
+}
+
+/* Responsiveness */
+@media (max-width: 550px) {
+ #copyright {
+ display: none;
+ }
+}
+
+#explore {
+ text-align: center;
+ height: max-content;
+ margin-top: 32px;
+ padding-top: 25vh;
+ padding-bottom: 5vh;
+ background-color: rgba(0, 0, 0, .5);
+}
+
+#explore-outer {
+ background-image: url("/intro.jpg");
+ background-size: cover;
+ background-position: center;
+ background-attachment: fixed;
+}
+
+#explore-grid {
+ margin-left: auto;
+ margin-right: auto;
+ width: max-content;
+ display: grid;
+ grid-template-columns: 120px 120px 120px 120px 120px 120px 120px 120px 120px;
+}
+
+#explore-grid.admin {
+ grid-template-columns: 120px 120px 120px 120px 120px 120px 120px 120px 120px 120px;
+}
+
+@media (max-width: 800px) {
+ .explore-description {
+ display: none !important;
+ }
+
+ #explore-grid {
+ display: grid;
+ grid-template-columns: 120px 120px;
+ }
+
+ #explore-grid.admin {
+ grid-template-columns: 120px 120px 120px;
+ }
+}
+
+.explore-btn {
+ color: white;
+ border-radius: 5px;
+ padding: 5px;
+ text-align: left;
+ display: block;
+ text-decoration: none;
+ border: 1px solid transparent;
+}
+
+.explore-btn:hover {
+ background: rgba(255, 255, 255, .25);
+ border: 1px solid gray;
+ backdrop-filter: blur(5px);
+ -webkit-backdrop-filter: blur(5px);
+}
+
+.explore-btn:active, .explore-btn:focus {
+ background: rgba(255, 255, 255, .5);
+ border: 1px solid white;
+ -webkit-backdrop-filter: blur(5px);
+}
+
+.explore-btn {
+ color: white !important;
+ text-decoration: none !important;
+}
+
+.explore-btn:hover {
+ background: rgba(0, 0, 0, 0.25);
+ box-shadow: 1px 5px 12px rgba(0, 0, 0, 0.25);
+}
+
+.explore-btn:active, .explore-btn:focus {
+ background: rgba(0, 0, 0, .5);
+ box-shadow: 1px 5px 12px rgba(0, 0, 0, .5);
+}
+
+@media (prefers-color-scheme: light) {
+ #data-loader-img {
+ filter: none !important;
+ }
+}
+
+.explore-description {
+ color: white;
+ opacity: 0;
+ display: inline-block;
+ margin-left: 5px;
+}
+
+.explore-btn:hover .explore-description, .explore-btn:focus .explore-description, .explore-btn:active .explore-description {
+ opacity: .5 !important;
+}
+
+.jumbotron {
+ border: 1px solid #444;
+ background: #151515;
+ padding: 10px;
+}
+
+@media (prefers-color-scheme: light) {
+ .jumbotron {
+ border: 1px solid #ccc !important;
+ background: #eee !important;
+ padding: 10px !important;
+ }
+}
+
+.news-link {
+ color: inherit;
+ cursor: pointer;
+}
+
+.news-link:hover {
+ color: inherit;
+} \ No newline at end of file