cafe-theme 0.1.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 (81) hide show
  1. checksums.yaml +7 -0
  2. data/_config.yml +21 -0
  3. data/_includes/banner.html +21 -0
  4. data/_includes/footer.html +6 -0
  5. data/_includes/gtag.html +9 -0
  6. data/_includes/head.html +36 -0
  7. data/_includes/icons.html +31 -0
  8. data/_includes/map.html +2 -0
  9. data/_includes/nav.html +18 -0
  10. data/_includes/openTimes.html +6 -0
  11. data/_includes/reviews.html +16 -0
  12. data/_includes/socials.html +7 -0
  13. data/_layouts/compress.html +10 -0
  14. data/_layouts/default.html +17 -0
  15. data/_sass/gallery.mobile.scss +3 -0
  16. data/_sass/gallery.scss +40 -0
  17. data/_sass/gmap.mobile.scss +3 -0
  18. data/_sass/gmap.scss +5 -0
  19. data/_sass/main.mobile.scss +3 -0
  20. data/_sass/main.scss +51 -0
  21. data/_sass/menu.mobile.scss +3 -0
  22. data/_sass/menu.scss +102 -0
  23. data/_sass/nav.mobile.scss +49 -0
  24. data/_sass/nav.scss +69 -0
  25. data/_sass/openingTimes.scss +18 -0
  26. data/_sass/reviews.mobile.scss +3 -0
  27. data/_sass/reviews.scss +40 -0
  28. data/_sass/socials.scss +13 -0
  29. data/assets/css/style.scss +45 -0
  30. data/assets/images/banners/coffeePour/coffeePour.mp4 +0 -0
  31. data/assets/images/banners/coffeePour/coffeePour.webm +0 -0
  32. data/assets/images/banners/coffeePour/coffeePour.webp +0 -0
  33. data/assets/images/favicons/browserconfig.xml +11 -0
  34. data/assets/images/favicons/favicon-114.png +0 -0
  35. data/assets/images/favicons/favicon-120.png +0 -0
  36. data/assets/images/favicons/favicon-144.png +0 -0
  37. data/assets/images/favicons/favicon-150.png +0 -0
  38. data/assets/images/favicons/favicon-152.png +0 -0
  39. data/assets/images/favicons/favicon-16.png +0 -0
  40. data/assets/images/favicons/favicon-160.png +0 -0
  41. data/assets/images/favicons/favicon-180.png +0 -0
  42. data/assets/images/favicons/favicon-192.png +0 -0
  43. data/assets/images/favicons/favicon-310.png +0 -0
  44. data/assets/images/favicons/favicon-32.png +0 -0
  45. data/assets/images/favicons/favicon-57.png +0 -0
  46. data/assets/images/favicons/favicon-60.png +0 -0
  47. data/assets/images/favicons/favicon-64.png +0 -0
  48. data/assets/images/favicons/favicon-70.png +0 -0
  49. data/assets/images/favicons/favicon-72.png +0 -0
  50. data/assets/images/favicons/favicon-76.png +0 -0
  51. data/assets/images/favicons/favicon-96.png +0 -0
  52. data/assets/images/favicons/favicon.ico +0 -0
  53. data/assets/images/gallery/1.webp +0 -0
  54. data/assets/images/gallery/10.webp +0 -0
  55. data/assets/images/gallery/2.webp +0 -0
  56. data/assets/images/gallery/3.webp +0 -0
  57. data/assets/images/gallery/4.webp +0 -0
  58. data/assets/images/gallery/5.webp +0 -0
  59. data/assets/images/gallery/6.webp +0 -0
  60. data/assets/images/gallery/7.webp +0 -0
  61. data/assets/images/gallery/8.webp +0 -0
  62. data/assets/images/gallery/9.webp +0 -0
  63. data/assets/images/logo.webp +0 -0
  64. data/assets/images/menu/baked-potato.webp +0 -0
  65. data/assets/images/menu/burger.webp +0 -0
  66. data/assets/images/menu/cappuccino.webp +0 -0
  67. data/assets/images/menu/coca-cola.webp +0 -0
  68. data/assets/images/menu/diet/glutenFree.png +0 -0
  69. data/assets/images/menu/diet/vegan.png +0 -0
  70. data/assets/images/menu/eggs-and-bacon.webp +0 -0
  71. data/assets/images/menu/latte.webp +0 -0
  72. data/assets/images/menu/omlette.webp +0 -0
  73. data/assets/images/menu/pancakes.webp +0 -0
  74. data/assets/images/menu/smashed-avocado.webp +0 -0
  75. data/assets/images/menu/vegan-breakfast.webp +0 -0
  76. data/assets/images/social/email.svg +4 -0
  77. data/assets/images/social/facebook.svg +1 -0
  78. data/assets/images/social/instagram.svg +4 -0
  79. data/assets/images/social/phone.svg +4 -0
  80. data/assets/scripts/turbolinks.js +6 -0
  81. metadata +134 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 4a99e1c8fd05aa0e8231cd4426ccd0376a14c3360f64fa50809f79dc17763679
