easyfaa 0.20.0 → 1.0.0

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 (207) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +131 -468
  3. data/README.md +49 -222
  4. data/app/assets/fonts/easy/outfit-latin-ext.woff2 +0 -0
  5. data/app/assets/fonts/easy/outfit-latin.woff2 +0 -0
  6. data/app/assets/images/easy/favicon.ico +0 -0
  7. data/app/assets/images/easy/favicon.svg +11 -0
  8. data/app/assets/images/easy/sprite.svg +52 -0
  9. data/app/assets/javascripts/easy/add_rows.js +38 -0
  10. data/app/assets/javascripts/easy/flyer.js +100 -0
  11. data/app/assets/javascripts/easy/highlight.js +54 -0
  12. data/app/assets/javascripts/easy/konami.js +73 -0
  13. data/app/assets/javascripts/easy/modal.js +49 -0
  14. data/app/assets/javascripts/easy/pin_code.js +43 -0
  15. data/app/assets/javascripts/easy/report_sort.js +57 -0
  16. data/app/assets/javascripts/easy/rotating_placeholder.js +35 -0
  17. data/app/assets/javascripts/easy/step_foot.js +17 -0
  18. data/app/assets/javascripts/easy/switches.js +96 -0
  19. data/app/assets/javascripts/easy/switches_address.js +39 -0
  20. data/app/assets/javascripts/easy/tabs.js +35 -0
  21. data/app/assets/javascripts/easy/theme.js +41 -0
  22. data/app/assets/stylesheets/easy/base.css +42 -0
  23. data/app/assets/stylesheets/easy/components.css +533 -0
  24. data/app/assets/stylesheets/easy/layout.css +47 -0
  25. data/app/assets/stylesheets/easy/tokens.css +11 -0
  26. data/app/controllers/easyfaa/errors_controller.rb +41 -0
  27. data/app/helpers/easyfaa/easy_helper.rb +58 -0
  28. data/app/models/aircraft_avatar.rb +61 -0
  29. data/app/views/easy/_ad_card.html.erb +16 -0
  30. data/app/views/easy/_ad_list.html.erb +11 -0
  31. data/app/views/easy/_flyer.html.erb +10 -0
  32. data/app/views/easy/_logo.html.erb +15 -0
  33. data/app/views/easy/_modal.html.erb +17 -0
  34. data/app/views/easy/_part_tabs.html.erb +24 -0
  35. data/app/views/easy/_pin_code.html.erb +10 -0
  36. data/app/views/easy/_report_head.html.erb +28 -0
  37. data/app/views/easy/mailer/_button.html.erb +10 -0
  38. data/app/views/easy/mailer/_card.html.erb +23 -0
  39. data/app/views/easy/mailer/_code.html.erb +28 -0
  40. data/app/views/easy/mailer/_code.text.erb +19 -0
  41. data/app/views/easy/mailer/_frame.html.erb +35 -0
  42. data/app/views/easy/mailer/_text.html.erb +7 -0
  43. data/app/views/easyfaa/errors/show.html.erb +17 -0
  44. data/app/views/layouts/easy/site.html.erb +55 -0
  45. data/app/views/layouts/easyfaa/errors.html.erb +30 -0
  46. data/config/aircraft_avatars.yml +26 -0
  47. data/lib/easyfaa/engine.rb +16 -43
  48. data/lib/easyfaa/version.rb +2 -2
  49. data/lib/easyfaa.rb +14 -35
  50. metadata +52 -181
  51. data/app/views/layouts/easyfaa.html.erb +0 -24
  52. data/app/views/recourses/_head.html.erb +0 -3
  53. data/art/autopilot.svg +0 -9
  54. data/art/cube.svg +0 -9
  55. data/art/design.svg +0 -8
  56. data/art/down.html.erb +0 -95
  57. data/art/easyfaa.svg +0 -7
  58. data/art/fountain.svg +0 -9
  59. data/art/goldrush.svg +0 -7
  60. data/art/houston.svg +0 -8
  61. data/art/icons.txt +0 -185
  62. data/art/index.html.erb +0 -157
  63. data/config/locales/easyfaa.en.yml +0 -7
  64. data/lib/easyfaa/copy.rb +0 -5
  65. data/lib/easyfaa/down.rb +0 -19
  66. data/lib/easyfaa/helpers/flows.rb +0 -53
  67. data/lib/easyfaa/helpers/heads.rb +0 -60
  68. data/lib/easyfaa/helpers/logos.rb +0 -43
  69. data/lib/easyfaa/helpers.rb +0 -11
  70. data/lib/easyfaa/marks.rb +0 -16
  71. data/public/404.html +0 -118
  72. data/public/_headers +0 -28
  73. data/public/bh/css/bh.css +0 -1
  74. data/public/bh/js/bh.js +0 -152
  75. data/public/bh/theme/bootstrap.css +0 -10
  76. data/public/bh/theme/dawn.css +0 -189
  77. data/public/bh/theme/dracula.css +0 -189
  78. data/public/bh/theme/gruvbox.css +0 -189
  79. data/public/bh/theme/monokai.css +0 -190
  80. data/public/bh/theme/nord.css +0 -189
  81. data/public/bh/theme/one_dark.css +0 -189
  82. data/public/bh/theme/solarized.css +0 -188
  83. data/public/bh/theme/tokyo_night.css +0 -189
  84. data/public/css/easyfaa.css +0 -1
  85. data/public/down/autopilot.html +0 -87
  86. data/public/down/cube.html +0 -87
  87. data/public/down/design.html +0 -87
  88. data/public/down/easyfaa.html +0 -84
  89. data/public/down/fountain.html +0 -87
  90. data/public/down/goldrush.html +0 -87
  91. data/public/down/houston.html +0 -87
  92. data/public/favicon/autopilot-180.png +0 -0
  93. data/public/favicon/autopilot-192.png +0 -0
  94. data/public/favicon/autopilot-512.png +0 -0
  95. data/public/favicon/autopilot-96.png +0 -0
  96. data/public/favicon/autopilot-dev.svg +0 -9
  97. data/public/favicon/autopilot.ico +0 -0
  98. data/public/favicon/autopilot.svg +0 -9
  99. data/public/favicon/autopilot.webmanifest +0 -12
  100. data/public/favicon/cube-180.png +0 -0
  101. data/public/favicon/cube-192.png +0 -0
  102. data/public/favicon/cube-512.png +0 -0
  103. data/public/favicon/cube-96.png +0 -0
  104. data/public/favicon/cube-dev.svg +0 -9
  105. data/public/favicon/cube.ico +0 -0
  106. data/public/favicon/cube.svg +0 -9
  107. data/public/favicon/cube.webmanifest +0 -12
  108. data/public/favicon/design-180.png +0 -0
  109. data/public/favicon/design-192.png +0 -0
  110. data/public/favicon/design-512.png +0 -0
  111. data/public/favicon/design-96.png +0 -0
  112. data/public/favicon/design-dev.svg +0 -8
  113. data/public/favicon/design.ico +0 -0
  114. data/public/favicon/design.svg +0 -8
  115. data/public/favicon/design.webmanifest +0 -12
  116. data/public/favicon/easyfaa-180.png +0 -0
  117. data/public/favicon/easyfaa-192.png +0 -0
  118. data/public/favicon/easyfaa-512.png +0 -0
  119. data/public/favicon/easyfaa-96.png +0 -0
  120. data/public/favicon/easyfaa-dev.svg +0 -7
  121. data/public/favicon/easyfaa.ico +0 -0
  122. data/public/favicon/easyfaa.svg +0 -7
  123. data/public/favicon/easyfaa.webmanifest +0 -12
  124. data/public/favicon/fountain-180.png +0 -0
  125. data/public/favicon/fountain-192.png +0 -0
  126. data/public/favicon/fountain-512.png +0 -0
  127. data/public/favicon/fountain-96.png +0 -0
  128. data/public/favicon/fountain-dev.svg +0 -9
  129. data/public/favicon/fountain.ico +0 -0
  130. data/public/favicon/fountain.svg +0 -9
  131. data/public/favicon/fountain.webmanifest +0 -12
  132. data/public/favicon/goldrush-180.png +0 -0
  133. data/public/favicon/goldrush-192.png +0 -0
  134. data/public/favicon/goldrush-512.png +0 -0
  135. data/public/favicon/goldrush-96.png +0 -0
  136. data/public/favicon/goldrush-dev.svg +0 -7
  137. data/public/favicon/goldrush.ico +0 -0
  138. data/public/favicon/goldrush.svg +0 -7
  139. data/public/favicon/goldrush.webmanifest +0 -12
  140. data/public/favicon/houston-180.png +0 -0
  141. data/public/favicon/houston-192.png +0 -0
  142. data/public/favicon/houston-512.png +0 -0
  143. data/public/favicon/houston-96.png +0 -0
  144. data/public/favicon/houston-dev.svg +0 -8
  145. data/public/favicon/houston.ico +0 -0
  146. data/public/favicon/houston.svg +0 -8
  147. data/public/favicon/houston.webmanifest +0 -12
  148. data/public/favicon.ico +0 -0
  149. data/public/font/bootstrap-icons-6LILWPE2.woff2 +0 -0
  150. data/public/font/bootstrap-icons-FRBPO3H7.woff2 +0 -0
  151. data/public/font/ibm-plex-sans-500-latin-LA7QXWWL.woff2 +0 -0
  152. data/public/font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2 +0 -0
  153. data/public/font/ibm-plex-sans-500-latin-ext.woff2 +0 -0
  154. data/public/font/ibm-plex-sans-500-latin.woff2 +0 -0
  155. data/public/font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2 +0 -0
  156. data/public/font/ibm-plex-sans-500-vietnamese.woff2 +0 -0
  157. data/public/index.html +0 -165
  158. data/public/js/easyfaa.js +0 -1
  159. data/public/logo/autopilot.png +0 -0
  160. data/public/logo/autopilot.svg +0 -9
  161. data/public/logo/cube.png +0 -0
  162. data/public/logo/cube.svg +0 -9
  163. data/public/logo/design.png +0 -0
  164. data/public/logo/design.svg +0 -8
  165. data/public/logo/easyfaa.png +0 -0
  166. data/public/logo/easyfaa.svg +0 -7
  167. data/public/logo/fountain.png +0 -0
  168. data/public/logo/fountain.svg +0 -9
  169. data/public/logo/goldrush.png +0 -0
  170. data/public/logo/goldrush.svg +0 -7
  171. data/public/logo/houston.png +0 -0
  172. data/public/logo/houston.svg +0 -8
  173. data/public/page/400.html +0 -118
  174. data/public/page/404.html +0 -118
  175. data/public/page/406-unsupported-browser.html +0 -118
  176. data/public/page/422.html +0 -118
  177. data/public/page/500.html +0 -118
  178. data/public/site.webmanifest +0 -12
  179. data/public/theme/bootstrap.css +0 -10
  180. data/public/theme/dawn.css +0 -189
  181. data/public/theme/dracula.css +0 -189
  182. data/public/theme/gruvbox.css +0 -189
  183. data/public/theme/monokai.css +0 -190
  184. data/public/theme/nord.css +0 -189
  185. data/public/theme/one_dark.css +0 -189
  186. data/public/theme/solarized.css +0 -188
  187. data/public/theme/tokyo_night.css +0 -189
  188. data/public/v0.20.0/bh/css/bh.css +0 -1
  189. data/public/v0.20.0/bh/js/bh.js +0 -152
  190. data/public/v0.20.0/bh/theme/bootstrap.css +0 -10
  191. data/public/v0.20.0/bh/theme/dawn.css +0 -189
  192. data/public/v0.20.0/bh/theme/dracula.css +0 -189
  193. data/public/v0.20.0/bh/theme/gruvbox.css +0 -189
  194. data/public/v0.20.0/bh/theme/monokai.css +0 -190
  195. data/public/v0.20.0/bh/theme/nord.css +0 -189
  196. data/public/v0.20.0/bh/theme/one_dark.css +0 -189
  197. data/public/v0.20.0/bh/theme/solarized.css +0 -188
  198. data/public/v0.20.0/bh/theme/tokyo_night.css +0 -189
  199. data/public/v0.20.0/css/easyfaa.css +0 -1
  200. data/public/v0.20.0/font/bootstrap-icons-FRBPO3H7.woff2 +0 -0
  201. data/public/v0.20.0/font/ibm-plex-sans-500-latin-LA7QXWWL.woff2 +0 -0
  202. data/public/v0.20.0/font/ibm-plex-sans-500-latin-ext-X4QHZICY.woff2 +0 -0
  203. data/public/v0.20.0/font/ibm-plex-sans-500-latin-ext.woff2 +0 -0
  204. data/public/v0.20.0/font/ibm-plex-sans-500-latin.woff2 +0 -0
  205. data/public/v0.20.0/font/ibm-plex-sans-500-vietnamese-24B6BSND.woff2 +0 -0
  206. data/public/v0.20.0/font/ibm-plex-sans-500-vietnamese.woff2 +0 -0
  207. data/public/v0.20.0/js/easyfaa.js +0 -1
