ao-studios-site 0.0.0-stage → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/index.html +662 -0
  2. package/package.json +11 -4
  3. package/README.md +0 -3
package/index.html ADDED
@@ -0,0 +1,662 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <script type="module">
5
+ import { initializeApp } from "https://www.gstatic.com/firebasejs/13.0.0/firebase-app.js";
6
+ import { getFirestore, doc, getDoc } from "https://www.gstatic.com/firebasejs/13.0.0/firebase-firestore.js";
7
+
8
+ const firebaseConfig = {
9
+ const firebaseConfig = {
10
+ apiKey: "AIzaSyAN3B8lFWRiuTazD2Quo3TksPEsWi3HFwU",
11
+ authDomain: "a-o-studios.firebaseapp.com",
12
+ projectId: "a-o-studios",
13
+ storageBucket: "a-o-studios.firebasestorage.app",
14
+ messagingSenderId: "100243979597",
15
+ appId: "1:100243979597:web:9626963207916d73fb8b04",
16
+ measurementId: "G-9N3JCY3VQ0"
17
+ };
18
+ };
19
+ const app = initializeApp(firebaseConfig);
20
+ const db = getFirestore(app);
21
+
22
+ function showLogin() {
23
+ document.querySelectorAll(".page").forEach((p) => p.classList.remove("active"));
24
+ document.getElementById("Password").classList.add("active");
25
+ document.querySelector("header").style.visibility = "hidden";
26
+ document.querySelectorAll("nav button").forEach((b) => (b.style.visibility = "hidden"));
27
+ }
28
+
29
+ function showSite() {
30
+ document.querySelectorAll(".page").forEach((p) => p.classList.remove("active"));
31
+ document.getElementById("home").classList.add("active");
32
+ document.querySelector("header").style.visibility = "visible";
33
+ document.querySelectorAll("nav button").forEach((b) => (b.style.visibility = "visible"));
34
+ }
35
+
36
+ // Turn text into a hash 🔐
37
+ async function sha256(text) {
38
+ const buf = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text));
39
+ return [...new Uint8Array(buf)].map((b) => b.toString(16).padStart(2, "0")).join("");
40
+ }
41
+
42
+ // Stays logged in for this tab 🧠
43
+ if (sessionStorage.getItem("ao-ok")) showSite();
44
+
45
+ window.check = async function () {
46
+ const input = document.getElementById("password").value;
47
+ const snap = await getDoc(doc(db, "settings", "access"));
48
+ const realHash = snap.data().code;
49
+
50
+ if ((await sha256(input)) === realHash) {
51
+ sessionStorage.setItem("ao-ok", "1");
52
+ showSite();
53
+ } else {
54
+ alert("Wrong password!");
55
+ }
56
+ };
57
+
58
+ window.signOutAuth = function () {
59
+ sessionStorage.removeItem("ao-ok");
60
+ showLogin();
61
+ };
62
+ </script>
63
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
64
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
65
+
66
+ <link
67
+ href="https://fonts.googleapis.com/css2?family=Clarity+City:ital,wght@0,100..900;1,100..900&display=swap"
68
+ rel="stylesheet"
69
+ />
70
+
71
+ <title>A&O Studios</title>
72
+
73
+ <style>
74
+ /* Our color palette */
75
+ :root {
76
+ --bg: #111116; /* page background (dark) */
77
+ --surface: #1b1a24; /* boxes & cards */
78
+ --surface-2: #282638; /* buttons */
79
+ --line: #454157; /* borders */
80
+ --accent: #a78bfa; /* our accent colo */
81
+ --accent-2: #c4b5fd; /* light purple (hover) */
82
+ --text: #f4f1ff; /* main text */
83
+ --muted: #aaa6bc; /* softer/paragraph text */
84
+ }
85
+
86
+ * {
87
+ font-family: "Clarity City", sans-serif;
88
+ box-sizing: border-box;
89
+ }
90
+ #Password {
91
+ position: fixed;
92
+ top: 50%;
93
+ left: 50%;
94
+ transform: translate(-50%, -50%);
95
+ width: min(420px, 90%);
96
+ min-height: 0;
97
+ max-height: 90vh;
98
+ overflow: auto;
99
+ text-align: center;
100
+ transition: opacity 0.25s ease, border-color 0.5s ease;
101
+ }
102
+
103
+ #Password .container {
104
+ align-items: center;
105
+ }
106
+ button {
107
+ background-color: #282638;
108
+ border: 1px solid transparent;
109
+ color: #aaa6bc;
110
+
111
+ padding: 9px 14px;
112
+ border-radius: 9px;
113
+
114
+ transition:
115
+ background 0.2s ease,
116
+ color 0.2s ease,
117
+ border-color 0.2s ease;
118
+ }
119
+
120
+ button:hover {
121
+ background: #c4b5fd;
122
+ color: #f4f1ff;
123
+ cursor: pointer;
124
+ }
125
+
126
+ .navigation {
127
+ display: flex;
128
+ align-items: center;
129
+ justify-content: space-between;
130
+ gap: 16px;
131
+ }
132
+
133
+ /* general */
134
+
135
+ body {
136
+ margin: 0;
137
+ font-family: Arial, sans-serif;
138
+ color: white;
139
+ background-color: #111116;
140
+ }
141
+
142
+ h1 {
143
+ margin-top: 8px;
144
+ margin-bottom: 8px;
145
+ }
146
+
147
+ p {
148
+ color: #aaa6bc;
149
+ }
150
+
151
+ /* Splash screen */
152
+
153
+ .intro {
154
+ position: fixed;
155
+ top: 0;
156
+ left: 0;
157
+
158
+ width: 100vw;
159
+ height: 100vh;
160
+
161
+ background-color: #111116;
162
+
163
+ z-index: 999999;
164
+
165
+ display: flex;
166
+ align-items: center;
167
+ justify-content: center;
168
+
169
+ opacity: 1;
170
+ visibility: visible;
171
+ pointer-events: all;
172
+
173
+ transition:
174
+ opacity 0.7s ease,
175
+ visibility 0.7s ease;
176
+ }
177
+
178
+ .logo-header {
179
+ margin: 0;
180
+ padding: 0;
181
+
182
+ color: #f4f1ff;
183
+ letter-spacing: 3px;
184
+ text-align: center;
185
+ }
186
+
187
+ .logo {
188
+ display: inline-block;
189
+
190
+ font-size: 50px;
191
+
192
+ opacity: 0;
193
+ transform: translateY(30px);
194
+
195
+ transition:
196
+ transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
197
+ opacity 0.5s ease;
198
+ }
199
+
200
+ .logo.active {
201
+ opacity: 1;
202
+ transform: translateY(0);
203
+ }
204
+
205
+ .logo.fade {
206
+ opacity: 0;
207
+ transform: translateY(-80px);
208
+ }
209
+
210
+ .intro.hide {
211
+ opacity: 0;
212
+ visibility: hidden;
213
+ pointer-events: none;
214
+ }
215
+
216
+ /* header */
217
+
218
+ header {
219
+ margin: 16px;
220
+ padding: 12px 20px;
221
+ text-align: center;
222
+ text-shadow: 0 0 2px white;
223
+ border-radius: 8px;
224
+ transition: border-color 0.5s ease;
225
+ border: 2px solid #454157;
226
+ background-color: #1b1a24;
227
+ visibility: hidden;
228
+ }
229
+
230
+ header:hover {
231
+ border-color: #a78bfa;
232
+ }
233
+
234
+ header h4 {
235
+ position: absolute;
236
+ left: 10%;
237
+ bottom: 1rem;
238
+ font-size: 1.6rem;
239
+ }
240
+
241
+ /* navigation */
242
+
243
+ nav button {
244
+ background-color: #282638;
245
+ border: 1px solid transparent;
246
+ visibility: hidden;
247
+ color: #aaa6bc;
248
+
249
+ padding: 9px 14px;
250
+ border-radius: 9px;
251
+
252
+ transition:
253
+ background 0.2s ease,
254
+ color 0.2s ease,
255
+ border-color 0.2s ease;
256
+ }
257
+
258
+ nav button:hover {
259
+ background: #c4b5fd;
260
+ color: #f4f1ff;
261
+ cursor: pointer;
262
+ }
263
+
264
+ nav button.active {
265
+ background: #282638;
266
+ color: #f4f1ff;
267
+ border-color: #454157;
268
+ }
269
+
270
+ /* main */
271
+
272
+ main {
273
+ width: 95%;
274
+ margin: 20px auto;
275
+ }
276
+
277
+ .page {
278
+ opacity: 0;
279
+ visibility: hidden;
280
+
281
+ position: absolute;
282
+
283
+ width: 90%;
284
+
285
+ box-sizing: border-box;
286
+
287
+ border: 2px solid #111116;
288
+
289
+ background-color: #1b1a24;
290
+
291
+ padding: 30px;
292
+ border-radius: 15px;
293
+
294
+ transform: translateY(10px);
295
+
296
+ transition:
297
+ opacity 0.25s ease,
298
+ transform 0.25s ease,
299
+ border-color 0.5s ease;
300
+ min-height: 80vh;
301
+ }
302
+
303
+ .page.active {
304
+ opacity: 1;
305
+ visibility: visible;
306
+ position: relative;
307
+ width: 100%;
308
+ transform: translateY(0);
309
+ border-color: #454157;
310
+ margin: 0;
311
+ }
312
+
313
+ .page:hover {
314
+ border-color: #a78bfa;
315
+ }
316
+
317
+ /* Password menu — centered! 🎯 */
318
+
319
+ #Password {
320
+ display: flex;
321
+ flex-direction: column;
322
+ align-items: center;
323
+ justify-content: center;
324
+ text-align: center;
325
+ }
326
+
327
+ #Password .container {
328
+ align-items: center;
329
+ width: 100%;
330
+ }
331
+
332
+ /* Html Emulator */
333
+ .container {
334
+ width: 100%;
335
+
336
+ display: flex;
337
+ flex-direction: column;
338
+ align-items: flex-start;
339
+ gap: 12px;
340
+ }
341
+
342
+ textarea {
343
+ width: 90%;
344
+ height: 150px;
345
+
346
+ padding: 8px;
347
+
348
+ border: 2px solid #1b1a24;
349
+ border-radius: 15px;
350
+
351
+ background-color: #111116;
352
+ color: #f4f1ff;
353
+
354
+ accent-color: #a78bfa;
355
+
356
+ resize: none;
357
+
358
+ transition: border-color 0.2s ease;
359
+ }
360
+
361
+ textarea:hover {
362
+ border-color: #282638;
363
+ }
364
+
365
+ textarea:focus {
366
+ outline: none;
367
+ border-color: #a78bfa;
368
+ }
369
+
370
+ .EmulateButton {
371
+ position: static;
372
+
373
+ margin: 0;
374
+
375
+ border-radius: 8px;
376
+
377
+ width: 80px;
378
+ height: 30px;
379
+
380
+ border: 2px solid #a78bfa;
381
+
382
+ background-color: #a78bfa;
383
+ color: #f4f1ff;
384
+
385
+ cursor: pointer;
386
+
387
+ transition:
388
+ background-color 0.2s ease,
389
+ box-shadow 0.2s ease;
390
+ }
391
+
392
+ .TobyButton {
393
+ background-color: #282638;
394
+ border-radius: 8px;
395
+
396
+ transition: all 0.2s ease;
397
+
398
+ color: #f4f1ff;
399
+
400
+ height: 6vh;
401
+ width: 12vh;
402
+ }
403
+
404
+ .TobyButton:hover {
405
+ cursor: pointer;
406
+ }
407
+ </style>
408
+ </head>
409
+
410
+ <body>
411
+ <!-- Splash screen -->
412
+
413
+ <div class="intro">
414
+ <h1 class="logo-header">
415
+ <span class="logo">A&O</span>
416
+ <span class="logo">Studios</span>
417
+ </h1>
418
+ </div>
419
+
420
+ <script>
421
+ const intro = document.querySelector(".intro");
422
+ const logoSpan = document.querySelectorAll(".logo");
423
+
424
+ window.addEventListener("load", () => {
425
+ // Wait before starting the logo animation
426
+ setTimeout(() => {
427
+ logoSpan.forEach((span, idx) => {
428
+ setTimeout(() => {
429
+ span.classList.add("active");
430
+ }, idx * 500);
431
+ });
432
+ }, 500);
433
+
434
+ // Start fading the logo out
435
+ setTimeout(() => {
436
+ logoSpan.forEach((span, idx) => {
437
+ setTimeout(() => {
438
+ span.classList.remove("active");
439
+ span.classList.add("fade");
440
+ }, idx * 150);
441
+ });
442
+ }, 3000);
443
+
444
+ // Remove the splash screen
445
+ setTimeout(() => {
446
+ intro.classList.add("hide");
447
+ }, 2000);
448
+ });
449
+ </script>
450
+ <section id="Password" class="page active">
451
+ <h2>Password</h2>
452
+ <div class="container">
453
+ <textarea id="password" placeholder="type password"></textarea>
454
+ <div>
455
+ <button onclick="check()">Enter</button>
456
+ </div>
457
+ </div>
458
+ </section>
459
+ <header>
460
+ <div class="navigation">
461
+ <h1>A&O Website</h1>
462
+
463
+ <nav>
464
+ <button onclick="showPage('home')">Home</button>
465
+ <button onclick="showPage('about')">Stuff</button>
466
+ <button onclick="showPage('projects')">Tools</button>
467
+ <button onclick="showPage('contact')">Settings</button>
468
+ <button onclick="showPage('Emulator')">Emulator</button>
469
+ </nav>
470
+ </div>
471
+ </header>
472
+ <main>
473
+ <!-- Html Emulator -->
474
+
475
+ <section id="Emulator" class="page">
476
+ <h1>HTML Runner</h1>
477
+
478
+ <div class="container">
479
+ <textarea id="code" placeholder="insert html. . ."></textarea>
480
+
481
+ <button class="EmulateButton" onclick="Newtab()">Emulate</button>
482
+ </div>
483
+ </section>
484
+
485
+ <!-- Home -->
486
+
487
+ <section id="home" class="page">
488
+ <h2>Welcome!</h2>
489
+
490
+ <p>Welcome you found our website!</p>
491
+
492
+ <p>helo</p>
493
+
494
+ <p>
495
+ About us: We are A&O studios and we are a coding development team that
496
+ created this website
497
+ </p>
498
+ </section>
499
+
500
+ <!-- About -->
501
+
502
+ <section id="about" class="page">
503
+ <h2>Stuff</h2>
504
+
505
+ <p>We will insert games below.</p>
506
+
507
+ <h3>We will add more games soon</h3>
508
+ <button onclick="Toby()">Toby Web</button>
509
+ <button onclick="Undertale()">Undertale</button>
510
+ <button onclick="Knight()">HollowKnight</button>
511
+ <button onclick="GD()">GeometryDash</button>
512
+ <button onclick="CC()">CookieClicker</button>
513
+ <script>
514
+ function Knight() {
515
+ const newWindow = window.open("about:blank", "_blank");
516
+ fetch(
517
+ "https://cdn.jsdelivr.net/gh/Axononymous/A-O-Studios@main/Games/Hollow_Knight.html",
518
+ )
519
+ .then((response) => response.text())
520
+ .then((Knight) => {
521
+ newWindow.document.open();
522
+ newWindow.document.write(Knight);
523
+ newWindow.document.close();
524
+ });
525
+ }
526
+
527
+
528
+
529
+ function GD() {
530
+ const newWindow = window.open("about:blank", "_blank");
531
+ fetch(
532
+ "https://cdn.jsdelivr.net/gh/Axononymous/A-O-Studios@main/Games/GDWEB___Stable_.html",
533
+ )
534
+ .then(response => response.text())
535
+ .then((GD) => {
536
+ newWindow.document.open();
537
+ newWindow.document.write(GD);
538
+ newWindow.document.close();
539
+ });
540
+ }
541
+ function CC() {
542
+ const newWindow = window.open("about:blank", "_blank");
543
+ fetch(
544
+ "https://cdn.jsdelivr.net/gh/Axononymous/A-O-Studios@main/Games/Cookie_Clicker.html",
545
+ )
546
+ .then(response => response.text())
547
+ .then((CC) => {
548
+ newWindow.document.open();
549
+ newWindow.document.write(CC);
550
+ newWindow.document.close();
551
+ });
552
+ }
553
+
554
+
555
+
556
+
557
+ </script>
558
+ </section>
559
+
560
+ <!-- Projects -->
561
+
562
+ <section id="projects" class="page">
563
+ <h2>T00ls</h2>
564
+
565
+ <article>
566
+ <h3>HTML Emulator</h3>
567
+
568
+ <p>A website that lets you type HTML and run it in another tab.</p>
569
+ </article>
570
+
571
+ <article>
572
+ <h3>Test Website</h3>
573
+
574
+ <p>Something awesome we are going to build</p>
575
+ </article>
576
+ </section>
577
+
578
+ <!-- Settings -->
579
+
580
+ <section id="contact" class="page">
581
+ <h2>Settings</h2>
582
+
583
+ <label> This is where are requests and projects will be </label>
584
+
585
+ <br />
586
+ <br />
587
+ <br />
588
+
589
+ <label> Message: </label>
590
+
591
+ <br />
592
+ <br />
593
+ <br />
594
+
595
+ <button>Click me</button>
596
+ </section>
597
+ </main>
598
+
599
+ <!-- javascript -->
600
+
601
+ <script>
602
+ /* Page navigation */
603
+
604
+ function showPage(page) {
605
+ document.querySelectorAll(".page").forEach(function (section) {
606
+ section.classList.remove("active");
607
+ });
608
+
609
+ document.getElementById(page).classList.add("active");
610
+ }
611
+
612
+ /* Html Emulator */
613
+
614
+ function Newtab() {
615
+ const code = document.getElementById("code").value;
616
+
617
+ const newWindow = window.open("about:blank", "_blank");
618
+
619
+ if (!newWindow) {
620
+ alert(
621
+ "The new tab was blocked by your browser. Please allow pop-ups for this site.",
622
+ );
623
+
624
+ return;
625
+ }
626
+
627
+ newWindow.document.open();
628
+
629
+ newWindow.document.write(code);
630
+
631
+ newWindow.document.close();
632
+ }
633
+
634
+ /* Toby Web */
635
+ function Toby() {
636
+ const newWindow = window.open("about:blank", "_blank");
637
+
638
+ fetch("https://cdn.jsdelivr.net/gh/OddDuckling12/Toby-web@main/index.html")
639
+ .then((response) => response.text())
640
+ .then((toby) => {
641
+ newWindow.document.open();
642
+ newWindow.document.write(toby);
643
+ newWindow.document.close();
644
+ });
645
+ }
646
+ </script>
647
+ <script>
648
+ function Undertale() {
649
+ const newWindow = window.open("about:blank", "_blank");
650
+ fetch(
651
+ "https://cdn.jsdelivr.net/gh/Axononymous/A-O-Studios@main/Games/Undertale.html",
652
+ )
653
+ .then((response) => response.text())
654
+ .then((under) => {
655
+ newWindow.document.open();
656
+ newWindow.document.write(under);
657
+ newWindow.document.close();
658
+ });
659
+ }
660
+ </script>
661
+ </body>
662
+ </html>
package/package.json CHANGED
@@ -1,6 +1,13 @@
1
1
  {
2
2
  "name": "ao-studios-site",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.2.1",
4
+ "description": "",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "echo \"Error: no test specified\" && exit 1"
8
+ },
9
+ "keywords": [],
10
+ "author": "",
11
+ "license": "ISC",
12
+ "type": "commonjs"
13
+ }
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.