4
+ data.tar.gz: '09a4b1c076c90e19a47aaa6aadb20bf097585c9962b3a4f40724e08b3d7e1da4'
5
+ SHA512:
6
+ metadata.gz: b0cb2fd2da4dd3abe92de068f991e912ef7448658e0e21a8ce537a5a3ec87457b2bb2f64cdd0207d549e8060c4433cf1e764895e8ca2dac2c7e02fdfe2becdfc
7
+ data.tar.gz: 9afd9586efcd739aced0178868cc27bc9648b04f3f6d21503c2859025cf35e2bec65928cd0619cabb59ba83b375eb3d43511b9f8542675df8413312dcbf0ff4c
data/_config.yml ADDED
@@ -0,0 +1,21 @@
1
+ timezone: Australia/Melbourne
2
+ permalink: /:title
3
+
4
+ author: Gavin Douch
5
+ author_url: https://gavindou.ch
6
+
7
+ plugins:
8
+ - jekyll-sitemap
9
+
10
+ compress_html:
11
+ clippings: all
12
+ comments: ["<!-- ", " -->"]
13
+ endings: all
14
+ ignore:
15
+ envs: []
16
+ blanklines: false
17
+ profile: false
18
+ startings: [html, head, body]
19
+
20
+ sass:
21
+ style: compressed
@@ -0,0 +1,21 @@
1
+ {% if page.banner %}
2
+ {% assign banner_path = "/assets/images/banners/" | append: page.banner | append: "/" | append: page.banner %}
3
+ <video id="banner" autoplay loop muted playsinline poster="{{ banner_path | append: '.webp' | relative_url }}" style="background-image: url({{ banner_path | append: '.webp' | relative_url }});">
4
+ <source src="{{ banner_path | append: '.webm' | relative_url }}" type="video/webm">
5
+ <source src="{{ banner_path | append: '.mp4' | relative_url }}" type="video/mp4">
6
+ Your browser does not support the video tag.
7
+ </video>
8
+
9
+ <!-- Updates scrolling attribute to change nav bar opacity -->
10
+ <script>
11
+ function scrollUpdate() {
12
+ if (document.getElementById("banner") != null) { /* Required for Turbolinks */
13
+ document.getElementsByTagName("nav")[0].id = this.scrollY > 0 ? "scrolled" : "";
14
+ }
15
+ }
16
+
17
+ window.addEventListener("scroll", scrollUpdate, false);
18
+ </script>
19
+ {% else %}
20
+ <div style="height: 105px"></div>
21
+ {% endif %}
@@ -0,0 +1,6 @@
1
+ <p id="footer">
2
+ Copyright &copy; {{ site.time | date: '%Y' }} <a href="{{ site.author_url }}" target="_blank" rel="author noopener">{{ site.author }}</a>
3
+ {% if site.data.production.demo %}
4
+ - This website is unofficial, and does not represent {{ site.data.brand.name }}.
5
+ {% endif %}
6
+ </p>
@@ -0,0 +1,9 @@
1
+ {% if jekyll.environment == "production" and site.data.production.demo == false and site.data.production.gtag %}
2
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.data.production.gtag }}"></script>
3
+ <script>
4
+ window.dataLayer = window.dataLayer || [];
5
+ function gtag(){dataLayer.push(arguments);}
6
+ gtag('js', new Date());
7
+ gtag('config', '{{ site.data.production.gtag }}');
8
+ </script>
9
+ {% endif %}
@@ -0,0 +1,36 @@
1
+ <meta charset="UTF-8">
2
+
3
+ <!-- Analytics-->
4
+ {% include gtag.html %}
5
+
6
+ <!-- Generic -->
7
+ <meta name="language" content="english">
8
+ <meta name="copyright" content="{{ site.author }}">
9
+ <meta name="author" content="{{ site.author }}">
10
+
11
+ <!-- SEO -->
12
+ <title>{{ site.data.brand.name }} - {{ page.title }}</title>
13
+ {% if site.data.production.demo %}
14
+ <meta name="robots" content="noindex,nofollow">
15
+ {% endif %}
16
+ <link rel="canonical" href="{{ page.url | absolute_url }}">
17
+ <meta name="description" content="{{ site.data.brand.description }}">
18
+ <meta property="og:title" content="{{ page.title }}">
19
+ <meta property="og:locale" content="{{ site.data.contact.location.locale }}">
20
+ <meta property="og:description" content="{{ site.data.brand.description }}">
21
+ <meta property="og:url" content="{{ page.url | absolute_url }}">
22
+ <meta property="og:site_name" content="{{ site.data.brand.name }}">
23
+ <meta property="og:type" content="website">
24
+ {% include icons.html %}
25
+
26
+ <!-- Styles -->
27
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
28
+ {% for color_theme in site.data.themes.color_themes %}
29
+ {% if color_theme.name == site.data.brand.color_theme %}
30
+ <meta name="theme-color" content="{{ color_theme.background_color }}">
31
+ {% endif %}
32
+ {% endfor %}
33
+ <link rel="stylesheet" href="{{ '/assets/css/style.css' | relative_url }}">
34
+
35
+ <!-- Scripts -->
36
+ <script src="{{ '/assets/scripts/turbolinks.js' | relative_url }}"></script>
@@ -0,0 +1,31 @@
1
+ {% comment %} Generated at http://faviconit.com/en {% endcomment %}
2
+ {% assign icons_path = "/assets/images/favicons/" %}
3
+ {% assign date_string = site.time | date: "%y%-m%-d%H%M%S" %}
4
+ {% assign nonce = "?v=" | append: date_string %}
5
+
6
+ <link rel="shortcut icon" href="{{ icons_path | append: 'favicon.ico' | append: nonce | relative_url }}">
7
+ <link rel="icon" sizes="16x16 32x32 64x64" href="{{ icons_path | append: 'favicon.ico' | append: nonce | relative_url }}">
8
+ <link rel="icon" type="image/png" sizes="196x196" href="{{ icons_path | append: 'favicon-192.png' | append: nonce | relative_url }}">
9
+ <link rel="icon" type="image/png" sizes="160x160" href="{{ icons_path | append: 'favicon-160.png' | append: nonce | relative_url }}">
10
+ <link rel="icon" type="image/png" sizes="96x96" href="{{ icons_path | append: 'favicon-96.png' | append: nonce | relative_url }}">
11
+ <link rel="icon" type="image/png" sizes="64x64" href="{{ icons_path | append: 'favicon-64.png' | append: nonce | relative_url }}">
12
+ <link rel="icon" type="image/png" sizes="32x32" href="{{ icons_path | append: 'favicon-32.png' | append: nonce | relative_url }}">
13
+ <link rel="icon" type="image/png" sizes="16x16" href="{{ icons_path | append: 'favicon-16.png' | append: nonce | relative_url }}">
14
+ <link rel="apple-touch-icon" href="{{ icons_path | append: 'favicon-57.png' | append: nonce | relative_url }}">
15
+ <link rel="apple-touch-icon" sizes="114x114" href="{{ icons_path | append: 'favicon-114.png' | append: nonce | relative_url }}">
16
+ <link rel="apple-touch-icon" sizes="72x72" href="{{ icons_path | append: 'favicon-72.png' | append: nonce | relative_url }}">
17
+ <link rel="apple-touch-icon" sizes="144x144" href="{{ icons_path | append: 'favicon-144.png' | append: nonce | relative_url }}">
18
+ <link rel="apple-touch-icon" sizes="60x60" href="{{ icons_path | append: 'favicon-60.png' | append: nonce | relative_url }}">
19
+ <link rel="apple-touch-icon" sizes="120x120" href="{{ icons_path | append: 'favicon-120.png' | append: nonce | relative_url }}">
20
+ <link rel="apple-touch-icon" sizes="76x76" href="{{ icons_path | append: 'favicon-76.png' | append: nonce | relative_url }}">
21
+ <link rel="apple-touch-icon" sizes="152x152" href="{{ icons_path | append: 'favicon-152.png' | append: nonce | relative_url }}">
22
+ <link rel="apple-touch-icon" sizes="180x180" href="{{ icons_path | append: 'favicon-180.png' | append: nonce | relative_url }}">
23
+
24
+ {% for color_theme in site.data.themes.color_themes %}
25
+ {% if color_theme.name == site.data.brand.color_theme %}
26
+ <meta name="msapplication-TileColor" content="{{ color_theme.background_color }}">
27
+ {% endif %}
28
+ {% endfor %}
29
+
30
+ <meta name="msapplication-TileImage" content="{{ icons_path | append: 'favicon-144.png' | append: nonce | relative_url }}">
31
+ <meta name="msapplication-config" content="{{ icons_path | append: 'browserconfig.xml' | relative_url }}">
@@ -0,0 +1,2 @@
1
+ <iframe id="map" src="{{ site.data.contact.location.google_maps }}" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
2
+ <a href="{{ site.data.contact.location.google_maps }}">{{ site.data.contact.location.address }}</a><br>
@@ -0,0 +1,18 @@
1
+ <nav {% if page.banner %}{% else %}id="scrolled"{% endif %}>
2
+ <a id="title" href="{{ '/' | relative_url }}">
3
+ <img src="{{ '/assets/images/logo.webp' | relative_url }}" alt="{{ site.data.brand.name }} logo">
4
+ <span>{{ site.data.brand.name }}{% if site.data.production.demo %} - Unofficial{% endif %}</span>
5
+ </a>
6
+ <ul>
7
+ <li id="mobileLogo">
8
+ <a href="{{ '/' | relative_url }}">
9
+ <img src="{{ '/assets/images/logo.webp' | relative_url }}" alt="{{ site.data.brand.name }} logo">
10
+ </a>
11
+ </li>
12
+ {% for navigation_page in site.data.navigation.pages %}
13
+ <li>
14
+ <a href="{{ navigation_page.url | relative_url }}"{% if page.url == navigation_page.url %} class="currentPage"{% endif %} tabindex="0">{{ navigation_page.title }}</a>
15
+ </li>
16
+ {% endfor %}
17
+ </ul>
18
+ </nav>
@@ -0,0 +1,6 @@
1
+ <div class="openingTimes">
2
+ {% for day_of_week in site.data.openingTimes.times %}
3
+ <p>{{ day_of_week.days }}:</p>
4
+ <p>{{ day_of_week.open }} - {{ day_of_week.close }}</p>
5
+ {% endfor %}
6
+ </div>
@@ -0,0 +1,16 @@
1
+ <div id="reviews">
2
+ {% for review in site.data.reviews.reviews %}
3
+ <a href="{{ review.link }}" target="_blank" rel="noopener">
4
+ <h2>{{ review.title }}</h2>
5
+ <p class="username">&mdash; {{ review.username }}</p>
6
+ <span class="stars">
7
+ {% for i in (1..review.stars) %}
8
+ &starf;
9
+ {% endfor %}
10
+ </span>
11
+ <p>{{ review.message }}</p>
12
+ </a>
13
+ {% endfor %}
14
+ </div>
15
+
16
+
@@ -0,0 +1,7 @@
1
+ <div id="socialsList">
2
+ {% for social_account in site.data.contact.socials %}
3
+ <a href="{{ social_account.link }}" target="_blank" rel="noopener">
4
+ <img src="assets/images/social/{{ social_account.platform | downcase }}.svg" alt="{{ social_account.platform }} icon">
5
+ </a>
6
+ {% endfor %}
7
+ </div>
@@ -0,0 +1,10 @@
1
+ ---
2
+ # Jekyll layout that compresses HTML
3
+ # v3.1.0
4
+ # http://jch.penibelst.de/
5
+ # © 2014–2015 Anatol Broder
6
+ # MIT License
7
+ ---
8
+
9
+ {% capture _LINE_FEED %}
10
+ {% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
@@ -0,0 +1,17 @@
1
+ ---
2
+ layout: compress
3
+ ---
4
+ <!DOCTYPE html>
5
+ <html lang="en">
6
+ <head>
7
+ {% include head.html %}
8
+ </head>
9
+ <body>
10
+ {% include nav.html %}
11
+ {% include banner.html %}
12
+ <div id="main">
13
+ {{ content }}
14
+ </div>
15
+ {% include footer.html %}
16
+ </body>
17
+ </html>
@@ -0,0 +1,3 @@
1
+ #gallery {
2
+ grid-template-columns: auto;
3
+ }
@@ -0,0 +1,40 @@
1
+ #gallery {
2
+ display: grid;
3
+ grid-template-columns: repeat(3, 1fr);
4
+ row-gap: 10px;
5
+ column-gap: 10px;
6
+ width: 100%;
7
+
8
+ div {
9
+ position: relative;
10
+ display: block;
11
+ width: 100%;
12
+ height: 100%;
13
+ aspect-ratio: 1;
14
+ line-height: 0;
15
+
16
+ img {
17
+ width: 100%;
18
+ }
19
+
20
+ p {
21
+ line-height: normal;
22
+ opacity: 0;
23
+ position: absolute;
24
+ bottom: 0;
25
+ width: 100%;
26
+ background-color: transparentize($background-color, $opacity);
27
+ transition: opacity 0.2s;
28
+ margin-bottom: 0;
29
+ margin-top: 0;
30
+ padding: 10px;
31
+ box-sizing: border-box;
32
+ }
33
+
34
+ &:hover {
35
+ p {
36
+ opacity: 1;
37
+ }
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,3 @@
1
+ #map {
2
+ height: 200px;
3
+ }
data/_sass/gmap.scss ADDED
@@ -0,0 +1,5 @@
1
+ #map {
2
+ width: 100%;
3
+ height: 400px;
4
+ border: 0;
5
+ }
@@ -0,0 +1,3 @@
1
+ #main {
2
+ width: 90%;
3
+ }
data/_sass/main.scss ADDED
@@ -0,0 +1,51 @@
1
+ * {
2
+ color: $foreground-color;
3
+ font-family: $body-font;
4
+ }
5
+
6
+ h2 {
7
+ font-weight: 700;
8
+ }
9
+
10
+ #banner {
11
+ height: 85%;
12
+ object-fit: cover;
13
+ width: 100%;
14
+ pointer-events: none;
15
+ user-select: none;
16
+ -moz-user-select: none;
17
+ -webkit-user-drag: none;
18
+ -webkit-user-select: none;
19
+ background-position: center;
20
+ background-repeat: no-repeat;
21
+ background-size: cover;
22
+ }
23
+
24
+ p, li:not(nav) {
25
+ font-size: 1.2em;
26
+ }
27
+
28
+ html, body {
29
+ height: 100%;
30
+ margin: 0;
31
+ }
32
+
33
+ body {
34
+ background-color: $background-color;
35
+ }
36
+
37
+ p#footer {
38
+ font-size: small;
39
+ position: relative;
40
+ bottom: 60px;
41
+ height: 60px;
42
+ line-height: 60px;
43
+ text-align: center;
44
+ }
45
+
46
+ #main {
47
+ width: 80%;
48
+ padding-bottom: 60px;
49
+ margin: 0 auto 0 auto;
50
+ min-height: calc(100% - 60px - 20px);
51
+ }
@@ -0,0 +1,3 @@
1
+ #menu > div {
2
+ grid-template-columns: auto;
3
+ }
data/_sass/menu.scss ADDED
@@ -0,0 +1,102 @@
1
+ #menu {
2
+ > h1 {
3
+ text-align: center;
4
+ margin-bottom: 0;
5
+ margin-top: 0;
6
+
7
+ &:not(:first-child) {
8
+ margin-top: 40px;
9
+ }
10
+ }
11
+
12
+ hr {
13
+ border-style: solid;
14
+ color: transparentize($foreground-color, 0.7) ;
15
+ border-width: 0.5px;
16
+ }
17
+
18
+ > p {
19
+ text-align: center;
20
+ margin-top: 0;
21
+ color: $accent_color;
22
+ }
23
+
24
+ > div { // Foods list
25
+ display: grid;
26
+ row-gap: 20px;
27
+ column-gap: 70px;
28
+ grid-template-columns: repeat(2, 1fr);
29
+
30
+ > div { // Food item
31
+ position: relative;
32
+ padding: 10px;
33
+ border-radius: $border-radius;
34
+ border: 2px transparent solid;
35
+ line-height: 0;
36
+
37
+ &:hover {
38
+ border: 2px $accent-color solid;
39
+
40
+ > img {
41
+ max-height: 200px;
42
+ }
43
+ }
44
+
45
+ > img {
46
+ width: 100%;
47
+ margin-top: 10px;
48
+ max-height: 0;
49
+ transition: max-height 0.2s;
50
+ border-radius: $border-radius;
51
+ object-fit: cover;
52
+ }
53
+
54
+ > h2 {
55
+ font-size: larger;
56
+ margin-top: 0;
57
+ margin-bottom: 5px;
58
+ line-height: 26px;
59
+
60
+ span {
61
+ position: absolute;
62
+ right: 0;
63
+ padding-right: 10px;
64
+ }
65
+ }
66
+
67
+ > p {
68
+ margin-top: 5px;
69
+ font-size: medium;
70
+ margin-bottom: 0;
71
+ line-height: 22px;
72
+ }
73
+
74
+ > ul {
75
+ padding: 0;
76
+ margin-top: 5px;
77
+ margin-bottom: 0;
78
+ line-height: 18px;
79
+
80
+ li {
81
+ display: block;
82
+ font-size: small;
83
+
84
+ span {
85
+ position: absolute;
86
+ right: 0;
87
+ padding-right: 10px;
88
+ }
89
+ }
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+ #menuKey {
96
+ margin-top: 50px;
97
+ font-size: larger;
98
+ }
99
+
100
+ .dietIcon {
101
+ height: 1em;
102
+ }
@@ -0,0 +1,49 @@
1
+ $nav_bar_height_mobile: 60px;
2
+
3
+ nav {
4
+ height: $nav_bar_height_mobile;
5
+ overflow-x: scroll;
6
+ white-space: nowrap;
7
+
8
+ > a {
9
+ display: none;
10
+ }
11
+
12
+ > ul {
13
+ float: left;
14
+
15
+ > li {
16
+ display: inline-block;
17
+ vertical-align: middle;
18
+ margin-right: 10px;
19
+ margin-left: 10px;
20
+ height: 100%;
21
+
22
+ &#mobileLogo {
23
+ display: inline-block;
24
+ height: $nav_bar_height_mobile;
25
+ margin-left: 0;
26
+
27
+ a {
28
+ padding-right: 0;
29
+
30
+ &:hover, &.currentPage {
31
+ box-shadow: none;
32
+ }
33
+
34
+ img {
35
+ vertical-align: middle;
36
+ height: $nav_bar_height_mobile;
37
+
38
+ padding: 5px;
39
+ box-sizing: border-box;
40
+ }
41
+ }
42
+ }
43
+
44
+ a {
45
+ padding: 0 10px;
46
+ }
47
+ }
48
+ }
49
+ }
data/_sass/nav.scss ADDED
@@ -0,0 +1,69 @@
1
+ $nav_bar_height: 80px;
2
+
3
+ nav {
4
+ width: 100%;
5
+ height: $nav_bar_height;
6
+ position: fixed;
7
+ z-index: 1;
8
+ background-color: transparent;
9
+ transition: background-color 0.5s, box-shadow 0.5s;
10
+
11
+ > a {
12
+ align-items: center;
13
+ text-decoration: none;
14
+ display: flex;
15
+ float: left;
16
+
17
+ span {
18
+ color: $accent-color;
19
+ font-family: $title-font;
20
+ font-size: 200%;
21
+ }
22
+
23
+ img {
24
+ width: $nav_bar_height;
25
+ height: $nav_bar_height;
26
+ padding: 10px;
27
+ box-sizing: border-box;
28
+ }
29
+ }
30
+
31
+ &#scrolled, &:hover {
32
+ background-color: transparentize($background-color, $opacity);
33
+
34
+ a {
35
+ color: $foreground-color;
36
+ }
37
+ }
38
+
39
+ > ul {
40
+ height: 100%;
41
+ margin: 0;
42
+ padding: 0;
43
+ text-align: right;
44
+
45
+ > li {
46
+ display: inline-block;
47
+ height: 100%;
48
+ margin-right: 20px;
49
+
50
+ &#mobileLogo {
51
+ display: none;
52
+ }
53
+
54
+ > a {
55
+ text-decoration: none;
56
+ display: flex;
57
+ align-items: center;
58
+ height: 100%;
59
+ padding: 0 10px;
60
+ transition: box-shadow 0.2s, color 0.2s;
61
+ color: $transparent-nav-bar-text-color;
62
+
63
+ &:hover, &.currentPage {
64
+ box-shadow: 0 -5px $accent-color inset;
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,18 @@
1
+ .openingTimes {
2
+ display: inline-grid;
3
+ grid-template-columns: auto auto;
4
+ margin-top: 20px;
5
+
6
+ p {
7
+ margin: 0;
8
+
9
+ &:nth-child(2n + 1) {
10
+ font-weight: bold;
11
+ color: $accent_color;
12
+ }
13
+
14
+ &:nth-child(2n) {
15
+ margin-left: 10px;
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,3 @@
1
+ #reviews {
2
+ grid-template-columns: auto;
3
+ }
@@ -0,0 +1,40 @@
1
+ #reviews {
2
+ display: grid;
3
+ grid-template-columns: auto auto auto;
4
+ grid-column-gap: 20px;
5
+ margin-bottom: 20px;
6
+
7
+ a {
8
+ display: block;
9
+ text-decoration: none;
10
+ padding: 10px;
11
+ border-radius: $border-radius;
12
+ border: 2px transparent solid;
13
+
14
+ &:hover {
15
+ border: 2px $accent-color solid;
16
+ }
17
+
18
+ p {
19
+ margin: 0;
20
+ }
21
+
22
+ > p.username {
23
+ font-size: small;
24
+ }
25
+
26
+ h2 {
27
+ margin: 0;
28
+
29
+ &:hover {
30
+ text-decoration: underline;
31
+ }
32
+ }
33
+
34
+ .stars {
35
+ display: block;
36
+ color: $accent-color;
37
+ margin-bottom: 10px;
38
+ }
39
+ }
40
+ }
@@ -0,0 +1,13 @@
1
+ #socialsList {
2
+ margin-top: 20px;
3
+
4
+ a {
5
+ text-decoration: none;
6
+ margin-right: 10px;
7
+
8
+ img {
9
+ width: 40px;
10
+ border-radius: 100%;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,45 @@
1
+ ---
2
+ ---
3
+
4
+ // Color themes
5
+ {% for color_theme in site.data.themes.color_themes %}
6
+ {% if color_theme.name == site.data.brand.color_theme %}
7
+ $foreground-color: {{ color_theme.foreground_color }};
8
+ $background-color: {{ color_theme.background_color }};
9
+ $transparent-nav-bar-text-color: {{ color_theme.transparent_nav_bar_text_color }};
10
+ {% endif %}
11
+ {% endfor %}
12
+
13
+ // Font themes
14
+ {% for font_theme in site.data.themes.font_themes %}
15
+ {% if font_theme.name == site.data.brand.font_theme %}
16
+ {% if font_theme.font_url %}
17
+ @import url({{ font_theme.font_url }});
18
+ {% endif %}
19
+
20
+ $title-font: {{ font_theme.title_font }};
21
+ $body-font: {{ font_theme.body_font }};
22
+ {% endif %}
23
+ {% endfor %}
24
+
25
+ $accent-color: {{ site.data.brand.accent_color }};
26
+ $opacity: 0.3;
27
+ $border-radius: 10px;
28
+
29
+ @import "main";
30
+ @import "nav";
31
+ @import "reviews";
32
+ @import "openingTimes";
33
+ @import "socials";
34
+ @import "gmap";
35
+ @import "gallery";
36
+ @import "menu";
37
+
38
+ @media only screen and (max-width: 480pt) { /* Mobile */
39
+ @import "main.mobile";
40
+ @import "nav.mobile";
41
+ @import "reviews.mobile";
42
+ @import "gmap.mobile";
43
+ @import "gallery.mobile";
44
+ @import "menu.mobile";
45
+ }
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig>
3
+ <msapplication>
4
+ <tile>
5
+ <square70x70logo src="/favicon-70.png"/>
6
+ <square150x150logo src="/favicon-150.png"/>
7
+ <square310x310logo src="/favicon-310.png"/>
8
+ <TileColor>#FFFFFF</TileColor>
9
+ </tile>
10
+ </msapplication>
11
+ </browserconfig>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?><svg id="Layer_1" style="enable-background:new 0 0 128 128;" version="1.1" viewBox="0 0 128 128" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
2
+ .st0{fill:#267CB5;}
3
+ .st1{fill:#FFFFFF;}
4
+ </style><g><circle class="st0" cx="64" cy="64" r="64"/></g><g><g><path class="st1" d="M64,28"/></g></g><g><g><path class="st1" d="M64,72.4l38.2-32.7c-0.6-0.4-1.4-0.7-2.2-0.7H28c-0.8,0-1.6,0.3-2.2,0.7L64,72.4z"/></g><g><path class="st1" d="M66.6,75.4c-1.5,1.3-3.7,1.3-5.2,0L24,43.5V85c0,2.2,1.8,4,4,4h72c2.2,0,4-1.8,4-4V43.4L66.6,75.4z"/></g></g></svg>
@@ -0,0 +1 @@
1
+ <?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg height="100%" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" version="1.1" viewBox="0 0 512 512" width="100%" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M512,256c0,-141.385 -114.615,-256 -256,-256c-141.385,0 -256,114.615 -256,256c0,127.777 93.616,233.685 216,252.89l0,-178.89l-65,0l0,-74l65,0l0,-56.4c0,-64.16 38.219,-99.6 96.695,-99.6c28.009,0 57.305,5 57.305,5l0,63l-32.281,0c-31.801,0 -41.719,19.733 -41.719,39.978l0,48.022l71,0l-11.35,74l-59.65,0l0,178.89c122.385,-19.205 216,-125.113 216,-252.89Z" style="fill:#1877f2;fill-rule:nonzero;"/><path d="M355.65,330l11.35,-74l-71,0l0,-48.022c0,-20.245 9.917,-39.978 41.719,-39.978l32.281,0l0,-63c0,0 -29.297,-5 -57.305,-5c-58.476,0 -96.695,35.44 -96.695,99.6l0,56.4l-65,0l0,74l65,0l0,178.89c13.033,2.045 26.392,3.11 40,3.11c13.608,0 26.966,-1.065 40,-3.11l0,-178.89l59.65,0Z" style="fill:#fff;fill-rule:nonzero;"/></g></svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?><svg id="Layer_1" style="enable-background:new 0 0 1000 1000;" version="1.1" viewBox="0 0 1000 1000" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
2
+ .st0{fill:url(#SVGID_1_);}
3
+ .st1{fill:#FFFFFF;}
4
+ </style><linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="146.4465" x2="853.5535" y1="853.5535" y2="146.4465"><stop offset="0" style="stop-color:#FFD521"/><stop offset="5.510481e-02" style="stop-color:#FFD020"/><stop offset="0.1241" style="stop-color:#FEC01E"/><stop offset="0.2004" style="stop-color:#FCA71B"/><stop offset="0.2821" style="stop-color:#FA8316"/><stop offset="0.3681" style="stop-color:#F85510"/><stop offset="0.4563" style="stop-color:#F51E09"/><stop offset="0.5" style="stop-color:#F30005"/><stop offset="0.5035" style="stop-color:#F20007"/><stop offset="0.5966" style="stop-color:#E1003B"/><stop offset="0.6879" style="stop-color:#D30067"/><stop offset="0.7757" style="stop-color:#C70088"/><stop offset="0.8589" style="stop-color:#BF00A0"/><stop offset="0.9357" style="stop-color:#BB00AF"/><stop offset="1" style="stop-color:#B900B4"/></linearGradient><path class="st0" d="M500,1000L500,1000C223.9,1000,0,776.1,0,500v0C0,223.9,223.9,0,500,0h0c276.1,0,500,223.9,500,500v0 C1000,776.1,776.1,1000,500,1000z"/><g><path class="st1" d="M500,220.2c91.1,0,101.9,0.3,137.9,2c33.3,1.5,51.4,7.1,63.4,11.8c15.9,6.2,27.3,13.6,39.2,25.5 c11.9,11.9,19.3,23.3,25.5,39.2c4.7,12,10.2,30.1,11.8,63.4c1.6,36,2,46.8,2,137.9s-0.3,101.9-2,137.9 c-1.5,33.3-7.1,51.4-11.8,63.4c-6.2,15.9-13.6,27.3-25.5,39.2c-11.9,11.9-23.3,19.3-39.2,25.5c-12,4.7-30.1,10.2-63.4,11.8 c-36,1.6-46.8,2-137.9,2s-101.9-0.3-137.9-2c-33.3-1.5-51.4-7.1-63.4-11.8c-15.9-6.2-27.3-13.6-39.2-25.5 c-11.9-11.9-19.3-23.3-25.5-39.2c-4.7-12-10.2-30.1-11.8-63.4c-1.6-36-2-46.8-2-137.9s0.3-101.9,2-137.9 c1.5-33.3,7.1-51.4,11.8-63.4c6.2-15.9,13.6-27.3,25.5-39.2c11.9-11.9,23.3-19.3,39.2-25.5c12-4.7,30.1-10.2,63.4-11.8 C398.1,220.5,408.9,220.2,500,220.2 M500,158.7c-92.7,0-104.3,0.4-140.7,2.1c-36.3,1.7-61.1,7.4-82.9,15.9 C254,185.3,234.9,197,216,216c-19,19-30.6,38-39.4,60.5c-8.4,21.7-14.2,46.5-15.9,82.9c-1.7,36.4-2.1,48-2.1,140.7 c0,92.7,0.4,104.3,2.1,140.7c1.7,36.3,7.4,61.1,15.9,82.9C185.3,746,197,765.1,216,784c19,19,38,30.6,60.5,39.4 c21.7,8.4,46.5,14.2,82.9,15.9c36.4,1.7,48,2.1,140.7,2.1s104.3-0.4,140.7-2.1c36.3-1.7,61.1-7.4,82.9-15.9 C746,814.7,765.1,803,784,784c19-19,30.6-38,39.4-60.5c8.4-21.7,14.2-46.5,15.9-82.9c1.7-36.4,2.1-48,2.1-140.7 s-0.4-104.3-2.1-140.7c-1.7-36.3-7.4-61.1-15.9-82.9C814.7,254,803,234.9,784,216c-19-19-38-30.6-60.5-39.4 c-21.7-8.4-46.5-14.2-82.9-15.9C604.3,159.1,592.7,158.7,500,158.7L500,158.7z"/><path class="st1" d="M500,324.7c-96.8,0-175.3,78.5-175.3,175.3S403.2,675.3,500,675.3S675.3,596.8,675.3,500 S596.8,324.7,500,324.7z M500,613.8c-62.8,0-113.8-50.9-113.8-113.8S437.2,386.2,500,386.2c62.8,0,113.8,50.9,113.8,113.8 S562.8,613.8,500,613.8z"/><circle class="st1" cx="682.2" cy="317.8" r="41"/></g></svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" ?><svg id="Layer_1" style="enable-background:new 0 0 512 512;" version="1.1" viewBox="0 0 512 512" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><style type="text/css">
2
+ .st0{fill:#54205E;}
3
+ .st1{fill-rule:evenodd;clip-rule:evenodd;fill:#FFFFFF;}
4
+ </style><g><path class="st0" d="M512,397.1c0,63.5-51.5,114.9-114.9,114.9H114.9C51.5,512,0,460.5,0,397.1V114.9C0,51.5,51.5,0,114.9,0h282.2 C460.5,0,512,51.5,512,114.9V397.1z"/><g><path class="st1" d="M326.3,385.5c-9.7,0.3-18.9-1.9-28.2-4.5c-62.3-17.8-108.9-56.6-146.5-108c-14.2-19.3-27.3-39.3-31.7-63.4 c-5.2-28.7,3.1-53.2,24.5-73c6.8-6.4,27.7-9.1,36-5c3.1,1.5,5.1,4.2,6.3,7.2c7.9,18.6,15.6,37.1,23.3,55.8 c1.5,3.5,0.8,7.1-0.8,10.7c-3.9,8.6-10.3,15.5-16.7,22.3c-4.9,5.1-5.1,9.7-1.5,15.6c22,36.5,52.4,63.2,92.1,79.1 c5.9,2.4,10.4,1.6,14.4-3.4c6.6-8.3,13.7-16.3,19.9-24.9c4.3-5.9,9.2-6.8,15.2-4.1c13.2,6.1,26.3,12.3,39.4,18.5 c3,1.4,5.9,2.9,8.8,4.2c13.4,6.6,13.2,6.7,12,21.4c-2.2,28.8-23.8,42.9-49.3,50C338.1,385.6,332.2,385.7,326.3,385.5z"/><path class="st1" d="M351.1,163.6c10.5,9.3,17.9,21,23.9,33.6c4.8,10,7.8,20.6,9.7,31.5c0.4,2.2,1.4,4.7-0.8,6.6 c-6,0.4-11.9,0.6-17.9,1.3c-2.3,0.3-3-0.4-3.3-2.7c-2.7-20.6-11.1-38.6-25.3-53.6c-20.6-21.9-46.1-32.6-76.3-31.7 c-0.8,0-1.5,0-3.9,0.1c-0.2-6.8-0.3-13.5-0.5-20.3c1.3-2.3,3.7-1.9,5.7-1.9c12.4-0.3,24.7,1.4,36.6,5c9.7,2.9,19,6.8,27.7,12.2 c2.6,1.7,5.2,3.5,7.5,5.6c2,1.6,5.9,5,7.9,6.6C344.4,157.8,348.9,161.6,351.1,163.6z"/><path class="st1" d="M322,180.5c16.4,14.2,26.6,32.2,30,54c0.4,2.6-0.2,3.5-2.9,3.6c-5.3,0.2-10.6,0.7-15.9,1.3 c-1.6,0.2-2.2-0.1-2.5-2c-2.8-18.9-12.2-33.9-27.8-44.8c-11.5-8.1-24.5-12.1-38.7-11.6c-2.3,0.1-3-0.4-3.1-2.8 c-0.3-5.4-0.8-10.8-1.4-16.2c-0.2-1.9,0.3-2.4,2.2-2.4C284.5,159,304.4,166,322,180.5z"/><path class="st1" d="M299.7,242.1c-2.4-17.6-15.9-29.8-33.3-30c-1.6,0-2.3-0.2-2.5-2c-0.4-5.4-0.9-10.8-1.4-16.1 c-0.2-1.7,0.1-2.1,1.8-2.2c26.2-1.8,52.9,20.7,55.6,46.9c0.2,1.6-0.4,1.8-1.7,1.9C312.1,241,306,241.5,299.7,242.1z"/></g></g></svg>
@@ -0,0 +1,6 @@
1
+ /*
2
+ Turbolinks 5.2.0
3
+ Copyright © 2018 Basecamp, LLC
4
+ */
5
+ (function(){var t=this;(function(){(function(){this.Turbolinks={supported:function(){return null!=window.history.pushState&&null!=window.requestAnimationFrame&&null!=window.addEventListener}(),visit:function(t,r){return e.controller.visit(t,r)},clearCache:function(){return e.controller.clearCache()},setProgressBarDelay:function(t){return e.controller.setProgressBarDelay(t)}}}).call(this)}).call(t);var e=t.Turbolinks;(function(){(function(){var t,r,n,o=[].slice;e.copyObject=function(t){var e,r,n;r={};for(e in t)n=t[e],r[e]=n;return r},e.closest=function(e,r){return t.call(e,r)},t=function(){var t,e;return t=document.documentElement,null!=(e=t.closest)?e:function(t){var e;for(e=this;e;){if(e.nodeType===Node.ELEMENT_NODE&&r.call(e,t))return e;e=e.parentNode}}}(),e.defer=function(t){return setTimeout(t,1)},e.throttle=function(t){var e;return e=null,function(){var r;return r=1<=arguments.length?o.call(arguments,0):[],null!=e?e:e=requestAnimationFrame(function(n){return function(){return e=null,t.apply(n,r)}}(this))}},e.dispatch=function(t,e){var r,o,i,s,a,u;return a=null!=e?e:{},u=a.target,r=a.cancelable,o=a.data,i=document.createEvent("Events"),i.initEvent(t,!0,r===!0),i.data=null!=o?o:{},i.cancelable&&!n&&(s=i.preventDefault,i.preventDefault=function(){return this.defaultPrevented||Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}}),s.call(this)}),(null!=u?u:document).dispatchEvent(i),i},n=function(){var t;return t=document.createEvent("Events"),t.initEvent("test",!0,!0),t.preventDefault(),t.defaultPrevented}(),e.match=function(t,e){return r.call(t,e)},r=function(){var t,e,r,n;return t=document.documentElement,null!=(e=null!=(r=null!=(n=t.matchesSelector)?n:t.webkitMatchesSelector)?r:t.msMatchesSelector)?e:t.mozMatchesSelector}(),e.uuid=function(){var t,e,r;for(r="",t=e=1;36>=e;t=++e)r+=9===t||14===t||19===t||24===t?"-":15===t?"4":20===t?(Math.floor(4*Math.random())+8).toString(16):Math.floor(15*Math.random()).toString(16);return r}}).call(this),function(){e.Location=function(){function t(t){var e,r;null==t&&(t=""),r=document.createElement("a"),r.href=t.toString(),this.absoluteURL=r.href,e=r.hash.length,2>e?this.requestURL=this.absoluteURL:(this.requestURL=this.absoluteURL.slice(0,-e),this.anchor=r.hash.slice(1))}var e,r,n,o;return t.wrap=function(t){return t instanceof this?t:new this(t)},t.prototype.getOrigin=function(){return this.absoluteURL.split("/",3).join("/")},t.prototype.getPath=function(){var t,e;return null!=(t=null!=(e=this.requestURL.match(/\/\/[^\/]*(\/[^?;]*)/))?e[1]:void 0)?t:"/"},t.prototype.getPathComponents=function(){return this.getPath().split("/").slice(1)},t.prototype.getLastPathComponent=function(){return this.getPathComponents().slice(-1)[0]},t.prototype.getExtension=function(){var t,e;return null!=(t=null!=(e=this.getLastPathComponent().match(/\.[^.]*$/))?e[0]:void 0)?t:""},t.prototype.isHTML=function(){return this.getExtension().match(/^(?:|\.(?:htm|html|xhtml))$/)},t.prototype.isPrefixedBy=function(t){var e;return e=r(t),this.isEqualTo(t)||o(this.absoluteURL,e)},t.prototype.isEqualTo=function(t){return this.absoluteURL===(null!=t?t.absoluteURL:void 0)},t.prototype.toCacheKey=function(){return this.requestURL},t.prototype.toJSON=function(){return this.absoluteURL},t.prototype.toString=function(){return this.absoluteURL},t.prototype.valueOf=function(){return this.absoluteURL},r=function(t){return e(t.getOrigin()+t.getPath())},e=function(t){return n(t,"/")?t:t+"/"},o=function(t,e){return t.slice(0,e.length)===e},n=function(t,e){return t.slice(-e.length)===e},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.HttpRequest=function(){function r(r,n,o){this.delegate=r,this.requestCanceled=t(this.requestCanceled,this),this.requestTimedOut=t(this.requestTimedOut,this),this.requestFailed=t(this.requestFailed,this),this.requestLoaded=t(this.requestLoaded,this),this.requestProgressed=t(this.requestProgressed,this),this.url=e.Location.wrap(n).requestURL,this.referrer=e.Location.wrap(o).absoluteURL,this.createXHR()}return r.NETWORK_FAILURE=0,r.TIMEOUT_FAILURE=-1,r.timeout=60,r.prototype.send=function(){var t;return this.xhr&&!this.sent?(this.notifyApplicationBeforeRequestStart(),this.setProgress(0),this.xhr.send(),this.sent=!0,"function"==typeof(t=this.delegate).requestStarted?t.requestStarted():void 0):void 0},r.prototype.cancel=function(){return this.xhr&&this.sent?this.xhr.abort():void 0},r.prototype.requestProgressed=function(t){return t.lengthComputable?this.setProgress(t.loaded/t.total):void 0},r.prototype.requestLoaded=function(){return this.endRequest(function(t){return function(){var e;return 200<=(e=t.xhr.status)&&300>e?t.delegate.requestCompletedWithResponse(t.xhr.responseText,t.xhr.getResponseHeader("Turbolinks-Location")):(t.failed=!0,t.delegate.requestFailedWithStatusCode(t.xhr.status,t.xhr.responseText))}}(this))},r.prototype.requestFailed=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE)}}(this))},r.prototype.requestTimedOut=function(){return this.endRequest(function(t){return function(){return t.failed=!0,t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE)}}(this))},r.prototype.requestCanceled=function(){return this.endRequest()},r.prototype.notifyApplicationBeforeRequestStart=function(){return e.dispatch("turbolinks:request-start",{data:{url:this.url,xhr:this.xhr}})},r.prototype.notifyApplicationAfterRequestEnd=function(){return e.dispatch("turbolinks:request-end",{data:{url:this.url,xhr:this.xhr}})},r.prototype.createXHR=function(){return this.xhr=new XMLHttpRequest,this.xhr.open("GET",this.url,!0),this.xhr.timeout=1e3*this.constructor.timeout,this.xhr.setRequestHeader("Accept","text/html, application/xhtml+xml"),this.xhr.setRequestHeader("Turbolinks-Referrer",this.referrer),this.xhr.onprogress=this.requestProgressed,this.xhr.onload=this.requestLoaded,this.xhr.onerror=this.requestFailed,this.xhr.ontimeout=this.requestTimedOut,this.xhr.onabort=this.requestCanceled},r.prototype.endRequest=function(t){return this.xhr?(this.notifyApplicationAfterRequestEnd(),null!=t&&t.call(this),this.destroy()):void 0},r.prototype.setProgress=function(t){var e;return this.progress=t,"function"==typeof(e=this.delegate).requestProgressed?e.requestProgressed(this.progress):void 0},r.prototype.destroy=function(){var t;return this.setProgress(1),"function"==typeof(t=this.delegate).requestFinished&&t.requestFinished(),this.delegate=null,this.xhr=null},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ProgressBar=function(){function e(){this.trickle=t(this.trickle,this),this.stylesheetElement=this.createStylesheetElement(),this.progressElement=this.createProgressElement()}var r;return r=300,e.defaultCSS=".turbolinks-progress-bar {\n position: fixed;\n display: block;\n top: 0;\n left: 0;\n height: 3px;\n background: #0076ff;\n z-index: 9999;\n transition: width "+r+"ms ease-out, opacity "+r/2+"ms "+r/2+"ms ease-in;\n transform: translate3d(0, 0, 0);\n}",e.prototype.show=function(){return this.visible?void 0:(this.visible=!0,this.installStylesheetElement(),this.installProgressElement(),this.startTrickling())},e.prototype.hide=function(){return this.visible&&!this.hiding?(this.hiding=!0,this.fadeProgressElement(function(t){return function(){return t.uninstallProgressElement(),t.stopTrickling(),t.visible=!1,t.hiding=!1}}(this))):void 0},e.prototype.setValue=function(t){return this.value=t,this.refresh()},e.prototype.installStylesheetElement=function(){return document.head.insertBefore(this.stylesheetElement,document.head.firstChild)},e.prototype.installProgressElement=function(){return this.progressElement.style.width=0,this.progressElement.style.opacity=1,document.documentElement.insertBefore(this.progressElement,document.body),this.refresh()},e.prototype.fadeProgressElement=function(t){return this.progressElement.style.opacity=0,setTimeout(t,1.5*r)},e.prototype.uninstallProgressElement=function(){return this.progressElement.parentNode?document.documentElement.removeChild(this.progressElement):void 0},e.prototype.startTrickling=function(){return null!=this.trickleInterval?this.trickleInterval:this.trickleInterval=setInterval(this.trickle,r)},e.prototype.stopTrickling=function(){return clearInterval(this.trickleInterval),this.trickleInterval=null},e.prototype.trickle=function(){return this.setValue(this.value+Math.random()/100)},e.prototype.refresh=function(){return requestAnimationFrame(function(t){return function(){return t.progressElement.style.width=10+90*t.value+"%"}}(this))},e.prototype.createStylesheetElement=function(){var t;return t=document.createElement("style"),t.type="text/css",t.textContent=this.constructor.defaultCSS,t},e.prototype.createProgressElement=function(){var t;return t=document.createElement("div"),t.className="turbolinks-progress-bar",t},e}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.BrowserAdapter=function(){function r(r){this.controller=r,this.showProgressBar=t(this.showProgressBar,this),this.progressBar=new e.ProgressBar}var n,o,i;return i=e.HttpRequest,n=i.NETWORK_FAILURE,o=i.TIMEOUT_FAILURE,r.prototype.visitProposedToLocationWithAction=function(t,e){return this.controller.startVisitToLocationWithAction(t,e)},r.prototype.visitStarted=function(t){return t.issueRequest(),t.changeHistory(),t.loadCachedSnapshot()},r.prototype.visitRequestStarted=function(t){return this.progressBar.setValue(0),t.hasCachedSnapshot()||"restore"!==t.action?this.showProgressBarAfterDelay():this.showProgressBar()},r.prototype.visitRequestProgressed=function(t){return this.progressBar.setValue(t.progress)},r.prototype.visitRequestCompleted=function(t){return t.loadResponse()},r.prototype.visitRequestFailedWithStatusCode=function(t,e){switch(e){case n:case o:return this.reload();default:return t.loadResponse()}},r.prototype.visitRequestFinished=function(t){return this.hideProgressBar()},r.prototype.visitCompleted=function(t){return t.followRedirect()},r.prototype.pageInvalidated=function(){return this.reload()},r.prototype.showProgressBarAfterDelay=function(){return this.progressBarTimeout=setTimeout(this.showProgressBar,this.controller.progressBarDelay)},r.prototype.showProgressBar=function(){return this.progressBar.show()},r.prototype.hideProgressBar=function(){return this.progressBar.hide(),clearTimeout(this.progressBarTimeout)},r.prototype.reload=function(){return window.location.reload()},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.History=function(){function r(e){this.delegate=e,this.onPageLoad=t(this.onPageLoad,this),this.onPopState=t(this.onPopState,this)}return r.prototype.start=function(){return this.started?void 0:(addEventListener("popstate",this.onPopState,!1),addEventListener("load",this.onPageLoad,!1),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener("popstate",this.onPopState,!1),removeEventListener("load",this.onPageLoad,!1),this.started=!1):void 0},r.prototype.push=function(t,r){return t=e.Location.wrap(t),this.update("push",t,r)},r.prototype.replace=function(t,r){return t=e.Location.wrap(t),this.update("replace",t,r)},r.prototype.onPopState=function(t){var r,n,o,i;return this.shouldHandlePopState()&&(i=null!=(n=t.state)?n.turbolinks:void 0)?(r=e.Location.wrap(window.location),o=i.restorationIdentifier,this.delegate.historyPoppedToLocationWithRestorationIdentifier(r,o)):void 0},r.prototype.onPageLoad=function(t){return e.defer(function(t){return function(){return t.pageLoaded=!0}}(this))},r.prototype.shouldHandlePopState=function(){return this.pageIsLoaded()},r.prototype.pageIsLoaded=function(){return this.pageLoaded||"complete"===document.readyState},r.prototype.update=function(t,e,r){var n;return n={turbolinks:{restorationIdentifier:r}},history[t+"State"](n,null,e)},r}()}.call(this),function(){e.HeadDetails=function(){function t(t){var e,r,n,s,a,u;for(this.elements={},n=0,a=t.length;a>n;n++)u=t[n],u.nodeType===Node.ELEMENT_NODE&&(s=u.outerHTML,r=null!=(e=this.elements)[s]?e[s]:e[s]={type:i(u),tracked:o(u),elements:[]},r.elements.push(u))}var e,r,n,o,i;return t.fromHeadElement=function(t){var e;return new this(null!=(e=null!=t?t.childNodes:void 0)?e:[])},t.prototype.hasElementWithKey=function(t){return t in this.elements},t.prototype.getTrackedElementSignature=function(){var t,e;return function(){var r,n;r=this.elements,n=[];for(t in r)e=r[t].tracked,e&&n.push(t);return n}.call(this).join("")},t.prototype.getScriptElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("script",t)},t.prototype.getStylesheetElementsNotInDetails=function(t){return this.getElementsMatchingTypeNotInDetails("stylesheet",t)},t.prototype.getElementsMatchingTypeNotInDetails=function(t,e){var r,n,o,i,s,a;o=this.elements,s=[];for(n in o)i=o[n],a=i.type,r=i.elements,a!==t||e.hasElementWithKey(n)||s.push(r[0]);return s},t.prototype.getProvisionalElements=function(){var t,e,r,n,o,i,s;r=[],n=this.elements;for(e in n)o=n[e],s=o.type,i=o.tracked,t=o.elements,null!=s||i?t.length>1&&r.push.apply(r,t.slice(1)):r.push.apply(r,t);return r},t.prototype.getMetaValue=function(t){var e;return null!=(e=this.findMetaElementByName(t))?e.getAttribute("content"):void 0},t.prototype.findMetaElementByName=function(t){var r,n,o,i;r=void 0,i=this.elements;for(o in i)n=i[o].elements,e(n[0],t)&&(r=n[0]);return r},i=function(t){return r(t)?"script":n(t)?"stylesheet":void 0},o=function(t){return"reload"===t.getAttribute("data-turbolinks-track")},r=function(t){var e;return e=t.tagName.toLowerCase(),"script"===e},n=function(t){var e;return e=t.tagName.toLowerCase(),"style"===e||"link"===e&&"stylesheet"===t.getAttribute("rel")},e=function(t,e){var r;return r=t.tagName.toLowerCase(),"meta"===r&&t.getAttribute("name")===e},t}()}.call(this),function(){e.Snapshot=function(){function t(t,e){this.headDetails=t,this.bodyElement=e}return t.wrap=function(t){return t instanceof this?t:"string"==typeof t?this.fromHTMLString(t):this.fromHTMLElement(t)},t.fromHTMLString=function(t){var e;return e=document.createElement("html"),e.innerHTML=t,this.fromHTMLElement(e)},t.fromHTMLElement=function(t){var r,n,o,i;return o=t.querySelector("head"),r=null!=(i=t.querySelector("body"))?i:document.createElement("body"),n=e.HeadDetails.fromHeadElement(o),new this(n,r)},t.prototype.clone=function(){return new this.constructor(this.headDetails,this.bodyElement.cloneNode(!0))},t.prototype.getRootLocation=function(){var t,r;return r=null!=(t=this.getSetting("root"))?t:"/",new e.Location(r)},t.prototype.getCacheControlValue=function(){return this.getSetting("cache-control")},t.prototype.getElementForAnchor=function(t){try{return this.bodyElement.querySelector("[id='"+t+"'], a[name='"+t+"']")}catch(e){}},t.prototype.getPermanentElements=function(){return this.bodyElement.querySelectorAll("[id][data-turbolinks-permanent]")},t.prototype.getPermanentElementById=function(t){return this.bodyElement.querySelector("#"+t+"[data-turbolinks-permanent]")},t.prototype.getPermanentElementsPresentInSnapshot=function(t){var e,r,n,o,i;for(o=this.getPermanentElements(),i=[],r=0,n=o.length;n>r;r++)e=o[r],t.getPermanentElementById(e.id)&&i.push(e);return i},t.prototype.findFirstAutofocusableElement=function(){return this.bodyElement.querySelector("[autofocus]")},t.prototype.hasAnchor=function(t){return null!=this.getElementForAnchor(t)},t.prototype.isPreviewable=function(){return"no-preview"!==this.getCacheControlValue()},t.prototype.isCacheable=function(){return"no-cache"!==this.getCacheControlValue()},t.prototype.isVisitable=function(){return"reload"!==this.getSetting("visit-control")},t.prototype.getSetting=function(t){return this.headDetails.getMetaValue("turbolinks-"+t)},t}()}.call(this),function(){var t=[].slice;e.Renderer=function(){function e(){}var r;return e.render=function(){var e,r,n,o;return n=arguments[0],r=arguments[1],e=3<=arguments.length?t.call(arguments,2):[],o=function(t,e,r){r.prototype=t.prototype;var n=new r,o=t.apply(n,e);return Object(o)===o?o:n}(this,e,function(){}),o.delegate=n,o.render(r),o},e.prototype.renderView=function(t){return this.delegate.viewWillRender(this.newBody),t(),this.delegate.viewRendered(this.newBody)},e.prototype.invalidateView=function(){return this.delegate.viewInvalidated()},e.prototype.createScriptElement=function(t){var e;return"false"===t.getAttribute("data-turbolinks-eval")?t:(e=document.createElement("script"),e.textContent=t.textContent,e.async=!1,r(e,t),e)},r=function(t,e){var r,n,o,i,s,a,u;for(i=e.attributes,a=[],r=0,n=i.length;n>r;r++)s=i[r],o=s.name,u=s.value,a.push(t.setAttribute(o,u));return a},e}()}.call(this),function(){var t,r,n=function(t,e){function r(){this.constructor=t}for(var n in e)o.call(e,n)&&(t[n]=e[n]);return r.prototype=e.prototype,t.prototype=new r,t.__super__=e.prototype,t},o={}.hasOwnProperty;e.SnapshotRenderer=function(e){function o(t,e,r){this.currentSnapshot=t,this.newSnapshot=e,this.isPreview=r,this.currentHeadDetails=this.currentSnapshot.headDetails,this.newHeadDetails=this.newSnapshot.headDetails,this.currentBody=this.currentSnapshot.bodyElement,this.newBody=this.newSnapshot.bodyElement}return n(o,e),o.prototype.render=function(t){return this.shouldRender()?(this.mergeHead(),this.renderView(function(e){return function(){return e.replaceBody(),e.isPreview||e.focusFirstAutofocusableElement(),t()}}(this))):this.invalidateView()},o.prototype.mergeHead=function(){return this.copyNewHeadStylesheetElements(),this.copyNewHeadScriptElements(),this.removeCurrentHeadProvisionalElements(),this.copyNewHeadProvisionalElements()},o.prototype.replaceBody=function(){var t;return t=this.relocateCurrentBodyPermanentElements(),this.activateNewBodyScriptElements(),this.assignNewBody(),this.replacePlaceholderElementsWithClonedPermanentElements(t)},o.prototype.shouldRender=function(){return this.newSnapshot.isVisitable()&&this.trackedElementsAreIdentical()},o.prototype.trackedElementsAreIdentical=function(){return this.currentHeadDetails.getTrackedElementSignature()===this.newHeadDetails.getTrackedElementSignature()},o.prototype.copyNewHeadStylesheetElements=function(){var t,e,r,n,o;for(n=this.getNewHeadStylesheetElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.copyNewHeadScriptElements=function(){var t,e,r,n,o;for(n=this.getNewHeadScriptElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(this.createScriptElement(t)));return o},o.prototype.removeCurrentHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getCurrentHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.removeChild(t));return o},o.prototype.copyNewHeadProvisionalElements=function(){var t,e,r,n,o;for(n=this.getNewHeadProvisionalElements(),o=[],e=0,r=n.length;r>e;e++)t=n[e],o.push(document.head.appendChild(t));return o},o.prototype.relocateCurrentBodyPermanentElements=function(){var e,n,o,i,s,a,u;for(a=this.getCurrentBodyPermanentElements(),u=[],e=0,n=a.length;n>e;e++)i=a[e],s=t(i),o=this.newSnapshot.getPermanentElementById(i.id),r(i,s.element),r(o,i),u.push(s);return u},o.prototype.replacePlaceholderElementsWithClonedPermanentElements=function(t){var e,n,o,i,s,a,u;for(u=[],o=0,i=t.length;i>o;o++)a=t[o],n=a.element,s=a.permanentElement,e=s.cloneNode(!0),u.push(r(n,e));return u},o.prototype.activateNewBodyScriptElements=function(){var t,e,n,o,i,s;for(i=this.getNewBodyScriptElements(),s=[],e=0,o=i.length;o>e;e++)n=i[e],t=this.createScriptElement(n),s.push(r(n,t));return s},o.prototype.assignNewBody=function(){return document.body=this.newBody},o.prototype.focusFirstAutofocusableElement=function(){var t;return null!=(t=this.newSnapshot.findFirstAutofocusableElement())?t.focus():void 0},o.prototype.getNewHeadStylesheetElements=function(){return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails)},o.prototype.getNewHeadScriptElements=function(){return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails)},o.prototype.getCurrentHeadProvisionalElements=function(){return this.currentHeadDetails.getProvisionalElements()},o.prototype.getNewHeadProvisionalElements=function(){return this.newHeadDetails.getProvisionalElements()},o.prototype.getCurrentBodyPermanentElements=function(){return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot)},o.prototype.getNewBodyScriptElements=function(){return this.newBody.querySelectorAll("script")},o}(e.Renderer),t=function(t){var e;return e=document.createElement("meta"),e.setAttribute("name","turbolinks-permanent-placeholder"),e.setAttribute("content",t.id),{element:e,permanentElement:t}},r=function(t,e){var r;return(r=t.parentNode)?r.replaceChild(e,t):void 0}}.call(this),function(){var t=function(t,e){function n(){this.constructor=t}for(var o in e)r.call(e,o)&&(t[o]=e[o]);return n.prototype=e.prototype,t.prototype=new n,t.__super__=e.prototype,t},r={}.hasOwnProperty;e.ErrorRenderer=function(e){function r(t){var e;e=document.createElement("html"),e.innerHTML=t,this.newHead=e.querySelector("head"),this.newBody=e.querySelector("body")}return t(r,e),r.prototype.render=function(t){return this.renderView(function(e){return function(){return e.replaceHeadAndBody(),e.activateBodyScriptElements(),t()}}(this))},r.prototype.replaceHeadAndBody=function(){var t,e;return e=document.head,t=document.body,e.parentNode.replaceChild(this.newHead,e),t.parentNode.replaceChild(this.newBody,t)},r.prototype.activateBodyScriptElements=function(){var t,e,r,n,o,i;for(n=this.getScriptElements(),i=[],e=0,r=n.length;r>e;e++)o=n[e],t=this.createScriptElement(o),i.push(o.parentNode.replaceChild(t,o));return i},r.prototype.getScriptElements=function(){return document.documentElement.querySelectorAll("script")},r}(e.Renderer)}.call(this),function(){e.View=function(){function t(t){this.delegate=t,this.htmlElement=document.documentElement}return t.prototype.getRootLocation=function(){return this.getSnapshot().getRootLocation()},t.prototype.getElementForAnchor=function(t){return this.getSnapshot().getElementForAnchor(t)},t.prototype.getSnapshot=function(){return e.Snapshot.fromHTMLElement(this.htmlElement)},t.prototype.render=function(t,e){var r,n,o;return o=t.snapshot,r=t.error,n=t.isPreview,this.markAsPreview(n),null!=o?this.renderSnapshot(o,n,e):this.renderError(r,e)},t.prototype.markAsPreview=function(t){return t?this.htmlElement.setAttribute("data-turbolinks-preview",""):this.htmlElement.removeAttribute("data-turbolinks-preview")},t.prototype.renderSnapshot=function(t,r,n){return e.SnapshotRenderer.render(this.delegate,n,this.getSnapshot(),e.Snapshot.wrap(t),r)},t.prototype.renderError=function(t,r){return e.ErrorRenderer.render(this.delegate,r,t)},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.ScrollManager=function(){function r(r){this.delegate=r,this.onScroll=t(this.onScroll,this),this.onScroll=e.throttle(this.onScroll)}return r.prototype.start=function(){return this.started?void 0:(addEventListener("scroll",this.onScroll,!1),this.onScroll(),this.started=!0)},r.prototype.stop=function(){return this.started?(removeEventListener("scroll",this.onScroll,!1),this.started=!1):void 0},r.prototype.scrollToElement=function(t){return t.scrollIntoView()},r.prototype.scrollToPosition=function(t){var e,r;return e=t.x,r=t.y,window.scrollTo(e,r)},r.prototype.onScroll=function(t){return this.updatePosition({x:window.pageXOffset,y:window.pageYOffset})},r.prototype.updatePosition=function(t){var e;return this.position=t,null!=(e=this.delegate)?e.scrollPositionChanged(this.position):void 0},r}()}.call(this),function(){e.SnapshotCache=function(){function t(t){this.size=t,this.keys=[],this.snapshots={}}var r;return t.prototype.has=function(t){var e;return e=r(t),e in this.snapshots},t.prototype.get=function(t){var e;if(this.has(t))return e=this.read(t),this.touch(t),e},t.prototype.put=function(t,e){return this.write(t,e),this.touch(t),e},t.prototype.read=function(t){var e;return e=r(t),this.snapshots[e]},t.prototype.write=function(t,e){var n;return n=r(t),this.snapshots[n]=e},t.prototype.touch=function(t){var e,n;return n=r(t),e=this.keys.indexOf(n),e>-1&&this.keys.splice(e,1),this.keys.unshift(n),this.trim()},t.prototype.trim=function(){var t,e,r,n,o;for(n=this.keys.splice(this.size),o=[],t=0,r=n.length;r>t;t++)e=n[t],o.push(delete this.snapshots[e]);return o},r=function(t){return e.Location.wrap(t).toCacheKey()},t}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Visit=function(){function r(r,n,o){this.controller=r,this.action=o,this.performScroll=t(this.performScroll,this),this.identifier=e.uuid(),this.location=e.Location.wrap(n),this.adapter=this.controller.adapter,this.state="initialized",this.timingMetrics={}}var n;return r.prototype.start=function(){return"initialized"===this.state?(this.recordTimingMetric("visitStart"),this.state="started",this.adapter.visitStarted(this)):void 0},r.prototype.cancel=function(){var t;return"started"===this.state?(null!=(t=this.request)&&t.cancel(),this.cancelRender(),this.state="canceled"):void 0},r.prototype.complete=function(){var t;return"started"===this.state?(this.recordTimingMetric("visitEnd"),this.state="completed","function"==typeof(t=this.adapter).visitCompleted&&t.visitCompleted(this),this.controller.visitCompleted(this)):void 0},r.prototype.fail=function(){var t;return"started"===this.state?(this.state="failed","function"==typeof(t=this.adapter).visitFailed?t.visitFailed(this):void 0):void 0},r.prototype.changeHistory=function(){var t,e;return this.historyChanged?void 0:(t=this.location.isEqualTo(this.referrer)?"replace":this.action,e=n(t),this.controller[e](this.location,this.restorationIdentifier),this.historyChanged=!0)},r.prototype.issueRequest=function(){return this.shouldIssueRequest()&&null==this.request?(this.progress=0,this.request=new e.HttpRequest(this,this.location,this.referrer),this.request.send()):void 0},r.prototype.getCachedSnapshot=function(){var t;return!(t=this.controller.getCachedSnapshotForLocation(this.location))||null!=this.location.anchor&&!t.hasAnchor(this.location.anchor)||"restore"!==this.action&&!t.isPreviewable()?void 0:t},r.prototype.hasCachedSnapshot=function(){return null!=this.getCachedSnapshot()},r.prototype.loadCachedSnapshot=function(){var t,e;return(e=this.getCachedSnapshot())?(t=this.shouldIssueRequest(),this.render(function(){var r;return this.cacheSnapshot(),this.controller.render({snapshot:e,isPreview:t},this.performScroll),"function"==typeof(r=this.adapter).visitRendered&&r.visitRendered(this),t?void 0:this.complete()})):void 0},r.prototype.loadResponse=function(){return null!=this.response?this.render(function(){var t,e;return this.cacheSnapshot(),this.request.failed?(this.controller.render({error:this.response},this.performScroll),"function"==typeof(t=this.adapter).visitRendered&&t.visitRendered(this),this.fail()):(this.controller.render({snapshot:this.response},this.performScroll),"function"==typeof(e=this.adapter).visitRendered&&e.visitRendered(this),this.complete())}):void 0},r.prototype.followRedirect=function(){return this.redirectedToLocation&&!this.followedRedirect?(this.location=this.redirectedToLocation,this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation,this.restorationIdentifier),this.followedRedirect=!0):void 0},r.prototype.requestStarted=function(){var t;return this.recordTimingMetric("requestStart"),"function"==typeof(t=this.adapter).visitRequestStarted?t.visitRequestStarted(this):void 0},r.prototype.requestProgressed=function(t){var e;return this.progress=t,"function"==typeof(e=this.adapter).visitRequestProgressed?e.visitRequestProgressed(this):void 0},r.prototype.requestCompletedWithResponse=function(t,r){return this.response=t,null!=r&&(this.redirectedToLocation=e.Location.wrap(r)),this.adapter.visitRequestCompleted(this)},r.prototype.requestFailedWithStatusCode=function(t,e){return this.response=e,this.adapter.visitRequestFailedWithStatusCode(this,t)},r.prototype.requestFinished=function(){var t;return this.recordTimingMetric("requestEnd"),"function"==typeof(t=this.adapter).visitRequestFinished?t.visitRequestFinished(this):void 0},r.prototype.performScroll=function(){return this.scrolled?void 0:("restore"===this.action?this.scrollToRestoredPosition()||this.scrollToTop():this.scrollToAnchor()||this.scrollToTop(),this.scrolled=!0)},r.prototype.scrollToRestoredPosition=function(){var t,e;return t=null!=(e=this.restorationData)?e.scrollPosition:void 0,null!=t?(this.controller.scrollToPosition(t),!0):void 0},r.prototype.scrollToAnchor=function(){return null!=this.location.anchor?(this.controller.scrollToAnchor(this.location.anchor),!0):void 0},r.prototype.scrollToTop=function(){return this.controller.scrollToPosition({x:0,y:0})},r.prototype.recordTimingMetric=function(t){var e;return null!=(e=this.timingMetrics)[t]?e[t]:e[t]=(new Date).getTime()},r.prototype.getTimingMetrics=function(){return e.copyObject(this.timingMetrics)},n=function(t){switch(t){case"replace":return"replaceHistoryWithLocationAndRestorationIdentifier";case"advance":case"restore":return"pushHistoryWithLocationAndRestorationIdentifier"}},r.prototype.shouldIssueRequest=function(){return"restore"===this.action?!this.hasCachedSnapshot():!0},r.prototype.cacheSnapshot=function(){return this.snapshotCached?void 0:(this.controller.cacheSnapshot(),this.snapshotCached=!0)},r.prototype.render=function(t){return this.cancelRender(),this.frame=requestAnimationFrame(function(e){return function(){return e.frame=null,t.call(e)}}(this))},r.prototype.cancelRender=function(){return this.frame?cancelAnimationFrame(this.frame):void 0},r}()}.call(this),function(){var t=function(t,e){return function(){return t.apply(e,arguments)}};e.Controller=function(){function r(){this.clickBubbled=t(this.clickBubbled,this),this.clickCaptured=t(this.clickCaptured,this),this.pageLoaded=t(this.pageLoaded,this),this.history=new e.History(this),this.view=new e.View(this),this.scrollManager=new e.ScrollManager(this),this.restorationData={},this.clearCache(),this.setProgressBarDelay(500)}return r.prototype.start=function(){return e.supported&&!this.started?(addEventListener("click",this.clickCaptured,!0),addEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.start(),this.startHistory(),this.started=!0,this.enabled=!0):void 0},r.prototype.disable=function(){return this.enabled=!1},r.prototype.stop=function(){return this.started?(removeEventListener("click",this.clickCaptured,!0),removeEventListener("DOMContentLoaded",this.pageLoaded,!1),this.scrollManager.stop(),this.stopHistory(),this.started=!1):void 0},r.prototype.clearCache=function(){return this.cache=new e.SnapshotCache(10)},r.prototype.visit=function(t,r){var n,o;return null==r&&(r={}),t=e.Location.wrap(t),this.applicationAllowsVisitingLocation(t)?this.locationIsVisitable(t)?(n=null!=(o=r.action)?o:"advance",this.adapter.visitProposedToLocationWithAction(t,n)):window.location=t:void 0},r.prototype.startVisitToLocationWithAction=function(t,r,n){var o;return e.supported?(o=this.getRestorationDataForIdentifier(n),this.startVisit(t,r,{restorationData:o})):window.location=t},r.prototype.setProgressBarDelay=function(t){return this.progressBarDelay=t},r.prototype.startHistory=function(){return this.location=e.Location.wrap(window.location),this.restorationIdentifier=e.uuid(),this.history.start(),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.stopHistory=function(){return this.history.stop()},r.prototype.pushHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.push(this.location,this.restorationIdentifier)},r.prototype.replaceHistoryWithLocationAndRestorationIdentifier=function(t,r){return this.restorationIdentifier=r,this.location=e.Location.wrap(t),this.history.replace(this.location,this.restorationIdentifier)},r.prototype.historyPoppedToLocationWithRestorationIdentifier=function(t,r){var n;return this.restorationIdentifier=r,this.enabled?(n=this.getRestorationDataForIdentifier(this.restorationIdentifier),this.startVisit(t,"restore",{restorationIdentifier:this.restorationIdentifier,restorationData:n,historyChanged:!0}),this.location=e.Location.wrap(t)):this.adapter.pageInvalidated()},r.prototype.getCachedSnapshotForLocation=function(t){var e;return null!=(e=this.cache.get(t))?e.clone():void 0},r.prototype.shouldCacheSnapshot=function(){return this.view.getSnapshot().isCacheable();
6
+ },r.prototype.cacheSnapshot=function(){var t,r;return this.shouldCacheSnapshot()?(this.notifyApplicationBeforeCachingSnapshot(),r=this.view.getSnapshot(),t=this.lastRenderedLocation,e.defer(function(e){return function(){return e.cache.put(t,r.clone())}}(this))):void 0},r.prototype.scrollToAnchor=function(t){var e;return(e=this.view.getElementForAnchor(t))?this.scrollToElement(e):this.scrollToPosition({x:0,y:0})},r.prototype.scrollToElement=function(t){return this.scrollManager.scrollToElement(t)},r.prototype.scrollToPosition=function(t){return this.scrollManager.scrollToPosition(t)},r.prototype.scrollPositionChanged=function(t){var e;return e=this.getCurrentRestorationData(),e.scrollPosition=t},r.prototype.render=function(t,e){return this.view.render(t,e)},r.prototype.viewInvalidated=function(){return this.adapter.pageInvalidated()},r.prototype.viewWillRender=function(t){return this.notifyApplicationBeforeRender(t)},r.prototype.viewRendered=function(){return this.lastRenderedLocation=this.currentVisit.location,this.notifyApplicationAfterRender()},r.prototype.pageLoaded=function(){return this.lastRenderedLocation=this.location,this.notifyApplicationAfterPageLoad()},r.prototype.clickCaptured=function(){return removeEventListener("click",this.clickBubbled,!1),addEventListener("click",this.clickBubbled,!1)},r.prototype.clickBubbled=function(t){var e,r,n;return this.enabled&&this.clickEventIsSignificant(t)&&(r=this.getVisitableLinkForNode(t.target))&&(n=this.getVisitableLocationForLink(r))&&this.applicationAllowsFollowingLinkToLocation(r,n)?(t.preventDefault(),e=this.getActionForLink(r),this.visit(n,{action:e})):void 0},r.prototype.applicationAllowsFollowingLinkToLocation=function(t,e){var r;return r=this.notifyApplicationAfterClickingLinkToLocation(t,e),!r.defaultPrevented},r.prototype.applicationAllowsVisitingLocation=function(t){var e;return e=this.notifyApplicationBeforeVisitingLocation(t),!e.defaultPrevented},r.prototype.notifyApplicationAfterClickingLinkToLocation=function(t,r){return e.dispatch("turbolinks:click",{target:t,data:{url:r.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationBeforeVisitingLocation=function(t){return e.dispatch("turbolinks:before-visit",{data:{url:t.absoluteURL},cancelable:!0})},r.prototype.notifyApplicationAfterVisitingLocation=function(t){return e.dispatch("turbolinks:visit",{data:{url:t.absoluteURL}})},r.prototype.notifyApplicationBeforeCachingSnapshot=function(){return e.dispatch("turbolinks:before-cache")},r.prototype.notifyApplicationBeforeRender=function(t){return e.dispatch("turbolinks:before-render",{data:{newBody:t}})},r.prototype.notifyApplicationAfterRender=function(){return e.dispatch("turbolinks:render")},r.prototype.notifyApplicationAfterPageLoad=function(t){return null==t&&(t={}),e.dispatch("turbolinks:load",{data:{url:this.location.absoluteURL,timing:t}})},r.prototype.startVisit=function(t,e,r){var n;return null!=(n=this.currentVisit)&&n.cancel(),this.currentVisit=this.createVisit(t,e,r),this.currentVisit.start(),this.notifyApplicationAfterVisitingLocation(t)},r.prototype.createVisit=function(t,r,n){var o,i,s,a,u;return i=null!=n?n:{},a=i.restorationIdentifier,s=i.restorationData,o=i.historyChanged,u=new e.Visit(this,t,r),u.restorationIdentifier=null!=a?a:e.uuid(),u.restorationData=e.copyObject(s),u.historyChanged=o,u.referrer=this.location,u},r.prototype.visitCompleted=function(t){return this.notifyApplicationAfterPageLoad(t.getTimingMetrics())},r.prototype.clickEventIsSignificant=function(t){return!(t.defaultPrevented||t.target.isContentEditable||t.which>1||t.altKey||t.ctrlKey||t.metaKey||t.shiftKey)},r.prototype.getVisitableLinkForNode=function(t){return this.nodeIsVisitable(t)?e.closest(t,"a[href]:not([target]):not([download])"):void 0},r.prototype.getVisitableLocationForLink=function(t){var r;return r=new e.Location(t.getAttribute("href")),this.locationIsVisitable(r)?r:void 0},r.prototype.getActionForLink=function(t){var e;return null!=(e=t.getAttribute("data-turbolinks-action"))?e:"advance"},r.prototype.nodeIsVisitable=function(t){var r;return(r=e.closest(t,"[data-turbolinks]"))?"false"!==r.getAttribute("data-turbolinks"):!0},r.prototype.locationIsVisitable=function(t){return t.isPrefixedBy(this.view.getRootLocation())&&t.isHTML()},r.prototype.getCurrentRestorationData=function(){return this.getRestorationDataForIdentifier(this.restorationIdentifier)},r.prototype.getRestorationDataForIdentifier=function(t){var e;return null!=(e=this.restorationData)[t]?e[t]:e[t]={}},r}()}.call(this),function(){!function(){var t,e;if((t=e=document.currentScript)&&!e.hasAttribute("data-turbolinks-suppress-warning"))for(;t=t.parentNode;)if(t===document.body)return console.warn("You are loading Turbolinks from a <script> element inside the <body> element. This is probably not what you meant to do!\n\nLoad your application\u2019s JavaScript bundle inside the <head> element instead. <script> elements in <body> are evaluated with each page change.\n\nFor more information, see: https://github.com/turbolinks/turbolinks#working-with-script-elements\n\n\u2014\u2014\nSuppress this warning by adding a `data-turbolinks-suppress-warning` attribute to: %s",e.outerHTML)}()}.call(this),function(){var t,r,n;e.start=function(){return r()?(null==e.controller&&(e.controller=t()),e.controller.start()):void 0},r=function(){return null==window.Turbolinks&&(window.Turbolinks=e),n()},t=function(){var t;return t=new e.Controller,t.adapter=new e.BrowserAdapter(t),t},n=function(){return window.Turbolinks===e},n()&&e.start()}.call(this)}).call(this),"object"==typeof module&&module.exports?module.exports=e:"function"==typeof define&&define.amd&&define(e)}).call(this);
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cafe-theme
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Gavin Douch
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-06-11 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: jekyll
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.2'
27
+ description:
28
+ email:
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - _config.yml
34
+ - _includes/banner.html
35
+ - _includes/footer.html
36
+ - _includes/gtag.html
37
+ - _includes/head.html
38
+ - _includes/icons.html
39
+ - _includes/map.html
40
+ - _includes/nav.html
41
+ - _includes/openTimes.html
42
+ - _includes/reviews.html
43
+ - _includes/socials.html
44
+ - _layouts/compress.html
45
+ - _layouts/default.html
46
+ - _sass/gallery.mobile.scss
47
+ - _sass/gallery.scss
48
+ - _sass/gmap.mobile.scss
49
+ - _sass/gmap.scss
50
+ - _sass/main.mobile.scss
51
+ - _sass/main.scss
52
+ - _sass/menu.mobile.scss
53
+ - _sass/menu.scss
54
+ - _sass/nav.mobile.scss
55
+ - _sass/nav.scss
56
+ - _sass/openingTimes.scss
57
+ - _sass/reviews.mobile.scss
58
+ - _sass/reviews.scss
59
+ - _sass/socials.scss
60
+ - assets/css/style.scss
61
+ - assets/images/banners/coffeePour/coffeePour.mp4
62
+ - assets/images/banners/coffeePour/coffeePour.webm
63
+ - assets/images/banners/coffeePour/coffeePour.webp
64
+ - assets/images/favicons/browserconfig.xml
65
+ - assets/images/favicons/favicon-114.png
66
+ - assets/images/favicons/favicon-120.png
67
+ - assets/images/favicons/favicon-144.png
68
+ - assets/images/favicons/favicon-150.png
69
+ - assets/images/favicons/favicon-152.png
70
+ - assets/images/favicons/favicon-16.png
71
+ - assets/images/favicons/favicon-160.png
72
+ - assets/images/favicons/favicon-180.png
73
+ - assets/images/favicons/favicon-192.png
74
+ - assets/images/favicons/favicon-310.png
75
+ - assets/images/favicons/favicon-32.png
76
+ - assets/images/favicons/favicon-57.png
77
+ - assets/images/favicons/favicon-60.png
78
+ - assets/images/favicons/favicon-64.png
79
+ - assets/images/favicons/favicon-70.png
80
+ - assets/images/favicons/favicon-72.png
81
+ - assets/images/favicons/favicon-76.png
82
+ - assets/images/favicons/favicon-96.png
83
+ - assets/images/favicons/favicon.ico
84
+ - assets/images/gallery/1.webp
85
+ - assets/images/gallery/10.webp
86
+ - assets/images/gallery/2.webp
87
+ - assets/images/gallery/3.webp
88
+ - assets/images/gallery/4.webp
89
+ - assets/images/gallery/5.webp
90
+ - assets/images/gallery/6.webp
91
+ - assets/images/gallery/7.webp
92
+ - assets/images/gallery/8.webp
93
+ - assets/images/gallery/9.webp
94
+ - assets/images/logo.webp
95
+ - assets/images/menu/baked-potato.webp
96
+ - assets/images/menu/burger.webp
97
+ - assets/images/menu/cappuccino.webp
98
+ - assets/images/menu/coca-cola.webp
99
+ - assets/images/menu/diet/glutenFree.png
100
+ - assets/images/menu/diet/vegan.png
101
+ - assets/images/menu/eggs-and-bacon.webp
102
+ - assets/images/menu/latte.webp
103
+ - assets/images/menu/omlette.webp
104
+ - assets/images/menu/pancakes.webp
105
+ - assets/images/menu/smashed-avocado.webp
106
+ - assets/images/menu/vegan-breakfast.webp
107
+ - assets/images/social/email.svg
108
+ - assets/images/social/facebook.svg
109
+ - assets/images/social/instagram.svg
110
+ - assets/images/social/phone.svg
111
+ - assets/scripts/turbolinks.js
112
+ homepage: https://github.com/Coedice/cafe-theme
113
+ licenses: []
114
+ metadata: {}
115
+ post_install_message:
116
+ rdoc_options: []
117
+ require_paths:
118
+ - lib
119
+ required_ruby_version: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ required_rubygems_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ requirements: []
130
+ rubygems_version: 3.2.15
131
+ signing_key:
132
+ specification_version: 4
133
+ summary: A template website for a café.
134
+ test_files: []