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/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>
data/public/_headers DELETED
@@ -1,28 +0,0 @@
1
- # A page on another origin loads the script as a module and the stylesheet's font across
2
- # origins, both of which the browser refuses without this. Cloudflare Pages adds no CORS.
3
- /*
4
- Access-Control-Allow-Origin: *
5
-
6
- # An unversioned file follows the latest release, so a browser asks for it again on every
7
- # load and is answered 304 while it stands. Pages would otherwise let one be kept for four
8
- # hours, and a page drawn against a new bundle would run the old one until they were up.
9
- /css/*
10
- Cache-Control: public, max-age=0, must-revalidate
11
- /js/*
12
- Cache-Control: public, max-age=0, must-revalidate
13
- /theme/*
14
- Cache-Control: public, max-age=0, must-revalidate
15
- /down/*
16
- Cache-Control: public, max-age=0, must-revalidate
17
- /page/*
18
- Cache-Control: public, max-age=0, must-revalidate
19
-
20
- # A versioned copy never changes, so a browser may keep it for a year and the edge for good.
21
- /v*
22
- Cache-Control: public, max-age=31536000, immutable
23
-
24
- # A font's name carries a hash of its bytes, so a browser may keep it for good; everything
25
- # else keeps Pages' default, which is to revalidate on every load and answer 304 while it
26
- # stands, so the URL of a file never has to change between versions.
27
- /font/*
28
- Cache-Control: public, max-age=31536000, immutable