11
11
< meta charset ="utf-8 ">
12
12
< title > Lynkos</ title >
13
13
14
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
15
+ <!-- <link rel="preload" as="style" href="/assets/stylesheets/css/mail.css" onload="this.onload=null;this.rel='stylesheet'"> -->
16
+
14
17
< link rel ="preload " as ="style " href ="/assets/stylesheets/css/preview.css " onload ="this.onload=null;this.rel='stylesheet' ">
15
18
< link rel ="preload " as ="style " href ="/assets/stylesheets/css/calculator.css " onload ="this.onload=null;this.rel='stylesheet' ">
16
- < link rel ="preload " as ="style " href ="/assets/stylesheets/css/mail.css " onload ="this.onload=null;this.rel='stylesheet' ">
17
19
< link rel ="preload " as ="style " href ="/assets/stylesheets/css/text-edit.css " onload ="this.onload=null;this.rel='stylesheet' ">
18
20
< link rel ="preload " as ="style " href ="/assets/stylesheets/css/notes.css " onload ="this.onload=null;this.rel='stylesheet' ">
19
21
< link rel ="preload " as ="style " href ="/assets/stylesheets/css/launchpad.css " onload ="this.onload=null;this.rel='stylesheet' ">
27
29
< noscript >
28
30
< link rel ="stylesheet " href ="/assets/stylesheets/css/preview.css ">
29
31
< link rel ="stylesheet " href ="/assets/stylesheets/css/calculator.css ">
30
- < link rel ="stylesheet " href ="/assets/stylesheets/css/mail.css ">
32
+
33
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
34
+ <!-- <link rel="stylesheet" href="/assets/stylesheets/css/mail.css"> -->
35
+
31
36
< link rel ="stylesheet " href ="/assets/stylesheets/css/text-edit.css ">
32
37
< link rel ="stylesheet " href ="/assets/stylesheets/css/notes.css ">
33
38
< link rel ="stylesheet " href ="/assets/stylesheets/css/launchpad.css ">
67
72
68
73
< link rel ="preload " as ="image " href ="/assets/img/apps/iterm.webp ">
69
74
< link rel ="preload " as ="image " href ="/assets/img/apps/launchpad.webp ">
70
- < link rel ="preload " as ="image " href ="/assets/img/apps/mail.webp ">
75
+
76
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
77
+ <!-- <link rel="preload" as="image" href="/assets/img/apps/mail.webp"> -->
78
+
71
79
< link rel ="preload " as ="image " href ="/assets/img/apps/notes.webp ">
72
80
< link rel ="preload " as ="image " href ="/assets/img/apps/safari.webp ">
73
81
< link rel ="preload " as ="image " href ="/assets/img/apps/text-edit.webp ">
901
909
</ div >
902
910
</ div >
903
911
904
- < form class ="gform " method ="post " action ="https://script.google.com/macros/s/AKfycbx8I8BI2KW2kkHmf4apq4o8qRW5Z7MqP_5kenyjCdWqL7tPJJ2JJdaLLDZvw12QedGB/exec ">
912
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
913
+ <!-- <form class="gform" method="post" action="https://script.google.com/macros/s/AKfycbx8I8BI2KW2kkHmf4apq4o8qRW5Z7MqP_5kenyjCdWqL7tPJJ2JJdaLLDZvw12QedGB/exec">
905
914
<div id="email" class="windows">
906
915
<div class="email-header handle">
907
916
<div class="email-header__op">
908
917
<span role="button" tabindex="0" class="email-header__op-icon email-header__op-icon--red cancel"></span>
909
918
<span role="button" tabindex="0" class="email-header__op-icon email-header__op-icon--yellow cancel"></span>
910
919
<span role="button" tabindex="0" class="email-header__op-icon email-header__op-icon--green cancel"></span>
911
920
</div>
921
+ <div id="cf-turnstile"></div>
912
922
<div class="g-recaptcha" data-theme="dark" data-callback="callback" data-sitekey="6Lcd6rIqAAAAAOabj0rba6jICI-HqlQr8A1uNSBt"></div>
913
923
<button id="send-btn" class="cancel" type="submit" onclick="google.script.run.processForm(this.parentNode.parentNode.parentNode)" title="Send message" disabled="disabled"><i alt="Paper plane icon" class="fa fa-paper-plane" aria-hidden="true"></i></button>
914
924
</div>
924
934
925
935
<textarea class="body" name="message" placeholder="Compose your message here, complete the captcha above, then click the paper plane button in the upper-right corner to send me your message. This window will automatically close once your message is sent, which may take a few seconds." required></textarea>
926
936
</div>
927
- </ form >
937
+ </form> -->
928
938
929
939
< div id ="notes " class ="windows ">
930
940
< div class ="body ">
@@ -3589,7 +3599,9 @@ <h3 class="heading">ChatGPT</h3>
3589
3599
< div class ="search "> < input type ="search " id ="launchInput " onkeyup ="filterLaunchpad() " placeholder ="Search " title ="Type in an app name "> </ div >
3590
3600
3591
3601
< nav id ="launchNav ">
3592
- < a role ="button " tabindex ="0 " class ="icon-mail launch " id ="mailLaunch "> < img src ="/assets/img/apps/mail.webp " draggable ="true " loading ="lazy " fetchpriority ="low " alt ="Mail "> Mail (WIP)</ a >
3602
+ <!-- Temporarily hide "Mail" app / Contact form while it's being fixed -->
3603
+ <!-- <a role="button" tabindex="0" class="icon-mail launch" id="mailLaunch"><img src="/assets/img/apps/mail.webp" draggable="true" loading="lazy" fetchpriority="low" alt="Mail"> Mail (WIP)</a> -->
3604
+
3593
3605
< a role ="button " tabindex ="0 " class ="icon-safari launch " id ="safariLaunch "> < img src ="/assets/img/apps/safari.webp " draggable ="true " loading ="lazy " fetchpriority ="low " alt ="Safari "> Safari</ a >
3594
3606
< a role ="button " tabindex ="0 " class ="icon-notes launch " id ="notesLaunch "> < img src ="/assets/img/apps/notes.webp " draggable ="true " loading ="lazy " fetchpriority ="low " alt ="Notes "> Notes</ a >
3595
3607
< a role ="button " tabindex ="0 " class ="icon-textedit launch " id ="textLaunch "> < img src ="/assets/img/apps/text-edit.webp " draggable ="true " loading ="lazy " fetchpriority ="low " alt ="TextEdit "> TextEdit</ a >
@@ -3650,13 +3662,24 @@ <h3 class="heading">ChatGPT</h3>
3650
3662
3651
3663
< div id ="dock ">
3652
3664
< div role ="tooltip " tabindex ="0 " id ="open-menu " class ="icon " aria-label ="Launchpad " data-microtip-position ="top "> < img src ="/assets/img/apps/launchpad.webp " draggable ="false " fetchpriority ="high " alt ="Launchpad "> </ div >
3653
- < div role ="tooltip " tabindex ="0 " id ="mailDockIcon " class ="icon " aria-label ="Mail (WIP) " data-microtip-position ="top "> < img src ="/assets/img/apps/mail.webp " draggable ="false " fetchpriority ="high " alt ="Mail "> </ div >
3665
+
3666
+ <!-- Temporarily hide "Mail" app / Contact form while it's being fixed -->
3667
+ <!-- <div role="tooltip" tabindex="0" id="mailDockIcon" class="icon" aria-label="Mail" data-microtip-position="top"><img src="/assets/img/apps/mail.webp" draggable="false" fetchpriority="high" alt="Mail"></div> -->
3668
+
3654
3669
< div role ="tooltip " tabindex ="0 " id ="safariDockIcon " class ="icon " aria-label ="Safari " data-microtip-position ="top "> < img src ="/assets/img/apps/safari.webp " draggable ="false " fetchpriority ="high " alt ="Safari "> </ div >
3655
3670
< div role ="tooltip " tabindex ="0 " id ="notesDockIcon " class ="icon " aria-label ="Notes " data-microtip-position ="top "> < img src ="/assets/img/apps/notes.webp " draggable ="false " fetchpriority ="high " alt ="Notes "> </ div >
3656
3671
< div role ="tooltip " tabindex ="0 " id ="textEditDockIcon " class ="icon " aria-label ="TextEdit " data-microtip-position ="top "> < img style ="height:4rem !important;image-rendering:smooth " src ="/assets/img/apps/text-edit.webp " draggable ="false " fetchpriority ="high " alt ="Notes "> </ div >
3657
3672
< div role ="tooltip " tabindex ="0 " id ="iTermDockIcon " class ="icon open " aria-label ="iTerm " data-microtip-position ="top "> < img src ="/assets/img/apps/iterm.webp " draggable ="false " fetchpriority ="high " alt ="iTerm "> </ div >
3658
3673
< div role ="tooltip " tabindex ="0 " id ="calcDockIcon " style ="display:none " class ="icon " aria-label ="Calculator " data-microtip-position ="top "> < img src ="/assets/img/apps/calc.webp " draggable ="false " loading ="lazy " fetchpriority ="low " alt ="Calculator "> </ div >
3659
3674
< div role ="tooltip " tabindex ="0 " id ="previewDockIcon " style ="display:none " class ="icon " aria-label ="Preview " data-microtip-position ="top "> < img src ="/assets/img/apps/preview.webp " draggable ="false " loading ="lazy " fetchpriority ="low " alt ="Preview "> </ div >
3675
+
3676
+ <!-- Temporarily replace "Mail" app (while it's being fixed) in dock with link to my blog... -->
3677
+ < div role ="tooltip " tabindex ="0 " id ="blogDockIcon " class ="icon " aria-label ="Blog " data-microtip-position ="top ">
3678
+ < a target ="_blank " href ="https://blog.lynkos.dev ">
3679
+ < img style ="width:95%;padding-left:.25rem " src ="/assets/img/favicons/favicon.svg " class ="icon " draggable ="false " fetchpriority ="high " alt ="Blog ">
3680
+ </ a >
3681
+ </ div >
3682
+
3660
3683
< div class ="dock-divider "> </ div >
3661
3684
< div role ="tooltip " tabindex ="0 " id ="trash-icon " class ="icon " aria-label ="Trash " data-microtip-position ="top "> < img id ="trash " src ="/assets/img/system/trash.webp " draggable ="false " fetchpriority ="high " alt ="Trash "> </ div >
3662
3685
</ div >
@@ -3678,11 +3701,16 @@ <h3 class="heading">ChatGPT</h3>
3678
3701
< script src ="/dist/utilities/timestamp.js "> </ script >
3679
3702
< script src ="/dist/components/notes.js " defer > </ script >
3680
3703
< script src ="/dist/components/text-edit.js " defer > </ script >
3681
- < script data-cfasync ="false " src ="/dist/components/email.js " defer > </ script >
3704
+
3705
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
3706
+ <!-- <script data-cfasync="false" src="/dist/components/email.js" defer></script> -->
3707
+
3682
3708
< script src ="/dist/components/preview.js " defer > </ script >
3683
3709
< script src ="/dist/components/calculator.js " defer > </ script >
3684
3710
< script src ="/dist/utilities/context-menu.js " defer > </ script >
3685
- < script >
3711
+
3712
+ <!-- TODO: Uncomment once "Mail" app is fixed -->
3713
+ <!-- <script>
3686
3714
// Make launchpad searchable
3687
3715
function filterLaunchpad() {
3688
3716
const input = document.getElementById("launchInput"),
@@ -3713,6 +3741,33 @@ <h3 class="heading">ChatGPT</h3>
3713
3741
let content = document.querySelector(`${item}-content`);
3714
3742
content.classList.toggle("hidden-content");
3715
3743
}
3716
- </ script >
3744
+
3745
+ // IIFE (creates isolated scope)
3746
+ (function() {
3747
+ // Reveal hidden elements once page loads to avoid FOUC
3748
+ function revealHiddenElements() {
3749
+ // Find all elements with the 'hidden' class
3750
+ const hiddenElements = document.querySelectorAll('.hidden');
3751
+
3752
+ // Convert NodeList to Array for better browser compatibility
3753
+ Array.from(hiddenElements).forEach(function(element, index) {
3754
+ // Add a slight stagger effect for visual appeal
3755
+ setTimeout(function() {
3756
+ element.classList.add('reveal');
3757
+ }, index * 50); // 50ms delay between each element
3758
+ });
3759
+ }
3760
+
3761
+ // Multiple trigger points for maximum reliability
3762
+ if (document.readyState === 'loading') {
3763
+ document.addEventListener('DOMContentLoaded', revealHiddenElements);
3764
+ } else { // Document is already loaded
3765
+ revealHiddenElements();
3766
+ }
3767
+
3768
+ // Safety net: reveal after 2.5 seconds regardless
3769
+ setTimeout(revealHiddenElements, 2500);
3770
+ })();
3771
+ </script> -->
3717
3772
</ body >
3718
3773
</ html >
0 commit comments