data/public/page/404.html DELETED
@@ -1,118 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>The page you were looking for doesn't exist (404 Not found)</title>
7
- <meta name="color-scheme" content="light dark">
8
- <link rel="icon" href="/favicon.ico" sizes="32x32">
9
- <link rel="icon" href="/icon.svg" type="image/svg+xml">
10
- <link rel="apple-touch-icon" href="/apple-touch-icon.png">
11
- <link rel="manifest" href="/site.webmanifest">
12
- <style>
13
- @font-face {
14
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
15
- src: url('/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
16
- unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
17
- }
18
- @font-face {
19
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
20
- src: url('/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
21
- unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
22
- }
23
- @font-face {
24
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
25
- src: url('/font/ibm-plex-sans-500-latin.woff2') format('woff2');
26
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
27
- }
28
- :root {
29
- --bg: #fbfcfe;
30
- --ink: #0b1e3a;
31
- --mark: #5aa9e6;
32
- --muted: #5c6c84;
33
- }
34
- @media (prefers-color-scheme: dark) {
35
- :root {
36
- --bg: #0f1622;
37
- --ink: #cfe3f6;
38
- --muted: #8698af;
39
- }
40
- }
41
- * { box-sizing: border-box; }
42
- body {
43
- margin: 0;
44
- min-height: 100svh;
45
- display: flex;
46
- flex-direction: column;
47
- background: var(--bg);
48
- font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
49
- font-weight: 500;
50
- letter-spacing: 0.01em;
51
- }
52
- main {
53
- flex: 1;
54
- display: flex;
55
- flex-direction: column;
56
- align-items: center;
57
- justify-content: center;
58
- padding: 40px 24px;
59
- text-align: center;
60
- }
61
- .lockup {
62
- white-space: nowrap;
63
- max-width: 100%;
64
- color: var(--ink);
65
- line-height: 1;
66
- margin: 0;
67
- }
68
- .lockup svg {
69
- position: relative;
70
- vertical-align: baseline;
71
- }
72
- main .lockup {
73
- font-size: clamp(1.5rem, 5.5vw, 2.5rem);
74
- font-weight: 500;
75
- /* The longest heading is wider than a phone, so let it wrap rather than
76
- overflow; the mark stays attached to the status code on the first line. */
77
- white-space: normal;
78
- text-wrap: balance;
79
- line-height: 1.25;
80
- }
81
- main .lockup svg {
82
- width: 1.0073em; height: 1.0073em;
83
- top: 0.1337em;
84
- margin-right: 0.1327em;
85
- }
86
- main p {
87
- margin: 22px 0 0;
88
- color: var(--muted);
89
- font-size: 1rem;
90
- line-height: 1.6;
91
- }
92
- footer {
93
- position: sticky;
94
- bottom: 0;
95
- background: var(--bg);
96
- display: flex;
97
- justify-content: center;
98
- padding: 20px 0 26px;
99
- }
100
- footer .lockup { font-size: 20px; }
101
- footer .lockup svg {
102
- width: 16px; height: 16px;
103
- top: 3.2px;
104
- margin-right: 4.2px;
105
- }
106
- footer .easy { color: var(--mark); }
107
- </style>
108
- </head>
109
- <body>
110
- <main>
111
- <h1 class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round"><path d="M251.4 235.6 C254.8 239.8 256.5 246.9 254 254.2 C251.6 261.5 245 268.8 235.4 272.3 C225.8 275.7 213.3 275.1 202.2 268.8 C191 262.6 181.5 250.6 178.1 235.6 C174.6 220.6 177.5 202.7 187.6 187.7 C197.6 172.8 215 161 235.4 157.6 C255.8 154.1 279.1 159.2 297.9 173.1 C316.6 187 330.6 209.8 334.1 235.6 C337.5 261.4 330.2 290.1 312.5 312.7 C294.7 335.3 266.6 351.5 235.4 354.9 C204.2 358.4 170.2 348.8 143.7 327.3 C117.3 305.7 98.8 272.2 95.4 235.6 C92 198.9 103.7 159.6 129.1 129.3 C154.5 99 193.3 78.4 235.4 74.9 C277.5 71.5 322.2 85.5 356.3 114.7 C390.4 143.9 413.3 188.1 416.7 235.6 C420.2 283.1 404 333.2 370.9 371.1 C337.9 409 288.3 434.1 235.4 437.6"/></g></svg>404 Not found</h1>
112
- <p>You may have mistyped the address or the page may have moved.</p>
113
- </main>
114
- <footer>
115
- <p class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class="easy">easy</span>faa</p>
116
- </footer>
117
- </body>
118
- </html>
@@ -1,118 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Your browser is not supported (406 Not Acceptable)</title>
7
- <meta name="color-scheme" content="light dark">
8
- <link rel="icon" href="/favicon.ico" sizes="32x32">
9
- <link rel="icon" href="/icon.svg" type="image/svg+xml">
10
- <link rel="apple-touch-icon" href="/apple-touch-icon.png">
11
- <link rel="manifest" href="/site.webmanifest">
12
- <style>
13
- @font-face {
14
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
15
- src: url('/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
16
- unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
17
- }
18
- @font-face {
19
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
20
- src: url('/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
21
- unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
22
- }
23
- @font-face {
24
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
25
- src: url('/font/ibm-plex-sans-500-latin.woff2') format('woff2');
26
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
27
- }
28
- :root {
29
- --bg: #fbfcfe;
30
- --ink: #0b1e3a;
31
- --mark: #5aa9e6;
32
- --muted: #5c6c84;
33
- }
34
- @media (prefers-color-scheme: dark) {
35
- :root {
36
- --bg: #0f1622;
37
- --ink: #cfe3f6;
38
- --muted: #8698af;
39
- }
40
- }
41
- * { box-sizing: border-box; }
42
- body {
43
- margin: 0;
44
- min-height: 100svh;
45
- display: flex;
46
- flex-direction: column;
47
- background: var(--bg);
48
- font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
49
- font-weight: 500;
50
- letter-spacing: 0.01em;
51
- }
52
- main {
53
- flex: 1;
54
- display: flex;
55
- flex-direction: column;
56
- align-items: center;
57
- justify-content: center;
58
- padding: 40px 24px;
59
- text-align: center;
60
- }
61
- .lockup {
62
- white-space: nowrap;
63
- max-width: 100%;
64
- color: var(--ink);
65
- line-height: 1;
66
- margin: 0;
67
- }
68
- .lockup svg {
69
- position: relative;
70
- vertical-align: baseline;
71
- }
72
- main .lockup {
73
- font-size: clamp(1.5rem, 5.5vw, 2.5rem);
74
- font-weight: 500;
75
- /* The longest heading is wider than a phone, so let it wrap rather than
76
- overflow; the mark stays attached to the status code on the first line. */
77
- white-space: normal;
78
- text-wrap: balance;
79
- line-height: 1.25;
80
- }
81
- main .lockup svg {
82
- width: 1.0073em; height: 1.0073em;
83
- top: 0.1337em;
84
- margin-right: 0.1327em;
85
- }
86
- main p {
87
- margin: 22px 0 0;
88
- color: var(--muted);
89
- font-size: 1rem;
90
- line-height: 1.6;
91
- }
92
- footer {
93
- position: sticky;
94
- bottom: 0;
95
- background: var(--bg);
96
- display: flex;
97
- justify-content: center;
98
- padding: 20px 0 26px;
99
- }
100
- footer .lockup { font-size: 20px; }
101
- footer .lockup svg {
102
- width: 16px; height: 16px;
103
- top: 3.2px;
104
- margin-right: 4.2px;
105
- }
106
- footer .easy { color: var(--mark); }
107
- </style>
108
- </head>
109
- <body>
110
- <main>
111
- <h1 class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round"><path d="M251.4 235.6 C254.8 239.8 256.5 246.9 254 254.2 C251.6 261.5 245 268.8 235.4 272.3 C225.8 275.7 213.3 275.1 202.2 268.8 C191 262.6 181.5 250.6 178.1 235.6 C174.6 220.6 177.5 202.7 187.6 187.7 C197.6 172.8 215 161 235.4 157.6 C255.8 154.1 279.1 159.2 297.9 173.1 C316.6 187 330.6 209.8 334.1 235.6 C337.5 261.4 330.2 290.1 312.5 312.7 C294.7 335.3 266.6 351.5 235.4 354.9 C204.2 358.4 170.2 348.8 143.7 327.3 C117.3 305.7 98.8 272.2 95.4 235.6 C92 198.9 103.7 159.6 129.1 129.3 C154.5 99 193.3 78.4 235.4 74.9 C277.5 71.5 322.2 85.5 356.3 114.7 C390.4 143.9 413.3 188.1 416.7 235.6 C420.2 283.1 404 333.2 370.9 371.1 C337.9 409 288.3 434.1 235.4 437.6"/></g></svg>406 Not acceptable</h1>
112
- <p>Please upgrade your browser to continue.</p>
113
- </main>
114
- <footer>
115
- <p class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class="easy">easy</span>faa</p>
116
- </footer>
117
- </body>
118
- </html>
data/public/page/422.html DELETED
@@ -1,118 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>The change you wanted was rejected (422 Unprocessable Entity)</title>
7
- <meta name="color-scheme" content="light dark">
8
- <link rel="icon" href="/favicon.ico" sizes="32x32">
9
- <link rel="icon" href="/icon.svg" type="image/svg+xml">
10
- <link rel="apple-touch-icon" href="/apple-touch-icon.png">
11
- <link rel="manifest" href="/site.webmanifest">
12
- <style>
13
- @font-face {
14
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
15
- src: url('/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
16
- unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
17
- }
18
- @font-face {
19
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
20
- src: url('/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
21
- unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
22
- }
23
- @font-face {
24
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
25
- src: url('/font/ibm-plex-sans-500-latin.woff2') format('woff2');
26
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
27
- }
28
- :root {
29
- --bg: #fbfcfe;
30
- --ink: #0b1e3a;
31
- --mark: #5aa9e6;
32
- --muted: #5c6c84;
33
- }
34
- @media (prefers-color-scheme: dark) {
35
- :root {
36
- --bg: #0f1622;
37
- --ink: #cfe3f6;
38
- --muted: #8698af;
39
- }
40
- }
41
- * { box-sizing: border-box; }
42
- body {
43
- margin: 0;
44
- min-height: 100svh;
45
- display: flex;
46
- flex-direction: column;
47
- background: var(--bg);
48
- font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
49
- font-weight: 500;
50
- letter-spacing: 0.01em;
51
- }
52
- main {
53
- flex: 1;
54
- display: flex;
55
- flex-direction: column;
56
- align-items: center;
57
- justify-content: center;
58
- padding: 40px 24px;
59
- text-align: center;
60
- }
61
- .lockup {
62
- white-space: nowrap;
63
- max-width: 100%;
64
- color: var(--ink);
65
- line-height: 1;
66
- margin: 0;
67
- }
68
- .lockup svg {
69
- position: relative;
70
- vertical-align: baseline;
71
- }
72
- main .lockup {
73
- font-size: clamp(1.5rem, 5.5vw, 2.5rem);
74
- font-weight: 500;
75
- /* The longest heading is wider than a phone, so let it wrap rather than
76
- overflow; the mark stays attached to the status code on the first line. */
77
- white-space: normal;
78
- text-wrap: balance;
79
- line-height: 1.25;
80
- }
81
- main .lockup svg {
82
- width: 1.0073em; height: 1.0073em;
83
- top: 0.1337em;
84
- margin-right: 0.1327em;
85
- }
86
- main p {
87
- margin: 22px 0 0;
88
- color: var(--muted);
89
- font-size: 1rem;
90
- line-height: 1.6;
91
- }
92
- footer {
93
- position: sticky;
94
- bottom: 0;
95
- background: var(--bg);
96
- display: flex;
97
- justify-content: center;
98
- padding: 20px 0 26px;
99
- }
100
- footer .lockup { font-size: 20px; }
101
- footer .lockup svg {
102
- width: 16px; height: 16px;
103
- top: 3.2px;
104
- margin-right: 4.2px;
105
- }
106
- footer .easy { color: var(--mark); }
107
- </style>
108
- </head>
109
- <body>
110
- <main>
111
- <h1 class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round"><path d="M251.4 235.6 C254.8 239.8 256.5 246.9 254 254.2 C251.6 261.5 245 268.8 235.4 272.3 C225.8 275.7 213.3 275.1 202.2 268.8 C191 262.6 181.5 250.6 178.1 235.6 C174.6 220.6 177.5 202.7 187.6 187.7 C197.6 172.8 215 161 235.4 157.6 C255.8 154.1 279.1 159.2 297.9 173.1 C316.6 187 330.6 209.8 334.1 235.6 C337.5 261.4 330.2 290.1 312.5 312.7 C294.7 335.3 266.6 351.5 235.4 354.9 C204.2 358.4 170.2 348.8 143.7 327.3 C117.3 305.7 98.8 272.2 95.4 235.6 C92 198.9 103.7 159.6 129.1 129.3 C154.5 99 193.3 78.4 235.4 74.9 C277.5 71.5 322.2 85.5 356.3 114.7 C390.4 143.9 413.3 188.1 416.7 235.6 C420.2 283.1 404 333.2 370.9 371.1 C337.9 409 288.3 434.1 235.4 437.6"/></g></svg>422 Unprocessable entity</h1>
112
- <p>Maybe you tried to change something you didn't have access to.</p>
113
- </main>
114
- <footer>
115
- <p class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class="easy">easy</span>faa</p>
116
- </footer>
117
- </body>
118
- </html>
data/public/page/500.html DELETED
@@ -1,118 +0,0 @@
1
- <!doctype html>
2
- <html lang="en">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>We're sorry, but something went wrong (500 Internal Server Error)</title>
7
- <meta name="color-scheme" content="light dark">
8
- <link rel="icon" href="/favicon.ico" sizes="32x32">
9
- <link rel="icon" href="/icon.svg" type="image/svg+xml">
10
- <link rel="apple-touch-icon" href="/apple-touch-icon.png">
11
- <link rel="manifest" href="/site.webmanifest">
12
- <style>
13
- @font-face {
14
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
15
- src: url('/font/ibm-plex-sans-500-vietnamese.woff2') format('woff2');
16
- unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
17
- }
18
- @font-face {
19
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
20
- src: url('/font/ibm-plex-sans-500-latin-ext.woff2') format('woff2');
21
- unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
22
- }
23
- @font-face {
24
- font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap;
25
- src: url('/font/ibm-plex-sans-500-latin.woff2') format('woff2');
26
- unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
27
- }
28
- :root {
29
- --bg: #fbfcfe;
30
- --ink: #0b1e3a;
31
- --mark: #5aa9e6;
32
- --muted: #5c6c84;
33
- }
34
- @media (prefers-color-scheme: dark) {
35
- :root {
36
- --bg: #0f1622;
37
- --ink: #cfe3f6;
38
- --muted: #8698af;
39
- }
40
- }
41
- * { box-sizing: border-box; }
42
- body {
43
- margin: 0;
44
- min-height: 100svh;
45
- display: flex;
46
- flex-direction: column;
47
- background: var(--bg);
48
- font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
49
- font-weight: 500;
50
- letter-spacing: 0.01em;
51
- }
52
- main {
53
- flex: 1;
54
- display: flex;
55
- flex-direction: column;
56
- align-items: center;
57
- justify-content: center;
58
- padding: 40px 24px;
59
- text-align: center;
60
- }
61
- .lockup {
62
- white-space: nowrap;
63
- max-width: 100%;
64
- color: var(--ink);
65
- line-height: 1;
66
- margin: 0;
67
- }
68
- .lockup svg {
69
- position: relative;
70
- vertical-align: baseline;
71
- }
72
- main .lockup {
73
- font-size: clamp(1.5rem, 5.5vw, 2.5rem);
74
- font-weight: 500;
75
- /* The longest heading is wider than a phone, so let it wrap rather than
76
- overflow; the mark stays attached to the status code on the first line. */
77
- white-space: normal;
78
- text-wrap: balance;
79
- line-height: 1.25;
80
- }
81
- main .lockup svg {
82
- width: 1.0073em; height: 1.0073em;
83
- top: 0.1337em;
84
- margin-right: 0.1327em;
85
- }
86
- main p {
87
- margin: 22px 0 0;
88
- color: var(--muted);
89
- font-size: 1rem;
90
- line-height: 1.6;
91
- }
92
- footer {
93
- position: sticky;
94
- bottom: 0;
95
- background: var(--bg);
96
- display: flex;
97
- justify-content: center;
98
- padding: 20px 0 26px;
99
- }
100
- footer .lockup { font-size: 20px; }
101
- footer .lockup svg {
102
- width: 16px; height: 16px;
103
- top: 3.2px;
104
- margin-right: 4.2px;
105
- }
106
- footer .easy { color: var(--mark); }
107
- </style>
108
- </head>
109
- <body>
110
- <main>
111
- <h1 class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round"><path d="M251.4 235.6 C254.8 239.8 256.5 246.9 254 254.2 C251.6 261.5 245 268.8 235.4 272.3 C225.8 275.7 213.3 275.1 202.2 268.8 C191 262.6 181.5 250.6 178.1 235.6 C174.6 220.6 177.5 202.7 187.6 187.7 C197.6 172.8 215 161 235.4 157.6 C255.8 154.1 279.1 159.2 297.9 173.1 C316.6 187 330.6 209.8 334.1 235.6 C337.5 261.4 330.2 290.1 312.5 312.7 C294.7 335.3 266.6 351.5 235.4 354.9 C204.2 358.4 170.2 348.8 143.7 327.3 C117.3 305.7 98.8 272.2 95.4 235.6 C92 198.9 103.7 159.6 129.1 129.3 C154.5 99 193.3 78.4 235.4 74.9 C277.5 71.5 322.2 85.5 356.3 114.7 C390.4 143.9 413.3 188.1 416.7 235.6 C420.2 283.1 404 333.2 370.9 371.1 C337.9 409 288.3 434.1 235.4 437.6"/></g></svg>500 Internal server error</h1>
112
- <p>Our developers have been alerted and are working on a fix.</p>
113
- </main>
114
- <footer>
115
- <p class="lockup"><svg viewBox="0 0 512 512" aria-hidden="true"><g fill="none" stroke="#5aa9e6" stroke-width="28" stroke-linecap="round" stroke-linejoin="round"><path d="M74.5 340H437.5A200 200 0 0 1 74.5 340Z" fill="#0b1e3a" stroke="none"/><circle cx="256" cy="256" r="200"/><path d="M150 256H216L256 296L296 256H362"/></g></svg><span class="easy">easy</span>faa</p>
116
- </footer>
117
- </body>
118
- </html>
@@ -1,12 +0,0 @@
1
- {
2
- "name": "Design",
3
- "short_name": "Design",
4
- "icons": [
5
- { "src": "/favicon/design-192.png", "sizes": "192x192", "type": "image/png" },
6
- { "src": "/favicon/design-512.png", "sizes": "512x512", "type": "image/png" }
7
- ],
8
- "theme_color": "#12233d",
9
- "background_color": "#12233d",
10
- "display": "standalone",
11
- "start_url": "/"
12
- }
@@ -1,10 +0,0 @@
1
- /* Bootstrap's own palette, and the only file here that declares nothing.
2
-
3
- The eight beside it work by overriding upstream's `:root`, so having upstream's
4
- palette back is a matter of dropping their block rather than of writing one — and
5
- swapping this link in is how a toggle drops it. Linking no palette at all and linking
6
- this one are the same look by two routes.
7
-
8
- It is named so the toggle can reach it. A reader who rotates through nine palettes
9
- and never finds the one the pages started in has been shown a door with no handle
10
- on the inside. */